|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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] |
|
|
|
|
|
|