链路层常见报文格式及长度
分类:
1. Ethernet帧(除去上层负载后长度为18字节)
以太帧有好多种,我们最常用到的是Ethernet II
Ethernet II即DIX 2.0:Xerox与DEC、Intel在1982年制定的以太网标准帧格式。Cisco名称为:ARPA
Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。其中前12字节分别标识出发送数据帧的源节点MAC地址和接收数据帧的目标节点MAC地址。(注:ISL封装后可达1548字节,802.1Q封装后可达1522字节)
接下来的2个字节标识出以太网帧所携带的上层数据类型,如下:
IPv4: 0x0800
ARP:0x0806
PPPoE:0x8864
802.1Q tag: 0x8100
IPV6: 0x86DD
MPLS Label:0x8847
在不定长的数据字段后是4个字节的帧校验序列(Frame. Check Sequence,FCS)
2. ARP (ARP Header长度:8字节)
硬件类型:1 表示以太网
协议类型:和Ethernet数据帧中类型字段相同
OP操作字段:1 表示ARP请求
2 表示ARP应答
3 表示RARP请求
4 表示RARP应答
3. 802.1q VLAN数据帧(4字节)
基于802.1Q的VLAN帧格式
- Type:长度为2字节,取值为0x8100,表示此帧的类型为802.1Q Tag帧。
- PRI:长度为3比特,可取0~7之间的值,表示帧的优先级,值越大优先级越高。该优先级主要为QoS差分服务提供参考依据(COS)。
- VLAN Identifier (VID) : 长度12bits,可配置的VLAN ID取值范围为1~4094。通常vlan 0和vlan 4095预留,vlan1为缺省vlan,一般用于网管。
QinQ帧格式
4. PPP帧(除去信息字段后长度为:8字节)
PPP报文格式
PPP报文的内容是指Address、Control、Protocol和Information四个域的内容。各字段的含义如下。
- Flag域Flag域标识了一个物理帧的起始和结束,该字节为0x7E。
- Address域PPP协议是被运用在点对点的链路上,它可以唯一标识对方。因此使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。所以该字节已无任何意义,按照协议的规定将该字节填充为全1的广播地址。
- Control域同Address域一样,PPP数据帧的Control域也没有实际意义,按照协议的规定通信双方将该字节的内容填充为0x03。Address和Control域一起表示了此报文为PPP报文,即PPP报文头为FF03。
- Protocol域协议域可用来区分PPP数据帧中信息域所承载的数据报文的内容。
协议代码 | 协议类型 |
0021 | Internet Protocol |
8021 | Internet Protocol Control Protocol |
C021 | Link Control Protocol |
C023 | Password Authentication Protocol |
C223 | Challenge Handshake Authentication Protocol |
- Information域信息域最大长度是1500字节,其中包括填充域的内容。信息域的最大长度等于PPP协议中MRU(Maximum Receive Unit)的缺省值。
5. HDLC帧(除去信息字段后长度为:8字节)
HDLC帧格式
各字段的含义解释:
字段 | 长度(字节) | 含义 |
Protocol | 2 | 协议字段。表示Information域中的数据封装的协议类型。 |
Information | N | 信息字段。可以是任意的二进制比特串,长度未作限定。其上限由FCS字段或通信节点的缓冲容量来决定,目前国际上用得较多的是1000~2000比特,而下限可以是0,即无信息字段。但是监控帧中不可有信息字段。 |
6. PPPoE报文(报文头长度为6字节)
windows系统pppoe MTU大小
默认和最大 PPPoE MTU 大小为 1,480 字节。对于某些 Internet 服务提供商 (ISP),您可能需要将 PPPoE 连接的 MTU 大小降至 1,400 和 1,480 之间的一个值(例如 1,454)。不要将 MTU 大小设置为小于 1,400。
路由器pppoe拨号时MTU为1492
7. MPLS Label
Label报文格式:
MPLS uses a 32-bit label field that contains the following information:
- 20-bit label (a number)
- 3-bit experimental field (usually used to carry IP precedence value)
- 1-bit bottom-of-stack indicator (indicates whether this is the last label before the IP header)
- 8-bit TTL (equal to the TTL in IP header),used to prevent indefinite looping of packets.