博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

hahaaj 开往网络安全领域的地铁

未来一年内的目标:将自己的轮滑鞋变成上下班、溜街的交通工具~~~
   hahaaj.cublog.cn
关于作者  
姓名:呵呵嘿嘿
职业:IT
年龄:22
位置:北京
个性介绍:工作学习时爱静,穿上轮滑鞋便好动

我的分类  




用tracert工具查看数据包经过默认网关时IP首部TTL值的变化
tracert工具的原理

Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢? Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。 Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。 Traceroute 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Traceroute给TTL记数器加1,继续进行。


本机网络配置(ipconfig)

arp缓存信息(arp -a)

tracert执行结果

这期间用sniffer捕获的所有数据包

从上图中我们不难看出数据包1、3、5相同,均为本地主机172.16.178.87发送给目标主机202.197.224.133的TTL值为1(待会看数据包1的解码图)的ICMP:Echo包(可见tracert连续发出3次同一个请求包);2、4、6相同,均为202.197.226.254对本机的回复;7、9、11相同,,均为本地主机172.16.178.87发送给目标主机202.197.224.133的TTL值为2(待会看数据包7的解码图)的ICMP:Echo包;8、10、12相同,均为目标主机202.197.224.133对本机的回复。

第一个包的解码(注意ttl值)

第二个包的链路层解码

第二个包的IP层解码

第二个包的ICMP协议解码

第七个包我解码

第八个包的解码

经过以上抓包分析,容易看出:
1、路由器收到ttl=1的包将不再转发,而是直接丢弃。(这是华为某次面试题)
可见路由器对ttl的处理过程为:
ttl--;
if( ttl > 0 ){ 转发; }
else { 丢弃这个包; }
而不是如下处理:
if( ttl > 0 ){ ttl--; 转发; }
else { 丢弃这个包; }
-------------------------------------------------------------------------------
2、数据包经过本地默认网关( ip:172.16.178.1 mac:00-b0-8e-86-c6-38 )时ttl值无变化(对本机发出的TTL为1的ICMP ECHO包进行回复
的是202.197.226.254,而不是本机的默认网关)?
期望高人解释这一点。。。

 发表于: 2007-01-05,修改于: 2008-01-05 22:20 已浏览613次,有评论0条 推荐 投诉

  网友评论

  发表评论



Copyright © 2001-2006 ChinaUnix.net All Rights Reserved

感谢所有关心和支持过ChinaUnix的朋友们
页面生成时间:0.00739

京ICP证041476号