tracert命令的作用 tracert命令追踪ip加端口


在计算机网络领域,ICMP(Internet控制报文协议)是一种重要的协议,常与ICMP ping和tracert一同被提及。ICMP基于IP协议的支持工作,虽然其数据封装位于IP包头内部,但它在OSI模型中是一个三层协议。

那么,为什么我们需要使用ICMP协议呢?它主要发挥了哪些作用呢?又具体是如何实现其功能的呢?

ICMP主要具备两大功能:一是ping,用于检测网络连通性;二是tracert,用于确定IP数据包访问目标的路径。

关于ICMP的ping操作原理。当我们以ping加IP地址的格式进行网络连通性测试时,设备会执行以下操作:

① Ping命令会构建一个格式固定的ICMP请求数据包(Echo Request)。

② 该数据包连同目的地址一起交给IP层协议处理。

③ IP协议添加本机地址和目的地址及控制信息后,交给数据链路层协议。

④ 数据链路层封装的源、目MAC地址后交给物理层。

⑤ 物理层将数据转换为二进制比特流发出。

⑥ 目标主机接收到比特流后开始拆包处理。

⑦ 当拆开最外层帧头发现目的地址与自己匹配时,会继续拆包并处理ICMP请求。

⑧ 继续拆开IP包头后,根据协议号交给ICMP处理。

⑨ ICMP收到请求后进行响应,回复Echo re。

ICMP报文的前4个字节为统一格式,包含类型、代码和校验和等字段。不同类型的ICMP报文,其剩余字段可能有所不同。

关于Tracert的工作原理。Tracert的工作流程大致如下:

1. Tracert发送TTL值为1的IP数据包至目的地。路径上的首个路由器收到后,会减少TTL值至0并丢弃该数据包,并回复ICMP TTL超时消息,其中包含源地址、数据包内容和路由器地址。

2. Tracert接收到此消息后,记录下该路由器的存在。

4. 当数据包到达目的地时,不会发送ICMP TTL超时消息。

5. Tracert通过发送UDP数据包至不常见端口(如30000以上端口)来检测到达目的地的情况,如收到“ICMP端口不可达”消息则可判断已到达目的地。

为了确保数据包的稳定传输,Tracert每次发送三个数据包。

了解了ping与tracer的工作原理后,我们可以在实际中应用它们。例如,在AR1设备上使用ping命令测试是否能够到达5.5.5.5这个IP地址。我们还可以使用Wireshark等工具抓取ICMP的ping包并查看其内容。

在网络中,ICMP报文的类型和代码标识了网络中导致不连通的原因。常见的类型包括回显应答(ping应答)、回显请求(ping请求)、超时、网络不可达、主机不可达以及重定向等。

接下来,我们可以进行Tracert测试。在AR1上使用Tracert 5.5.5.5命令来测试到达该目的地的路径。通过分析下游设备返回的ICMP报文,我们可以逐步推导出网络中的节点信息。