RPC’s calling semantics
RPC’s calling semantics
- Every client request has a transaction ID (xid)
- randomly generated 32-bit integer
- TCP and UDP return the xid sent by the client
- client-side TCP and UDP code check that xid matches before returning to the upper layers
- provides at-most-once semantics
- UDP server-side functions have a cache option to avoid processing duplicate xid’s
- approximates at-most-semantics
- only approximates because the cache is lost if the server crashes