以太网交换

    最简单的方式是将所有网线接到一个集线器( ),如下图:

    集线器

    集线器内部构造很简单,可以理解成只是把所有网线连接到一起而已。换句话讲,集线器充当了 共用导线 的功能。

    ../_images/53cf4917a5902a9a82c038b28a6fd332.gif集线器构造

    这样一来,某个端口发送出去的电信号,将传送到所有其他端口:

    信号传输

    也就是说,从一台计算机发送出来的数据,将传送到其他所有计算机上。以 AB 发送数据为例:

    ../_images/3026a7ee9579986199ce1c6971fb02ae.png数据广播

    看起来就像 A 发起了 广播 ,所有其他计算机都可以收到这个数据。由于数据帧中包含 目的地址 ,最终只有 B 接收并处理这个数据。因此并无大碍,至少是可以正常工作的。

    尽管如此,还是存在一些缺陷,主要体现在两方面:

    • 所有计算机(端口)共享带宽;
    • 所有计算机(端口)处于同一 冲突域 (一台计算机发送,其他只能等待);这两方面缺陷注定了集线器传输效率不高,在接入端口数较多的情况下更是如此。

    总结一下,集线器工作于物理层,主要特点如下:

    • 放大中继物理电信号;
    • 所有端口同属一个冲突域;
    • 所有端口共享带宽;
    • 延伸网络访问距离;

    二层交换

    为了解决 效率低下的尴尬,需要设计一种更高级的网络设备,根据目的 MAC 地址,将数据准确转发到对应端口。

    如下图,中间节点是转发设备,与 3 台计算机连接。转发设备维护一张端口与对应计算机 MAC 地址的映射表。这样一来, 转发设备接到 A 机器发给 C 机器的数据后,根据目的 MAC 地址查映射表,将数据准确传送到对应的端口 。

    根据目的地址转发数据

    ../_images/8a367213e20260730a4c41dea1a18e68.png更有针对性的传输模式

    不仅如此,计算机 AB 通讯的同时,其他计算机也可通讯,互不干扰。每个端口是一个独立的冲突域,带宽也是独立的。

    集线器 的缺陷全解决了!

    能够根据 目的地址转发数据的网络设备就是 以太网交换机 ( Ethernet Switch ):

    交换机

    长相跟 集线器 没啥区别嘛。当然了,很多网络设备都是一个满身端口的盒子,关键还得看内部构造。

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

    ../_images/b19011363b3ff0b28385c915b380d71c.jpg一台真实的交换机

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

    • 根据目的地址转发数据
    • 每个端口是独立冲突域
    • 每个端口带宽独立

    MAC地址学习

    二层交换 一节,我们讨论了一种根据映射表转发数据的方法。现在问题来了,映射表如何获得?

    最原始的方式是,维护一张静态映射表。当新设备接入,向映射表添加一条记录;当设备移除,从映射表删除对应记录。

    然而,纯手工操作方式多少有些烦躁。

    好在计算机领域可以实现各种花式的自动化——通过算法自动学习映射表。先来看看大致思路:

    映射表为空,先广播;同时学习A的地址

    交换机通过 Fa0/1 端口收到数据,便知道 A 连接 Fa0/1 端口,而数据帧的源地址就是 的地址!此时,可以将 A 的地址和端口 Fa0/1 作为一条记录加入映射表。交换机学习到 A 的地址!

    ../_images/928e0063dc9a2c642e0125a75f52639c.png根据映射表准确转发;同时学习B的地址

    接着, BA 回复一个数据 Frame2 。由于映射表已经有关于 A 的记录了,数据直接转发到端口 Fa0/1 。同样,交换机学习到 B 的地址。

    地址学习完毕

    C 开始发送数据时,交换机同样学到其地址,学习过程完成!这就是 MAC地址自动学习 的过程。

    以太网络可以由多个设备构建而成:

    ../_images/7fc0203c170eca22891e36ced4f8e5cf.jpg以太网络

    图中的网络包含了两个连接设备,一个 ,一个 以太网交换机 。留几个思考题:

    • 哪些端口是独立的冲突域?
    • 哪些端口带宽是独立的?
    • 哪些机器间传输数据互不干扰?

    总结

    本节,介绍了两种常见的网络连接设备:

    集线器 工作在 ,只是放大中继物理电信号。集线器所有端口处于同一冲突域,也共享带宽。这个两个缺陷导致集线器传输效率不高。

    以太网交换机 工作在 ,能理解 以太网帧 ,并根据目的地址进行转发。交换机每个端口都是独立的冲突域,带宽也是独立的,因此传输比集线器更有效率。

    进行 ,交换机需要维护地址-端口映射表。交换机可以通过 MAC地址学习 自动完成这个过程。

    订阅更新,获取更多学习资料,请关注我们的 :

    小菜学编程