网际控制报文协议ICMP

2019-12-09  本文已影响0人  Cubery

概念

 网际控制报文协议ICMP(Internet Control Message Protocol),是一个网络层协议,用于向高层协议(TCP或UDP)传递数据包的差错信息。ICMP虽然是一个网络层协议,但是和ARP/RARP协议不同的是,它是作为IP报文的数据部分传递给数据链路层的。

ICMP协议格式

icmp类型和代码.png
icmp类型和代码续.png

 ICMP的报文格式如下:


icmp报文格式.png

ping的原理

 ping相关的ICMP报文如下:

type code message
0 0 Echo Reply
8 0 Echo Request
3 0 网络不可达
3 1 主机不可达
3 2 协议不可达
3 3 端口不可达
5 0 重定向

 ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

tracert的原理

  tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。 为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。 该报文到达***个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。 然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。 这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。 Tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

上一篇 下一篇

猜你喜欢

热点阅读