网际控制报文协议 ICMP

Wu Jun 2020-01-08 21:43:49
Categories: > Tags:

为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了 ICMP 。ICMP 允许主机或路由器i报告差错情况和提供有关异常情况的报告。封装在 IP 数据报中,但是不属于高层协议。

1 ICMP 报文的种类

ICMP 报文分为差错报告报文询问报文

1)差错报告报文

(1)报文类别
(2)报文的形成方法

所有ICMP首部包括类型、代码与检验和三部分共4个字节的信息字段。ICMP差错报文的数据字段格式相同,由收到的需要差错报告的 IP 数据报首部及其数据部分前8个字节组成。

(3)不应发送的几种情况

2)询问报文

2 ICMP 应用举例

1)Ping

Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。

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

2)Traceroute

Traceroute(windows系统中叫做tracert) 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。

Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。