乐趣区

关于网络编程:小菜学网络交换机与MAC地址学习

上一大节介绍了 集线器,一种工作于物理层的简略网络设备。因为集线器采纳播送的形式中继、转发物理信号,传输效率受到极大制约。

精准转发

为了解决集线器工作效率低下的难堪,咱们须要设计一种更高级的网络设备。新设施依据以太网帧的目标 MAC 地址,将它精准地转发到正确端口:

正文:这里 端口 (port ) 指的是转发设施的插口,也可叫做网口。

如上图,两头节点是转发设施,它在外部保护着一张主机 MAC 地址与对应端口的映射表,现与 3 台主机相连。这样一来,当转发设施接到主机 A 发给主机 C 的数据后,依据目标 MAC 地址搜寻映射表,便可将数据精确地转发到对应的端口 3

当初,传输模式变得更有针对性了——数据帧被精准转发到正确的端口,其余端口不再收到多余的数据:

不仅如此,主机 AB 通信的同时,其余计算机也可通信,互不烦扰。转发设施每个端口是一个独立的抵触域,带宽也是独立的。

集线器的缺点全副防止了!

交换机

可能依据以太网帧目标地址转发数据的网络设备就是 以太网交换机 (ethernet switch ):

交换机长相跟集线器没啥区别嘛。当然了,大部分网络设备都是一个布满端口的盒子,关键在于外部结构。

再看看事实中的交换机长啥样:

总结起来,以太网交换机属于 二层网络设备,特点如下:

  • 依据目标地址转发以太网帧;
  • 每个端口是独立抵触域;
  • 每个端口带宽独立;

Mac 地址学习

交换机完满地解决集线器的毛病,但新问题又来了,映射表如何取得呢?

最原始的形式是:保护一张动态映射表。当新设施接入,向映射表增加一条记录;当设施移除,从映射表删除对应记录。然而,纯手工操作形式多少有些焦躁。

好在计算机领域能够实现各种花色的自动化——通过算法主动学习映射表。咱们先来看看大抵思路:

初始状态下,映射表是空的。当初,主机 AB 发送一个数据帧 FRAME1。因为映射表中没有地址 B 的记录,交换机便将数据帧播送到其余所有端口。

因为交换机是从 Fa0/1 端口收到数据帧的,便晓得 A 连贯 Fa0/1 端口,而数据帧的源地址就是 A 的地址!此时,交换机能够将 A 的地址和端口 Fa0/1 作为一条记录退出映射表。交换机学习到 A 的地址!

接着,主机 BA 回复一个数据帧 FRAME2。因为映射表中曾经存在地址 A 的记录了,因而交换机将数据帧精准转发到端口 Fa0/1。同理,交换机学习到主机 B 的地址。

当主机 C 开始发送数据时,交换机同样学到其地址,学习过程实现!

这就是 MAC 地址主动学习 的基本原理。

【小菜学网络】系列文章首发于公众号【小菜学编程】,敬请关注:

退出移动版