Dzming.Li

数据链路层

3.8 数据链路层设备

只要数据帧传输在端到端的链路连接,那么就是在一个局域网内。我们接下来思考的问题是,怎么让局域网越来越大。

在经典以太网中,我们可以通过集线器吧大家疯狂连接起来,但是这时我们遇到了物理层的限制,就是冲突域会变得越来越大,就越来越容易冲突。

我们很容易想到,对于两个小的以太网网,我们能不能把小的以太网网连接成大的局域网呢,这样在小的冲突域内的消息不会和另一个冲突域上的消息冲突,冲突的概率就低了很多。这一概念就是网桥。

我们考虑ABCD四台机器的情况下。 平时AB发消息,CD就不能发。对于一个局域网内部,所有的信息还是照常广播,但凡是局域网外的消息,网桥看这个MAC地址,把它转发过去。但A在往B发的时候D能往C发而不至于冲突了。

3.8.1 以太网交换机

交换机的本质就是多端口的网桥。

假设所有的主机都只通过交换机而不通过集线器连接。那么传统的冲突就不会发生,这被称为交换局域网.。

当然,除了消除冲突之外,交换机还有一个好处,那就是支持异质链路. 不同速率的以太网可以被这样连成一个以太网。请注意异质链路和异构链路的区别,快速以太网和吉比特以太网是异质链路,以太网和无限局域网是异构链路。

冲突域和广播域的区分是真题考察过的考点,我们在此强调一下。冲突域是基于物理层定义的,因此物理层上的设备没法隔离冲突域。广播域是基于链路层定义的,因此链路层设备也没法隔离广播域。

广播风暴指的是局域网大量帧持续在回路里传播,使得局域网的带宽被耗尽的情况。成因可以是大量产生异常帧,也可以是环路。只要还在同一个广播域,我们就没有真正的抑制广播风暴。

为了避免形成环形回路,交换机会增加使用BTP功能. 抑制广播风暴的办法是避免环路拓扑,但交换机和网桥本身都无法抑制广播风暴。想要抑制广播风暴,需要把广播域划分的更小,也就是引入更高层的设备,也就是网络层的路由器。

指的区分的是冲突域和广播域的概念。冲突域是物理层层面的域,也就是链路层设备可以隔开它们。但物理层设备不能。广播域是链路层层面的域。一个局域网的本质就是广播的单元。

3.8.2 交换机的工作原理

假设我们有两台主机连接一个交换机,初始情况下交换表是空的。

A向B发生一帧,经过交换机,这一帧包含了来源的MAC地址,那么我们可以知道,这个MAC地址一定对应着A端口,以后有人发给A,就直接往A端口传。

交换表里没有主机B对应的MAC地址,所以要靠泛洪广播确定B能收到。

B能收到了之后会往A回传,那么此时交换机就知道了哪个端口对应B主机的地址了。

交换机还有老化机制,可以避免交换机的表存入过多历史设备。当出现集线器背后的拓扑变更,适配器变换等等,搭配老化机制和重新学习,交换机就能自然而然的更新表。

而对于我们拔下线插到另一个端口的情况,交换机往往还有链路断开检测,对于断开的端口自动清空表项。`