本文共 733 字,大约阅读时间需要 2 分钟。
ICMP
差错报文,报文是在IP数据报内部传输的
规范:
ICMP报文
各个字段:
类型和代码决定了不同类型的ICMP报文。查询报文还是差错报文。响应差错报文的时候不会再生成差错报文以免无限递归
整个差错报文由IP首部,ICMP数据报和产生ICMP数据报的IP数据报的前8个字节组成
这样就可以与协议(IP首部中的协议字段)和用户进程(IP数据报8个字节中的TCP或UDP首部中包含的端口号)联系起来
不产生ICMP差错报文的情况
- ICMP差错报文
- 目的地址是广播地址或多播地址的IP数据报
- 作为链路层广播的数据报
- 不是IP分片的第一片
- 源地址不是单个主机的数据报,也就是说源地址不能是零地址,环回地址,广播或多播地址 这些限制是防止ICMP差错报文对广播组发送大量的数据
ICMP地址掩码请求与应答
用于无盘系统在引导过程中获取自己的子网掩码。请求方式是广播
标识符和序列号由发送端自己填。这样在应答的时候能对的上不搞错
流程:
无盘系统广播ICMP地址掩码请求。如果有主机收到了该请求就会进行应答,应答中包含了子网掩码的信息
ICMP地址掩码应答必须是收到请求接口的子网掩码的主机
ICMP时间戳请求与应答
ICMP时间戳请求使指向另一个系统查询当前时间,返回的值UTC(好像也可以改成其他格式)到现在的毫秒数 时间从1900年1月1日0点0分0秒开始算
报文格式
请求端写发起时间戳 应答端写接受时间戳和传送事件戳。
ICMP端口不可达差错
UDP数据报的目的端口与目的主机上的进程不相符会返回一个ICMP不可达报文
这是UDP数据报发送失败后返回的数据报
ICMP不可达数据报报文
利用原始IP数据报中数据的前8字节能够分析出是哪个协议的哪个端口发起的数据报
转载地址:http://rzepi.baihongyu.com/