fbpx
维基百科

以太网帧格式

以太网链路上的数据包称作以太帧。以太帧起始部分由前导码和帧开始符组成。后面紧跟着一个以太网报头,以MAC地址说明目的地址和源地址。帧的中部是该帧负载的包含其他协议报头的数据包(例如IP协议)。以太帧由一个32位冗余校验码结尾。它用于检验数据传输是否出现损坏。

结构

来自线路的二进制数据包称作一个帧。从物理线路上看到的帧,除其他信息外,还可看到前导码和帧开始符。任何物理硬件都会需要这些信息。[note 1]

下面的表格显示了在以1500个八位元组MTU传输(有些吉比特以太网甚至更高速以太网支持更大的帧,称作巨型帧)时的完整帧格式。[note 2] 一个八位元组是八个位组成的数据(也就是现代计算机的一个字节)。

802.3 以太网帧结构
前导码 帧开始符 MAC 目标地址 MAC 源地址 802.1Q 标签 (可选) 以太类型 负载 冗余校验 帧间距英语Interframe gap
10101010 7个octet 10101011 1个octet 6 octets 6 octets (4 octets) 2 octets 46–1500 octets 4 octets 12 octets
64–1522 octets
72–1530 octets
84–1542 octets

前导码和帧开始符

一个帧以7个字节的前导码和1个字节的帧开始符作为帧的开始。快速以太网之前,在线路上帧的这部分的位模式是10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011。由于在传输一个字节时最低位最先传输(LSB),因此其相应的16进制表示为0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5。

10/100M 网卡(介质无关接口 PHY)一次传输4位(一个半字節英语nibble)。因此前导符会成为7组0x5+0x5,而帧开始符成为0x5+0xD。1000M网卡(GMII英语Gigabit Media Independent Interface)一次传输8位,而10Gbit/s(XGMII英语nibble) PHY芯片一次传输32位。 注意当以octet描述时,先传输7个01010101然后传输11010101。由于8位数据的低4位先发送,所以先发送帧开始符的0101,之后发送1101。

报头

报头包含源地址和目标地址的MAC地址,以太类型字段和可选的用于说明VLAN成员关系和传输优先级的IEEE 802.1Q VLAN 标签。

帧校验码

帧校验码是一个32位循环冗余校验码,以便验证帧数据是否被损坏。

帧间距

当一个帧发送出去之后,发送方在下次发送帧之前,需要再发送至少12个octet的空闲线路状态码。

以太帧类型

以太帧有很多种类型。不同类型的帧具有不同的格式和MTU值。但在同种物理媒体上都可同时存在。

所有四种以太帧类型都可包含一个IEEE 802.1Q选项来确定它属于哪个VLAN以及他的IEEE 802.1p优先级(QoS)。这个封装由IEEE 802.3ac定义并将帧大小从64字节扩充到1522字节(注:不包含7个前导字节和1个字节的帧开始符以及12个帧间距字节)。

IEEE 802.1Q标签,如果出现,需要放在源地址字段和以太类型或长度字段的中间。这个标签的前两个字节是标签协议标识符(TPID)值0x8100。这与没有标签帧的以太类型/长度字段的位置相同,所以以太类型0x8100就表示包含标签的帧,而实际的以太类型/长度字段则放在Q-标签的后面。TPID后面是两个字节的标签控制信息(TCI)。(IEEE 802.1p 优先级(QoS)和VLAN ID)。Q标签后面就是通常的帧内容。

Ethernet II

以太 II 帧 (也称作DIX以太网,是以这个设计的主要成员,DEC,IntelXerox的名字命名的。[1]),把紧接在目标和源MAC地址后面的这个两字节定义为以太网帧数据类型字段。

例如,一个0x0800的以太类型说明这个帧包含的是IPv4数据报。同样的,一个0x0806的以太类型说明这个帧是一个ARP帧,0x8100说明这是一个IEEE 802.1Q帧,而0x86DD说明这是一个IPv6帧。

当这个工业界的标准通过正式的IEEE标准化过程后,在802.3标准中以太类型字段变成了一个(数据)长度字段。(最初的以太包通过包括他们的帧来确定它们的长度,而不是以一个明确的数值。)但是包的接收层仍需知道如何解析包,因此标准要求将IEEE802.2头跟在长度字段后面,定义包的类型。多年之后,802.3x-1997标准,一个802.3标准的后继版本,正式允许两种类型的封包同时存在。实际上,两种封包都被广泛使用,而最初的以太封包在以太局域网中被广泛应用,因为他的简便和低开销。

为了允许一些使用以太II版本的数据报和一些使用802.3封装的最初版本的数据包能够在同一个以太网段使用,以太类型值必须大于等于1536(0x0600)。这个值比802.3封包的最大长度1500byte (0x05DC)要更大。因此如果这个字段的值大于等于1536,则这个帧是以太II帧,而那个字段是类型字段。否则(小于1500而大于46字节),他是一个IEEE 802.3帧,而那个字段是长度字段。1500~1536(不包含)的数值未定义。[2]

802.2 LLC

一些协议,尤其是为OSI模型设计的,会直接在802.2 LLC层上操作。802.2 LLC层同时提供数据报和面向连接的网络服务。

802.2以太网变种没有在常规网络中普遍使用。只有一些大公司的没有与IP网络融合的Netware设备。以前,很多公司Netware网络支持802.2以太网,以便支持从以太网到IEEE 802.5令牌环网或FDDI网络的透明桥接。当今最流行的封包是以太网版本二,由基于IP协议的网络使用,将其以太类型设置为0x0800用于封装IPv4或者0x86DD来支持IPv6

还有一个互联网标准来使用LLC/SNAP报头将IPv4封装在IEEE 802.2帧中。[3] 这几乎从未在以太网中实现过。(但在FDDI以及令牌环网IEEE 802.11和其他IEEE 802网络中使用)。如果不使用SNAP,IP传输无法封装在IEEE 802.2 LLC帧中。这是因为LLC协议中虽然有一种IP协议类型,却没有ARP。IPv6同样可使用LLC/SNAP在IEEE 802.2以太网上传播,但,如同IPv4,它也绝少被这样使用。(尽管LLC/SNAP的IPv6封包在IEEE 802网络中被使用)。

子网接入协议

通过检查802.2 LLC头,可以确定他是否后继一个SNAP头。LLC头包含两个附加的8位地址字段,在OSI模型术语中称作服务访问点(SAPs)。当源和目标SAP都设置为0xAA时,就会使用SNAP服务。SNAP头允许以太类型值被任何IEEE 802协议使用,即使支持的是私有协议ID空间。在IEEE 802.3x-1997中,IEEE 以太标准被修改为明确允许紧接着MAC地址的16位字段即可用于长度字段,也可用于类型字段。

Mac OS使用 802.2/SNAP 封包来实现以太网上的AppleTalk V2协议套件("EhterTalk")。

Novell raw 802.3

Novell的"raw"802.3帧格式基于早期IEEE 802.3的工作。Novell以它作为起点来创建他自己的以太网上IPX协议的的第一个实现。他们没有使用LLC头,而是直接在长度字段后面开始IPX数据包。这不符合IEEE 802.3标准,但由于IPX的前两个字节一直是FF(而在IEEE 802.2 LLC中这种模式虽然理论上是可能的但实际上概率极其微小),实用中这种方式与其他以太实现共同存在。但须注意在一些早期的DECnet英语DECnet可能无法识别之。

直到90年代中期,Novell NetWare默认使用这个帧类型,而由于Netware曾如此流行,而那时IP还不是那么流行,在过去的一些时候,大多数的以太网上都运载着负载IPX的"raw" 802.3封包。直到Netware 4.10,当使用IPX时,Netware才默认使用IEEE 802.2和LLC(Nerware 帧类型Ethernet_802.2)。

效率

我们可以计算以太网的效率和比特率

 

当达到允许的最大负载值时可达到最高效率,对于无标签的以太网封包是 ,而使用802.1Q VLAN标签时是 

由效率中可计算比特率:

 

不带802.1Q标签的100BASE-TX以太网的最大比特率是97.53 Mbit/s. 注:不带标签的最大帧尺寸=1518 + 20 (7-byte 前导符,1-byte 帧开始符, 12-byte 帧间距)= 1538。

矮帧

矮帧是一个尺寸不及IEEE 802.3定义的最小长度64字节的以太网帧。可能的原因是以太网碰撞,数据不足,网卡错误或软件错误。[4]

注释

  1. ^ 前导码和帧开始符无法在包嗅探程序中显示。这些信息会在OSI第1层被网卡处理掉,而不会传入嗅探程序采集数据的OSI第2层。也存在OSI物理层的嗅探工具以显示这些前导码和帧开始符,但这些设备大多昂贵,多用于检测硬件相关的故障。
  2. ^ 前导码和帧开始符的位模式以位串的方式给出,最左的比特最先传输(而非以字节为单位,以太网传输最优先的位)。这个脚注与IEEE 802.3标准吻合。
  3. ^ 第一版以太帧在早期以太网原型中使用,并使用8位MAC地址,从未在商业中使用

参考资料

  1. ^ Drew Heywood; Zubair Ahmad. Drew Heywood's Windows 2000 Network Services. Sams. 2001: 53. ISBN 0672317419. 
  2. ^ IEEE Std 802.3-2005, 3.2.6
  3. ^ RFC 1042
  4. ^ . [2011-03-01]. (原始内容存档于2009-10-26).  071227 products.zarlink.com

以太网帧格式, 此條目可参照英語維基百科相應條目来扩充, 2019年8月27日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签, 此條目需要补充更多来源, 2019年8月27日, 请协助補充多. 此條目可参照英語維基百科相應條目来扩充 2019年8月27日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目需要补充更多来源 2019年8月27日 请协助補充多方面可靠来源以改善这篇条目 无法查证的内容可能會因為异议提出而移除 致使用者 请搜索一下条目的标题 来源搜索 以太网帧格式 网页 新闻 书籍 学术 图像 以检查网络上是否存在该主题的更多可靠来源 判定指引 在以太网链路上的数据包称作以太帧 以太帧起始部分由前导码和帧开始符组成 后面紧跟着一个以太网报头 以MAC地址说明目的地址和源地址 帧的中部是该帧负载的包含其他协议报头的数据包 例如IP协议 以太帧由一个32位冗余校验码结尾 它用于检验数据传输是否出现损坏 目录 1 结构 1 1 前导码和帧开始符 1 2 报头 1 3 帧校验码 1 4 帧间距 2 以太帧类型 2 1 Ethernet II 2 2 802 2 LLC 2 3 子网接入协议 2 4 Novell raw 802 3 3 效率 4 矮帧 5 注释 6 参考资料结构 编辑来自线路的二进制数据包称作一个帧 从物理线路上看到的帧 除其他信息外 还可看到前导码和帧开始符 任何物理硬件都会需要这些信息 note 1 下面的表格显示了在以1500个八位元组为MTU传输 有些吉比特以太网甚至更高速以太网支持更大的帧 称作巨型帧 时的完整帧格式 note 2 一个八位元组是八个位组成的数据 也就是现代计算机的一个字节 802 3 以太网帧结构 前导码 帧开始符 MAC 目标地址 MAC 源地址 802 1Q 标签 可选 以太类型 负载 冗余校验 帧间距 英语 Interframe gap 10101010 7个octet 10101011 1个octet 6 octets 6 octets 4 octets 2 octets 46 1500 octets 4 octets 12 octets64 1522 octets72 1530 octets84 1542 octets前导码和帧开始符 编辑 参见 Syncword 一个帧以7个字节的前导码和1个字节的帧开始符作为帧的开始 快速以太网之前 在线路上帧的这部分的位模式是10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011 由于在传输一个字节时最低位最先传输 LSB 因此其相应的16进制表示为0x55 0x55 0x55 0x55 0x55 0x55 0x55 0xD5 10 100M 网卡 介质无关接口 PHY 一次传输4位 一个半字節 英语 nibble 因此前导符会成为7组0x5 0x5 而帧开始符成为0x5 0xD 1000M网卡 GMII 英语 Gigabit Media Independent Interface 一次传输8位 而10Gbit s XGMII 英语 nibble PHY芯片一次传输32位 注意当以octet描述时 先传输7个01010101然后传输11010101 由于8位数据的低4位先发送 所以先发送帧开始符的0101 之后发送1101 报头 编辑 报头包含源地址和目标地址的MAC地址 以太类型字段和可选的用于说明VLAN成员关系和传输优先级的IEEE 802 1Q VLAN 标签 帧校验码 编辑 帧校验码是一个32位循环冗余校验码 以便验证帧数据是否被损坏 帧间距 编辑 主条目 en Interframe gap 当一个帧发送出去之后 发送方在下次发送帧之前 需要再发送至少12个octet的空闲线路状态码 以太帧类型 编辑以太帧有很多种类型 不同类型的帧具有不同的格式和MTU值 但在同种物理媒体上都可同时存在 以太网第二版 note 3 或者称之为Ethernet II 帧 DIX帧 是最常见的帧类型 并通常直接被IP协议使用 Novell的非标准IEEE 802 3帧变种 IEEE 802 2 逻辑链路控制 LLC 帧 子网接入协议 SNAP 帧所有四种以太帧类型都可包含一个IEEE 802 1Q选项来确定它属于哪个VLAN以及他的IEEE 802 1p优先级 QoS 这个封装由IEEE 802 3ac定义并将帧大小从64字节扩充到1522字节 注 不包含7个前导字节和1个字节的帧开始符以及12个帧间距字节 IEEE 802 1Q标签 如果出现 需要放在源地址字段和以太类型或长度字段的中间 这个标签的前两个字节是标签协议标识符 TPID 值0x8100 这与没有标签帧的以太类型 长度字段的位置相同 所以以太类型0x8100就表示包含标签的帧 而实际的以太类型 长度字段则放在Q 标签的后面 TPID后面是两个字节的标签控制信息 TCI IEEE 802 1p 优先级 QoS 和VLAN ID Q标签后面就是通常的帧内容 Ethernet II 编辑 以太 II 帧 也称作DIX以太网 是以这个设计的主要成员 DEC Intel和Xerox的名字命名的 1 把紧接在目标和源MAC地址后面的这个两字节定义为以太网帧数据类型字段 例如 一个0x0800的以太类型说明这个帧包含的是IPv4数据报 同样的 一个0x0806的以太类型说明这个帧是一个ARP帧 0x8100说明这是一个IEEE 802 1Q帧 而0x86DD说明这是一个IPv6帧 当这个工业界的标准通过正式的IEEE标准化过程后 在802 3标准中以太类型字段变成了一个 数据 长度字段 最初的以太包通过包括他们的帧来确定它们的长度 而不是以一个明确的数值 但是包的接收层仍需知道如何解析包 因此标准要求将IEEE802 2头跟在长度字段后面 定义包的类型 多年之后 802 3x 1997标准 一个802 3标准的后继版本 正式允许两种类型的封包同时存在 实际上 两种封包都被广泛使用 而最初的以太封包在以太局域网中被广泛应用 因为他的简便和低开销 为了允许一些使用以太II版本的数据报和一些使用802 3封装的最初版本的数据包能够在同一个以太网段使用 以太类型值必须大于等于1536 0x0600 这个值比802 3封包的最大长度1500byte 0x05DC 要更大 因此如果这个字段的值大于等于1536 则这个帧是以太II帧 而那个字段是类型字段 否则 小于1500而大于46字节 他是一个IEEE 802 3帧 而那个字段是长度字段 1500 1536 不包含 的数值未定义 2 802 2 LLC 编辑 一些协议 尤其是为OSI模型设计的 会直接在802 2 LLC层上操作 802 2 LLC层同时提供数据报和面向连接的网络服务 802 2以太网变种没有在常规网络中普遍使用 只有一些大公司的没有与IP网络融合的Netware设备 以前 很多公司Netware网络支持802 2以太网 以便支持从以太网到IEEE 802 5令牌环网或FDDI网络的透明桥接 当今最流行的封包是以太网版本二 由基于IP协议的网络使用 将其以太类型设置为0x0800用于封装IPv4或者0x86DD来支持IPv6 还有一个互联网标准来使用LLC SNAP报头将IPv4封装在IEEE 802 2帧中 3 这几乎从未在以太网中实现过 但在FDDI以及令牌环网 IEEE 802 11和其他IEEE 802网络中使用 如果不使用SNAP IP传输无法封装在IEEE 802 2 LLC帧中 这是因为LLC协议中虽然有一种IP协议类型 却没有ARP IPv6同样可使用LLC SNAP在IEEE 802 2以太网上传播 但 如同IPv4 它也绝少被这样使用 尽管LLC SNAP的IPv6封包在IEEE 802网络中被使用 子网接入协议 编辑 通过检查802 2 LLC头 可以确定他是否后继一个SNAP头 LLC头包含两个附加的8位地址字段 在OSI模型术语中称作服务访问点 SAPs 当源和目标SAP都设置为0xAA时 就会使用SNAP服务 SNAP头允许以太类型值被任何IEEE 802协议使用 即使支持的是私有协议ID空间 在IEEE 802 3x 1997中 IEEE 以太标准被修改为明确允许紧接着MAC地址的16位字段即可用于长度字段 也可用于类型字段 Mac OS使用 802 2 SNAP 封包来实现以太网上的AppleTalk V2协议套件 EhterTalk Novell raw 802 3 编辑 Novell的 raw 802 3帧格式基于早期IEEE 802 3的工作 Novell以它作为起点来创建他自己的以太网上IPX协议的的第一个实现 他们没有使用LLC头 而是直接在长度字段后面开始IPX数据包 这不符合IEEE 802 3标准 但由于IPX的前两个字节一直是FF 而在IEEE 802 2 LLC中这种模式虽然理论上是可能的但实际上概率极其微小 实用中这种方式与其他以太实现共同存在 但须注意在一些早期的DECnet 英语 DECnet 可能无法识别之 直到90年代中期 Novell NetWare默认使用这个帧类型 而由于Netware曾如此流行 而那时IP还不是那么流行 在过去的一些时候 大多数的以太网上都运载着负载IPX的 raw 802 3封包 直到Netware 4 10 当使用IPX时 Netware才默认使用IEEE 802 2和LLC Nerware 帧类型Ethernet 802 2 效率 编辑我们可以计算以太网的效率和比特率 Efficiency Payload size Frame size displaystyle text Efficiency frac text Payload size text Frame size 当达到允许的最大负载值时可达到最高效率 对于无标签的以太网封包是1500 1538 97 53 displaystyle frac 1500 1538 97 53 而使用802 1Q VLAN标签时是1500 1542 97 28 displaystyle frac 1500 1542 97 28 由效率中可计算比特率 Net bit rate Efficiency Wire bit rate displaystyle text Net bit rate text Efficiency times text Wire bit rate 不带802 1Q标签的100BASE TX以太网的最大比特率是97 53 Mbit s 注 不带标签的最大帧尺寸 1518 20 7 byte 前导符 1 byte 帧开始符 12 byte 帧间距 1538 矮帧 编辑矮帧是一个尺寸不及IEEE 802 3定义的最小长度64字节的以太网帧 可能的原因是以太网碰撞 数据不足 网卡错误或软件错误 4 注释 编辑 前导码和帧开始符无法在包嗅探程序中显示 这些信息会在OSI第1层被网卡处理掉 而不会传入嗅探程序采集数据的OSI第2层 也存在OSI物理层的嗅探工具以显示这些前导码和帧开始符 但这些设备大多昂贵 多用于检测硬件相关的故障 前导码和帧开始符的位模式以位串的方式给出 最左的比特最先传输 而非以字节为单位 以太网传输最优先的位 这个脚注与IEEE 802 3标准吻合 第一版以太帧在早期以太网原型中使用 并使用8位MAC地址 从未在商业中使用参考资料 编辑 Drew Heywood Zubair Ahmad Drew Heywood s Windows 2000 Network Services Sams 2001 53 ISBN 0672317419 IEEE Std 802 3 2005 3 2 6 RFC 1042 Glossary of Terms R Zarlink Semiconductor 2011 03 01 原始内容存档于2009 10 26 071227 products zarlink com 取自 https zh wikipedia org w index php title 以太网帧格式 amp oldid 73376925, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。