Communication messages are the basic element of sending and receiving for transports. All data supplied to and received from a transport must be in the form of communication messages. As such, their structure and format is highly transport-dependent. Typically messages are byte-based but transports which interface to system services such as external CORBA ORBs might be based on pointers to C memory.
All communication messages support the following logical concepts though in some cases they may not be directly implemented by the transport being used:
The contents and header of a message can be in any format as long as that format is understood by the transport being used. For example, for the HTTP transport, the header slot contains an actual HTTP header object and the contents may be a collection of bytes or a deferred computation such as a Block. It is the transport's job to convert communication messages into or from the so-called wire format/protocol required by the actual transport mechanism.