QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1528|回复: 2

求助:tcp首部校验和问题

[复制链接]
发表于 2004-6-13 16:36:20 | 显示全部楼层 |阅读模式
我用的算法是网上拷贝来的,计算ip首部校验和没有问题,但是计算tcp首部校验和总出错,请各位大侠援手!
tcp伪头的结构中:
代码:
[code:1]    uint8 vtcp_hdr[12] = {  0x0A, 0x00, 0x00, 0x02, /*src ip*/
                            0xD8, 0xEF, 0x35, 0x63, /*dst ip*/
                            0x00, /*mbz*/
                            0x06, /*protocol type*/
                            0x00, 0x00  /*tcp len*/}; [/code:1]
src/dst ip是否就是ip首部中的ip?
mbz这个字段是做什么用的,是不是总是0?
protocol应该就是6吧,
最后一个长度,我是这样理解的:ip首部中的总长度字段值 - 20(ip首部长度,无选项) + 12(tcp伪首部长度),不知道对不对?
发表于 2004-6-13 20:31:56 | 显示全部楼层
帮不上忙,但我知道一个地方肯定有:《TCP/IP详解》第二卷。
我看过,但不用就忘记了。
回复

使用道具 举报

发表于 2004-6-13 22:04:42 | 显示全部楼层

Re: 求助:tcp首部校验和问题

[quote:611f36aa83="apache2002"]
    uint8 vtcp_hdr[12] = {  0x0A, 0x00, 0x00, 0x02, /*src ip*/
                            0xD8, 0xEF, 0x35, 0x63, /*dst ip*/
                            0x00, /*mbz*/
                            0x06, /*protocol type*/
                            0x00, 0x00  /*tcp len*/};
src/dst ip是否就是ip首部中的ip?   //是
mbz这个字段是做什么用的,是不是总是0?  //总为0,没什么原因
protocol应该就是6吧,   // 代表携带tcp的协议, 为0x06
最后一个长度,我是这样理解的:ip首部中的总长度字段值 - 20(ip首部长度,无选项) + 12(tcp伪首部长度),不知道对不对?应该是tcp头部+tcp数据的长度,不含伪首部,即去掉那个+12
[/quote]
不对之处再探讨啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 05:15 , Processed in 0.079503 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表