一、交换机基础
集线器作为第一类广泛应用的网络集线设备,当时在各大局域网中应用非常广泛。但随着网络传输媒体类型的日益丰富,图形、图像及各种流媒体等多媒 体内容的出现,人们对高网络数据传输速度和传输性能的要求日益提高。集线器由于它的共享介质传输、单工数据操作和广播数据发送方式等都先天决定了很难满足 用户的上述速度和性能要求。在用户的需求下、在全球各大网络设备开发商的努力下,一种更新、更实用的集线设备--交换机出现了。交换机完全克服了集线器的 上述种种不足之处,所以在短时间内得到业界广泛的认可和应用。交换机技术也得到了飞速发展,数据传输速度的发展也是一日千里。目前最快的以太网交换机端口 带宽可达到10Gbps,千兆(G位)级的交换机在各企业骨干网络中早已得到广泛应用。
交换机的英文名称之为“Switch”,它是集线器的升级换代产品,从外观上来看的话,它与集线器基本上没有多大区别,都是带有多个端口的长方 形盒状体。交换机是按照通信两端传输信息的需要,用人工或设备自动完成的方法把要传输的信息送到符合要求的相应路由上的技术统称。广义的交换机就是一种在 通信系统中完成信息交换功能的设备。
“交换”和“交换机”最早起源于电话通讯系统(PSTN)。我们以前经常在电影或电视中看到一些老的影片时常看到有人在电话机旁狂摇几下(注意 不是拨号),然后就说:跟我接XXX,话务接线员接到要求后就会把相应端线头插在要接端子上,即可通话。其实这就是最原始的电话交换机系统,只不过它是一 种人工电话交换系统,不是自动的,也不是我们今天要谈的计算机交换机,但是我们现在要讲的计算机交换机也就是在这个电话交换机技术上发展而来。
在计算机网络系统中,交换概念的提出是相对于共享工作模式的改进。我们知道集线器(HUB)是一种共享介质的网络设备,而且HUB本身不能识别 目的地址,是采用广播方式向所有节点发送。即当同一局域网内的A主机给B主机传输数据时,数据包在以HUB为架构的网络上是以广播方式传输的,对网络上所 有节点同时发送同一信息,然后再由每一台终端通过验证数据包头的地址信息来确定是否接收。在这种方式下我们知道很容易造成网络堵塞,因为其实接收数据的一 般来说只有一个终端节点,而现在对所有节点都发送,那么绝大部分数据流量是无效的,这样就造成整个网络数据传输效率相当低。另一方面由于所发送的数据包每 个节点都能侦听到,那显然就不会很安全了,容易出现一些不安全因素。
交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上。控制电路收到数据包以后,处理端口会查找内存中 的MAC地址(网卡的硬件地址)对照表以确定目的MAC的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵直接将数据迅速包传送到目的节点,而不是所有 节点,目的MAC若不存在才广播到所有的端口。这种方式我们可以明显地看出一方面效率高,不会浪费网络资源,只是对目的地址发送数据,一般来说不易产生网 络堵塞;另一个方面数据传输安全,因为它不是对所有节点都同时发送,发送数据时其它节点很难侦听到所发送的信息。这也是交换机为什么会很快取代集线器的重 要原因之一。
交换机还有一个重要特点就是它不是像集线器一样每个端口共享带宽,它的每一端口都是独享交换机的一部分总带宽,这样在速率上对于每个端口来说有 了根本的保障。另外,使用交换机也可以把网络“分段”,通过对照地址表,交换机只允许必要的网络流量通过交换机,这就是后面将要介绍的VLAN(虚拟局域 网)。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。这样交换机就可以在同一时刻可进行多个节点对之间的数据传 输,每一节点都可视为独立的网段,连接在其上的网络设备独自享有固定的一部分带宽,无须同其他设备竞争使用。如当节点A向节点D发送数据时,节点B可同时 向节点C发送数据,而且这两个传输都享有带宽,都有着自己的虚拟连接。打个比方就是,如果现在使用的是10Mbps 8端口以太网交换机,因每个端口都可以同时工作,所以在数据流量较大时,那它的总流量可达到8*10Mbps=80Mbps,而使用10Mbps的共享式 HUB时,因为它是属于共享带宽式的,所以同一时刻只能允许一个端口进行通信,那数据流量再忙HUB的总流通量也不会超出10Mbps。如果是16端口、 24端口的更是明显了!
交换机的主要功能包括物理编址、网络拓扑结构、错误校验、帧序列以及流量控制。目前一些高档交换机还具备了一些新的功能,如对VLAN(虚拟局域网)的支持、对链路汇聚的支持,甚至有的还具有路由和防火墙的功能。
交换机除了能够连接同种类型的网络之外,还可以在不同类型的网络(如以太网和快速以太网)之间起到互连作用。如今许多交换机都能够提供支持快速以太网或FDDI等的高速连接端口,用于连接网络中的其它交换机或者为带宽占用量大的关键服务器提供附加带宽。
一般来说,交换机的每个端口都用来连接一个独立的网段,但是有时为了提供更快的接入速度,我们可以把一些重要的网络计算机直接连接到交换机的端口上。这样,网络的关键服务器和重要用户就拥有更快的接入速度,支持更大的信息流量。
总之,交换机是一种基于MAC地址识别,能完成封装转发数据包功能的网络设备。交换机对于因第一次发送到目的地址不成功的数据包会再次对所有节 点同时发送,企图找到这个目的MAC地址,找到后就会把这个地址重新加入到自己的MAC地址列表中,这样下次再发送到这个节点时就不会发错。交换机的这种 功能就称之为“MAC地址学习”功能。
二、交换机与集线器的区别
上面我们讲到,交换机最开始是为了解决集线器共享传输介质,端口带宽过窄,容易产生广播风暴而产生,最初的交换机是工作在OSI/RM开放体系 结构中的第二层,所以也称之为第二层交换机(这一点我们会在下篇介绍交换机的分类时继续介绍)。本节要介绍的是交换机与集线器之间到底有哪些区别,换句话 说也就是交换机到底有哪些优点,理解了它们之间的区别后就能正确理解当前局域网为什么广泛使用交换机,而非集线器,也便于我们在日后的网络设备选购中正确 地选择。
交换机与集线器的区别主要体现在如下几个方面:
(1)在OSI/RM中的工作层次不同
交换机和集线器在OSI/RM开放体系模型中对应的层次就不一样,集线器是同时工作在第一层(物理层)和第二层(数据链路层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)和第四层(传输层)。
(2)交换机的数据传输方式不同
集线器的数据传输方式是广播(broadcast)方式,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC地址表中找 不到的情况下第一次使用广播方式发送,然后因为交换机具有MAC地址学习功能,第二次以后就不再是广播发送了,又是有目的的发送。这样的好处是数据传输效 率提高,不会出现广播风暴,在安全性方面也不会出现其它节点侦听的现象。具体在前面已作分析,在此不再赘述。
(3)带宽占用方式不同
在带宽占用方面,集线器所有端口是共享集线器的总带宽,而交换机的每个端口都具有自己的带宽,这样就交换机实际上每个端口的带宽比集线器端口可用带宽要高许多,也就决定了交换机的传输速度比集线器要快许多。
(4)传输模式不同
集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送 数据。而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系 统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。
三、交换机的工作原理
交换机和集线器在外型上非常相似,而且都遵循IEEE802.3及其扩展标准,介质存取方式也均为CSMA/CD,但是它们之间在工作原理上还 是有着根本的区别。简单地说,由交换机构建的网络称之为交换式网络,每个端口都能独享带宽,所有端口都能够同时进行通讯,并且能够在全双工模式下提供双倍 的传输速率。而集线器构建的网络称之为共享式网络,在同一时刻只能有两个端口(接收数据的端口和发送数据的端口)进行通讯,所有的端口分享固有的带宽。下 面简单以图示方式介绍如下。
1、“共享”与“交换”数据传输技术
要明白交换机的优点我们首先就必须明白交换机的基本工作原理,而交换机的工作原理其实最根本的是要理解“共享”(Share)和“交换” (Switch)这两个概念。集线器是采用共享方式进行数据传输的,而我们在这里要讲的交换机工作原理则是采用“交换”方式进行数据传输的。我们可以把 “共享”和“交换”理解成公路。“共享”方式就是来回车辆共用一个车道的单车道公路,而“交换”方式则是来回车辆各用一个车道的双车道公路,“共享”和 “交换”这两种数据传输方式的示意图分别如图1左、右图所示。
图1
从我们平常生活中就可感觉到这两种方式的不同之处,明显可以感受到双车道的交换方式的优越性。因为双车道来回的车辆可以在不同的车道上单独行 走,一般来说如果不出现意外的外是不可能出现大塞车现象(当然也有可能,那就车辆太多,速度太慢情况下),而单车道就象我们过单车道的桥一样,来回的车辆 每次只能允许一个方向的车辆经过这个桥,这样就很容易出现塞车现象。
交换机进行数据交换的原理就是在这样的背景下产生,它解决了集线器那种共享单车道容易出现“塞车”现象。在交换机技术上把这种“独享”道宽(网 络上称之为“带宽”)情况称之为“交换”,这种网络环境称为“交换式网络”,交换式网络必须采用交换机(Switch)来实现。从图1右图可以知道交换式 网络可以是“全双工”(Full Duplex)状态,即可以同时接收和发送数据,数据流是双向的。而集线器的“共享”方式的网络就称之为“共享式网络”,共享式网络采用集线器(集线器) 作为网络连接设备。显然,共享网络的效率非常低,在任一时刻只能有一个方向的数据流,即处于“半双工”(Half Duplex)模式,也称为“单工”模式。
另外一方面,由于单车道共享方式中来回车辆共用一个车道,也就是每次只能过一个方向的车,这样车辆一多,速度肯定会降下来,效率也就跟着下降。 共享式网络的通信也与共享车道情况类似,它的效率在数据流量大的时候效率也肯定会降低,因为同一时刻只能进行单一数据传输任务。还可能造成数据碰撞现象, 就像我们在单车道上经常看到撞车现象一样,因为车流量一大,就很难保证每个车辆的司机都那么遵守交通规则,容易出现数据碰撞、争抢车道的现象。而交换式的 数据交换方式出现这种情况就少许多,因为各自都有自己的信道,各行其道基本上是不太可能发生争抢信道的现象。但也有例外,那就是数据流量增大,而网络速度 和带宽没有得到保证时才会在同一信道上出现碰撞现象,就像我们在双车道或多车道也可能发生撞车现象一样。解决这一现象的方法有两种,一种是增加车道,另一 种方法就是提高车速,很显然增加车道这一方法是最基本的,但它不是最终的方法,因为车道的数量肯定有限,如果所有车辆的速度上不去,那还是会效率低的,对 于一些心急的司机来说还是会撞车的。第二种方法是一种比较好的方法,提速有助于车辆正常有序地快速流动,这就是为什么高速公路反而出现撞车的现象比普通公 路上少许多的原因。计算机网络也一样,虽然我们的交换机能提供全双工方式进行数据传输,但是如果网络带宽不宽、速度不快,每传输一个数据包都有要花费大量 的时间,则信道再多也无济于事,网络传输的效率还是高不起来的,况且网络上的信道也是非常有限的,这要决定于带宽。目前最快的以太网交换机带宽可达到 10Gbps。
2。 数据传递的方式
通过前面的学习我们已经知道集线器的数据包传输方式是广播方式,如图2所示。由于集线器中只能同时存在一个广播,所以同一时刻只能有1个数据包在传输,信道的利用率较低。
图2
而对于交换机而言,它能够“认识”连接到自己身上的每一台电脑,凭什么认识呢?就是凭每块网卡物理地址,俗称“MAC地址”。交换机还具有 MAC地址学习功能,它会把连接到自己身上的MAC地址记住,形成一个节点与MAC地址对应表。凭这样一张表,它就不必再进行广播了,从一个端口发过来的 数据,其中会含有目的地的MAC地址,交换机在保存在自己缓存中的MAC地址表里寻找与这个数据包中包含的目的MAC地址对应的节点,找到以后,便在这两 个节点间架起了一条临时性的专用数据传输通道,这两个节点便可以不受干扰地进行通信了。要注意交换机档次越低,交换机的缓存就越小,也就是说为保存MAC 地址所准备的空间也就越小,对应的就是它能记住的MAC地址数也就越少。通常一台交换机都具有1024个MAC地址记忆空间,都能满足实际需求。从上面的 分析来看我们知道交换机所进行的数据传递是有明确的方向的,而不是乱传递,而不是集线器的广播方式,这种传递示意图如图3所示。同时由于交换机可以进行全 双工传输,所以交换机可以同时在多对节点之间建立临时专用通道,形成了立体交叉的数据传输通道结构。
图3
交换机的数据传递工作原理可以简单地这样来说明:
当交换机从某一节点收到一个以太网帧后,将立即在其内存中的地址表(端口号-MAC地址)进行查找,以确认该目的MAC的网卡连接在哪一个节点 上,然后将该帧转发至该节点。如果在地址表中没有找到该MAC地址,也就是说,该目的MAC地址是首次出现,交换机就将数据包广播到所有节点。拥有该 MAC地址的网卡在接收到该广播帧后,将立即做出应答,从而使交换机将其节点的“MAC地址”添加到MAC地址表中。换言之,当交换机从某一节点收到一个 帧时(广播帧除外),将对地址表执行两个动作,一是检查该帧的源MAC地址是否已在地址表中,如果没有,则将该MAC地址加到地址表中,这样以后就知道该 MAC地址在哪一个节点;二是检查该帧的目的MAC地址是否已在地址表中,如果该MAC地址已在地址表中,则将该帧发送到对应的节点即可,而不必像集线器 那样将该帧发送到所有节点,只须将该帧发送到对应的节点,从而使那些既非源节点又非目的节点的节点间仍然可以进行相互间的通信,从而提供了比集线器更高的 传输速率。如果该MAC地址不在地址表中,则将该帧发送到所有其它节点(源节点除外),相当于该帧是一个广播帧。
讲到这里我们要明白一个事实,那就是交换机在刚买回来不可能知道您所在网络中各节点的地址,也就是说在交换机刚刚打开电源时,其MAC地址表是 一片空白。那么,交换机的地址表是怎样建立起来的呢?学习!交换机根据以太网帧中的源MAC地址来更新地址表。当一台计算机打开电源后,安装在该系统中的 网卡会定期发出空闲包或信号,交换机即可据此得知它的存在以及其MAC地址,这就是所谓自动地址学习。由于交换机能够自动根据收到的以太网帧中的源MAC 地址更新地址表的内容,所以交换机使用的时间越长,学到的MAC地址就越多,未知的MAC地址就越少,因而广播的包就越少,速度就越快。
那么,交换机是否会永久性地记住所有的端口号-MAC地址关系呢?不是的。由于交换机中的内存毕竟有限,因此,能够记忆的MAC地址数量也是有 限的。既然不能无休止地记忆所有的MAC地址,那么就必须赋予其相应的忘却机制,从而吐故纳新。事实上,工程师为交换机设定了一个自动老化时间(Auto -aging),若某MAC地址在一定时间内(默认为300秒)不再出现,那么,交换机将自动把该MAC地址从地址表中清除。当下一次该MAC地址重新出 现时,将会被当作新地址处理。
综上所述,交换机作为当前局域网的主要连接设备,与集线器相比具有许多明显的优点,目前正有全面取代集线器之势,随着交换技术的不断发展,以太 网交换机的价格急剧下降,交换到桌面已是大势所趋。如果网络上拥有大量的用户、繁忙的应用程序和各式各样的服务器,而且你还未对网络结构做出任何调整,那 么整个网络的性能可能会非常低。最为有效的解决方法就是用交换机替代原来的集线器,当然交换机的价格会比集线器贵些,但目前来说应该完全可以接受。况且所 带来的性能提绝不是“一点点”那么简单!