1、概述
在开始网络层的介绍之前,先辨析几个计算机网络中的常见名词:报文、数据报、分组、帧。报文源应用发送的信息整体,是应用层数据传输的单元,向下层封装传输的时候,到了传输层,如果报文过大,就将其分割为一个个小的报文段,因此报文段是传输层的数据传输单位(如果传输层采用的是UDP协议,其数据传输单元是用户数据报)。到了网络层,报文段被加上一个IP首部,成为IP数据报,如果其过大,则将IP数据报切割为一个个小的分组,因此IP数据报或者分组是网络层的数据传输单元。再往下,数据链路层的传输单元是帧,是上层传来的分组加上头部和尾部信息成为帧。
网络层的作用,是把分组从源端传送到目的端,为分组交换网上的不同主机提供通信服务。它可以通过路由选择算法或协议实现路由选择与分组转发,实现异构网络互联,通过开环或者闭环控制来避免网络拥塞。开环控制就是实现考虑到可能造成网络拥塞的情况,采取一定措施控制,闭环控制是让网络先运行起来,在运行过程当中动态地实现网络拥塞控制。
2、数据交换方式
数据交换方式包括电路交换、报文交换和分组交换。
电路交换的典型应用场景就是电话网络。打电话时,一方先拨号,寻找一条线路,另一方接听后连接建立,两者通话,一方挂断后连接释放。它的特点是独占一条通信线路,可以实现有序传输、实时性强、没有冲突、通信时延小,但是其最大缺点是信道利用率不高,因为一旦连接建立,即使双方无数据传输(比如打电话的两人都不说话),这条信道也不能够被其他人利用,但可以采用多路复用技术提高信道利用率。另外连接的建立也需要时间,灵活性也差,一旦这条线路中的任何一点出现故障,两者就无法继续通信。它也没有差错控制能力。
报文交换是指报文经过一个个的交换设备时,交换设备先进行存储,然后查看此时网络状态,选择一个最合适的链路将其转发出去。它不需要事先建立连接,每一个报文传输的路径可能是不同的,是在传输过程中由交换设备动态选择的,因此信道利用率高、可靠性也高,因为没有哪一个报文的传输需要独占一条线路,一条线路不能用了,可以选择其它线路。另外,它也可以提供多目标服务,就是一个报文可以同时发送给多个目的主机。但是它有存储转发时延,而且报文过大的话,对交换设备的缓存空间也提出了较大要求,因此就有了下面的分组交换。
分组交换的思想和报文交换基本一致,只是将大的报文分割成一个个小的分组,然后依次通过交换设备存储转发。它的优点和报文交换基本一致,只是存储管理更容易,因为数据量更少。另外它的发送时延比报文交换要小,因为它可以实现分组的并行传输,即一个分组在链路上传输的时候,其它分组可以源源不断地被发送到信道上。但它同时也需要额外的开销记录每一个分组的信息,到达目的主机后还需要将这些分组重新排序。
下面这张图总结了三者的区别。
其中,分组交换又有两种方式:数据报方式和虚电路方式。前者为网络层提供无连接方式,后者为连接方式。数据报方式中每个分组携带源地址和目的地址,路由器根据路由选择协议/算法构建转发表,当分组过来时路由器检索转发表,为其动态分配线路,因此不同分组传输路径可能不同。虚电路方式结合了分组交换和电路交换的优点,在源主机和目的主机之间建立了一条逻辑上的连接(不是物理上的连接,因此是“虚”电路)。源主机先发送一个“呼叫请求”分组建立连接请求到目的主机,目的主机同意后返回一个“呼叫应答”分组,二者连接建立。这条连接线路上的每一个结点都会维持一个虚电路表,每一个发送的分组也会携带一个虚电路号,当分组在线路上传输时,到达交换设备后,交换设备会根据其虚电路号去查找自己的虚电路表,进而为其分配事先划分的线路。因此,同一数据报的分组的传输路径是相同的。数据传输过程中可以实现全双工通信,一方发送“释放请求”分组后连接释放。
因此,对比这两种方式,我们可以看到:数据报方式不建立连接,分组携带源地址和目的地址,各个分组存储转发路径不一定相同,不保证按序到达,灵活性好。虚电路方式建立逻辑链接,分组携带虚电路号(只有连接建立时的请求和应答分组才有源地址和目的地址),各个分组使用同一条虚电路按序到达,灵活性差。