当前位置:网站首页 > Haskell函数式编程 > 正文

报文格式有哪些种类(报文的格式有哪些)



1. ICMP 协议详解

  • 网际控制报文协议(Internet Control Message Protocol)
  • 该协议主要是用于辅助IP协议进行数据传输的
  • 可以报告错误信息或者异常情况

    它是 TCP/IP协议族的一个子协议,用于在 IP 主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

    ICMP 层区分不是很明显,一般划分在 IP层中通过 IP 包来封装ICMP数据 ,在实际传输中数据包的格式一般都是 IP 包 + ICMP包的格式,具体格式如下:

IP 首部(20字节) + 8 位类型 + 8 位代码 + 16 位校验和 + ICMP 首部其他部分( 7 个字节) + 数据。

如果用图表的形式展现出来就是下面的这张图了

ICMP的报文数据是通过封装在IP数据报中进行数据传输的

ICMP的报文分为两个部分:ICMP报文首部和ICMP报文数据

1.1 ICMP报文首部

  • 「类型」:主要指的是ICMP报文的种类(主要有两大类,后边会进行说明)
  • 「代码」:主要是指,不同的ICMP报文种类具体有哪些错误。
  • 「校验和」:主要是校验报文在整个传输中,是否存在错误。

在前边介绍IP协议首部中,有一个8位协议,它表明的是IP数据所携带的具体数据是什么协议的。ICMP的字段值为1

如果IP协议传输的数据是ICMP数据的话,那么,将会在协议中写入1

1.2 ICMP协议报文的两个种类

  • ICMP报文主要有两大功能:查询报文和差错报文

差错报告报文
  • 「网络不可达」:IP地址可以表示一个网络,当主机号全为0时就表示的是某一个网络,如果整个网络不可达,就会报告一个类型为3,具体代码为0的ICMP协议报文。
  • 「主机不可达」:如果计算机A要和计算机B进行通信,而计算机B是关机的状态,就会出现主机不可达的情况。
  • 「网络重定向」:传输给某一个网络的数据,可能不能走该网络了,需要进行重定向
  • 「主机重定向」:如果发送的报文,主机告知不能处理,请发送到另外一个主机。
询问报文
  • 「回送请求或应答」:主要是验证网络是否通。假设计算机A要和计算机B进行通信,A会发送一个空的数据给B,如果B收到,就给一个回应。
  • 「时间戳请求或应答」:当需要进行时间同步时,会用到这个。


    在前边的文章中有使用到ping命令来查看网络的响应时间和TTL。这部分主要是介绍ping的原理是什么。

    ping应用主要是使用ICMP的「询问报文」,它会发送「回送请求或应答」类型的报文。当使用ping命令的时候,它首先会组装一个IP协议的报文,然后在IP的数据报中组装ICMP的询问报文,然后通过数据链路层发送出去,这个就是ping应用的原理

    通常我们会使用ping命令来查看本地的网络是否通,或者网络质量是怎么样的。平时在家中,如何出现网络故障,我们也会使用ping命令来进行排查:

  • 第一步会先ping本地回环地址127.0.0.1(如果没有返回,说明协议栈有问题,这个时候可能需要重装系统,或重新安装协议栈)
  • 如果上一步正常返回,则ping网关地址(也就是路由器地址)。如果计算机是处于内网的话,一般就是ping 192.168.0.1或者ping 192.168.1.1。如果上一步ping网关也是通的,说明本机到路由器是通的,如果不通,说明网线或者wifi是有问题的。
  • 如果ping网关是通的,则ping远端地址(比如百度)。如果不通,则说明在你家到ISP之间网络是故障的,这个时候就需要联系电信或移动或联通
到此这篇报文格式有哪些种类(报文的格式有哪些)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 赛博朋克2077 战斗(赛博朋克2077 战斗模式)2025-11-06 19:27:08
  • ceph的存储类型(ceph是什么样的分布式存储)2025-11-06 19:27:08
  • 华为模拟器怎么进入用户模式(华为模拟器怎么进入用户模式界面)2025-11-06 19:27:08
  • pivot函数的作用(pivot函数用法 excel)2025-11-06 19:27:08
  • 暂无可用支付方式是什么意思(亲属卡暂无可用支付方式是什么意思)2025-11-06 19:27:08
  • yml文件怎么执行(yml文件格式)2025-11-06 19:27:08
  • ini文件编码(ini文件编码方式怎么改)2025-11-06 19:27:08
  • 如何设置a标签的样式(如何设置a标签的样式文件)2025-11-06 19:27:08
  • 安卓软件后缀名有哪些格式?(安卓应用软件的后缀名)2025-11-06 19:27:08
  • mysql窗口函数是什么(mysql5.7窗口函数)2025-11-06 19:27:08
  • 全屏图片