1.1 交换机概述

如果把网络布线系统比喻为一条条宽阔的道路,那么,网络交换机(Switch)就像是一座座立交桥,将通往各个方向的道路汇连在一起,实现彼此之间的互连互通。无需红绿灯,无需等待,四通八达,任意驰骋……

1.1.1 交换机的功能

交换机是构建局域网络不可或缺的集线设备。作为局域网通信的重要枢纽和节点,其主要功能就是连接设备。

所谓局域网络(Network),简单地说,其实就是若干计算机的集合,而这些计算机就是借助交换机相互连接在一起的。交换机往往拥有数量众多的端口(通常为8~52个端口)。图1-1所示为Cisco Catalyst 2960系列交换机。

图1-1 Cisco Catalyst 2960系列交换机

交换机最主要的功能就是连接计算机、服务器、网络打印机、网络摄像头、IP电话等终端设备,并实现与其他交换机、无线接入点、网络防火墙、路由器等网络设备的互连,从而构建局域网络,实现所有设备之间的通信。图1-2所示为交换机与终端设备和网络设备的连接。

图1-2 交换机的功能

作为局域网络的核心与枢纽,交换机的性能决定着网络性能,交换机的带宽决定着网络带宽。因此,局域网络的升级往往就是交换机的升级。当然,前提条件是网络布线必须能够满足网络传输的需要。

1.1.2 交换机与交换式网络

可以形象地把计算机比喻为写字楼或工厂,把网络布线比喻为城市马路或高速公路,把网络应用比喻为不同类型的汽车,各种数据则是装在这些汽车上的货物,而交换机就是连接来自所有道路的立交桥。毫无疑问,立交桥都拥有多向多车道,可以从任何一条路转向另外其他一条路,而且所有车辆都可以自行其道,相互之间没有阻碍和影响。

而由交换机构建的局域网络,计算机之间的通信可以同时进行,彼此不受影响干扰,并且每个通信都可以“独享”带宽,即拥有端口所能提供的传输速率。这就好像在限速80 km/h的立交桥上,每辆车都可以占用一个车道,都可以跑到80 km/h的速率。图1-3所示为6台计算机同时通信的情形。

图1-3 计算机同时通信

由交换机构建的网络称为“交换式网络”。交换式网络的工作模式通常为“全双工”(Full Duplex),即终端设备可以同时接收和发送数据,数据流是双向的(如图1-4所示)。对于100Mbps端口而言,在全双工工作模式下,接收和发送数据的速率均为100Mbps,总带宽即可达到200Mbps;对于1000Mbps端口而言,在全双工工作模式下,接收和发送数据的速率均为1000Mbps,总带宽即可达到2000Mbps;同样,对于10Gbps端口而言,在全双工工作模式下,接收和发送数据的速率均为10Gbps,总带宽将达到惊人的20Gbps。

图1-4 全双工示意图

1.1.3 交换机的工作原理

交换机位于OSI参考模型中的数据链路层(即第二层),是一种基于MAC地址(Media Access Control,介质访问控制)识别的,用于完成数据的封装和转发的网络设备。交换机可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。因此,交换机就像是一个业务熟练的调度员,能够准确地将装载数据的汽车从出发路口直接派送至目的地路口。当然,要完成这样繁重和智能化的工作,交换机也需要一个学习和记忆的过程。

计算机借助网卡连接到局域网络,而每块网卡都有其与生俱来的“胎记”——MAC地址。交换机通过“学习”,会把连接到每个端口的MAC地址记住,形成一个端口与MAC地址的对应表。

提示

MAC地址是识别局域网节点的标识,所有网络设备(包括每块网卡、交换机和路由器的每个端口)都有一个唯一的MAC地址,通常是由网卡生产厂家直接烧入EPROM中的,是传输数据时真正用以标识发出数据的设备和接收数据的设备的标志。

交换机的工作过程如下。

(1)当交换机从某个端口收到一个数据包时,先读取包头中的源MAC地址,从而建立源端口与源MAC地址的对应关系,并将其添加至地址表。由于交换机能够自动根据收到的以太网帧中的源MAC地址更新地址表的内容,所以交换机使用的时间越长,学习到的MAC地址就越多,未知的MAC地址就越少,因而广播的包就越少(如果目的MAC地址未知,则将该包作广播包处理),处理速度就越快。

(2)读取包头中的目的MAC地址,并在地址表中查找相应的端口。

(3)如果地址表中有与该目的MAC地址对应的端口,则把数据包直接复制到这端口上。由于不是将该帧发送到所有端口,从而使那些既非源端口又非目的端口的端口间仍然可以进行相互间的通信,进而提供了更高的传输速率。

(4)如果在MAC地址表中没有找到该MAC地址,也就是说,该目的MAC地址是首次出现,则将该帧发送到所有其他端口(源端口除外),相当于该帧是一个广播帧。拥有该MAC地址的网卡在接收到该广播帧后,将立即作出应答,从而使交换机将“端口号-MAC地址”对照表添加到地址表。

不断重复上述过程,交换机即可实现所有数据的转发,并逐步学习和记忆整个网络中的MAC地址,不断丰富和完善自己的MAC地址表。

人类的记忆会随着时间的流逝而淡忘。那么交换机是否会永久性地记住所有的端口号-MAC地址关系呢?答案同样是否定的。由于交换机中的内存有限,因此能够记忆的MAC地址数量也是有限的。既然不能无休止地记忆所有的MAC地址,那么也必须赋予其相应的忘却机制,从而吐故纳新。事实上,交换机设计了一个自动老化时间(Auto-aging Time)机制,若某MAC地址在一定时间内(默认为300 s)不再出现,那么交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址重新出现时,将会被当做新地址处理。另外,由于地址表是保存在内存中的,因此当交换机断电或重新启动后,地址表数据将会全部丢失,必须重新学习。

交换机可以在任意一对端口之间建立临时专用通道,不同端口间的转发可以并行操作。这就像是在各端口间建立起了一座立交桥,形成立体交叉结构,不同流向的数据各行其道,每个端口均能够独享固定带宽,传输速率几乎不受计算机数量的影响。另外,当两个或两个以上的端口与同一目的端口进行通信时,交换机将把这些数据帧暂时保存在缓存中,然后根据顺序对其逐一处理和转发,从而实现“多”对“一”的通信。

由此可见,交换机的工作过程可以概括为“学习-记忆-接收-查找-转发”。通过广播方式“学习”网卡MAC地址,并将“MAC地址-端口号”的对应关系创建为一个地址表“记忆”在内存中。从源端口“接收”到数据后,在地址表中“查找”与目的MAC地址相对应的端口,然后将数据帧“转发”至目的端口。