TCP Acceleration
TCP is a chatty protocol, one that requires a lot of back and forth between the server and the remote location, and using it over a satellite link can be a challenge. One of the problems is the protocol’s requirement to send three acknowledgements (acks) back and forth to determine the amount of bandwidth that is available before any data is exchanged between two points. This requires three round trips, or six satellite hops (propagation delay), just to start the data flowing. If the connection is idle for a short period, the acks must be sent again. The end result is extremely slow loading of Web pages and user frustration.
TCP Fast Start is a straight forward method used to minimize the start-up delay. Since the bandwidth of a satellite network is known, the bandwidth discovery process can be eliminated. At either end of the network, TCP is spoofed, which minimizes the time needed to download a web page. Many major manufacturers have integrated TCP Fast Start into their products.
In addition to TCP Fast Start, caching technology has progressed rapidly over the last decade. A cache is a temporary store of data. Caching technology uses a software proxy to automatically download Web pages a user has visited and then stores them so the data can be accessed locally instead of retrieving it again over the network. In the case of a satellite network, where bandwidth is limited, the collection of data can be done during off-peak hours. Caching not only enhances the user experience because the Web pages load extremely quickly, it reduces the demand for bandwidth during peak hours.
Caching software downloads content from Web sites that users visit with some regularity. But what about other sites they have never been to? TCP Pre-fetch is another technique which engineers can use to reduce latency. HTML pages displayed on a Web site generally are made up of several files. Hyper Text Transfer Protocol (HTTP) downloads these fields sequentially. Pre-fetching involves a software proxy which begins downloading linked content before an end user requests it. When a user clicks on a link embedded in a Web page, the content already has been downloaded, thereby reducing the perceived download time.
The throughput of a TCP link is affected by window size, however sending large window sizes over a satellite link increases the number of acknowledged bits which are outstanding. The latency of a satellite link generally forces network engineers to use less than favorable maximum transmission units, which in turn equates to poor link utilization. There is hardware available which logically turns a TCP session into multiple sessions for transmission across the network, where it is reassembled back into a single session on the other end. This approach basically increases the widow size by increasing the number of sessions.
Two interesting quirks of TCP are how the protocol handles latency and packet loss. Whenever a packet is sent, an acknowledgement of some type will return letting the sender know that the packet was either delivered or that delivery failed. If the packet is delayed getting back to the sender the protocol assumes that the network is congested and automatically throttles back the download speed. Satellite delay is misinterpreted as network congestion and, as a result, throughput suffers. If a packet is lost in a TCP network, the sender waits for three duplicate acknowledgments confirming that delivery failed. At that point, the sending server goes back to the missing packet and resends everything from that point forward.
In the late 1990s a suite of protocols was developed by NASA and the U.S. Department of Defense for commanding space craft. The result was Space Communications Protocol Standards (SCPS). A few years later, a group of engineers who had worked on the original SCPS (pronounced skips) specification realized that the protocols had applicability in commercial and military satellite networks. The team formed a company called Global Protocols and productized the software and added some new features. The resulting software, called SkipWare, is a version of TCP with extensions that have been adapted to the stresses and rigors of space communications. SkipWare elegantly solves both problems noted above. Since the software knows how much bandwidth is available and what the round-trip time is, it does not automatically neck down window size. The net result is substantially higher link utilization, which in turn reduces latency.
Global Protocols included a version of an acknowledgement scheme known as selective negative acknowledgement (SNACK) in SkipWare. Instead of going back to the missing packet and retransmitting everything from that point forward, SNACK resends only the missing packet, thereby saving retransmit time. SNACK also allows much larger window sizes to be sent, which in turn increases link utilization. While SkipWare may appear to be an important link utilization tool, improving link utilization rates from 25 percent to near 90 percent, it does so by circumventing the problems associated with the latency caused by a satellite link. Due to the significant performance enhancement it provides, manufacturers, such as Comtech EF Data have made SkipWare the standard acceleration technology powering their line of Performance Enhancing Proxies.