免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1163 | 回复: 0
打印 上一主题 下一主题

Traceroute的实现原理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-31 21:37 |只看该作者 |倒序浏览

                Traceroute的实现原理
      Traceroute是我们经常用到的一个路由跟踪命令。
      它的实现原理如下:

    它发送一份 TTL字段为1的IP数据报给目的主机。处理这份数据报的第一个路由器将 T T L值减 1,丢弃该数据报,并发回一份超时I
C M P报文。这样就得到了该路径中的第一个路由器的地址。然后 Tr a c e r o u t e程序发送一份T T
L值为2的数据报,这样我们就可以得到第二个路由器的地址。继续这个过程直至该数据报到达目的主机。但是目的主机哪怕接收到 T T L值为1的I
P数据报,也不会丢弃该数据报并产生一份超时 I C M P报文,这是因为数据报已经到达其最终目的地。那么我们该如何判断是否已经到达目的主机了呢?
   
  Traceroute程序发送一份 U D P数据报给目的主机,但它选择一个不可能的值作为 U D P端口号(大于 30
000),使目的主机的任何一个应用程序都不可能使用该端口。因为,当该数据报到达时,将使目的主机的 U D P模块产生一份“端口不可达”错误(见
6 . 5节)的 I C M P报文。这样, Tr a c e r o u t e程序所要做的就是区分接收到的 I C M
P报文是超时还是端口不可达,以判断什么时候结束。
     我们使用ping命令的R选项也可以打印出源主机到目的主机所经过的路由。但是它和traceroute有些不同,至于区别在哪里?大家可以思考一下
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/93856/showart_2014657.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP