1.3 Overview
Session Multiplex Protocol (SMP) is an application protocol that facilitates session management by providing a mechanism to create multiple lightweight communication channels (sessions) over a lower-layer transport connection. SMP does this by multiplexing data streams from different sessions on top of a single reliable stream-oriented transport.
SMP is beneficial in situations where database connections from the client and server are synchronous. In this context, "synchronous" means that the client application can only have one outstanding command or transaction per connection. Rather than incur the expense of creating multiple connections to the server, SMP is capable of simultaneously executing multiple database queries over a single connection.
SMP provides the following:
The ability to interleave data from several different sessions and preserve message boundaries.
A sliding window-based flow-control mechanism to facilitate fairness among sessions.
Note SMP is defined as a transport-independent mechanism. It relies on an underlying transport mechanism such as Transmission Control Protocol (TCP), as specified in [RFC793], to ensure byte alignment, loss detection and recovery, and reliable in-order delivery. The scheduling algorithm that enforces fairness between sessions is an implementation issue for the application that implements SMP.
The following diagram shows typical SMP communication flow for an arbitrary session.

Figure 1: Example of a communication flow in SMP