MSP was designed and first implemented in early 2014 as part of New America Foundation - Contractor Agreement #33-OTIUSAID2013 “NAF6”.
MSP allows two applications (“clients”) running on the same or separate Mesh network nodes to establish a reliable stream connection (similar to TCP/IP) which can be used to transfer entire units of data such as files, Rhizome payloads, HTTP sessions, etc.
MSP is implemented as a layer above the connectionless Mesh Datagram Protocol (MDP), and it uses the same network addressing scheme as MDP.
The original MSP implementation was as a client-side library, and was not integrated into Serval DNA. This had the benefits of guaranteeing the separation of protocol concerns and placing the resource obligations on the client (such as buffering, latency and threading), but introduced the issue that the MSP protocol implementation could not be upgraded by simply upgrading Serval DNA.
See the Mesh Streaming Protocol API documentation for more information.