Messages are characterized by a length, a type and an id. The message length is measured in bytes. There is no limit on the length of messages between nodes. Zero-length messages are allowed.
The type of a message is an integer determined by the programmer, before it is sent. Normally, only message types in the range from 0 to 999999999 should be used. A process can use the type selection parameter to receive only messages of specific types.
The id is an identifier returned by the system. It can be used to check for the completion of asynchronous messages.
There are two different types of message passing: synchronous and asynchronous.