Internet Engineering Task Force                              Mark Allman
INTERNET DRAFT                              NASA Lewis/Sterling Software
File: draft-ietf-tcpsat-res-issues-00.txt                     Dan Glover
                                                              NASA Lewis
                                                       November 21, 1997
                                                   Expires: May 21, 1998


               Ongoing TCP Research Related to Satellites


Status of this Memo

    This document is an Internet-Draft.  Internet-Drafts are working
    documents of the Internet Engineering Task Force (IETF), its areas,
    and its working groups.  Note that other groups may also distribute
    working documents as Internet-Drafts.

    Internet-Drafts are draft documents valid for a maximum of six
    months and may be updated, replaced, or obsoleted by other documents
    at any time.  It is inappropriate to use Internet-Drafts as
    reference material or to cite them other than as ``work in
    progress.''

    To learn the current status of any Internet-Draft, please check the
    ``1id-abstracts.txt'' listing contained in the Internet- Drafts
    Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
    ftp.isi.edu (US West Coast).

NOTE

    This document is not complete.  The authors are aware of many more
    mitigation strategies that may help TCP over satellite channels.
    These will be outlined in future iterations of this document.

Abstract

    This document outlines TCP mechanisms that may help better utilize
    the available bandwidth in TCP transfers over long-delay satellite
    channels.  The work outlined in this document is preliminary and has
    not yet been judged to be safe for use in the shared Internet.

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.  The proposals outlined in this document
    are currently being studied throughout the research community.
    Therefore, these mechanisms SHOULD NOT be used in the shared
    Internet.  At the point these mechanisms are proved safe and
    appropriate for general use, the appropriate IETF documents will be
    written.  Until that time, these mechanisms should be used for
    research and in private networks only.

Expires: May 21, 1998                                           [Page 1]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997


2.  Satellite Characteristics

    The characteristic of satellite links that has the largest effect on
    TCP is the propagation delay.  The magnitude and characteristics of
    this delay depends on the distance of the satellite and its velocity
    relative to the ground station.

    Satellites in geostationary orbits appear to hover over a point on
    the ground and so have a constant, but large, delay (roughly 500
    ms).  Satellites in lower orbits have a shorter path to the ground
    and so lower delay, but these satellites move across the sky.  This
    means the propagation path will change and the delay will vary as
    the satellite flies from horizon to horizon and eventually out of
    view of a ground station.  At higher altitudes than GSO (e.g., for
    deep space probes), the spacecraft will also lose contact with a
    particular ground station as the Earth turns.

    Generally speaking, satellite channels are noisier than fiber and
    have less bandwidth capacity.  Satellites may not be the weakest
    link in a connection in these areas, however.  Error correction
    coding can mitigate noise problems.  Additional radio frequency
    bandwidth is being exploited with moves to higher frequencies.  A
    more detailed discussion of satellite characteristics can be found
    in [AG97].

2.1 Architectures


2.1.1 Asymmetric Satellite Networks

    Some satellite networks exhibit a bandwidth asymmetry, with a larger
    data rate in one direction than the other, because of limits on the
    transmission power and the antenna size at one end of the link.
    Meanwhile, other systems are one way only or use a different return
    path.

    For example, in some systems being used today, satellites are found
    at the edges of the Internet providing the end user with a
    connection to the shared Internet.  Many end users share a relatively
    high data rate downlink from a satellite and use a non-shared, low
    speed dialup modem connection as the return channel.

    [Picture in next iteration of draft.]

2.1.2 Hybrid Satellite Networks

    In the more general case, satellites may be located at any point in
    the network topology.  In this case, the satellite link carries real
    network traffic and acts as just another channel between two
    gateways.  In this environment, a given connection may be sent over
    terrestrial channels, as well as satellite channels.  On the other



Expires: May 21, 1998                                           [Page 2]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997

    hand, a connection could also travel over only the terrestrial
    network or only over the satellite portion of the network.

    [Picture in next iteration of draft.]

3.  Mitigations

    The following sections will discuss various techniques for
    mitigating the problems TCP faces in the satellite environment.
    Each of the following sections details mitigation techniques that
    apply to one portion of the TCP connection.  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.  Finally, the mechanism's
    benefits in each of the environments above will be outlined.

4.  Connection Setup

4.1 Mitigation Description

    TCP uses a three-way handshake to setup a connection between two
    hosts.  This connection setup requires 1 RTT or 1.5 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].  In most situations,
    T/TCP bypasses the three-way handshake.  This allows the data sender
    to begin transmitting data in the first packet sent (along with the
    connection setup information).  This is especially helpful for short
    request/response traffic.

4.2 Research

    T/TCP is outlined and analyzed in [Bra94] and [Bra92].

4.3 Implementation Issues

    T/TCP required changes in the TCP stacks of both the data sender and
    the data receiver.

4.4 Topology Considerations

    It is expected that T/TCP will be equally beneficial in all
    environments outlined in section 2.

5.  Slow Start

    The slow start algorithm is used to gradually increase the size of
    TCP's sliding window [JK88] [Ste97].  The algorithm is an important
    safe-guard against transmitting an inappropriate amount of data into
    the network when the connection starts up.  The algorithm begins by
    sending a single data segment to the receiver.  For each
    acknowledgment (ACK) returned, the size of the window is increased
    by 1 segment.  This makes the window growth directly proportional to
    the round-trip time (RTT).  In long-delay environments, such as some

Expires: May 21, 1998                                           [Page 3]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997

    satellite channels, the large RTT increases the time needed to
    increase the size of the window to an appropriate level.  This
    effectively wastes capacity [All97].

    Delayed ACKs are another source of wasted capacity during the slow
    start phase.  RFC 1122 [Bra89] allows data receivers to refrain from
    ACKing every incoming data segment.  However, every second
    full-sized segment must 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 the window based on the number of arriving
    ACKs, reducing the number of ACKs slows the window's 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 going to have to wait for
    the delayed ACK timer to expire before ACKing the first segment.
    This also increases the transfer time.

    Several proposals have suggested ways to make slow start less
    problematic in long-delay environments.  These proposals are briefly
    outlined below and references to the research work given.

5.1 Larger Initial Window

5.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 make the
    initial window be more than a single segment.  Recently, this
    proposal has been outlined in an Internet-Draft [FAP97].   The
    suggested size of the initial window is given in equation 1.

                  min (4*MSS, max (2*MSS, 4380 bytes))               (1)

    By increasing the initial window, more packets are sent immediately,
    which will trigger more ACKs, allowing the window to open more
    rapidly.  In addition, by sending at least 2 segments into the
    network initially, the first segment does not need to wait for the
    delayed ACK timer to expire as is the case when the initial window
    is 1 segment (as discussed above).  Therefore, the window size given
    in equation 1 saves up to 3 RTTs and a delayed ACK timeout when
    compared to an initial window of 1 segment.

    Using a larger initial window is likely to cause increased amount of
    loss in highly congested networks (where each connection's share of
    the router queue is less than the initial window size).  Therefore,
    this change must be studied further to ensure that it is safe the
    shared Internet.

5.1.2 Research

    Several researchers have studied the use of a larger initial window
    in various environments.  Nichols [Nic97] found that using a larger
    initial window reduced the time required to load WWW pages over

Expires: May 21, 1998                                           [Page 4]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997

    hybrid fiber coax (HFC) channels.  Furthermore, it has been found
    that using an initial window of 4 packets does not negatively impact
    overall performance over dialup modem channels [SP97].

5.1.3 Implementation Issues

    The use of larger initial windows requires changes to the sender's
    TCP stack.

5.1.4 Topology Considerations

    It is expect that the use of a large initial window would be equally
    beneficial to all network architectures outlined in section 2.

5.2 Handling Acknowledgments During Slow Start

5.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 its window
    during slow start.  Several suggestions have been made to counteract
    the negative impact delayed ACKs have on bandwidth utilization.  The
    first suggestion is that the window size should be increased based
    on the number of previously unacknowledged segments covered by each
    incoming ACK [All97].  This makes the increase relative to the
    amount of data transmitted, rather than the number of ACKs received
    (known as byte counting).

    Another idea that has been put forth is turning delayed ACKs off
    during the slow start phase of the TCP connection.  This would
    provide an increase in the number of ACKs arriving at the sender and
    thus decrease the time required to increase window size.  After slow
    start, when the number of ACKs is not as important, delayed ACKs
    could be implemented as specified in [Bra89].

5.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 window to
    an appropriate size in satellite networks [All97].

5.2.3 Implementation Issues

    Changing from ACK counting to byte counting requires changes to the
    data sender's TCP stack.

    Turning delayed ACKs off during slow start requires changes to the
    data receiver's TCP stack.

5.2.4 Topology Considerations

    It has been suggested by some (and roundly criticized by others)
    that the first mechanism (byte counting, rather than ACK counting)


Expires: May 21, 1998                                           [Page 5]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997

    will be exhibit the same properties regardless of the network
    topology (outlined in section 2) being used.

    Disabling delayed ACKs during slow start would increase the number
    of packets being sent in the reverse direction, which may negatively
    impact asymmetric channels, with a limited-bandwidth return
    channel.  It is expected that this mechanism will work well in the
    other topologies outlined in section 2.

5.3 Terminating Slow Start

5.3.1 Mitigation Description

    The initial slow start phase is used by TCP to determine an
    appropriate window size [JK88].  Slow start is terminated when TCP
    detects congestion, or when the size of the window reaches the size
    of the receivers advertised window.  The window size at which TCP
    ends slow start and begins using the congestion avoidance [JK88]
    algorithm is "ssthresh".  The initial value for ssthresh is the
    receiver's advertised window.  TCP doubles the size of the window
    every RTT and therefore can overwhelm the network with at most twice
    as many segments as the network can handle.  By setting ssthresh to
    something less than the receiver's advertised window initially, the
    sender may avoid overwhelming the network with segments.  Hoe
    [Hoe96] proposes using the packet-pair [Kes91] algorithm to
    determine a more appropriate value for ssthresh.  The algorithm
    observes the spacing between the first few 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 window reaches this reduced ssthresh, slow
    start is terminated and transmission continues with congestion
    avoidance, which is a much more conservative algorithm for
    increasing the size of the window.

5.3.2 Research

    It has been shown that estimating ssthresh can improve performance
    and decrease packet loss [Hoe96].

5.3.3 Implementation Issues

    Estimating ssthresh requires changes to the data sender's TCP
    stack.

5.3.4 Topology Considerations

    It is expected that this mechanism will work well in all symmetric
    topologies outlined in section 2.  However, asymmetric channels pose
    a special problem, as the rate of the returning ACKs may not be the
    bottleneck bandwidth in the forward direction.

6.  Loss Recovery

6.1 Non-SACK Based Mechanisms

Expires: May 21, 1998                                           [Page 6]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997


6.2 SACK Based Mechanisms

6.3 Detecting Corruption Loss

6.4 Use of RED and ECN

7.  Spoofing

8.  Protocol Boosters

9.  Multiple Data Connections

10. TCP Pacing

11. ACK Spacing

12. Header Compression

13. Sharing TCP State Among Multiple Similar Connections

x.  Conclusions

References

    [AG97] Mark Allman, Dan Glover.  Enhancing TCP Over Satellite
        Channels using Standard Mechanisms, November 1997.
        Internet-Draft draft-ietf-tcpsat-stand-mech-01.txt (work in
        progress).

    [All97] Mark Allman.  Improving TCP Performance Over Satellite
        Channels.  Master's thesis, Ohio University, June 1997.

    [Bra89] Robert Braden.  Requirements for Internet Hosts --
        Communication Layers, October 1989.  RFC 1122.

    [Bra92] Robert Braden.  Transaction TCP -- Concepts, September 1992.
        RFC 1379.

    [Bra94] Robert Braden.  T/TCP -- TCP Extensions for Transactions:
        Functional Specification, July 1994.  RFC 1644.

    [FAP97] Sally Floyd, Mark Allman, Craig Partridge.  Increasing TCP's
        Initial Window, July 1997.  Internet-Draft
        draft-floyd-incr-init-win-00.txt (work in progress).

    [Hoe96] Janey Hoe.  Improving the Startup Behavior of a Congestion
        Control Scheme for TCP.  In ACM SIGCOMM, August 1996.

    [JK88] Van Jacobson and Michael Karels.  Congestion Avoidance and
        Control.  In ACM SIGCOMM, 1988.

    [Kes91] Srinivasan Keshav.  A Control Theoretic Approach to Flow
        Control.  In ACM SIGCOMM, September 1991.

Expires: May 21, 1998                                           [Page 7]


draft-ietf-tcpsat-res-issues-00.txt                        November 1997


    [Nic97] Kathleen Nichols.  Improving Network Simulation with
        Feedback.  Submitted to InfoCom 97.

    [Pos81] Jon Postel.  Transmission Control Protocol, September 1981.
        RFC 793.

    [SP97] Tim Shepard and Craig Partridge.  When TCP Starts Up With
        Four Packets Into Only Three Buffers, July 1997.  Internet-Draft
        draft-shepard-TCP-4-packets-3-buff-00.txt (work in progress).

    [Ste97] W. Richard Stevens.  TCP Slow Start, Congestion Avoidance,
        Fast Retransmit, and Fast Recovery Algorithms, January 1997.
        RFC 2001.

Author's Addresses:

    Mark Allman
    NASA Lewis Research Center/Sterling Software
    21000 Brookpark Rd.  MS 54-2
    Cleveland, OH  44135
    mallman@lerc.nasa.gov
    http://gigahertz.lerc.nasa.gov/~mallman

    Dan Glover
    NASA Lewis Research Center
    21000 Brookpark Rd.  MS 54-2
    Cleveland, OH  44135
    Daniel.R.Glover@lerc.nasa.gov


























Expires: May 21, 1998                                           [Page 8]