APP下载

《网络原理》课程中协议可靠性探讨

2015-11-26崔杰吴优仲红

物联网技术 2015年11期
关键词:协议问题探究可靠性

崔杰++吴优++仲红

摘 要:网络可靠性分析在提高网络可靠性、生存性以及网络的优化设计中具有重要意义。随着各种网络规模的越来越大,网络的可靠性也就显得越来越重要。课堂中出现的蓝、白军进攻问题,涉及到网络的可靠性协议。文章就半双工通信的情况下,探讨设计了一个协议,以便提供可靠的通信。

关键词:可靠性;协议;通讯网络;问题探究

中图分类号:G642.0 文献标识码:A 文章编号:2095-1302(2015)11-0-02

0 引 言

占据东、西两个山顶的蓝军1和蓝军2与驻扎在山地的白军作战。其力量对比是蓝军1或蓝军2单独作战不敌白军,但蓝军1和蓝军2协同作战可以战胜白军。现蓝军1拟于次日正午向白军发起攻击。于是用计算机发送报文给蓝军2,但通信线路很不好,电文出错或丢失的可能性较大(没有电话可用)。因此,要求收到电文的友军必须送回一个确认电文。但此确认电文也容易出错或丢失[1,2]。试问能否设计出一种协议使得蓝军1和蓝军2能够实现协同作战而一定(即100%而不是99.999...%)取得胜利?这个问题的本质就是能否设计出一个绝对可靠的协议[3,4]。

1 书中解答

蓝军1先发送“拟于明日正午发起攻击,请求协同作战和确认。”

假定蓝军2收到了电文并发送确认。

然而现在蓝军1和蓝军2都不敢下定决心进攻。因为蓝军2不知道此确认电文蓝军1是否收到。如未正确收到,则蓝军1不敢贸然进攻。在此情况下,自己单方面发起进攻就肯定要失败。因此,必须要等待蓝军1发送“对确认的确认”。

假定蓝军1接收到电文并发送“确认的确认”。但蓝军1同样关心自己发出的确认对方是否收到,因此还要等待蓝军2的“对确认的确认的确认”。

这样无限循环下去,蓝军1和蓝军2都始终无法确定自己最后发出的电文对方是否收到。因此,在本例题给出的条件下,没有一种协议可以使蓝军1和蓝军2能够100%地确保胜利。

2 协议描述

上述协议的直观描述如图1所示。

这个例子告诉我们,看似简单的协议,设计起来要考虑的问题还是比较多的。

图1 无限循环协议图

3 问题探讨

看完书中的解题方法和思路,我们有一些不同的看法,我们试图设计一个协议,让双方能保障信息的可靠性。

事先约定一个协议:只要有一方(A方)发送一个报文,末尾标记1,记为A1。另一方(B方)收到并发送确认报文,末尾标记2,记为B2。同理,A接收到B2,发送A3。如此往返,直至A方发送A9,B发送B10。如此,双方最多都能发送五次报文,如果双方都能确认另一方能发送至少一次报文,则默认双方都知道报文的信息。

解题思路:假设B方可以发送B10,则可以确认A方已经发送A9,A能判断出B至少发送一次报文,默认双方都知道这个事情。同时A发送A9,能确认B发送B8的报文,则默认双方都知道报文的信息。

假设B方可以发送B 8,则可以确认A方已经发送A7,A能判断出B至少发送一次报文,默认双方都知道这个事情。同时A发送末尾标记为A7,能确认B发送过B6,则默认双方都知道报文的信息。

假设B方可以发送B6,则可以确认A方已经发送A5,A能判断出B至少发送一次报文,默认双方都知道这个事情。同时A发送A5,能确认B发送B4,则默认双方都知道报文的信息。

假设B方可以发送B4,则可以确认A方已经发送A3,A能判断出B至少发送一次报文,默认双方都知道这个事情。同时A发送A3,能确认B发送过B2,则默认双方都知道报文的信息。

综上所述能找到一些情况,使报文可靠传输。如B发送末尾标记为10的报文,则报文的信息A、B都知道对方知晓。

4 问题分析

以上解题过程貌似正确,但在一系列推导之后是不成立的,推导过程如表1所示。

规定B发送B10则默认双方都知道报文的信息,则蓝军1和蓝军2攻打白军。

证明上述论述错误,可使用反证法。

若B发送B10,则A必须发送A9。即规定A发送A9时A必定会攻击白军。

当A发送A9时,还有另外一种情况,即B发送B8,而B没有收到A9。此时B没有发送B10,B不会选择出击,而A选择出击,则战争失败,以上推断不正确。

以B为研究对象:若B最多发送Bi,A最多发送An的可能情况,Bi与An对应关系如表2。

以A为研究对象:若A最多发送An,B最多发Bi的可能情况,如表3所列。

由表2和表3可得:若选定一个An记为A发动攻击的标志,则B无法找到唯一一个确定的标志发动攻击。

若选定一个Bi记为B发动攻击的标志,则A无法找到唯一一个确定的标志发动攻击。

可得出结论,按照以上方法,无法找到一个协议使得双方可靠地传输信息。

5 方法改进与分析

A多次发送报文,则B至少应能收到一次。若B一次都收不到,则无论什么协议都无法奏效。

现假设A发送的报文,B至少能接收到一个报文。A发送的报文如下:

“我会在明日正午发起攻击,无论你有没有收到这个报文我都会发起攻击,这个报文我会发送多次,请协同作战。”

若B接收到A发送的报文。根据A发送的报文可以得出,A一定会在明天正午选择进攻。所以此时B没有其他选择,若A进攻,B也只有进攻。

A已经发送明日正午一定进攻的报文,所以A也没有其他选择,A也会选择进攻。

假设发送一次报文被对方收到的概率为a,则发送n次至少有一次被收到的概率为P=1-(1-a)^n。

我们知道:a的值固定,当逐渐变大时,P逐渐趋向于1。

通过上述分析可以看出,书中方案及我们设计的两种改进方案均无法做到100%可靠。由此可见,在通信信道质量没有保证的情况下,设计出绝对可靠的通信协议是不可能的。但在实际生活中,n的值不可能趋向于无穷,所以无法找到完全可靠的协议。

6 结 语

在《网络原理》课程中,除了上述探讨的蓝、白军进攻问题,TCP连接建立过程中的三次握手协议同样存在可靠性问题。三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕后客户端和服务器进入ESTABLISHED状态,完成三次握手。连接建立后,客户端和服务器就可以开始进行数据传输了。

三次握手协议也存在一定的可靠性缺陷,但在实际应用中,不能只顾可靠性而忽视可行性和工作效率。三次握手中,若其中某次握手失败,也难以保障较好的可靠性。三次握手的设计,就是放弃一定的可靠性,换取较大的通讯效率。

参考文献

[1]谢希仁.计算机网络.(第四版)[M].北京: 电子工业出版社, 2006.

[2]彭澎.计算机网络基本原理[M].武汉: 华中理工大学出版社, 1999.

[3]熊桂喜,王小虎.计算机网络[M].北京:清华大学出版社,1998.

[4]王新伟.提高计算机网络可靠性的方法研究[J].电脑知识与技术,2013,9(21):4818-4820.

猜你喜欢

协议问题探究可靠性
可靠性管理体系创建与实践
5G通信中数据传输的可靠性分析
基于数字化变电站SV报文通信可靠性问题研究
如何在初中化学课堂运用体验式教学模式
基于可靠性跟踪的薄弱环节辨识方法在省级电网可靠性改善中的应用研究
可靠性比一次采购成本更重要