ocpp协议学习资料(-网络层协议-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命令(使用时间超时报文和目的不可达报文)。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com