Share via


2.3.4 Session Multiplex Protocol

Session Multiplex Protocol [MC-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 connection.

SMP is useful for situations in which database connections from the client and server are synchronous, that is, the client can support only one outstanding command or transaction per connection. Rather than create multiple connections to the server, SMP can simultaneously execute multiple database queries over a single connection. With SMP, connections can interleave data from several different sessions and preserve message boundaries.

SMP depends on an underlying reliable stream-oriented network transport. Optionally, Secure Sockets Layer (SSL)/Transport Layer Security (TLS) ([SSL3]/[RFC2246] TLSv1.0, [RFC5246], TLSv1.2, and [RFC8446] TLS1.3) can be inserted between SMP and the transport layer to provide data protection.

The Tabular Data Stream protocol [MS-TDS] depends on SMP when the Multiple Active Result Sets (MARS) feature [MSDN-MARS] is requested. The Tabular Data Stream protocol is an example of a higher-layer protocol for SMP.

SMP is appropriate for multiplexing several sessions over synchronous connections where network or local connectivity is available.