HCNA网络技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 以太网原理

2.1.1 以太网数据链路层

IEEE 将局域网的数据链路层划分为 LLC(Logical Link Control,逻辑链路控制)和MAC(Medium Access Control,介质访问控制层)两个子层。LLC子层实现数据链路层与硬件无关的功能,如流量控制、差错恢复等;MAC子层提供LLC子层和物理层之间的端口,不同局域网的MAC子层不同,LLC子层相同。

LLC子层负责识别协议类型并对数据进行封装以便通过网络进行传输。为了区别网络层数据类型,实现多种协议复用链路,LLC子层用SAP(Service Access Point,服务访问点)标志上层协议。LLC子层包括两个服务访问点:SSAP(Source Service Access Point,源服务访问点)和DSAP(Destination Service Access Point,目的服务访问点),分别用于标志发送方和接收方的网络层协议。

MAC子层具有以下功能:提供物理链路的访问;提供链路级的站点标志;提供链路级的数据传输。MAC子层用MAC地址来标志唯一的站点。MAC地址有48bit,通常转换成12bit 的十六进制数,这个数分成三组,每组有四个数字,中间以点分开,如图2-1所示。MAC地址有时也称为点分十六进制数,它一般烧入NIC(网络端口控制器)中。为了确保MAC地址全球唯一,由IEEE对这些地址进行管理。每个地址由两部分组成,分别是供应商代码和序列号。供应商代码代表 NIC 制造商的名称,它占用 MAC 的前六位十六进制数字,即24bit二进制数字。序列号由设备供应商管理,它占用剩余的6位地址,即最后的24bit二进制数字。华为网络产品的MAC地址前六位十六进制数是0x00e0fc。

图2-1 MAC地址

在具体应用中,常见的特殊MAC地址如下:

① 如果48bit全是1,则表明该地址是广播地址;

② 如果第8位是1,则表示该地址是组播地址。

在目的地址中,地址的第8位表明该帧将要发送给单个站点还是一组站点。在源地址中,第8位必须为0(因为一个帧是不会从一组站点发出的),站点地址确定是至关重要的,一个帧的目的地址不能是模糊的。

2.1.2 以太网的帧格式

在以太网的发展历程中,以太网的帧格式出现过多个版本。目前正在应用的为 DIX (Dec、Intel、Xerox)的Ethernet_II帧格式和IEEE的IEEE 802.3帧格式。

1.Ethernet_II帧格式

Ethernet_II帧格式由DEC、Intel和Xerox在1982年公布,由Ethernet_I修订而来。Ethernet_II的帧格式如图2-2所示。

图2-2 Ethernet_II的帧格式

① DMAC(Destination MAC)是目的地址。由DMAC确定帧的接收者。

② SMAC(Source MAC)是源地址。SMAC字段标志发送帧的工作站。

③ Type是类型字段,用于标志数据字段中包含的高层协议,该字段取值大于1500B。

在以太网中,多种协议可以在局域网中同时共存。因此,在Ethernet_II的类型字段中设置相应的十六进制值提供了在局域网中支持多协议传输的机制。

● 类型字段取值为0800的帧代表IP协议帧;

● 类型字段取值为0806的帧代表ARP协议帧;

● 类型字段取值为8035的帧代表RARP协议帧;

● 类型字段取值为8137的帧代表IPX和SPX协议帧。

④ Data该字段表明帧中封装的具体数据。数据字段的最小长度必须为46B,以保证帧长至少为64B,这意味着传输一字节信息也必须使用46B的数据字段。如果填入该字段的信息少于46B,该字段的其余部分也必须进行填充。数据字段的最大长度为1500B。

⑤ CRC(Cyclic Redundancy Check)循环冗余校验字段提供了一种错误检测机制。每一个发送器都计算一个包括地址字段、类型字段和数据字段的 CRC 码,然后将计算出的CRC码填入4B的CRC字段。

2.IEEE 802.3帧格式

IEEE 802.3帧格式是由Ethernet_II帧发展而来的。它将Ethernet_II帧的Type域用Length域取代,并且占用了Data字段的8B作为LLC和SNAP字段。IEEE 802.3帧格式如图2-3所示。

图2-3 IEEE 802.3帧格式

① Length定义了Data字段包含的字节数。该字段取值小于或等于1500B(大于1500B标示帧格式为Ethernet_II)。

② LLC(Logical Link Control)由目的服务访问点(DSAP)、源服务访问点(SSAP)和控制(Control)字段组成。

③ SNAP(Sub-Network Access Protocol)由机构代码(Org Code)和类型(Type)字段组成。Org Code三个字节都为0。Type字段的含义与Ethernet_II帧中的Type字段相同。

其他字段与Ethernet_II帧的字段相同。

2.1.3 共享式以太网

同轴电缆是以太网发展初期所使用的连接线缆,它是物理层设备。通过同轴电缆连接起来的设备共享信道,即在每一个时刻,只能有一台终端主机在发送数据,其他终端处于侦听状态,不能发送数据。这种情况被称为网络中所有设备共享同轴电缆的总线带宽。

集线器(Hub)是一个物理层设备,它提供网络设备之间的直接连接或多重连接。集线器功能简单、价格低廉,在早期的网络中随处可见。在集线器连接的网络中,每个时刻只能有一个端口在发送数据。它的功能是把从一个端口接收到的比特流从其他所有端口转发出去,如图2-4所示为Hubr的工作过程。因此,用集线器连接的所有站点也处于一个冲突域之中。当网络中有两个或多个站点同时进行数据传输时,将会产生冲突。因此,利用集线器所组成的网络表面上为星状,但是实际仍为总线型。

图2-4 Hub的工作过程

Hub与同轴电缆都是典型的共享式以太网所使用的设备,工作在OSl模型的物理层。Hub 和同轴电缆所连接的设备位于一个冲突域中,域中的设备共享带宽。因此,共享式以太网所能连接的设备数量有一定限制,否则将导致冲突不断,网络性能受到严重影响。另外,共享式以太网利用CSMA/CD(Carrier Sense Multiple Access/Collision Detection,带冲突检测的载波监听多路访问)机制来检测及避免冲突。

CSMA/CD的工作过程如下。

发前先听:在发送数据之前进行监听,以确保线路空闲,减少冲突的机会。如果空闲,则立即发送;如果繁忙,则等待。

边发边听:在发送数据过程中,不断检测是否发生冲突(通过检测线路上的信号是否稳定判断冲突)。

遇冲退避:如果检测到冲突,立即停止发送,等待一个时间(退避)。

重新尝试:当随机时间结束后,重新开始发送尝试。

从上面所讲的内容中,可以知道由集线器和中继器组建以太网的实质是一种共享式以太网,故共享式以太网所具有的弊端它基本上都有,如冲突严重、广播泛滥、无任何安全性。

2.1.4 交换式以太网

交换式以太网的出现有效地解决了共享式以太网的缺陷,它大大减小了冲突域的范围,显著提升网络的性能,并加强了网络的安全性。

目前在交换式以太网中经常使用的网络设备是交换机和网桥。网桥用于连接物理介质类型相同的局域网,主要应用在以太网环境中,又称之为透明网桥。透明的含义:首先连接在网桥上的终端设备并不知道所连接的是共享媒介还是交换设备,即设备对终端用户来说是透明的,其次透明网桥对其转发的帧结构不做任何改动与处理(VLAN的Trunk线路除外)。本书不严格区分交换机与网桥,从某种意义上说,交换机就是网桥。

交换机与Hub一样同为具有多个端口的转发设备,在各个终端主机之间进行数据转发。但相对于Hub的单一冲突域,交换机通过隔离冲突域,使得终端主机可以独占端口的带宽,并实现全双工通信,所以交换式以太网的交换效率大大高于共享式以太网。

交换机有三个主要功能:地址学习、转发/过滤和环路避免功能。通常交换机的三个主要功能都被使用,它们在网络中是同时起作用的。

交换机内有一张MAC地址表,表中维护了交换机端口与该端口下设备MAC地址的对应关系,如图2-5所示。交换机就根据MAC地址表来进行数据帧的交换转发。

图2-5 MAC地址表

交换机基于目标MAC(介质访问控制)地址做出转发决定,所以它必须“获取”MAC地址的位置,才能准确地做出转发决定。

当交换机与物理网段连接时,其工作过程如图2-6所示,它会对监测到的所有帧进行检查。网桥读取帧的源 MAC 地址字段后与接收端口关联并记录到 MAC 地址表中。由于MAC地址表是保存在交换机内存之中的,所以当交换机启动时MAC地址表是空的。

图2-6 交换机工作过程(1)

此时工作站A给工作站C发送了一个单播数据帧,交换机通过E0口收到了这个数据帧,读取出帧的源MAC地址后将工作站A的MAC地址与端口E0关联,记录到MAC地址表中,此时交换机工作过程如图2-7所示。

图2-7 交换机工作过程(2)

由于此时这个帧的目的 MAC 地址对交换机来说是未知的,为了让这个帧能够到达目的地址,交换机执行洪泛的操作,即向除了进入端口外的所有其他端口转发。

所有的工作站都发送过数据帧后,交换机学习到了所有工作站的 MAC 地址与端口的对应关系并记录到MAC地址表中。

此时工作站A给工作站C发送了一个单播数据帧,交换机检查到了此帧的目的MAC地址已经存在于MAC地址表中,并和E2端口相关联,交换机将此帧直接向E2端口转发,即做转发决定。

工作站D发送一个帧给工作站C时,交换机执行相同的操作,通过这个过程交换机学习到了工作站D的MAC地址,与端口E3关联并记录到MAC地址表中,此时,交换机工作过程如图2-8所示。

图2-8 交换机工作过程(3)

由于此时这个帧的目的 MAC 地址对交换机来说仍然是未知的,为了让这个帧能够到达目的地址,交换机仍然执行洪泛的操作。

所有的工作站都发送过数据帧后,交换机学习到了所有工作站的 MAC 地址与端口的对应关系并记录到MAC地址表中。

此时工作站A给工作站C发送了一个单播数据帧,交换机检查到了此帧的目的MAC地址已经存在MAC地址表中,并和E2端口相关联,交换机将此帧直接向E2端口转发,即做转发操作。对其他的端口并不转发此数据帧,即做过滤操作,此时,交换机工作过程如图2-9所示。

图2-9 交换机工作过程(4)

对于同一个 MAC 地址,如果透明网桥先后学习到不同的端口,则后学到的端口信息覆盖先学到的端口信息,因此,不存在同一个MAC地址对应两个或更多出端口的情况。

对于动态学习到的转发表项,透明网桥会在一段时间后对表项进行老化,即将超过一定生存时间的表项删除掉。当然,如果在老化之前,重新收到该表项对应信息,则重置老化时间。系统支持默认老化时间(300s),用户也可以自行设置老化时间。

交换机对于收到数据帧的处理可以划分为三种情况:直接转发、丢弃和洪泛。当收到数据帧的目的 MAC 地址能够在转发表中查到,并且对应的出端口与收到报文的端口不是同一个端口时,则该数据帧从表项对应的出端口转发出去。如果收到数据帧的目的 MAC地址能够在转发表中查到,并且对应的出端口与收到报文的端口是同一个端口,则该数据帧被丢弃。当收到数据帧的目的MAC地址是单播MAC地址,但是在转发表中查找不到,或者收到数据帧的目的MAC地址是组播或广播MAC地址时,数据帧向除了输入端口外的其他端口复制并发送。

交换机有快速转发(Cut Through)、存储转发(Store and Forward)、分段过滤(Fragment Free)三种交换模式。在快速转发模式下,交换机接收到目的地址即开始转发过程,交换机不检测错误,直接转发数据帧,延迟小。在存储转发模式下,交换机接收完整的数据帧后才开始转发过程,交换机检测错误,一旦发现错误数据包将会丢弃,数据交换延迟大,并且延迟的大小取决于数据帧的长度。在分段过滤模式下,交换机接收完数据包的前64B (一个最短帧长度),然后根据帧头信息查表转发。此交换模式结合了快速转发模式和存储转发模式的优点。像快速转发模式一样不用等待接收完整的数据帧后再转发,只要接收了64B后,即可转发,并且同存储转发模式一样,可以提供错误检测,能够检测前64B的帧错误,并丢弃错误帧。