之前就很好奇为什么使用ping命令就可以知道网络是否连通,如果出错还可以告诉我什么地方有问题。在今天的直播课里老师解释了什么是ICMP协议之后终于知道为什么了。
1.ICMP协议
2.ICMP报文格式
3.各类ICMP报文介绍
ICMP网络控制报文协议是ICMP是TCP/IP协议簇的核心协议之一,它用于在IP网络设备之间发送控制报文,传递差错、控制、查询等信息。分为差错报告报文和询问报文
简单来说,ICMP协议就像是网络中的医生,可以检测并汇报网络中可能出现的问题。
ICMP消息头部如下:
Type:类型,占一个字节,标识报文的类型,值为1-127时是差错报文,值为128及以上时时信息报文。
Code:代码,占一个字节,标识ICMP报文的代码,与类型一起标识了ICMP的详细信息。
Checksum:校验和,用来检验报文在传输过程中是否出现了差错。
Message Body:数据部分,是ICMP的数据。
封装了ICMP消息的IP头部格式如下:
常见的ICMP类型和含义如下:
ICMP Echo Requset/replay消息,如下:
Type:占1字节,请求回显值为0;回显应答值为8.
Code:占1字节,此处值为0.
Checksum:占2字节,校验和。
Identifier:占2字节,标示符,发送端标识此发送的报文。
Sequence Number:占2字节,序列号,发送端发送的报文的序号,发一次加一。
Data:长度可变,其中包含要返回给发送者的数据。回显应答通常返回与所收到的数据完全相同的数据。
ICMP请求消息,如图:
ICMP应答消息如图:
各报文如显示就是上面的图。

ICMP目的不可达消息如图:
目的不可达时:
Type:消息类型值为3
Code:消息代码,部分常见的:
0 = net unreachable;网络不可达 ;
1 = host unreachable;主机不可达 ;
2 = protocol unreachable;协议不可达;
3 = port unreachable; 端口不可达,使用Tracert命令时发送的ICMP报文即为此类。
Checksum:校验和。
Unused:未使用,值为0.
Internet Header + 64 bits of Original Data Datagram:IP首部+原始数据包的前8字节

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159100.html