关于ping命令中长度参数问题.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关于ping命令中的长度参数的问题 一.Ping 命令参数-l所带的长度参数是什么? Windows xp默认的MTU=1500(字节),即允许发送不需要分段的最大IP单包字节数。但如果使用ping –l data_length命令来ping大包的话,则其中的data_length指的是ICMP的数据长度,而不是IP包的数据长度。即data_length不等于MTU 。他们两者之间的关系为: data_length = MTU(典型值为1500)- IP头(20)- ICMP头(8) 在MTU=1500的情况下: IP包的最大长度 = 20(IP头)+ IP包的数据长度 = 1500字节 IP包数据的最大长度 = 8(ICMP头)+ 1472(ICMP的数据)=1480字节 ICMP数据的最大长度(单IP包) = 1472 字节 通过以上描述,我们搞清了网络接口的配置数据MTU和Ping命令中的数据包长度这2 个概念,即:MTU是网络接口发送单个IP包的最大字节数,典型值=1500。Ping命令中的data_length是ICMP的数据长度。 例如(假设本端接口的MTU=1500,对端接口的MTU=1500): ping x.x.x.x 这是一条不带-l参数的ping命令,网络接口以缺省的ICMP的数据长度(32字节或64字节)发送IP包(IP包长度=60或92)。 ping x.x.x.x –l 1472 这是一条带-l参数的ping命令,由于1472 + 20(IP头)+ 8(ICMP头)= 1500(MTU),所以ping包不会被分段。网络接口以ICMP的数据长度=1472发送IP包(IP包长度=1500)。 ping x.x.x.x –l 1500 这是一条带-l参数的ping命令,由于1500 + 20(IP头)+ 8(ICMP头) 1500(MTU),所以IP包需要被分段发送(先发IP包长度=1500,后发IP包长度=1500-1472+20+8=56)。 Ping 的第1 分段: Ping的第2 分段: Reply的第1分段: Reply的第2分段: ping x.x.x.x –f –l 3000 这是一条带-l参数的ping命令,由于3000 + 20(IP头)+ 8(ICMP头) 1500(MTU),所以IP包需要被分段发送,但由于本命令带了-f参数(不允许分段),故网络接口无法将此IP发送出去,ping命令执行失败。 二.为什么小包能ping通而大包ping不通 当总长度=N字节的IP包到达接收端接口时,如果接收端接口的MTUN的话,接收端将无法接收这个总长度=N的IP包,直接丢弃。发送端收不到任何响应消息,超时后自行发出告警:timeout。 由此可知,网络上任何2个直连接口的MTU必须一致,否则必埋下隐患。所以有ping大包一说,其道理就是:如果两直连接口中,A接口的MTU=1500,B接口的MTU=1400,而ping命令缺省的数据长度字节数是32或64,即加上20(IP头)+ 8(ICMP头),也只有60或92。如果直接用命令ping ip(A或B),都不会发现任何问题,这只能证明两者在物理上没有问题;但如果用ping 大包(单包)的命令:ping ip(A或B) –l 1472 则分别会有2种情况发生: 1.A ping B:B接口无法接收该IP包,丢弃,A接口无法得到reply的回应。操作者就会迷茫:为什么小包能ping 通,大包就不行? 2. B ping A: 由于B接口的MTU=1400,则B接口要发送1500字节的IP包就要分段成2个IP包发送出去,A接口作为IP地址的目的地,将收到的2个IP包重组成1个1500字节的IP包作为ICMP的响应包(reply)发回给B接口,但由于B接口的MTU=1400,无法接收这个IP包,丢弃。这样一来,B接口就永远也等不到A接口的响应(实际上A接口已发出reply)。同样,操作者也会迷茫:为什么小包能ping 通,大包就不行? 结论:当碰到小包能ping 通,大包ping不通的情况,首先要查看各相关接口的MTU配置。 三.Ping 大包的意义 本端接口把网络中间节点作为目的节点进行大包ping测试时,该中间节点将执行分段和重组的功能,这些功能在实际IP包的转发中并不需要,因为中间节点只需转发,不需要分段或重组。所以在这种情况下,ping大包不通也没有关系,只要小包能ping通就行。即ping 大包测试只对真正的目的节点才有意义(检查目的节点的重组功能),对中间节点无意义。但中间节点之间的网络协议的交互,是互以

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档