网络层:ICMP(Internet Control Message Protocol)互联网控制报文协议

https://blog.csdn.net/qq_41721618/article/details/96207428
写的极其好,本文只是对原文的再规整

报头格式
在这里插入图片描述
1.类型(type)+代码(code): 决定ICMP报文的类型。
检验和: 检验报文是否完整
2.数据部分: 不同类型的ICMP报文,数据部分的内容也不同
例如—在ICMP Redirect类型报文中,数据部分用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。在Echo类型报文中,数据部分包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联


ICMP消息(报文)类型
ICMP数据报定义了各种错误消息,用于诊断网络连接性问题;
根据这些错误消息,源设备可以判断出数据传输失败的原因
在这里插入图片描述
ICMP消息使用Type字段定义消息大类,用Code字段表示消息的具体类型,比如,类型为3的消息表示目的不可达,不同的Code值表示不可达的原因,包括目的网络不可达(Code=0)、目的主机不可达(Code=1)、协议不可达(Code=2)、目的TCP/UDP端口不可达(Code=3)等.(0网、1主、2协、3端不可达)

在这里插入图片描述
主要功能
1.***ICMP Echo Request和ICMP Echo Reply***分别用来查询和响应某些信息,进行差错检测。
ICMP Echo消息常用于诊断源和目的之间的网络连通性,还可以提供其他信息,如报文往返时间等。 用于检测目的主机是否可以到达
在这里插入图片描述
在这里插入图片描述
2.***ICMP Redirect重定向消息***用于支持路由功能
在这里插入图片描述
如图所示,主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,因为此转发路径是更优的路径。所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。主机收到Redirect消息后,向RTA发送报文,RTA会将报文转发给服务器A。
3.其他
ICMP差错报文都是由路由器发送到源主机的,因为IP数据报中含有源主机的IP地址,报告给源主机是最可行的方案
如果网络中发生了环路,导致报文在网络中循环,最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备又比如如果目的不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不可达的情况有多种,如果是网络设备无法找到目的网络,则发送目的网络不可达消息;如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息


ICMP报文传输
ICMP消息封装在IP报文的数据部分中
在这里插入图片描述
在这里插入图片描述
ICMP应用
1.Ping:回显信息程序—Echo request, Echo reply测试目的主机或路由器是否可以到达
2.Tracert:路径跟踪程序—显示数据包在网络传输过程中所经过的每一跳,将每一个经历的路由器的ip地址都记录回传。

发布了54 篇原创文章 · 获赞 1 · 访问量 2743

猜你喜欢

转载自blog.csdn.net/weixin_44682507/article/details/103330522