计算机网络中的数据交换必须遵守事先约定好的规则。
这些规则明确规定了所交换的数据的格式以及有关的同步问题(同步含有时序的意思)。
网络协议(network protocol),简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。
开始之前可以先大概了解一下计算机网络中的网络基础与通信原理,链接如下:
https://cloud.tencent.com/developer/article/2392811
由此可见,网络协议是计算机网络的不可缺少的组成部分。
这两种不同形式的协议都必须能够对网络上信息交换过程做出精确的解释。
ARPANET的研制经验表明,对于非常复杂的计算机网络协议,其结构应该是层次式的。
主机 1向主机 2 通过网络发送文件。可以将要做的工作进行如下的划分:
第一类工作与传送文件直接有关。
两个主机将文件传送模块作为最高的一层,剩下的工作由下面的模块负责。
网络接入模块负责做与网络接口细节有关的工作,例如:规定传输的帧格式,帧的最大长度等。
使相应层次对等方的通信更加可靠。
发送端的发送速率必须使接收端来得及接收,不要太快。
发送端将要发送的数据块划分为更小的单位,在接收端将其还原。
发送端几个高层会话复用一条低层的连接,在接收端再进行分用。
交换数据前先建立一条逻辑连接,数据传送结束后释放连接。
计算机网络的体系结构(architecture)是计算机网络的各层及其协议的集合。
体系结构就是这个计算机网络及其部件所应完成的功能的精确定义。
实现(implementation)是遵循这种体系结构的前提下用何种硬件或软件完成这些功能的问题。
体系结构是抽象的,而实现则是具体的,是真正在运行的计算机硬件和软件。
因此往往采取折中的办法,即综合 OSI和TCP/IP 的优点,采用一种只有五层协议的体系结构
OSI参考模型把对等层次之间传送的数据单位称为该层的协议数据单元 PDU(ProtocolDataUnit)。这个名词现已被许多非OSI标准采用。
任何两个同样的层次把数据(即数据单元加上控制信息)通过水平虚线直接传递给对方。这就是所谓的“对等层”(peer layers)之间的通信。
各层协议实际上就是在各个对等层之间传递数据时的各项规定。
实体(entity)表示任何可发送或接收信息的硬件或软件进程。
协议是控制两个对等实体进行通信的规则的集合。
在协议的控制下,两个对等实体间的通信使得本层能够向上一层提供服务。
要实现本层协议,还需要使用下层所提供的服务。
协议的实现保证了能够向上一层提供服务。
本层的服务用户只能看见服务而无法看见下面的协议。即下面的协议对上面的服务用户是透明的。
协议是“水平的”,即协议是控制对等实体之间通信的规则。
服务是“垂直的”,即服务是由下层向上层通过层间接口提供的。
协议必须把所有不利的条件事先都估计到,而不能假定一切都是正常的和非常理想的。
看一个计算机网络协议是否正确,不能光看在正常情况下是否正确,还必须非常仔细地检查这个协议能否应付各种异常情况。
TCP/IP 体系结构的另一种表示方法
实际上,现在的互联网使用的 TCP/IP 体系结构有时已经发生了演变,即某些应用程序可以直接使用IP层,或甚至直接使用最下面的网络接口层。