目录
网络协议
TCP和UDP协议的区别
rest风格的软件体系结构样式
RPC协议
网络协议7层模型:物理层、数据链路层、网络层、传输层、链路层、表示层、APP应用层
TCP/IP四层模型:数据链路层、网络层、传输层、APP传输层。
数据链路层协议:以太网协议
网络层协议: IP、ARP、RARMP、ICMP、ICMP、IGMP
传输层: TCP、UDP
APP应用层: HTTP、FTP、DNS、TELNET、STMP、POP3
具体情况如下图所示
介绍生活中连接网络的例子
手机wifi通过路由器连接小区的交换机路由器一层一层地向上连接,最后到达骨干网。 主干网通过跨区域传输,传输到邮件服务器、站点服务器和文件系统服务器等多个地方。 通过不同的路由到达目标服务,目标服务器可以具有高可用性体系结构分流,分流到一个服务器,然后返回到服务的最后一个路由。 这就是我们平时使用网站,使用整个互联网服务数据的流程。
手机流量的互联网连接,其实也很相似,只是通过了另一种渠道。
针对不同的服务,对应不同的协议
FTP、HTTP、SMTP、pop3:使用HTTP协议
TFTP :正在使用UDP协议
DNS :同时使用http和UDP协议
TCP和UDP协议的差异TCP :应用面向连接、可靠的传输(需要确认、错误重发)、基于消息的拥塞控制、可靠的场景。
UDP :无连接、可靠性低,基于字节流,实现简单,适用于语音传输、视频传输等实时性高的场景
rest风格的软件体系结构的样式使用HTTP协议的基本请求方法来表示资源的状态切换
post :添加或更新
get :获取资源
put :更新资源
删除:删除资源
以github的rest API文档为例
接口的开发基本遵循类似的rest风格的软件体系结构的样式规范
RPC协议RPC协议的全名: remote procedure call通过本地代码调用的方法实现远程执行。
例如,我们使用的终端ssh操作远程服务器
只需关注调整API,而不需要在意中间采用什么协议来传送通信。
蚂蚁Dubbo:java上的高性能RPC框架,Apache开源项目
谷歌的gRPC :高性能RPC框架
Facebook的Thrift :多语言RPC框架