“协议”这个概念我想做过汽车网络的朋友应该都很熟悉,它在各种网络规范和网络标准中都很常见,但令人诧异的是很少有文档对“协议”这个概念提供准确的解释。就如同笔者在此公众号中解释”架构“这个概念一样,我们也先从英文”protocol"的释义中去理解这个概念。英文protocol在柯林斯英语词典中排在第一位的英文释义是”礼节“(Protocol is a system of rules about the correct way to act in formal situations),即protocol是指在某些正式场合下需要遵守的正确的行为规则。比如外交官必须了解在和其它国家代表互动时哪些行为方式是恰当的,以确保有效沟通并不会产生冒犯。protocol排在第二位的英文释义“协议”(A protocol is a set of rules for exchanging information between computers)其实是从最初”礼节“这个解释中衍生和发展而来用于计算机通信技术领域的。计算机之间为了能够有效沟通(正确无误地理解对方发出的数据)也必须在软件和硬件如何实现通信方面达成一致,并形成规则。在OSI参考模型中,协议正式被定义为:针对在不同网络设备的相同层上运行的软硬件之间的通信而制定的一套通信规则与指令。同一设备的不同层之间的通信通过“接口“来实现,每一层都向其上层提供一个明确的接口,也称为纵向通信。协议负责不同设备相同层之间的通信,也称为横向通信,。不同设备之间只有在第一层是实际物理连接在一起的,其他层的软硬件的连接都是逻辑连接。数据从发送设备的第七层向下穿过各层到达第一层,然后通过物理连接发送到接收设备的第一层,再顺着各层协议栈向上穿过各层,最后达到接收设备的第七层。这意味着,除了第一层物理连接之外,所有的横向通信都依赖于纵向通信。
4、协议数据单元和服务数据单元:在OSI参考模型中,协议数据单元(PDU:protocol data unit)和服务数据单元(service data unit)用来描述协议报文。第N层的PDU是指第N层的协议间发送的数据,该数据由第N层的报文头信息和第N+1层封装的报文(称为第N层的SDU或者第N+1层的PDU)构成。