A stream used by the smart transport to read and write data from a subtransport.
This provides a customization point in case you need to support some other communication method.
Read available data from the stream.
The implementation may read less than requested.
Write data to the stream
The implementation must write all data or return an error.
Free the stream