|
五.三层模型 从总体上看,我们认为通信涉及到三个方面:应用程序、计算机和网络。应用程序的一个例子就是文件传送操作程序。应用程序在计算机上运行,且计算机通常可以支持多个应用程序并发运行。计算机与网络连接,被交换的数据通过网络从一台计算机传送到另一台计算机上。因此,两个应用程序之间的数据传输首先要做的是将数据交给应用程序所在的计算机,然后另一方计算机上相应的应用程序才能获得这些数据。 基于这种概念,可以将通信任务划分为以下三个相对对立的层次:
网络接入层关心的是计算机与所连网络之间的数据交换。发方计算机必须向网络提供目的计算机的地址,这样网络才能够将数据沿正确的路径传送到相应的目的地。发方计算机可能需要调用某些由网络提供的特殊服务,如优先级等。网络接入层使用什么样的软件取决于所使用的网络类型。针对电路交换、分组交换、局域网等不同类型的网络开发出了不同的标准。因此,将这些与接入网络有关的功能划分为一个独立的层次是合理的。这样一来,位于网络接入层之上的其他通信软件就不需要关心所使用的网络类型。换句话说,不管与计算机相连的是何种网络,上层软件都能正常工作。 不论进行数据交换的是什么样的软件,通常都要求数据能够可靠地交换。就是说,我们希望确保所有数据都能顺利到达目的应用程序,并且在到达时与它们在发送时的顺序是一致的。如同将要看到的,提供可靠性的机制本来就与应用程序的类型无关。因此,有理由将这些机制集合到同—层中,并由所有的应用程序共享。这一层就称为传输层。 最后,应用层所包含的是用于支持各种用户应用程序的逻辑。对各种不同类型的应用程序,如文件传送程序,需要一个专门负责该应用的独立模块。 图13-01-5和13-01-6描绘了这个简单的体系结构。图5所示为三台计算机与一个网络相连的情况。每台计算机上都含有网络接入层和传输层的软件,以及与一个或多个应用程序有关的应用层软件。为了顺利完成通信,整个系统上的每一个实体都必须有一个惟一的地址。事实上,这需要用到两级地址。网络上的每台计算机都必须有一个惟一的网络地址,它的作用是让网络能够将数据交付到正确的计算机上。计算机上的每个应用程序也必须有一个计算机内部惟一的地址,使传输层能够在一台计算机上支持多个应用程序的运行。后一种地址称为服务访问点(SAP),言外之意就是每个应用程序都要单独访问传输层的服务。
图13-01-5
协议体系结构和网络 图13-01-6显示了位于不同计算机上同层模块之间进行通信的方式:使用协议。让我们来跟踪一个简单的操作过程。假设在计算机x上有一个与SAP1相关的应用程序,它希望向另一个位于计算机Y上的与SAP2相关的应用程序发送一个报文。X上的应用程序将这个报文递交给它的传输层,并命令传输层将其发送给计算机Y上的SAP2。然后传输层将这个报文递交给网络接入层,同时命令网络将其发送给计算机Y。请注意,网络并不需要知道目的服务访问点,它只需要知道将数据交付给计算机Y就足够了。
图13-01-6
简化的体系结构中的协议 为了控制这一操作过程,除了用户数据之外,还必须传送一些控制信息(图13-01-7)。假设发方应用程序生成了一个数据块并将它交付给传输层。为了便于处理,传输层可能将这个数据块分割成两个更小的数据块。传输层还会为每个数据块附加一个传输首部,并在其中包含协议控制信息。来自上一层的数据和控制信息合在一起称为协议数据单元(PDU,Protocol
Data Unit)。在这里,它指的是传输协议数据单元。每个传输PDU的首部中所含的控制信息都是计算机Y上的对等传输协议所需要的。在这个首部中存放了诸如下列几项内容:
图13-01-7
协议数据单元 接下来传输层将各个协议数据单元交付给网络层,并命令网络层将其传送到目的计算机。为了满足这一请求,网络接入协议必须将数据提交给网络,并请求传送。与前面一样,这个操作也需要用到一些控制信息。此时,网络接入协议接收传输层的数据,并在这些数据上附加一个网络接入首部,从而生成网络接入PDU。存放在这个首部中的内容大概有以下几项:
图13-01-8将所有这些概念综合起来,描绘了在传输一个数据块时这些模块之间的相互作用。 假设位于计算机x上的文件传送模块准备向计算机Y一次一个记录地传送文件,所有文件记录都被交付给传输层模块,可以用命令或过程调用的形式使这一动作更加形象化。此次过程调用的参数包括目的计算机地址、目的服务访问点以及记录本身。传输层将目的服务访问点和其他一些控制信息附加到记录上生成传输PDU,然后通过另一次过程调用将它交付给网络接入层。此时,这一命令的参数是目的计算机地址和传输协议数据单元。网络接入层使用这些信息构造出一个网络PDU。传输协议数据单元是这个网络PDU的数据字段,而网络PDU的首部包括有关源和目的计算机地址的信息。请注意,对网络接入层来说它是看不到传输层首部的,网络接入层并不关心传输PDU的内容。
图13-01-8
协议体系结构的操作 网络接受来自x的网络PDU并将其传送给Y。位于Y上的网络接入模块接收到这个PDU,并将其首部拆除,然后把携带的传输PDU交付给Y的传输层模块。传输层检查这个传输协议数据单元的首部,然后根据首部中的SAP字段将携带的文件记录交付给适当的应用程序,在这里就是计算机Y上的文件传送模块。 |