3.1 LongLived Encapsulation Protocol Client Details

LongLived Encapsulation Protocol is an HTTP based protocol used for firewall<6> and proxy traversal<7>. It provides an HTTP transport which can also negotiate and authenticate with HTTP proxies. LongLived Encapsulation is designed to specifically be used with HTTP proxies that do not buffer inbound or outbound proxy traffic.

LongLived Encapsulation provides a virtual connection composed of two HTTP sessions: the first is a GET session and the second is a POST session. Each of these HTTP sessions is layered on a dedicated TCP connection. The POST session is used to send SSTP commands and data from the client to the server, while the GET session is used by the client to receive SSTP commands and data from the server. Each session can send or receive up to the maximum of 0x7ffff000/(2147479552 decimal) bytes of data, as specified by the content length.

If the send operation on a POST session would exceed the content length, the client MUST close the GET and POST sessions and then reestablish a new virtual LongLived connection. If the next GET session response would exceed the maximum number of bytes, then the server MUST close the GET and POST sessions. The client SHOULD respond to the server’s closing of the virtual LongLived connection by initiating new GET and POST requests.