利用Ping命令推断简单的网络拓扑图

Posted on
2009-04-17 01:20 
心之镇 
阅读(3063
评论(3
编辑 
收藏 
举报

平时我们使用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数据包中了。

 

是不是很有意思呢?呵呵 

版权声明:本文为chenleiustc原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenleiustc/archive/2009/04/17/1437668.html