ICMP数据报tracert命令
Q: 结合实例“tracert www.163.com ”给出 tracert 命令的原理。
tracert命令是一款常用的网络诊断工具,它可以追踪Internet上从一个起始点到达另一个目的地的路由路径,并显示每个跃点的延迟时间。当我们执行“tracert www.163.com ”的时候,操作系统就会发送一系列的数据包探测从本机到目标地址的路由,其中包括访问的每个信号跳跃点的详细信息。接下来,我将简要介绍一下“tracert”命令的原理。
应用层:用户在终端设备输入tracert命令并按下回车,操作系统通过应用层协议将输入的命令传递给传输层。
传输层:操作系统通过传输层协议将tracert命令和其他必要信息打包成域数据报并发往底层网络。此处一般使用ICMP协议。
网络层:DNS服务负责将www.163.com解析为其对应的IP地址,并告诉我们的计算机。
数据链路和物理层:数据包被转化为数据流,并在网络上通过一系列数据链路和物理层传输,最终抵达目标主机。
目标主机收到数据包并返回结果,但是这个时候 tracert 命令不会停止工作;删除不在路由路径中的信息,并继续向远程主机发送数据包。当跃点信息关于目标系统返回时,则显示到终端上。
返回数据经过数据链路和物理层传输,最终抵达我们的计算机,操作系统将其解析为人们可读的格式并在命令行中输出。
总之,“tracert”命令利用ICMP协议特别设计的“时间超时”机制,通过发送数据包,跟踪这些数据包经过的每个路由器,最终确定到达目标地址所需的最佳路线。逐级探测路由器的原理是基于TTL值(Time to Live),它告诉路由跳出期限已过期的报文需要被丢弃。该信息源于每个传输包中的IP头部,一开始被设定成一定的值,中转节点的路由器在收到此类数据包后,会减1并再次转发给下一跃点,这样每一个中转节点就会更新TTL值,直到最后一个到达目的地址。这些来回传输的数据包的交互过程显示了网络连接的性能和路由可能出现的问题,帮助管理员更好地诊断和修复网络问题。