2.14.5. Underlying Protocol Issues

To be done.

Choice of transport: datagram vs connection (reliability, buffering, blocking), multiplexed and bidirectional connections (impact on threading model). Message types: requests, replies, exceptions and control. Message format: headers (size and number of reads and fragmentation), body per type. Encoding: canonical vs flexible vs negotiation, usable buffer vs copying extraction, self descriptive and type description (impact on performance and firewalling), basic types, constructed types, method identification and object identity (dispatching efficiency). Specialized protocols (shared memory, weird transports, pluggability and reasonable common base).