红军协同对抗蓝军问题
在网络协议中,有这样一个经典问题:
红军协同对抗蓝军问题:
处于两地的红军A与红军B要与蓝军作战,但单独的红军A或红军B打不过蓝军,而红军A与红军B联合对抗蓝军则100%取得胜利。
于是红军A与红军B需要商议在何时进攻,但由于无线网络信号质量很差,无法确保红A与红B发出的消息能够送达对方,在此情境下,能否设计出一种可靠的通信协议使得红军一定取得胜利(即通信信道不完全可靠的情况下,设计出完全可靠的通信协议)。
分析
请求确认
假定红A计划与红B在次日凌晨2点共同向蓝军发起攻击,红A必定要向B发送请求进攻报文“次日2点进攻蓝军”,但是由于通信信道的不可靠性,红B必须向红A发送一个确认报文。
在这种协议下,对红A来说,是否发动攻击取决于有没有收到B的确认报文,而对于红B来说,是否发动攻击取决于有没有收到红A的请求进攻信号,如图所示:
而在该协议中红B并不知道红A有没有收到确认报文,假如红B的确认报文丢失,红A只能等待,而红B单独进攻蓝军,最后失败告终。
确认的确认
为了解决该问题,即需要让红B知道红A已收到确认报文,在原来协议的基础上增加:红A收到确认报文后向红B发送“确认的确认”。
在这种协议下,对红A来说,收到红B的确认报文后决定发起进攻,而对红B来说,在收到“确认的确认”报文后决定发起进攻。
但实际上“确认的确认”报文也可能丢失,而红A并不知道B是否收到了“确认的确认”,因此,如果“确认的确认”丢失,会导致红A单独作战。
……
为解决以上问题,需红B再次发送对“确认的确认”的确认报文,但这同样会导致相同的问题,无限循环下去。
总结
在不可靠通信信道上无法设计出一种完全可靠的通信协议,因为对最后一次确认报文的发送,发送方无法知晓接收方是否收到,因而发送方无法判定约定是否有效。
红军协同对抗蓝军问题相关推荐
- “华为杯”第十七届中国研究生 数学建模竞赛-【华为杯】D题:无人机集群协同对抗(附优秀论文及python代码实现)
目录 摘 要: 1 问题重述 1.1 问题背景 1.2.1 问题一:逃逸区与最优突防策略求解
- 2020年中国研究生数学建模竞赛D题——无人机集群协同对抗
- “华为杯”研究生数学建模竞赛2020年-【华为杯】D题:无人机集群协同对抗(附优秀论文及MATLAB代码)
目录 摘 要: 一.问题重述 1.1 研究背景 1.2 已知信息 1.3 问题描述 二.模型假设</
- 智能集群理论优化控制_无人机集群对抗研究的关键问题
1)无人机集群协同对抗演化过程机理及其表述.由于集群对抗中信息的多元化和不完全.不确定性,对抗系统是一个复杂的动态随机过程,空战对抗态势随着时空不断演化,每个无人机作为一个智能体必须依据不断变化的态势 ...
- 汽车和山羊问题matlab仿真_Matlab----无人机集群对抗中的关键问题和仿真平台(开发中)案例...
无人机集群对抗,是自动驾驶中路径规划的新问题,并且连续两年出现在最近的中国大学生数学建模竞赛中.可见,这是一个急需解决的数学问题(体现了官方的军事战略意志),同时,还没有成熟解决方案的问题. 本人在自 ...
- 可信安全网络 —— 安全左移之DDoS对抗
文|宙斯盾DDoS防护团队 Rains DDoS的开始 互联网对人类文明的进步影响,不亚于蒸汽机发明对人类文明的影响. 当人们享受着网络技术进步给生活带来的便利时,也经历了由于底层协议在设计之初对安全 ...
- ISME | 根内生真菌与来自拟南芥和大麦微生物群落协同有益作用
题目:The fungal root endophyte Serendipita vermifera displays inter-kingdom synergistic beneficial eff ...
- goldendb与mysql_GoldenDB ,一个已经全面支撑银行核心系统的国产数据库
摘要:沿用.并存还是替代,一直是银行核心系统数据库转型重点思考的问题.四大行目前主要采用的是沿用与并存的数据库产品战略,在确保稳定的大前提下对新兴数据库技术进行探索研究和实践.相对而言,股份制银行在这 ...
- 阿里巴巴为何坚持对混沌工程的研发迭代?
"阿里巴巴技术团队对混沌工程的研发迭代持续了数年,对于这一技术,阿里为什么如此坚持?" 2010 年底,Netflix 向全世界推出 Chaos Monkey (混乱猴子),该技术 ...
- 『功守道』软件供应链安全大赛·C源代码赛季启示录
背景 软件供应链安全,这可以说是一个新近的人造的概念热词.泛泛来讲,如今的软件系统中任何一方都不是孤立的:套用到企业的场景,就有了供应链的概念. 以典型互联网企业为例.线上生产环境所依赖的操所系统,配 ...
最新文章
- 电脑编程教学_“人工智能”将无处不在,我的孩子要不要学习电脑编程?
- unity判断鼠标移动方向_【反向元气骑士】用unity实现俯视角射击是一种怎样的体验...
- 0/1背包问题——动态规划方法
- solaris下同一机器2个实例之间切换
- 51Nod 1050 循环数组最大子段和
- Java面向对象练习题之字母输出
- mysql命令行执行外部文件
- Asp.Net操作Cookie总结
- localStorage.getItem 往浏览器里面储存数据到本地localStorage
- 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
- 修改Yarn的全局安装和缓存位置
- 后台数据库优化——板机
- AcWing.282石子合并(区间DP)题解
- Javadoc注释的用法
- linux 主机管理平台,Linux虚拟主机管理系统directadmin使用中文教程
- java 保存文件 中文乱码_java文件中文乱码问题
- 数据采集 - 获取【码市】最新发布需求,并实时通知用户 案例二
- Vue2学习笔记1 - win10下安装vue开发环境
- 我们进入微服务世界的旅程-以及我们从中学到的东西。
- IC卡数据编辑分析软件-M1卡分析助手