免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: Godbach
打印 上一主题 下一主题

数据包校验和的疑问 [复制链接]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
21 [报告]
发表于 2008-11-18 13:20 |只看该作者
当check>=0xfeff,check += __constant_htons(0x0100)后,check>=0xffff,且只可能进一位,将近位重新加入check
iph->check = check + (check>=0xFFFF);


按照qtdszws兄的解释,check=0xfeff时,check += __constant_htons(0x0100)后,并不会产生进位的,但实际结果还是加了1,这是为什么呢?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
22 [报告]
发表于 2008-11-18 16:59 |只看该作者
有清楚的兄弟们吗

[ 本帖最后由 Godbach 于 2008-11-18 17:26 编辑 ]

论坛徽章:
0
23 [报告]
发表于 2008-11-18 17:08 |只看该作者
我先晕会

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
24 [报告]
发表于 2008-11-18 17:27 |只看该作者
原帖由 Arthur_ 于 2008-11-18 17:08 发表
我先晕会

论坛徽章:
0
25 [报告]
发表于 2008-11-18 18:14 |只看该作者
>>按照qtdszws兄的解释,check=0xfeff时,check += __constant_htons(0x0100)后,并不会产生进位的,但实际结果还是加了1,这是为什么呢?

我说了不产生进位了吗?没有吧

且只可能进一位

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
26 [报告]
发表于 2008-11-18 21:37 |只看该作者
原帖由 qtdszws 于 2008-11-18 18:14 发表
>>按照qtdszws兄的解释,check=0xfeff时,check += __constant_htons(0x0100)后,并不会产生进位的,但实际结果还是加了1,这是为什么呢?

我说了不产生进位了吗?没有吧

且只可能进一位


你说的是要加上进位的值,check=0xfeff时,check += __constant_htons(0x0100),这个地方是不会产生进位的吧

论坛徽章:
0
27 [报告]
发表于 2008-11-19 06:40 |只看该作者

回复 #4 Godbach 的帖子

这个应该不是rfc的规定,这个是和checksum的算法有关

论坛徽章:
0
28 [报告]
发表于 2008-11-19 08:31 |只看该作者
>>你说的是要加上进位的值,check=0xfeff时,check += __constant_htons(0x0100),这个地方是不会产生进位的吧

检验和是16位,而check是32位,我的意思是进位到高十六位,而不是标志寄存器进位,不也是进位么?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
29 [报告]
发表于 2008-11-19 09:39 |只看该作者
原帖由 qtdszws 于 2008-11-19 08:31 发表
>>你说的是要加上进位的值,check=0xfeff时,check += __constant_htons(0x0100),这个地方是不会产生进位的吧

检验和是16位,而check是32位,我的意思是进位到高十六位,而不是标志寄存器进位,不也是进位么?


我明白你的意思。这个地方相加之后也不回项高16位进位吧,加完之后也就是0xFFFF啊

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
30 [报告]
发表于 2008-11-19 09:41 |只看该作者
原帖由 kns1024wh 于 2008-11-19 06:40 发表

这个应该不是rfc的规定,这个是和checksum的算法有关


有可能是这样原因哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP