它是由若干网络节点按照任意拓扑结构互连而成,数据的传输是从源节点发出,经过中间节点的交换(转发),最终到达终点。电话网就是这种方式的应用。图1-20示意了一个交换网络的拓扑结构:

按照实际的传输技术,交换网通常使用三种交换技术:电路交换、报文交换和分组交换。

1. 电路交换

在电路交换(Circuit Switching)中,通过网络节点在两个工作站之间建立一条专用的通信线路(面向连接服务)。最典型的例子是电话交换系统。采用电路交换方式进行通信时,两个工作站之间应具有实际的物理连接。这种连接是由节点间的各段电路组成,每一段电路都为此连接提供一条通道。电路交换方式的通信过程分为如下三个阶段。

(1) 电路建设阶段

开始传送数据之前,必须建立端—-(—-)的电路。首先,源站点和目的站点建立连接的请求发送给一个交换节点,交换节点在通向目的站的路由选择表中找出下一条路由,并为该条电路分配一个未用信道;然后,把连接请求传送到下一个节点。这样通过各个中间交换节点的分段连接,使源站和目的站之间建立起一条实际的物理连接。

(2) 数据传送阶段

一旦电路连接建立起来后,就可以通过这条专用的电路来传输数据。数据可以是数字的(如来自终端或主机),也可以是模拟的(如声音)。传输的信号形式可以采用数字信号,也可以采用模拟信号。这种连接通常是全双工方式,数据可以双向传输。

(3) 电路拆除阶段

当数据传输结束后,应拆除连接,以释放该连接所占用的专用资源。两个工作站中的任一个工作站都可以发出拆除连接的请求。

由于在数据传输开始之前必须建立连接通路,因此通路中的每对节点之间的信道容量必须是可用的,每个节点必须具有处理连接操作的内部交换能力,能够分配信道和选择网络路由。

信道容量在连接期间是专用的,即使没有数据传送,别人也不能使用,所以电路交换的效率可能是很低的。对于传输声音信号的连接,利用率要高一些,但仍然达不到100%。对于计算机之间的连接,在连接的大部分时间内,信道容量可能是空闲的。就网络性能而论,在电路建立阶段有一个延迟,而在数据传输阶段除了电路的传播延时之外,不再有其他的延迟,因此实时传输性能比较好。

2.报文交换

报文交换(Message Switching)是网络通信的另一种完全不同的方法。在这种交换方式中,两个工作站之间无须建立专用的通路(面向无有连接服务)。如果一个站想要发送报文(信息的逻辑单位),就把目的地址添加在报文中一起发送出去。该报文将在网络上从一个节点被传送到另一个节点。在每个节点中,要接收整个报文并进行暂时存储,然后经过路由选择再发送到下一个节点。这种方式也称为存储-转发报文方式。

报文交换方式较之电路交换方式具有如下优点:

①电路利用率高。因为一个节点到节点的信道可为多个报文共享。这样,对相同的流量要求,所需的总传输容量要小些。

②接收者和发送者无需同时工作,当接收者处于“忙”时,网络节点可以先将报文暂时存储起来。

③当流量加大时,在电路交换网络中可能导致一些呼叫被阻塞;而在报文交换网络中,报文仍然可以接收,但延时会增加。

④报文交换系统可同时向多个目的站发送同一报文。这种功能在电路交换方式中是难以实现的。

⑤可以建立报文传输的优先级。

⑥能够在网络上实现报文的差错控制和纠错处理。

⑦报文交换网络可以进行传输速率和代码格式的转换,使两个传输速率不同且代码格式相异的工作站可相互连接。

⑧发送给未工作的终端的报文可以被截取,或者存储下来,或者转发给其他终端。报文交换方式的主要缺点是不适于实时通信或交互式通信,网络的延时比较长,波动范围比较大。所以,它不能用来传输声音信号,也不适用于交互式通信。报文交互方式主要用在广域网中。

3.分组交换

分组交换(PacketSwitching)实际上是对较长的报文交换进行分组(Packet),限制所传输的数据单位的长度,一个分组的长度限制范围为1千到数千比特。而报文交换网络中的报文长度则要长得多。从通信节点的情况来看(存储-转发),较小的传输单元有利于降低存储容量,提高转换速度。因为通信节点在收到一个分组后,即刻转发(无需全部分组到达),而不像报文交换,要等待整个报文接收完毕才能转发。三种方式的比较如图1-21所示。

在交换网中,通常采用数据报和虚电路两种方式来管理这些分组流。

(1)数据报

在数据报(Datagram)方式中,每个分组独立地进行处理,如同报文交换网络中每个报文独立地处理那样。但是,由于网络的中间交换节点对每个分组可能选择不同的路由,因而到达目的地时,这些分组可能不是按发送的顺序到达,因此除在分组数据上要附加源和目的地址及CRC校验码外,还要增加序号信息,以利于目的站把它们按顺序重新排列。在这种技术中,独立处理的每个分组称为“数据报”。

(2)虚电路

在虚电路(Virtual Circuit)方式中,在发送任何分组之前,需要先建立一条“逻辑”连接。即在源站和目的站之间的各个节点上事先选定一条网络路由;然后,两站便可以在这条逻辑连接上,(即虚电路上)交换数据。它之所以是“虚”的,是因为这条电路不是专用的,每个节点到其他节点之间可能同时有若干条虚电路通过,也可能同时与多个节点之间具有虚电路。每条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路由可能相同,也可能不同。

假设有两条虚电路经过节点A。当一个数据分组到达时,节点A如何知道该分组是属于哪条虚电路呢?它又怎样把数据发送到下一正确的节点呢?

首先,一个端系统每次在建立虚电路时,选择一个没用过的虚电路号分配给该虚电路,以便区别于本系统中的其它虚电路。在传送数据时,每个数据分组不仅要有分组号、检验和控制信息,还要有他要通过的虚电路的号码,以区别于其他虚电路上的分组。在每个节点上都维持一张虚电路表,它的每一项记录了一个打开的虚电路的信息,包括虚电路号,前一节点和下一节点的标识。这是因为数据的传输是双向的。这些信息是在虚电路的建立过程中确定的。

1-23表明了6条虚电路被建立时每个节点所记录的虚电路信息。

有一点要注意,由于一个虚电路上的数据是双向传送的,为保证两个节点之间正反两个方向的两个虚电路也不相混淆,在一个节点选取虚电路号来替换前一节点使用的虚电路号时,不仅要考虑与下一节点之间的虚电路号不相同,还要考虑与下一节点在另一条虚电路上作为上一节点时所选取的虚电路号相区别。例如,在建立虚电路1-BAE时,在节点B中,尽管节点A是第一次作为B的下一节点,但由于在虚电路0-ABCDA-B间已经使用了虚电路号。因此,在出路一栏应选B-A间的虚电路号为1。这样,当从节点A发来一个分组时,如果它所携带的虚电路号是0,则说明是虚电路ABCD上的正向分组;若为1,则说明是虚电路BAE上的反向分组。对于虚电路2-AEFD的建立也是同样情况。


评论

该日志第一篇评论

发表评论

评论也有版权!