常见接口协议解释

目录

网络协议

TCP和UDP协议的区别

Restful软件架构风格

RPC协议


网络协议

7层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

TCP/IP四层模型:数据链路层、网络层、传输层、应用层。

数据链路层协议:以太网协议

网络层协议:IP、ARP、RARMP、ICMP、ICMP、IGMP

传输层:TCP、UDP

应用层:HTTP、FTP(文件传输协议)、DNS(域名解释)、TELNET(远程终端协议)、STMP(发邮件协议)、POP3(收邮件协议)

具体如下图所示

生活中上网的例子做个介绍

手机wifi通过路由器连接到小区的交换机路由器一层一层往上连,最后到达骨干网,骨干网通过跨地域传输,会传输到很多地方,例如邮件服务器,网站服务器、文件系统服务器,通过不同路由到达目标服务,目标服务器有高可用架构进行分流,分流到某个服务器上去,获取到服务最后原路返回。这就是我们平常使用网站,使用互联网服务整体数据的一个流向。

手机流量上网,其实也是类似的,不过走的是另外一种路由。

对于不同服务,对应着不同协议

FTP、HTTP、SMTP、POP3:使用的是HTTP协议

TFTP:使用的是UDP协议

DNS:HTTP和UDP协议都使用

TCP和UDP协议的区别

TCP:面向连接、可靠传输(需要确认,错误重传)、基于报文、拥堵控制,适用可靠性高的场景。

UDP:非连接、不可靠、基于字节流,实现简单,适用于实时性高的场景,比如语音传输、视频传输

Restful软件架构风格

借助HTTP协议的基本请求方法代表资源的状态切换

post:新增或者更新

get:获取资源

put:更新资源

delete:删除资源

下面以github的rest API文档为例

接口的开发,基本都是遵循类似的restful软件架构风格规范

RPC协议

RPC协议的全称:remote procedure call 以本地代码调用的方法实现远程执行。

例如:我们用的终端ssh操控远程服务器

只需要关注调API就可以了,不需要关心中间采用了什么样的协议传输通信。

阿里的Dubbo:java上的高性能RPC框架,Apache开源项目

谷歌的gRPC:高性能RPC框架

Facebook的Thrift:多语言RPC框架

猜你喜欢

转载自blog.csdn.net/chuancheng_zeng/article/details/110304803