Internet Engineering Task Force                                J. Border
INTERNET-DRAFT                                    Hughes Network Systems
                                                                 M. Kojo
                                                  University of Helsinki
                                                              Jim Griner
                                              NASA Glenn Research Center
                                                           G. Montenegro
                                                  Sun Microsystems, Inc.
                                                           June 25, 1999
                     Performance Enhancing Proxies
                       draft-ietf-pilc-pep-00.txt

Status of This Memo

   The document is an Internet-Draft and is in full conformance with all
   of the provisions of Section 10 of RFC 2026.

   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 Intenet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   Distribution of this draft is unlimited.  Comments on this draft
   should be sent to the authors or to the PILC mailing list at
   pilc@grc.nasa.gov.  This draft expires on December 21, 1999.

Abstract

   This document provides a high level overview of Performance Enhancing
   Proxies.  Motivations for their development and use are described as
   well as some of the consequences of using them.









Expires December 25, 1999                                       [Page 1]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


Table of Contents

1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
2 Types of Performance Enhancing Proxies . . . . . . . . . . . . . .   4
2.1 Layering . . . . . . . . . . . . . . . . . . . . . . . . . . . .   4
2.1.1 TCP Performance Enhancing Proxies  . . . . . . . . . . . . . .   4
2.1.2 Application Layer Proxies  . . . . . . . . . . . . . . . . . .   4
2.2 Distribution . . . . . . . . . . . . . . . . . . . . . . . . . .   5
2.3 Split Connections  . . . . . . . . . . . . . . . . . . . . . . .   5
2.4 Transparency . . . . . . . . . . . . . . . . . . . . . . . . . .   6
2.5 Tunnelling . . . . . . . . . . . . . . . . . . . . . . . . . . .   7
2.6 ACK Handling . . . . . . . . . . . . . . . . . . . . . . . . . .   7
2.6.1 ACK Spacing  . . . . . . . . . . . . . . . . . . . . . . . . .   7
2.6.2 Local Acknowledgements . . . . . . . . . . . . . . . . . . . .   8
2.6.3 Local Retransmissions  . . . . . . . . . . . . . . . . . . . .   8
2.7 Compression  . . . . . . . . . . . . . . . . . . . . . . . . . .   8
2.8 Handling Periods of Link Disconnection . . . . . . . . . . . . .   9
2.9 Other Link Specific Enhancements . . . . . . . . . . . . . . . .  10
3 Implications of Using PEP  . . . . . . . . . . . . . . . . . . . .  10
3.1 The End-to-end Argument  . . . . . . . . . . . . . . . . . . . .  10
3.1.1 Security . . . . . . . . . . . . . . . . . . . . . . . . . . .  11
3.1.2 Fate Sharing . . . . . . . . . . . . . . . . . . . . . . . . .  11
3.1.3 End-to-end Acknowledgements  . . . . . . . . . . . . . . . . .  12
3.2 Other Implications . . . . . . . . . . . . . . . . . . . . . . .  13
4 PEP Environment Examples . . . . . . . . . . . . . . . . . . . . .  13
4.1 VSAT Environments  . . . . . . . . . . . . . . . . . . . . . . .  13
4.1.1 VSAT Network Characteristics . . . . . . . . . . . . . . . . .  13
4.1.2 VSAT Network PEP Implementations . . . . . . . . . . . . . . .  15
4.1.3 VSAT Network PEP Motivation  . . . . . . . . . . . . . . . . .  16
4.2 W-WAN Environments . . . . . . . . . . . . . . . . . . . . . . .  16
4.2.1 W-WAN Network Characteristics  . . . . . . . . . . . . . . . .  16
4.2.2 W-WAN PEP Implementations  . . . . . . . . . . . . . . . . . .  17
4.3 W-LAN Environments . . . . . . . . . . . . . . . . . . . . . . .  17
4.3.1 W-LAN Network Characteristics  . . . . . . . . . . . . . . . .  17
4.3.2 W-LAN PEP Implementations: Snoop . . . . . . . . . . . . . . .  18
5 Security Considerations  . . . . . . . . . . . . . . . . . . . . .  20
6 Appendix - PEP Terminology Summary . . . . . . . . . . . . . . . .  20
6.1 Definitions  . . . . . . . . . . . . . . . . . . . . . . . . . .  21
7 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . .  23
8 References . . . . . . . . . . . . . . . . . . . . . . . . . . . .  23
9 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . .  25
10 Full Copyright Statement  . . . . . . . . . . . . . . . . . . . .  26








Expires December 25, 1999                                       [Page 2]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


1 Introduction

   The Transmission Control Protocol [RFC0793] (TCP) is used as the
   transport layer protocol by many Internet and intranet applications.
   However, in certain environments, TCP and other higher layer protocol
   performance is limited by the link characteristics of the
   environment.  [Karn99] discusses various link layer design
   considerations that should be taken into account when designing a
   link layer service that is intended to support the Internet
   protocols. Such design choices may have a significant influence on
   the performance and efficiency of the Internet.  However, not all
   link characteristics, for example, high latency, can be compensated
   for by such choices in the link design.  And, the cost of
   compensating for some link characteristics may be prohibitive for
   some technologies.  A Performance Enhancing Proxy (PEP) is used to
   improve the performance of the Internet protocols in environments
   where native performance suffers for some reason, usually a
   characteristic of the environment.

   This document does not intend to advocate use of PEPs in general. On
   the contrary, the end-to-end principle in designing Internet
   protocols must be retained the prevailing approach and PEPs should be
   used only in specific environments and circumstances. In any
   environment where one might consider employing PEP for improved
   performance, an end user must be aware of the proxy and the choice of
   employing PEP must be under the control of the end user at all
   times. This also means that the end user must always be able to
   choose end-to-end IP service.

   The remainder of this document is organized as follows.  Section 2
   provides an overview of different kinds of PEP implementations.
   Section 3 discusses some of the implications with respect to using
   PEP, especially in the context of the global Internet.  Finally,
   Section 4 discusses some example environments where PEPs are used,
   satellite very small aperture terminal (VSAT) environments, mobile
   wireless WAN (W-WAN) environments and wireless LAN (W-LAN)
   environments.  A summary of PEP terminology is included in an
   appendix (Section 5).

   NOTE: As this is the first version of this draft it may fail to
         cover many important aspects related to PEPs. In particular,
         this version does not list all the possible implications of
         using PEPs nor does the included text on each of the
         implications cover all the aspects related to the particular
         implication.






Expires December 25, 1999                                       [Page 3]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


2 Types of Performance Enhancing Proxies

   There are many types of Performance Enhancing Proxies.  Different
   types of proxies are used in different environments to overcome
   different link characteristics which affect protocol performance.
   Note that enhancing performance is not necessarily limited in scope
   to throughput. Other performance aspects may also be addressed.  For
   example, [M-TCP] addresses the issue of keeping TCP connections alive
   during periods of disconnection in wireless networks.

   The following sections describe some of the key characteristics which
   differentiate different types of proxies.


2.1 Layering

   A PEP implementation may function at the TCP layer or at the
   application layer.


2.1.1 TCP Performance Enhancing Proxies

   Most PEP implementations operate at the TCP layer.  Such an
   implementation is called a TCP Performance Enhancing Proxy (TCP
   PEP). For example, in an environment where ACKs may bunch together, a
   TCP proxy may be used to simply modify the ACK spacing in order to
   improve performance.  On the other hand, in an environment with a
   large delay*bandwidth product, a TCP proxy may be used to alter the
   behaviour of the TCP connection in order to improve its throughput.
   TCP PEP implementations may be aware of the type of application being
   carried by a TCP connection but, at most, only use this information
   to influence their behaviour at the TCP layer.

   The term TCP spoofing is sometimes used synonymously for TCP PEP.
   However, the term TCP spoofing more accurately applies to only the
   subset of TCP PEP implementations which transparently attempt to
   alter the behaviour of a TCP connection to improve performance.


2.1.2 Application Layer Proxies

   Application layer proxies, on the other hand, operate above the TCP
   layer.  Today, such proxies are widely used in the Internet and
   include Web caches and relay Mail Transfer Agents.

   Application layer proxies can be implemented for the purpose of
   improving application protocol as well as TCP performance with
   respect to a particular application being used with a particular type



Expires December 25, 1999                                       [Page 4]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   of link.  Some application protocols employ plenty of (unnecessary)
   round trips, lots of headers and/or inefficient encoding which may
   have a significant impact on performance, in particular, with long
   delay and slow links.  In some cases, this unnecessary overhead can
   be reduced, in general or for a particular type of link, by using an
   application level proxy in an intermediate node.  Some examples of
   application layer proxies which have been shown to improve
   performance in wireless environments are described in [CTC+97] and
   [LHKR96].

2.2
   This document provides a high level overview of Performance Enhancing
   Proxies.  Motivations for their development and use are described as
   well as some of the consequences of using them.

Expires December 25, 1999                                       [Page 1]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999

1 Introduction

   The Transmission Control Protocol [RFC0793] (TCP) is used as the
   transport layer protocol by many Internet and intranet applications.
   However, in certain environments, TCP and other higher layer protocol
   performance is limited by the link characteristics of the
   environment.  [Karn99] discusses various link layer design
   considerations that should be taken into account when designing a
   link layer service that is intended to support the Internet
   protocols. Such design choices may have a significant influence on
   the performance and efficiency of the Internet.  However, not all
   link characteristics, for example, high latency, can be compensated
   for by such choices in the link design.  And, the cost of
   compensating for some link characteristics may be prohibitive for
   some technologies.  A Performance Enhancing Proxy (PEP) is used to
   improve the performance of the Internet protocols in environments
   where native performance suffers for some reason, usually a
   characteristic of the environment.

   This document does not intend to advocate use of PEPs in general. On
   the contrary, the end-to-end principle in designing Internet
   protocols must be retained the prevailing approach and PEPs should be
   used only in specific environments and circumstances. In any
   environment where one might consider employing PEP for improved
   performance, an end user must be aware of the proxy and the choice of
   employing PEP must be under the control of the end user at all
   times. This also means that the end user must always be able to
   choose end-to-end IP service.

   The remainder of this document is organized as follows.  Section 2
   provides an overview of different kinds of PEP implementations.
   Section 3 discusses some of the implications with respect to using
   PEP, especially in the context of the global Internet.  Finally,
   Section 4 discusses some example environments where PEPs are used,
   satellite very small aperture terminal (VSAT) environments, mobile
   wireless WAN (W-WAN) environments and wireless LAN (W-LAN)
   environments.  A summary of PEP terminology is included in an
   appendix (Section 5).

   NOTE: As this is the first version of this draft it may fail to
         cover many important aspects related to PEPs. In particular,
         this version does not list all the possible implications of
         using PEPs nor does the included text on each of the
         implications cover all the aspects related to the particular
         implication.

Expires December 25, 1999                                       [Page 3]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999

2 Types of Performance Enhancing Proxies

   There are many types of Performance Enhancing Proxies.  Different
   types of proxies are used in different environments to overcome
   different link characteristics which affect protocol performance.
   Note that enhancing performance is not necessarily limited in scope
   to throughput. Other performance aspects may also be addressed.  For
   example, [M-TCP] addresses the issue of keeping TCP connections alive
   during periods of disconnection in wireless networks.

   The following sections describe some of the key characteristics which
   differentiate different types of proxies.

2.1 Layering

   A PEP implementation may function at the TCP layer or at the
   application layer.

2.1.1 TCP Performance Enhancing Proxies

   Most PEP implementations operate at the TCP layer.  Such an
   implementation is called a TCP Performance Enhancing Proxy (TCP
   PEP). For example, in an environment where ACKs may bunch together, a
   TCP proxy may be used to simply modify the ACK spacing in order to
   improve performance.  On the other hand, in an environment with a
   large delay*bandwidth product, a TCP proxy may be used to alter the
   behaviour of the TCP connection in order to improve its throughput.
   TCP PEP implementations may be aware of the type of application being
   carried by a TCP connection but, at most, only use this information
   to influence their behaviour at the TCP layer.

   The term TCP spoofing is sometimes used synonymously for TCP PEP.
   However, the term TCP spoofing more accurately applies to only the
   subset of TCP PEP implementations which transparently attempt to
   alter the behaviour of a TCP connection to improve performance.


2.1.2 Application Layer Proxies

   Application layer proxies, on the other hand, operate above the TCP
   layer.  Today, such proxies are widely used in the Internet and
   include Web caches and relay Mail Transfer Agents.

   Application layer proxies can be implemented for the purpose of
   improving application protocol as well as TCP performance with
   respect to a particular application being used with a particular type

Expires December 25, 1999                                       [Page 4]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999

   of link.  Some application protocols employ plenty of (unnecessary)
   round trips, lots of headers and/or inefficient encoding which may
   have a significant impact on performance, in particular, with long
   delay and slow links.  In some cases, this unnecessary overhead can
   be reduced, in general or for a particular type of link, by using an
   application level proxy in an intermediate node.  Some examples of
   application layer proxies which have been shown to improve
   performance in wireless environments are described in [CTC+97] and
   [LHKR96].

2.2 Distribution

   A PEP implementation may be integrated, i.e. implemented within a
   single node, or distributed, i.e. implemented in multiple nodes.  An
   integrated implementation represents a single point at which
   performance enhancement is applied.  For example, a proxy might be
   implemented to provide impedence matching at the point where wired
   and wireless links meet.

   A distributed implementation is generally used to surround a
   particular link for which performance enhancement is desired.  For
   example, a PEP implementation for a satellite connection may be
   distributed between two proxies located at each end of the satellite
   link.  A distributed implementation may be symmetric or asymmetric.
   A symmetric implementation uses two proxies with essentially
   identical behaviour at each end of the link.  An asymmetric
   implementation is generally used with an asymmetric link and uses two
   proxies which behave differently depending on which side of the link
   they are on.


2.3 Split Connections

   A split connection TCP implementation terminates the TCP connection
   received from an end system and establishes a corresponding TCP
   connection to the other end system.  In a distributed implementation,
   this is typically done to allow the use of a connection between the
   two proxies optimized for the link.  This might be a TCP connection
   optimized for the link or it might be another protocol, for example,
   a proprietary protocol running on top of UDP.  Also, the distributed
   implementation might use a separate connection between the proxies
   for each TCP connection or it might multiplex the data from multiple
   TCP connections across a single connection between the proxies.

   In an integrated proxy split connection implementation, the proxy
   again terminates the connection from one end system and originates a
   separate connection to the other end system.  [I-TCP] documents
   an example of a single proxy split connection implementation.



Expires December 25, 1999                                       [Page 5]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   In general, an integrated proxy uses a split connection
   implementation in order to address a mismatch in TCP capabilities
   between two end systems.  For example, the scaled TCP windows option
   [RFC1323] can be used to extend the maximum amount of TCP data which
   can be "in flight" (i.e. sent and awaiting acknowledgement).  This is
   useful for filling a link which has a high delay*bandwidth product.
   If one end system is capable of using scaled TCP windows but the
   other is not, the end system which is not capable can set up its
   connection with a proxy on its side of the high delay*bandwidth link.
   The split connection proxy then sets up a scaled TCP window
   connection over the link to the other end system.

   Split connection TCP implementations can effectively leverage TCP
   performance enhancements optimal for a particular link but which
   cannot necessarily be employed safely over the global Internet.

   Note that using split connection proxies does not necessarily exclude
   simultaneous use of IP for end-to-end connectivity.  When employed on
   a last hop link, the correct use of a split connection should be
   managed per application or per connection and should be under the
   control of the end user, allowing the user to decide whether a
   particular TCP connection or application makes use of the split
   connection proxy or operates end-to-end directly over IP.

   In effect, application layer proxies are split connection proxies
   with end systems using the proxies as a service related to a
   particular application. Therefore, all TCP layer enhancements that
   are available with split connection implementations can also be
   employed in conjunction with application layer enhancements.


2.4 Transparency

   Another key characteristic of a proxy is its degree of transparency.
   A proxy may operate totally transparently to the end systems and/or
   applications involved (in a connection), requiring no modifications
   to the end systems or applications.  On the other hand, a proxy
   implementation may require modifications to both ends in order to be
   used.  (This is known as an opaque implementation.)  In between, a
   proxy implementation may require modifications to only one of the end
   systems or applications involved.  (This is known as a translucent
   implementation.)

   It is sometimes useful to think of the degree of transparency of a
   PEP implementation at three levels, transparency with respect to the
   end systems, transparency with respect to the applications and
   transparency with respect to the users.  For example, a user who
   subscribes to a satellite Internet access service may be aware that



Expires December 25, 1999                                       [Page 6]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   the satellite terminal is providing a performance enhancing service
   even though the TCP stack and the applications in the user's PC are
   not aware of the proxy which implements it.

   Note that the issue of transparency is not the same as the issue of
   maintaining the end-to-end semantics of a TCP connection.  (The
   implications of not maintaining the end-to-end semantics of TCP
   connections are discussed in Section 3.)  A proxy which simply uses
   an ACK spacing mechanism maintains the end-to-end semantics of the
   TCP connection while a proxy which uses a split connection
   implementation may not.  Yet, both can be implemented transparently
   to the end systems.

   Application layer proxies are usually (but not always)
   non-transparent to the end systems and applications (and are almost
   always, if not always, non-transparent to the user).

   To enable end-to-end IP service at all times, an appropriate practice
   when using proxies is to allow the decision of employing a proxy to
   be under user control.


2.5 Tunnelling

   A proxy may encapsulate TCP messages to carry the messages across a
   particular link.  A proxy at the other end of the encapsulation
   tunnel removes the tunnel wrappers before final delivery to the
   receiving end system.  A tunnel might be used by a distributed split
   connection TCP implementation as the means for connecting the split
   connection proxies.  A tunnel might also be used to support forcing
   TCP connections which use asymmetric routing to go through the end
   points of a distributed PEP implementation.


2.6 ACK Handling

   The handling of TCP acknowledgements can differ significantly between
   different TCP PEP implementations.  The following subsections
   describe various ACK handling mechanisms.


2.6.1 ACK Spacing

   In some TCP PEP implementations the manipulation of TCP
   acknowledgements is the entire implementation.  ACK spacing is used
   to smooth out the flow of TCP acknowledgements traversing a link in
   order to improve performance by eliminating bursts of TCP data
   segments [Part98].



Expires December 25, 1999                                       [Page 7]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


2.6.2 Local Acknowledgements

   In some PEP implementations, TCP data segments received by a proxy
   are locally acknowledged by the proxy.  This speeds up TCP slow start
   and allows the sending end system to quickly open up its transmit
   window.  Local acknowledgements are automatically used with split
   connection implementations.


2.6.3 Local Retransmissions

   When local acknowledgements are used, the burden falls upon the TCP
   proxy to recover any data which is dropped after the proxy
   acknowledges it.  The TCP proxy receives the acknowledgements from
   the end system receiving the TCP data segments and uses them, along
   with appropriate timeouts, to determine when to retransmit lost
   data.

   Some PEP implementations perform local retransmissions even though
   they do not use local acknowledgements to alter TCP connection
   performance.  Snoop (without SACK) [SNOOP] is a well know example of
   such a PEP implementation.  Snoop caches TCP data segments it
   receives and forwards and then monitors the acknowledgements coming
   from the receiving TCP end system for duplicate acknowledgements
   (DUPACKs).  When DUPACKs are received, Snoop locally retransmits the
   lost TCP data segments from its cache, suppressing the
   acknowledgement stream flowing to the sending TCP end system until
   acknowledgements for new data start being received.


2.7 Compression

   Many PEP implementations include support for one or more forms of
   compression.  (In some PEP implementations, compression may even be
   the only mechanism used for performance improvement.)  Compression
   reduces the number of bytes which need to be sent across a link.
   This is useful in general and can be very important for bandwidth
   limited links.  Some of the benefits of using compression include:

      - Improved link efficiency;

      - Higher effective link utilization;

      - Reduced latency;

      - Improved interactive response time;

      - Decreased overhead;



Expires December 25, 1999                                       [Page 8]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


      - Reduced packet loss rate over lossy links.

   Where appropriate, link layer compression is used.  [TBD] documents
   an example of link layer compression used in conjunction with PEP.
   TCP and IP header compression are also frequently used with PEP
   implementations.  [RFC1144] describes a widely deployed method for
   compressing TCP headers.  Other header compression algorithms are
   described in [RFC2507], [RFC2508] and [RFC2509].

   Payload compression is also desirable and is increasing in importance
   with today's increased emphasis on Internet security.  IP layer (and
   above) security mechanisms convert IP payloads into random bit
   streams which defeat applicable link layer compression mechanisms by
   removing or hiding redundant "information."  Therefore, compression
   of the payload needs to be applied before security mechanisms are
   applied.  [RFC2393] defines a framework where common compression
   algorithms can be applied to arbitrary IP segment payloads.  However,
   [RFC2393] compression is not always applicable.  Many types of IP
   payloads (e.g. images, audio, video and "zipped" files being FTPed)
   are already compressed.  And, security mechanisms such as SSL and
   TLS are applied above the IP layer.

   With application layer proxies one can employ application-specific
   compression.  In particular, with slow links any compression that
   effectively reduces transfer volume over is tremendously useful.
   Typically an application-specific (or content-specific) compression
   mechanism is much more efficient than any generic compression
   mechanism. For example, a distributed Web proxy implementation may
   implement more efficient binary encoding of HTTP headers, or a single
   proxy can employ lossy compression that reduces the image quality of
   inline-images on Web pages according to end user instructions, thus
   reducing the number of bytes transferred over the slow link and
   consequently the response time perceived by the user.


2.8 Handling Periods of Link Disconnection

   Periods of link disconnection or link outage are very common with
   wireless links.  During these periods, a TCP sender does not receive
   the expected acknowledgements.  Upon expiration of the retransmit
   timer, this causes TCP to close its congestion window with all of the
   related drawbacks.  A TCP proxy may monitor the traffic coming from
   the TCP sender towards the TCP receiver behind the disconnected link.
   The proxy retains the last ACK, so that it can shut down the TCP
   sender's window by sending the last ACK with a window set to zero.
   Thus, the TCP sender will go into persist mode.

   To make this work in both directions, the TCP receiver behind the



Expires December 25, 1999                                       [Page 9]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   disconnected link must be aware of the current state of the
   connection and, in the event of a disconnection, it must be capable
   of freezing all timers.  [M-TCP] implements such operation.  Another
   possibility is that the disconnected link is surrounded by a
   distributed proxy pair.

   In split TCP connection implementations, a period of link
   disconnection can easily be hidden from the world on the other side
   of the proxy.  Consequently, the proxy and its counterpart behind the
   disconnected link can employ a modified TCP version which retains the
   state and all unacknowledged data segments across the period of
   disconnection and then performs local recovery as the link is
   reconnected.


2.9 Other Link Specific Enhancements

   <Some ideas...>

      - Implementing priority-based multiplexing of data (on
        a slow link);

      - Other possible enhancements.


3 Implications of Using PEP

   The following sections describe some of the implications of using
   PEP.


3.1 The End-to-end Argument

   As indicated in [RFC1958], the end-to-end argument is one of the
   architectural principles of the Internet.  The basic argument is
   that, as a first principle, certain required end-to-end functions can
   only be correctly performed by the end systems themselves.  Most of
   the negative implications associated with using PEP are related to
   breaking the end-to-end semantics of connections.  This is one of
   the main reasons why PEPs are not recommended for general use.

   As indicated in Section 2.4, not all PEP implementations break the
   end-to-end sematics of connections.  However, split connection PEP
   implementations, especially transparent split connection PEP
   implementations, often do.






Expires December 25, 1999                                      [Page 10]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


3.1.1 Security

   The most detrimental negative implication of breaking the end-to-end
   semantics of a connection is that it disables end-to-end use of IP
   layer security (IPsec). If, on the other hand, IPsec is employed
   end-to-end, encryption of IP packets via IPSEC's ESP header (in
   either transport or tunnel mode) renders the TCP header and payload
   unintelligible to intermediate PEPs. This precludes PEPs from
   working, because they need to examine the TCP headers in both
   directions. However, if the end user can select end-to-end IP
   service for the IPSEC traffic, the encrypted traffic is not subject
   to the possible performance enhancements but the other traffic is.

   With a non-transparent PEP implementation, if the end systems trust
   the proxy, IPsec can be used separately between each end system and
   the proxy. However, in most cases this is an undesireable or
   unacceptable alternative as the end systems can not trust the proxy.
   In addition, this is not as secure as end-to-end security. And, it
   can lead to potentially misleading security level assumptions by the
   end systems. If the two end systems negotiate different levels of
   security with the proxy, the end system which negotiated the stronger
   level of security may not be aware that a lower level of security is
   being provided for part of the connection. (The proxy could be
   implemented to prevent this from happening by being smart enough to
   force the same level of security to each end system.)

   With a transparent PEP implementation, it is difficult for the end
   systems to trust the proxy because they are not aware of its
   existence. However, IPsec can be implemented between the two proxies
   of a distributed implementation. And, if the PEP implementation is
   non-transparent to the users, the users could configure their end
   systems to use the proxies as the end points of an IPsec tunnel. In
   any case, the authors are currently not aware of any PEP
   implementations, transparent or non-transparent, which provide
   support for IPsec.

   Note that even when a PEP implementation does not break the
   end-to-end sematics of a connection, the PEP implementation may not
   be able to function in the presence of IPsec. For example, it is
   difficult to do ACK spacing if the proxy cannot reliably determine
   which IP packets contain ACKs.

   In most cases, security applied above the TCP layer can be used with
   PEP, especially TCP PEP.


3.1.2 Fate Sharing

   Another important aspect of the end-to-end argument is fate sharing.
   If a failure occurs in the network, the ability of the connection to

Expires December 25, 1999                                      [Page 11]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   survive the failure depends upon how much state is being maintained
   on behalf of the connection in the network. If no connection specific
   state resides in the network as in case of regular end-to-end
   operation, then a failure in the network will only break the
   connection if there is no alternate path through the network between
   the end systems. And, if there is no path, both end systems can
   detect this. However, if the connection depends upon some state being
   stored in the network (e.g. in a proxy), then a failure in the
   network (e.g. the node containing the proxy crashes) causes this
   state to be lost, forcing the connection to terminate even if an
   alternate path through the network exists.

   The importance of this aspect of the end-to-end argument with respect
   to PEP is very PEP implementation dependent. Sometimes coincidentally
   but more often by design, PEP is used in environments where there is
   no alternate path between the end systems and, therefore, a failure
   of the intermediate node containing the proxy would result in the
   termination of the connection in any case. And, even when this is not
   the case, the users may choose to accept the risk of the proxy
   crashing in order to take advantage of the performance gains offered
   by the PEP implementation. Note that accepting the risk must be
   under the control of the user and the user must always have the
   option to choose end-to-end IP service.


3.1.3 End-to-end Acknowledgements

   Another aspect of the end-to-end argument is that of acknowledging
   the receipt of data end-to-end.  Breaking the end-to-end semantics of
   a TCP connection prevents TCP acknowledgements from being used for
   this purpose by an application.  If an application uses TCP
   acknowledgements as its indication of successful end-to-end delivery
   of data, the application may not be a good candidate for use with
   PEP.

   Using TCP acknowledgements as an indication of reliable delivery at
   the application layer is not necessarily a good idea.  First, the TCP
   implementation may not provide TCP acknowledgement information to the
   application.  Second, the TCP acknowledgement only indicates that
   data was delivered to the TCP implementation on the other end system.
   It does not guarantee that the data was delivered to the application
   layer on the other end system.  Therefore, also according to the
   end-to-end argument, a well designed application must use an
   application layer acknowledgement to ensure end-to-end delivery
   of application layer data.  PEP implementations generally do not
   interfere with end-to-end application layer acknowledgements, and,
   if they do, they must take full responsibility for delivering
   the application data to its ultimate destination. For example,



Expires December 25, 1999                                      [Page 12]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   that is how relay MTAs operate when delivering Internet mail
   messages.


3.2 Other Implications

   TBD in later versions:

    - breaking the end-to-end failure diagnostics

    - problems with mobile environments where the PEP related state
      information with should be transferred to the new PEP node
      during a handoff.

    - other possible implications


4 PEP Environment Examples

   The following sections describe examples of environments where PEP is
   currently used to improve performance.


4.1 VSAT Environments

   Today, VSAT networks are implemented with geosynchronous satellites.
   VSAT data networks are typically implemented using a star topology.
   A large hub earth station is located at the center of the star with
   VSATs used at the remote sites of the network.  Data is sent from the
   hub to the remote sites via an outroute.  Data is sent from the
   remote sites to the hub via one or more inroutes.  An outroute is
   typically much larger than an inroute.  However, multiple inroutes
   can be used with each outroute.

   VSAT networks are generally used to implement private networks
   (i.e. intranets) for enterprises (e.g. corporations) with
   geographically dispursed sites.  VSAT networks are rarely, if ever,
   used to implement Internet connectivity except at the edge (i.e. as
   the last hop).  Connection to the Internet for the VSAT network is
   usually implemented at the VSAT network hub site using appropriate
   firewall and (when appropriate) NAT [NAT] devices.


4.1.1 VSAT Network Characteristics

   With respect to TCP performance, VSAT networks exhibit the following
   subset of the satellite characteristics documented in [RFC2488]:




Expires December 25, 1999                                      [Page 13]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


      Long feedback loops

         Propagation delay from a sender to a receiver in a
         geosynchronous satellite network can range from 240 to 280
         milliseconds, depending on where the sending and receiving
         sites are in the satellite footprint.  This makes the round
         trip time just due to propagation delay at least 480
         milliseconds.  Queueing delay and delay due to shared channel
         access methods can sometimes increase the total delay up to on
         the order of a few seconds.

      Large delay*bandwidth products

         VSAT networks can support capacity ranging from a few kilobits
         per second up to multiple megabits per second.  When combined
         with the relatively long round trip time, TCP needs to keep a
         large number of packets "in flight" in order to fully utilize
         the satellite link.

      Asymmetric capacity

         As indicated above, the outroute of a VSAT network is usually
         significantly larger than an inroute.  Even though multiple
         inroutes can be used within a network, a given VSAT can only
         access one inroute at a time.  Therefore, the incoming
         (outroute) and outgoing (inroute) capacity for a VSAT is often
         very asymmetric.  As outroute capacity has increased in recent
         years, ratios of 400 to 1 or greater are becoming more and more
         common.  With a TCP maximum segment size of 1460 bytes and
         delayed acknowledgements [RFC1122] in use, the ratio of IP
         packet bytes for data to IP packet bytes for ACKs is only
         (3000 to 40) 75 to 1.  Thus, inroute capacity for carrying ACKs
         can have a significant impact on TCP performance.

   With respect to the other satellite characteristics listed in
   [RFC2488], VSAT networks typically do not suffer from intermittent
   connectivity or variable round trip times.  Also, VSAT networks
   generally include a significant amount of error correction coding.
   This makes the bit error rate very low during clear sky conditions,
   approaching the bit error rate of a typical terrestrial network.  In
   severe weather, the bit error rate may increase significantly but
   such conditions are rare (when looked at from a network availability
   point of view) and VSAT networks are generally engineered to work
   during these conditions but not to optimize performance during these
   conditions.






Expires December 25, 1999                                      [Page 14]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


4.1.2 VSAT Network PEP Implementations

   Performance Enhancing Proxies implemented for VSAT networks generally
   focus on improving throughput (for applications such as FTP and HTTP
   web page retrievals).  To a lesser degree, PEP implementations also
   work to improve interactive response time for small transactions.

   There is no one dominant PEP implementation used with VSAT networks.
   Each VSAT network vendor tends to implement their own version of PEP,
   integrated with the other features of their VSAT product.  [HNS] and
   [SPACENET] describe VSAT products with integrated PEP capabilities.
   There are also third party PEP implementations designed to be used
   with VSAT networks.  These products run on nodes external to the VSAT
   network at the hub and remote sites.  SatBooster [FLASH] and Venturi
   [FOURELLE] are examples of such products.

   VSAT network PEP implementations generally share the following
   characteristics:

      - They focus on improving TCP performance;

      - They use an asymmetric distributed implementation;

      - They use a split connection approach with local acknowledgements
        and local retransmissions;

      - They support some form of compression to reduce the amount of
        bandwidth required (with emphasis on saving inroute bandwidth).

   The key differentiators between VSAT network PEP implementations are:

      - The maximum throughput they attempt to support (mainly a
        function of the amount of buffer space they use);

      - The protocol used over the satellite link.  Some implementations
        use a modified version of TCP while others use a proprietary
        protocol running on top of UDP;

      - The type of compression used.  Third party VSAT network PEP
        implementations generally focus on application (e.g. HTTP)
        specific compression algorithms while PEP implementations
        integrated into the VSAT network generally focus on link
        specific compression.

   PEP implementations integrated into a VSAT product are generally
   transparent to the end systems.  Third party PEP implementations used
   with VSAT networks are usually translucent, requiring a configuration
   change in the remote site end system to route TCP packets to the



Expires December 25, 1999                                      [Page 15]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   remote site proxy.  In some cases, the PEP implementation is actually
   integrated transparently into the end system node itself, using a
   "bump in the stack" approach.


4.1.3 VSAT Network PEP Motivation

   TBD (in later versions):

   <Why>

   - Intranet versus Internet

   - Highly asymmetric links

   - Support for "non-modern" TCP stacks


4.2 W-WAN Environments

   TBD (in later versions):

   [ text covering W-WAN example(s) is intended to include at least the
     following issues: ]


4.2.1 W-WAN Network Characteristics


   <Characteristics>

   - low bandwidth
   - high latency
   - high BER, or long variable delays due to local link-layer
     error recovery
   - some W-WAN links have a lot internal buffers which tend to
     accumulate data, thus resulting in increased round-trip delay
   - unexpected link disconnections may occur frequently (or
     intermittent link outages)
   - (re)setting link-connection up takes long time
   - typically last-hop link to the end user
   - W-WAN network typically takes care of terminal mobility: the
     connection point to the Internet is retained while the user
     moves with the mobile host







Expires December 25, 1999                                      [Page 16]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


4.2.2 W-WAN PEP Implementations

   <How/What>

   - Mowgli approach [MOWGLI]: Split TCP together with application
     layer proxies and W-WAN link specific protocol [KRLKA97] or
     with corresponding protocol modifications, compression in
     various forms, reduction of round trips, priority-based
     multiplexing of data over the W-WAN link, link-level flow
     control to prevent data from accumulating into the W-WAN link
     internal buffers, ...

   <Why>

   - transfer volume must be reduced to make Internet access usable,
     (long) link disconnections must not abort active (bulk data)
     transfers, slow W-WAN link should be efficiently shielded from
     excess traffic and the global (wired) Internet congestion,
     (all) applications can not be made mobility/W-WAN aware in short
     time frame or maybe ever, interactive traffic must be transmitted
     in timely manner even if there are other simultaneous bandwidth
     intensive  (background) transfers...


4.3 W-LAN Environments

   Wireless LANs (W-LAN) are typically organized in a cellular topology
   where a base station with a W-LAN transceiver is controlling a single
   cell.  A cell is defined in terms of the coverage area of the base
   station.  The base stations are directly connected to the wired
   network.  The base station in each of the cells is responsible for
   forwarding packets to and from the hosts located in the cell.  Often
   the hosts with W-LAN tranceivers are mobile.  When such a mobile host
   moves from one cell to another cell, the responsibility for
   forwarding packets between the wired network and the mobile host must
   be transferred to the base station of the new cell.  This is known as
   a handoff.


4.3.1 W-LAN Network Characteristics

   Current wireless LANs typically provide link bandwidth from 1 Mbps to
   10 Mbps, most typically bandwidth being 1 or 2 Mbps.  In the future,
   wide deployment of higher bandwidths up to 20 Mbps or even higher can
   be expected.  The round-trip delay with wireless LANs is on the order
   of a few milliseconds or tens of milliseconds.  Examples of W-LANs
   include ... <TBD>.




Expires December 25, 1999                                      [Page 17]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   Wireless LANs are error-prone due to wireless link corruption.  TCP
   performance over wireless LANs or a network path involving a W-LAN
   link suffers as packet losses due to wireless bit errors tend to
   occur in bursts.  In addition, consecutive packet losses may occur
   also during handoffs.

   As TCP wrongly interprets these packet losses to be network
   congestion, the TCP sender reduces its congestion window and is often
   forced to timeout in order to recover from the consecutive losses.
   The result is often unacceptably poor end-to-end performance.


4.3.2 W-LAN PEP Implementations: Snoop

   Berkeley's Snoop protocol [SNOOP] is a TCP-specific approach in which
   a TCP-aware module, a Snoop agent, is deployed at the W-LAN base
   station that acts as the last-hop router to the mobile host. Snoop
   aims at retaining the TCP end-to-end semantics.  The Snoop agent
   monitors every packet that passes through the base station in either
   direction and maintains soft state per each TCP connection.

   For a data transfer to a mobile host, the Snoop agent caches
   unacknowledged TCP data which it forwards to the (wired network)
   receiver and monitors the corresponding ACKs. It does two things:

     1. Retransmits any lost packets locally by using local timers and
        duplicate ACKs to identify packet loss, instead of waiting for
        the TCP sender to do so end-to-end.

     2. Suppresses the duplicate acks on their way from the mobile host
        back to the sender, thus avoiding fast retransmit and congestion
        avoidance at the latter.

   Thus, the Snoop protocol is designed to avoid unnecessary fast
   retransmits by the TCP sender, when the Snoop agent retransmits a
   packet locally.  Consider a system that employs the Snoop agent and a
   TCP sender S that sends packets to receiver R via a base station BS.
   Assume that the sender sends packets A, B, C, D, E (in that order)
   which are forwarded by BS to the wireless receiver R.  Assume the
   first transmission of packet B is lost due to errors on the wireless
   link.  In this case, receiver R receives packets A, C, D, E and B (in
   that order).  Receipt of packets C, D and E triggers duplicate
   acknowledgement.  When the TCP sender receives three duplicate
   acknowledgements, it triggers fast retransmit (which results in a
   retransmission, as well as reduction of the congestion window).  The
   Snoop agent also retransmits B locally, when it receives three
   duplicate acknowledgements.  The fast retransmit at the TCP sender
   occurs despite the local retransmit on the wireless link, degrading



Expires December 25, 1999                                      [Page 18]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   throughput.  Snoop deals with this problem by dropping TCP dupacks
   appropriately (at the base station).

   For a data transfer from a mobile host, the Snoop agent detects the
   packet losses on the wireless link by monitoring the data segments it
   forwards. It then employs either Negative Acknowledgements (NAK)
   locally or Explicit Loss Notifications (ELN) to inform the mobile
   sender that the packet loss was not related to congestion, thus
   allowing the sender to retransmit without triggering normal
   congestion control procedures. To implement this, changes at the
   mobile host are required.

   When a Snoop agent uses NAKs to inform th TCP sender of the packet
   losses on the wireless link, one possibility to implement them is
   using the Selective Acknowledgment (SACK) option of the TCP
   [RFC2018]. This requires enabling SACK processing at the mobile host.
   The Snoop agent sends a TCP SACK, when it detects a hole in the
   transmission sequence from the mobile host or when it has not
   received any new packets from the mobile host for a certain time
   period. This approach relies on the advisory nature of the SACKs: the
   mobile sender is adviced to retransmit the missing segments indicated
   by SACK, but it must not assume successful end-to-end delivery of the
   segments acknowledged with SACK as these segments might get lost in
   the later path to the receiver. Instead, the sender must wait for a
   cumulative ACK to arrive.

   When the ELN mechanism is used to inform the mobile sender of the
   packet losses, one of the unreserved bits in the TCP header is
   suggested to be used for ELN [SNOOPELN]. The Snoop agent keeps track
   of the holes that correspond to segments lost over the wireless link.
   When (duplicate) ACK corresponding to a hole in the sequence space
   arrives from the TCP receiver, the Snoop agent sets the ELN bit on
   the ACK to indicate that the loss is unrelated to congestion and then
   forwards the ACK to the TCP sender. When the sender receives a
   certain number of (duplicate) ACKs with ELN (a configurable variable
   at the mobile host, e.g., two), it retransmit the missing segment
   without performing any congestion control measures.

   A scheme such as Snoop is needed only if the possibility of a fast
   retransmit due to wireless errors is non-negligible. In particular,
   if the wireless link uses a stop-and-go protocol (or otherwise
   delivers packets in-order), then this scheme is not very beneficial.
   Also, if the bandwidth*delay product of the wireless link is smaller
   than four segments, the probability that the snoop agent will have an
   opportunity to send three new packets before a lost packet is
   retransmitted is small. Since at least three dupacks are needed to
   trigger a fast retransmit, with a wireless bandwidth*delay product of
   less than four packets, schemes such as Snoop would not be necessary



Expires December 25, 1999                                      [Page 19]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   (unless the link layer is not designed properly). Conversely, when
   the wireless bandwidth*delay product is large enough, Snoop can
   provide significant performance improvement (compared with standard
   TCP).

   [ TBD: some text how Snoop tries to alleviate the problem with small
          windows ]

   Snoop requires the base station to examine and operate on the traffic
   between the mobile host and the TCP server on the wired Internet.
   Snoop does not work if the IP traffic is encrypted. Possible
   solutions involve:

   - making the Snoop agent a party to the security association between
     the client and the server;

   - IPSEC tunneling mode, terminated at the Snooping base station.

   However, these techniques require that users trust base stations.

   SNOOP also requires that both the data and the corresponding ACKs
   traverse the same base station. Furthermore, if the SNOOP agent
   retransmits the TCP data segments ("at the transport layer") across
   the wireless link, this may duplicate efforts by the link layer.
   SNOOP has been described by its designers as a TCP-aware link layer.
   This is the right approach: the link and network layers can be much
   more aware of each other than strict layering suggests.

   <Why>

   - to alleviate local link pkt drops due to high-BER (wireless) link


5 Security Considerations

   The security implications of using PEP are discussed in Section
   3.1.1.

   <Are there other security considerations which need mentioning?>


6 Appendix - PEP Terminology Summary

   This appendix provides a summary of terminology frequently used
   during discussion of Performance Enhancing Proxies.  (In some cases,
   these terms have different meanings from their non-PEP related
   usage.)




Expires December 25, 1999                                      [Page 20]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


6.1 Definitions

   ACK spacing

      Delayed forwarding of acknowledgements in order to space them
      out.

   application layer PEP

      Performance enhancement operating above the TCP layer.  May be
      aimed at improving TCP or application protocol performance (or
      both).

   asymmetric link

      A link which has different rates for the forward channel (used for
      data segements) and the back (or return) channel (used for ACKs).

   available bandwidth

      The total capacity of a link available to carry information at any
      given time.  May be lower than the raw bandwidth due to competing
      traffic.

   bandwidth utilization

      The actual amount of information delivered over a link in a given
      period, expressed as a percent of the raw bandwidth of the link.

   gateway

      Has several meanings depending on context:

         - An access point to a particular link;

         - A device capable of initiating and terminating connections on
           behalf of a user or end system (e.g. a firewall or proxy).

      Not necessarily, but could be, a router.

   in flight (data)

      Data sent but not yet acknoledged.  More precisely, data sent for
      which the sender has not yet received the acknowledgement.

   local acknowledgement

      The generation of acknowledgements by an entity in the path



Expires December 25, 1999                                      [Page 21]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


      between two end systems in order to allow the sending end system
      to transmit more data without waiting for end-to-end
      acknowledgements.

   opaque

      Requires changes to be made to both end systems of a connection.

   proxy

      An entity in the network acting on behlaf of an end system or user
      (with or without the knowledge of the end system or user).

   raw bandwidth

      The total capacity of an unloaded link available to carry
      information.

   Snoop

      A TCP-aware link layer developed for wireless packet radio and
      cellular networks.  It works by caching segments at a wireless
      base station.  If the base station sees duplicate acknowledgements
      for a segment that it has cached, it retransmits the missing
      segment while suppressing the duplicate acknowledgement stream
      being forwarded back to the sender until the wireless receiver
      starts to acknowledge new data.  Described in detail in [SNOOP].

   split connection

      A connection that has been terminated before reaching the
      destination end system in order to initiate a second connection
      towards the end system.

   TCP PEP

      Performance enhancement operating at the TCP layer.  Aimed at
      improving TCP performance.

   TCP splitting

      Using one or more split connections to improve TCP performance.

   TCP spoofing

      Sometimes used as a synonym for TCP PEP but more accurately refers
      to using transparent mechanisms to improve TCP performance.




Expires December 25, 1999                                      [Page 22]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   translucent

      Requires changes to be made at only one end system of a
      connection.

   transparent

      Requires no changes to be made to either end system of a
      connection.

   tunnelling

      The process of wrapping a packet received from an end system
      inside of another packet to transition a particular link.


7 Acknowledgements

   This document grew out of the Internet-Drafts "TCP Performance
   Enhancing Proxy Terminology" and "Long Thin Networks" and the work
   done in the IETF TCPSAT working group.


8 References

   [CTC+97]  H. Chang, C. Tait, N. Cohen, M. Shapiro, S. Mastrianni,
      R. Floyd, B. Housel, D. Lindquist, "Web Browsing in a Wireless
      Environment: Disconnected and Asynchronous Operation in ARTour Web
      Express," in proceedings of MobiCom'97, Budapest, Hungary,
      September 1997.

   [FLASH]  http://www.flash-networks.com/

   [FOURELLE]  http://www.fourelle.com/

   [HNS]  http://www.hns.com/

   [I-TCP]  A. Bakre, B.R. Badrinath, "I-TCP: Indirect TCP for Mobile
      Hosts," in proceedings of the 15th International Conference on
      Distributed Computing Systems (ICDCS), May 1995.

   [Karn99]  P. Karn, "Advice for Internet Subnetwork Designers,"
      Internet-Draft http://people.qualcomm.com/karn/pilc.txt
      (work in progress).

   [KRLKA97] Kojo, M., Raatikainen, K., Liljeberg,  M., Kiiskinen,
       J., Alanko, T., "An Efficient Transport Service for Slow Wireless
       Telephone Links," in IEEE Journal on Selected Areas of



Expires December 25, 1999                                      [Page 23]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


       Communication, volume 15, number 7, September 1997.

   [LHKR96]  M. Liljeberg, H. Helin, M. Kojo, K. Raatikainen, "Mowgli
      WWW Software: Improved Usability of WWW in Mobile WAN
      Environments," in proceedings of IEEE Global Internet 1996
      Conference, London, UK, November 1996.

   [MOWGLI] Kojo, M., Raatikainen, K., Alanko, T., "Connecting Mobile
      Workstations to the Internet over a Digital Cellular Telephone
      Network," in Proc. Workshop on Mobile and Wireless Information
      Systems (MOBIDATA), Rutgers University, NJ, November 1994.
      Available at:  http://www.cs.Helsinki.FI/research/mowgli/. Revised
      version published in Mobile Computing, pp. 253-270, Kluwer, 1996.

   [M-TCP]  K. Brown, S. Singh, "M-TCP: TCP for Mobile Cellular
      Networks," ACM Computer Communications Review Volume 27(5), 1997.
      Available at ftp://ftp.ece.orst.edu/pub/singh/papers/mtcp.ps.gz.

   [NAT]  P. Srisuresh, M. Holdrege, "IP Network Address Translator
      (NAT) Terminology and Considerations," Internet-Draft
      draft-ietf-nat-terminology-03.txt, June 1999 (work in progress).

   [Part98]  C. Partridge, "ACK Spacing for High Delay-Bandwidth Paths
      with Insufficient Buffering," September 1998. Internet-Draft
      draft-rfced-info-partridge-01.txt (work in progress).

   [RFC0793]  J. Postel, "Transmission Control Protocol," STD 7,
      RFC 793, September 1981.

   [RFC1122]  R. Braden, "Requirements for Internet Hosts --
      Communications Layers," STD 3, RFC 1122, October 1989.

   [RFC1144]  V. Jacobson, "Compressiing TCP/IP Headers for Low-Speed
      Serial Links," RFC 1144, February 1990.

   [RFC1323]  V. Jacobson, R. Braden, D. Borman, "TCP Extensions for
      High Performance," RFC 1323, May 1992.

   [RFC1958]  B. Carpenter, "Architectural Principles of the Internet,"
      RFC 1958, June 1996.

   [RFC2018] Mathis, M., Mahdavi, J., Floyd, S., and Romanow, A.,
      "TCP Selective Acknowledgment Options," RFC 2018, October, 1996.

   [RFC2393]  A. Shacham, R. Monsour, R. Pereira, M. Thomas, "IP Payload
      Compression Protocol (IPcomp)," RFC 2393, December 1998.

   [RFC2488]  M. Allman, D. Glover, L. Sanchez, "Enhancing TCP Over



Expires December 25, 1999                                      [Page 24]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


      Satellite Channels using Standard Mechanisms," BCP 28, RFC 2488,
      January 1999.

   [RFC2507]  M. Degermark, B. Nordgren, S. Pink, "IP Header
      Compression," RFC 2507, February 1999.

   [RFC2508]  S. Casner, V. Jacobson, "Compressing IP/UDP/RTP Headers
      for Low-Speed Serial Links," RFC 2508, February 1999.

   [RFC2509]  M. Engan, S. Casner, C. Bormann, "IP Header Compression
      over PPP," RFC 2509, February 1999.

   [SNOOP]  H. Balakrishnan, S. Seshan, E. Amir, R. Katz, "Improving
      TCP/IP Performance over Wireless Networks," in proceedings of the
      1st ACM Conference on Mobile Communications and Networking
      (Mobicom), Berkeley, CA, November 1995.

   [SNOOPELN] H. Balakrishnan, R. Katz, "Explicit Loss Notification
      and Wireless Web Performance," In Proc. IEEE Globecom 1998,
      Internet Mini-Conference, Sydney, Australia, November 1998.

   [SPACENET]  http://www.spacenet.com/


9 Authors' Addresses

   Questions about this document may be directed at:
























Expires December 25, 1999                                      [Page 25]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


             John Border
             Hughes Network Systems
             11717 Exploration Lane
             Germantown, Maryland  20876

             Voice:  +1-301-601-4099
             Fax:    +1-301-601-4275
             E-Mail: border@hns.com

             Markku Kojo
             University of Helsinki/Department of Computer Science
             P.O. Box 26 (Teollisuuskatu 23)
             FIN-00014 HELSINKI
             Finland

             Voice:  +358-9-7084-4179
             Fax:    +358-9-7084-4441
             E-Mail: kojo@cs.helsinki.fi

             Jim Griner
             NASA Glenn Research Center
             MS: 54-2
             21000 Brookpark Orad
             Cleveland, Ohio  44135-3191

             Voice:  +1-216-433-5787
             Fax:    +1-216-433-8705
             E-Mail: jgriner@grc.nasa.gov

             Gabriel E. Montenegro
             Sun Labs Networking and Security Group
             Sun Microsystems, Inc.
             901 San Antonio Road
             Mailstop UMPK 15-214
             Mountain View, California 94303

             Voice:  +1-650-786-6288
             Fax:    +1-650-786-6445
             E-Mail: gab@sun.com



10 Full Copyright Statement

   Copyright (C) The Internet Society (1999).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it



Expires December 25, 1999                                      [Page 26]


INTERNET DRAFT        Performance Enhancing Proxies            June 1999


   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.






























Expires December 25, 1999                                      [Page 27]