summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc2760.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc2760.txt')
-rw-r--r--doc/rfc/rfc2760.txt2579
1 files changed, 2579 insertions, 0 deletions
diff --git a/doc/rfc/rfc2760.txt b/doc/rfc/rfc2760.txt
new file mode 100644
index 0000000..5779d8d
--- /dev/null
+++ b/doc/rfc/rfc2760.txt
@@ -0,0 +1,2579 @@
+
+
+
+
+
+
+Network Working Group M. Allman, Editor
+Request for Comments: 2760 NASA Glenn Research Center/BBN Technologies
+Category: Informational S. Dawkins
+ Nortel
+ D. Glover
+ J. Griner
+ D. Tran
+ NASA Glenn Research Center
+ T. Henderson
+ University of California at Berkeley
+ J. Heidemann
+ J. Touch
+ University of Southern California/ISI
+ H. Kruse
+ S. Ostermann
+ Ohio University
+ K. Scott
+ The MITRE Corporation
+ J. Semke
+ Pittsburgh Supercomputing Center
+ February 2000
+
+
+ Ongoing TCP Research Related to Satellites
+
+
+Status of this Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2000). All Rights Reserved.
+
+Abstract
+
+ This document outlines possible TCP enhancements that may allow TCP
+ to better utilize the available bandwidth provided by networks
+ containing satellite links. The algorithms and mechanisms outlined
+ have not been judged to be mature enough to be recommended by the
+ IETF. The goal of this document is to educate researchers as to the
+ current work and progress being done in TCP research related to
+ satellite networks.
+
+
+
+
+
+
+Allman, et al. Informational [Page 1]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+Table of Contents
+
+ 1 Introduction. . . . . . . . . . . . . . . . . . . . 2
+ 2 Satellite Architectures . . . . . . . . . . . . . . 3
+ 2.1 Asymmetric Satellite Networks . . . . . . . . . . . 3
+ 2.2 Satellite Link as Last Hop. . . . . . . . . . . . . 3
+ 2.3 Hybrid Satellite Networks . . . . . . . . . . . 4
+ 2.4 Point-to-Point Satellite Networks . . . . . . . . . 4
+ 2.5 Multiple Satellite Hops . . . . . . . . . . . . . . 4
+ 3 Mitigations . . . . . . . . . . . . . . . . . . . . 4
+ 3.1 TCP For Transactions. . . . . . . . . . . . . . . . 4
+ 3.2 Slow Start. . . . . . . . . . . . . . . . . . . . . 5
+ 3.2.1 Larger Initial Window . . . . . . . . . . . . . . . 6
+ 3.2.2 Byte Counting . . . . . . . . . . . . . . . . . . . 7
+ 3.2.3 Delayed ACKs After Slow Start . . . . . . . . . . . 9
+ 3.2.4 Terminating Slow Start. . . . . . . . . . . . . . . 11
+ 3.3 Loss Recovery . . . . . . . . . . . . . . . . . . . 12
+ 3.3.1 Non-SACK Based Mechanisms . . . . . . . . . . . . . 12
+ 3.3.2 SACK Based Mechanisms . . . . . . . . . . . . . . . 13
+ 3.3.3 Explicit Congestion Notification. . . . . . . . . . 16
+ 3.3.4 Detecting Corruption Loss . . . . . . . . . . . . . 18
+ 3.4 Congestion Avoidance. . . . . . . . . . . . . . . . 21
+ 3.5 Multiple Data Connections . . . . . . . . . . . . . 22
+ 3.6 Pacing TCP Segments . . . . . . . . . . . . . . . . 24
+ 3.7 TCP Header Compression. . . . . . . . . . . . . . . 26
+ 3.8 Sharing TCP State Among Similar Connections . . . . 29
+ 3.9 ACK Congestion Control. . . . . . . . . . . . . . . 32
+ 3.10 ACK Filtering . . . . . . . . . . . . . . . . . . . 34
+ 4 Conclusions . . . . . . . . . . . . . . . . . . . . 36
+ 5 Security Considerations . . . . . . . . . . . . . . 36
+ 6 Acknowledgments . . . . . . . . . . . . . . . . . . 37
+ 7 References. . . . . . . . . . . . . . . . . . . . . 37
+ 8 Authors' Addresses. . . . . . . . . . . . . . . . . 43
+ 9 Full Copyright Statement. . . . . . . . . . . . . . 46
+
+1 Introduction
+
+ This document outlines mechanisms that may help the Transmission
+ Control Protocol (TCP) [Pos81] better utilize the bandwidth provided
+ by long-delay satellite environments. These mechanisms may also help
+ in other environments or for other protocols. The proposals outlined
+ in this document are currently being studied throughout the research
+ community. Therefore, these mechanisms are not mature enough to be
+ recommended for wide-spread use by the IETF. However, some of these
+ mechanisms may be safely used today. It is hoped that this document
+ will stimulate further study into the described mechanisms. If, at
+
+
+
+
+
+Allman, et al. Informational [Page 2]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ some point, the mechanisms discussed in this memo prove to be safe
+ and appropriate to be recommended for general use, the appropriate
+ IETF documents will be written.
+
+ It should be noted that non-TCP mechanisms that help performance over
+ satellite links do exist (e.g., application-level changes, queueing
+ disciplines, etc.). However, outlining these non-TCP mitigations is
+ beyond the scope of this document and therefore is left as future
+ work. Additionally, there are a number of mitigations to TCP's
+ performance problems that involve very active intervention by
+ gateways along the end-to-end path from the sender to the receiver.
+ Documenting the pros and cons of such solutions is also left as
+ future work.
+
+2 Satellite Architectures
+
+ Specific characteristics of satellite links and the impact these
+ characteristics have on TCP are presented in RFC 2488 [AGS99]. This
+ section discusses several possible topologies where satellite links
+ may be integrated into the global Internet. The mitigation outlined
+ in section 3 will include a discussion of which environment the
+ mechanism is expected to benefit.
+
+2.1 Asymmetric Satellite Networks
+
+ Some satellite networks exhibit a bandwidth asymmetry, a larger data
+ rate in one direction than the reverse direction, because of limits
+ on the transmission power and the antenna size at one end of the
+ link. Meanwhile, some other satellite systems are unidirectional and
+ use a non-satellite return path (such as a dialup modem link). The
+ nature of most TCP traffic is asymmetric with data flowing in one
+ direction and acknowledgments in opposite direction. However, the
+ term asymmetric in this document refers to different physical
+ capacities in the forward and return links. Asymmetry has been shown
+ to be a problem for TCP [BPK97,BPK98].
+
+2.2 Satellite Link as Last Hop
+
+ Satellite links that provide service directly to end users, as
+ opposed to satellite links located in the middle of a network, may
+ allow for specialized design of protocols used over the last hop.
+ Some satellite providers use the satellite link as a shared high
+ speed downlink to users with a lower speed, non-shared terrestrial
+ link that is used as a return link for requests and acknowledgments.
+ Many times this creates an asymmetric network, as discussed above.
+
+
+
+
+
+
+Allman, et al. Informational [Page 3]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+2.3 Hybrid Satellite Networks
+
+ In the more general case, satellite links may be located at any point
+ in the network topology. In this case, the satellite link acts as
+ just another link between two gateways. In this environment, a given
+ connection may be sent over terrestrial links (including terrestrial
+ wireless), as well as satellite links. On the other hand, a
+ connection could also travel over only the terrestrial network or
+ only over the satellite portion of the network.
+
+2.4 Point-to-Point Satellite Networks
+
+ In point-to-point satellite networks, the only hop in the network is
+ over the satellite link. This pure satellite environment exhibits
+ only the problems associated with the satellite links, as outlined in
+ [AGS99]. Since this is a private network, some mitigations that are
+ not appropriate for shared networks can be considered.
+
+2.5 Multiple Satellite Hops
+
+ In some situations, network traffic may traverse multiple satellite
+ hops between the source and the destination. Such an environment
+ aggravates the satellite characteristics described in [AGS99].
+
+3 Mitigations
+
+ The following sections will discuss various techniques for mitigating
+ the problems TCP faces in the satellite environment. Each of the
+ following sections will be organized as follows: First, each
+ mitigation will be briefly outlined. Next, research work involving
+ the mechanism in question will be briefly discussed. Next the
+ implementation issues of the mechanism will be presented (including
+ whether or not the particular mechanism presents any dangers to
+ shared networks). Then a discussion of the mechanism's potential
+ with regard to the topologies outlined above is given. Finally, the
+ relationships and possible interactions with other TCP mechanisms are
+ outlined. The reader is expected to be familiar with the TCP
+ terminology used in [AGS99].
+
+3.1 TCP For Transactions
+
+3.1.1 Mitigation Description
+
+ TCP uses a three-way handshake to setup a connection between two
+ hosts [Pos81]. This connection setup requires 1-1.5 round-trip times
+ (RTTs), depending upon whether the data sender started the connection
+ actively or passively. This startup time can be eliminated by using
+ TCP extensions for transactions (T/TCP) [Bra94]. After the first
+
+
+
+Allman, et al. Informational [Page 4]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ connection between a pair of hosts is established, T/TCP is able to
+ bypass the three-way handshake, allowing the data sender to begin
+ transmitting data in the first segment sent (along with the SYN).
+ This is especially helpful for short request/response traffic, as it
+ saves a potentially long setup phase when no useful data is being
+ transmitted.
+
+3.1.2 Research
+
+ T/TCP is outlined and analyzed in [Bra92,Bra94].
+
+3.1.3 Implementation Issues
+
+ T/TCP requires changes in the TCP stacks of both the data sender and
+ the data receiver. While T/TCP is safe to implement in shared
+ networks from a congestion control perspective, several security
+ implications of sending data in the first data segment have been
+ identified [ddKI99].
+
+3.1.4 Topology Considerations
+
+ It is expected that T/TCP will be equally beneficial in all
+ environments outlined in section 2.
+
+3.1.5 Possible Interaction and Relationships with Other Research
+
+ T/TCP allows data transfer to start more rapidly, much like using a
+ larger initial congestion window (see section 3.2.1), delayed ACKs
+ after slow start (section 3.2.3) or byte counting (section 3.2.2).
+
+3.2 Slow Start
+
+ The slow start algorithm is used to gradually increase the size of
+ TCP's congestion window (cwnd) [Jac88,Ste97,APS99]. The algorithm is
+ an important safe-guard against transmitting an inappropriate amount
+ of data into the network when the connection starts up. However,
+ slow start can also waste available network capacity, especially in
+ long-delay networks [All97a,Hay97]. Slow start is particularly
+ inefficient for transfers that are short compared to the
+ delay*bandwidth product of the network (e.g., WWW transfers).
+
+ Delayed ACKs are another source of wasted capacity during the slow
+ start phase. RFC 1122 [Bra89] suggests data receivers refrain from
+ ACKing every incoming data segment. However, every second full-sized
+ segment should be ACKed. If a second full-sized segment does not
+ arrive within a given timeout, an ACK must be generated (this timeout
+ cannot exceed 500 ms). Since the data sender increases the size of
+ cwnd based on the number of arriving ACKs, reducing the number of
+
+
+
+Allman, et al. Informational [Page 5]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ ACKs slows the cwnd growth rate. In addition, when TCP starts
+ sending, it sends 1 segment. When using delayed ACKs a second
+ segment must arrive before an ACK is sent. Therefore, the receiver
+ is always forced to wait for the delayed ACK timer to expire before
+ ACKing the first segment, which also increases the transfer time.
+
+ Several proposals have suggested ways to make slow start less time
+ consuming. These proposals are briefly outlined below and references
+ to the research work given.
+
+3.2.1 Larger Initial Window
+
+3.2.1.1 Mitigation Description
+
+ One method that will reduce the amount of time required by slow start
+ (and therefore, the amount of wasted capacity) is to increase the
+ initial value of cwnd. An experimental TCP extension outlined in
+ [AFP98] allows the initial size of cwnd to be increased from 1
+ segment to that given in equation (1).
+
+ min (4*MSS, max (2*MSS, 4380 bytes)) (1)
+
+ By increasing the initial value of cwnd, more packets are sent during
+ the first RTT of data transmission, which will trigger more ACKs,
+ allowing the congestion window to open more rapidly. In addition, by
+ sending at least 2 segments initially, the first segment does not
+ need to wait for the delayed ACK timer to expire as is the case when
+ the initial size of cwnd is 1 segment (as discussed above).
+ Therefore, the value of cwnd given in equation 1 saves up to 3 RTTs
+ and a delayed ACK timeout when compared to an initial cwnd of 1
+ segment.
+
+ Also, we note that RFC 2581 [APS99], a standards-track document,
+ allows a TCP to use an initial cwnd of up to 2 segments. This change
+ is highly recommended for satellite networks.
+
+3.2.1.2 Research
+
+ Several researchers have studied the use of a larger initial window
+ in various environments. [Nic97] and [KAGT98] show a reduction in
+ WWW page transfer time over hybrid fiber coax (HFC) and satellite
+ links respectively. Furthermore, it has been shown that using an
+ initial cwnd of 4 segments does not negatively impact overall
+ performance over dialup modem links with a small number of buffers
+ [SP98]. [AHO98] shows an improvement in transfer time for 16 KB
+ files across the Internet and dialup modem links when using a larger
+ initial value for cwnd. However, a slight increase in dropped
+
+
+
+
+Allman, et al. Informational [Page 6]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ segments was also shown. Finally, [PN98] shows improved transfer
+ time for WWW traffic in simulations with competing traffic, in
+ addition to a small increase in the drop rate.
+
+3.2.1.3 Implementation Issues
+
+ The use of a larger initial cwnd value requires changes to the
+ sender's TCP stack. Using an initial congestion window of 2 segments
+ is allowed by RFC 2581 [APS99]. Using an initial congestion window
+ of 3 or 4 segments is not expected to present any danger of
+ congestion collapse [AFP98], however may degrade performance in some
+ networks.
+
+3.2.1.4 Topology Considerations
+
+ It is expected that the use of a large initial window would be
+ equally beneficial to all network architectures outlined in section
+ 2.
+
+3.2.1.5 Possible Interaction and Relationships with Other Research
+
+ Using a fixed larger initial congestion window decreases the impact
+ of a long RTT on transfer time (especially for short transfers) at
+ the cost of bursting data into a network with unknown conditions. A
+ mechanism that mitigates bursts may make the use of a larger initial
+ congestion window more appropriate (e.g., limiting the size of line-
+ rate bursts [FF96] or pacing the segments in a burst [VH97a]).
+
+ Also, using delayed ACKs only after slow start (as outlined in
+ section 3.2.3) offers an alternative way to immediately ACK the first
+ segment of a transfer and open the congestion window more rapidly.
+ Finally, using some form of TCP state sharing among a number of
+ connections (as discussed in 3.8) may provide an alternative to using
+ a fixed larger initial window.
+
+3.2.2 Byte Counting
+
+3.2.2.1 Mitigation Description
+
+ As discussed above, the wide-spread use of delayed ACKs increases the
+ time needed by a TCP sender to increase the size of the congestion
+ window during slow start. This is especially harmful to flows
+ traversing long-delay GEO satellite links. One mechanism that has
+ been suggested to mitigate the problems caused by delayed ACKs is the
+ use of "byte counting", rather than standard ACK counting
+ [All97a,All98]. Using standard ACK counting, the congestion window
+ is increased by 1 segment for each ACK received during slow start.
+ However, using byte counting the congestion window increase is based
+
+
+
+Allman, et al. Informational [Page 7]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ on the number of previously unacknowledged bytes covered by each
+ incoming ACK, rather than on the number of ACKs received. This makes
+ the increase relative to the amount of data transmitted, rather than
+ being dependent on the ACK interval used by the receiver.
+
+ Two forms of byte counting are studied in [All98]. The first is
+ unlimited byte counting (UBC). This mechanism simply uses the number
+ of previously unacknowledged bytes to increase the congestion window
+ each time an ACK arrives. The second form is limited byte counting
+ (LBC). LBC limits the amount of cwnd increase to 2 segments. This
+ limit throttles the size of the burst of data sent in response to a
+ "stretch ACK" [Pax97]. Stretch ACKs are acknowledgments that cover
+ more than 2 segments of previously unacknowledged data. Stretch ACKs
+ can occur by design [Joh95] (although this is not standard), due to
+ implementation bugs [All97b,PADHV99] or due to ACK loss. [All98]
+ shows that LBC prevents large line-rate bursts when compared to UBC,
+ and therefore offers fewer dropped segments and better performance.
+ In addition, UBC causes large bursts during slow start based loss
+ recovery due to the large cumulative ACKs that can arrive during loss
+ recovery. The behavior of UBC during loss recovery can cause large
+ decreases in performance and [All98] strongly recommends UBC not be
+ deployed without further study into mitigating the large bursts.
+
+ Note: The standards track RFC 2581 [APS99] allows a TCP to use byte
+ counting to increase cwnd during congestion avoidance, however not
+ during slow start.
+
+3.2.2.2 Research
+
+ Using byte counting, as opposed to standard ACK counting, has been
+ shown to reduce the amount of time needed to increase the value of
+ cwnd to an appropriate size in satellite networks [All97a]. In
+ addition, [All98] presents a simulation comparison of byte counting
+ and the standard cwnd increase algorithm in uncongested networks and
+ networks with competing traffic. This study found that the limited
+ form of byte counting outlined above can improve performance, while
+ also increasing the drop rate slightly.
+
+ [BPK97,BPK98] also investigated unlimited byte counting in
+ conjunction with various ACK filtering algorithms (discussed in
+ section 3.10) in asymmetric networks.
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 8]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.2.2.3 Implementation Issues
+
+ Changing from ACK counting to byte counting requires changes to the
+ data sender's TCP stack. Byte counting violates the algorithm for
+ increasing the congestion window outlined in RFC 2581 [APS99] (by
+ making congestion window growth more aggressive during slow start)
+ and therefore should not be used in shared networks.
+
+3.2.2.4 Topology Considerations
+
+ It has been suggested by some (and roundly criticized by others) that
+ byte counting will allow TCP to provide uniform cwnd increase,
+ regardless of the ACKing behavior of the receiver. In addition, byte
+ counting also mitigates the retarded window growth provided by
+ receivers that generate stretch ACKs because of the capacity of the
+ return link, as discussed in [BPK97,BPK98]. Therefore, this change
+ is expected to be especially beneficial to asymmetric networks.
+
+3.2.2.5 Possible Interaction and Relationships with Other Research
+
+ Unlimited byte counting should not be used without a method to
+ mitigate the potentially large line-rate bursts the algorithm can
+ cause. Also, LBC may send bursts that are too large for the given
+ network conditions. In this case, LBC may also benefit from some
+ algorithm that would lessen the impact of line-rate bursts of
+ segments. Also note that using delayed ACKs only after slow start
+ (as outlined in section 3.2.3) negates the limited byte counting
+ algorithm because each ACK covers only one segment during slow start.
+ Therefore, both ACK counting and byte counting yield the same
+ increase in the congestion window at this point (in the first RTT).
+
+3.2.3 Delayed ACKs After Slow Start
+
+3.2.3.1 Mitigation Description
+
+ As discussed above, TCP senders use the number of incoming ACKs to
+ increase the congestion window during slow start. And, since delayed
+ ACKs reduce the number of ACKs returned by the receiver by roughly
+ half, the rate of growth of the congestion window is reduced. One
+ proposed solution to this problem is to use delayed ACKs only after
+ the slow start (DAASS) phase. This provides more ACKs while TCP is
+ aggressively increasing the congestion window and less ACKs while TCP
+ is in steady state, which conserves network resources.
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 9]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.2.3.2 Research
+
+ [All98] shows that in simulation, using delayed ACKs after slow start
+ (DAASS) improves transfer time when compared to a receiver that
+ always generates delayed ACKs. However, DAASS also slightly
+ increases the loss rate due to the increased rate of cwnd growth.
+
+3.2.3.3 Implementation Issues
+
+ The major problem with DAASS is in the implementation. The receiver
+ has to somehow know when the sender is using the slow start
+ algorithm. The receiver could implement a heuristic that attempts to
+ watch the change in the amount of data being received and change the
+ ACKing behavior accordingly. Or, the sender could send a message (a
+ flipped bit in the TCP header, perhaps) indicating that it was using
+ slow start. The implementation of DAASS is, therefore, an open
+ issue.
+
+ Using DAASS does not violate the TCP congestion control specification
+ [APS99]. However, the standards (RFC 2581 [APS99]) currently
+ recommend using delayed acknowledgments and DAASS goes (partially)
+ against this recommendation.
+
+3.2.3.4 Topology Considerations
+
+ DAASS should work equally well in all scenarios presented in section
+ 2. However, in asymmetric networks it may aggravate ACK congestion
+ in the return link, due to the increased number of ACKs (see sections
+ 3.9 and 3.10 for a more detailed discussion of ACK congestion).
+
+3.2.3.5 Possible Interaction and Relationships with Other Research
+
+ DAASS has several possible interactions with other proposals made in
+ the research community. DAASS can aggravate congestion on the path
+ between the data receiver and the data sender due to the increased
+ number of returning acknowledgments. This can have an especially
+ adverse effect on asymmetric networks that are prone to experiencing
+ ACK congestion. As outlined in sections 3.9 and 3.10, several
+ mitigations have been proposed to reduce the number of ACKs that are
+ passed over a low-bandwidth return link. Using DAASS will increase
+ the number of ACKs sent by the receiver. The interaction between
+ DAASS and the methods for reducing the number of ACKs is an open
+ research question. Also, as noted in section 3.2.1.5 above, DAASS
+ provides some of the same benefits as using a larger initial
+ congestion window and therefore it may not be desirable to use both
+ mechanisms together. However, this remains an open question.
+ Finally, DAASS and limited byte counting are both used to increase
+
+
+
+
+Allman, et al. Informational [Page 10]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ the rate at which the congestion window is opened. The DAASS
+ algorithm substantially reduces the impact limited byte counting has
+ on the rate of congestion window increase.
+
+3.2.4 Terminating Slow Start
+
+3.2.4.1 Mitigation Description
+
+ The initial slow start phase is used by TCP to determine an
+ appropriate congestion window size for the given network conditions
+ [Jac88]. Slow start is terminated when TCP detects congestion, or
+ when the size of cwnd reaches the size of the receiver's advertised
+ window. Slow start is also terminated if cwnd grows beyond a certain
+ size. The threshold at which TCP ends slow start and begins using
+ the congestion avoidance algorithm is called "ssthresh" [Jac88]. In
+ most implementations, the initial value for ssthresh is the
+ receiver's advertised window. During slow start, TCP roughly doubles
+ the size of cwnd every RTT and therefore can overwhelm the network
+ with at most twice as many segments as the network can handle. By
+ setting ssthresh to a value less than the receiver's advertised
+ window initially, the sender may avoid overwhelming the network with
+ twice the appropriate number of segments. Hoe [Hoe96] proposes using
+ the packet-pair algorithm [Kes91] and the measured RTT to determine a
+ more appropriate value for ssthresh. The algorithm observes the
+ spacing between the first few returning ACKs to determine the
+ bandwidth of the bottleneck link. Together with the measured RTT,
+ the delay*bandwidth product is determined and ssthresh is set to this
+ value. When TCP's cwnd reaches this reduced ssthresh, slow start is
+ terminated and transmission continues using congestion avoidance,
+ which is a more conservative algorithm for increasing the size of the
+ congestion window.
+
+3.2.4.2 Research
+
+ It has been shown that estimating ssthresh can improve performance
+ and decrease packet loss in simulations [Hoe96]. However, obtaining
+ an accurate estimate of the available bandwidth in a dynamic network
+ is very challenging, especially attempting to do so on the sending
+ side of the TCP connection [AP99]. Therefore, before this mechanism
+ is widely deployed, bandwidth estimation must be studied in a more
+ detail.
+
+3.2.4.3 Implementation Issues
+
+ As outlined in [Hoe96], estimating ssthresh requires changes to the
+ data sender's TCP stack. As suggested in [AP99], bandwidth estimates
+ may be more accurate when taken by the TCP receiver, and therefore
+ both sender and receiver changes would be required. Estimating
+
+
+
+Allman, et al. Informational [Page 11]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ ssthresh is safe to implement in production networks from a
+ congestion control perspective, as it can only make TCP more
+ conservative than outlined in RFC 2581 [APS99] (assuming the TCP
+ implementation is using an initial ssthresh of infinity as allowed by
+ [APS99]).
+
+3.2.4.4 Topology Considerations
+
+ It is expected that this mechanism will work equally well in all
+ symmetric topologies outlined in section 2. However, asymmetric
+ links pose a special problem, as the rate of the returning ACKs may
+ not be the bottleneck bandwidth in the forward direction. This can
+ lead to the sender setting ssthresh too low. Premature termination
+ of slow start can hurt performance, as congestion avoidance opens
+ cwnd more conservatively. Receiver-based bandwidth estimators do not
+ suffer from this problem.
+
+3.2.4.5 Possible Interaction and Relationships with Other Research
+
+ Terminating slow start at the right time is useful to avoid multiple
+ dropped segments. However, using a selective acknowledgment-based
+ loss recovery scheme (as outlined in section 3.3.2) can drastically
+ improve TCP's ability to quickly recover from multiple lost segments
+ Therefore, it may not be as important to terminate slow start before
+ a large loss event occurs. [AP99] shows that using delayed
+ acknowledgments [Bra89] reduces the effectiveness of sender-side
+ bandwidth estimation. Therefore, using delayed ACKs only during slow
+ start (as outlined in section 3.2.3) may make bandwidth estimation
+ more feasible.
+
+3.3 Loss Recovery
+
+3.3.1 Non-SACK Based Mechanisms
+
+3.3.1.1 Mitigation Description
+
+ Several similar algorithms have been developed and studied that
+ improve TCP's ability to recover from multiple lost segments in a
+ window of data without relying on the (often long) retransmission
+ timeout. These sender-side algorithms, known as NewReno TCP, do not
+ depend on the availability of selective acknowledgments (SACKs)
+ [MMFR96].
+
+ These algorithms generally work by updating the fast recovery
+ algorithm to use information provided by "partial ACKs" to trigger
+ retransmissions. A partial ACK covers some new data, but not all
+ data outstanding when a particular loss event starts. For instance,
+ consider the case when segment N is retransmitted using the fast
+
+
+
+Allman, et al. Informational [Page 12]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ retransmit algorithm and segment M is the last segment sent when
+ segment N is resent. If segment N is the only segment lost, the ACK
+ elicited by the retransmission of segment N would be for segment M.
+ If, however, segment N+1 was also lost, the ACK elicited by the
+ retransmission of segment N will be N+1. This can be taken as an
+ indication that segment N+1 was lost and used to trigger a
+ retransmission.
+
+3.3.1.2 Research
+
+ Hoe [Hoe95,Hoe96] introduced the idea of using partial ACKs to
+ trigger retransmissions and showed that doing so could improve
+ performance. [FF96] shows that in some cases using partial ACKs to
+ trigger retransmissions reduces the time required to recover from
+ multiple lost segments. However, [FF96] also shows that in some
+ cases (many lost segments) relying on the RTO timer can improve
+ performance over simply using partial ACKs to trigger all
+ retransmissions. [HK99] shows that using partial ACKs to trigger
+ retransmissions, in conjunction with SACK, improves performance when
+ compared to TCP using fast retransmit/fast recovery in a satellite
+ environment. Finally, [FH99] describes several slightly different
+ variants of NewReno.
+
+3.3.1.3 Implementation Issues
+
+ Implementing these fast recovery enhancements requires changes to the
+ sender-side TCP stack. These changes can safely be implemented in
+ production networks and are allowed by RFC 2581 [APS99].
+
+3.3.1.4 Topology Considerations
+
+ It is expected that these changes will work well in all environments
+ outlined in section 2.
+
+3.3.1.5 Possible Interaction and Relationships with Other Research
+
+ See section 3.3.2.2.5.
+
+3.3.2 SACK Based Mechanisms
+
+3.3.2.1 Fast Recovery with SACK
+
+3.3.2.1.1 Mitigation Description
+
+ Fall and Floyd [FF96] describe a conservative extension to the fast
+ recovery algorithm that takes into account information provided by
+ selective acknowledgments (SACKs) [MMFR96] sent by the receiver. The
+ algorithm starts after fast retransmit triggers the resending of a
+
+
+
+Allman, et al. Informational [Page 13]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ segment. As with fast retransmit, the algorithm cuts cwnd in half
+ when a loss is detected. The algorithm keeps a variable called
+ "pipe", which is an estimate of the number of outstanding segments in
+ the network. The pipe variable is decremented by 1 segment for each
+ duplicate ACK that arrives with new SACK information. The pipe
+ variable is incremented by 1 for each new or retransmitted segment
+ sent. A segment may be sent when the value of pipe is less than cwnd
+ (this segment is either a retransmission per the SACK information or
+ a new segment if the SACK information indicates that no more
+ retransmits are needed).
+
+ This algorithm generally allows TCP to recover from multiple segment
+ losses in a window of data within one RTT of loss detection. Like
+ the forward acknowledgment (FACK) algorithm described below, the SACK
+ information allows the pipe algorithm to decouple the choice of when
+ to send a segment from the choice of what segment to send.
+
+ [APS99] allows the use of this algorithm, as it is consistent with
+ the spirit of the fast recovery algorithm.
+
+3.3.2.1.2 Research
+
+ [FF96] shows that the above described SACK algorithm performs better
+ than several non-SACK based recovery algorithms when 1--4 segments
+ are lost from a window of data. [AHKO97] shows that the algorithm
+ improves performance over satellite links. Hayes [Hay97] shows the
+ in certain circumstances, the SACK algorithm can hurt performance by
+ generating a large line-rate burst of data at the end of loss
+ recovery, which causes further loss.
+
+3.3.2.1.3 Implementation Issues
+
+ This algorithm is implemented in the sender's TCP stack. However, it
+ relies on SACK information generated by the receiver. This algorithm
+ is safe for shared networks and is allowed by RFC 2581 [APS99].
+
+3.3.2.1.4 Topology Considerations
+
+ It is expected that the pipe algorithm will work equally well in all
+ scenarios presented in section 2.
+
+3.3.2.1.5 Possible Interaction and Relationships with Other Research
+
+ See section 3.3.2.2.5.
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 14]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.3.2.2 Forward Acknowledgments
+
+3.3.2.2.1 Mitigation Description
+
+ The Forward Acknowledgment (FACK) algorithm [MM96a,MM96b] was
+ developed to improve TCP congestion control during loss recovery.
+ FACK uses TCP SACK options to glean additional information about the
+ congestion state, adding more precise control to the injection of
+ data into the network during recovery. FACK decouples the congestion
+ control algorithms from the data recovery algorithms to provide a
+ simple and direct way to use SACK to improve congestion control. Due
+ to the separation of these two algorithms, new data may be sent
+ during recovery to sustain TCP's self-clock when there is no further
+ data to retransmit.
+
+ The most recent version of FACK is Rate-Halving [MM96b], in which one
+ packet is sent for every two ACKs received during recovery.
+ Transmitting a segment for every-other ACK has the result of reducing
+ the congestion window in one round trip to half of the number of
+ packets that were successfully handled by the network (so when cwnd
+ is too large by more than a factor of two it still gets reduced to
+ half of what the network can sustain). Another important aspect of
+ FACK with Rate-Halving is that it sustains the ACK self-clock during
+ recovery because transmitting a packet for every-other ACK does not
+ require half a cwnd of data to drain from the network before
+ transmitting, as required by the fast recovery algorithm
+ [Ste97,APS99].
+
+ In addition, the FACK with Rate-Halving implementation provides
+ Thresholded Retransmission to each lost segment. "Tcprexmtthresh" is
+ the number of duplicate ACKs required by TCP to trigger a fast
+ retransmit and enter recovery. FACK applies thresholded
+ retransmission to all segments by waiting until tcprexmtthresh SACK
+ blocks indicate that a given segment is missing before resending the
+ segment. This allows reasonable behavior on links that reorder
+ segments. As described above, FACK sends a segment for every second
+ ACK received during recovery. New segments are transmitted except
+ when tcprexmtthresh SACK blocks have been observed for a dropped
+ segment, at which point the dropped segment is retransmitted.
+
+ [APS99] allows the use of this algorithm, as it is consistent with
+ the spirit of the fast recovery algorithm.
+
+3.3.2.2.2 Research
+
+ The original FACK algorithm is outlined in [MM96a]. The algorithm
+ was later enhanced to include Rate-Halving [MM96b]. The real-world
+ performance of FACK with Rate-Halving was shown to be much closer to
+
+
+
+Allman, et al. Informational [Page 15]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ the theoretical maximum for TCP than either TCP Reno or the SACK-
+ based extensions to fast recovery outlined in section 3.3.2.1
+ [MSMO97].
+
+3.3.2.2.3 Implementation Issues
+
+ In order to use FACK, the sender's TCP stack must be modified. In
+ addition, the receiver must be able to generate SACK options to
+ obtain the full benefit of using FACK. The FACK algorithm is safe
+ for shared networks and is allowed by RFC 2581 [APS99].
+
+3.3.2.2.4 Topology Considerations
+
+ FACK is expected to improve performance in all environments outlined
+ in section 2. Since it is better able to sustain its self-clock than
+ TCP Reno, it may be considerably more attractive over long delay
+ paths.
+
+3.3.2.2.5 Possible Interaction and Relationships with Other Research
+
+ Both SACK based loss recovery algorithms described above (the fast
+ recovery enhancement and the FACK algorithm) are similar in that they
+ attempt to effectively repair multiple lost segments from a window of
+ data. Which of the SACK-based loss recovery algorithms to use is
+ still an open research question. In addition, these algorithms are
+ similar to the non-SACK NewReno algorithm described in section 3.3.1,
+ in that they attempt to recover from multiple lost segments without
+ reverting to using the retransmission timer. As has been shown, the
+ above SACK based algorithms are more robust than the NewReno
+ algorithm. However, the SACK algorithm requires a cooperating TCP
+ receiver, which the NewReno algorithm does not. A reasonable TCP
+ implementation might include both a SACK-based and a NewReno-based
+ loss recovery algorithm such that the sender can use the most
+ appropriate loss recovery algorithm based on whether or not the
+ receiver supports SACKs. Finally, both SACK-based and non-SACK-based
+ versions of fast recovery have been shown to transmit a large burst
+ of data upon leaving loss recovery, in some cases [Hay97].
+ Therefore, the algorithms may benefit from some burst suppression
+ algorithm.
+
+3.3.3 Explicit Congestion Notification
+
+3.3.3.1 Mitigation Description
+
+ Explicit congestion notification (ECN) allows routers to inform TCP
+ senders about imminent congestion without dropping segments. Two
+ major forms of ECN have been studied. A router employing backward
+ ECN (BECN), transmits messages directly to the data originator
+
+
+
+Allman, et al. Informational [Page 16]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ informing it of congestion. IP routers can accomplish this with an
+ ICMP Source Quench message. The arrival of a BECN signal may or may
+ not mean that a TCP data segment has been dropped, but it is a clear
+ indication that the TCP sender should reduce its sending rate (i.e.,
+ the value of cwnd). The second major form of congestion notification
+ is forward ECN (FECN). FECN routers mark data segments with a
+ special tag when congestion is imminent, but forward the data
+ segment. The data receiver then echos the congestion information
+ back to the sender in the ACK packet. A description of a FECN
+ mechanism for TCP/IP is given in [RF99].
+
+ As described in [RF99], senders transmit segments with an "ECN-
+ Capable Transport" bit set in the IP header of each packet. If a
+ router employing an active queueing strategy, such as Random Early
+ Detection (RED) [FJ93,BCC+98], would otherwise drop this segment, an
+ "Congestion Experienced" bit in the IP header is set instead. Upon
+ reception, the information is echoed back to TCP senders using a bit
+ in the TCP header. The TCP sender adjusts the congestion window just
+ as it would if a segment was dropped.
+
+ The implementation of ECN as specified in [RF99] requires the
+ deployment of active queue management mechanisms in the affected
+ routers. This allows the routers to signal congestion by sending TCP
+ a small number of "congestion signals" (segment drops or ECN
+ messages), rather than discarding a large number of segments, as can
+ happen when TCP overwhelms a drop-tail router queue.
+
+ Since satellite networks generally have higher bit-error rates than
+ terrestrial networks, determining whether a segment was lost due to
+ congestion or corruption may allow TCP to achieve better performance
+ in high BER environments than currently possible (due to TCP's
+ assumption that all loss is due to congestion). While not a solution
+ to this problem, adding an ECN mechanism to TCP may be a part of a
+ mechanism that will help achieve this goal. See section 3.3.4 for a
+ more detailed discussion of differentiating between corruption and
+ congestion based losses.
+
+3.3.3.2 Research
+
+ [Flo94] shows that ECN is effective in reducing the segment loss rate
+ which yields better performance especially for short and interactive
+ TCP connections. Furthermore, [Flo94] also shows that ECN avoids
+ some unnecessary, and costly TCP retransmission timeouts. Finally,
+ [Flo94] also considers some of the advantages and disadvantages of
+ various forms of explicit congestion notification.
+
+
+
+
+
+
+Allman, et al. Informational [Page 17]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.3.3.3 Implementation Issues
+
+ Deployment of ECN requires changes to the TCP implementation on both
+ sender and receiver. Additionally, deployment of ECN requires
+ deployment of some active queue management infrastructure in routers.
+ RED is assumed in most ECN discussions, because RED is already
+ identifying segments to drop, even before its buffer space is
+ exhausted. ECN simply allows the delivery of "marked" segments while
+ still notifying the end nodes that congestion is occurring along the
+ path. ECN is safe (from a congestion control perspective) for shared
+ networks, as it maintains the same TCP congestion control principles
+ as are used when congestion is detected via segment drops.
+
+3.3.3.4 Topology Considerations
+
+ It is expected that none of the environments outlined in section 2
+ will present a bias towards or against ECN traffic.
+
+3.3.3.5 Possible Interaction and Relationships with Other Research
+
+ Note that some form of active queueing is necessary to use ECN (e.g.,
+ RED queueing).
+
+3.3.4 Detecting Corruption Loss
+
+ Differentiating between congestion (loss of segments due to router
+ buffer overflow or imminent buffer overflow) and corruption (loss of
+ segments due to damaged bits) is a difficult problem for TCP. This
+ differentiation is particularly important because the action that TCP
+ should take in the two cases is entirely different. In the case of
+ corruption, TCP should merely retransmit the damaged segment as soon
+ as its loss is detected; there is no need for TCP to adjust its
+ congestion window. On the other hand, as has been widely discussed
+ above, when the TCP sender detects congestion, it should immediately
+ reduce its congestion window to avoid making the congestion worse.
+
+ TCP's defined behavior, as motivated by [Jac88,Jac90] and defined in
+ [Bra89,Ste97,APS99], is to assume that all loss is due to congestion
+ and to trigger the congestion control algorithms, as defined in
+ [Ste97,APS99]. The loss may be detected using the fast retransmit
+ algorithm, or in the worst case is detected by the expiration of
+ TCP's retransmission timer.
+
+ TCP's assumption that loss is due to congestion rather than
+ corruption is a conservative mechanism that prevents congestion
+ collapse [Jac88,FF98]. Over satellite networks, however, as in many
+ wireless environments, loss due to corruption is more common than on
+ terrestrial networks. One common partial solution to this problem is
+
+
+
+Allman, et al. Informational [Page 18]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ to add Forward Error Correction (FEC) to the data that's sent over
+ the satellite/wireless link. A more complete discussion of the
+ benefits of FEC can be found in [AGS99]. However, given that FEC
+ does not always work or cannot be universally applied, other
+ mechanisms have been studied to attempt to make TCP able to
+ differentiate between congestion-based and corruption-based loss.
+
+ TCP segments that have been corrupted are most often dropped by
+ intervening routers when link-level checksum mechanisms detect that
+ an incoming frame has errors. Occasionally, a TCP segment containing
+ an error may survive without detection until it arrives at the TCP
+ receiving host, at which point it will almost always either fail the
+ IP header checksum or the TCP checksum and be discarded as in the
+ link-level error case. Unfortunately, in either of these cases, it's
+ not generally safe for the node detecting the corruption to return
+ information about the corrupt packet to the TCP sender because the
+ sending address itself might have been corrupted.
+
+3.3.4.1 Mitigation Description
+
+ Because the probability of link errors on a satellite link is
+ relatively greater than on a hardwired link, it is particularly
+ important that the TCP sender retransmit these lost segments without
+ reducing its congestion window. Because corrupt segments do not
+ indicate congestion, there is no need for the TCP sender to enter a
+ congestion avoidance phase, which may waste available bandwidth.
+ Simulations performed in [SF98] show a performance improvement when
+ TCP can properly differentiate between between corruption and
+ congestion of wireless links.
+
+ Perhaps the greatest research challenge in detecting corruption is
+ getting TCP (a transport-layer protocol) to receive appropriate
+ information from either the network layer (IP) or the link layer.
+ Much of the work done to date has involved link-layer mechanisms that
+ retransmit damaged segments. The challenge seems to be to get these
+ mechanisms to make repairs in such a way that TCP understands what
+ happened and can respond appropriately.
+
+3.3.4.2 Research
+
+ Research into corruption detection to date has focused primarily on
+ making the link level detect errors and then perform link-level
+ retransmissions. This work is summarized in [BKVP97,BPSK96]. One of
+ the problems with this promising technique is that it causes an
+ effective reordering of the segments from the TCP receiver's point of
+ view. As a simple example, if segments A B C D are sent across a
+ noisy link and segment B is corrupted, segments C and D may have
+ already crossed the link before B can be retransmitted at the link
+
+
+
+Allman, et al. Informational [Page 19]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ level, causing them to arrive at the TCP receiver in the order A C D
+ B. This segment reordering would cause the TCP receiver to generate
+ duplicate ACKs upon the arrival of segments C and D. If the
+ reordering was bad enough, the sender would trigger the fast
+ retransmit algorithm in the TCP sender, in response to the duplicate
+ ACKs. Research presented in [MV98] proposes the idea of suppressing
+ or delaying the duplicate ACKs in the reverse direction to counteract
+ this behavior. Alternatively, proposals that make TCP more robust in
+ the face of re-ordered segment arrivals [Flo99] may reduce the side
+ effects of the re-ordering caused by link-layer retransmissions.
+
+ A more high-level approach, outlined in the [DMT96], uses a new
+ "corruption experienced" ICMP error message generated by routers that
+ detect corruption. These messages are sent in the forward direction,
+ toward the packet's destination, rather than in the reverse direction
+ as is done with ICMP Source Quench messages. Sending the error
+ messages in the forward direction allows this feedback to work over
+ asymmetric paths. As noted above, generating an error message in
+ response to a damaged packet is problematic because the source and
+ destination addresses may not be valid. The mechanism outlined in
+ [DMT96] gets around this problem by having the routers maintain a
+ small cache of recent packet destinations; when the router
+ experiences an error rate above some threshold, it sends an ICMP
+ corruption-experienced message to all of the destinations in its
+ cache. Each TCP receiver then must return this information to its
+ respective TCP sender (through a TCP option). Upon receiving an ACK
+ with this "corruption-experienced" option, the TCP sender assumes
+ that packet loss is due to corruption rather than congestion for two
+ round trip times (RTT) or until it receives additional link state
+ information (such as "link down", source quench, or additional
+ "corruption experienced" messages). Note that in shared networks,
+ ignoring segment loss for 2 RTTs may aggravate congestion by making
+ TCP unresponsive.
+
+3.3.4.3 Implementation Issues
+
+ All of the techniques discussed above require changes to at least the
+ TCP sending and receiving stacks, as well as intermediate routers.
+ Due to the concerns over possibly ignoring congestion signals (i.e.,
+ segment drops), the above algorithm is not recommended for use in
+ shared networks.
+
+3.3.4.4 Topology Considerations
+
+ It is expected that corruption detection, in general would be
+ beneficial in all environments outlined in section 2. It would be
+ particularly beneficial in the satellite/wireless environment over
+ which these errors may be more prevalent.
+
+
+
+Allman, et al. Informational [Page 20]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.3.4.5 Possible Interaction and Relationships with Other Research
+
+ SACK-based loss recovery algorithms (as described in 3.3.2) may
+ reduce the impact of corrupted segments on mostly clean links because
+ recovery will be able to happen more rapidly (and without relying on
+ the retransmission timer). Note that while SACK-based loss recovery
+ helps, throughput will still suffer in the face of non-congestion
+ related packet loss.
+
+3.4 Congestion Avoidance
+
+3.4.1 Mitigation Description
+
+ During congestion avoidance, in the absence of loss, the TCP sender
+ adds approximately one segment to its congestion window during each
+ RTT [Jac88,Ste97,APS99]. Several researchers have observed that this
+ policy leads to unfair sharing of bandwidth when multiple connections
+ with different RTTs traverse the same bottleneck link, with the long
+ RTT connections obtaining only a small fraction of their fair share
+ of the bandwidth.
+
+ One effective solution to this problem is to deploy fair queueing and
+ TCP-friendly buffer management in network routers [Sut98]. However,
+ in the absence of help from the network, other researchers have
+ investigated changes to the congestion avoidance policy at the TCP
+ sender, as described in [Flo91,HK98].
+
+3.4.2 Research
+
+ The "Constant-Rate" increase policy has been studied in [Flo91,HK98].
+ It attempts to equalize the rate at which TCP senders increase their
+ sending rate during congestion avoidance. Both [Flo91] and [HK98]
+ illustrate cases in which the "Constant-Rate" policy largely corrects
+ the bias against long RTT connections, although [HK98] presents some
+ evidence that such a policy may be difficult to incrementally deploy
+ in an operational network. The proper selection of a constant (for
+ the constant rate of increase) is an open issue.
+
+ The "Increase-by-K" policy can be selectively used by long RTT
+ connections in a heterogeneous environment. This policy simply
+ changes the slope of the linear increase, with connections over a
+ given RTT threshold adding "K" segments to the congestion window
+ every RTT, instead of one. [HK98] presents evidence that this
+ policy, when used with small values of "K", may be successful in
+ reducing the unfairness while keeping the link utilization high, when
+ a small number of connections share a bottleneck link. The selection
+ of the constant "K," the RTT threshold to invoke this policy, and
+ performance under a large number of flows are all open issues.
+
+
+
+Allman, et al. Informational [Page 21]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.4.3 Implementation Issues
+
+ Implementation of either the "Constant-Rate" or "Increase-by-K"
+ policies requires a change to the congestion avoidance mechanism at
+ the TCP sender. In the case of "Constant-Rate," such a change must
+ be implemented globally. Additionally, the TCP sender must have a
+ reasonably accurate estimate of the RTT of the connection. The
+ algorithms outlined above violate the congestion avoidance algorithm
+ as outlined in RFC 2581 [APS99] and therefore should not be
+ implemented in shared networks at this time.
+
+3.4.4 Topology Considerations
+
+ These solutions are applicable to all satellite networks that are
+ integrated with a terrestrial network, in which satellite connections
+ may be competing with terrestrial connections for the same bottleneck
+ link.
+
+3.4.5 Possible Interaction and Relationships with Other Research
+
+ As shown in [PADHV99], increasing the congestion window by multiple
+ segments per RTT can cause TCP to drop multiple segments and force a
+ retransmission timeout in some versions of TCP. Therefore, the above
+ changes to the congestion avoidance algorithm may need to be
+ accompanied by a SACK-based loss recovery algorithm that can quickly
+ repair multiple dropped segments.
+
+3.5 Multiple Data Connections
+
+3.5.1 Mitigation Description
+
+ One method that has been used to overcome TCP's inefficiencies in the
+ satellite environment is to use multiple TCP flows to transfer a
+ given file. The use of N TCP connections makes the sender N times
+ more aggressive and therefore can improve throughput in some
+ situations. Using N multiple TCP connections can impact the transfer
+ and the network in a number of ways, which are listed below.
+
+ 1. The transfer is able to start transmission using an effective
+ congestion window of N segments, rather than a single segment as
+ one TCP flow uses. This allows the transfer to more quickly
+ increase the effective cwnd size to an appropriate size for the
+ given network. However, in some circumstances an initial window
+ of N segments is inappropriate for the network conditions. In
+ this case, a transfer utilizing more than one connection may
+ aggravate congestion.
+
+
+
+
+
+Allman, et al. Informational [Page 22]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ 2. During the congestion avoidance phase, the transfer increases the
+ effective cwnd by N segments per RTT, rather than the one segment
+ per RTT increase that a single TCP connection provides. Again,
+ this can aid the transfer by more rapidly increasing the effective
+ cwnd to an appropriate point. However, this rate of increase can
+ also be too aggressive for the network conditions. In this case,
+ the use of multiple data connections can aggravate congestion in
+ the network.
+
+ 3. Using multiple connections can provide a very large overall
+ congestion window. This can be an advantage for TCP
+ implementations that do not support the TCP window scaling
+ extension [JBB92]. However, the aggregate cwnd size across all N
+ connections is equivalent to using a TCP implementation that
+ supports large windows.
+
+ 4. The overall cwnd decrease in the face of dropped segments is
+ reduced when using N parallel connections. A single TCP
+ connection reduces the effective size of cwnd to half when a
+ single segment loss is detected. When utilizing N connections
+ each using a window of W bytes, a single drop reduces the window
+ to:
+
+ (N * W) - (W / 2)
+
+ Clearly this is a less dramatic reduction in the effective cwnd size
+ than when using a single TCP connection. And, the amount by which
+ the cwnd is decreased is further reduced by increasing N.
+
+ The use of multiple data connections can increase the ability of
+ non-SACK TCP implementations to quickly recover from multiple dropped
+ segments without resorting to a timeout, assuming the dropped
+ segments cross connections.
+
+ The use of multiple parallel connections makes TCP overly aggressive
+ for many environments and can contribute to congestive collapse in
+ shared networks [FF99]. The advantages provided by using multiple
+ TCP connections are now largely provided by TCP extensions (larger
+ windows, SACKs, etc.). Therefore, the use of a single TCP connection
+ is more "network friendly" than using multiple parallel connections.
+ However, using multiple parallel TCP connections may provide
+ performance improvement in private networks.
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 23]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.5.2 Research
+
+ Research on the use of multiple parallel TCP connections shows
+ improved performance [IL92,Hah94,AOK95,AKO96]. In addition, research
+ has shown that multiple TCP connections can outperform a single
+ modern TCP connection (with large windows and SACK) [AHKO97].
+ However, these studies did not consider the impact of using multiple
+ TCP connections on competing traffic. [FF99] argues that using
+ multiple simultaneous connections to transfer a given file may lead
+ to congestive collapse in shared networks.
+
+3.5.3 Implementation Issues
+
+ To utilize multiple parallel TCP connections a client application and
+ the corresponding server must be customized. As outlined in [FF99]
+ using multiple parallel TCP connections is not safe (from a
+ congestion control perspective) in shared networks and should not be
+ used.
+
+3.5.4 Topological Considerations
+
+ As stated above, [FF99] outlines that the use of multiple parallel
+ connections in a shared network, such as the Internet, may lead to
+ congestive collapse. However, the use of multiple connections may be
+ safe and beneficial in private networks. The specific topology being
+ used will dictate the number of parallel connections required. Some
+ work has been done to determine the appropriate number of connections
+ on the fly [AKO96], but such a mechanism is far from complete.
+
+3.5.5 Possible Interaction and Relationships with Other Research
+
+ Using multiple concurrent TCP connections enables use of a large
+ congestion window, much like the TCP window scaling option [JBB92].
+ In addition, a larger initial congestion window is achieved, similar
+ to using [AFP98] or TCB sharing (see section 3.8).
+
+3.6 Pacing TCP Segments
+
+3.6.1 Mitigation Description
+
+ Slow-start takes several round trips to fully open the TCP congestion
+ window over routes with high bandwidth-delay products. For short TCP
+ connections (such as WWW traffic with HTTP/1.0), the slow-start
+ overhead can preclude effective use of the high-bandwidth satellite
+ links. When senders implement slow-start restart after a TCP
+ connection goes idle (suggested by Jacobson and Karels [JK92]),
+
+
+
+
+
+Allman, et al. Informational [Page 24]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ performance is reduced in long-lived (but bursty) connections (such
+ as HTTP/1.1, which uses persistent TCP connections to transfer
+ multiple WWW page elements) [Hei97a].
+
+ Rate-based pacing (RBP) is a technique, used in the absence of
+ incoming ACKs, where the data sender temporarily paces TCP segments
+ at a given rate to restart the ACK clock. Upon receipt of the first
+ ACK, pacing is discontinued and normal TCP ACK clocking resumes. The
+ pacing rate may either be known from recent traffic estimates (when
+ restarting an idle connection or from recent prior connections), or
+ may be known through external means (perhaps in a point-to-point or
+ point-to-multipoint satellite network where available bandwidth can
+ be assumed to be large).
+
+ In addition, pacing data during the first RTT of a transfer may allow
+ TCP to make effective use of high bandwidth-delay links even for
+ short transfers. However, in order to pace segments during the first
+ RTT a TCP will have to be using a non-standard initial congestion
+ window and a new mechanism to pace outgoing segments rather than send
+ them back-to-back. Determining an appropriate size for the initial
+ cwnd is an open research question. Pacing can also be used to reduce
+ bursts in general (due to buggy TCPs or byte counting, see section
+ 3.2.2 for a discussion on byte counting).
+
+3.6.2 Research
+
+ Simulation studies of rate-paced pacing for WWW-like traffic have
+ shown reductions in router congestion and drop rates [VH97a]. In
+ this environment, RBP substantially improves performance compared to
+ slow-start-after-idle for intermittent senders, and it slightly
+ improves performance over burst-full-cwnd-after-idle (because of
+ drops) [VH98]. More recently, pacing has been suggested to eliminate
+ burstiness in networks with ACK filtering [BPK97].
+
+3.6.3 Implementation Issues
+
+ RBP requires only sender-side changes to TCP. Prototype
+ implementations of RBP are available [VH97b]. RBP requires an
+ additional sender timer for pacing. The overhead of timer-driven
+ data transfer is often considered too high for practical use.
+ Preliminary experiments suggest that in RBP this overhead is minimal
+ because RBP only requires this timer for one RTT of transmission
+ [VH98]. RBP is expected to make TCP more conservative in sending
+ bursts of data after an idle period in hosts that do not revert to
+ slow start after an idle period. On the other hand, RBP makes TCP
+ more aggressive if the sender uses the slow start algorithm to start
+ the ACK clock after a long idle period.
+
+
+
+
+Allman, et al. Informational [Page 25]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.6.4 Topology Considerations
+
+ RBP could be used to restart idle TCP connections for all topologies
+ in Section 2. Use at the beginning of new connections would be
+ restricted to topologies where available bandwidth can be estimated
+ out-of-band.
+
+3.6.5 Possible Interaction and Relationships with Other Research
+
+ Pacing segments may benefit from sharing state amongst various flows
+ between two hosts, due to the time required to determine the needed
+ information. Additionally, pacing segments, rather than sending
+ back-to-back segments, may make estimating the available bandwidth
+ (as outlined in section 3.2.4) more difficult.
+
+3.7 TCP Header Compression
+
+ The TCP and IP header information needed to reliably deliver packets
+ to a remote site across the Internet can add significant overhead,
+ especially for interactive applications. Telnet packets, for
+ example, typically carry only a few bytes of data per packet, and
+ standard IPv4/TCP headers add at least 40 bytes to this; IPv6/TCP
+ headers add at least 60 bytes. Much of this information remains
+ relatively constant over the course of a session and so can be
+ replaced by a short session identifier.
+
+3.7.1 Mitigation Description
+
+ Many fields in the TCP and IP headers either remain constant during
+ the course of a session, change very infrequently, or can be inferred
+ from other sources. For example, the source and destination
+ addresses, as well as the IP version, protocol, and port fields
+ generally do not change during a session. Packet length can be
+ deduced from the length field of the underlying link layer protocol
+ provided that the link layer packet is not padded. Packet sequence
+ numbers in a forward data stream generally change with every packet,
+ but increase in a predictable manner.
+
+ The TCP/IP header compression methods described in
+ [DNP99,DENP97,Jac90] reduce the overhead of TCP sessions by replacing
+ the data in the TCP and IP headers that remains constant, changes
+ slowly, or changes in a predictable manner with a short "connection
+ number". Using this method, the sender first sends a full TCP/IP
+ header, including in it a connection number that the sender will use
+ to reference the connection. The receiver stores the full header and
+ uses it as a template, filling in some fields from the limited
+
+
+
+
+
+Allman, et al. Informational [Page 26]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ information contained in later, compressed headers. This compression
+ can reduce the size of an IPv4/TCP headers from 40 to as few as 3 to
+ 5 bytes (3 bytes for some common cases, 5 bytes in general).
+
+ Compression and decompression generally happen below the IP layer, at
+ the end-points of a given physical link (such as at two routers
+ connected by a serial line). The hosts on either side of the
+ physical link must maintain some state about the TCP connections that
+ are using the link.
+
+ The decompresser must pass complete, uncompressed packets to the IP
+ layer. Thus header compression is transparent to routing, for
+ example, since an incoming packet with compressed headers is expanded
+ before being passed to the IP layer.
+
+ A variety of methods can be used by the compressor/decompressor to
+ negotiate the use of header compression. For example, the PPP serial
+ line protocol allows for an option exchange, during which time the
+ compressor/decompressor agree on whether or not to use header
+ compression. For older SLIP implementations, [Jac90] describes a
+ mechanism that uses the first bit in the IP packet as a flag.
+
+ The reduction in overhead is especially useful when the link is
+ bandwidth-limited such as terrestrial wireless and mobile satellite
+ links, where the overhead associated with transmitting the header
+ bits is nontrivial. Header compression has the added advantage that
+ for the case of uniformly distributed bit errors, compressing TCP/IP
+ headers can provide a better quality of service by decreasing the
+ packet error probability. The shorter, compressed packets are less
+ likely to be corrupted, and the reduction in errors increases the
+ connection's throughput.
+
+ Extra space is saved by encoding changes in fields that change
+ relatively slowly by sending only their difference from their values
+ in the previous packet instead of their absolute values. In order to
+ decode headers compressed this way, the receiver keeps a copy of each
+ full, reconstructed TCP header after it is decoded, and applies the
+ delta values from the next decoded compressed header to the
+ reconstructed full header template.
+
+ A disadvantage to using this delta encoding scheme where values are
+ encoded as deltas from their values in the previous packet is that if
+ a single compressed packet is lost, subsequent packets with
+ compressed headers can become garbled if they contain fields which
+ depend on the lost packet. Consider a forward data stream of packets
+ with compressed headers and increasing sequence numbers. If packet N
+ is lost, the full header of packet N+1 will be reconstructed at the
+ receiver using packet N-1's full header as a template. Thus the
+
+
+
+Allman, et al. Informational [Page 27]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ sequence number, which should have been calculated from packet N's
+ header, will be wrong, the checksum will fail, and the packet will be
+ discarded. When the sending TCP times out and retransmits a packet
+ with a full header is forwarded to re-synchronize the decompresser.
+
+ It is important to note that the compressor does not maintain any
+ timers, nor does the decompresser know when an error occurred (only
+ the receiving TCP knows this, when the TCP checksum fails). A single
+ bit error will cause the decompresser to lose sync, and subsequent
+ packets with compressed headers will be dropped by the receiving TCP,
+ since they will all fail the TCP checksum. When this happens, no
+ duplicate acknowledgments will be generated, and the decompresser can
+ only re-synchronize when it receives a packet with an uncompressed
+ header. This means that when header compression is being used, both
+ fast retransmit and selective acknowledgments will not be able
+ correct packets lost on a compressed link. The "twice" algorithm,
+ described below, may be a partial solution to this problem.
+
+ [DNP99] and [DENP97] describe TCP/IPv4 and TCP/IPv6 compression
+ algorithms including compressing the various IPv6 extension headers
+ as well as methods for compressing non-TCP streams. [DENP97] also
+ augments TCP header compression by introducing the "twice" algorithm.
+ If a particular packet fails to decompress properly, the twice
+ algorithm modifies its assumptions about the inferred fields in the
+ compressed header, assuming that a packet identical to the current
+ one was dropped between the last correctly decoded packet and the
+ current one. Twice then tries to decompress the received packet
+ under the new assumptions and, if the checksum passes, the packet is
+ passed to IP and the decompresser state has been re-synchronized.
+ This procedure can be extended to three or more decoding attempts.
+ Additional robustness can be achieved by caching full copies of
+ packets which don't decompress properly in the hopes that later
+ arrivals will fix the problem. Finally, the performance improvement
+ if the decompresser can explicitly request a full header is
+ discussed. Simulation results show that twice, in conjunction with
+ the full header request mechanism, can improve throughput over
+ uncompressed streams.
+
+3.7.2 Research
+
+ [Jac90] outlines a simple header compression scheme for TCP/IP.
+
+ In [DENP97] the authors present the results of simulations showing
+ that header compression is advantageous for both low and medium
+ bandwidth links. Simulations show that the twice algorithm, combined
+ with an explicit header request mechanism, improved throughput by
+ 10-15% over uncompressed sessions across a wide range of bit error
+ rates.
+
+
+
+Allman, et al. Informational [Page 28]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ Much of this improvement may have been due to the twice algorithm
+ quickly re-synchronizing the decompresser when a packet is lost.
+ This is because the twice algorithm, applied one or two times when
+ the decompresser becomes unsynchronized, will re-sync the
+ decompresser in between 83% and 99% of the cases examined. This
+ means that packets received correctly after twice has resynchronized
+ the decompresser will cause duplicate acknowledgments. This re-
+ enables the use of both fast retransmit and SACK in conjunction with
+ header compression.
+
+3.7.3 Implementation Issues
+
+ Implementing TCP/IP header compression requires changes at both the
+ sending (compressor) and receiving (decompresser) ends of each link
+ that uses compression. The twice algorithm requires very little
+ extra machinery over and above header compression, while the explicit
+ header request mechanism of [DENP97] requires more extensive
+ modifications to the sending and receiving ends of each link that
+ employs header compression. Header compression does not violate
+ TCP's congestion control mechanisms and therefore can be safely
+ implemented in shared networks.
+
+3.7.4 Topology Considerations
+
+ TCP/IP header compression is applicable to all of the environments
+ discussed in section 2, but will provide relatively more improvement
+ in situations where packet sizes are small (i.e., overhead is large)
+ and there is medium to low bandwidth and/or higher BER. When TCP's
+ congestion window size is large, implementing the explicit header
+ request mechanism, the twice algorithm, and caching packets which
+ fail to decompress properly becomes more critical.
+
+3.7.5 Possible Interaction and Relationships with Other Research
+
+ As discussed above, losing synchronization between a sender and
+ receiver can cause many packet drops. The frequency of losing
+ synchronization and the effectiveness of the twice algorithm may
+ point to using a SACK-based loss recovery algorithm to reduce the
+ impact of multiple lost segments. However, even very robust SACK-
+ based algorithms may not work well if too many segments are lost.
+
+3.8 Sharing TCP State Among Similar Connections
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 29]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.8.1 Mitigation Description
+
+ Persistent TCP state information can be used to overcome limitations
+ in the configuration of the initial state, and to automatically tune
+ TCP to environments using satellite links and to coordinate multiple
+ TCP connections sharing a satellite link.
+
+ TCP includes a variety of parameters, many of which are set to
+ initial values which can severely affect the performance of TCP
+ connections traversing satellite links, even though most TCP
+ parameters are adjusted later after the connection is established.
+ These parameters include initial size of cwnd and initial MSS size.
+ Various suggestions have been made to change these initial
+ conditions, to more effectively support satellite links. However, it
+ is difficult to select any single set of parameters which is
+ effective for all environments.
+
+ An alternative to attempting to select these parameters a-priori is
+ sharing state across TCP connections and using this state when
+ initializing a new connection. For example, if all connections to a
+ subnet result in extended congestion windows of 1 megabyte, it is
+ probably more efficient to start new connections with this value,
+ than to rediscover it by requiring the cwnd to increase using slow
+ start over a period of dozens of round-trip times.
+
+3.8.2 Research
+
+ Sharing state among connections brings up a number of questions such
+ as what information to share, with whom to share, how to share it,
+ and how to age shared information. First, what information is to be
+ shared must be determined. Some information may be appropriate to
+ share among TCP connections, while some information sharing may be
+ inappropriate or not useful. Next, we need to determine with whom to
+ share information. Sharing may be appropriate for TCP connections
+ sharing a common path to a given host. Information may be shared
+ among connections within a host, or even among connections between
+ different hosts, such as hosts on the same LAN. However, sharing
+ information between connections not traversing the same network may
+ not be appropriate. Given the state to share and the parties that
+ share it, a mechanism for the sharing is required. Simple state,
+ like MSS and RTT, is easy to share, but congestion window information
+ can be shared a variety of ways. The sharing mechanism determines
+ priorities among the sharing connections, and a variety of fairness
+ criteria need to be considered. Also, the mechanisms by which
+ information is aged require further study. See RFC 2140 for a
+ discussion of the security issues in both sharing state within a
+ single host and sharing state among hosts on a subnet. Finally, the
+ security concerns associated with sharing a piece of information need
+
+
+
+Allman, et al. Informational [Page 30]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ to be carefully considered before introducing such a mechanism. Many
+ of these open research questions must be answered before state
+ sharing can be widely deployed.
+
+ The opportunity for such sharing, both among a sequence of
+ connections, as well as among concurrent connections, is described in
+ more detail in [Tou97]. The state management itself is largely an
+ implementation issue, however what information should be shared and
+ the specific ways in which the information should be shared is an
+ open question.
+
+ Sharing parts of the TCB state was originally documented in T/TCP
+ [Bra92], and is used there to aggregate RTT values across connection
+ instances, to provide meaningful average RTTs, even though most
+ connections are expected to persist for only one RTT. T/TCP also
+ shares a connection identifier, a sequence number separate from the
+ window number and address/port pairs by which TCP connections are
+ typically distinguished. As a result of this shared state, T/TCP
+ allows a receiver to pass data in the SYN segment to the receiving
+ application, prior to the completion of the three-way handshake,
+ without compromising the integrity of the connection. In effect, this
+ shared state caches a partial handshake from the previous connection,
+ which is a variant of the more general issue of TCB sharing.
+
+ Sharing state among connections (including transfers using non-TCP
+ protocols) is further investigated in [BRS99].
+
+3.8.3 Implementation Issues
+
+ Sharing TCP state across connections requires changes to the sender's
+ TCP stack, and possibly the receiver's TCP stack (as in the case of
+ T/TCP, for example). Sharing TCP state may make a particular TCP
+ connection more aggressive. However, the aggregate traffic should be
+ more conservative than a group of independent TCP connections.
+ Therefore, sharing TCP state should be safe for use in shared
+ networks. Note that state sharing does not present any new security
+ problems within multiuser hosts. In such a situation, users can
+ steal network resources from one another with or without state
+ sharing.
+
+3.8.4 Topology Considerations
+
+ It is expected that sharing state across TCP connections may be
+ useful in all network environments presented in section 2.
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 31]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.8.5 Possible Interaction and Relationships with Other Research
+
+ The state sharing outlined above is very similar to the Congestion
+ Manager proposal [BRS99] that attempts to share congestion control
+ information among both TCP and UDP flows between a pair of hosts.
+
+3.9 ACK Congestion Control
+
+ In highly asymmetric networks, a low-speed return link can restrict
+ the performance of the data flow on a high-speed forward link by
+ limiting the flow of acknowledgments returned to the data sender.
+ For example, if the data sender uses 1500 byte segments, and the
+ receiver generates 40 byte acknowledgments (IPv4, TCP without
+ options), the reverse link will congest with ACKs for asymmetries of
+ more than 75:1 if delayed ACKs are used, and 37:1 if every segment is
+ acknowledged. For a 1.5 Mb/second data link, ACK congestion will
+ occur for reverse link speeds below 20 kilobits/sec. These levels of
+ asymmetry will readily occur if the reverse link is shared among
+ multiple satellite receivers, as is common in many VSAT satellite
+ networks. If a terrestrial modem link is used as a reverse link, ACK
+ congestion is also likely, especially as the speed of the forward
+ link is increased. Current congestion control mechanisms are aimed
+ at controlling the flow of data segments, but do not affect the flow
+ of ACKs.
+
+ In [KVR98] the authors point out that the flow of acknowledgments can
+ be restricted on the low-speed link not only by the bandwidth of the
+ link, but also by the queue length of the router. The router may
+ limit its queue length by counting packets, not bytes, and therefore
+ begin discarding ACKs even if there is enough bandwidth to forward
+ them.
+
+3.9.1 Mitigation Description
+
+ ACK Congestion Control extends the concept of flow control for data
+ segments to acknowledgment segments. In the method described in
+ [BPK97], any intermediate router can mark an acknowledgment with an
+ Explicit Congestion Notification (ECN) bit once the queue occupancy
+ in the router exceeds a given threshold. The data sender (which
+ receives the acknowledgment) must "echo" the ECN bit back to the data
+ receiver (see section 3.3.3 for a more detailed discussion of ECN).
+ The proposed algorithm for marking ACK segments with an ECN bit is
+ Random Early Detection (RED) [FJ93]. In response to the receipt of
+ ECN marked data segments, the receiver will dynamically reduce the
+ rate of acknowledgments using a multiplicative backoff. Once
+ segments without ECN are received, the data receiver speeds up
+ acknowledgments using a linear increase, up to a rate of either 1 (no
+
+
+
+
+Allman, et al. Informational [Page 32]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ delayed ACKs) or 2 (normal delayed ACKs) data segments per ACK. The
+ authors suggest that an ACK be generated at least once per window,
+ and ideally a few times per window.
+
+ As in the RED congestion control mechanism for data flow, the
+ bottleneck gateway can randomly discard acknowledgments, rather than
+ marking them with an ECN bit, once the queue fills beyond a given
+ threshold.
+
+3.9.2 Research
+
+ [BPK97] analyze the effect of ACK Congestion Control (ACC) on the
+ performance of an asymmetric network. They note that the use of ACC,
+ and indeed the use of any scheme which reduces the frequency of
+ acknowledgments, has potential unwanted side effects. Since each ACK
+ will acknowledge more than the usual one or two data segments, the
+ likelihood of segment bursts from the data sender is increased. In
+ addition, congestion window growth may be impeded if the receiver
+ grows the window by counting received ACKs, as mandated by
+ [Ste97,APS99]. The authors therefore combine ACC with a series of
+ modifications to the data sender, referred to as TCP Sender
+ Adaptation (SA). SA combines a limit on the number of segments sent
+ in a burst, regardless of window size. In addition, byte counting
+ (as opposed to ACK counting) is employed for window growth. Note
+ that byte counting has been studied elsewhere and can introduce
+ side-effects, as well [All98].
+
+ The results presented in [BPK97] indicate that using ACC and SA will
+ reduce the bursts produced by ACK losses in unmodified (Reno) TCP.
+ In cases where these bursts would lead to data loss at an
+ intermediate router, the ACC and SA modification significantly
+ improve the throughput for a single data transfer. The results
+ further suggest that the use of ACC and SA significantly improve
+ fairness between two simultaneous transfers.
+
+ ACC is further reported to prevent the increase in round trip time
+ (RTT) that occurs when an unmodified TCP fills the reverse router
+ queue with acknowledgments.
+
+ In networks where the forward direction is expected to suffer losses
+ in one of the gateways, due to queue limitations, the authors report
+ at best a very slight improvement in performance for ACC and SA,
+ compared to unmodified Reno TCP.
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 33]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.9.3 Implementation Issues
+
+ Both ACC and SA require modification of the sending and receiving
+ hosts, as well as the bottleneck gateway. The current research
+ suggests that implementing ACC without the SA modifications results
+ in a data sender which generates potentially disruptive segment
+ bursts. It should be noted that ACC does require host modifications
+ if it is implemented in the way proposed in [BPK97]. The authors
+ note that ACC can be implemented by discarding ACKs (which requires
+ only a gateway modification, but no changes in the hosts), as opposed
+ to marking them with ECN. Such an implementation may, however,
+ produce bursty data senders if it is not combined with a burst
+ mitigation technique. ACC requires changes to the standard ACKing
+ behavior of a receiving TCP and therefore is not recommended for use
+ in shared networks.
+
+3.9.4 Topology Considerations
+
+ Neither ACC nor SA require the storage of state in the gateway.
+ These schemes should therefore be applicable for all topologies,
+ provided that the hosts using the satellite or hybrid network can be
+ modified. However, these changes are expected to be especially
+ beneficial to networks containing asymmetric satellite links.
+
+3.9.5 Possible Interaction and Relationships with Other Research
+
+ Note that ECN is a pre-condition for using ACK congestion control.
+ Additionally, the ACK Filtering algorithm discussed in the next
+ section attempts to solve the same problem as ACC. Choosing between
+ the two algorithms (or another mechanism) is currently an open
+ research question.
+
+3.10 ACK Filtering
+
+ ACK Filtering (AF) is designed to address the same ACK congestion
+ effects described in 3.9. Contrary to ACC, however, AF is designed
+ to operate without host modifications.
+
+3.10.1 Mitigation Description
+
+ AF takes advantage of the cumulative acknowledgment structure of TCP.
+ The bottleneck router in the reverse direction (the low speed link)
+ must be modified to implement AF. Upon receipt of a segment which
+ represents a TCP acknowledgment, the router scans the queue for
+ redundant ACKs for the same connection, i.e. ACKs which acknowledge
+ portions of the window which are included in the most recent ACK.
+ All of these "earlier" ACKs are removed from the queue and discarded.
+
+
+
+
+Allman, et al. Informational [Page 34]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ The router does not store state information, but does need to
+ implement the additional processing required to find and remove
+ segments from the queue upon receipt of an ACK.
+
+3.10.2 Research
+
+ [BPK97] analyzes the effects of AF. As is the case in ACC, the use
+ of ACK filtering alone would produce significant sender bursts, since
+ the ACKs will be acknowledging more previously-unacknowledged data.
+ The SA modifications described in 3.9.2 could be used to prevent
+ those bursts, at the cost of requiring host modifications. To
+ prevent the need for modifications in the TCP stack, AF is more
+ likely to be paired with the ACK Reconstruction (AR) technique, which
+ can be implemented at the router where segments exit the slow reverse
+ link.
+
+ AR inspects ACKs exiting the link, and if it detects large "gaps" in
+ the ACK sequence, it generates additional ACKs to reconstruct an
+ acknowledgment flow which more closely resembles what the data sender
+ would have seen had ACK Filtering not been introduced. AR requires
+ two parameters; one parameter is the desired ACK frequency, while the
+ second controls the spacing, in time, between the release of
+ consecutive reconstructed ACKs.
+
+ In [BPK97], the authors show the combination of AF and AR to increase
+ throughput, in the networks studied, over both unmodified TCP and the
+ ACC/SA modifications. Their results also strongly suggest that the
+ use of AF alone, in networks where congestion losses are expected,
+ decreases performance (even below the level of unmodified TCP Reno)
+ due to sender bursting.
+
+ AF delays acknowledgments from arriving at the receiver by dropping
+ earlier ACKs in favor of later ACKs. This process can cause a slight
+ hiccup in the transmission of new data by the TCP sender.
+
+3.10.3 Implementation Issues
+
+ Both ACK Filtering and ACK Reconstruction require only router
+ modification. However, the implementation of AR requires some
+ storage of state information in the exit router. While AF does not
+ require storage of state information, its use without AR (or SA)
+ could produce undesired side effects. Furthermore, more research is
+ required regarding appropriate ranges for the parameters needed in
+ AR.
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 35]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+3.10.4 Topology Considerations
+
+ AF and AR appear applicable to all topologies, assuming that the
+ storage of state information in AR does not prove to be prohibitive
+ for routers which handle large numbers of flows. The fact that TCP
+ stack modifications are not required for AF/AR makes this approach
+ attractive for hybrid networks and networks with diverse types of
+ hosts. These modifications, however, are expected to be most
+ beneficial in asymmetric network paths.
+
+ On the other hand, the implementation of AF/AR requires the routers
+ to examine the TCP header, which prohibits their use in secure
+ networks where IPSEC is deployed. In such networks, AF/AR can be
+ effective only inside the security perimeter of a private, or virtual
+ private network, or in private networks where the satellite link is
+ protected only by link-layer encryption (as opposed to IPSEC). ACK
+ Filtering is safe to use in shared networks (from a congestion
+ control point-of-view), as the number of ACKs can only be reduced,
+ which makes TCP less aggressive. However, note that while TCP is
+ less aggressive, the delays that AF induces (outlined above) can lead
+ to larger bursts than would otherwise occur.
+
+3.10.5 Possible Interaction and Relationships with Other Research
+
+ ACK Filtering attempts to solve the same problem as ACK Congestion
+ Control (as outlined in section 3.9). Which of the two algorithms is
+ more appropriate is currently an open research question.
+
+4 Conclusions
+
+ This document outlines TCP items that may be able to mitigate the
+ performance problems associated with using TCP in networks containing
+ satellite links. These mitigations are not IETF standards track
+ mechanisms and require more study before being recommended by the
+ IETF. The research community is encouraged to examine the above
+ mitigations in an effort to determine which are safe for use in
+ shared networks such as the Internet.
+
+5 Security Considerations
+
+ Several of the above sections noted specific security concerns which
+ a given mitigation aggravates.
+
+ Additionally, any form of wireless communication link is more
+ susceptible to eavesdropping security attacks than standard wire-
+ based links due to the relative ease with which an attacker can watch
+ the network and the difficultly in finding attackers monitoring the
+ network.
+
+
+
+Allman, et al. Informational [Page 36]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+6 Acknowledgments
+
+ Our thanks to Aaron Falk and Sally Floyd, who provided very helpful
+ comments on drafts of this document.
+
+7 References
+
+ [AFP98] Allman, M., Floyd, S. and C. Partridge, "Increasing TCP's
+ Initial Window", RFC 2414, September 1998.
+
+ [AGS99] Allman, M., Glover, D. and L. Sanchez, "Enhancing TCP Over
+ Satellite Channels using Standard Mechanisms", BCP 28, RFC
+ 2488, January 1999.
+
+ [AHKO97] Mark Allman, Chris Hayes, Hans Kruse, Shawn Ostermann. TCP
+ Performance Over Satellite Links. In Proceedings of the
+ 5th International Conference on Telecommunication Systems,
+ March 1997.
+
+ [AHO98] Mark Allman, Chris Hayes, Shawn Ostermann. An Evaluation
+ of TCP with Larger Initial Windows. Computer Communication
+ Review, 28(3), July 1998.
+
+ [AKO96] Mark Allman, Hans Kruse, Shawn Ostermann. An Application-
+ Level Solution to TCP's Satellite Inefficiencies. In
+ Proceedings of the First International Workshop on
+ Satellite-based Information Services (WOSBIS), November
+ 1996.
+
+ [All97a] Mark Allman. Improving TCP Performance Over Satellite
+ Channels. Master's thesis, Ohio University, June 1997.
+
+ [All97b] Mark Allman. Fixing Two BSD TCP Bugs. Technical Report
+ CR-204151, NASA Lewis Research Center, October 1997.
+
+ [All98] Mark Allman. On the Generation and Use of TCP
+ Acknowledgments. ACM Computer Communication Review, 28(5),
+ October 1998.
+
+ [AOK95] Mark Allman, Shawn Ostermann, Hans Kruse. Data Transfer
+ Efficiency Over Satellite Circuits Using a Multi-Socket
+ Extension to the File Transfer Protocol (FTP). In
+ Proceedings of the ACTS Results Conference, NASA Lewis
+ Research Center, September 1995.
+
+ [AP99] Mark Allman, Vern Paxson. On Estimating End-to-End Network
+ Path Properties. ACM SIGCOMM, September 1999.
+
+
+
+
+Allman, et al. Informational [Page 37]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ [APS99] Allman, M., Paxson, V. and W. Richard Stevens, "TCP
+ Congestion Control", RFC 2581, April 1999.
+
+ [BCC+98] Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering,
+ S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G.,
+ Partridge, C., Peterson, L., Ramakrishnan, K., Shenker, S.,
+ Wroclawski, J. and L. Zhang, "Recommendations on Queue
+ Management and Congestion Avoidance in the Internet", RFC
+ 2309, April 1998.
+
+ [BKVP97] B. Bakshi and P. Krishna and N. Vaidya and D. Pradham,
+ "Improving Performance of TCP over Wireless Networks", 17th
+ International Conference on Distributed Computing Systems
+ (ICDCS), May 1997.
+
+ [BPK97] Hari Balakrishnan, Venkata N. Padmanabhan, and Randy H.
+ Katz. The Effects of Asymmetry on TCP Performance. In
+ Proceedings of the ACM/IEEE Mobicom, Budapest, Hungary,
+ ACM. September, 1997.
+
+ [BPK98] Hari Balakrishnan, Venkata Padmanabhan, Randy H. Katz. The
+ Effects of Asymmetry on TCP Performance. ACM Mobile
+ Networks and Applications (MONET), 1998 (to appear).
+
+ [BPSK96] H. Balakrishnan and V. Padmanabhan and S. Sechan and R.
+ Katz, "A Comparison of Mechanisms for Improving TCP
+ Performance over Wireless Links", ACM SIGCOMM, August 1996.
+
+ [Bra89] Braden, R., "Requirements for Internet Hosts --
+ Communication Layers", STD 3, RFC 1122, October 1989.
+
+ [Bra92] Braden, R., "Transaction TCP -- Concepts", RFC 1379,
+ September 1992.
+
+ [Bra94] Braden, R., "T/TCP -- TCP Extensions for Transactions:
+ Functional Specification", RFC 1644, July 1994.
+
+ [BRS99] Hari Balakrishnan, Hariharan Rahul, and Srinivasan Seshan.
+ An Integrated Congestion Management Architecture for
+ Internet Hosts. ACM SIGCOMM, September 1999.
+
+ [ddKI99] M. deVivo, G.O. deVivo, R. Koeneke, G. Isern. Internet
+ Vulnerabilities Related to TCP/IP and T/TCP. Computer
+ Communication Review, 29(1), January 1999.
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 38]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ [DENP97] Mikael Degermark, Mathias Engan, Bjorn Nordgren, Stephen
+ Pink. Low-Loss TCP/IP Header Compression for Wireless
+ Networks. ACM/Baltzer Journal on Wireless Networks, vol.3,
+ no.5, p. 375-87.
+
+ [DMT96] R. C. Durst and G. J. Miller and E. J. Travis, "TCP
+ Extensions for Space Communications", Mobicom 96, ACM, USA,
+ 1996.
+
+ [DNP99] Degermark, M., Nordgren, B. and S. Pink, "IP Header
+ Compression", RFC 2507, February 1999.
+
+ [FF96] Kevin Fall, Sally Floyd. Simulation-based Comparisons of
+ Tahoe, Reno, and SACK TCP. Computer Communication Review,
+ V. 26 N. 3, July 1996, pp. 5-21.
+
+ [FF99] Sally Floyd, Kevin Fall. Promoting the Use of End-to-End
+ Congestion Control in the Internet, IEEE/ACM Transactions
+ on Networking, August 1999.
+
+ [FH99] Floyd, S. and T. Henderson, "The NewReno Modification to
+ TCP's Fast Recovery Algorithm", RFC 2582, April 1999.
+
+ [FJ93] Sally Floyd and Van Jacobson. Random Early Detection
+ Gateways for Congestion Avoidance, IEEE/ACM Transactions on
+ Networking, V. 1 N. 4, August 1993.
+
+ [Flo91] Sally Floyd. Connections with Multiple Congested Gateways
+ in Packet-Switched Networks, Part 1: One-way Traffic. ACM
+ Computer Communications Review, V. 21, N. 5, October 1991.
+
+ [Flo94] Sally Floyd. TCP and Explicit Congestion Notification, ACM
+ Computer Communication Review, V. 24 N. 5, October 1994.
+
+ [Flo99] Sally Floyd. "Re: TCP and out-of-order delivery", email to
+ end2end-interest mailing list, February, 1999.
+
+ [Hah94] Jonathan Hahn. MFTP: Recent Enhancements and Performance
+ Measurements. Technical Report RND-94-006, NASA Ames
+ Research Center, June 1994.
+
+ [Hay97] Chris Hayes. Analyzing the Performance of New TCP
+ Extensions Over Satellite Links. Master's Thesis, Ohio
+ University, August 1997.
+
+ [HK98] Tom Henderson, Randy Katz. On Improving the Fairness of
+ TCP Congestion Avoidance. Proceedings of IEEE Globecom `98
+ Conference, 1998.
+
+
+
+Allman, et al. Informational [Page 39]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ [HK99] Tim Henderson, Randy Katz. Transport Protocols for
+ Internet-Compatible Satellite Networks, IEEE Journal on
+ Selected Areas of Communications, February, 1999.
+
+ [Hoe95] J. Hoe, Startup Dynamics of TCP's Congestion Control and
+ Avoidance Schemes. Master's Thesis, MIT, 1995.
+
+ [Hoe96] Janey Hoe. Improving the Startup Behavior of a Congestion
+ Control Scheme for TCP. In ACM SIGCOMM, August 1996.
+
+ [IL92] David Iannucci and John Lakashman. MFTP: Virtual TCP
+ Window Scaling Using Multiple Connections. Technical
+ Report RND-92-002, NASA Ames Research Center, January 1992.
+
+ [Jac88] Van Jacobson. Congestion Avoidance and Control. In
+ Proceedings of the SIGCOMM '88, ACM. August, 1988.
+
+ [Jac90] Jacobson, V., "Compressing TCP/IP Headers", RFC 1144,
+ February 1990.
+
+ [JBB92] Jacobson, V., Braden, R. and D. Borman, "TCP Extensions for
+ High Performance", RFC 1323, May 1992.
+
+ [JK92] Van Jacobson and Mike Karels. Congestion Avoidance and
+ Control. Originally appearing in the proceedings of
+ SIGCOMM '88 by Jacobson only, this revised version includes
+ an additional appendix. The revised version is available
+ at ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z. 1992.
+
+ [Joh95] Stacy Johnson. Increasing TCP Throughput by Using an
+ Extended Acknowledgment Interval. Master's Thesis, Ohio
+ University, June 1995.
+
+ [KAGT98] Hans Kruse, Mark Allman, Jim Griner, Diepchi Tran. HTTP
+ Page Transfer Rates Over Geo-Stationary Satellite Links.
+ March 1998. Proceedings of the Sixth International
+ Conference on Telecommunication Systems.
+
+ [Kes91] Srinivasan Keshav. A Control Theoretic Approach to Flow
+ Control. In ACM SIGCOMM, September 1991.
+
+ [KM97] S. Keshav, S. Morgan. SMART Retransmission: Performance
+ with Overload and Random Losses. Proceeding of Infocom.
+ 1997.
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 40]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ [KVR98] Lampros Kalampoukas, Anujan Varma, and K. K.Ramakrishnan.
+ Improving TCP Throughput Over Two-Way Asymmetric Links:
+ Analysis and Solutions. Measurement and Modeling of
+ Computer Systems, 1998, Pages 78-89.
+
+ [MM96a] M. Mathis, J. Mahdavi, "Forward Acknowledgment: Refining
+ TCP Congestion Control," Proceedings of SIGCOMM'96, August,
+ 1996, Stanford, CA. Available from
+ http://www.psc.edu/networking/papers/papers.html
+
+ [MM96b] M. Mathis, J. Mahdavi, "TCP Rate-Halving with Bounding
+ Parameters" Available from
+ http://www.psc.edu/networking/papers/FACKnotes/current.
+
+ [MMFR96] Mathis, M., Mahdavi, J., Floyd, S. and A. Romanow, "TCP
+ Selective Acknowledgment Options", RFC 2018, October 1996.
+
+ [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
+
+ [MV98] Miten N. Mehta and Nitin H. Vaidya. Delayed Duplicate-
+ Acknowledgments: A Proposal to Improve Performance of TCP
+ on Wireless Links. Technical Report 98-006, Department of
+ Computer Science, Texas A&M University, February 1998.
+
+ [Nic97] Kathleen Nichols. Improving Network Simulation with
+ Feedback. Com21, Inc. Technical Report. Available from
+ http://www.com21.com/pages/papers/068.pdf.
+
+ [PADHV99] Paxson, V., Allman, M., Dawson, S., Heavens, I. and B.
+ Volz, "Known TCP Implementation Problems", RFC 2525, March
+ 1999.
+
+ [Pax97] Vern Paxson. Automated Packet Trace Analysis of TCP
+ Implementations. In Proceedings of ACM SIGCOMM, September
+ 1997.
+
+ [PN98] Poduri, K. and K. Nichols, "Simulation Studies of Increased
+ Initial TCP Window Size", RFC 2415, September 1998.
+
+ [Pos81] Postel, J., "Transmission Control Protocol", STD 7, RFC
+ 793, September 1981.
+
+
+
+
+
+
+Allman, et al. Informational [Page 41]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ [RF99] Ramakrishnan, K. and S. Floyd, "A Proposal to add Explicit
+ Congestion Notification (ECN) to IP", RFC 2481, January
+ 1999.
+
+ [SF98] Nihal K. G. Samaraweera and Godred Fairhurst,
+ "Reinforcement of TCP error Recovery for Wireless
+ Communication", Computer Communication Review, volume 28,
+ number 2, April 1998.
+
+ [SP98] Shepard, T. and C. Partridge, "When TCP Starts Up With Four
+ Packets Into Only Three Buffers", RFC 2416, September 1998.
+
+ [Ste97] Stevens, W., "TCP Slow Start, Congestion Avoidance, Fast
+ Retransmit, and Fast Recovery Algorithms", RFC 2001,
+ January 1997.
+
+ [Sut98] B. Suter, T. Lakshman, D. Stiliadis, and A. Choudhury.
+ Design Considerations for Supporting TCP with Per-flow
+ Queueing. Proceedings of IEEE Infocom `98 Conference,
+ 1998.
+
+ [Tou97] Touch, J., "TCP Control Block Interdependence", RFC 2140,
+ April 1997.
+
+ [VH97a] Vikram Visweswaraiah and John Heidemann. Improving Restart
+ of Idle TCP Connections. Technical Report 97-661,
+ University of Southern California, 1997.
+
+ [VH97b] Vikram Visweswaraiah and John Heidemann. Rate-based pacing
+ Source Code Distribution, Web page:
+ http://www.isi.edu/lsam/publications/rate_based_pacing/README.html
+ November, 1997.
+
+ [VH98] Vikram Visweswaraiah and John Heidemann. Improving Restart
+ of Idle TCP Connections (revised). Submitted for
+ publication.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 42]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+8 Authors' Addresses
+
+ Mark Allman
+ NASA Glenn Research Center/BBN Technologies
+ Lewis Field
+ 21000 Brookpark Rd. MS 54-2
+ Cleveland, OH 44135
+
+ EMail: mallman@grc.nasa.gov
+ http://roland.grc.nasa.gov/~mallman
+
+
+ Spencer Dawkins
+ Nortel
+ P.O.Box 833805
+ Richardson, TX 75083-3805
+
+ EMail: Spencer.Dawkins.sdawkins@nt.com
+
+
+ Dan Glover
+ NASA Glenn Research Center
+ Lewis Field
+ 21000 Brookpark Rd. MS 3-6
+ Cleveland, OH 44135
+
+ EMail: Daniel.R.Glover@grc.nasa.gov
+ http://roland.grc.nasa.gov/~dglover
+
+
+ Jim Griner
+ NASA Glenn Research Center
+ Lewis Field
+ 21000 Brookpark Rd. MS 54-2
+ Cleveland, OH 44135
+
+ EMail: jgriner@grc.nasa.gov
+ http://roland.grc.nasa.gov/~jgriner
+
+
+ Diepchi Tran
+ NASA Glenn Research Center
+ Lewis Field
+ 21000 Brookpark Rd. MS 54-2
+ Cleveland, OH 44135
+
+ EMail: dtran@grc.nasa.gov
+
+
+
+
+Allman, et al. Informational [Page 43]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ Tom Henderson
+ University of California at Berkeley
+ Phone: +1 (510) 642-8919
+
+ EMail: tomh@cs.berkeley.edu
+ URL: http://www.cs.berkeley.edu/~tomh/
+
+
+ John Heidemann
+ University of Southern California/Information Sciences Institute
+ 4676 Admiralty Way
+ Marina del Rey, CA 90292-6695
+
+ EMail: johnh@isi.edu
+
+
+ Joe Touch
+ University of Southern California/Information Sciences Institute
+ 4676 Admiralty Way
+ Marina del Rey, CA 90292-6601
+ USA
+
+ Phone: +1 310-448-9151
+ Fax: +1 310-823-6714
+ URL: http://www.isi.edu/touch
+ EMail: touch@isi.edu
+
+
+ Hans Kruse
+ J. Warren McClure School of Communication Systems Management
+ Ohio University
+ 9 S. College Street
+ Athens, OH 45701
+
+ Phone: 740-593-4891
+ Fax: 740-593-4889
+ EMail: hkruse1@ohiou.edu
+ http://www.csm.ohiou.edu/kruse
+
+
+ Shawn Ostermann
+ School of Electrical Engineering and Computer Science
+ Ohio University
+ 416 Morton Hall
+ Athens, OH 45701
+
+ Phone: (740) 593-1234
+ EMail: ostermann@cs.ohiou.edu
+
+
+
+Allman, et al. Informational [Page 44]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+ Keith Scott
+ The MITRE Corporation
+ M/S W650
+ 1820 Dolley Madison Blvd.
+ McLean VA 22102-3481
+
+ EMail: kscott@mitre.org
+
+
+ Jeffrey Semke
+ Pittsburgh Supercomputing Center
+ 4400 Fifth Ave.
+ Pittsburgh, PA 15213
+
+ EMail: semke@psc.edu
+ http://www.psc.edu/~semke
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 45]
+
+RFC 2760 Ongoing TCP Research Related to Satellites February 2000
+
+
+9 Full Copyright Statement
+
+ Copyright (C) The Internet Society (2000). 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.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et al. Informational [Page 46]
+