1 共享式以太网互连以太网采用CSMA/CD机制,这种冲突检测方法使得以太网可以使用共享总线型的连接方式 。最初的局域网搭建采用HUB或者同轴电缆将同一网络的主机互连起来,如图1所示 。
文章插图
共享式以太网互连
HUB与同轴电缆都是典型的物理层设备,所有互连的设备位于一个冲突域中,当网络流量较小时,冲突较少发生,利用冲突检测机制已经可以较好的保证通信质量;但是当网络流量增加到一定程度时,将导致冲突不断,网络的吞吐量受到严重影响,数据也可能频繁的由于冲突而被拒绝发送 。二层交换机的出现有效的解决了这个问题,大大的减小了冲突域的范围 。
2 二层交换原理二层交换机工作在OSI模型的第二层,即数据链路层,它对数据包的转发是建立在链路层信息——mac(Media Access Control )地址基础之上的,它的内部一般使用称为ASIC(Application Specific Integrated Circuit )的硬件芯片来实现转发,同时由于是硬件转发,其转发性能非常高 。二层交换机不同的端口发送和接收数据独立,各端口属于不同的冲突域,因此有效地隔离了网络中物理层冲突域,使得通过它互连的主机(或网络)之间不必再担心流量大小对于数据发送冲突的影响,典型的组网结构如图2所示 。
文章插图
多台主机通过二层交换机互连
由于二层交换机的转发依据是MAC地址,下面先简单介绍一下这个概念 。
2.1 MAC地址简介在每个以太网帧的帧头,都包含有一个目的MAC地址和一个源MAC地址,它的作用是标志帧的源节点和目的节点的物理地址 。一个MAC地址有48bit(6个字节),从应用上可以分为单播地址、组播地址、广播地址:
(1) 单播地址:第1字节的最低位为0,比如0000-0EF3-0038,一般用于标志唯一的设备;
(2) 组播地址:第1字节的最低位为1,比如0100-5E00-0001,一般用于标志同属一组的多个设备;
(3) 广播地址:所有48bit全为1,即FFFF-FFFF-FFFF,它用于标志同一网段中的所有设备 。
在常用的以太网帧结构中,目的、源MAC的位置如图3所示 。
文章插图
常见的以太网帧结构
2.2 二层交换基本原理二层交换机通过解析和学习以太网帧的源MAC来维护MAC地址与端口的对应关系(保存MAC与端口对应关系的表称为MAC表),通过其目的MAC来查找MAC表决定向哪个端口转发,基本流程如下:
(1) 二层交换机收到以太网帧,将其源MAC与接收端口的对应关系写入MAC表,作为以后的二层转发依据 。如果MAC表中已有相同表项,那么就刷新该表项的老化时间 。MAC表表项采取一定的老化更新机制,老化时间内未得到刷新的表项将被删除掉;
(2) 根据以太网帧的目的MAC去查找MAC表,如果没有找到匹配表项,那么向所有端口转发(接收端口除外);如果目的MAC是广播地址,那么向所有端口转发(接收端口除外);如果能够找到匹配表项,则向表项所示的对应端口转发,但是如果表项所示端口与收到以太网帧的端口相同,则丢弃该帧 。
从上述流程可以看出,二层交换通过维护MAC表以及根据目的MAC查表转发,有效的利用了网络带宽,改善了网络性能 。图4是一个二层交换的示例 。
文章插图
二层交换示例
二层交换机的MAC地址老化和刷新通常直接由硬件ASIC芯片来完成,这里顺便介绍一下其通常采用的机制:
(1) 在芯片中储存的每一个动态添加的MAC地址表项都有一个 1 bit 长度的老化标志,同时芯片有一个老化定时器用于控制地址老化;
(2) 对于新学习到的MAC地址表项,其老化标志位置1;对于已经学习到的MAC表项,如果后续有报文的源MAC与表项相同,那么将其老化标志位刷新为1;
(3) 每当芯片的老化定时器超时后,将MAC地址表中老化标志位等于1的项目,修改其老化标志位等于0;对于MAC地址表中老化标志位等于0的项目,直接删除 。
在这样的老化更新机制下,MAC地址的实际老化时间并不是精确的,而是一个范围:1~2倍的老化定时器时间 。
二层交换机虽然能够隔离冲突域,但是它并不能有效的划分广播域 。因为从前面介绍的二层交换机转发流程可以看出,广播报文以及目的MAC查找失败的报文会向所有端口转发,当网络中的主机数量增多时,这种情况会消耗大量的网络带宽,并且在安全性方面也带来一系列问题 。当然,通过路由器来隔离广播域是一个办法,但是由于路由器的高成本以及转发性能低的特点使得这一方法应用有限 。基于这些情况,二层交换中出现了VLAN技术 。
推荐阅读
- 一文读懂常用开源许可证
- 抽水马桶是如何工作的?一文看懂虹吸原理
- Nginx高级篇:从原理到实战,彻底搞懂Nginx
- 交换机划分 VLAN 配置
- 根据交换机的工作原理可知,交换机可以多个端口对之间的数据传输
- 一文讲弄懂什么是vlan、三层交换机、网关、子网掩码
- 路由交换技术—VLAN原理及配置
- 交换机与路由器的区别
- 8分钟带你深入浅出搞懂Nginx
- 一文教您如何实现持续集成服务器环境搭建