- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Ping命令IP分片数据分析
基于Ping命令的IP分片数据分析
Ping 192.168.1.1
说明:Ping默认以32bit字节的数据包发送请求,所以一般是不分片的,这里首先大概熟悉一下ip数据包和相关环境。
分析:
1 默认ping是4次请求的,所以通过上图可以看到请求、回复成对出现的8个数据包
2 首先看第一个数据包的数据如下图所示,可以看到Flags标志的“More fragments”位为0表示这是最后一个分片了,也就是说没有分片,所以Fragment offset自然也是0.
3 再来看看长度关系:
3.1 Total Length=60表示整个IP数据包长度是60字节
3.2 Header length=20表示IP头长度是20字节(也即IHL的值为5的通用ip头长度)
3.3 ICMP的数据长度是32字节
3.4 ICMP头的长度固定为8字节
3.5 60=20+32+8刚好成立
Ping 192.168.1.1 –l 2000
说明:一般来说MTU为1500,所以要让ip进行分片传送,数据包的长度必须 1500-20,这里的20是ip头的最小长度。使用长度超过1480的数据包来Ping都是会拒绝的
分析:
1 可以看到现在的数据包和刚才不一样了,每个ICMP请求之前都先有一个IP包。
2 首先来看看第一个数据包,MF标志=1说明后面还有分片,offset=0表明这是第一个分片,分片id为0x2e6b。ip包长度为1500,ip头长度是20
3 再来看看第二个数据包(ICMP包),offset=1480表示这个数据包在分片之前的偏移,MF=0说明这是最后一个分片,id同样=0x2e6b表明和第一个数据包在分片之前属于同一个数据包。Ip包长度为548,ip头长度为20
4 现在来看看各个长度和偏移
4.1 第一个数据包的IP-Total Length为1500
4.2 第一个数据包的IP-Header length为20
4.3 第二个数据包的IP-Total Length为548
4.4 第二个数据包的IP-Header length为20
4.5 第二个数据包的ICMP头长度为8
4.6 我们发送的数据包长度为2000
4.7 2000=1500-20+548-20-8正好成立
Ping 192.168.1.1 –l 4000
文档评论(0)