• ICMP:Internet控制报文协议


    1、引言

      ICMP被认为是IP层的一部分。它传递差错报文及其他需要注意的事项。

    2、ICMP报文的类型

      通过ICMP报文中的8位类型和8位代码确定报文类型。

    以下情况不会造成ICMP差错报文:

    1. ICMP差错报文
    2. 目的地址是广播地址的IP数据报
    3. 作为链路层广播的数据报
    4. 不是IP分片的第一片
    5. 源地址不是单个主机的数据报,即源地址不能是零地址、环回地址、广播地址和多播地址

    以上的规则是为了防止产生广播风暴。

    3、ICMP地址掩码请求与应答

      此报文用于无盘系统在引导过程中获取自己的子网掩码。

      标识符和序列号字段有发送端任意选择设定,这些值在应答时返回,发送端就可把应答与请求进行匹配。

      假定请求的主机知道自己的Internet地址,然后向目的地址255.255.255.255广播地址掩码请求报文,这时地址掩码域中全部为“0”,知道正确地址掩码的路由器就会返回一个地址掩码应答报文,该应答报文中就包含了请求主机所需的地址掩码。

    4、ICMP时间戳请求和应答

      此报文允许系统向另一个系统查询当前的时间。返回的建议值是自午夜开始算的毫秒数(Coordinated Universal Time, UTC)。

      

      请求端填写发起时间戳,然后发送报文。应答系统受到请求报文时,填写接收时间戳,在发送应答时填写发送时间戳。提供三个字段的原因是,让发送方分别计算发送请求的时间和发送应答的时间。

      考虑到报文传送的时间,实际校时需要进行调整(difference - RTT/2)。

    5、ICMP端口不可达差错

      ICMP的一个规则是,ICMP差错报文必须包含生成该差错报文的数据报IP首部,还必须至少包括跟在该IP首部后面的前8个字节,如上图所示。

      UDP首部包含了源端口号、目的端口号、长度和校验和。

      IP首部被送回是因为其包含了协议字段,使得ICMP可知道如何解释后面的8个字节。

    6、ICMP报文的4.4BSD处理

      

    后面还会介绍Ping程序所使用的回应请求和应答报文、处理IP路由的ICMP报文。

  • 相关阅读:
    J2EE(一)——开发简单WEB服务器
    日报--2015年7月10日
    MVC @Html控件(转载)
    Asp.NET MVC--【Asp.net】
    附加到进程 调试技巧--【VS】
    快速阅读学习方法笔记
    匿名函数和闭包--【JavaScript】
    Repeater显示数据--[Asp.Net]
    FileUpLoad上传文件--[Asp.Net]
    35Canlender--[Asp.Net]
  • 原文地址:https://www.cnblogs.com/mofei004/p/8994949.html
Copyright © 2020-2023  润新知