分布式系统

Single-Message Communication(译)

2013年11月1日 阅读(1,009)

作者:DAG BELSNES 1976

原文:http://ieeexplore.ieee.org/xpl/tocresult.jsp?isnumber=23863

译者:phylips@bmy 2012-11-28

译文:http://duanple.blog.163.com/blog/static/70971767201310194243109/

摘要

当通信系统需要传输大量短消息时,减少进程间连接(connection)的创建和销毁以及消息可靠性方面的控制开销是非常重要的。本文描述了几种不同的端到端控制流程,同时研究了它们是否会导致消息丢失及收到重复消息。结果表明(基于对通信网络的一定假设)所有的端到端协议要么会产生消息丢失,要么会导致重复。

1.导引

在很多数据通信应用中,有大量的流量都是由单消息会话组成的。即,消息发送者与给定的目标接收者建立一个连接,然后发送消息,之后立即关闭该连接。因此构建一种适用于此类用法,并可以降低连接建立和关闭开销的控制流程是非常必要的。

 

在本文中,我们会讨论几种对数据通信网络上的短消息传输进行控制的方法。首先我们需要为通信系统制定一些假设。

 

假设我们现在有一个位于某宿主机上的进程A,它需要周期性向位于另一台机器上的进程B传送一个消息。为了能够进行通信,机器通过一个数据网络(DN)进行互联。数据网络用于在机器间进行消息传输,通常由传输线路和交换机组成。我们不需要关注DN的内部设计及操作,但是我们会假设DN是不完美的,消息给到DN后可能会被丢失或在DN上产生无法预料的延迟。

 

因此为了增加进程间消息通信的可靠性,每个主机上还会有一个网络控制程序(NCP,Network Control Program)。进程A将数据消息连同B的地址一块交给它的NCP。主机A的NCP(NCPA)和主机B的NCP(NCPB)负责到B的消息的传输控制。

 

尽管DN是不可靠的,NCP可以通过在数据消息之外发送额外的控制消息来增加正确通信(correct communication)的成功率。所谓正确的通信,这里是指要么B收且仅收到消息的一个拷贝,要么B没有收到该消息,同时在这两种情况下A都知道最终结果。

 

如果A认为B已经收到了消息但是实际并非如此,我们就说消息丢失了;如果B收到了同一个消息的两个拷贝但是它认为它们是不同的消息,我们就说消息产生了重复。

 

我们假设需要进行通信的进程对非常多,以至于NCP无法保存关于那些非活跃连接的任何信息。甚至假设NCP可能会丢失关于那些活跃连接的信息。

pdf完整版本下载:
http://pan.baidu.com/s/1PUf8

You Might Also Like