2.3 基于五类线宽带接入的以太网技术基础
2.3.1 以太网技术发展历程
以太网(Ethernet)是Xerox公司于20世纪70年代发明的一种局域网技术。最初的以太网带宽只有10Mbps,以同轴电缆为传输介质。1980年,以太网技术由IEEE802.3标准化,与光纤分布数据接口(FDDI)技术和令牌环(Token Ring)技术一起成为当时局域网的三大主要技术。但是,随着互联网的快速发展,以太网技术以其性价比高、可扩展性好、安装开通容易、适合传输IP数据等优点逐步成为主流局域网技术,其他两种技术逐步退出历史舞台。
回顾以太网技术的发展历程,主要经历了以下6个阶段。
(1)1973—1982:以太网的产生
1973年,Xerox公司提出并实现了最初的以太网,实验室原型系统运行速度达到2.94Mbps。1979年,Xerox与DEC公司联合将以太网技术标准化和商品化,为了能将商品化以太网集成到廉价芯片中,Intel也加入了这个联盟,形成了以太网技术的“三驾马车”,在1980年9月开发了10Mbps的以太网标准(DIX80),采用粗同轴电缆。1982年,发布了第2版,增加了网络管理功能(DIX82)。
(2)1982—1990:10Mbps以太网发展成熟
1983年6月,IEEE标准委员会通过了第一个IEEE802.3标准,该标准采用了和DIX标准基本相同的技术,只是在一些不太重要的方面有所差别而已。随着以太网市场的不断扩大,该标准被不断完善,1990年9月IEEE通过了使用双绞线介质的以太网(10BASET)标准,双绞线很快成为局域网中首选的以太网介质。
(3)1983—1997:LAN桥接
20世纪80年代初,DEC开发了第一个透明的LAN网桥,并于1984年发布了商品化产品,此后网桥逐步成为以太网互连的主流设备。1990年,IEEE802工作组推出了IEEE802.1d标准。网桥将局域网分割成了多个独立的碰撞域,降低了碰撞概率,使得局域网的规模得以扩大。
(4)1992—1997:快速以太网
快速以太网(FastEthernet,FE)由Grand Junction网络公司开发,该以太网的基本特征,如帧格式、软件接口和访问控制方法等与以往以太网相同,但是运行速度达到100Mbps。该技术大大提高了局域网络的带宽,1995年由IEEE标准化。
(5)1996—2005:千兆位以太网
在快速以太网标准化后不到一年,IEEE802.3开始了千兆位以太网(GE)标准的研究,1998年完成。千兆位以太网使用了和先前以太网相同的帧结构,但是不再使用CSMA/CD,只能用于点到点互连,因此支持全双工方式。
(6)1999年至今:万兆位以太网
随着互联网的快速广泛发展,对于带宽的需求持续增长。但是传统的高带宽技术,比如ATM和POS,价格昂贵且不适合传输IP数据。人们自然将目光投向了成本相对低廉的以太网技术,1999年,IEEE开始了万兆位以太网标准的研究,2002年7月标准完成。
万兆位以太网将以太网技术的应用拓展到广域网领域,在大幅度提高带宽的同时完全兼容现有以太网技术。另外,万兆位以太网支持在物理层采用SDH技术,这样在SDH链路上可以高效传输以太网包,节省了网络基础设施上的投资。
2.3.2 主要标准
在以太网的发展过程中,IEEE定义了多种标准,发挥了重要作用。如表2-4所示,不同的以太网技术标准通常速率不同,或者基于不同的物理介质。为了便于标识,IEEE使用缩写的方式表示不同的以太网标准,比如,10BASE5和100BASE-T。每个标准缩写由3部分组成:速率、信号和介质。
速率:表示以太网的带宽,单位为Mbps,比如,10BASE5中的10和100BASE-T中的100。
信号:BASE表示采用的是基带信号,即物理介质由以太网专用,不与其他通信技术共享;BROAD表示采用的是宽带信号,即物理介质能够同时支持以太网技术和其他通信技术。
介质:表示物理介质类型,通常也为缩写。比如:“5”表示物理介质为粗同轴电缆;“2”表示物理介质为细同轴电缆;“T”表示物理介质为双绞线;“F”表示物理介质为光纤。
表2-4 主要以太网技术标准比较
2.3.3 基本技术
1.参考模型
参考ISO模型,IEEE以太网技术标准定义可分为物理层和数据链路层两层,参见图2-9。数据链路层又被进一步细分为MAC(媒体访问控制)子层、MAC控制子层(可选)和LLC(逻辑链路控制)子层。其中,MAC子层负责以太网帧的封装解析、寻址和转发等;LLC子层负责以太网链路的高级控制功能,比如STP协议就工作在LLC层。物理层又被进一步细分为MII(媒体无关接口)和媒体相关接口(MDI)等。对于不同的以太网技术标准来说,它们的数据链路层是一样的,差别在于物理层定义。
图2-9 OSI参考模型和以太网技术标准
2.MAC地址
以太网通过一个长6字节的字段来标识以太网络中的主机,这个字段称为MAC地址。通常站点只接收目的MAC地址是自己的以太网帧(广播和组播以太网帧除外)。
MAC地址可以分为两部分。前3字节用于标识网络硬件制造商,即OUI(Organizationally Unique Identifier),为组织唯一标识符。OUI由IEEE管理,统一分配。后3字节由网络硬件制造商自己分配,用于标识不同的设备。MAC地址全球唯一,所以每个网络硬件制造商必须保证自己生产的每个以太网设备都具有相同的前3字节,不同的后3字节。
MAC地址通常用十六进制数来表示,十六进制数间使用冒号或下划线隔开,比如,08-00-20-0A-8C-6D。其中08-00-20为OUI,0A-8C-6D为网络硬件制造商自己分配的设备标识。
MAC地址分为以下3类。
①广播MAC地址:6字节的所有比特位为1的MAC地址为广播MAC地址,即FF-FF-FF-FF-FF-FF。目的地址为广播地址的以太网帧可以被局域网中的所有站点收到。
②组播MAC地址:MAC地址最高字节的第一个比特用来标识一个MAC地址是否为组播MAC地址。如果为1,即为组播MAC地址(广播MAC地址除外);如果为0,则为单播MAC地址。比如,01-00-00-00-00-00就是组播MAC地址。目的地址为组播MAC地址的以太网帧可被网络中的一组站点接收。
③单播MAC地址:广播MAC地址和组播MAC地址以外的地址都为单播MAC地址。目的地址为单播MAC地址的以太网帧只能被网络中的一个站点收到。
3.以太网帧结构
以太网技术将数据封装在变长的数据包中进行传输,这些数据包称为以太网帧。由于标准定义的不同,目前使用的以太网帧格式有4种:Ethernet II、Ethernet 802.3raw、Ethernet 802.3SAP和Ethernet 802.3SNAP,不同格式以太网帧的字段定义有差别,彼此互不兼容。
Ethernet II的帧格式参见图2-10,其他帧格式不做详细说明。Ethernet II以太网帧分成以下组成部分。
图2-10 以太网帧格式
① 前导码(Preamble):前导码用于以太网帧同步和标识以太网帧的开始,长度为8字节,内容为交替出现的0和1比特。
② 目的MAC地址:用于标识该以太网帧的目的主机。
③ 源MAC地址:用于标识发送该帧的主机。
④ 类型字段:用于标识以太网帧承载的上层数据包类型,比如,0x0800表示以太网帧承载的是IP包;0x0806表示以太网帧承载的是ARP包;0x8138表示以太网帧承载的是Novell包。
⑤ 数据字段:用于存放需要传送的协议数据,数据字段长度通常在46~1500字节之间。如果协议数据的长度小于46字节,则必须使用一些填充数据字段进行填充,以保证网络中的每个站点在最大循环信号传输时间内都能收到帧。如果协议数据长度超过1500字节,上层就必须将其进行分片。
⑥ FCS字段:前向校验和(FCS)字段长4字节,用于校验以太网帧的正确性。当发送以太网帧时,相关站点会对以太网帧的目的MAC地址、源MAC地址、类型字段和数据字段的内容进行CRC计算,得到一个4字节长的值放到FCS字段中。接收到以太网帧的站点通常会进行和发送站点相同的计算,然后将结果和FCS字段中的值进行比较,如果相同表示以太网帧内容是正确的,否则认为以太网帧在传输过程中发生了错误。
4.交换式以太网
在传统局域网中由于所有站点属于同一个碰撞域,站点越多,每个站点能够分到的实际带宽就越小,其可扩展性存在很大的问题。20世纪90年代初,发展出了交换式以太网技术。最初的交换式以太网设备叫做网桥。图2-11为交换式以太网的示意图。图2-11中的局域网通过一个网桥将两个局域网段连接在了一起。与仅工作在物理层的集线器(HUB)不同,网桥同时工作在物理层和数据链路层,交换式以太网的主要工作原理如下所述。
图2-11 交换式以太网示意图
(1)地址学习
每个网桥都会维护一张地址表,每个地址表条目以MAC地址为索引,主要内容为入端口。当网桥收到一个以太网帧时,将会更新地址表,记录以太网帧的源地址和入端口。这样网桥就通过分析以太网帧的内容学习到了某个站点位于和哪个端口相连的局域网段上,这就是通常说的地址学习。如图2-11所示,网桥学习到了多个站点的入端口,在地址表中有多个条目,从图2-11中可以看出地址为08-00-60-00-00-46的站点,即站点A,和1端口相连。
(2)转发
当网桥收到一个以太网帧时,不再像HUB一样将其转发到除入端口外的所有出端口,而是用以太网帧的目的地址去查找已经学习到的地址表,如果地址表中存在以目的地址为索引的条目,则将以太网帧从地址条目记录的端口发送出去。如图2.11所示,MAC地址为08-00-60-00-00-46的站点A给MAC地址为08-00-60-00-00-17的站点F发送以太网帧,网桥将从地址表中查到站点F的入端口为2,所以只将该帧从2端口发送出去。
如果收到某个以太网帧的端口和地址表中对应条目的端口一样,通常情况下,网桥不进行任何转发处理。比如,站点D给站点E发送以太网帧,网桥收到此类帧不进行任何转发处理。
(3)泛洪
网桥地址表初始为空,只有当网桥收到某个站点发送到的帧时,才能够学习到对应的MAC地址。也就是说,当网桥收到一个以太网帧时,有可能在地址表中查不到对应条目,因为,目的MAC地址对应的站点从来没有发过帧。此时,网桥会将在除入端口以外的所有端口上都转发一份该以太网帧,这个过程就是泛洪。泛洪过程类似于HUB的转发过程,保证了目的地址未知的以太网帧也能够被对应站点收到。
① 广播包的处理:目的地址为广播包的以太网帧将被泛洪到除接收端口以外的所有端口。
② 组播包的处理:组播包的处理相对比较复杂,后面小节将会详细描述。默认情况下,可以采用和广播包一样的处理方法。