计算机网络&互联网应用商业协议 --- 基本脉络

发布时间 2023-10-06 18:40:26作者: 虎头小黑

计算机网络层次:

1. 计算机互联网传输通信最早由 OSI(Open System Interconnect)七层规范。在实际商业应用中,基本采用五层规范。

  物理层、链路层、网络层、传输层、应用层。

  物理层、链路层不用考虑;应用层( 程序接口 )暂时不用管。

  

  网络层协议负责 为互联网中的不同主机之间提供通信;传输层负责 为主机之间的不同进程提供通信。

1.2 网络层

  使用 IP 协议,该协议实现了在整个互联网中唯一确定一台主机的规范。属于 互联网&主机 之间的网络边界。

1.3传输层

  使用 TCP协议或UDP协议,实现了进程之间数据传输的规范。

  TCP(Transmission Control Protocol):

    安全可靠  例如:jdbc协议,类似于 打电话,双方接通之后,才开始通信。

    双方都要 各自创建 输入流&流输出,分别用来向对方 接收&发送 信息。

  UDP(User Datagram Protocol):

    性能更佳  适合注重流畅性的场景,类似于 发短信,发了丢过去就不管了,结束了。

  几乎所有协议都是基于 TCP/IP、UDP/IP 协议 封装的上层协议。例如 HTTP协议,本质就是 TCP/IP 协议封装的短连接协议。

 

场景示例:

https://blog.51cto.com/u_15127555/3460494

https://blog.csdn.net/Ian0903/article/details/79475485

 

2.互联网商业应用通信协议

  AJAX通过xmlHttpRequest对象请求服务器,而http请求通过httpRequest对象请求服务器。Ajax和前端交互有关。

  RPC接口即相当于调用本地接口一样调用远程服务的接口;HTTP接口是基于http协议的post接口和get接口

  HTTP服务主要基于HTTP协议(URL传参调用),而RPC服务主要基于 远程过程调用,直接基于的传输层的TCP协议。

  一般来说,RPC 服务主要是针对大型企业的且一般使用Maven管理,而 HTTP 服务主要是针对小企业的,因为 RPC 效率更高,而 HTTP 服务开发迭代会更快。

  

2.1当前流行的rpc框架: 

  ①gRPC 是 Google 最近公布的开源软件,基于最新的 HTTP2.0 协议,并支持常见的众多编程语言。

    我们知道 HTTP2.0 是基于二进制的 HTTP 协议升级版本,目前各大浏览器都在快马加鞭的加以支持。

    这个 RPC 框架是基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。

  ②Thrift 是 Facebook 的一个开源项目,主要是一个跨语言的服务开发框架。它有一个代码生成器来对它所定义的 IDL 定义文件自动生成服务代码框架。

    用户只要在其之前进行二次开发就行,对于底层的 RPC 通讯等都是透明的。不过这个对于用户来说的话需要学习特定领域语言这个特性,还是有一定成本的。

  ③Dubbo 是阿里集团开源的一个极为出名的 RPC 框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔是及其鲜明的特色。

    同样的远程接口是基于 Java Interface,并且依托于 Spring 框架方便开发。可以方便的打包成单一文件,独立进程运行,和现在的微服务概念一致。