RPC通信协议

TVM-VTA里采用了RPC进行FPGA的通信,当时不是很理解。 今天在在OS书上又重新看到了RPC这个概念,所以查了一下资料,特此记录。

RPC

远程进程调用协议(Remote Procedure Call, RPC)

  • 实际上是一种计算机网络协议
  • 一种通过网络从远程计算机上请求服务,而不需要了解底层网络技术的协议
  • 它假定了某些传输协议(TCP/UDP)的存在,为通信程序之间携带信息数据,在OSI网络通信模型中跨越了传输层和应用层
  • RPC使得开发网络分布式多程序变得更加容易

完整RPC调用流程如下 rpc

看图即可明白,先在传输层通过TCP/UDP建立起通信,然后应用层通过调用stub将信息进行编码,然后通过本地的RPC Runitime实例传输给远端实例。

参考资料