网络协议的概念

来源:互联网 发布:老黄牛qq群发软件 编辑:程序博客网 时间:2024/06/10 21:06

1 著名的协议举例

占据两个山顶的蓝军与驻扎在这山谷的白军作战。力量对比是:一个山顶上的蓝军打不过白军,但两个山顶的蓝军协同作战就可战胜白军。一个山顶上的蓝军拟于次日正午向白军发起攻击。于是发送电文给另一山顶上的友军。但通信线路很不好,电文出错的可能性很大。因此要求收到电文的友军必须发送确认电文。但确认电文也可能出错。试问能否设计出一种协议,使得蓝军能实现协同作战因而一定(即100%)取得胜利?

这里写图片描述

  • 这样无限循环下去,两边的蓝军都始终无法确认自己最后发出的电文对方是否已经收到
  • 没有一种协议能够使蓝军能100%获胜
  • 这个例子告诉我们,看似非常简单的协议,设计起来要考虑的问题还是比较多的

2 计算机网络协议

计算机网络协议

硬件(主机、路由器、通信链路等)是计算机网络的基础,计算机网络中的数据交换必须遵守事先约定好的规则。

任何通信或信息交换过程都需要规则,对于网络通信而言:通信主体是“机器”,交换“电子化”或“数字化”消息,计算机网络的所有通信过程都必须遵守某种/些规则–协议。

网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。

协议规定了通信实体之间所交换的消息的格式、意义、顺序以及针对收到信息或发生的事件所采取的“动作”(actions)。

网路协议学术定义如下:

  • 计算机网络和分布式系统中互相通信的对等实体之间交换信息时必须遵守的规则的集合
  • 负责在网络上建立通信通道和控制通过通道的信息流的规则
  • 协议依赖于网络体系结构,由硬件和软件实现

网络体系结构

  • 指通信系统的整体设计方法,是计算机之间相互通信的层次,以及各层次中的协议和层次之间接口的集合,它为网络硬件、软件、协议、存取控制和网络拓扑提供了标准。

计算机网络协议的组成

  • 语法(Syntax):用于确定协议元素的格式,即数据与控制信息的结构和格式以及信号电平。
  • 语义(Semantics):用于确定协议元素的类型,即规定了通信双方需要发出何种控制信息,完成何种动作,以及做出何种应答,另外还包含了差错控制。
  • 时序(Timing):用于确定通信速度的匹配和时序,即对事件实现顺序的详细说明。

协议规范了网络中所有信息发送和接收过程,协议举例:TCP、IP、HTTP、Skype、802.11。

Internet协议标准如下:
RFC:Request for Comments,请求评价。
IETF:互联网工程任务组(Internet Engineering Task Force)。

协议必须将各种不利的条件事先都估计到,而不能假定一切情况都是很理想和很顺利的。必须非常仔细地检查所设计协议能否应付所有的不利情况。应当注意:事实上难免有极个别的不利情况在设计协议时并没有预计到。在出现这种情况时,协议就会失败。因此实际上协议往往只能应付绝大多数的不利情况。

协议的开发是一个很复杂的过程。这里涉及到:考虑数据通信时的各种利弊条件、考虑数据在通信线路上传输的形式,并且不能与现有的协议互相冲突、考虑协议不能过分冗余、协议不能不安全,需要强加密,考虑硬件是否能够实现,考虑编程过程中有哪些漏洞存在,是否适应现今的各种协议……

3 网络协议的发展过程

  • 1974年,美国IBM公司宣布其研制的系统网络体系结构SNA
  • 随后,DEC公司研制数据网络体系结构DNA
  • 两种体系互相不兼容,不能通信,问题日益严重,新的结构开发千钧一发
  • 为了使不同体系结构的计算机网络都能互联,国际标准化组织ISO 1977 年成立了专门机构研究该问题。不久,他们就提出了一个试图使各种计算机在世界范围内互联成网的标准框架,即著名的开放系统互联基本参考模型OSI。

这里写图片描述

SNA:IBM公司独立开发的适合于自己公司的网络体系结构,System Network Architecture。
DNA:DEC公司独立开发的适合于自己公司的网络体系结构,Data Network Architecture。
OSI/RM:由ISO(国际标准化组织)统一规定的互联网参考模型,Open System Interconnection/Reference Model(开放系统互连参考模型)。