1.什么是Socket?

grpc不同版本通信 grpc和socket_HTTP


2.socket通信模型

grpc不同版本通信 grpc和socket_RPC_02


3.TCP/HTTP与socket

首先回顾下计算机网络的五(七)层协议:物理层、数据链路层、网络层、传输层、(会话层、表示层)和应用层。那么从协议上来讲:

TCP是传输层协议,主要解决数据如何在网络中传输
HTTP 是应用层协议,主要解决如何包装数据(文本信息),是建立在tcp协议之上的应用。TCP协议是以二进制数据流的形式解决传输层的事儿,但对上层的应用开发极不友好,所以面向应用层的开发又产生了HTTP协议。
而socket 是针对TCP或UDP的具体接口实现,提供了在传输层进行网络编程的方法。

以上内容我们应该都听说的比较多了,下面主要来谈一谈RPC。

4.什么是RPC?

  • RPC(Remote Procedure Call)是远程过程调用,比如说现在有两台服务器A,
    B,一个在A服务器上的应用想要调用B服务器上的应用提供的某个,由于不在两个方法不在一个内存空间,不能直接
  • 调用,需要通过网络表达调用的语义和传达调用的数据。常存在于分布式系统中。
    RPC跟HTTP不是对立面,RPC中可以使用HTTP作为通讯协议。RPC是一种设计、实现框架,通讯协议只是其中一部分。
  • RPC的本质是提供了一种轻量无感知的跨进程通信的方式,在分布式机器上调用其他方法与本地调用无异(远程调用的过程是透明的,你并不知道这个调用的方法是部署在哪里,通过PRC能够解耦服务)。RPC是根据语言的API来定义的,而不是基于网络的应用来定义的,调用更方便,协议私密更安全、内容更小效率更高。
    5.什么是gprc?
    gRPC是谷歌开源的一个 RPC 框架,面向移动和 HTTP/2 设计。
    6.grpc和dubbo都是基于rpc实现的远程过程调用rpc框架

参考:HTTP,TCP, socket,RPC 与gRPC都是啥?基于TCP协议的Socket通信(1)