SSTP: The problem with TCP over TCP, Part 2

All of these items are critical factors contributing to the TCP protocol’s overall success. The problems begin, however, when congestion controls from the outer TCP protocol interfere with those of the inner one and vice versa. TCP divides a data stream into segments which are sent as individual Internet Protocol (IP) datagrams. Each segment carries a sequence number that numbers bytes within the data stream along with an acknowledgement number indicating to the other side what sequence number was last received. TCP uses adaptive timeouts to decide when a re-send should occur. This design can backfire when stacking TCP connections though, because a slower outer connection can cause the upper layer to queue up more retransmissions than the lower layer is able to process. This type of network slowdown is known as a “TCP meltdown problem.” Surprisingly, this is not a design flaw, as the idea of running TCP within itself had not even occurred to the protocol designers at the time, which is why this dilemma was not originally addressed. Fortunately, some computer scientists have been able to demonstrate situations where a stacked TCP arrangement actually improves performance. In any case, Virtual Private Networking products like OpenVPN have been designed to accommodate for the problems that may occur with tunneling TCP within TCP. Unlike SSTP, OpenVPN is able to run over UDP to handle such times when a stacked TCP connection would actually degrade performance. Although SSTP may be suitable in some situations, it is severely limited by only being compatible with the latest versions of the Windows operating system. Microsoft has not announced any plans to port...

SSTP: The problem with TCP over TCP, Part 1

TCP over TCP: Issues and Concerns The Transmission Control Protocol (TCP) is undoubtedly a fundamental component in all modern day networks. The difficultly with TCP, however, begins when operating a TCP tunnel within TCP itself, which is often the case when operating VPNs in order to protect one’s online privacy. A TCP tunnel is an important networking feature designed to aggregate and transfer packets sent between end hosts as a single TCP connection. This is useful for creating secure, point-to-point VPN connections to not only protect privacy but to create the illusion that users are directly connected to a Local Area Network (LAN). Corporations use this technology to connect telecommuters and workers on the road with corporate servers. Gamers use it for games that only offer LAN-based networking features. Average consumers use it to prevent their data from being intercepted by nearby hackers. What all of these users share in common is the problem a TCP-based tunnel has when running within an existing TCP connection. TCP was originally designed with congestion controls that help mitigate issues with slow, latent and unreliable networks. When TCP was first designed, consumers did not have ultra-fast Internet connectivity. In fact, most consumers did not have Internet connectivity at all. If they did, it was a dial-up connection ranging from 300 to 1200 bits per second (bps) over unreliable copper telephone wire. Even universities and corporations had relatively slow and unreliable connections when compared to today’s standards. As a result, protocols like TCP were designed to accommodate this by using various congestion controls that would help to achieve high network performance while avoiding congestion...