分类: 系统运维
2005-03-29 14:04:47
ICMP(INTERNET控制报文协议):
ICMP是IP层的一个组成部分。ICMP报文是被封装在IP数据报中的:
IP首部 | ICMP报文 |
由于IP层提供不可靠、无连接的数据报传送服务,所以,需要由ICMP传递差错报文以及其他需要注意的信息。
ICMP报文的格式:
8位类型 | 8位代码 | 16位检验和 |
(不同类型和代码有不同的内容) |
---|
ICMP报文有查询报文、差错报文。
对于一份ICMP差错报文,报文始终包含IP首部和产生ICMP差错报文的IP数据报的前8个字节。
而对于下面情况,是不会产生ICMP差错报文:
1)ICMP差错报文
2)目的地址是广播或多播地址的IP数据报
3)作为链路层广播的数据报
4)不是IP分片的第一片
5)源地址不是单个主机的数据报(就是说,源地址不能为零地址、环回地址、广播地址或多播地址)
============================================
ICMP地址掩码请求与应答:
ICMP地址掩码请求与应答用于无盘系统在引导过程中获取自己的子网掩码。系统广播他的ICMP请求报文。
ICMP地址掩码请求和应答报文:
8位类型 | 8位代码 | 16位检验和 |
标识符 | 序列号 | |
---|---|---|
32位子网掩码 |
============================================
ICMP时间戳请求与应答:
ICMP时间戳允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数
ICMP时间戳请求和应答报文格式:
类型(13/14) | 代码(0) | 16位检验和 |
标识符 | 序列号 | |
---|---|---|
发起时间戳 | ||
接收时间戳 | ||
传送时间戳 |
============================================
ICMP端口不可达差错:
这个差错,就是IP数据报不能被正常送达。然后就产生这个ICMP报,送回该IP数据报发送地址。
ICMP报文是在主机之间交换的,不用目的端口号。
ICMP不可达报文:
类型(3) | 代码(0-15) | 16位检验和 |
未用(必须为0) | ||
---|---|---|
IP首部(包括选项)+原始IP报中数据前8字节 |
============================================
TO BE CONTINUED