当应用程序通过Internet请求服务时,服务器可能位于远端,两者之间通过多个网关或路由器相连。traceroute命令可以显示分组途径的所有网关的地址。这些信息可以帮助我们搞明白分组到达目的地需要经过多少跳。中途的网关或路由器的数量给出了网络上两个节点之间的有效距离,这未必和物理距离有关。传输时间会随着每一跳增加。对于路由器而言,接收、解析以及发送分组都是需要花时间的。

实战演练

traceroute 命令的格式如下:

  1. $ yum install traceroute -y
  2. $ traceroute destinationIP

destinationIP可以是IP地址,也可以是域名。

  1. $ traceroute baidu.com
  2. traceroute to baidu.com (220.181.38.251), 30 hops max, 60 byte packets
  3. 1 MiHome.mshome.net (172.26.64.1) 0.521 ms 0.480 ms 0.472 ms
  4. 2 192.168.1.1 (192.168.1.1) 2.490 ms 3.780 ms 1.715 ms
  5. 3 100.64.0.1 (100.64.0.1) 11.955 ms 11.949 ms 12.665 ms
  6. 4 61.184.37.59.broad.dg.gd.dynamic.163data.com.cn (59.37.184.61) 13.563 ms 12.862 ms 13.551 ms
  7. 5 202.105.158.65 (202.105.158.65) 12.887 ms 183.56.65.57 (183.56.65.57) 16.907 ms 14.147.127.13 (14.147.127.13) 13.526 ms
  8. 6 202.97.22.170 (202.97.22.170) 41.800 ms 202.97.55.241 (202.97.55.241) 44.163 ms 44.542 ms
  9. 7 36.110.245.66 (36.110.245.66) 44.511 ms 36.110.246.130 (36.110.246.130) 42.188 ms 36.110.245.194 (36.110.245.194) 39.051 ms
  10. 8 * 36.110.245.73 (36.110.245.73) 44.311 ms 36.110.245.77 (36.110.245.77) 44.297 ms
  11. 9 * * *
  12. 10 220.181.17.150 (220.181.17.150) 49.841 ms 220.181.17.22 (220.181.17.22) 44.235 ms *
  13. 30 * * *

如今的Linux发布版中还包括了一个命令mtr,它类似于traceroute,但是能够显示实时刷新的数据。这对于检查网络线路质量等问题很有帮助。

  1. $ yum install mtr -y

image.png