1.4 分组交换技术
计算机网络的数据交换方式基本上可以分成电路交换和存储转发交换。存储转发交换方式又可分成报文交换和分组交换。分组交换又进一步分成数据报和虚电路方式。
1.4.1 交换方式
1.电路交换
先看看电话交换网是如何传输声音的。用户在通话之前,需要通过电话交换机在两台电话机之间建立线路连接,然后利用该线路传输模拟语音信号,传输结束即断开连接。
电路交换方式与电话交换的工作过程类似。这里,电话换成了计算机(称为主机),电话交换机换成了数据交换机,电话交换网变成了通信子网。工作过程如图1.13所示。
图1.13 电路交换工作过程
(1)源主机和目的主机之间通过A-B-C-D交换机建立连接。
(2)占用该连接通信线路进行数据传输。
(3)释放源主机和目的主机之间的连接。
电路交换在建立连接期间,线路的传输效率很低。因为计算机的数据是突发出现在线路上的,其他绝大部分时间被用户占用的通信线路是空闲的。例如,用户正在阅读内容或者正在输入需要进一步传输的内容时。
2.报文交换
将需要传输的数据封装成一个包,这个包称为报文。报文交换就是在网络中直接传输报文。但与电路交换不同,它一段一段占用通信线路。例如,对于图1.14中源主机传输到目的主机,源主机首先传输到A,在这个过程中,通信线路仅仅占用源主机到A这一段。报文传输到A后,根据到达的目的主机地址找下一站(例如B),然后把报文由A传输到B。以此类推,直到传输到目的主机。这种在结点上需要先保存包然后再转发的传输方法称为存储转发。
但当一个结点将一个报文传送到下一个结点后,该结点必须保留发送报文的副本,以备出错时重传,直到报文确认后才能删除。对于长报文,结点必须用较多的存储空间来保存副本。
3.分组交换
分组交换将需要传输的数据预先分成多个短的、有固定格式的分组,如图1.14所示。
图1.14 报文与分组
每个中间转发结点都可以独立地根据链路状态与通信量,通过路由选择算法为每个分组选择合适的传输路径。如果网络中的任何一个中间结点或一段链路出现故障,则可以绕过故障的结点或链路转发该分组。具备这种特性的计算机网络称为“分组交换网”。
分组交换技术就是分组、路由选择与存储转发。
图1.15给出了报文存储转发与分组存储转发过程的比较。
图1.15 报文交换与分组交换的比较
1.4.2 数据报方式与虚电路方式
在实际应用中,分组交换技术可以分为两类:数据报(DG)方式与虚电路(VC)方式。
1.数据报方式
数据报是报文分组存储转发的一种形式。在数据报方式中,分组传输前不需要预先在源主机与目的主机之间建立“线路连接”。源主机发送的每个分组都可以独立选择一条传输路径,每个分组在通信子网中可能通过不同的传输路径到达目的主机。图1.16给出了数据报方式的工作原理示意图。
图1.16 数据报工作方式
图中,分组P1沿A-B-C-D传输,分组P2沿A-E-G-D传输,P3正发送给A, P4等待传输。
数据报传输方式主要有以下几个特点:
(1)同一报文的不同分组可以经过不同的传输路径通过通信子网。
(2)同一报文的不同分组到达目的主机时可能出现乱序、重复与丢失现象。
(3)每个分组在传输过程中都必须带有目的地址与源地址。
(4)每一段都需要确认,传输延迟较大。这种方式适用于突发性通信,不适用于长报文、会话式通信。
2.虚电路方式
虚电路方式试图将数据报方式与电路交换方式结合起来,发挥这两种方法各自的优点,以达到最佳的数据交换效果。图1.17给出了虚电路方式的工作原理示意图。
图1.17 虚电路工作方式的工作原理
虚电路方式的工作过程分为3个阶段:虚电路建立阶段、数据传输阶段与虚电路释放阶段。
(1)虚电路建立阶段。源主机向目的主机发送建立连接分组给A。A使用路由选择算法确定下一跳为B,然后向B发送“呼叫请求分组”;同样, B也要使用路选算法确定下一跳为C。以此类推,“呼叫请求分组”经过A、B、C、D的路径到达D, D交目的主机。D向A发送“呼叫应答分组”,至此虚电路(源主机-A-B-C-D-目的主机)建立。
(2)数据传输阶段。沿着利用已建立的虚电路以存储转发方式顺序传送分组P1、P2、P3和P4。
(3)虚电路释放阶段。在所有的数据传输结束后, 源主机向目的主机发送释放连接分组,目的主机发送对源主机发分组回应。
虚电路方式主要有以下几个特点:
(1)在每次分组传输之前,需要在源主机与目的主机之间建立一条虚电路。
(2)所有分组都通过虚电路顺序传送,分组头不必携带目的地址、源地址信息,而仅仅需要包含表示建立的虚电路号。
(3)分组通过虚电路上的每个结点时,通过虚电路号确定传输路径。结点只需要进行差错检测,而不进行路由选择。分组到达目的主机时不会出现丢失、重复与乱序的现象。
(4)虚电路是在传输分组时建立的逻辑连接,之所以称为“虚电路”是因为这种电路不是专用的。每个主机可以同时与多个主机之间建立虚电路,每条虚电路支持这两个主机之间的数据传输。
1.4.3 面向连接服务与无连接服务
计算机网络通信服务是指通信子网对通信主机之间数据传输的效率和可靠性所提供的保证机制。通信服务可以分为两大类:面向连接服务和无连接服务。
1.面向连接服务
面向连接服务和电话系统的工作模式相似。主要特点是:
(1)数据传输过程必须经过连接建立、连接维护与释放连接3个阶段。
(2)在数据传输过程中,各个分组不需要携带目的结点的地址。
(3)传输连接类似一个通信管道,发送者在一端放入数据,接收者从另一端取出数据。传输的分组顺序不变,因此传输的可靠性好,但是协议复杂,通信效率不高。
2.无连接服务
无连接服务与邮政系统服务的信件投递过程相似。主要特点是:
(1)传输数据前不需要建立连接,而是直接传输。传输过程中可以不确认。
(2)每个分组都携带源结点与目的结点地址,各个分组的转发过程是独立的。
(3)目的主机接收的分组可能出现乱序、重复与丢失现象。数据传输可靠性不能保证。
由于上述原因,无连接服务通信协议相对简单,通信效率比较高。
虽然面向连接服务与无连接服务对数据传输的可靠性有影响,但是数据传输的可靠性一般通过确认和重传机制保证。
确认是指目的主机在接收到每个分组后,要求向源主机发送正确接收分组的确认信息。如果发送主机在规定的时间内没有接收到确认信息,就会认为该分组发送失败,这时源主机会重新发送该分组。确认和重传机制可以提高数据传输的可靠性,但是需要制定较为复杂的确认和重传协议,并且要增加网络通信负荷与占用网络带宽。