回到首页 / 上级目录

协议、服务与接口

在计算机网络中,协议、服务与接口是三个很重要的概念。我发现这三个概念在高度分层的社会中很常见,遂写下此文。

1. 协议

网络协议(Protocol)是通信计算机双方必须共同遵从的一组约定。只有遵守协议,计算机之间才能相互通信交流。

协议规定了数据格式(语法)、字段含义(语义)及时序(事件执行顺序)等内容。

sequenceDiagram 客户端-->>服务器: HTTP 请求 服务器-->>客户端: HTTP 响应

不仅仅在计算机网络领域,只要是一个群体性系统存在分工合作,那么个体之间就必然存在协议。

2. 服务

计算机网络是一个分层模型,每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。

就拿 TCP/IP 模型来说,连接层(Link Layer)为网际层(Internet Layer)提供服务,而服务的具体实现对网际层来说是透明的。

sequenceDiagram 网际层 -->> 连接层: 请求服务 连接层 -->> 网际层: 提供服务

服务和协议是有区别的:

3. 接口

在 TCP/IP 模型中,任意相邻两层之间都是通过接口进行交互的。

如连接层会将提供给网际层的服务抽象成接口,网际层通过调用接口来享受对应的服务。

flowchart LR A[连接层] -.-> B(接口) -.-> C[网际层]

就拿现实中的 APP 点餐过程举例:

4. 总结

接口的思想特别常见,特别是在科技高速发展的当下。软件是运行在硬件之上的,需要通过硬件提供的接口(Instruction Set)调用服务。大型软件服务常分成前端和后端两个部分,前端通过后端提供的接口(API)调用服务。人们通过手机提供的接口(UI)调用手机服务。

生活中电梯和接口类似,通过电梯我们能从一个地方到达另一个地方。我还记得爷爷第一次乘电梯,和我爸说这门真神奇,一进一出就换了个地方。电梯的原理很简单,我爷爷知道电梯的原理就不感到神奇了,但是现代很多科技是常人一时间无法理解的,未来让我们感到神奇的事情会越来越多。

回归到人类个体,社会分工逐渐细化,大致可以分为两类人:

可以预见未来会有越来越多的接口出现,人类也会获得越来越多的服务。但是服务并不都是免费的,接口拥有者有收费的权利。