公司网站建设详细方案,淘宝客网站怎么做的人少了,网站建设好后为什么要维护,国内软件开发公司排行traceroute 是一个网络诊断工具#xff0c;用于跟踪和显示数据包从源主机到目标主机所经过的每一跳#xff08;路由器#xff09;的路径。它能够帮助用户识别网络路径中的瓶颈和故障点。traceroute 的工作原理主要基于 ICMP#xff08;Internet Control Message Protocol用于跟踪和显示数据包从源主机到目标主机所经过的每一跳路由器的路径。它能够帮助用户识别网络路径中的瓶颈和故障点。traceroute 的工作原理主要基于 ICMPInternet Control Message Protocol或 UDPUser Datagram Protocol和 IP 包的生存时间TTLTime To Live字段。以下是详细的工作原理
工作原理 初始化 traceroute 工具在运行时用户指定目标主机的IP地址或域名。工具初始化一些参数例如最大跳数、每个跳数的探测包数量等。 TTL 字段的作用 IP 包的 TTL 字段用于限制包在网络中的生存时间。每经过一个路由器TTL 值减1。当 TTL 值减到0时路由器丢弃该包并发送一个 ICMP “超时”Time Exceeded消息回源主机。 发送探测包 traceroute 首先发送一个TTL值为1的探测包ICMP或UDP包到目标主机。路由器R1收到TTL值为1的包将TTL减为0丢弃该包并向源主机发送一个ICMP超时消息。 接收 ICMP 超时消息 源主机收到来自R1的ICMP超时消息可以知道R1是到目标主机的第一跳。traceroute 记录R1的IP地址和往返时间RTT。 增加 TTL 并重复 traceroute 接着发送TTL值为2的探测包。R1将包转发给下一跳路由器R2。R2收到TTL值为1的包将TTL减为0丢弃该包并向源主机发送ICMP超时消息。源主机记录R2的IP地址和往返时间。 逐步增加 TTL 这个过程重复进行每次TTL值增加1直到包达到目标主机或达到预设的最大跳数。当探测包到达目标主机时目标主机通常会发送一个ICMP 目的不可达消息表示包已到达。 路径追踪完成 traceroute 显示从源主机到目标主机路径上的所有路由器的IP地址和各跳的RTT。
UDP 和 ICMP 的使用 Linux 中的 traceroute 默认情况下使用UDP包。目标端口从高值通常是33434开始递增。当目标主机收到UDP包时如果端口不可达它将发送一个ICMP 端口不可达消息。 Windows 中的 tracert 使用ICMP回显请求ICMP Echo Request。每个ICMP回显请求的TTL值逐步增加。目标主机会回复一个ICMP回显应答ICMP Echo Reply消息。
示例
运行 traceroute 的示例输出
traceroute to www.example.com (93.184.216.34), 30 hops max, 60 byte packets1 192.168.0.1 (192.168.0.1) 1.123 ms 1.089 ms 1.057 ms2 10.0.0.1 (10.0.0.1) 2.345 ms 2.300 ms 2.265 ms3 203.0.113.1 (203.0.113.1) 4.567 ms 4.523 ms 4.485 ms4 198.51.100.1 (198.51.100.1) 10.789 ms 10.754 ms 10.710 ms5 93.184.216.34 (93.184.216.34) 20.001 ms 19.967 ms 19.923 ms第一跳本地路由器IP地址192.168.0.1往返时间约1毫秒。第二跳第一个中间路由器IP地址10.0.0.1往返时间约2.3毫秒。第三跳第二个中间路由器IP地址203.0.113.1往返时间约4.5毫秒。第四跳第三个中间路由器IP地址198.51.100.1往返时间约10.7毫秒。第五跳目标主机IP地址93.184.216.34往返时间约20毫秒。
总结
traceroute 通过逐步增加探测包的TTL值来确定数据包从源主机到目标主机路径上的每个中间路由器。利用ICMP超时消息或ICMP端口不可达消息它能够显示每一跳的IP地址和往返时间帮助用户识别网络路径中的问题和瓶颈。