Computer Networks · free preview
Remote Procedure Call
Client-server applications think in requests and replies, a pattern that matches neither datagrams nor byte streams, so remote procedure call lets a program invoke a procedure on another machine as if it were local, client and server stubs marshal arguments into messages and back under interface definitions compiled for each language, the transport beneath retransmits requests and holds replies long enough to answer duplicates, and the deepest question is how many times a retried call may execute, with at-most-once semantics requiring the server to remember requests per channel and zero-or-more acceptable only for idempotent operations, exactly once being unachievable in a world where networks and servers both fail.
1. The Request-Reply Pattern
The Request-Reply Pattern
2. Stubs and Interfaces
Stubs and Interfaces
3. Reliability Without a Stream
Reliability Without a Stream
4. How Many Times May It Run
How Many Times May It Run
5. The missing fit
Why do request-reply applications not simply use TCP for everything?
6. The stub's secret
What does a client stub procedure actually do when application code calls what looks like a local procedure?
7. The remembered reply
A server executes a request and its reply is lost. The client retransmits the request. What must the server do?
8. At-most-once pricing
What does at-most-once execution cost the server?
9. Idempotence
When is zero-or-more semantics acceptable for a remote call?
10. Exactly-once
Why is exactly-once execution unachievable in RPC?
11. The translator's name
What is the generated client-side placeholder called that presents a local procedure signature while packaging arguments for the wire?
12. The wire format step
What is the process called by which a stub packs arguments and results into the agreed network byte format?
13. The shared definition
Stubs for different languages are generated from a single shared description of procedures and types, written in what kind of language?
14. The harmless repeat
What adjective describes an operation that can be executed any number of times with the same effect as one execution?
Practice this interactively
Free account · instant grading · spaced review that schedules itself.
Start this course for free