3.2.1 网络协议的概念
1.协议
在介绍协议的概念之前,先来看看日常活动中经常碰见的场景。例如,当一个外国人想要向你寻求帮助时,他以“Can you speak English?”这类问话开始,希望与对方建立通信,此时这个“Can you speak English?”相当于发起一个通信请求。而另一方可能会以“Yes”作为回应,预示着你们的对话可以继续进行。当然他也许会收到“对不起,听不懂”或者“现在6点”这样的回复,按照约定俗成的规约这意味着你们的对话可能无法继续,他应该转向其他人进行询问。这里的语言,如英语或汉语,就是协议。当对方以“Yes”作为回应时,说明通信双方执行着相同的协议:英语,寻求帮助的对话才可以继续下去。但如果收到非英语的响应,则双方执行的协议不同,通信无法建立。
在计算机网络中,通信发生在不同系统的实体之间。通信过程中至少会涉及发送信息的一方与接收信息的一方。而所有参与通信的实体,必须在所交换的数据格式、传输顺序、收到相应报文的处理方式上达成一致。这里的报文是指网络中交换与传输的数据单元。为确保这些通信细节的一致性,必须制定一套精密的网络通信规约,并要求所有通信方都遵守。这些为进行网络数据交换而建立的规则、标准或约定称为网络协议(Network Protocol),简称为协议。凡是涉及两个或多个通信的实体都受协议的制约,并且这些实体必须使用相同的协议。
2.协议的三要素
网络协议主要由以下3个要素组成:
·语法——网络中数据交换的结构或格式;
·语义——网络中交换的数据各部分的解释以及由此采取的响应动作;
·定时——事件实现顺序的详细说明,如数据应何时发、应当发多快等。
下面以网络中两个节点之间传输数据为例说明协议的三要素。首先,节点A发送的数据可以分为3个部分。其中第1个8比特和第2个8比特都是地址域,其余比特则是数据部分。这就是语法的例子,它指明了数据的结构。其次,第1个8比特放置的是节点A的IP地址,而第2个8比特放置的则是下一跳节点B(如负责转接的路由器)的IP地址。可以看出这是在解析每一部分数据内容的含义,即为语义的例子。最后,规定节点A在什么时刻发送数据,而接收方应在什么时刻接收数据,这个则是定时。