1、ICMP数据报是在IP层的组成部分,是用来传递错误信息和其他信息的,在IP数据报内部传送
2、ICMP报文组成如下图:
3、当发送ICMP差错报文时,会始终包含产生该差错报文IP的首部和产生ICMP差错报文的IP首部之后的前8个字节,这样接受ICMP报文的模块根据IP数据报首部的协议以及IP数据报前8个字节中TCP、UDP报文首部的TCP、UDP端口号可判断协议的类型,一般的差错报文如下:导致差错的数据报中的 IP首部要被送回的原因是因为 IP首部中包含了协议字段,使得ICMP可以知道如何解释后面的 8个字节(在本例中是UDP首部),端口号是69,但是用的是8888,所以不可达:
4、下面几种情况不会再产生ICMP差错报文
ICMP差错报文
目的是广播地址的IP数据报
作为链路层广播的数据报
不是IP分片的第一片
源地址不是单个主机的数据报,即源地址不能为零地址、广播地址、环回地址、或多播地址
5、UDP的规则之一是如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符,那么UDP返回一个ICMP不可达报文。UDP的公共端口号是69
6、注意,ICMP报文是在主机之间交换的,而不用目的端口号,而每个20字节的UDP数据报则是从一个特定端口(2924)发送到另一个特定端口(8888)
08-16
08-16