以太网帧长度介绍(转)

本文详细解析了以太网帧的四种不同格式及其长度范围,从最小64字节到最大1518字节,涵盖了EthernetII、Ethernet802.3raw、Ethernet802.3SAP和Ethernet802.3SNAP帧的结构和特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##################################################################
Ethernet II以太网帧格式:

目标MAC   源MAC   类型    数据          FCS
6字节     6字节   2字节   46-1500字节   4字节

所以最小6+6+2+46+4 = 64,最大6+6+2+1500+4 = 1518。
(注:ISL封装后可达1548字节,802.1Q封装后可达1522字节)
##################################################################
Ethernet 802.3 raw帧格式:

目标MAC   源MAC   总长度  0xFFFF    数据          FCS
6字节     6字节   2字节   2字节     44-1498字节   4字节

最小6+6+2+2+44+4 = 64,最大6+6+2+2+1498+4 = 1518。
##################################################################
Ethernet 802.3 SAP帧格式:

目标MAC   源MAC   总长    DSAP    SSAP    控制   数据         FCS
6字节     6字节   2字节   1字节   1字节   1字节  43-1497字节  4字节

最小:6+6+2+1+1+1+43+4 = 64。最大:6+6+2+1+1+1+1497+4 = 1518。
##################################################################
Ethernet 802.3 SNAP帧格式:
目标MAC 源MAC 总长  0xAA  0xAA  0x03  OUI ID 类型  数据        FCS
6字节   6字节 2字节 1字节 1字节 1字节 3字节  2字节 38-1492字节 4字节
最小:6+6+2+1+1+1+3+2+38+4 = 64
最大:6+6+2+1+1+1+3+2+1492+4 = 1518
###################################################################

所以,以太网帧的长度范围是64-1518。
### 以太网帧长度的标准及范围 以太网帧的长度由多个因素决定,主要包括最小帧长、最大帧长以及帧间间隙等因素。以下是关于以太网帧长度的具体说明: #### 最小帧长 以太网规定了最小帧长为 **64 字节**[^2]。这一限制的主要原因是确保在网络中发生冲突的情况下,冲突信号能够在整个网络上传播并被所有节点感知。如果帧过短,则可能无法及时检测到冲突,从而影响通信质量。 具体来说,最小帧长的设计考虑到了以太网的槽时间(slot time)。槽时间是以太网中用于检测冲突的时间间隔,对于传统以太网而言,槽时间为 **512 比特** 或者 **64 字节** 的传输时间[^3]。因此,任何有效的以太网帧都不得低于此长度。 当实际数据不足 64 字节时,会通过填充字段来扩展帧的长度,使其达到最低要求。这种设计可以有效防止因帧过短而导致的冲突未被检测的情况。 #### 最大帧长 以太网的最大帧长通常定义为 **1518 字节**(不包括前导码和帧起始符)或者 **1522 字节**(包含 VLAN 标签时)[^2]。这是为了平衡性能与延迟之间的关系——更大的帧能够携带更多的数据,减少头部开销;然而,过大的帧可能导致更高的延迟和更复杂的错误处理机制。 需要注意的是,在某些特殊场景下(如巨型帧支持环境中),最大帧长可能会增加至 **9000 字节** 左右。这种情况常见于高性能计算环境或数据中心内部互联中,允许更大尺寸的数据包有助于提升吞吐量。 #### 扩充区域的作用 在千兆及以上速率的以太网标准中(例如 IEEE 802.3z),引入了一个额外的扩充区域,该区域并非承载真实数据而是用来延长帧的有效长度,使之至少达到 **512 字节**(从目标地址算起到填充部分结束为止)。这样做的目的在于进一步保障高带宽环境下仍能可靠地发现潜在冲突现象[^1]。 #### 帧间间隙 (Interframe Gap, IFG) 除了关注单个帧本身的大小外,还需要注意到相邻两帧之间存在一段称为“帧间间隙”的静默期,典型值设定为 **96 比特时间单位**(bit times),即大约相当于 12 字节的空间预留出来供接收方完成当前事务后再准备接受下一个新到来的信息单元[^1]。 ```python # Python 示例:验证以太网帧是否符合长度规范 def is_valid_frame_length(frame_size): min_len = 64 # 最小合法帧长 max_len_standard = 1518 # 标准最大帧长 max_len_jumbo = 9000 # 巨型帧情况下的最大帧长 if frame_size >= min_len and frame_size <= max_len_standard: return True elif frame_size > max_len_standard and frame_size <= max_len_jumbo: return "Jumbo Frame" else: return False print(is_valid_frame_length(64)) # 输出: True print(is_valid_frame_length(1500)) # 输出: True print(is_valid_frame_length(9000)) # 输出: Jumbo Frame print(is_valid_frame_length(50)) # 输出: False ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值