服务和协议虽是截然不同的概念,但是二者却经常混淆在一起,理解二者的区别非常重要,有必要在此专门强调。服务是指某一层向它的上一层提供的一组原语或操作,服务定义了该层代表其用户执行哪些操作,但是它并没有涉及如何实现这些操作;服务也会涉及相邻两层之间的接口,其中低层是服务提供者,上层就是服务用户。
协议是一组规则,用来规定同一层上的对等实体之间交换消息或分组的格式和含义。实体利用协议来实现其服务定义,根据网络分层原则,实体尽管可以自由地改变协议,但不能改变服务,因为服务对于用户是可见的,而协议则是不可见的。从这个视图出发,服务和协议又是完全分离的。换言之,服务涉及上下相邻层间的接口,而协议则涉及不同机器上对等实体之间发送的数据分组,如下图所示。
为了更好地理解,可以用编程语言来对这两个概念做一个类比。服务好像是面向对象语言中的抽象数据类型或者对象,它定义了在对象上可以执行的操作,但是并没有规定这些操作该如何实现;而协议则对应于对象方法的代码流程。
资料来源:《计算机网络原理》,文章链接:https://developer.aliyun.com/article/726189
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。