局域网交换技术是OSI参考模型中的第二层——数据链路层(Data-Link Layer)上的技术,所谓“交换”实际上就是指转发数据帧(frame)。在数据通信中,所有的交换设备(即交换机)执行两个基本的操作:
交换数据帧,将从输入介质上收到的数据帧转发至相应的输出介质;
维护交换操作,构造和维护交换地址表。
下面,我们探讨一下这两个基本操作的具体细节。
交换数据帧
交换机根据数据帧的MAC(Media Access Control)地址(即物理地址)进行数据帧的转发操作。交换机转发数据帧时,遵循以下规则:
如果数据帧的目的MAC地址是广播地址或者组播地址,则向交换机所有端口转发(除数据帧来的端口);
如果数据帧的目的地址是单播地址,但是这个地址并不在交换机的地址表中,那么也会向所有的端口转发(除数据帧来的端口);
如果数据帧的目的地址在交换机的地址表中,那么就根据地址表转发到相应的端口;
如果数据帧的目的地址与数据帧的源地址在一个网段上,它就会丢弃这个数据帧,交换也就不会发生
构造维护交换地址表
交换机的交换地址表中,一条表项主要由一个主机MAC地址和该地址所位于的交换机端口号组成。整张地址表的生成采用动态自学习的方法,即当交换机收到一个数据帧以后,将数据帧的源地址和输入端口记录在交换地址表中。思科的交换机中,交换地址表放置在内容可寻址存储器(Content-Addressable Memory, CAM)中,因此也被称为CAM表。
当然,在存放交换地址表项之前,交换机首先应该查找地址表中是否已经存在该源地址的匹配表项,仅当匹配表项不存在时才能存储该表项。每一条地址表项都有一个时间标记,用来指示该表项存储的时间周期。地址表项每次被使用或者被查找时,表项的时间标记就会被更新。如果在一定的时间范围内地址表项仍然没有被引用,它就会从地址表中被移走。因此,交换地址表中所维护的一直是最有效和最精确的地址—端口信息。
【相关文章】