笑话大全ico
您当前的位置 :竞彩篮球胜分差技巧>电脑科技>网络故障> 正文
Tracert诡异问题揭秘
2011-06-10 02:06来源:厦门门户网
【摘要】
前天OPSERS群中好友YzzCheng好友突然发问,关于Tracer目标地址回显问题!怪异,一会给大家看图。说到此欢迎大家入群一起学习,我们的群号是:8021887 Tracert工作原理 今天继然谈到Tracert,我们就

竞彩篮球胜分差技巧 www.obcll.tw 前天OPSERS群中好友YzzCheng好友突然发问,关于Tracer目标地址回显问题!怪异,一会给大家看图。说到此欢迎大家入群一起学习,我们的群号是:8021887 厦门纸业xmpaper.com

Tracert工作原理 厦门色网xmsex.com 福建色网fjsex.com

今天继然谈到Tracert,我们就仔细聊聊它。我们知道tracert是追踪到达一个IP地址经过路由的路数,其原理是利用ICMP协议。我们知道在路由传送报文的时候,如果TTL值为0,则此路由器将用它自己的IP地址做为源IP地址,以发送请求回显的IP地址为目标IP地址,返回ICMP类型为11的路由TTL值超时报文。利用此原理,我们在IP报文中将TTL值不断加1,就可以得到经过的所有路由器地址,这里我们要注意一点,在IP报文中TTL是从1不断增加的,但是上层封装的ICMP报文,却是最为普通的ICMP请求回显报文,类型为8。 厦门台球xmpool.com

当数据包到达Tracert的目标IP后,将返回正常的ICMP回显报文,其ICMP类型为0.Tracert程序根据返回报文的源IP地址与Rracert的IP地址做比较,如果IP地址相同,则路由追踪完成。这里我解释一个情况,TTL值大小等于从本地路由器到达目标路由器的跳数,它为何返回正常的回显报文?而其它路由器收到报文时,其TTL值大小也等于从本地路由器到达它自己的跳数,它为何返回的是ICMP类型是11路由TTL超时呢?我们知道路由器一般有多个网络接口,用来连接不同的网络,当收到一个报文时,如果目标IP地址非自己直连,那么根据路由表查找目标网络且将TTL值将减1,此时TTL等于0故返回路由TTL超时报文。当目标路由器收到这个报文时,发现目标地址就是它,那么就在TTL等于1的时候,到达了目标系统,不用将此报文在传送到另一个网络,故返回正常的ICMP回显报文。

厦门博爱xmboai.com

Tracert诡异问题 找工作、找人才,就上厦门人才市场网站xmrcsc.com

下面我给大家上传一张图,某些原因非YzzCheng原图,但是情况是一样的,此故障在丢包严重的情况下发生的,请大家分析。 搜什么,找虾米搜索xmsou.com

MD5密码在线加密解密破解cnmd5.com

就是为何tracert一个IP地址后,然后得到了目标IP地址的多个跳数,此问题确实很难理解。WIN下的TRACERT程序机制是对固定TTL值连续发送三次请求回显,对于收到的包显示ms值,图中每一跳都有三个时间值,1,2,3分别代表了收到1,2,3次回复包的时间,丢包的显示*号。注意:在tracert程序对同一个TTL值连续发送三次ping请求后,对与回复的包不管是路由TTL超时的ICMP报文或是正常的ICMP回显报文,trarcert程序将在屏幕上打印时间值,单位为ms[毫秒],然后丢包的将显示*号,也代表超时,这个与路由TTL超时是两个不同的概念。下面将各好友的看法说下。

MD5密码在线加密解密破解cnmd5.com

1.路由环路:说下个人看法a.个人认为路由环路,是发生于两个或多个路由器之间,并非一个路由器可以形成的。b.如果真是环路,那就不可能在十几跳后就退出程序,应该是无限循环,直到TTL用尽或是30跳后[Tracert最多可以追踪30跳]。 软件下载就到soft.www.obcll.tw

2.目的地有防火墙:目的地有防火墙,放火墙后是目的地址,放火墙会对ICMp请求回应一次,目标主机也回应一次。此理论不予求证了,因为同一个IP地址已经出现了多跳,大于2跳。 厦门色网xmsex.com 福建色网fjsex.com

3.负载均衡或群集:我只不过是向一个目标IP地址发送了一个ping请求,也不用着大家伙[指群集多个设备]同时来招呼我吧?群集与负载也是有队列的,有顺序的。这个不说了从好多方面都说不过去。 找工作、找人才,就上厦门人才市场网站xmrcsc.com

4.最后就是我的猜想:在不断的测试与抓包分析中发现:当追踪到目标IP后,此时返回的ICMP报文是正?;叵缘谋ㄎ?,因为TTL不在超时。这种情况下,连续发送的三个ICMP回显请求报文,第一与第二个丢包都无所谓,程序都能正确判断已追踪到目标IP地址,如果源IP地址与追踪iP地址相同,则追踪完成。这个判断是根据最后一次回复报文。 MD5密码在线加密解密破解cnmd5.com

如果第三次请求回显报文丢包的话,虽然能显示出这返回路由器的ip地址[前两次必须有收到回复报文],但不能判断出源IP与追踪IP地址一样,这样tracert将ttl值加1,继续追踪。所以最后得到了追踪目标IP地址的多跳显示在屏幕上。此时,我将问题怀疑到了Tracert程序自身??忌柘氤绦虻墓ぷ饔肱卸显?。 厦门博爱xmboai.com

推测程序判断机制 厦门门户网www.obcll.tw xmdoor.com

1.如果程序对每个包保持TTL值不变发三次ICMP请求回显,对于收到的回复报文,不管是路由TTL超时还是正常ICMP回显报文都将以时间值显示,单位是ms,没有收到的报文显示*号。

网址导航就用ok118.com

2.从初始TTL=1开始,当收到回复包时检测源IP地址,然后显示到输出屏幕。当收到最后一个ICMP回复报文时,先判断返回类型,如果是路由TTL超时或丢包,则继续TTL加1,继续发送[是三次哦]。如果是正?;叵?,则判断源IP是否与追踪的IP地址相同,相同条件成立,显示完成追踪。

厦门博爱xmboai.com

根据上面的分析,因为请求回复报文的第三个报文丢包了,无法做出源IP地址与追踪IP地址判断,所以继续TTL加1,继续追踪。但是由于前两次的请求已取到了回复报文,所以程序可以得到这一路由器的IP地址显示于屏幕之上。根据此理论,当ICMP请求报文得到正常的ICMP回显,ICMP类型等于0,并且第三次的请求回显必须得到回复,tracert根据源IP地址与追踪IP地址比较,条伯成立,才会显示完成追踪。

厦门门户网www.obcll.tw xmdoor.com

Tracert求证阶段 软件下载就到soft.www.obcll.tw

这个阶段是最难的我感觉,看情况就知道了。

新名堂xmtang.com

1.其实上面只是一个猜想,不能理论不实践。但是这是程序设计??!我哪看得懂代码??!从网上找了一份tracert源代码,希望能从源代码中验证我的理论,找了不少好友帮忙分析代码,看是不是如此。。。原来我错了。。朋友看了代码后,发现那个源程序代码是发包一次,没有发包三次。虽然 tracert原理一样,但是程序实现不一样。windows这个闭源的东西啊让我求证失败。

厦门台球xmpool.com

2.我不服,继续思索。。后来我终于有了第二个想法。。就是找一个防火墙,想办法控制进出网络的每个包。通过人工询问控制通过或放行。这样的话,当进入本机的ICMP包,我可以控制最后一个ICMP回复不让其通过,如果我的判断没有错的话,这样就会产生大量的同一个IP地址,但是有N跳的回显,还可以控制第一次的回显与第二次,不断测试。。于是在各群中发信息,求有此功能防火墙。当时有网友认为人工控制每个包,机子受得了吗?人受的了吗?我是在做实验??!非真机应用??!在说我还可以过滤??!我控制特定协议的包,特定IP的包。特定端口的包,这有什么做不到的,只有做就行。不过一会又失败了…苦苦寻找也没有找到有此功能防火墙,此方法以悲剧结束。

厦门台球xmpool.com

3.我还是要解决的,开始了第三个想法,嘿嘿!我能不能通过网络分析器的发包工具来测试啊…比如tracert发我三个报文,我就回它两个。。最后一个不回,提前是我把数据包都准备好,这样对方机器发包,我这边人工回复包,也可达到测试目的。后来在我仔细分析与思量后,理论又被击碎了…tracert发出的每个包都是有请求序列号的,我抓到的包怎么可能与之动态匹配序列号呢?与目标主机的序列号不匹配,这怎么能成功呢? 厦门纸业xmpaper.com

4.我快要绝望了。。我不行就断开网络。。等收到两个回复报文的时候切断网络,怎么可能?这是ms与s为单位的,我哪有那快的速度??!工夫不负有心人??!我终于找到办法了。那就是我打开虚似机,然后tracert一个ip地址,同时物理主机进行抓包进行数据包的收发观察,等到了追踪目标IP之时,我看到包都发送出去了,虚似机有个STOP功能,我以极快的速度点下,虚似机停止了工作了…等目标主机的回复数据包到达我物理主机的时候,无法提交报文,数据丢失。我然后在恢复虚机系统,这样第三个请求包得不到回复报文,结果就继续TTL加1,继续请求报文了。文中的图示就是我用此方法,搞出来的结果。做些实验的时候,STOP虚似机一定要控制好,不能快也不能慢。真不好控制,说实在的。

网址导航就用ok118.com

这样结果就出来了,从这里我们可以看出,不管目标主机有没有防火墙,有没有群集,有没有路由环路。一切都是浮云……按tracert程序机制,我可以在任何网络产生这样的结果,这就足以证明。我朋友网络有这种情况是因为丢包严重。呵呵??! 软件下载就到soft.www.obcll.tw

TRACERT网络知识补充 厦门台球xmpool.com

1.我说的是win与linux下的tracert程序功能一样,但实现方式不一样。linux更为强。。win的tracert是每发三个包后等待回复,然后在发送,所以得到一个IP的路由跟踪,我们得等一会。linux下的tracert不一样,它的原理就是从ttl=1一直发送到一个很大的TT值,如18或更大。。每个TTL值也将发送三个请求回显,这样中间路由器将很快将数据包回复到目标主机,然后根据序列号值匹配数据流情况,将成功回显。速度非???。winY就是一笨蛋。 MD5密码在线加密解密破解cnmd5.com

2.linux下的traceroute是请求一个大端口,用的UDP协议,TTL也是从1增加的??梢允迪滞穆酚筛俟δ?,不过它收到的回复报文是类型3,代码3,即目标端口不可达。 网址导航就用ok118.com

3.在做路由不通信的时候,用 tracert可以更快的定位故障产生于哪个路由器,比ping好使。

厦门台球xmpool.com

4.ping  -r 9 www.wildlee.org ,可以得到入接口的路由器IP地址,这个是利用IP选项字段的功能实现的。tracert得到的是出网络路由接口的IP地址。不过有的ISP把一些类型的ICMP给做掉了。

找工作、找人才,就上厦门人才市场网站xmrcsc.com

标签(Tag):
官方邮箱:竞彩篮球胜分差技巧 www.obcll.tw 官方微信:www.obcll.tw 官方微博:
 
  • 扫描二维码关注官方微信