网络相关的命令工具研究报告-traceroute

一、基本概念

  traceroute (Windows系统下是tracert) 命令利用ICMP 协议定位您的计算机和目标计算机之间的所有路由器。TTL值可以反映数据包经过的路由器或网关的数量,通过操纵独立ICMP呼叫报文的TTL值和观察该报文被抛弃的返回信息,traceroute命令能够遍历到数据包传输路径上的所有路由器。

二、基本流程

  首先给目的主机发送一个TTL=1的IP数据包(其实,每次送出的为3个40字节的包,包括源地址,目的地址以及包发出的时间),而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报便知道这个路由器存在于这个路径上,接着再发一个TTL=2的IP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。

三、命令格式

  traceroute [参数] [主机]   (在windows的命令是tracert)

    

  参数的内容:

  -d 使用Socket层级的排错功能。
  -f 设置第一个检测数据包的存活数值TTL的大小。
  -F 设置勿离断位。
  -g 设置来源路由网关,最多可设置8个。
  -i 使用指定的网络界面送出数据包。
  -I 使用ICMP回应取代UDP资料信息。
  -m 设置检测数据包的最大存活数值TTL的大小。
  -n 直接使用IP地址而非主机名称。
  -p 设置UDP传输协议的通信端口。
  -r 忽略普通的Routing Table,直接将数据包送到远端主机上。
  -s 设置本地主机送出数据包的IP地址。
  -t 设置检测数据包的TOS数值。
  -v 详细显示指令的执行过程。
  -w 设置等待远端主机回报的时间。
  -x 开启或关闭数据包的正确性检验。

 

扫描二维码关注公众号,回复: 7981915 查看本文章

 说明:

  记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。

  有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

  有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

  

  

猜你喜欢

转载自www.cnblogs.com/ustc-BlueSky/p/11934721.html
今日推荐