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