协议、服务与接口
在计算机网络中,协议、服务与接口是三个很重要的概念。我发现这三个概念在高度分层的社会中很常见,遂写下此文。
1. 协议
网络协议(Protocol)是通信计算机双方必须共同遵从的一组约定。只有遵守协议,计算机之间才能相互通信交流。
协议规定了数据格式(语法)、字段含义(语义)及时序(事件执行顺序)等内容。
不仅仅在计算机网络领域,只要是一个群体性系统存在分工合作,那么个体之间就必然存在协议。
2. 服务
计算机网络是一个分层模型,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。
就拿 TCP/IP 模型来说,连接层(Link Layer)为网际层(Internet Layer)提供服务,而服务的具体实现对网际层来说是透明的。
服务和协议是有区别的:
- 协议是两个对等实体之间通信的规则,好比现实中两个大老板达成了合作。
- 服务是下层为上层提供的功能调用,好比现实中老板和工人的关系。
3. 接口
在 TCP/IP 模型中,任意相邻两层之间都是通过接口进行交互的。
如连接层会将提供给网际层的服务抽象成接口,网际层通过调用接口来享受对应的服务。
就拿现实中的 APP 点餐过程举例:
- APP 上的点餐页面、支付页面都是接口。
- 用户通过点餐页面点餐,通过支付页面支付,就相当于通过接口调用了点餐服务和支付服务。
- 食物准备过程和派送过程对于用户是透明的,用户不需要知道其中的细节。
- 准时配送的要求属于协议
4. 总结
接口的思想特别常见,特别是在科技高速发展的当下。软件是运行在硬件之上的,需要通过硬件提供的接口(Instruction Set)调用服务。大型软件服务常分成前端和后端两个部分,前端通过后端提供的接口(API)调用服务。人们通过手机提供的接口(UI)调用手机服务。
生活中电梯和接口类似,通过电梯我们能从一个地方到达另一个地方。我还记得爷爷第一次乘电梯,和我爸说这门真神奇,一进一出就换了个地方。电梯的原理很简单,我爷爷知道电梯的原理就不感到神奇了,但是现代很多科技是常人一时间无法理解的,未来让我们感到神奇的事情会越来越多。
回归到人类个体,社会分工逐渐细化,大致可以分为两类人:
- 制定接口者:如产品经理,通过分析用户需求,制定接口为用户提供服务。
- 实现接口者:如开发工程师,实现产品经理设计的接口。
可以预见未来会有越来越多的接口出现,人类也会获得越来越多的服务。但是服务并不都是免费的,接口拥有者有收费的权利。