2.1 交换机概述
交换机的主要功能就是连接各种网络设备,随着网络交换技术的不断发展,交换机的附加功能也成了选购时不可忽略的重要因素。新型交换机除了可以实现不同端口间数据的线速交换外,还采用了许多非常先进的技术,如VLAN技术、单播和组播技术等,从而使得网络应用更加丰富,网络安全更有保障,网络性能大幅提高。
>>>2.1.1 交换机的功能
交换机是搭建局域网络时不可或缺的集线设备,其主要功能就是连接设备和隔离网络中的广播。
1.连接设备
所谓局域网络,其实就是若干计算机的集合。而这些计算机就是借助交换机才能相互连接在一起,因此,交换机往往拥有数量众多的端口(通常为8~48个端口)。如图2-1所示为Cisco Catalyst 2960系列网络交换机。
图2-1 Cisco Catalyst 2960系列网络交换机
交换机的最主要功能就是连接计算机、服务器、网络打印机、网络摄像头和IP电话等终端设备,并实现与其他交换机、无线接入点、路由器等网络设备的互联,实现所有设备之间的通信。如图2-2所示为交换机与终端设备和网络设备的连接。
图2-2 交换机与终端设备和网络设备的连接
作为整个局域网络的核心与枢纽,交换机的性能直接决定网络性能,交换机端口的传输速率决定网络传输速率。因此,局域网络的升级往往就是交换机的升级。当然,前提条件是网络布线必须能够满足网络传输的需要。
2.隔离碰撞
以太网的工作机制为先侦听后讲话,类似于会议讨论时的自由发言。例如,当某个人想发言时,首先要听一听即“侦听”(Carrier Sense)有没有其他人正在讲话。如果有,就再等待一段时间;如果没有,就立即起立发言。如果碰巧有两个人同时开口(即“碰撞”,Collision Detect),那么,两个人就会同时坐下,稍等片刻后,其中一人再起立发言。这种机制虽然保证了同一时刻只有一个人在发言,使得每个人都能够清楚地听到这个人的讲话,但是其他的问题也随之出现了:
➢ 当两个人需要私下交流时,也将占用大家的发言时间。
➢ 当多个人需要相互交流时,只能耐心等待其他人讲话,而不能同时进行。
➢ 人数越多,同时发言的可能性就越大,浪费的时间就越多。
由集线器构建的网络就是这样一个低效率的广播网络。对于集线器而言,它对连接到自己连接的计算机不会做出任何识别和记录,它的任务就是将一个端口传来的数据广播到其他所有的端口上,如图2-3所示。至于究竟是哪一台计算机应该接收数据,则根据这些计算机自身来决定,如果是自己的就接收,不是自己的就丢弃。由于集线器中只能同时存在一个广播,所以,同一时刻只能有两个端口传递数据。同时,不断的碰撞将耽误大量宝贵的传输时间,从而降低网络的传输效率。
图2-3 低效的广播网络
由此可见,如果网络中拥有大量的用户、繁忙的应用程序和各式各样的服务器,那么,整个网络的性能可能会非常低。当网络利用率超过40%,并且碰撞率大于10%时,正常网络通信将受到严重影响,利用交换机则可以有效地解决这一问题。
交换机也可以将网络“分段”。交换机的每个端口就是一个“碰撞”域,可以将碰撞有效地隔离在每个端口内(如图2-4所示),只允许必要的网络流量通过交换机端口。同时,通过交换机的过滤和转发,可以有效地隔离广播风暴,减少误包和错包的出现,避免共享冲突。
图2-4 隔离碰撞域
>>>2.1.2 交换机与交换式网络
可以形象地把计算机比喻为写字楼或工厂,网络布线比喻为城市马路或高速公路,网络应用比喻为不同类型的汽车,各种数据则是装在这些汽车上的货物,而交换机就是连接来自所有道路的立交桥。毫无疑问,立交桥都拥有多向多车道,可以从任何一条路转向另外一条路,而且所有车辆都可以自行其道,相互之间没有阻碍和影响,如图2-5所示。
图2-5 城市立交桥
而在由交换机构建的局域网络中,计算机之间的通信也是同时进行的,彼此不受影响干扰,并且每个通信都可以“独享”端口带宽,即拥有端口所能提供的传输速率。这就好像在限速80km/h的立交桥上,每辆车都可以占用一个车道,速度均可达到80km/h。如图2-6所示为6台计算机同时通信的情形。
图2-6 6台计算机同时通信
由交换机构建的网络称为“交换式网络”。交换式网络的工作模式通常为“全双工”(Full Duplex),即终端设备可以同时接收和发送数据,数据流是双向的(如图2-7所示)。对于100Mbps端口而言,在全双工工作模式下,接收和发送数据的速率均为100Mbps,总带宽即可达到200Mbps;对于1000Mbps端口而言,在全双工工作模式下,接收和发送数据的速率均为1000Mbps,总带宽即可达到2000Mbps。
图2-7 全双工示意图
与之相对应,集线器就像是一座单车道的小桥,不仅每次只允许一个方向的车辆通过,而且每次只能通行一辆汽车。集线器的端口带宽是由所有计算机来共享的。因此,由集线器构建的网络被称为“共享式网络”。共享式网络的工作模式通常为“半双工”(Half Duplex),即终端设备或者接收数据,或者发送数据,而不能同时接收和发送数据,如图2-8所示。如果集线器的带宽是100Mbps,当连接10台计算机时,每台计算机所能分享的带宽为10Mbps;而当连接20台计算机时,每台计算机所能分享的带宽就只有5Mbps。
图2-8 半双工示意图
>>>2.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地址,那么就必须赋予其相应的忘却机制,从而吐故纳新。事实上,交换机设计了一个自动老化时间(Auto-aging Time)机制,若某MAC地址在一定时间内(默认为300秒)不再出现,那么,交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址重新出现时,将会被当作新地址处理。另外,由于地址表保存在内存中,因此,当交换机断电或重新启动后,地址表数据将全部丢失,必须重新学习。
交换机可以在任意一对端口之间建立临时专用通道,不同端口间的转发可以并行操作。这就像是在各端口间建立起了一座立交桥,形成立体交叉结构,不同流向的数据各行其道,每个端口均能够独享固定带宽,传输速率几乎不受计算机数量增加的影响。另外,当两个或两个以上的端口与同一目的端口进行通信时,交换机将把这些数据帧暂时保存在缓存中,然后,根据顺序对其逐一处理和转发,从而实现“多”对“一”的通信。
由此可见,交换机的工作过程可以概括为“学习→记忆→接收→查找→转发”。通过广播方式“学习”网卡MAC地址,并将“MAC地址-端口号”的对应关系创建一个地址表“记忆”在内存中。从源端口“接收”到数据后,在地址表中“查找”与目的MAC地址相对应的端口,然后将数据帧“转发”至目的端口。