本节书摘来自异步社区《CCIE路由和交换认证考试指南(第5版) (第1卷)》一书中的第1章,第1.3节以太网第2层:成帧和编址,作者 【美】Narbik Kocharians(那比克 科查理安) , 【斯洛伐克】Peter Paluch(彼得 派拉奇),更多章节内容可以访问云栖社区“异步社区”公众号查看
1.3 以太网第2层:成帧和编址
在本书以及许多Cisco课程和文档中,数据帧一词指包含在二层头部和尾部之间的比特和字节,以及被头部和尾部封装的数据。术语数据包最常用来描述三层头部和数据,不包含二层头部和尾部。以太网第2层的标准与创建、转发、接收和解释以太网帧相关。
原始的以太网标准由Digital Equipment公司、Intel和Xerox所有——因而也就有了名字“Ethernet (DIX)”。后来,在20世纪80年代早期,IEEE标准化了以太网,将一部分(第1层和第2层的一部分)定义在802.3介质访问控制(Media Access Control,MAC)标准中,将第2层的另一部分定义在802.2逻辑链路控制(Logical Link Control,LLC)标准中。后来,IEEE意识到802.2 LLC头部中,长度为1字节的目的服务访问点(Destination Service Access Point,DSAP)字段太小了;因此,IEEE在802.2头部之后引入了新的帧格式子网访问协议(Sub-Network Access Protocol,SNAP),如图1-4第三种头部格式所示。最终,在1997年,IEEE将原始的DIX V2帧格式也加入了802.3标准,如图1-4顶部帧所示。
2字节类型字段,与DIX类型字段使用相同的值,克服DSAP字段空间不足的问题
1.3.1 以太网地址类型
以太网地址常被称为MAC地址,长度为6字节,通常以十六进制表示。主要有三类以太网地址,如表1-4所示。
组播以太网帧用来与LAN中部分设备的动态子集进行通信。最常用的以太网组播地址与IP组播的使用有关。例如,如果LAN上100个用户中只有3个希望使用基于IP组播的视频应用,来观看相同的视频流,应用程序就可以发送一个组播帧。三个感兴趣的设备做好准备,监听发往一个特定组播以太网地址的帧,并处理发往该地址的帧。其他设备可能也会接收到此帧,但会忽略其内容。因为以太网组播的概念现今最常用在IP组播中,剩下的大部分以太网组播内容在第2卷的第7章中介绍。
1.3.2 以太网地址格式
IEEE计划通过管理MAC地址的分配,使单播地址在全世界的范围内保持唯一。IEEE给每个供应商分配一个代码,用于MAC地址的前3字节;地址的前一半称为组织唯一标示符(Organizationally Unique Identifier,OUI)。IEEE希望每个供应商对于其生产的任何以太网产品,MAC地址的前3字节都使用自己的OUI。供应商随后还对每个生产的以太网网卡的后3字节分配一个唯一值——这就保证了MAC地址的全球唯一性。图1-5显示了基本的以太网地址格式以及一些额外的信息。
注意图1-5中显示了最高有效字节和每个字节中的最低有效位的具体位置。IEEE文档中以太网地址的最高有效字节在最左侧。然而,在每个字节内,最左侧的位是最高有效位,最右侧的位是最低有效位。许多文档将这样的位顺序称为标准的(canonical)。不管术语如何,每个字节中的位顺序对于理解以太网地址中的两个最重要的位,具有很重要的意义:
I/G(个体/组)位;
U/L(通用/本地)位。
表1-5总结了每个位的意义。
表1-5 I/G位和U/L位
注释:
通常,在覆盖MAC地址以使用本地地址时,设备或设备驱动不会强制将U/L位值设置为1。
1.3.3 协议类型及802.3长度字段
图1-4中显示的三种以太网头部类型中,每一个都有用于标识帧中数据格式的字段。该字段通常被称为类型,允许以太网帧的接收者知道如何解释收到的这个帧中的数据。例如,路由器可能希望知道帧中是否包含IP包或IPX包等。
DIX和改进后的IEEE帧中都是用了类型字段,也称为协议类型字段。原IEEE对成帧的定义是:使用相同的2字节作为长度字段。为了与以太网头部相区分,以太网的类型字段取值总是以1536开始,而IEEE帧数据字段的长度总是限制在十进制1500及以下。这样一来,以太网网卡就可以轻松识别这个帧的格式到底是DIX,还是原IEEE格式了。
原IEEE帧为802.2 LLC标准的类型字段使用了一个1字节的协议类型(DSAP)字段。其中预留2个高位比特以作他用,与MAC地址中的I/G位和U/L位相似。因此,DSAP字段的可能组合无法满足实际使用的要求——于是IEEE必须定义另一个类型字段,这个字段位于附加的IEEE SNAP头部中。表1-6总结了以太网三个主要的类型字段及其用途。