3.1.2.3 KeepAlive Timer
The HTTP Encapsulation protocols do not define a KeepAlive timer. The underlying encapsulated protocol MUST implement a KeepAlive timer. The SSTP protocol uses the KeepAlive mechanism provided by the SSTP_NOOP command (see [MS-GRVSSTP] section 2.2.13)<9>.
The keepalive message serves to keep the LongLived connection from being closed by firewalls and proxies. All LongLived Connections SHOULD use KeepAlive timers, regardless of whether the client detects if a connection is a proxy connection or not, as some firewalls and proxies are undetectable. The recommended client KeepAlive timeout value is 45 seconds<10>. KeepAlive timer event processing is handled as specified in section 3.1.6.3.