上一大节介绍了 集线器,一种工作于物理层的简略网络设备。因为集线器采纳播送的形式中继、转发物理信号,传输效率受到极大制约。
精准转发
为了解决集线器工作效率低下的难堪,咱们须要设计一种更高级的网络设备。新设施依据以太网帧的目标 MAC 地址,将它精准地转发到正确端口:
正文:这里 端口 (port ) 指的是转发设施的插口,也可叫做网口。
如上图,两头节点是转发设施,它在外部保护着一张主机 MAC 地址与对应端口的映射表,现与 3 台主机相连。这样一来,当转发设施接到主机 A 发给主机 C 的数据后,依据目标 MAC 地址搜寻映射表,便可将数据精确地转发到对应的端口 3。
当初,传输模式变得更有针对性了——数据帧被精准转发到正确的端口,其余端口不再收到多余的数据:
不仅如此,主机 A 与 B 通信的同时,其余计算机也可通信,互不烦扰。转发设施每个端口是一个独立的抵触域,带宽也是独立的。
集线器的缺点全副防止了!
交换机
可能依据以太网帧目标地址转发数据的网络设备就是 以太网交换机 (ethernet switch ):
交换机长相跟集线器没啥区别嘛。当然了,大部分网络设备都是一个布满端口的盒子,关键在于外部结构。
再看看事实中的交换机长啥样:
总结起来,以太网交换机属于 二层网络设备,特点如下:
- 依据目标地址转发以太网帧;
- 每个端口是独立抵触域;
- 每个端口带宽独立;
Mac 地址学习
交换机完满地解决集线器的毛病,但新问题又来了,映射表如何取得呢?
最原始的形式是:保护一张动态映射表。当新设施接入,向映射表增加一条记录;当设施移除,从映射表删除对应记录。然而,纯手工操作形式多少有些焦躁。
好在计算机领域能够实现各种花色的自动化——通过算法主动学习映射表。咱们先来看看大抵思路:
初始状态下,映射表是空的。当初,主机 A 向 B 发送一个数据帧 FRAME1。因为映射表中没有地址 B 的记录,交换机便将数据帧播送到其余所有端口。
因为交换机是从 Fa0/1
端口收到数据帧的,便晓得 A 连贯 Fa0/1
端口,而数据帧的源地址就是 A 的地址!此时,交换机能够将 A 的地址和端口 Fa0/1
作为一条记录退出映射表。交换机学习到 A 的地址!
接着,主机 B 向 A 回复一个数据帧 FRAME2。因为映射表中曾经存在地址 A 的记录了,因而交换机将数据帧精准转发到端口 Fa0/1
。同理,交换机学习到主机 B 的地址。
当主机 C 开始发送数据时,交换机同样学到其地址,学习过程实现!
这就是 MAC 地址主动学习 的基本原理。
【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注: