局域网交换技术


局域网交换技术(LAN Switching)解决了共享式网络的性能局限,每个用户都能够独享带宽,从而缓解了带宽不足和网络瓶颈的问题 。本文主要探讨交换技术的基本原理和交换模式,并由交换模式引出多层交换技术的概念 。
一、 交换技术的基本原理
局域网交换技术是OSI参考模型中的第二层——数据链路层(Data-Link Layer)上的技术,所谓“交换”实际上就是指转发数据帧(frame) 。在数据通信中,所有的交换设备(即交换机)执行两个基本的操作:
交换数据帧,将从输入介质上收到的数据帧转发至相应的输出介质;
维护交换操作,构造和维护交换地址表 。
下面,我们探讨一下这两个基本操作的具体细节 。
1. 交换数据帧
交换机根据数据帧的MAC(Media Access Control)地址(即物理地址)进行数据帧的转发操作 。交换机转发数据帧时,遵循以下规则:
假如数据帧的目的MAC地址是广播地址或者组播地址,则向交换机所有端口转发(除数据帧来的端口);
假如数据帧的目的地址是单播地址,但是这个地址并不在交换机的地址表中,那么也会向所有的端口转发(除数据帧来的端口);
假如数据帧的目的地址在交换机的地址表中,那么就根据地址表转发到相应的端口;
假如数据帧的目的地址与数据帧的源地址在一个网段上,它就会丢弃这个数据帧,交换也就不会发生 。下面,我们以图1为例来看看具体的数据帧交换过程 。
 
当主机D发送广播帧时,交换机从E3端口接收到目的地址为ffff.ffff.ffff的数据帧,则向E0、E1、E2和E4端口转发该数据帧 。
当主机D与E主机通信时,交换机从E3端口接收到目的地址为0260.8c01.5555的数据帧,查找地址表后发现0260.8c01.5555并不在表中,因此交换机仍然向E0、E1、E2和E4端口转发该数据帧 。
当主机D与主机F通信时,交换机从E3端口接收到目的地址为0260.8c01.6666的数据帧,查找地址表后发现0260.8c01.6666也位于E3端口,即与源地址处于同一个网段,所以交换机不会转发该数据帧,而是直接丢弃 。
当主机D与主机A通信时,交换机从E3端口接收到目的地址为0260.8c01.1111的数据帧,查找地址表后发现0260.8c01.1111位于E0端口,所以交换机将数据帧转发至E0端口,这样主机A即可收到该数据帧 。
假如在主机D与主机A通信的同时,主机B也正在向主机C发送数据,交换机同样会把主机B发送的数据帧转发到连接主机C的E2端口 。这时E1和E2之间,以及E3和E0之间,通过交换机内部的硬件交换电路,建立了两条链路,这两条链路上的数据通信互不影响,因此网络亦不会产生冲突 。所以,主机D和主机A之间的通信独享一条链路,主机C和主机B之间也独享一条链路 。而这样的链路仅在通信双方有需求时才会建立,一旦数据传输完毕,相应的链路也随之拆除 。这就是交换机主要的特点 。
从以上的交换操作过程中,我们可以看到数据帧的转发都是基于交换机内的MAC地址表,但是这个地址表是如何建立和维护的呢?下面我们就来介绍这个问题 。
2. 构造维护交换地址表
交换机的交换地址表中,一条表项主要由一个主机MAC地址和该地址所位于的交换机端口号组成 。整张地址表的生成采用动态自学习的方法,即当交换机收到一个数据帧以后,将数据帧的源地址和输入端口记录在交换地址表中 。思科的交换机中,交换地址表放置在内容可寻址存储器(Content-Addressable Memory, CAM)中,因此也被称为CAM表 。
当然,在存放交换地址表项之前,交换机首先应该查找地址表中是否已经存在该源地址的匹配表项,仅当匹配表项不存在时才能存储该表项 。每一条地址表项都有一个时间标记,用来指示该表项存储的时间周期 。地址表项每次被使用或者被查找时,表项的时间标记就会被更新 。假如在一定的时间范围内地址表项仍然没有被引用,它就会从地址表中被移走 。因此,交换地址表中所维护的一直是最有效和最精确的地址—端口信息 。

推荐阅读