This document describes version 5 of the Prospero protocol, as implemented for the forthcoming Alpha.5.3 release. Communication with directory servers uses a reliable delivery protocol described in Appendix . Requests and responses are human readable commands and multiple commands may be sent in a single message.
Prospero is implemented on top of a message-based protocol to reduce the overhead that would otherwise be incurred when establishing connections to multiple directory servers. The decision to use a message protocol directly, instead of through a higher level mechanism such as remote procedure call, was made for reasons of portability. We did not want Prospero to depend on another protocol, software package, or other resource, unless that resource was almost universally supported by every computer on the Internet.
The use of humanly readable commands in the protocol has several advantages. It eliminates problems with byte ordering, and it makes future changes or additions to the protocol easier to incorporate while maintaining compatibility across versions; new commands or additional options to existing commands can be easily added.
The ability to request multiple operations in a single message improves performance, and it provides a simple way to request that a collection of operations (on a single server) be performed atomically.
The concept of an ``attribute'' appears frequently in the following command description. For a discussion of attributes, read appendix of this document.