平时我们使用ping命令的时候往往会忽略它的参数,只是用来检测网络的联通情况。殊不知,ping的参数里有个参数具有强大的功能,可以让我们推断出本机到目的地的网络拓扑图。(在此感谢我们实验室的一位同仁,是其告诉我这个功能的)。下面对这个参数加以说明吧。

就以我学校的网站作为目的IP作为测试。

ping的参数表如下:



其中关于参数r的描述:Record route for count hops(记录所经过的路由)

下面演示下其具体的过程:



本地主机IP:211.86.146.109

目的网站IP:202.38.64.9

在此要说明下:ping程序是发送的一个ICMP类型8编码0的报文到指定主机的。ICMP报文是承载在IP报文中的。一个IP的报文一般首部长度是20bytes(选项为填写),若加上选项后其首部长度可以达到60bytes也就是除去那20bytes还剩40bytes,而且剩余的空间是通过每4个bytes进行加入的。通过在ping命令中加上r选项后就可以把经过的路由的“出端口”的IP地址打入IP数据包的那40个bytes中。这样算来,剩余空间一般最大能容纳9个这样的IP地址(不能是10个)。

这样可以构造相应的网络拓扑:

211.86.146.109-->211.86.146.1-(router)-202.38.96.31-->202.38.96.33-(router)-202.38.64.126-->202.38.63.126

为了验证IP包的头部大小是否因为r选项而发生了变化,可以利用Ethereal抓包工具对包进行分析:

为加r选项时,其包头:



可以看出其头部长度为20bytes。

而加了r选项的呢:



可以发现其头部大小变为60bytes了。而且在其选项中可以发现,把经过的路由的IP打入了IP数据包中了。

是不是很有意思呢?呵呵
by 大尾巴 | 来自 本站原创 | 不指定 2009/05/15 17:40 | 学习 | 评论(0) | 引用(0) | 阅读(136)
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]