Tracepath工具的使用

image description

This description will be used for the article listing and search results on Google.

2023-04-23

工具教程

tracepath 的用途

Linux 中的 tracepath 命令允许使用 UDP 端口或不需要任何超级用户权限的任何其他端口来跟踪到目标路径的路径,确定沿此路径的 MTU(maxium transimission unit 最大传输单元)。

tracepath 的使用

  • tracepath : 提示你该如何使用 tracepath
  • tracepath <<destination>> : 查询通往 destination 的路径信息
  • tracepath -n <<destination>> : 只显示路由 IP 地址
  • tracepath -b <<destination>> : 同时显示路由域名和 IP 地址
  • tracepath -m <<number>> <<destination>> : 规定最大跳数(经过的路由节点数量)(不指定则为 30 个)
  • tracepath -l <<number>> <<destination>> : 规定包字节大小(不懂捏)
  • tracepath -p <<destination>> : 允许指定端口被使用(不懂捏)

例子展示

Q:
现在我想知道通往gaia.cs.umass.edu的最后一个路由,即在你与服务端这条路径上距离gaia.cs.umass.edu最近的一个路由地址,请告诉我吧。
A:
执行命令tracepath -b gaia.cs.umass.edu 结果:在 30 跳以后,发现仍未到达服务端,于是设定最大跳数为 50 跳。

执行命令tracepath -b -m 50 gaia.cs.umass.edu 结果:成功了,gaia.cs.umass.edu 的上一个路由为nscs1bbs1.cs.umass.edu (128.119.240.253)

tracepath 显示数据解释

  • 显示的毫秒数为rtt(round trip time)环回时间,tracepath 向该 router 发送一个数据包,与此同时,tracepath 记录下发送的时刻,router 在收到数据包后,向 tracepath 发送回复,此时再记录下接收到回复的时刻,这段经过的时间便为rtt
    • 影响rtt的因素有转发处理时间(processing time)、排队时间(queuing time)、数据传输时间(transmission time)、传播时间(propogation time),我们知道,数据包由发出地到目的地所花费的时间为 Dnodal = Dproc + Dqueue + Dtran + Dprop,那么rtt的计算方式也大致如此。
  • no reply,可能是数据包发生了丢失,或是 router 拒绝回复