1.1.1 共享型以太网与冲突域

最初的以太网采用的拓扑结构是总线型拓扑,搭建这个网络的具体做法是将一系列终端设备采用粗同轴电缆连接在一起。因为所有终端都是通过一根同轴电缆相互连接的,所以当多台设备同时发送数据时,这些终端用来描述数据的电信号就会在共享的传输介质上相互叠加干扰。通过《网络基础》第 4 章的学习,我们知道这种发送方数据相互干扰的现象称为冲突,冲突的后果是每个发送方所发送的数据均无法被接收方正确识别,因为接收方无法通过叠加后的电信号还原出发送过来的原始数据,冲突产生的过程如图1-1所示。

注释:

同时发送数据就会造成冲突的设备即处于同一个冲突域(Collision Domain)中。

显然,在这种以太网环境中,要想保证发送方发送的数据能够不受干扰地传送给接收方,必须通过一种机制来确保整个网络在同一时间只有一台设备在发送数据。这个为了避免冲突而诞生的机制称为载波侦听多路访问/冲突检测,简称CSMA/CD,其中MA(多路访问)即指这种多个节点通过竞争的方式共享相同传输媒介的网络通信方式。通过这种通信方式搭建以太网,意味着在这个网络中所有设备都会使用相同的介质来发送数据,同时由某一台设备发送给另一台设备的数据,会被连接到网络中的所有设备接收到,因此这种以太网称为共享型以太网。

图1-1 冲突的产生

集线器(Hub)的问世让星型网络成为流行的以太网物理连接方式。但由于集线器只会不加区分地将数据向所有连接设备进行转发,因此用集线器搭建的以太网在数据转发层面上,与同轴电缆以太网那种总线型网络没有任何区别。这种网络依旧没有摆脱共享型以太网的窠臼,因为通过集线器相连的终端设备依旧处于同一个冲突域中,也依旧只能通过CSMA/CD来避免因同时发送数据造成的冲突。在逻辑上,只能将数据盲目转发给(除始发设备之外的)所有连接设备的集线器,只不过集线器取代总线成为这种网络中的新共享介质,而通过集线器搭建的星型拓扑,也更像是一个装在盒子中的总线型网络,如图1-2所示。

图1-2 共享型以太网(就像一个装在盒子中的总线型网络)

在以太网日渐普及的过程中,这种共享型以太网的限制不可避免地被突显出来。随着这种网络连接的终端的增加,多台设备需要同时发送数据的概率也会随之增加,而在共享型以太网中,同时只能有一台设备发送数据,因此共享型以太网的数据传输效率势必会随着网络的规模递减。

这种限制无疑让局域网的可扩展性遭遇了严重的瓶颈。当人们开始越来越多地需要将两个甚至多个局域网互联在一起时,这个问题就体现得淋漓尽致。因为将两个局域网相连势必引入更多的集线器,并且导致合并之后的冲突域规模变得更大,其中也包含更多的终端。

要想突破局域网扩展性方面的限制,就要设法让连接以太网各个节点的设备有能力将节点隔离在不同的冲突域中。于是,一种叫作网桥(Bridge)的设备应运而生,这种拥有两个端口的设备采用了一种不同于集线器的数据转发方式,因此可以将每个端口隔离为一个独立的冲突域,两个冲突域中的设备同时发送数据而不会形成冲突。在网桥问世之后,连接两个局域网的问题暂时得到了解决。

图1-3为用网桥连接两个局域网的示意图。

图1-3 网桥连接两个局域网的环境

如图1-3所示,当终端第一次向网桥发送数据帧时,网桥会记录下数据帧的源MAC地址和接收到这个数据帧的端口,并为它们之间建立对应关系,这样做是为了方便网桥处理后面的数据转发:若网桥发现数据帧的目的MAC地址所对应的端口正是接收这个数据帧的端口,那么网桥就不会对这个数据帧进行转发处理,而是直接将其丢弃。这样一来,在图1-3中的客户端2向客户端3发送数据帧时,只有同一个冲突域中的客户端1和客户端3会接收到客户端2发来的数据帧,当网桥通过端口1接收到数据帧之后,它会查看自己的数据表,发现客户端3所对应的端口也是端口1,于是它就不会将数据帧通过端口2转发出去,所以客户端4、客户端5和客户端6都不会接收到这个数据帧。基于网桥的工作方式,即使在客户端2向客户端3发送数据帧的同时,客户端5也在向客户端6发送数据帧,也不会造成冲突,这就实现了将冲突域隔离在端口的范围内,即网桥上每个端口所连接的环境单独构成一个冲突域的目标。

如果在客户端2向客户端3发送数据的同时,客户端6也在向客户端1发送数据,那么网桥在接收到客户端6发送给客户端1的数据时会查询MAC地址表,发现这个以客户端1的MAC地址作为目的MAC地址的数据应该通过自己的端口1转发出去,但端口1通过载波侦听多路访问机制发现自己所在的媒介,即冲突域1信号正忙——这当然是因为客户端2正在给客户端3发送数据,此时,网桥的端口1会将客户端6发送给客户端1 的数据缓存下来,等待自己所连接的媒介空闲之后再将数据发送出去。所以,网桥的工作机制确保了只要发送数据的网络适配器(即网卡或网络接口卡)没有连接在同一个冲突域中(即网桥的同一个端口上),冲突就不会发生。

1990 年,Kalpana 公司推出了第一款带有 7 个端口的网桥,这类多端口网桥被Kalpana公司命名为“交换机(Switch)”。这款交换机产品的名称为EtherSwitch,这个名称实际上就是以太网交换机(Ethernet Switch)的缩合词。自此以后,交换机这种既像集线器一样拥有大量端口,又可以像网桥一样以端口分割冲突域的设备,开始成为组建以太网的新宠。

随着终端设备在办公环境中的普及、网络间互联需求的增加和用户对网络转发效率需求的提高,不仅交换机在网络中的使用日渐频繁并最终取代了低效的集线器成为当今连接有线局域网的不二选择,而且交换机自身的端口数量、功能特性、转发效率,甚至外观都已经和EtherSwitch呈现出了显著的差别。在1.1.2小节中,我们会以一款华为二层交换机为例,对交换机的面板及一些常用性能参数进行说明。