常见报文格式及其字段说明

常见报文格式及其字段说明同步 在连接建立时同步序号用 syn 1 amp ack 0 这是请求连接报文 syn 1 amp ack 1 是同意建立连接

大家好,欢迎来到IT知识分享网。

二层报文

二层报文是指工作在数据链路层的传输单位,主要是以太网帧。

1.报文格式

以太网帧
目的地址: 该帧要发送到哪里,6个字节的MAC地址即物理地址,通常是不可更改的地址。
源地址: 该帧是从哪里发来的,同样是MAC地址。
类型:2字节,用来区分以太网帧类型比如,以太网帧、IP数据报、ARP请求和应答等。0x0800,代表IPv4;0x86DD,代表IPv6;0x0806,代表ARP;0x8100,代表IEEE 802.1q;等等。不同的类型字段值可以用来区别不同的帧类型。接收端知道是什么数据类型后,接下来可以做正确的操作。
数据: 传送的数据大小为46~1500字节,不够46字节的将进行填充,最大长度为1500字节。
CRC: 循环冗余校验,用于帧内后续字节差错。




Wireshark

在这里插入图片描述
抓到了目的地址,源地址,类型。

广播报文

广播报文是以广播的形式传输消息或信息。广播报文向网络中的所有报文发送信息,不需要特定的目的地址,被广播到网络当中。 
2.Wireshark(ARP为例)

在这里插入图片描述
以ARP协议为例,广播报文的目的MAC地址为ff:ff:ff:ff:ff:ff。

ARP

ARP(Address Resolution Protocol)地址解析协议,根据IP地址获取物理地址的一个TCP/IP协议。

1.ARP功能:
1.将IP地址解析为MAC地址。 2.维护IP地址与MAC地址的映射缓存,即ARP表项。 3.实现网段内重复IP的检测。 
2.报文格式在这里插入图片描述

目的MAC地址: ARP请求的目的以太网地址,广播地址,即全为1。

源MAC地址: 发送ARP请求的以太网地址。

帧类型: 以太网帧类型表示后面的数据类型,ARP请求和ARP应答报文为:0x0806。

硬件类型: 硬件地址类型,硬件地址不止以太网一种,是以太网类型时,值为1。

协议类型: 表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。

硬件地址长度和协议地址长度: 报文中硬件地址的长度(ARP报文中,它的值为6),报文中协议地址的长度(ARP报文中,它的值为4)。
op操作类型: 是操作类型字段,1 是ARP请求,2是 ARP应答,3是 RARP请求和4是 RARP应答。

发送端以太网地址: 发送方设备的硬件地址。

发送端以太网地址: 发送方设备的IP地址。
 
目的以太网地址:接收方设备的硬件地址。

目的IP地址: 接收方设备的IP地址。

3.工作过程
4.Wireshark抓包

DHCP

1.DHCP功能
2.报文格式

在这里插入图片描述
op: 报文的操作类型。分为请求报文和响应报文。客户端发送给服务器的包为请求报文,值为 1;服务器发送给客户端的包为响应报文,值为 2。
htype: DHCP 客户端的 MAC 地址类型。htype 值为 1 时表示为最常见的以太网 MAC 地址类型。
hlen: 硬件地址长度。以太网 MAC 地址长度为 6 个字节,即 hlen 值为 6。
hops: 跳数,DHCP 报文经过的中继数量。每经过一个路由器,该字段就会增加 1。如果没有经过路由器,则值为 0(同一网内)。
xid: 事务 ID。客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。在一次请求中所有报文的 xid 都是一样的。
secs: DHCP 客户端从获取到 IP 地址或者续约过程开始到现在所过去的时间,以秒为单位。在没有获得 IP 地址前,该字段始终为 0。
flags: BOOTP 标志位。只使用第 0 比特位,是广播应答标识位,用来标识 DHCP 服务器应答报文是采用单播还是广播发送。其中,0 表示采用单播发送方式,1 表示采用广播发送方式。其余位尚未使用。
ciaddr: DHCP 客户端的 IP 地址。仅在 DHCP 服务器发送的 ACK 报文中显示,在其他报文中均显示为 0。这是因为在得到 DHCP 服务器确认前,DHCP 客户端还没有分配到 IP 地址。
yiaddr: DHCP 服务器分配给客户端的 IP 地址。仅在 DHCP 服务器发送的 Offer 和 ACK 报文中显示,其他报文中显示为 0。
siaddr: 为 DHCP 客户端分配 IP 地址等信息的其他 DHCP 服务器 IP 地址。仅在 DHCP Offer、DHCP ACK 报文中显示,其他报文中显示为 0。
giaddr: 转发代理(网关)IP 地址,DHCP 客户端发出请求报文后经过的第一个 DHCP 中继的 IP 地址。如果没有经过 DHCP 中继,则显示为 0。
chaddr: DHCP 客户端的 MAC 地址。在每个报文中都会显示对应 DHCP 客户端的 MAC 地址。
sname: 为客户端分配 IP 地址的服务器名称(DNS 域名格式)。只在 DHCP Offer 和 DHCP ACK 报文中显示发送报文的 DHCP 服务器名称,其他报文显示为 0。
file: DHCP 服务器为 DHCP 客户端指定的启动配置文件名称及路径信息。仅在 DHCP Offer 报文中显示,其他报文中显示为空。
options: 可选选项,格式为“代码+长度+数据”。














3.工作流程

在这里插入图片描述
1、客户端发送一个广播discover报文

2、Server收到报文后,会向客户端发送offer报文(携带为客户端分配的地址)

3、客户端收到offer报文后,会服务器发送广播request报文

4、Server收到报文之后会回复一条ACK进行确认

5、客户端收到ack之后会执行DAD(重复地址检测),如果冲突了会给服务器发送decline报文,告知这个地址无法使用,然后重

在这里插入图片描述
如上述工作流程。

4.Wireshark抓包

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
引用博客,这篇博客讲解非常详细,同时介绍了DHCPv6点击访问


IP报文

IP协议(Internet Protocol)是TCP/IP协议族中最核心的协议,提供不可靠的、无连接的、尽力而为的数据报传输服务。

1.IP协议功能

设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。

2.IPv4报文格式

IP数据报文的长度实际上受到以太网的影响,以太网的MTU为1500字节,那么IP的数据报文长度要小于1500.

IPv6数据报文

3.Wireshark

在这里插入图片描述
引用博客IPv4 vs IPv6 点击访问

TCP报文

TCP——传输控制协议(Transmission Control Protocol)。是一种面向连接的,可靠的,基于字节流的传输层通信协议。

1. TCP功能

  • 有连接:TCP类似于打电话,需要建立连接,才可以发送消息.
  • 可靠传输:发送方发送的数据,并不是百分百发送给接收方,而是尽力而为,尽可能的把数据传输过去,同时,如果还是传输不过去,至少能知道.
  • 面向字节流:数据传输与文件读写类似,是”流式”的(一次可以读一个字节或者十个字节或者一百个字节)
  • 全双工:一个通信通道,可以双向传输.(既可以发送,也可以接收)
    TCP可以实现可靠传输、流量控制和拥塞控制等。

2.TCP报文格式

TCP报文段前20个字节是固定的,后面4n字节是需要根据需要而增加的情况,因此TCP首部的最小长度是20字节。在这里插入图片描述

  • 源端口和目的端口: 各占两个字节,分别写入源端口号和目的端口号。
  • 序号: 4字节,表示本报文段所发送数据的第一个字节的编号。
  • 确认号: 接收方期望收到发送方下一个报文段的第一个字节数据的编号
  • 数据偏移: 4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。实际上是TCP报文段的首部长度。
  • 保留: 6位保留字段:为TCP将来的发展预留空间,目前必须全部为0 。
  • URG:紧急字段,1时,紧急,请尽快传送。
  • ACK:确认字段,ack=1,确认号有效,0无效,tcp规定,建立连接后的所有传送的报文段段都要把ack置为1.
  • PUSH:推送,希望尽快收到响应,不用等到缓存满了再想上交付。
  • RST: 复位,rst=1,连接出现严重差错,必须释放连接,重新建立连接。
  • SYN:同步,在连接建立时同步序号用,syn=1&ack=0,这是请求连接报文,syn=1&ack=1,是同意建立连接。syn=1是一个连接请求或者连接接受报文。
  • FIN: 终止,1时,发送完毕,要求释放运输连接。
  • 窗口: 2字节,从确认号算起,可以接受对方发送的数据量,因为对方的数据缓存空间是有效的。
  • SYN: 同步,在连接建立时同步序号用,syn=1&ack=0,这是请求连接报文,syn=1&ack=1,是同意建立连接。syn=1是一个连接请求或者连接接受报文。2字节,计算校验和时,要加上12字节的伪首部。
  • 紧急指针:2字节,=1时才有意义。
  • 选项:长度可变,最长可以40字节。
    3.TCP三次握手建立连接&四次挥手断开连接

    三次握手
    在这里插入图片描述

  • TCP连接发起方,发送syn=1,ack=0的请求连接报文,初始序列号a为随机数字,确认序号为0.
  • 接收方收到合法的syn报文后,回复一个syn=1,ack=1 的确认连接报文后,初始序列号为b的随机数字,因为是回复报文,确认序号要在a上+1,即为a+1
  • 发送收到后,回复接收方一个序列号好为a+1,确认序号为b+1的报文,接收方收到后,TCP双向连接建立.

四次挥手
在这里插入图片描述

  • 1.发送方发送一个FIN=1的不带数据的TCP报文段。
  • 2.接收方收到后,回复一个ACK置位的TCP报文。
  • 3.接收方也没有要发送的数据后,发送FIN置位的TCP报文。
  • 4.发送方收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。
3.wireshark

在这里插入图片描述
可以看到源端口,目的端口等信息。

UDP报文

用户数据报协议UDP(User Datagram Protocol)在传送数据之前不需要建立连接,接收方收到后,不需要做出任何确认,UDP提供不可靠交付,UDP简单高效。

1.UDP功能
  • UDP是无连接的
  • UDP使用尽最大努力交付
  • UDP是面向报文的
  • UDP没有拥塞控制
  • UDP支持一对一、一对多、多对一和多对多的交互通信
  • UDP的首部开销小
2.UDP报文格式

在这里插入图片描述

源端口: 源端口号,2字节,需要对方回信时选用,不需要时可以全为0.
目的端口:目的端口号,2字节,这在终点交付报文时必须使用。
长度:UDP用户数据报的长度,其最小值为8(仅有首部)。
校验和:检测UDP用户数据报在传输中是否有差错,有错就丢弃。


wireshark

在这里插入图片描述
可以看到源端口,目的端口,长度校验和。

ICMP报文

ICMP协议作用
ICMP报文格式

在这里插入图片描述
类型: 占1字节,标识ICMP报文的类型,从类型值来看ICMP报文可以分为两大类。第一类是取值为1~127的差错报文,第2类是取值128以上的信息报文
代码: 占1字节,标识对应ICMP报文的代码。它与类型字段一起共同标识了ICMP报文的详细类型
校验和: 占2字节,这是对包括ICMP报文数据部分在内的整个ICMP数据报的校验和,以检验报文在传输过程中是否出现了差错。
内容: 占8字节



ICMP报文分为ICMP差错报告报文和ICMP询问报文。其报文类型如下在这里插入图片描述
在这里插入图片描述
引用博客,较为详细:点击访问
ICMP的重要应用就是分组网间探测PING(Packet InterNet Groper),用来测试两台主机的连通性。


wireshark

ICMP回复报文ICMP回复报文

在这里插入图片描述
ICMP请求报文。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/110566.html

(0)
上一篇 2026-01-30 18:21
下一篇 2026-01-30 18:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信