一文掌握以太网基础:IEEE 802.3 标准、帧格式与 MTU
一文掌握以太网基础:IEEE 802.3 标准、帧格式与 MTU
一、IEEE 802.3 工作组、IEEE 802.3 标准与以太网的关系
IEEE 802 是国际电器和电子工程师协会(IEEE)中的一个委员会,称为 LMSC(LAN/MAN Standards Committee,局域网/城域网标准委员会),802 委员会又分为多个工作组,其中802.3 工作组负责定义有线以太网的 物理层 和 数据链路层。
IEEE 802.3标准 由 IEEE 802.3 工作组制定发布,是一种基带总线型的局域网标准,它描述了物理层和数据链路层的 MAC 子层的实现方法。
以太网 是符合 DIX Ethernet V2 标准的局域网,因 DIX Ethernet V2 标准与 IEEE 802.3 标准只有很小的差别,所以通常将 802.3 局域网称为以太网。以太网根据 IEEE 802.3 标准来管理和控制数据帧。
二、以太网帧及帧格式
以太网帧是符合以太网标准的数据链路层协议数据单元(Protocol Data Unit,PDU),是互联网协议中的基本单元,用于在以太网上传输数据。
以太网中使用两种标准帧格式,一种是上世纪 80 年代初提出的 DIX Ethernet V2 格式,即 Ethernet II;另一种是 1983 年提出的 IEEE 802.3 格式。这两种格式的区别主要在于,Ethernet II 格式中包含了一个 Type 字段,用于标识以太网帧处理完成后将被发送到哪个上层协议进行处理;而 IEEE 802.3 格式的同样位置是 Length 长度字段。
不同的 Type 字段值可以用来区分两种帧类型:
- 当 Type 字段值≤1500 时,帧使用的是 IEEE 802.3 格式(因为该格式的改字段表示的是帧长度,而以太网帧 MTU 值为 1500);
- 当Type 字段值≥1536 时,帧使用的是 Ethernet II 格式。
以太网中大多数的数据帧使用的是 Ethernet II 格式。
三、以太网帧结构
以太网帧 Frame 由 帧头部(Header)、数据(Data)、帧尾部(Tailer)/校验和(Checksum)三部分组成。
帧头部占 14 Byte,尾部占 4 Byte,数据长度可变范围为 46-1500 Byte,从而可知以太网帧长度范围为 64-1518 Byte。
字段:
D.MAC:目标 MAC 地址,占用 6 Byte,常用 12 个十六进制数加上 2/5 个冒号或中线符号平均分开,如FF:FF:FF:FF:FF:FF,FF-FF-FF-FF-FF-FF,FFFF-FFFF-FFFF,FFFF:FFFF:FFFF;
S.MAC:源 MAC 地址,占用 6 Byte;
Type:类型,占用 2 Byte,可表示的数值范围为 0-4096,用于区分帧封装格式(以及标识上层协议,如0x0800,表示上层协议为 IP;0x86dd 表示上层协议为 IPv6;0x0806 表示上层协议为 ARP;0x8847 表示上层协议为 MPLS;0x8864 表示上层协议为 PPPoE);
FCS:Checksum校验和,占用 4 Byte,校验不通过,则该帧被认为传输不完整或遭到篡改,将直接丢弃处理。
四、MTU
MTU(Maximum Transmission Unit,最大传输单元),属于数据链路层的概念,用于在数据链路层对数据帧长度进行限制,是指网络能够传输的最大数据包大小,以字节 Byte 为单位。以太网帧的默认 MTU 值为 1500.
基于对网络时延、传输效率等因素的综合考虑,不同链路介质类型的网络有不同的默认 MTU 值,以下是一些常见网络的默认值:
一般情况下,默认 MTU 值越大,该类型的网络传输效率(传输效率=MTU/数据帧总长度)越高。
当上层交付的报文大于 MTU 时将如何处理?
数据链路层将进行分片处理,第一片报文,IP 报文头部固定 20 Byte,数据载荷 payload 封装 1480 Byte;第二片报文,复制第一片的 IP 头,修改偏移量、标志位等,IP报文固定 20 Byte,数据载荷 payload 填充后续的 1480 Byte;第三片亦然……直至第 N 片将上层交付的报文拆分完毕为止。