链路层交换机
链路层交换机(下面就简称为交换机)的任务是接收入链路层帧并将它们转发到出链路,实现链路层帧的存储和转发,通过检验到达帧的目的 MAC 地址,选择性地向一个或多个数据链路转发帧。这些帧到达交换机的任何输出接口之一的速率可能会暂时超过该接口的链路容量,因此交换机的输出接口设有缓存。
最常见的形式是,主机利用独享链路直接连接交换机,如下图所示。每段链路是一个单独的冲突域,交换机在每段链路上利用 CSMA/CD 访问链路并发送数据帧,但无冲突,且可以全双工。
交换机自身对局域网中的主机和路由器是透明的;这就是说,某主机(路由器)向另一台主机(路由器)寻址一个帧时,将帧发送进局域网,并不知道某交换机将会接收该帧并将它转发到另一个节点。这类透明交换机就是一种即插即用(plug-and-play)且具有自学习(self-learning)功能的设备。
交换机表
交换机的功能包括过滤(filtering)和转发(forwarding)。过滤是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能;转发是决定一个帧应该被导向哪个接口,并把该帧移动到那些接口的交换机功能。交换机的过滤和转发功能借助于交换机表(switch table)来完成。
交换机表包含局域网上某些主机和路由器的但不必是全部的表项。某交换机的交换表格式如下:
MAC 地址 | 交换机接口 | 时间 |
---|---|---|
62-FE-F7-11-89-A3 | 1 | 9:32 |
7C-BA-B2-B4-91-10 | 3 | 9:36 |
… | … | … |
假定目的地址为 DD-DD-DD-DD-DD-DD
的帧从交换机的接口
x
x
x 到达,交换机用该 MAC 地址索引它的表,有 3 中可能的情况:
- 表中没有对于
DD-DD-DD-DD-DD-DD
的表项。交换机向除接口 x x x 外的所有接口前面的输出缓存转发该帧的副本。换言之,如果没有对于目的地址的表项,交换机广播该帧。 - 表中有一个表项将
DD-DD-DD-DD-DD-DD
与接口 x x x 联系起来。无需将该帧转发到任何其他接口,交换机通过丢弃该帧来执行过滤功能。 - 表中有一个表项将
DD-DD-DD-DD-DD-DD
与接口 y ≠ x y\neq x y=x 联系起来。交换机通过将该帧放到接口 y y y 前面的输出缓存完成转发功能。
交换机表是自动、动态和自治地建立的,它的 自学习能力是以如下方式实现的:
(1)交换机表初始为空;
(2)对于在每个接口收到的每个入帧,该交换机在其表中存储:① 该帧的源 MAC 地址;② 该帧到达的接口;③ 当前时间。
(3)如果在一段时间(老化期)后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个表项。如果一台 PC 被另一台 PC 代替,原来 PC 的表项将最终从该交换机表中被清除掉。
如上面表所示例子,假设该交换机的老化期为 60 分钟,在 9:32 ~ 10:32 期间源地址是 62-FE-F7-11-89-A3
的帧没有到达该交换机,那么在时刻 10:32,这台交换机将从它的表中删除该地址。
交换机互连
交换机可以互连,且它们交换表的自学习过程与单一交换机情形相同。就像交换机对主机和路由器来说是透明的,一台交换机对其他交换机也是透明的,因为经交换机转发时,数据帧的源 MAC 地址和目的 MAC 地址不会发生改变。
一个小型组织机构的网络可能如下所示:
交换机和路由器比较
两者均为存储-转发设备,但是它们是根本不同的:
- 路由器为网络层设备,它检测网络层分组首部;交换机为链路层设备,它检测链路层帧的首部。
- 路由器的转发表由路由算法来设置,依据 IP 地址检索转发表完成转发;交换机的交换表通过自学习、泛洪构建,依据 MAC 地址检索交换表完成转发。
- 路由器既可以隔离冲突域又可以隔离广播域,但是交换机只可以隔离冲突域不可以隔离广播域。