3.1 交换机概述
3.1.1 交换机的定义
交换机的英文名称为Switch,在网络拓扑结构中用图标 表示。
在计算机网络系统中,交换机是一种基于MAC地址识别,能够完成数据帧封装、转发功能的网络设备。以太网交换机类似于一台专用的计算机,由中央处理器(CPU)、随机存储器(RAM)和接口组成,工作在OSI模型中的第二层,用于连接工作站、服务器、路由器、集线器和其他交换机。其主要作用是快速高效、准确无误地转发数据帧。
3.1.2 交换机的体系结构
以太网交换体系结构基本可以分为3类:总线结构、共享存储器结构和交换矩阵结构。
(1)总线结构
总线交换结构的特点是:各个模块共享同一背板总线结构,每个输入端通过输入处理部件(输入逻辑)连接到总线上,每个输出端通过输出处理部件(输出逻辑)连接到总线上,如图3-1所示。数据利用时分多工传输(TDM)方式在总线上传输。各路输入交换数据经过输入处理部件,再经过总线由输出处理部件取出,形成各路输出信号。总线采用时分方式划分时隙分配给每个输入部件。
图3-1 交换机的总线结构
总线上传送速率有极限值,而且输入处理部件向总线发送数据和输出处理部件接收数据的速率也有极限值,因此总线结构交换单元的数据吞吐率会受到较大限制。在一般情况下,基于总线结构的交换机背板最高容量平均为2 Gbps。
(2)共享存储器结构
共享存储器结构是总线结构的变形,使用大量的高速RAM来存储输入数据。各路输入数据经过输入处理部件进入存储器,输出处理部件从存储器中取出数据,形成各路输出信号。存储器相当于数据缓冲池,如图3-2所示。
图3-2 交换机的共享存储器结构
由于数据直接从存储器传输到输出端口,这种设计不需要背板,这类交换机易于实现,但端口数与存储器容量扩展到一定程度存储器操作会有延迟;但这种设计中增加冗余交换引擎困难且成本高,故这种交换机无法避免单点故障隐患。共享内存型交换机适合于小系统、堆叠式系统或较大系统中的分布式交换模块。
(3)矩阵结构
矩阵结构交换机又称为纵横制交换机。目前绝大多数高端交换机都使用这种交换方式。
交换机的矩阵结构如图3-3所示。由于高速集成电路的发展,这种结构易于构建高速的交换模块。结构的可扩展性与其实现方法有关,背板交换容量可以扩展到100 Gbps。成本和复杂性高是这种交换机容量增加的主要限制因素。
图3-3 交换机的矩阵结构
在交换矩阵结构交换机的全矩阵实施方案中,每个模块连接至其他模块,构成全网状背板。如图3-4所示,每个模块都有自己的一组连接线,因而不必设置中央交换阵列。背板总容量等于N×(N-1)×(一条点对点链路的数据传输速率)。N等于连接点数量,一条点对点链路的数据传输速率可达1 Gbps或更高。
图3-4 N×N矩阵
由于是网状连接,交换机的分布式交换设计不需要中央交换阵列。但由于网状连接的几何性质,这种交换机在扩大端口数目时会造成模板成本迅速增加。同时,每个模块都提供网状连接,扩容时还要重复提供系统时钟和控制功能。某些矩阵交换机的实施方案为了降低成本而减少了模块上的缓冲器容量。减少缓冲器容量势必引起阻塞现象的发生,因此尽管模块之间仍然是全网状连接,但这种交换机的背板容量还是小于标称的总数据传输速率,这对于核心的主干网应用是一个严重的缺陷。
3.1.3 交换机的工作原理
在网络数据通信中,交换机主要执行两个基本操作:一是交换数据帧,将从某一端口收到的数据帧转发到该帧的目的地端口;二是维护交换操作,构造和维护动态MAC地址表。
(1)交换数据帧
当交换机接收到从端口来的一个数据帧时,先检查该帧的源和目的MAC地址,然后与系统内部的动态MAC地址表进行比较。若数据帧的源MAC地址不在该表中,则将该源MAC地址及其对应的端口号加入MAC地址表中;如果目的MAC地址在该表中,则将数据帧发送到相应的目的端口,否则将目的MAC地址加入到MAC地址表中,并将该数据帧发送到所有其他端口。
下面以图3-5为例来说明数据帧在交换机内的交换过程。
图3-5 数据帧在交换机内的交换过程
<1> 当主机D发送广播帧时,交换机从E3端口接收到目的地址为FFFF.FFFF.FFFF(广播地址)的数据帧,则向E0、E1、E2和E4端口转发该数据帧。
<2> 当主机D与主机E通信时,交换机从E3端口接收到目的地址为0260.8C01.5555的数据帧,查找MAC地址表后发现0260.8C01.5555并不在表中,因此交换机仍然向E0、E1、E2和E4端口转发该数据帧。
<3> 当主机D与主机F通信时,交换机从E3端口接收到目的地址为0260.8C01.6666的数据帧,查找MAC地址表后发现0260.8C01.6666也位于E3端口,即与源地址处于同一交换机端口,交换机不转发该数据帧,而是直接丢弃。
<4> 当主机D与主机A通信时,交换机从E3端口接收到目的地址为0260.8C01.1111的数据,查找MAC地址表后发现0260.8C01.1111位于E0端口,所以交换机将数据帧转发至E0端口,这样主机A即可收到该数据帧。
<5> 如果在主机D与主机A通信的同时,主机B也正在向主机C发送数据,交换机同样会把主机B发送的数据帧转发到连接主机C的E2端口。这时E1和E2之间,以及E3和E0之间,通过交换机内部的硬件交换电路,建立了两条链路,这两条链路上的数据通信互不影响,因此网络也不会产生冲突。所以,主机D和主机A之间的通信独享一条链路,主机C与主机B之间也独享一条链路。而这样的链路仅在通信双方有需求时才会建立,一旦数据传输完毕,相应的链路也随之拆除。
从以上交换操作过程中可以看到,数据帧的转发都是基于交换机内的MAC地址表。所以,建立和维护MAC地址表是交换机隔离冲突域的重要功能,也是交换机进行数据帧通信的基础。
(2)构造维护MAC地址表
交换机内有一张MAC地址表,表的每一项存放着一个连接在交换机端口上的设备的MAC地址及其相应端口号。MAC地址表的建立和维护过程如下:
在交换机加电启动进行初始化时,其MAC地址表为空。当自检成功后,交换机开始侦测各端口连接的设备,如图3-6所示,一旦A、B、C互相访问,以及A、B、C访问F,期间的数据流必然会以广播的形式被交换机接收到。当交换机接收到数据后,首先对数据帧进行拆包,将数据帧的源MAC地址给拆分出来。如果在交换机内部的存储器中没有A、B、C、F的MAC地址,交换机会自动把这些地址记录并存储下来,同时把这些MAC地址所表示的设备和交换机的端口对照起来。保存下来的这些信息被称为MAC地址表。
图3-6 交换机地址学习功能
当计算机和交换机加电、断电或迁移时,网络的拓扑结构会随之改变。为了处理动态拓扑问题,每当增加MAC地址表项时,均在该项中注明帧的到达时间。每当目的地址已在表中的帧到达时,将以当前时间更新该项。这样,由表中每项的时间即可知道该机器最后帧到来的时间。交换机中有一个进程定期地扫描MAC地址表,清除时间早于当前时间若干分钟的全部表项。于是,如果从一个物理网段上卸下一台计算机,连接到另一个物理网段上,则在几分钟内,它即可重新开始正常工作而无须人工干预。这个算法也意味着,如果机器在几分钟内无动作,那么发给它的帧将不得不广播,一直到它自己发送出一帧为止。
由于交换机中的内存有限,能够记忆的MAC地址数也有限,交换机设定了一个自动老化时间,若某个MAC地址在设定时间内不再出现,交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址出现时,将被当做新地址处理。交换机可以进行全双工传输,可以同时在多对节点之间建立临时专用通道,形成立体交叉的数据传输通道结构。
3.1.4 交换机的基本功能
① 地址学习(Address Learning)。交换机能够学习到所有连接到其端口的设备的MAC地址。地址学习的过程是通过监听所有流入的数据帧,对其源MAC地址进行检验,形成一个MAC地址到其相应端口号的映射,并且将这一映射关系存储到其MAC地址表中。
② 转发/过滤决定(Forward/Filter Decisions)。交换机根据数据帧的MAC地址进行数据帧的转发操作,同时能够过滤(即丢弃)非法侵入的数据帧。交换机在进行转发/过滤操作时,遵循以下规则:
⊙ 如果数据帧的目的MAC地址是广播地址或者组播地址,则向交换机所有端口转发(数据帧来的端口除外)。
⊙ 如果数据帧的目的地址是单播地址,但这个地址并不在MAC地址表中,那么也向所有的端口转发(数据帧来的端口除外)。
⊙ 如果数据帧的目的地址在MAC地址表中,那么就根据地址表转发到相应的端口。
⊙ 如果数据帧的目的地址与数据帧的源地址在同一个物理网段上,就会丢弃这个数据帧,不会发生交换。
③ 避免环路(Loop Avoidance)。在局域网中,为了提供可靠的网络连接,一般设计了冗余链路,即设计了多个连接,这样确保了数据帧的传送,但网络中可能产生回路,造成“广播风暴”或“MAC系统失效”。交换机通过使用生成树协议(Spanning-tree Protocol)来管理局域网内的环境,避免数据帧在网络中不断绕圈子的现象产生,即避免环路。
3.1.5 交换机的交换方式
交换机为了快速准确地转发数据帧,针对不同的网络环境提供了三种交换方式:直通方式(Cut Through),存储转发(Store & Forward),碎片隔离(Fragment Free)。
直通方式的以太网交换机可以理解为,在各端口间是纵横交叉的线路矩阵电话交换机。它在输入端口检测到一个数据帧时,就立刻按数据帧的目的MAC地址,从MAC地址表中查找相应的输出端口,并在输入与输出交叉处接通,把数据帧直接送到相应的端口,实现交换功能。采用这种方式,所有的正常帧、残帧和超常帧都可以通过。它的优点是:由于不需要存储,延迟非常小、交换非常快。它的缺点是:因为数据帧内容并没有被以太网交换机保存下来,所以无法检查所传输的数据帧是否有误,不能提供错误检测能力。由于没有缓存,不能将具有不同速率的输入/输出端口直接接通,而且容易丢帧。
存储转发方式是计算机网络领域应用最为广泛的方式。交换机将收到的一个完整的数据帧先放入缓存,然后进行CRC(循环冗余码校验)检查,在对错误帧处理后才取出数据帧的目的MAC地址,通过MAC地址表转换成输出端口送出帧。采用这种方式,所有的正常帧都可以通过,而残帧和超常帧都被交换机隔离。正因如此,存储转发方式在数据处理时延时大,这是它的不足,但是可以对进入交换机的数据帧进行错误检测,有效改善网络性能。尤其重要的是,它可以支持不同数据传输速率的端口间的转换,保持高速端口与低速端口间的协同工作。这种方式适用于需要对转发的数据帧进行线路速率匹配、协议转换或差错检测的情况。
碎片隔离是一种介于前两者之间的解决方案,检查数据帧的长度是否大于等于64字节。如果小于64字节,说明是假帧,则丢弃该帧;如果大于64字节,则发送该帧。这种方式也不提供数据校验。它处理数据传输的速率比存储转发方式快,但比直通式慢。采用这种方式,所有的正常帧和超常帧都可以通过,而残帧将被隔离。
3.1.6 交换机的分类
交换机具有许多优越性,在网络中的应用远远大于集线器,为了满足各种不同应用环境需求,出现了各种类型的交换机。下面介绍交换机的分类情况。
(1)按网络覆盖范围划分
根据网络覆盖范围划分,交换机可以分为广域网交换机和局域网交换机。广域网交换机主要应用于电信城域网互连、互联网接入等领域的广域网中,提供通信用的基础平台。局域网交换机即常见的交换机,应用于局域网,用于连接终端设备,如服务器、工作站、集线器、路由器等网络设备,提供高速、独立的通信通道。这也是本章要重点讲解的交换机。
(2)按传输介质和数据传输速率划分
根据交换机使用的网络传输介质和数据传输速率的不同,局域网交换机可以分为以太网交换机、快速以太网交换机、千兆以太网交换机和万兆以太网交换机等。
以太网交换机一般是指带宽在100Mbps以下的以太网所使用的交换机,是使用最普遍、价格最便宜的交换机,品种比较齐全,应用领域也非常广泛。以太网包括3种网络接口:RJ-45、BNC和AUI,所用的传输介质分别为双绞线、细同轴电缆和粗同轴电缆。双绞线类型的RJ-45接口在网络设备中最为普遍。目前,细同轴电缆和粗同轴电缆接口的交换机已全部淘汰。
快速以太网交换机用于100Mbps快速以太网。快速以太网是一种在普通双绞线或者光纤上实现100Mbps传输带宽的网络技术。注意,快速以太网并不全是100Mbps带宽的端口,目前基本以10/100Mbps自适应型为主。一般这种快速以太网交换机采用的传输介质是双绞线,有的快速以太网交换机留有少数的光纤接口(SC),以便与其他光传输介质的网络互连。
千兆以太网交换机用于千兆位以太网中,因为它的带宽可达1000Mbps。千兆以太网采用的传输介质有光纤、双绞线两种,对应的接口有SC接口和RJ-45接口。千兆以太网技术相对成熟,一般大型网络的骨干网段都采用千兆以太网交换机。
万兆以太网交换机主要是为了适应当今万兆位以太网络的接入,一般用于骨干网络上,采用的传输介质一般为光纤,其接口方式也就相应为光纤接口。
(3)按交换机工作的协议层次划分
网络设备都是对应工作在OSI参考模型的一定层次上,工作的层次越高,则设备的技术性越高,档次也就越高。根据工作的协议层次,交换机可分为第二层交换机、第三层交换机、第四层交换机和第七层交换机。
第二层交换机工作在OSI参考模型的第二层(数据链路层),根据数据链路层中的信息(如MAC地址)完成不同端口间的数据交换。因为它的价格便宜,功能符合中小企业实际应用需求,所以应用也最为普遍。所有的交换机在协议层次上来说都是向下兼容的,因此所有的交换机都能够工作在第二层。
第三层交换机工作在OSI参考模型的第三层(网络层),比第二层交换机的功能强,具有路由功能。第三层交换机能够根据IP地址信息决定数据传输路径,并实现不同网段间的数据交换。通常这类交换机采用模块化结构,以适应实际应用中灵活配置的需要。在大中型网络中,第三层交换机已经成为基本配备设备。
第四层交换机工作在OSI参考模型的第四层(传输层),其数据传输不仅仅依据MAC地址(第二层交换)、源/目标IP地址(第三层路由),而且依据TCP/UDP应用端口号。在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定,一般采用模块结构。
第七层交换机工作在OSI参考模型的第七层(应用层),其数据传输不仅仅依据MAC地址、源/目标IP地址、TCP/UDP端口(第四层地址),还可以根据内容(表示/应用层)进行。这样的处理更具有智能性,交换的不仅仅是端口,还包括内容。目前,关于第七层交换功能还没有具体的标准,因此目前在实际应用中比较少见。
(4)按交换机的端口结构划分
根据交换机的端口结构,交换机可分为固定式交换机和模块化交换机。
固定式交换机所带有的端口是固定的,不能再扩展,如图3-7(a)所示。这种交换机比较常见,价格便宜,一般适用于小型网络的交换环境。由于它只提供有限的端口和固定类型的接口,因此可连接的用户数量和可使用的传输介质都有一定的限制。
图3-7 交换机的端口结构
模块化交换机的所有部件都是可插拔的部件,称为模块,如图3-7(b)所示。模块可以分为几大类:一类是管理模块,相当于计算机的主板和CPU,用于管理整个交换机的工作;一类是应用模块,相当于计算机的I/O模块,负责连接其他网络设备和网络终端;还有电源模块、风扇模块等。在实际的组网中,可根据用户的需求和网络的要求选择不同类型的模块。
模块化交换机具有更大的灵活性和可扩充性,但在价格上要贵很多。
(5)按网络分层结构划分
根据网络分层结构划分,交换机可分为核心层交换机、汇聚层交换机、接入层交换机。
核心层交换机的主要目的是尽可能快地交换数据,在该层不应该有费力的数据帧的操作或任何减慢数据交换的处理。它的主要工作是:提供交换区块的连接,提供到其他区块的访问,尽可能快地交换数据。
汇聚层交换机(也称为汇接层或分布层交换机)提供了边界定义,并在该处对数据帧进行处理。汇聚层交换机具有如下功能:VLAN聚合、部门级或工作组接入、广播域的定义、VLAN间路由、介质转换等。汇聚层交换机被归纳为能够提供基于策略的连通性交换机。
接入层交换机是最终用户被允许接入网络节点的交换机,能够通过过滤或访问控制列表提供对用户流量的进一步控制。接入层交换机的主要功能是为最终用户提供网络接入,提供共享带宽,交换带宽及第二层功能。
(6)按外观划分
按外观划分,交换机可分为机箱式交换机、机架式交换机和桌面型交换机。
机箱式交换机外观比较庞大,性能和稳定性都比较卓越,有很强的容错能力,其部件一般都采用模块化,支持交换模块的冗余备份,灵活性非常好。在实际网络工程中,对于核心层交换机或者汇聚层交换机,一般选用机箱式交换机,如图3-8所示。
图3-8 机箱式交换机
机架式交换机,顾名思义,就是可以放置在标准机柜中的交换机。标准机柜的尺寸由电子工业协会(EIA)制定:网络设备(即机架)的宽度为19英寸(48.26cm),高度为1U的倍数。U(unit)表示网络设备外部尺寸的单位,1U=4.445cm。设计为能放置到19英寸机柜的交换机一般称为机架式交换机,如图3-9所示。
图3-9 机架式交换机
桌面型交换机不具备标准的尺寸,一般外形较小,因可以放置在桌面上而得名,具有功率小、性能较低、噪音低的特点,适用于小型网络桌面办公或者家庭网络,如图3-10所示。
图3-10 桌面型交换机
交换机的分类形式还有一些,例如:按交换机的应用规模层次划分,可分为企业级交换机、校园网交换机、部门级交换机和工作组交换机;按是否支持网管功能,分为网管型和非网管理型两大类;按是否可以进行堆叠,可分为可堆叠和不可堆叠两大类等。