现在的位置: 首页 > 综合 > 正文

(6)ICMP:Internet控制报文协议

2018年04月01日 ⁄ 综合 ⁄ 共 954字 ⁄ 字号 评论关闭

一、简介

    ICMP经常被认为是IP层的一个组成部分。它传递差错报文以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。

    ICMP报文是在IP数据报内部被传输的,如下所示:

    ICMP报文的格式如下所示:

    校验和字段覆盖整个ICMP报文。ICMP的校验和时必需的。ICMP报文的详细类型介绍详见书中P51。要说明的是,下面各种情况下不会产生ICMP差错报文:

    (1)ICMP差错报文;

    (2)目的地址是广播地址或多播地址的IP数据报;

    (3)作为链路层广播的数据报;

    (4)不是IP分片的第一片;

    (5)源地址不是单个主机的数据报。

    这些规则是为了防止允许ICMP差错报文对广播分组影响所带来的广播风暴。

二、ICMP地址掩码请求和应答

    ICMP地址掩码请求用于无盘系统在引导过程中获取自己的子网掩码。系统广播它的ICMP请求报文(这一过程与无盘系统在引导过程中用RARP获取IP地址是类似的)。无盘
系统获取子网掩码的另一个方法是BOOTP协议。

    ICMP地址掩码请求和应答报文格式如下所示:

    ICMP报文中的标识符和序列号字段有发送端指定,在应答中返回,这样发送端就可以把应答和请求进行匹配。

三、ICMP时间戳请求和应答

    ICMP时间戳请求允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始计算的毫秒数,协调的统一时间UTC。提供了毫秒级的分辨率。

    ICMP时间戳请求和应答报文格式如下所示:

    请求端填写发起时间戳,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。但是,实际上,大多数的实现把后面两个字段都设成相同的值。

四、ICMP端口不可达差错

    ICMP差错报文,即端口不可达报文,它是ICMP目的不可到达报文中的一种,以此来看一看ICMP差错报文中所附加的信息。

    “UDP端口不可达”返回的ICMP报文格式如下所示:

    ICMP的一个规则是, ICMP差错报文必须包括生成该差错报文的数据报IP首部(包含任何选项),还必须至少包括跟在该IP首部后面的前8个字节(包含源端口和目的端口)。在我们的例子中,跟在IP首部后面的前8个字节包含UDP的首部。

抱歉!评论已关闭.