常见网络报文数据包格式
当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。而再这个过程中,每一层都会对要发送的数据加一些首部信息。整个过程如下图。
当我们应用程序用TCP传输数据的时候,数据被送入协议栈中,然后逐个通过每一层,知道最后到物理层数据转换成比特流,送入网络。而再这个过程中,每一层都会对要发送的数据加一些首部信息。整个过程如下图。
以太网帧格式
以太网常用帧格式有两种,一种是Ethernet II,另一种是IEEE 802.3 格式。这两种格式区别是:Ethernet II中包含一个Type字 段,。而IEEE 802.3格式中,此位置是长度字段。 其中Type字段描述了,以太网首部 后面所跟数据包的类型,例如Type为0x0800时为IP协议包,以太网中多数数据帧使用的是Ethernet II帧格式。
Ethernet II帧格式
type类型
|
数值 |
值描述 |
|
IPv4协议包 |
0x0800 |
|
ARP协议包 |
0x0806 |
|
802.1Q VLAN |
0x8100 |
|
ipv6协议包 |
0x86DD |
|
MPLS Label |
0x8847 |
|
PPPoE |
0x8864 |
|
lldp |
0x88cc |
IEEE 802.3 帧格式
前导码:Ethernet II是由8个8‘b10101010构成,IEEE802.3由7个8‘b10101010+1个字节SFD..
目的地址:目的设备的MAC物理地址。
源 地址 :发送设备的MAC物理地址。
类型(Ethernet II):以太网首部 后面所跟数据包的类型,例如Type为0x0800时为IP协议包,Type为0806时,后面为ARP协议包。
长度(IEEE802.3):当长度小于1500时,说明该帧为IEEE802.3帧格式,大于1500时,说明该帧为Ethernet II帧格式。
数据:数据长度最小为46字节,不足46字节时,填充至46字节。因为最小帧长度是64字节,所以,46+6+6+2+4=64。(不算前导码)
FCS: 就是CRC校验值
IEEE 802.1Q VLAN帧格式
|
字段 |
长度 |
含义 |
取值 |
|
TPID |
2Byte |
Tag Protocol Identifier(标签协议标识符),表示数据帧类型。 |
取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。 各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。 |
|
PRI |
3bit |
Priority,表示数据帧的802.1p优先级。 |
取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。 |
|
CFI |
1bit |
Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。 |
CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。 |
|
VID |
12bit |
VLAN ID,表示该数据帧所属VLAN的编号。 |
VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。 |
ARP数据包格式
(1)硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1;
(2)协议类型字段指明了发送方提供的高层协议类型,IP为0800(16进制);
(3)硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
(4)操作字段用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
(5)发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;
(6)发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;
(7)发送方IP(0-1字节):源主机硬件地址的前2个字节;
(8)发送方IP(2-3字节):源主机硬件地址的后2个字节;
(9)目的硬件地址(0-1字节):目的主机硬件地址的前2个字节;
(10)目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;
(11)目的IP(0-3字节):目的主机的IP地址。
以太网首部
IP数据包格式
IP数据包格式如下图。IP首部,如图也表示出来了。
协议
|
数值 |
值描述 |
|
0 |
保留字段,用于IPv6(跳跃点到跳跃点选项) |
|
1 |
Internet控制消息 (ICMP) |
|
6 |
传输控制 (TCP) |
|
17 |
用户数据报文 (UDP) |
|
23 |
Trunk-1 |
|
24 |
Trunk-2 |
|
25 |
leaf-1 |
|
26 |
1eaf-2 |
|
89 |
OSPF IGP |
|
132 |
流控制传输协议 |
|
133~254 |
未分配 |
|
255 |
保留 |
ICMP报文格式
TCP数据段格式
如图所示为TCP首部和TCP数据段格式
UDP数据段格式
更多推荐

所有评论(0)