通过通信链路互联主机与网络设备是构建计算机网络的硬件基础,但仅仅实现了网络硬件设备的互连,还不足以确保通信实体间进行正常的数据交换。如同道路交通系统一样,修好了道路,建好了路网,只是具备了硬件基础,为了使道路交通系统顺畅运行,还必须有红绿灯和交通标志以及交通规则,道路上行驶的车辆都需要遵循这些规则。计算机网络中的实体在进行数据交换的过程中也必须要遵循一些规则或约定这些规则或约定就是网络协议。
协议是网络通信实体之间在数据交换过程中需要遵循的规则或约定,是计算机网络有序运行的重要保证。在日常生活中,我们在交流过程中也在有意或无意地遵循着某种“协议”,只不过生活中的通信实体是“人”,而网络中通信的实体是“机器”或“软件程序”。我们在不同人之间、不同场合、不同情境下,交流沟通时可能会遵循不同的规则或约定,类似地,网络中的通信实体间进行数据交换时也可能会遵循不同的协议。事实上,计算机网络中的所有通信过程都会遵循某个或某些协议,或者说,计算机网络中的所有通信过程都是有某个或某些协议所控制。计算机网络中存在很多协议,例如,HTTP、TCP、IP、ARP等等。
概括的说,协议约定了实体之间交换的信息类型、信息各部分的含义、信息交换顺序以及收到特定信息或出现异常时应采取的行为。不同的协议其功能和作用都不同,实现机制可能也不同,有的协议很简单,有的协议很复杂。但是,任何一个协议都会显示或隐式的定义三个基本要素:语法(syntax)、语义(semantics)和时序(timing),称为协议三要素。
语法
语法定义实体之间交换信息的格式与结构,或者定义实体(比如硬件设备)之间传输信号的电平等。
语义
实体之间交换的信息,除了协议用户需要传输的数据之外,通常还包括其他控制信息,比如地址信息等。语义就是定义实体之间交换的信息中需要发送(或包含)那些控制信息,这些信息的具体含义,以及针对不同含义的控制信息,接收信息端应如何响应。另外,有的协议还需要进行差错检测,这类协议通常会在协议信息中附加差错码等控制信息。语义还需要定义彼此采用何种差错码,以及才去何种差错处理机制等。
时序
时序也成为同步,定义实体之间交换信息的顺序以及如何匹配或适应彼此的速度。