考点七:数据链路层设备
1.两个基本概念
(1)碰撞域又称为冲突域,是指网络中一个站点发出的帧会与其他站点发出的帧产生碰撞或冲突的那部分网络。如图3-26所示,总线型拓扑结构的网络,在任意时刻只能有一台计算机发送数据;当超过两台计算机同时发送数据时,就会产生碰撞。这些计算机处于同一个碰撞域。碰撞域的特征是这些计算机共享带宽,传输线路或传输设备没有对信号或数据进行任何筛选或过滤。
图3-26 总线型拓扑结构的网络
(2)广播域是指这样一部分网络,其中任何一台设备发出的广播通信都能被该部分网络中的所有其他设备所接收。在该集合中的任何一个节点发送一个广播帧(目的地址MAC是FF-FF-FF-FF-FF-FF),这个数据帧就会被这个网段的所有计算机接收并响应,如图3-27所示。
图3-27 广播域网络
在图3-27中,市场部的计算机发送广播帧,在这个网络中的计算机都能收到市场部的计算机发送的帧。那么,问题来了,碰撞域和广播域怎么区分呢?
2.网络互联设备概述
我们在讲解中已经提到过中继器、集线器、网桥、交换机、路由器,可能大家会有一些疑问:为什么需要网络互联设备呢?在5层教学模型中,每层的设备是什么? 每层设备的工作原理是什么?这些问题需要逐层介绍,这里先简单给出每层的设备对照表(表3-10),等我们讲完之后,再给出一个详细的总结。
表3-10 各层的设备对照表
说明:路由器放在第四讲网络层中进行讲解,在本讲中只讲解物理层和数据链路层的设备。
3.物理层设备
第一个问题是,为什么物理层需要互联设备?香农定理告诉我们,任何实际的信道都不是理想的,在传输信号时会产生各种失真或干扰。码元传输的速率越高、信号传输的距离越远或传输媒体质量越差在信道的输出端的波形的失真就越严重。
如图3-28所示,发送了数据信号,经过有噪声和干扰的信道传输以后,信号失真到无法识别。所以为了实现双机互联,便在这两台计算机之间安装一个设备,它的作用是将已经衰减得不完整的信号经过整理,重新产生出完整的信号再继续传送,在物理层,这个设备就是中继器。
图3-28 信号失真示意图
使用中继器的局域网在物理上往往是一个星型网络,其中中继器位于星型的中间位置,但是使用中继器的网络在逻辑上仍是一个总线型网络,各站共享逻辑上的总线,这是因为中继器不能对信号进行过滤,每个接口仅仅简单地转发数据,因此在同一时刻至多只允许一个站发送数据,并且网络中的各站必须竞争对传输媒体的控制,如图3-29所示。
图3-29 使用中继器的局域网
使用中继器连接的网络属于一个碰撞域(又称为冲突域),即在任一时刻,在每个碰撞域中只能有一个站在发送数据。若两个接口同时有信号输入(发生碰撞),则所有的接口都将收不到正确的帧。
中继器工作在物理层,它可以将已经衰减得不完整的信号经过整理,重新产生出完整的信号再继续传送,因此可以让互联网的传输距离更远,可以扩大网络的范围。但是它的每个接口仅仅简单地转发数据,不可以连接不同速率、不同规格的网段。
在学习和实践中,我们还会接触到集线器,其实集线器是多端口的中继器,工作原理与中继器一样,这里不再赘述。
4.网桥的概念和基本原理
中继器可以扩展网络的范围,但是每个接口仅仅简单地转发比特,不可以连接不同速率、不同规格的网段,且使用中继器连接的网络属于一个碰撞域。对于中继器来说,它仅仅是作用于物理特性,并不知道里面发送的是什么信息,自然是收到啥,发送啥,没有过滤和筛选信息,也就不能隔离冲突域。
那么能不能在物理层实现隔离冲突域呢?答案是否定的,因为物理层的功能是透明传输比特流,也就是说,物理层就是如何编码和传输比特流,它并不明白发送的比特流有什么含义(长度、起始位置等),但是要想隔离冲突域,就需要明白发送的信息是什么,并且能够对信息进行过滤和筛选,物理层不能实现隔离冲突域的功能。要想实现隔离冲突域的功能,首先需要明白发送的数据是什么(数据需要一定的格式);其次能够编址,根据地址进行数据转发,因此隔离冲突域需要物理层的上层才能实现。
在数据链路层使用网桥扩展局域网,首先数据链路层发送的数据单位是帧(具有格式);其次是帧有MAC地址(大家可以查看以太网的帧结构),分为目的MAC地址和源MAC地址,能够实现隔离冲突域的功能,其工作原理是网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发,当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,再确定将该帧转发到哪个接口,因此具有过滤帧的功能。网桥的内部结构如图3-30所示,网桥有两个接口,其中接口1连接A、B、C三台计算机,接口2连接D、E、F三台计算机,在网桥内部会经过某些算法,得到一张站表,里面记录了站地址和转发接口。通过站表可以知道,发送到计算机A、B、C的帧从网桥的接口1发送,发送到计算机D、E、F的帧从网桥的接口2发送,从而可以做到帧的过滤,实现了隔离冲突域的功能。
图3-30 网桥的内部结构
从站表可以知道,网桥只需要知道这个站表,就可以实现对号入座地发送数据帧。那么问题在于,给定一个网桥如何构造站表?网桥根据其工作过程(构造站表的原理)的不同可以分成透明网桥和源路由网桥。
5.透明网桥
透明网桥是目前使用最多的网桥。“透明”是指局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的,透明网桥是一种即插即用设备,网桥按照以下自学习(逆学习)算法处理收到的帧和建立转发表。
自学习算法的思想非常简单,其本质是逆向追寻思维。如图3-31所示,若主机A发出的帧从接口1进入了某网桥,则从这个接口1出发沿相反方向一定可把一个帧传送到A。不失一般性,若主机A发出的帧从接口x进入了某网桥,则从这个接口x出发沿相反方向一定可把一个帧传送到主机A。网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表(站表)中的一个项目,该项目包含的信息如表3-11所示。
记录地址和转发接口很容易理解,把每个帧到达网桥的时间登记下来,就可以在转发表中只保留网络拓扑的最新状态信息。这样就使得网桥中的转发表能反映当前网络的最新拓扑状态。透明网桥运行自学习算法自动维护转发表,其工作过程如下:
(1)若A发出的帧从接口x进入了某网桥,则从这个接口出发沿相反方向一定可把一个帧传送到A。
图3-31 网桥的链接
表3-11 转发表中的项目包含的信息
(2)网桥每收到一个帧,就记下其源地址和进入网桥的接口,作为转发表中的一个项目。在建立转发表时把帧首部中的源地址写在“地址”这一栏的下面。
(3)在转发帧时,则根据收到的帧首部中的目的地址来转发。这时就把在“地址”栏下面已经记下的源地址当作目的地址,而把记下的进入接口当作转发接口。
网桥的转发帧的步骤归纳如下:
(1)网桥收到一帧后先进行自学习。查找转发表中与收到帧的源地址有无相匹配的项目。若没有,则在转发表中增加一个项目(源地址、进入的接口和时间);若有,则把原有的项目进行更新。
(2)转发帧。查找转发表中与收到帧的目的地址有无相匹配的项目。若没有,则通过所有其他接口(但进入网桥的接口除外)进行转发;若有,则按转发表中给出的接口进行转发。
若转发表中给出的接口就是该帧进入网桥的接口,则应丢弃此帧,因为这时不需要经过网桥进行转发。
大家知道,网络是图形结构,有可能存在环,为了避免产生转发的帧在网络中不断地兜圈子,透明网桥使用了生成树算法得到一个生成树,互联在一起的网桥在进行彼此通信后,就能找出原来的网络拓扑的一个子集。在这个子集里,整个连通的网络中不存在回路,即在任何两个站之间只有一条路径。
【政哥点拨】
如图3-32所示,一个网桥有1、2、3、4号共4个接口,其中1号接口连接计算机A,2号接口连接计算机C,3号接口连接计算机B,4号接口连接计算机D,为了表示方便,我们用计算机的名字代替其MAC地址。初始时,网桥的交换表是空的。
图3-32 初始时网桥的交换表状态
如图3-33所示,A先向B发送一帧。该帧从接口1进入到网桥。交换机收到帧后,先查找交换表。没有查到应从哪个接口转发这个帧给B。交换机把这个帧的源地址A和接口1写入交换表中。
网桥向除接口1之外的所有的接口广播这个帧。由于与该帧的目的地址不相符,C和D 将丢弃该帧。只有B收下该帧,并做后续的处理。
图3-33 A向B发送帧时网桥的交换表状态
如图3-34所示,B向A发送一帧,该帧从接口3进入到网桥。网桥收到帧后,先查找交换表。发现交换表中的MAC地址有A,表明要发送给A的帧应从接口1转发出去。于是就把这个帧传送到接口1转发给A。网桥把这个帧的源地址B和接口3写入交换表中。
图3-34 B向A发送帧时网桥的交换表状态
同理,可以给出在两个不同的网桥之间传递信息的情况。
假设:A向B发送了一帧,C向E发送了一帧,E向A发送了一帧。
请分析:此时,网桥S1和S2的交换表内容分别是什么?可以采用相同的分析方法,得到结果如图3-35所示。
图3-35 两个网桥的交换表状态
6.源路由网桥
透明网桥容易安装,但网络资源的利用不充分,只要网络的拓扑结构发生变化,就需要进行重新学习,费时又费力。源路由网桥是让发送方在发送帧时将详细的路由信息放在帧的首部。发送方如何获取这个路由信息呢?发送方以广播的方式向欲通信的目的站发送一个发现帧(探子),每个发现帧都记录所经过的路径。发现帧到达接收方时就沿各自的路径返回发送方(原路返回)。发送方在得知这些路径后,从所有可能的路径中选择一条最佳路径。凡从该发送方向该接收方发送的帧的首部,都必须携带发送方所确定的这一路径信息。这个过程有点像古代打仗,探马需要先行探路,确定行军路线,然后将行军路线告诉大军。
7.网桥的优缺点
(1)网桥的优点。
①过滤通信量。
②扩大了物理范围。
③提高了可靠性。
④可互联不同物理层、不同MAC子层和不同速率的以太网。
(2)网桥的缺点。
①存储转发增加了时延。
②在MAC子层并没有流量控制功能。
③具有不同MAC子层的网段桥接在一起时时延更大。
④网桥只适用于用户数不太多(不超过几百个)和通信量不太大的局域网,否则可能会因传播过多的广播信息而产生网络阻塞,即广播风暴(这里所说的局域网的网桥无法隔离广播域,这个属于强扣帽子,事实上广播方式有两种,一种是目的MAC地址FF FF FF FF FF FF,根据设计原理,这类数据网桥一定要转发,属于硬件地址广播;另一种是IP广播,网桥是数据链路层设备,它不能干涉IP广播的数据发送)。