有关网络协议的非常著名的例子
发布时间:2014/8/17 22:02:03 访问次数:4678
下面是一个有关网络协议的非常著名的例子。
【例1-1】占据东、西两个山顶的蓝军1和蓝军2与驻扎在山谷的白军作战。其力量对比是:TL16C554AFNR单独的蓝军1或蓝军2打不过白军,但蓝军1和蓝军2协同作战则可战胜白军。现蓝 军l拟于次日正午向白军发起攻击。于是用计算机发送电文给蓝军2。但通信线路很不好, 电文出错或丢失的可能性较大(没有电话可使用)。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军1和蓝军2能够实现协同作战因而一定(即100%而不是99.999…%)取得胜利?
【解】蓝军1先发送:“拟于明日正午向白军发起攻击。请协同作战和确认。”
假定蓝军2收到电文后发回了确认。
然而现在蓝军l和蓝军2都不敢下决心进攻。因为,蓝军2不知道此确认电文对方是否正确地收到了。如未正确收到,则蓝军1必定不敢冒然进攻。在此情况下,自己单方面发起进攻就肯定要失败。因此,必须等待蓝军1发送“对确认的确认”。
假定蓝军2收到了蓝军l发来的确认。但蓝军l同样关心自己发出的确认是否已被对方正确地收到。因此还要等待蓝军2的“对确认的确认的确认”。
这样无限循环下去,蓝军1和蓝军2都始终无法确定自己最后发出的电文对方是否已经收到(图1-21)。因此,在本例题给出的条件下,没有一种协议可以使蓝军1和蓝军2能够100%地确保胜利。
下面是一个有关网络协议的非常著名的例子。
【例1-1】占据东、西两个山顶的蓝军1和蓝军2与驻扎在山谷的白军作战。其力量对比是:TL16C554AFNR单独的蓝军1或蓝军2打不过白军,但蓝军1和蓝军2协同作战则可战胜白军。现蓝 军l拟于次日正午向白军发起攻击。于是用计算机发送电文给蓝军2。但通信线路很不好, 电文出错或丢失的可能性较大(没有电话可使用)。因此要求收到电文的友军必须送回一个确认电文。但此确认电文也可能出错或丢失。试问能否设计出一种协议使得蓝军1和蓝军2能够实现协同作战因而一定(即100%而不是99.999…%)取得胜利?
【解】蓝军1先发送:“拟于明日正午向白军发起攻击。请协同作战和确认。”
假定蓝军2收到电文后发回了确认。
然而现在蓝军l和蓝军2都不敢下决心进攻。因为,蓝军2不知道此确认电文对方是否正确地收到了。如未正确收到,则蓝军1必定不敢冒然进攻。在此情况下,自己单方面发起进攻就肯定要失败。因此,必须等待蓝军1发送“对确认的确认”。
假定蓝军2收到了蓝军l发来的确认。但蓝军l同样关心自己发出的确认是否已被对方正确地收到。因此还要等待蓝军2的“对确认的确认的确认”。
这样无限循环下去,蓝军1和蓝军2都始终无法确定自己最后发出的电文对方是否已经收到(图1-21)。因此,在本例题给出的条件下,没有一种协议可以使蓝军1和蓝军2能够100%地确保胜利。
上一篇:相郐两层之间的关系
上一篇:TCP/IP的体系结构