Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189266
  • 博文数量: 71
  • 博客积分: 2990
  • 博客等级: 少校
  • 技术积分: 705
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-29 14:04
文章分类

全部博文(71)

文章存档

2011年(1)

2009年(1)

2007年(6)

2006年(42)

2005年(21)

我的朋友

分类: 系统运维

2005-03-29 14:04:47

ICMP(INTERNET控制报文协议):

ICMP是IP层的一个组成部分。ICMP报文是被封装在IP数据报中的:

IP首部ICMP报文


由于IP层提供不可靠、无连接的数据报传送服务,所以,需要由ICMP传递差错报文以及其他需要注意的信息。
ICMP报文的格式:

8位类型8位代码16位检验和
(不同类型和代码有不同的内容) 

各种类型的ICMP报文,是由报文中的类型字段和代码字段共同决定的

ICMP报文有查询报文、差错报文。
对于一份ICMP差错报文,报文始终包含IP首部和产生ICMP差错报文的IP数据报的前8个字节。
而对于下面情况,是不会产生ICMP差错报文:
1)ICMP差错报文
2)目的地址是广播或多播地址的IP数据报
3)作为链路层广播的数据报
4)不是IP分片的第一片
5)源地址不是单个主机的数据报(就是说,源地址不能为零地址、环回地址、广播地址或多播地址)

============================================

ICMP地址掩码请求与应答:
ICMP地址掩码请求与应答用于无盘系统在引导过程中获取自己的子网掩码。系统广播他的ICMP请求报文。
ICMP地址掩码请求和应答报文:

8位类型8位代码16位检验和
标识符  序列号
32位子网掩码


类型:当17为地址掩码请求;18为地址掩码应答
代码:均为0
标识符和序列号字段由发送端任意选择设定,这些值在应答中将被返回。这样,发送端就可以把应答和请求进行匹配。

============================================

ICMP时间戳请求与应答:
ICMP时间戳允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数

ICMP时间戳请求和应答报文格式:

类型(13/14)代码(0)16位检验和
标识符  序列号
发起时间戳
接收时间戳
传送时间戳

请求端填写发起时间戳,然后发送报文。
应答系统一收到请求报文,就填写接收时间戳。
应答系统经过处理,在发送时填写发送时间戳。
实际上,后面两个时间戳一般都设成相同的值。

============================================

ICMP端口不可达差错:
这个差错,就是IP数据报不能被正常送达。然后就产生这个ICMP报,送回该IP数据报发送地址。
ICMP报文是在主机之间交换的,不用目的端口号。

ICMP不可达报文:

类型(3) 代码(0-15)16位检验和
未用(必须为0) 
IP首部(包括选项)+原始IP报中数据前8字节

============================================

TO BE CONTINUED

阅读(795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~