概述
占据两个山顶的蓝军与驻扎在这山谷的白军作战。力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军 。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给 另一山顶上的友军。但通信线路很不好,电文出错的可能性很大。因此要求收到电文的友军必须发送确认电文。但确认电文也可能出错。 试问能否设计出一种协议,使得蓝军能实现协同作战因而一定(即100 %)取得胜利?
这样无限循环下去,两边的蓝军都始终无法确认自己最后发出的电文对方是否已经收到。没有一种协议能够蓝军能 100% 获胜。
这个例子告诉我们,看似非常简单的协议,设计起来要考虑的问题还是比较多的。
网络协议的比喻
网络协议是比较抽象的概念,这里将其余军营中的职级对比着思考。小时候我爱玩军旗,军旗里面有军长、师长、旅长、团长、营长、连长、排长。
Q: 为什么军营里面要分出这么多级别,也相当于网络中要分出这么多层?
其实原因很直接,复杂的系统都要分层。军营是一个复杂的系统,不分层没法打仗;计算机的世界分层的思想无时不刻都在提现。所以,复杂的系统都要分层,计算机网络是一个复杂的结构,它需要分层。
Q: 那么军营中的人是怎么沟通的?也相当于网络是怎么通信的?
一般是这样的:
- 军长和军长商量着办,也就是对等实体的相互通信;相当于网络中同一层之间通信
- 下一级为上一级服务的,比如说排长为连长服务,连长为营长服务;相当于网络中的下一层为上一层服务
- 军长和师长在哪儿商量军情,参谋部啊,参谋部就相当于网络中的 SPI(访问点)
网络协议的概念
- 计算机网络协议
- 负责在网络上建立通信通道和控制通过通道的信息流的规则
- 协议依赖于网络体系结构,由硬件和软件协同实现
计算机网络协议的组成
组成 | 说明 | 类比 |
---|---|---|
语法 | 用于确定协议元素的格式,即数据与控制信息的结构和格式 | 类似于主谓宾、定状补,按照一个规章来沟通 |
语义 | 用于确定协议元素的类型,即规定了通信双方需要发出何种控制信息,完成何种动作,以及做出何种应答 | 满足语法的条件下,说出来的话要有含义,不是疯言疯语 |
定时 | 用于确定通信速度的匹配和时序,即对事件实现顺序的详细说明 | 说话不能太快,也不能太难,这样别人才能听得清楚 |
协议必须将各种不利的条件事先都估计到,而不能假定一切情 况都是很理想和很顺利的。
必须非常仔细地检查所设计协议能否应付所有的不利情况。
- 应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计 到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。
协议的开发是一个很复杂的过程。这里涉及到:考虑数据通信 时的各种利弊条件、考虑数据在通信线路上传输的形式,并且 不能与现有的协议互相冲突、考虑协议不能过分冗余、协议不 能不安全,需要强加密,考虑硬件是否能够实现,考虑编程过 程中有哪些漏洞存在,是否适应现今的各种协议……
1974年,美国IBM公司宣布它研制的系统网络体系结构 SNA.DEC公司研制了他的数据网络体系结构DNA。俩种体系互相不兼容.不能通信.问题日益严重。新的结构开发千钧一发
最后
以上就是唠叨橘子为你收集整理的通信协议的概念网络协议的比喻网络协议的概念的全部内容,希望文章能够帮你解决通信协议的概念网络协议的比喻网络协议的概念所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复