TCP-IP:IP校验和讨论
来源:互联网 发布:淘宝贷款需要什么条件 编辑:程序博客网 时间:2024/06/05 00:12
TCP-IP:IP校验和讨论
当IP数据包由源主机生成时:
只清零校验和字段,然后将生成的校验和填写到校验和字段,最后发送数据包。
当路由器收到一份I P数据包后,路由器会首先做以下两件事情:
1. 计算校验和是否全为1:
对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么I P就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
2. 生成新的校验和:
首先TTL减一,然后检验和字段置为0,最后对首部中每个16 bit进行二进制反码求和(整个首部看成是由一串16 bit的字组成),生成新的校验和,结果存在检验和字段中,再发送数据包。
验证校验和的计算公式:
check_sum =(check_sum& 0xffff)+(check_sum>> 16);
下图为我用Wireshark抓的一个ICMP包,高亮部分为IP包头:
、、
下图IP包头个单字对照表:
下图为IP包头每个单字取反后对照表:
将所有单字加起来结果为:0x6ffff9
将溢出的0x6加到低16位0xfff9,结果为0xfffff.
刚好验证了校验和的计算公式:
check_sum =(check_sum& 0xffff)+(check_sum>> 16);
- TCP-IP:IP校验和讨论
- IP、TCP校验和
- IP、TCP校验和
- ip tcp 校验和
- IP和TCP包头校验和计算方法
- IP和TCP包头校验和计算方法
- IP和TCP包头校验和计算方法
- TCP/IP 中校验和的计算方法
- icmp,tcp,udp,ip校验和
- TCP/IP 校验和算法简介
- IP、ICMP、UDP、TCP 校验和算法
- IP/UDP/TCP/ICMP的校验和
- IP、ICMP、UDP、TCP 校验和算法
- IP、ICMP、UDP、TCP 校验和算法
- IP、ICMP、UDP、TCP 校验和算法
- IP ICMP TCP UDP 校验和
- IP、ICMP、UDP、TCP 校验和算法
- TCP/IP 校验和算法简介
- 设置PreferenceActivity
- 经度之战
- 电脑掉电后eclipse无法打开
- 转自MSDN:规划 ASP.NET 网站 值得一看
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- TCP-IP:IP校验和讨论
- 屌丝要当高富帅!
- j2Me 增删改查
- android中配置文件property的用途以及使用
- IOS7开发~新UI学起(二)
- WPF学习系列 MVVM设计模式 二 简单的增删改
- PHP跑在Mac OS X中
- Oracle 11.2.0.2 Patch install - Windows中安装补丁后DB Control无法启动
- JAVA多态+接口实现