traceroute原理
Traceroute 是一种网络诊断工具,用于确定数据包从一个源到达目的地所经过的路径。它通过发送一系列的数据包,并观察每个数据包经过的路由器(或称为跃点)来实现这一目的。
工作原理:
- Traceroute 发送一系列的 UDP 数据包,每个数据包都具有不同的 TTL(Time to Live)值。TTL 值表示数据包在网络中可经过的最大跃点数。
- 当第一个数据包离开源设备时,它的 TTL 值被设置为 1。当该数据包到达网络中的第一个路由器时,路由器会将 TTL 值减 1,并转发该数据包。如果 TTL 值减为 0,路由器将丢弃该数据包并向源设备发送 ICMP 时间超时报文。
- 源设备收到 ICMP 时间超时报文后,就知道了到达第一个路由器的路径。然后,源设备增加 TTL 值并发送第二个数据包,以便确定下一个路由器。
- 这个过程不断重复,每次 TTL 值增加,直到数据包到达目的地。目的设备将收到数据包并向源设备发送 ICMP 端口不可达报文,从而终止 Traceroute 进程。
- Traceroute 将记录每个数据包的路径,包括每个跃点的 IP 地址和响应时间。最终将呈现给用户一张路由跟踪表,显示了数据包从源到目的地经过的所有路由器。
总的来说,Traceroute 通过探测数据包的路径和响应时间,帮助网络管理员诊断网络连接问题,定位潜在的瓶颈或故障点。
traceroute用法
Linux系统下,traceroute用法:
Windows系统使用tracert命令:
traceroute抓包
在宿主机10.206.216.95上执行traceroute www.baidu.com
,通过tcpdump
抓包,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| $ ifconfig ens192 ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.206.216.95 netmask 255.255.255.0 broadcast 10.206.216.255 route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 ens192 10.206.216.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
$ tcpdump -i ens192 icmp and host 10.206.216.95 -w traceroute.pcap
$ traceroute www.baidu.com traceroute to www.baidu.com (36.155.132.55), 30 hops max, 60 byte packets 1 gateway (10.206.216.254) 0.239 ms 0.152 ms 0.147 ms 2 10.206.2.254 (10.206.2.254) 0.265 ms 0.274 ms 0.241 ms 3 192.168.200.1 (192.168.200.1) 0.545 ms 0.506 ms 0.825 ms 4 36.152.113.193 (36.152.113.193) 2.837 ms 3.182 ms 3.552 ms 5 221.178.162.185 (221.178.162.185) 2.632 ms * * 6 * * 183.207.54.161 (183.207.54.161) 3.116 ms 7 183.207.67.106 (183.207.67.106) 3.576 ms 183.207.22.130 (183.207.22.130) 3.195 ms 183.207.66.102 (183.207.66.102) 3.638 ms 8 * 36.155.156.46 (36.155.156.46) 3.884 ms 36.155.156.54 (36.155.156.54) 4.690 ms 9 36.155.157.174 (36.155.157.174) 4.197 ms 36.155.157.170 (36.155.157.170) 4.344 ms 3.964 ms 10 * * * 11 * * * 12 * * * 13 * * * 14 * * * 15 * * * 16 * * * 17 * * * 18 * * * 19 * * * 20 * * * 21 * * * 22 * * * 23 * * * 24 * * * 25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
|
wireshark分析结果: