FPGA-UDP实验-3. 实验2-ICMP

时间:2024-07-07 07:38:26

3.1. ICMP协议介绍

  • ICMP(Internet Control Message Protocol) Internet 控制报文协议。它是 TCP/IP 协议簇的一个子协议,用于在 IP 主机、 路由器之间传递控制消息。
  • ping和tracert(显示到达目的主机的路径)都利用ICMP协议来实现网络功能。ICMP就是一个“错误侦测与回报机制”,目的是让我们能够检测网络的连接状况,确保网络连接的准确性。当路由器在处理一个数据包的过程中发生了意外,可以通过ICMP向数据包的源端报告有关事件
  • 主要功能有:
    • 侦测远端主机是否存在
    • 建立与维护路由资料
    • 重导资料传送路径(ICMP重定向)
    • 资料流量控制
      在这里插入图片描述

3.2. IP协议介绍

IP协议是TCP/IP协议簇中的核心协议,也是TCP/IP协议的载体,IP协议规定了数据传输时的基本单元和格式
所有的TCP UDP ICMP数据都以IP数据报格式传输,IP数据报的格式如图所示
在这里插入图片描述

第二行的标识|标志|片偏移都是和数据包分组发送相关的
第三行的协议:表示数据报所携带上层数据使用的协议类型 ICMP为1 TCP为6 UDP为17;首部校验和:校验IP数据报头部是都被破坏,篡改和修改等

3.3. ICMP协议

3.4. 协议介绍

IP头部就在ICMP报文的前面(ICMP的首部在IP层的数据段),一个ICMP报文包括IP头部,ICMP头部和ICMP报文IP头部的Protocol为1说明这是一个ICMP报文,ICMP头部的类型(Type)用于说明ICMP报文的作用与格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有的数据都在ICMP头部的后面

3.5. 一帧ICMP报文

在这里插入图片描述

  • ICMP首部一共8个字节,同IP首部一样,也是一行以32位(4个字节)为单位

  • 类型和代码表示的含义

    类型/代码 含义
    类型 0,代码 0 表示回显应答(ping 应答)
    类型 8,代码 0 表示回显请求(ping 请求)
    类型 11,代码 0 超时
    类型 3,代码 0 网络不可达
    类型 3,代码 1 主机不可达
    类型 5,代码 0 重定向
  • 标识符(Identifier):占用了 16 bit 位,对于每一个发送的数据报进行标识。

  • 序列号(Sequence number):占用了16bit位,对于发送的每一个数据报文进行编号,比如:发送的第一个数据报序列号为 1,第二个序列号为2。