icmp协议的网络层协议是什么(icmp协议的网络层和数据链路层协议)
导语:「网络工程师」-网络层协议-ICMP协议
由于IP协议是一个不可靠、非连接的尽力传输协议,数据报是采用分组交换方式在网络上传送的。因此当路由器不能够选择路由或传输数据报时,或检测到一个异常条件影响它转发数据报时,就需要通知初始源网点采取措施避免。完成这个任务的机制就是ICMP(Internet Control Message Protocol),它是IP的一部分,属于网络层协议,其报文是封装在IP协议数据单元中进行传送的,在网络中起到差错和拥塞控制的作用。
ICMP报文封装在IP数据报中传输,封装结构如下图所示:
由于IP数据报首部校验和并不校验IP数据报的内容,因此不能保证经过传输的ICMP报文不产生差错。ICMP报文格式如下所示:
ICMP报文有8字节的报头和可变长度的数据部分。虽然对每一种报文类型,报头的其他部分是不同的,但前4字节对所有类型都是相同的。
(1)ICMP报文的第一个字段是ICMP的类型,它定义了报文类型;
(2)代码字段指明了发送这个特定报文类型的原因;
(3)校验和字段用于检测报文的正确性;
(4)报头的其他部分对每一种类型报文都是不同的。在差错报告报文的数据部分所携带的信息可找出引起差错的原始IP报文;在查询报文的数据部分则携带了基于查询类型的额外信息。
ICMP报文分为ICMP差错报告报文和ICMP询问报文;在ICMP协议中定义了13种报文,包括回送应答、目的地不可达、源站抑制、重定向(改变路由)、回送请求、数据包超时、数据报参数错误、时间戳请求、时间戳应答、信息请求(已过时)、信息应答(已过时)、地址掩码请求、地址掩码回答。常见报文类型如下所示:
报文种类
类型值
报文类型
报文定义
报文内容
ICMP差错报告报文
3
目的不可达
路由器与主机不能交付数据时,就向源点发送目的不可达报文
包括网络不可达、主机不可达、协议不可达、端口不可达、需要设置分片却设置里不分片、源路由失败、目的网络未知、目的主机未知、目的网络被禁止、目的主机被禁止、由于服务类型TOS网络不可达、由于服务类型TOS主机不可达、主机越权、优先权中止生效
4
源点抑制
由于拥塞而丢弃数据报时就向源点发送抑制报文,降低发送速率
5
重定向(改变路由)
路由器将重定向报文发送给主机,优化或改变主机路由
包括网络重定向、主机重定向、对服务类型和网络重定向、对服务类型和主机重定向
11
时间超时
丢弃TTL为0的数据,向源点发送时间超时报文
12
参数问题
发现数据报首部有不正确字段时丢弃报文,并向源点发送参数问题报文
ICMP询问报文
0
回送应答
收到回送请求报文的主机必须回应源主机回送应答报文
8
回送请求
13
时间戳请求
请求对方回答当前日期和时间
14
时间戳应答
回答当前日期和时间
ICMP报文应用有Ping命令(使用回送应答和回送请求报文)和Traceroute命令(使用时间超时报文和目的不可达报文)。
本文内容由小海整理编辑!