diff options
Diffstat (limited to 'doc/rfc/rfc2488.txt')
-rw-r--r-- | doc/rfc/rfc2488.txt | 1067 |
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc2488.txt b/doc/rfc/rfc2488.txt new file mode 100644 index 0000000..7fa5700 --- /dev/null +++ b/doc/rfc/rfc2488.txt @@ -0,0 +1,1067 @@ + + + + + + +Network Working Group M. Allman +Request for Comments: 2488 NASA Lewis/Sterling Software +BCP: 28 D. Glover +Category: Best Current Practice NASA Lewis + L. Sanchez + BBN + January 1999 + + Enhancing TCP Over Satellite Channels + using Standard Mechanisms + +Status of this Memo + + This document specifies an Internet Best Current Practices for the + Internet Community, and requests discussion and suggestions for + improvements. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +Abstract + + The Transmission Control Protocol (TCP) provides reliable delivery of + data across any network path, including network paths containing + satellite channels. While TCP works over satellite channels there + are several IETF standardized mechanisms that enable TCP to more + effectively utilize the available capacity of the network path. This + document outlines some of these TCP mitigations. At this time, all + mitigations discussed in this document are IETF standards track + mechanisms (or are compliant with IETF standards). + +1. Introduction + + Satellite channel characteristics may have an effect on the way + transport protocols, such as the Transmission Control Protocol (TCP) + [Pos81], behave. When protocols, such as TCP, perform poorly, + channel utilization is low. While the performance of a transport + protocol is important, it is not the only consideration when + constructing a network containing satellite links. For example, data + link protocol, application protocol, router buffer size, queueing + discipline and proxy location are some of the considerations that + must be taken into account. However, this document focuses on + improving TCP in the satellite environment and non-TCP considerations + are left for another document. Finally, there have been many + satellite mitigations proposed and studied by the research community. + While these mitigations may prove useful and safe for shared networks + in the future, this document only considers TCP mechanisms which are + + + +Allman, et. al. Best Current Practice [Page 1] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + currently well understood and on the IETF standards track (or are + compliant with IETF standards). + + This document is divided up as follows: Section 2 provides a brief + outline of the characteristics of satellite networks. Section 3 + outlines two non-TCP mechanisms that enable TCP to more effectively + utilize the available bandwidth. Section 4 outlines the TCP + mechanisms defined by the IETF that may benefit satellite networks. + Finally, Section 5 provides a summary of what modern TCP + implementations should include to be considered "satellite friendly". + +2. Satellite Characteristics + + There is an inherent delay in the delivery of a message over a + satellite link due to the finite speed of light and the altitude of + communications satellites. + + Many communications satellites are located at Geostationary Orbit + (GSO) with an altitude of approximately 36,000 km [Sta94]. At this + altitude the orbit period is the same as the Earth's rotation period. + Therefore, each ground station is always able to "see" the orbiting + satellite at the same position in the sky. The propagation time for + a radio signal to travel twice that distance (corresponding to a + ground station directly below the satellite) is 239.6 milliseconds + (ms) [Mar78]. For ground stations at the edge of the view area of + the satellite, the distance traveled is 2 x 41,756 km for a total + propagation delay of 279.0 ms [Mar78]. These delays are for one + ground station-to-satellite-to-ground station route (or "hop"). + Therefore, the propagation delay for a message and the corresponding + reply (one round-trip time or RTT) could be at least 558 ms. The RTT + is not based solely on satellite propagation time. The RTT will be + increased by other factors in the network, such as the transmission + time and propagation time of other links in the network path and + queueing delay in gateways. Furthermore, the satellite propagation + delay will be longer if the link includes multiple hops or if + intersatellite links are used. As satellites become more complex and + include on-board processing of signals, additional delay may be + added. + + Other orbits are possible for use by communications satellites + including Low Earth Orbit (LEO) [Stu95] [Mon98] and Medium Earth + Orbit (MEO) [Mar78]. The lower orbits require the use of + constellations of satellites for constant coverage. In other words, + as one satellite leaves the ground station's sight, another satellite + appears on the horizon and the channel is switched to it. The + propagation delay to a LEO orbit ranges from several milliseconds + when communicating with a satellite directly overhead, to as much as + 80 ms when the satellite is on the horizon. These systems are more + + + +Allman, et. al. Best Current Practice [Page 2] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + likely to use intersatellite links and have variable path delay + depending on routing through the network. + + Satellite channels are dominated by two fundamental characteristics, + as described below: + + NOISE - The strength of a radio signal falls in proportion to the + square of the distance traveled. For a satellite link the + distance is large and so the signal becomes weak before reaching + its destination. This results in a low signal-to-noise ratio. + Some frequencies are particularly susceptible to atmospheric + effects such as rain attenuation. For mobile applications, + satellite channels are especially susceptible to multi-path + distortion and shadowing (e.g., blockage by buildings). Typical + bit error rates (BER) for a satellite link today are on the order + of 1 error per 10 million bits (1 x 10^-7) or less frequent. + Advanced error control coding (e.g., Reed Solomon) can be added to + existing satellite services and is currently being used by many + services. Satellite error performance approaching fiber will + become more common as advanced error control coding is used in new + systems. However, many legacy satellite systems will continue to + exhibit higher BER than newer satellite systems and terrestrial + channels. + + BANDWIDTH - The radio spectrum is a limited natural resource, + hence there is a restricted amount of bandwidth available to + satellite systems which is typically controlled by licenses. This + scarcity makes it difficult to trade bandwidth to solve other + design problems. Typical carrier frequencies for current, point- + to-point, commercial, satellite services are 6 GHz (uplink) and 4 + GHz (downlink), also known as C band, and 14/12 GHz (Ku band). A + new service at 30/20 GHz (Ka band) will be emerging over the next + few years. Satellite-based radio repeaters are known as + transponders. Traditional C band transponder bandwidth is + typically 36 MHz to accommodate one color television channel (or + 1200 voice channels). Ku band transponders are typically around + 50 MHz. Furthermore, one satellite may carry a few dozen + transponders. + + Not only is bandwidth limited by nature, but the allocations for + commercial communications are limited by international agreements so + that this scarce resource can be used fairly by many different + applications. + + + + + + + + +Allman, et. al. Best Current Practice [Page 3] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + Although satellites have certain disadvantages when compared to fiber + channels (e.g., cannot be easily repaired, rain fades, etc.), they + also have certain advantages over terrestrial links. First, + satellites have a natural broadcast capability. This gives + satellites an advantage for multicast applications. Next, satellites + can reach geographically remote areas or countries that have little + terrestrial infrastructure. A related advantage is the ability of + satellite links to reach mobile users. + + Satellite channels have several characteristics that differ from most + terrestrial channels. These characteristics may degrade the + performance of TCP. These characteristics include: + + Long feedback loop + + Due to the propagation delay of some satellite channels (e.g., + approximately 250 ms over a geosynchronous satellite) it may take + a long time for a TCP sender to determine whether or not a packet + has been successfully received at the final destination. This + delay hurts interactive applications such as telnet, as well as + some of the TCP congestion control algorithms (see section 4). + + Large delay*bandwidth product + + The delay*bandwidth product (DBP) defines the amount of data a + protocol should have "in flight" (data that has been transmitted, + but not yet acknowledged) at any one time to fully utilize the + available channel capacity. The delay used in this equation is + the RTT and the bandwidth is the capacity of the bottleneck link + in the network path. Because the delay in some satellite + environments is large, TCP will need to keep a large number of + packets "in flight" (that is, sent but not yet acknowledged) . + + Transmission errors + + Satellite channels exhibit a higher bit-error rate (BER) than + typical terrestrial networks. TCP uses all packet drops as + signals of network congestion and reduces its window size in an + attempt to alleviate the congestion. In the absence of knowledge + about why a packet was dropped (congestion or corruption), TCP + must assume the drop was due to network congestion to avoid + congestion collapse [Jac88] [FF98]. Therefore, packets dropped + due to corruption cause TCP to reduce the size of its sliding + window, even though these packet drops do not signal congestion in + the network. + + + + + + +Allman, et. al. Best Current Practice [Page 4] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + Asymmetric use + + Due to the expense of the equipment used to send data to + satellites, asymmetric satellite networks are often constructed. + For example, a host connected to a satellite network will send all + outgoing traffic over a slow terrestrial link (such as a dialup + modem channel) and receive incoming traffic via the satellite + channel. Another common situation arises when both the incoming + and outgoing traffic are sent using a satellite link, but the + uplink has less available capacity than the downlink due to the + expense of the transmitter required to provide a high bandwidth + back channel. This asymmetry may have an impact on TCP + performance. + + Variable Round Trip Times + + In some satellite environments, such as low-Earth orbit (LEO) + constellations, the propagation delay to and from the satellite + varies over time. Whether or not this will have an impact on TCP + performance is currently an open question. + + Intermittent connectivity + + In non-GSO satellite orbit configurations, TCP connections must be + transferred from one satellite to another or from one ground + station to another from time to time. This handoff may cause + packet loss if not properly performed. + + Most satellite channels only exhibit a subset of the above + characteristics. Furthermore, satellite networks are not the only + environments where the above characteristics are found. However, + satellite networks do tend to exhibit more of the above problems or + the above problems are aggravated in the satellite environment. The + mechanisms outlined in this document should benefit most networks, + especially those with one or more of the above characteristics (e.g., + gigabit networks have large delay*bandwidth products). + +3. Lower Level Mitigations + + It is recommended that those utilizing satellite channels in their + networks should use the following two non-TCP mechanisms which can + increase TCP performance. These mechanisms are Path MTU Discovery + and forward error correction (FEC) and are outlined in the following + two sections. + + The data link layer protocol employed over a satellite channel can + have a large impact on performance of higher layer protocols. While + beyond the scope of this document, those constructing satellite + + + +Allman, et. al. Best Current Practice [Page 5] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + networks should tune these protocols in an appropriate manner to + ensure that the data link protocol does not limit TCP performance. + In particular, data link layer protocols often implement a flow + control window and retransmission mechanisms. When the link level + window size is too small, performance will suffer just as when the + TCP window size is too small (see section 4.3 for a discussion of + appropriate window sizes). The impact that link level + retransmissions have on TCP transfers is not currently well + understood. The interaction between TCP retransmissions and link + level retransmissions is a subject for further research. + +3.1 Path MTU Discovery + + Path MTU discovery [MD90] is used to determine the maximum packet + size a connection can use on a given network path without being + subjected to IP fragmentation. The sender transmits a packet that is + the appropriate size for the local network to which it is connected + (e.g., 1500 bytes on an Ethernet) and sets the IP "don't fragment" + (DF) bit. If the packet is too large to be forwarded without being + fragmented to a given channel along the network path, the gateway + that would normally fragment the packet and forward the fragments + will instead return an ICMP message to the originator of the packet. + The ICMP message will indicate that the original segment could not be + transmitted without being fragmented and will also contain the size + of the largest packet that can be forwarded by the gateway. + Additional information from the IESG regarding Path MTU discovery is + available in [Kno93]. + + Path MTU Discovery allows TCP to use the largest possible packet + size, without incurring the cost of fragmentation and reassembly. + Large packets reduce the packet overhead by sending more data bytes + per overhead byte. As outlined in section 4, increasing TCP's + congestion window is segment based, rather than byte based and + therefore, larger segments enable TCP senders to increase the + congestion window more rapidly, in terms of bytes, than smaller + segments. + + The disadvantage of Path MTU Discovery is that it may cause a delay + before TCP is able to start sending data. For example, assume a + packet is sent with the DF bit set and one of the intervening + gateways (G1) returns an ICMP message indicating that it cannot + forward the segment. At this point, the sending host reduces the + packet size per the ICMP message returned by G1 and sends another + packet with the DF bit set. The packet will be forwarded by G1, + however this does not ensure all subsequent gateways in the network + path will be able to forward the segment. If a second gateway (G2) + cannot forward the segment it will return an ICMP message to the + transmitting host and the process will be repeated. Therefore, path + + + +Allman, et. al. Best Current Practice [Page 6] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + MTU discovery can spend a large amount of time determining the + maximum allowable packet size on the network path between the sender + and receiver. Satellite delays can aggravate this problem (consider + the case when the channel between G1 and G2 is a satellite link). + However, in practice, Path MTU Discovery does not consume a large + amount of time due to wide support of common MTU values. + Additionally, caching MTU values may be able to eliminate discovery + time in many instances, although the exact implementation of this and + the aging of cached values remains an open problem. + + The relationship between BER and segment size is likely to vary + depending on the error characteristics of the given channel. This + relationship deserves further study, however with the use of good + forward error correction (see section 3.2) larger segments should + provide better performance, as with any network [MSMO97]. While the + exact method for choosing the best MTU for a satellite link is + outside the scope of this document, the use of Path MTU Discovery is + recommended to allow TCP to use the largest possible MTU over the + satellite channel. + +3.2 Forward Error Correction + + A loss event in TCP is always interpreted as an indication of + congestion and always causes TCP to reduce its congestion window + size. Since the congestion window grows based on returning + acknowledgments (see section 4), TCP spends a long time recovering + from loss when operating in satellite networks. When packet loss is + due to corruption, rather than congestion, TCP does not need to + reduce its congestion window size. However, at the present time + detecting corruption loss is a research issue. + + Therefore, for TCP to operate efficiently, the channel + characteristics should be such that nearly all loss is due to network + congestion. The use of forward error correction coding (FEC) on a + satellite link should be used to improve the bit-error rate (BER) of + the satellite channel. Reducing the BER is not always possible in + satellite environments. However, since TCP takes a long time to + recover from lost packets because the long propagation delay imposed + by a satellite link delays feedback from the receiver [PS97], the + link should be made as clean as possible to prevent TCP connections + from receiving false congestion signals. This document does not make + a specific BER recommendation for TCP other than it should be as low + as possible. + + FEC should not be expected to fix all problems associated with noisy + satellite links. There are some situations where FEC cannot be + expected to solve the noise problem (such as military jamming, deep + space missions, noise caused by rain fade, etc.). In addition, link + + + +Allman, et. al. Best Current Practice [Page 7] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + outages can also cause problems in satellite systems that do not + occur as frequently in terrestrial networks. Finally, FEC is not + without cost. FEC requires additional hardware and uses some of the + available bandwidth. It can add delay and timing jitter due to the + processing time of the coder/decoder. + + Further research is needed into mechanisms that allow TCP to + differentiate between congestion induced drops and those caused by + corruption. Such a mechanism would allow TCP to respond to + congestion in an appropriate manner, as well as repairing corruption + induced loss without reducing the transmission rate. However, in the + absence of such a mechanism packet loss must be assumed to indicate + congestion to preserve network stability. Incorrectly interpreting + loss as caused by corruption and not reducing the transmission rate + accordingly can lead to congestive collapse [Jac88] [FF98]. + +4. Standard TCP Mechanisms + + This section outlines TCP mechanisms that may be necessary in + satellite or hybrid satellite/terrestrial networks to better utilize + the available capacity of the link. These mechanisms may also be + needed to fully utilize fast terrestrial channels. Furthermore, + these mechanisms do not fundamentally hurt performance in a shared + terrestrial network. Each of the following sections outlines one + mechanism and why that mechanism may be needed. + +4.1 Congestion Control + + To avoid generating an inappropriate amount of network traffic for + the current network conditions, during a connection TCP employs four + congestion control mechanisms [Jac88] [Jac90] [Ste97]. These + algorithms are slow start, congestion avoidance, fast retransmit and + fast recovery. These algorithms are used to adjust the amount of + unacknowledged data that can be injected into the network and to + retransmit segments dropped by the network. + + TCP senders use two state variables to accomplish congestion control. + The first variable is the congestion window (cwnd). This is an upper + bound on the amount of data the sender can inject into the network + before receiving an acknowledgment (ACK). The value of cwnd is + limited to the receiver's advertised window. The congestion window + is increased or decreased during the transfer based on the inferred + amount of congestion present in the network. The second variable is + the slow start threshold (ssthresh). This variable determines which + algorithm is used to increase the value of cwnd. If cwnd is less + than ssthresh the slow start algorithm is used to increase the value + of cwnd. However, if cwnd is greater than or equal to (or just + greater than in some TCP implementations) ssthresh the congestion + + + +Allman, et. al. Best Current Practice [Page 8] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + avoidance algorithm is used. The initial value of ssthresh is the + receiver's advertised window size. Furthermore, the value of + ssthresh is set when congestion is detected. + + The four congestion control algorithms are outlined below, followed + by a brief discussion of the impact of satellite environments on + these algorithms. + +4.1.1 Slow Start and Congestion Avoidance + + When a host begins sending data on a TCP connection the host has no + knowledge of the current state of the network between itself and the + data receiver. In order to avoid transmitting an inappropriately + large burst of traffic, the data sender is required to use the slow + start algorithm at the beginning of a transfer [Jac88] [Bra89] + [Ste97]. Slow start begins by initializing cwnd to 1 segment + (although an IETF experimental mechanism would increase the size of + the initial window to roughly 4 Kbytes [AFP98]) and ssthresh to the + receiver's advertised window. This forces TCP to transmit one + segment and wait for the corresponding ACK. For each ACK that is + received during slow start, the value of cwnd is increased by 1 + segment. For example, after the first ACK is received cwnd will be 2 + segments and the sender will be allowed to transmit 2 data packets. + This continues until cwnd meets or exceeds ssthresh (or, in some + implementations when cwnd equals ssthresh), or loss is detected. + + When the value of cwnd is greater than or equal to (or equal to in + certain implementations) ssthresh the congestion avoidance algorithm + is used to increase cwnd [Jac88] [Bra89] [Ste97]. This algorithm + increases the size of cwnd more slowly than does slow start. + Congestion avoidance is used to slowly probe the network for + additional capacity. During congestion avoidance, cwnd is increased + by 1/cwnd for each incoming ACK. Therefore, if one ACK is received + for every data segment, cwnd will increase by roughly 1 segment per + round-trip time (RTT). + + The slow start and congestion control algorithms can force poor + utilization of the available channel bandwidth when using long-delay + satellite networks [All97]. For example, transmission begins with + the transmission of one segment. After the first segment is + transmitted the data sender is forced to wait for the corresponding + ACK. When using a GSO satellite this leads to an idle time of + roughly 500 ms when no useful work is being accomplished. Therefore, + slow start takes more real time over GSO satellites than on typical + terrestrial channels. This holds for congestion avoidance, as well + [All97]. This is precisely why Path MTU Discovery is an important + algorithm. While the number of segments we transmit is determined by + the congestion control algorithms, the size of these segments is not. + + + +Allman, et. al. Best Current Practice [Page 9] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + Therefore, using larger packets will enable TCP to send more data per + segment which yields better channel utilization. + +4.1.2 Fast Retransmit and Fast Recovery + + TCP's default mechanism to detect dropped segments is a timeout + [Pos81]. In other words, if the sender does not receive an ACK for a + given packet within the expected amount of time the segment will be + retransmitted. The retransmission timeout (RTO) is based on + observations of the RTT. In addition to retransmitting a segment + when the RTO expires, TCP also uses the lost segment as an indication + of congestion in the network. In response to the congestion, the + value of ssthresh is set to half of the cwnd and the value of cwnd is + then reduced to 1 segment. This triggers the use of the slow start + algorithm to increase cwnd until the value of cwnd reaches half of + its value when congestion was detected. After the slow start phase, + the congestion avoidance algorithm is used to probe the network for + additional capacity. + + TCP ACKs always acknowledge the highest in-order segment that has + arrived. Therefore an ACK for segment X also effectively ACKs all + segments < X. Furthermore, if a segment arrives out-of-order the ACK + triggered will be for the highest in-order segment, rather than the + segment that just arrived. For example, assume segment 11 has been + dropped somewhere in the network and segment 12 arrives at the + receiver. The receiver is going to send a duplicate ACK covering + segment 10 (and all previous segments). + + The fast retransmit algorithm uses these duplicate ACKs to detect + lost segments. If 3 duplicate ACKs arrive at the data originator, + TCP assumes that a segment has been lost and retransmits the missing + segment without waiting for the RTO to expire. After a segment is + resent using fast retransmit, the fast recovery algorithm is used to + adjust the congestion window. First, the value of ssthresh is set to + half of the value of cwnd. Next, the value of cwnd is halved. + Finally, the value of cwnd is artificially increased by 1 segment for + each duplicate ACK that has arrived. The artificial inflation can be + done because each duplicate ACK represents 1 segment that has left + the network. When the cwnd permits, TCP is able to transmit new + data. This allows TCP to keep data flowing through the network at + half the rate it was when loss was detected. When an ACK for the + retransmitted packet arrives, the value of cwnd is reduced back to + ssthresh (half the value of cwnd when the congestion was detected). + + + + + + + + +Allman, et. al. Best Current Practice [Page 10] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + Generally, fast retransmit can resend only one segment per window of + data sent. When multiple segments are lost in a given window of + data, one of the segments will be resent using fast retransmit and + the rest of the dropped segments must usually wait for the RTO to + expire, which causes TCP to revert to slow start. + + TCP's response to congestion differs based on the way the congestion + is detected. If the retransmission timer causes a packet to be + resent, TCP drops ssthresh to half the current cwnd and reduces the + value of cwnd to 1 segment (thus triggering slow start). However, if + a segment is resent via fast retransmit both ssthresh and cwnd are + set to half the current value of cwnd and congestion avoidance is + used to send new data. The difference is that when retransmitting + due to duplicate ACKs, TCP knows that packets are still flowing + through the network and can therefore infer that the congestion is + not that bad. However, when resending a packet due to the expiration + of the retransmission timer, TCP cannot infer anything about the + state of the network and therefore must proceed conservatively by + sending new data using the slow start algorithm. + + Note that the fast retransmit/fast recovery algorithms, as discussed + above can lead to a phenomenon that allows multiple fast retransmits + per window of data [Flo94]. This can reduce the size of the + congestion window multiple times in response to a single "loss + event". The problem is particularly noticeable in connections that + utilize large congestion windows, since these connections are able to + inject enough new segments into the network during recovery to + trigger the multiple fast retransmits. Reducing cwnd multiple times + for a single loss event may hurt performance [GJKFV98]. + + The best way to improve the fast retransmit/fast recovery algorithms + is to use a selective acknowledgment (SACK) based algorithm for loss + recovery. As discussed below, these algorithms are generally able to + quickly recover from multiple lost segments without needlessly + reducing the value of cwnd. In the absence of SACKs, the fast + retransmit and fast recovery algorithms should be used. Fixing these + algorithms to achieve better performance in the face of multiple fast + retransmissions is beyond the scope of this document. Therefore, TCP + implementers are advised to implement the current version of fast + retransmit/fast recovery outlined in RFC 2001 [Ste97] or subsequent + versions of RFC 2001. + +4.1.3 Congestion Control in Satellite Environment + + The above algorithms have a negative impact on the performance of + individual TCP connection's performance because the algorithms slowly + probe the network for additional capacity, which in turn wastes + bandwidth. This is especially true over long-delay satellite + + + +Allman, et. al. Best Current Practice [Page 11] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + channels because of the large amount of time required for the sender + to obtain feedback from the receiver [All97] [AHKO97]. However, the + algorithms are necessary to prevent congestive collapse in a shared + network [Jac88]. Therefore, the negative impact on a given + connection is more than offset by the benefit to the entire network. + +4.2 Large TCP Windows + + The standard maximum TCP window size (65,535 bytes) is not adequate + to allow a single TCP connection to utilize the entire bandwidth + available on some satellite channels. TCP throughput is limited by + the following formula [Pos81]: + + throughput = window size / RTT + + Therefore, using the maximum window size of 65,535 bytes and a + geosynchronous satellite channel RTT of 560 ms [Kru95] the maximum + throughput is limited to: + + throughput = 65,535 bytes / 560 ms = 117,027 bytes/second + + Therefore, a single standard TCP connection cannot fully utilize, for + example, T1 rate (approximately 192,000 bytes/second) GSO satellite + channels. However, TCP has been extended to support larger windows + [JBB92]. The window scaling options outlined in [JBB92] should be + used in satellite environments, as well as the companion algorithms + PAWS (Protection Against Wrapped Sequence space) and RTTM (Round-Trip + Time Measurements). + + It should be noted that for a satellite link shared among many flows, + large windows may not be necessary. For instance, two long-lived TCP + connections each using a window of 65,535 bytes, as in the above + example, can fully utilize a T1 GSO satellite channel. + + Using large windows often requires both client and server + applications or TCP stacks to be hand tuned (usually by an expert) to + utilize large windows. Research into operating system mechanisms + that are able to adjust the buffer capacity as dictated by the + current network conditions is currently underway [SMM98]. This will + allow stock TCP implementations and applications to better utilize + the capacity provided by the underlying network. + +4.3 Acknowledgment Strategies + + There are two standard methods that can be used by TCP receivers to + generated acknowledgments. The method outlined in [Pos81] generates + an ACK for each incoming segment. [Bra89] states that hosts SHOULD + use "delayed acknowledgments". Using this algorithm, an ACK is + + + +Allman, et. al. Best Current Practice [Page 12] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + generated for every second full-sized segment, or if a second full- + size segment does not arrive within a given timeout (which must not + exceed 500 ms). The congestion window is increased based on the + number of incoming ACKs and delayed ACKs reduce the number of ACKs + being sent by the receiver. Therefore, cwnd growth occurs much more + slowly when using delayed ACKs compared to the case when the receiver + ACKs each incoming segment [All98]. + + A tempting "fix" to the problem caused by delayed ACKs is to simply + turn the mechanism off and let the receiver ACK each incoming + segment. However, this is not recommended. First, [Bra89] says that + a TCP receiver SHOULD generate delayed ACKs. And, second, increasing + the number of ACKs by a factor of two in a shared network may have + consequences that are not yet understood. Therefore, disabling + delayed ACKs is still a research issue and thus, at this time TCP + receivers should continue to generate delayed ACKs, per [Bra89]. + +4.4 Selective Acknowledgments + + Selective acknowledgments (SACKs) [MMFR96] allow TCP receivers to + inform TCP senders exactly which packets have arrived. SACKs allow + TCP to recover more quickly from lost segments, as well as avoiding + needless retransmissions. + + The fast retransmit algorithm can generally only repair one loss per + window of data. When multiple losses occur, the sender generally + must rely on a timeout to determine which segment needs to be + retransmitted next. While waiting for a timeout, the data segments + and their acknowledgments drain from the network. In the absence of + incoming ACKs to clock new segments into the network, the sender must + use the slow start algorithm to restart transmission. As discussed + above, the slow start algorithm can be time consuming over satellite + channels. When SACKs are employed, the sender is generally able to + determine which segments need to be retransmitted in the first RTT + following loss detection. This allows the sender to continue to + transmit segments (retransmissions and new segments, if appropriate) + at an appropriate rate and therefore sustain the ACK clock. This + avoids a costly slow start period following multiple lost segments. + Generally SACK is able to retransmit all dropped segments within the + first RTT following the loss detection. [MM96] and [FF96] discuss + specific congestion control algorithms that rely on SACK information + to determine which segments need to be retransmitted and when it is + appropriate to transmit those segments. Both these algorithms follow + the basic principles of congestion control outlined in [Jac88] and + reduce the window by half when congestion is detected. + + + + + + +Allman, et. al. Best Current Practice [Page 13] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + +5. Mitigation Summary + + Table 1 summarizes the mechanisms that have been discussed in this + document. Those mechanisms denoted "Recommended" are IETF standards + track mechanisms that are recommended by the authors for use in + networks containing satellite channels. Those mechanisms marked + "Required' have been defined by the IETF as required for hosts using + the shared Internet [Bra89]. Along with the section of this document + containing the discussion of each mechanism, we note where the + mechanism needs to be implemented. The codes listed in the last + column are defined as follows: "S" for the data sender, "R" for the + data receiver and "L" for the satellite link. + + Mechanism Use Section Where + +------------------------+-------------+------------+--------+ + | Path-MTU Discovery | Recommended | 3.1 | S | + | FEC | Recommended | 3.2 | L | + | TCP Congestion Control | | | | + | Slow Start | Required | 4.1.1 | S | + | Congestion Avoidance | Required | 4.1.1 | S | + | Fast Retransmit | Recommended | 4.1.2 | S | + | Fast Recovery | Recommended | 4.1.2 | S | + | TCP Large Windows | | | | + | Window Scaling | Recommended | 4.2 | S,R | + | PAWS | Recommended | 4.2 | S,R | + | RTTM | Recommended | 4.2 | S,R | + | TCP SACKs | Recommended | 4.4 | S,R | + +------------------------+-------------+------------+--------+ + Table 1 + + Satellite users should check with their TCP vendors (implementors) to + ensure the recommended mechanisms are supported in their stack in + current and/or future versions. Alternatively, the Pittsburgh + Supercomputer Center tracks TCP implementations and which extensions + they support, as well as providing guidance on tuning various TCP + implementations [PSC]. + + Research into improving the efficiency of TCP over satellite channels + is ongoing and will be summarized in a planned memo along with other + considerations, such as satellite network architectures. + +6. Security Considerations + + The authors believe that the recommendations contained in this memo + do not alter the security implications of TCP. However, when using a + broadcast medium such as satellites links to transfer user data + and/or network control traffic, one should be aware of the intrinsic + security implications of such technology. + + + +Allman, et. al. Best Current Practice [Page 14] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + Eavesdropping on network links is a form of passive attack that, if + performed successfully, could reveal critical traffic control + information that would jeopardize the proper functioning of the + network. These attacks could reduce the ability of the network to + provide data transmission services efficiently. Eavesdroppers could + also compromise the privacy of user data, especially if end-to-end + security mechanisms are not in use. While passive monitoring can + occur on any network, the wireless broadcast nature of satellite + links allows reception of signals without physical connection to the + network which enables monitoring to be conducted without detection. + However, it should be noted that the resources needed to monitor a + satellite link are non-trivial. + + Data encryption at the physical and/or link layers can provide secure + communication over satellite channels. However, this still leaves + traffic vulnerable to eavesdropping on networks before and after + traversing the satellite link. Therefore, end-to-end security + mechanisms should be considered. This document does not make any + recommendations as to which security mechanisms should be employed. + However, those operating and using satellite networks should survey + the currently available network security mechanisms and choose those + that meet their security requirements. + +Acknowledgments + + This document has benefited from comments from the members of the TCP + Over Satellite Working Group. In particular, we would like to thank + Aaron Falk, Matthew Halsey, Hans Kruse, Matt Mathis, Greg Nakanishi, + Vern Paxson, Jeff Semke, Bill Sepmeier and Eric Travis for their + useful comments about this document. + +References + + [AFP98] Allman, M., Floyd, S. and C. Partridge, "Increasing TCP's + Initial Window", RFC 2414, September 1998. + + [AHKO97] Mark Allman, Chris Hayes, Hans Kruse, and Shawn Ostermann. + TCP Performance Over Satellite Links. In Proceedings of + the 5th International Conference on Telecommunication + Systems, March 1997. + + [All97] Mark Allman. Improving TCP Performance Over Satellite + Channels. Master's thesis, Ohio University, June 1997. + + [All98] Mark Allman. On the Generation and Use of TCP + Acknowledgments. ACM Computer Communication Review, 28(5), + October 1998. + + + + +Allman, et. al. Best Current Practice [Page 15] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + [Bra89] Braden, R., "Requirements for Internet Hosts -- + Communication Layers", STD 3, RFC 1122, October 1989. + + [FF96] Kevin Fall and Sally Floyd. Simulation-based Comparisons + of Tahoe, Reno and SACK TCP. Computer Communication + Review, July 1996. + + [FF98] Sally Floyd, Kevin Fall. Promoting the Use of End-to-End + Congestion Control in the Internet. Submitted to IEEE + Transactions on Networking. + + [Flo94] S. Floyd, TCP and Successive Fast Retransmits. Technical + report, October 1994. + ftp://ftp.ee.lbl.gov/papers/fastretrans.ps. + + [GJKFV98] Rohit Goyal, Raj Jain, Shiv Kalyanaraman, Sonia Fahmy, + Bobby Vandalore, Improving the Performance of TCP over the + ATM-UBR service, 1998. Sumbitted to Computer + Communications. + + [Jac90] Van Jacobson. Modified TCP Congestion Avoidance Algorithm. + Technical Report, LBL, April 1990. + + [JBB92] Jacobson, V., Braden, R. and D. Borman, "TCP Extensions for + High Performance", RFC 1323, May 1992. + + [Jac88] Van Jacobson. Congestion Avoidance and Control. In ACM + SIGCOMM, 1988. + + [Kno93] Knowles, S., "IESG Advice from Experience with Path MTU + Discovery", RFC 1435, March 1993. + + [Mar78] James Martin. Communications Satellite Systems. Prentice + Hall, 1978. + + [MD90] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191, + November 1990. + + [MM96] Matt Mathis and Jamshid Mahdavi. Forward Acknowledgment: + Refining TCP Congestion Control. In ACM SIGCOMM, 1996. + + [MMFR96] Mathis, M., Mahdavi, J., Floyd, S. and A. Romanow, "TCP + Selective Acknowledgment Options", RFC 2018, October 1996. + + [Mon98] M. J. Montpetit. TELEDESIC: Enabling The Global Community + Interaccess. In Proc. of the International Wireless + Symposium, May 1998. + + + + +Allman, et. al. Best Current Practice [Page 16] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + + [MSMO97] M. Mathis, J. Semke, J. Mahdavi, T. Ott, "The Macroscopic + Behavior of the TCP Congestion Avoidance Algorithm", + Computer Communication Review, volume 27, number3, July + 1997. available from + http://www.psc.edu/networking/papers/papers.html. + + [Pos81] Postel, J., "Transmission Control Protocol", STD 7, RFC + 793, September 1981. + + [PS97] Craig Partridge and Tim Shepard. TCP Performance Over + Satellite Links. IEEE Network, 11(5), September/October + 1997. + + [PSC] Jamshid Mahdavi. Enabling High Performance Data Transfers + on Hosts. http://www.psc.edu/networking/perf_tune.html. + + [SMM98] Jeff Semke, Jamshid Mahdavi and Matt Mathis. Automatic TCP + Buffer Tuning. In ACM SIGCOMM, August 1998. To appear. + + [Sta94] William Stallings. Data and Computer Communications. + MacMillian, 4th edition, 1994. + + [Ste97] Stevens, W., "TCP Slow Start, Congestion Avoidance, Fast + Retransmit, and Fast Recovery Algorithms", RFC 2001,January + 1997. + + [Stu95] M. A. Sturza. Architecture of the TELEDESIC Satellite + System. In Proceedings of the International Mobile + Satellite Conference, 1995. + + + + + + + + + + + + + + + + + + + + + + +Allman, et. al. Best Current Practice [Page 17] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + +Authors' Addresses + + Mark Allman + NASA Lewis Research Center/Sterling Software + 21000 Brookpark Rd. MS 54-2 + Cleveland, OH 44135 + + Phone: +1 216 433 6586 + EMail: mallman@lerc.nasa.gov + http://roland.lerc.nasa.gov/~mallman + + + Daniel R. Glover + NASA Lewis Research Center + 21000 Brookpark Rd. + Cleveland, OH 44135 + + Phone: +1 216 433 2847 + EMail: Daniel.R.Glover@lerc.nasa.gov + + + Luis A. Sanchez + BBN Technologies + GTE Internetworking + 10 Moulton Street + Cambridge, MA 02140 + USA + + Phone: +1 617 873 3351 + EMail: lsanchez@ir.bbn.com + + + + + + + + + + + + + + + + + + + + + +Allman, et. al. Best Current Practice [Page 18] + +RFC 2488 Enhancing TCP Over Satellite Channels January 1999 + + +Full Copyright Statement + + Copyright (C) The Internet Society (1999). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + + + + + + + + + + + + + + + + + + + + + + + + +Allman, et. al. Best Current Practice [Page 19] + |