计算机网络教程(微课版)
上QQ阅读APP看书,第一时间看更新

1.4 电路交换与分组交换

最简单的计算机网络只有两台计算机和连接它们的一条链路,即两个结点和一条链路,这时不需要交换。如果有多台计算机需要通信,则通常需要利用交换技术实现它们之间一对一的通信。

典型的网络交换方式主要分为两种:电路交换分组交换

1.4.1 电路交换

0

电路交换

电路交换来源于电话网。图1-6(a)表示两部电话只需要用1对电线就能够互相连接。但若有五部电话要两两相连,则需要10对电线,如图1-6(b)所示。当电话机的数量很大时,这种连接方法需要的电线数量就太大了(与电话机数量的平方成正比)。要使得每一部电话能够很方便地和另一部电话进行通信,就应当使用一个中间设备将这些电话连接起来,如图1-6(c)所示。这个中间设备就是电话交换机。每一部电话都连接到交换机上,交换机就像一个有多个开关的开关器(当然,实际的工作原理是非常复杂的),可以将需要通信的任意两部电话的电话线路按需接通,从而大大减少了电线数量。

0

图1-6 电话机的不同连接方法

当电话的数量进一步增多时,就要使用很多彼此连接起来的交换机来完成全网的交换任务。用这样的方法,就构成了覆盖全世界的电话网。

交换机接通电话线路的方式是一种称为电路交换(Circuit Switching)的方式。从通信资源的分配角度来看,交换(Switching)就是按照某种方式动态地分配传输线路的资源。在使用电路交换打电话之前,必须先拨号请求建立连接。在被叫用户听到交换机送来的拨号音并摘机后,从主叫端到被叫端就建立了连接,也就是一条专用的物理通路。该连接保证了双方通话所需的通信资源在双方通话时不会被其他用户占用,这样双方就能互相通电话了。通话完毕挂机后,交换机释放刚才使用的这条专用的物理通路(即把刚才占用的所有通信资源归还给电信网)。这种必须经过“建立连接(分配通信资源)→通话(一直占用通信资源)→释放连接(归还通信资源)”三个步骤的交换方式称为电路交换[3]。如果用户拨号呼叫时电信网的资源已不足以支持这次呼叫,则主叫用户会听到忙音,表示电信网不接受用户的呼叫,用户必须挂机,等待一段时间后再重新拨号。

图1-7为电路交换的示意图。为简单起见,图中没有区分市话交换机和长途电话交换机。应当注意的是,用户线归电话用户专用,而交换机之间拥有大量话路的中继线则是许多用户共享的,正在通话的用户只占用了其中的一个话路。在通话的全部时间内,通话的两个用户始终占用端到端的通信资源。图1-7中电话A和电话B之间的通路共经过了4个交换机,而电话C和电话D在同一个交换机的地理覆盖范围中,因此这两部电话之间建立的连接不需要经过其他的交换机。这就是说,在电话A和电话B的通话过程中,它们始终占用这条已建立的物理通路,就像把电话A和电话B直接用一对电话线连接起来一样。通话完毕(挂机)后,电话A和电话B的连接断开,原来被占用的交换机之间的话路又可以为其他用户使用。

0

图1-7 电路交换的示意图

当使用电路交换来传送计算机数据时,其线路的传输效率往往很低。这是因为计算机数据是突发式地出现在传输线路上的,线路真正用来传送数据的时间往往不到10%甚至1%。实际上,已被用户占用的通信线路在绝大部分时间里都是空闲的。例如,当用户阅读终端屏幕上的信息或用键盘输入和编辑一份文件时,或计算机正在进行处理而结果尚未返回时,宝贵的通信线路资源并未被利用而是白白被浪费了。

1.4.2 分组交换

0

分组交换

计算机网络主要采用分组交换技术。图1-8所示的是把一个报文划分为几个分组的概念。通常我们把要发送的整块数据称为一个报文(Message)。在发送报文之前,先把较长的报文划分成一个个更小的等长数据段,例如,每个数据段为1024 bit[4]。在每一个数据段前面,加上由必要的控制信息组成的首部(Header)后,就构成了一个分组(Packet)。分组又称为“”,而分组的首部也称为“包头”。分组是在分组交换网络中传送的数据单元。分组中的首部是非常重要的,包含了目的地址和源地址等重要控制信息。计算机将分组通过通信链路直接发送给分组交换机(Packet Switch),分组交换机收到一个分组,先将分组暂时存储下来,再检查其首部,按照首部中的目的地址查找转发表,找到合适的接口(就是分组交换机和外部连接的接口)转发出去,把分组交给下一个分组交换机。这样一步一步经过多个分组交换机把分组转发到最终的目的计算机。由于每个分组交换机都是将收到的分组先存储下来再转发出去,因此该方式被称为存储转发方式。计算机网络中有两类典型的分组交换机:路由器(Router)和二层交换机(L2 Switch),我们将在第3章和第4章分别讨论它们具体的工作原理。

0

图1-8 把一个报文划分为几个分组的概念

我们以图1-9为例来讨论分组交换机转发分组的过程。现在假定主机H1向主机H5发送数据。主机H1先将分组逐个地发往与它直接相连的分组交换机A。此时,除链路H1-A外,其他通信链路并不被目前通信的双方所占用。需要注意的是,即使是链路H1-A,也只是当分组正在此链路上传送时才被占用。在各分组传送之间的空闲时间,链路H1-A仍可为其他主机发送的分组使用。

0

图1-9 分组交换的示意图

分组交换机A把主机H1发来的分组放入缓存。假定从A的转发表中查出应把该分组转发到链路A-C。则分组就传送到分组交换机C。当分组正在链路A-C上传送时,该分组并不占用网络其他部分的资源。

分组交换机C继续按上述方式查找转发表,假定查出应转发到分组交换机E。分组到达E后,E把分组直接交给主机H5

假定在某一个分组的传送过程中,链路A-C的通信量太大,那么分组交换机A可以把分组沿另一个链路转发到分组交换机B,再转发到分组交换机E,最后把分组送到主机H5

这里要注意,分组交换机暂时存储的是一个个短分组,而不是整个的长报文。短分组暂存在分组交换机的存储器(即内存)中而不是存储在磁盘中,这就保证了较高的交换速率。

在图1-9中只画了一对主机H1和H5在进行通信。实际上,在网络中可同时有多台主机经过同一条链路进行通信,例如,在主机H1与H5通信的同时,主机H3也可以经过分组交换机C和E与主机H6通信,主机H1发送给H5的分组与主机H3发送给H6的分组会交替在链路C-E上传送。

总之,分组交换机在传送数据之前不必先占用一条端到端的通信线路。分组在哪段链路上传送才占用这段链路的通信资源。分组在传输时就这样一段接着一段地断续占用通信资源,而且省去了建立连接和释放连接的开销,因而数据的传输效率更高。

从上述过程可知,采用存储转发方式的分组交换,实质上是采用了在数据通信的过程中断续(或动态)分配传输带宽的策略(关于带宽的进一步讨论见后面的1.5节),这对传送突发式的计算机数据非常合适,使得通信线路的利用率大大提高了。

为了提高分组交换网的可靠性,常采用具有冗余链路的网状拓扑结构,使得当发生网络拥塞或少数结点、链路出现故障时,分组交换机可灵活地改变转发路由而不致引起通信的中断或全网的瘫痪。此外,通信网络的主干线路往往由一些高速链路构成,这样就可以较高的数据率迅速地传送计算机数据。

综上所述,分组交换的主要优点如表1-1所示。

表1-1 分组交换的主要优点

0

分组交换也带来一些新的问题。例如,分组交换机在转发分组时需要花费一定的时间,这就会造成时延,各分组必须携带的控制信息也造成了一定的开销(Overhead)。此外,由于分组交换不像电路交换那样通过建立连接来保证通信时所需的各种资源,因而无法确保通信时端到端的带宽,在通信量较大时可能造成网络拥塞

如图1-10所示,每个分组交换机有多条链路与之相连。对于每条相连的链路,该分组交换机有一个输出缓存(也称为输出队列),用于存储分组交换机准备发往那条链路的分组。该输出缓存在分组交换中起着重要的作用。如果到达的分组需要从某条链路转发出去,但该链路正忙于传输其他分组,则分组必须在该输出缓存中等待(即排队)。当一个分组到达时发现输出缓存已满,将发生分组丢失,即到达的分组或已经排队的分组将被丢弃。当网络中有大量分组需要从某条链路转发时就可能出现这种分组丢失的情况,这时我们说网络发生了拥塞

0

图1-10 分组交换中的分组排队

应当指出,从本质上讲,这种断续分配传输带宽的存储转发原理并非全新的概念。自古代就有的邮政通信,就其本质来说也属于存储转发方式。而在20世纪40年代,电报通信也采用了基于存储转发原理的报文交换(Message Switching)。在报文交换中心,一份份电报被接收,并穿成纸带。操作员以每份报文为单位,撕下纸带,根据报文的目的站地址,拿到相应的发报机转发出去。这种报文交换的时延较长,从几分钟到几小时不等。分组交换虽然也采用存储转发原理,但由于使用了计算机进行处理,分组的转发非常迅速。例如,ARPANET建网初期的经验表明,在正常的网络负荷下,当时横跨美国东西海岸的端到端平均时延小于0.1s。因此,分组交换虽然采用了某些古老的交换原理,但实际上已变成了一种崭新的交换技术。

图1-11所示为电路交换、报文交换和分组交换的主要区别,P1~P4表示4个分组。图中的A和D分别是源点和终点,而B和C是在A和D之间的中间结点;下方归纳了三种交换方式在数据传送阶段的主要特点。

电路交换——整个报文的比特流连续地从源点直达终点,好像一条物理的线路直接将源点和终点连接起来一样。

报文交换——整个报文先传送到相邻结点,全部存储下来后查找转发表,转发到下一个结点。

分组交换——单个分组(这只是整个报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。注意,分组交换机的输出接口和输入接口能够并行工作,当输出接口在发送一个分组时,其输入接口可以接收下一个分组。

从图1-11可看出,若要连续传送大量的数据,且其传送时间远大于连接建立时间,则电路交换的传输速率较高。报文交换和分组交换不需要预先分配传输带宽,在传送突发数据时可提高整个网络的信道利用率。由于一个分组的长度往往远小于整个报文的长度,因此分组交换比报文交换的时延小。将发送的报文划分成小的分组,除了有减小转发时延的好处外,还可以避免过长的报文长时间占用链路,同时也有利于进行差错控制(差错控制相关内容将在3.1.4小节中讨论)。

0

图1-11 电路交换、报文交换和分组交换的主要区别