2.2.2 协议提供的服务
从通信的角度看,各层所提供的服务可分为两大类,即面向连接的(connection-oriented)与无连接的(connectionless)。现分别介绍如下。
1. 面向连接服务
所谓连接,就是两个对等实体为进行数据通信而进行的一种结合。面向连接服务是指在数据交换之前,必须先建立连接。当数据交换结束后,则应终止这个连接。
面向连接服务具有连接建立、数据传输和连接释放三个阶段。在传送数据时是按序传送的。这一点和电路交换的许多特性很相似,因此面向连接服务在网络层中又称为虚电路服务。“虚”表示:虽然在两个服务用户的通信过程中并没有自始至终占用一条端到端的完整物理电路(注意:采用分组交换时,链路是逐段被占用的),但却好像一直占用了一条这样的电路。面向连接服务比较适合于在一定期间内要向同一目的地发送许多报文的情况。若发送很短的零星报文,面向连接服务的开销就显得过大了。
若两个用户需要经常进行频繁的通信,则可建立永久虚电路。这样可省去每次通信时连接建立和连接释放这两个过程。这一点和电话网中的专用电路通信是十分相似的。
2. 无连接服务
在无连接服务的情况下,两个实体之间的通信不需要先建立好一个连接,因此其下层的有关资源不需要事先进行预定保留。这些资源将在数据传输时动态地进行分配。
无连接服务的另一特征就是它不需要通信的两个实体同时是活跃的(即处于激活态)。只有当发送端的实体正在进行发送时,它才必须是活跃的。这时接收端的实体并不一定是活跃的。只有当接收端的实体正在进行接收时,它才必须是活跃的。
无连接服务的优点是灵活方便和比较迅速。但无连接服务不能防止报文的丢失、重复或失序。无连接服务特别适合于传送少量零星的报文。
无连接服务有以下三种类型:
① 数据报(datagram)。它的特点是不需要接收端做任何响应,因而是一种不可靠的服务。数据报常被描述为“尽最大努力交付(best effort delivery)”。
② 证实交付(confirmed delivery)。它又称为可靠的数据报。这种服务对每一个报文产生一个证实给发方用户,不过这个证实不是来自接收端的用户而是来自提供服务的层。这种证实只能保证报文已经发给远端的目的站了,但并不能保证目的站用户已收到这个报文。
③ 请求回答(request-reply)。这种类型的数据报是收端用户每收到一个报文,就向发端用户发送一个应答报文。事务(即transaction,又可译为事务处理或交易)中的“一问一答”方式的短报文,以及数据库中的查询,都很适合使用这种类型的服务。