Protocols and Protocol Suites

Jump to: navigation, search

Software and electrical engineers model, design, and implement inter-process communications in layers. Here you can see a simple 5-layer model commonly favored by those who work with IP-based protocols.[1][2] There are several other common models, such as the 7-layer OSI model.[3] A conversation between Process 1 and Process 2 can be discussed at any layer and, for each layer, it must adhere to agree upon protocol(s) for that layer. For example, if Process 1 were a web browser, Process 2 were a web server, and the conversation a simple web-page request, then the application-layer protocol would be HTTP, the Transport-layer protocol would be TCP, and the Network-layer protocol would be IP.

Besides providing a convenient way for discussing protocols, layered models establish a basis for creating substitutable software communication subsystems. Since we are addressing ACPs, we do not deal directly with design and implementation of these software components. Nevertheless, we assume that appropriate communication subsystems exist at the transport layer for streaming of unstructured data and transmitting datagrams (semi-structured data). Our set of four Communication Idioms rely on this reasonable assumption.

At the application layer, a protocol governs why, when, and how processes interact with each other to accomplish a common goal. Specifically, an ACP should define the following:

  1. the processes involved in the interaction in terms of the roles they play during a conversation;
  2. the possible sequences of messages for valid conversations;
  3. the structure of the messages;
  4. the meaning of the messages; and
  5. relevant behaviors of the participating processes.

Because processes in a distributed system typically have to communicate with each other for many different tasks, e.g., authentication, resource sharing, and coordination, it is common for a distributed system to require multiple ACPs, i.e., an ACP suite.

Return to Theoretical Background and further reading


  1. G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair, Distributed Systems: Concepts and Design, 5 edition. Boston: Pearson, 2011.
  2. C. White, Data Communications and Computer Networks: A Business User’s Approach, 7 edition. Boston, MA: Cengage Learning, 2012.
  3. “ISO/IEC 10026-1:1992 - Information technology -- Open Systems Interconnection -- Distributed Transaction Processing -- Part 1: OSI TP Model.” [Online]. Available: [Accessed: 20-Apr-2016].