RPCプロセスは、プロシージャ・コール・インタフェースを介して相互作用することを指定するIPCメカニズムです。
ビレル、アンドリュー、そしてブルース・ネルソン。
なぜRPC?
RPCのメリット
RPCの要件
RPCの構造
結果が計算されると、それは逆の経路がかかります。これは、最初にその結果のバッファを作成するサーバーのステップを通過します、
それは、RPCの実行時にクライアント側に到着し、適切なクライアント接続を介して戻って応答を送信します。
パケットが受信されます。結果は、クライアントのアドレス空間にメモリのどこかに置くこと、そして最終的に手順は、クライアント・プロセスに戻ります、クライアント側スタブによってそれらのパケットから抽出されます。
Before that, the client process will be blocked, and the application will be suspended here.
https://zhuanlan.zhihu.com/p/45700301
Steps in RPC
https://www.zhihu.com/question/23995948
目前linux进程间通信的常用方法是什么(pipe?信号量?消息队列?)?
Interface Definition Language
https://www.jianshu.com/p/959030de7f1c
Specifying an IDL
XDR (Sun RPC) Example
Marshalling
The encoding specifies the data layout when it's serialized to the bytee stream, so that anybody that looks at it can actually make sense of it.
Unmarshalling
Binding and Registry
registry => yellow pages
Visual Metaphor
https://blog.csdn.net/qq_18425655/article/details/51955674
面试题:TCP协议与UDP协议的区别
Pointers in RPCs
Handling Partial Failures
RPC Failure Quiz
RPC Design Choice Summary
What is SunRPC?
SunRPC Overview
Sun RPC Documents (maintained by Oracle)
SunRPC XDR Example
Compiling XDR
Summarizing XDR Compilation
To complete the quiz, download the square.x file (if following along with the hints, you will need to rename it to square.x), and run rpcgen!
You can run rpcgen on the Ubuntu VM provided with this class. If you have not setup the Ubuntu VM yet, follow the Ubnutu VM Setup Instructions.
Quiz Errata
There are two issues with the rpcgen commands. First, you should use the following format:
- rpcgen square.x [flags]
And, because the flags may be difficult to read, here are the full commands:
- rpcgen square.x -C
- rpcgen square.x -C -M
SunRPC Registry
SunRPC Binding
XDR Data Types
RFC 4506 (Defines XDR Data Types)
XDR Routines
_freeresult procudure => another user defined procedure => user specifies what are all the different data structures, or pieces of state, that need to be freed up after runtime is done.
Encoding
XDR Encoding
Java RMI