六(以太网和IEEE|六:以太网和IEEE 802封装,尾部封装)
以太网这个术语一般是指数字设备公司( Digital Equipment Corp.)、英特尔公司( I n t e l C o r p .)和X e r o x公司在1 9 8 2年联合公布的一个标准。它是当今 T C P / I P采用的主要的局域网技 术。它采用一种称作 C S M A / C D的媒体接入方法, 其意思是带冲突检测的载波侦听多路接入 (Carrier Sense, Multiple Access with Collision Detection)。它的速率为10 Mb/s,地址为48 bit。
几年后, I E E E(电子电气工程师协会) 8 0 2委员会公布了一个稍有不同的标准集,其中 802.3针对整个CSMA/C D网络, 8 0 2 . 4针对令牌总线网络, 8 0 2 . 5针对令牌环网络。这三者的共 同特性由802.2标准来定义,那就是 802网络共有的逻辑链路控制( LLC)。不幸的是, 802.2和 8 0 2 . 3定义了一个与以太网不同的帧格式。
在TCP/IP世界中,以太网IP数据报的封装是在RFC 894[Hornig 1984]中定义的, IEEE 802 网络的IP数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。主机需求RFC要求每 台Internet主机都与一个10 Mb/s的以太网电缆相连接: 1) 必须能发送和接收采用RFC 894(以太网)封装格式的分组。 2) 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。 3) 也许能够发送采用 RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数 据,那么发送的分组必须是可以设置的,而且默认条件下必须是 RFC 894分组。
最常使用的封装格式是 RFC 894定义的格式。图1显示了两种不同形式的封装格式。 图 中每个方框下面的数字是它们的字节长度。
文章图片
图1:IEEE 802.2/802.3(RFC 1042)和以太网的封装格式(RFC 894) 两种帧格式都采用48 bit(6字节)的目的地址和源地址( 802.3允许使用16 bit的地址,但 一般是48 bit地址)。这就是我们在本书中所称的硬件地址。 ARP和RARP协议(第4章和第5章) 对32 bit的IP地址和48 bit的硬件地址进行映射。
接下来的2个字节在两种帧格式中互不相同。在 8 0 2标准定义的帧格式中, 长度字段是指它后续数据的字节长度,但不包括 C R C检验码。 以太网的类型字段定义了后续数据的类型。 在8 0 2标准定义的帧格式中, 类型字段则由后续的子网接入协议( Sub-network Access Protocol,SNAP)的首部给出。幸运的是, 802定义的有效长度值与以太网的有效类型值无一 相同,这样,就可以对两种帧格式进行区分。
在以太网帧格式中,类型字段之后就是数据;
而在 8 0 2帧格式中,跟随在后面的是 3字节 的802.2 LLC和5字节的802.2 SNAP。目的服务访问点( Destination Service Access Point, D S A P)和源服务访问点( Source Service Access Point, SSAP)的值都设为0 x a a。Ct r l字段的 值设为3。随后的3个字节org code都置为0。再接下来的2个字节类型字段和以太网帧格式一样。
C R C字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为F C S或帧检验 序列)。
802.3标准定义的帧和以太网的帧都有最小长度要求。 802.3规定数据部分必须至少为 38字 节,而对于以太网,则要求最少要有 4 6字节。 为了保证这一点, 必须在不足的空间插入填充 (pad)字节。在开始观察线路上的分组时将遇到这种最小长度的情况。
RFC 893描述了另一种用于以太网的封装格式, 称作尾部封装 (trailer encapsulation)。这是一个早期 B S D系统在DEC VA X机上运行时的试验格式, 它通过 调整I P数据报中字段的次序来提高性能。 在以太网数据帧中, 开始的那部分是变长的字段 (I P首部和T C P首部)。把它们移到尾部(在 C R C之前), 这样当把数据复制到内核时, 就可以 把数据帧中的数据部分映射到一个硬件页面,节省内存到内存的复制过程。 T C P数据报的长 度是5 1 2字节的整数倍,正好可以用内核中的页表来处理。两台主机通过协商使用 A R P扩展协 议对数据帧进行尾部封装。这些数据帧需定义不同的以太网帧类型值。
【六(以太网和IEEE|六:以太网和IEEE 802封装,尾部封装)】现在,尾部封装已遭到反对,因此我们不对它举任何例子。
推荐阅读
- 相思锦之明月醉相思第十六章|相思锦之明月醉相思第十六章 她能挺得住!
- 2. 冒泡和快排
- const限定符
- 2022年谷歌Chrome等浏览器在线打开编辑保存微软Office/金山WPS的Word、Excel和PPT方案大全
- Netty学习系列|Netty学习六(编解码之粘包和拆包)
- 爱是陪伴与放手,而不是管束和索取
- C#|C# 回调函数的实现和应用场景
- 我和花花有个约定|我和花花有个约定, Day1!
- 钛度热评|字节百亿收购美中宜和,流量拥簇下的医疗行业会怎样“跳动”?|钛度热评
- TypeScript命名空间讲解