以太网和IEEE 802封装

【以太网和IEEE 802封装】
从图1 - 4中可以看出,在TCP/IP协议族中,链路层主要有三个目的:(1)为IP模块发送和接收IP数据报;(2)为ARP模块发送ARP请求和接收ARP应答;(3)为RARP发送RARP请求和接收RARP应答 。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等 。
;;;;在本章中,我们将具体讨论以太网链路层协议,两个串行接口链路层协议(SLIP和PPP),以及大多数实现都包含的环回(loopback)驱动程序 。以太网和S L IP是本书中大多数例子使用的链路层 。对MTU(最大传输单元)进行了介绍,这个概念在本书的后面章节中将多次碰到 。我们还讨论了如何为串行线路选择MTU 。
;;;;以太网这个术语一般是指数字设备公司(Digital Equipment Corp.)、英特尔公司(IntelCorp.)和Xerox公司在1982年联合公布的一个标准 。它是当今TCP/IP采用的主要的局域网技术 。它采用一种称作CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection) 。它的速率为10 Mb/s,地址为48 bit 。
;;;;几年后,IEEE(电子电气工程师协会) 802委员会公布了一个稍有不同的标准集,其中802.3针对整个CSMA/CD网络,802.4针对令牌总线网络,802.5针对令牌环网络 。这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC) 。不幸的是,802.2和802.3定义了一个与以太网不同的帧格式 。文献[Stallings 1987]对所有的IEEE 802标准进行了具体的介绍 。
;;;;在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定义的格式 。图2 - 1显示了两种不同形式的封装格式 。图中每个方框下面的数字是它们的字节长度 。
;;;;两种帧格式都采用48 bit(6字节)的目的地址和源地址(802.3答应使用16 bit的地址,但一般是48 bit地址) 。这就是我们在本书中所称的硬件地址 。ARP和RARP协议(第4章和第5章)对32 bit的IP地址和48 bit的硬件地址进行映射 。
;;;;接下来的2个字节在两种帧格式中互不相同 。在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括C R C检验码 。以太网的类型字段定义了后续数据的类型 。在802标准定义的帧格式中,类型字段则由后续的子网接入协议( Sub-network AccessProtocol,SNAP)的首部给出 。幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分 。

(点击查看原图)
;;;;在以太网帧格式中,类型字段之后就是数据;而在802帧格式中,跟随在后面的是3字节的802.2 LLC和5字节的802.2 SNAP 。目的服务访问点(Destination Service Access Point,DSAP)和源服务访问点(Source Service Access Point, SSAP)的值都设为0xaa 。Ctrl字段的值设为3 。随后的3个字节org code都置为0 。再接下来的2个字节类型字段和以太网帧格式一样(其他类型字段值可以参见RFC 1340 [Reynolds and Postel 1992]) 。
;;;;CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验序列) 。

推荐阅读