layout: post title: “Remote procedure call” comments: true description: “blog” keywords: “dummy content” —

request/reply paradigm

request/reply paradigm是一个在网络中非常广泛的机制 此图代表一个request/reply的工作机制。
UDP离一个完整的request/reply机制差得远,request/reply机制需要对remote host’s process进行识别,并且需要将requests和responses联系起来.
TCP为每一个连接建立一个通道则有些大材小用.
RPC更为贴合

RPC fundamentals

RPC是一个在分布式系统中广为应用的机制.
他基于local procedure call,应用层程序调用函数并不考虑他是否是本地还是远程,程序阻塞直到调用返回.
所存在的俩个问题:

  1. 调用下底层网络的复杂性:例如需要限制信息的大小和有丢失和乱序的可能。
  2. 调用和被调用的程序运行的主机可能有着不同的架构和数据结构
    所以一个完整的PRC涉及到以下俩个组件:
  3. 用来解决信息传递的协议和底层网络可能出现问题的协议
  4. stup compiler:支持将参数打包到request message中,并且将其解析成server端的参数,对于返回值也是如此
    其运行过程如图所示: