GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc3366

Network Working Group G. Fairhurst Request for Comments: 3366 University of Aberdeen BCP: 62 L. Wood Category: Best Current Practice Cisco Systems Ltd

                                                           August 2002
  Advice to link designers on link Automatic Repeat reQuest (ARQ)

Status of this Memo

 This document specifies an Internet Best Current Practices for the
 Internet Community, and requests discussion and suggestions for
 improvements.  Distribution of this memo is unlimited.

Copyright Notice

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

Abstract

 This document provides advice to the designers of digital
 communication equipment and link-layer protocols employing link-layer
 Automatic Repeat reQuest (ARQ) techniques.  This document presumes
 that the designers wish to support Internet protocols, but may be
 unfamiliar with the architecture of the Internet and with the
 implications of their design choices for the performance and
 efficiency of Internet traffic carried over their links.
 ARQ is described in a general way that includes its use over a wide
 range of underlying physical media, including cellular wireless,
 wireless LANs, RF links, and other types of channel.  This document
 also describes issues relevant to supporting IP traffic over
 physical-layer channels where performance varies, and where link ARQ
 is likely to be used.

Fairhurst & Wood Best Current Practice [Page 1] RFC 3366 Advice to Link Designers on Link ARQ August 2002

Table of Contents

 1.    Introduction. . . . . . . . . . . . . . . . . . . . . . . . .2
 1.1   Link ARQ. . . . . . . . . . . . . . . . . . . . . . . . . . .4
 1.2   Causes of Packet Loss on a Link . . . . . . . . . . . . . . .5
 1.3   Why Use ARQ?. . . . . . . . . . . . . . . . . . . . . . . . .6
 1.4   Commonly-used ARQ Techniques. . . . . . . . . . . . . . . . .7
 1.4.1 Stop-and-wait ARQ . . . . . . . . . . . . . . . . . . . . . .7
 1.4.2 Sliding-Window ARQ. . . . . . . . . . . . . . . . . . . . . .7
 1.5   Causes of Delay Across a Link . . . . . . . . . . . . . . . .8
 2.    ARQ Persistence . . . . . . . . . . . . . . . . . . . . . . 10
 2.1   Perfectly-Persistent (Reliable) ARQ Protocols . . . . . . . 10
 2.2   High-Persistence (Highly-Reliable) ARQ Protocols. . . . . . 12
 2.3   Low-Persistence (Partially-Reliable) ARQ Protocols. . . . . 13
 2.4   Choosing Your Persistency . . . . . . . . . . . . . . . . . 13
 2.5   Impact of Link Outages. . . . . . . . . . . . . . . . . . . 14
 3.    Treatment of Packets and Flows. . . . . . . . . . . . . . . 15
 3.1   Packet Ordering . . . . . . . . . . . . . . . . . . . . . . 15
 3.2   Using Link ARQ to Support Multiple Flows. . . . . . . . . . 16
 3.3   Differentiation of Link Service Classes . . . . . . . . . . 17
 4.    Conclusions . . . . . . . . . . . . . . . . . . . . . . . . 19
 5.    Security Considerations . . . . . . . . . . . . . . . . . . 21
 6.    IANA Considerations . . . . . . . . . . . . . . . . . . . . 21
 7.    Acknowledgements. . . . . . . . . . . . . . . . . . . . . . 22
 8.    References. . . . . . . . . . . . . . . . . . . . . . . . . 22
 8.1   Normative References. . . . . . . . . . . . . . . . . . . . 22
 8.2   Informative References. . . . . . . . . . . . . . . . . . . 23
 9.    Authors' Addresses. . . . . . . . . . . . . . . . . . . . . 26
 10.   Full Copyright Statement. . . . . . . . . . . . . . . . . . 27

1. Introduction

 IP, the Internet Protocol [RFC791], forms the core protocol of the
 global Internet and defines a simple "connectionless" packet-switched
 network.  Over the years, Internet traffic using IP has been carried
 over a wide variety of links, of vastly different capacities, delays
 and loss characteristics.  In the future, IP traffic can be expected
 to continue to be carried over a very wide variety of new and
 existing link designs, again of varied characteristics.
 A companion document [DRAFTKARN02] describes the general issues
 associated with link design.  This document should be read in
 conjunction with that and with other documents produced by the
 Performance Implications of Link Characteristics (PILC) IETF
 workgroup [RFC3135, RFC3155].

Fairhurst & Wood Best Current Practice [Page 2] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 This document is intended for three distinct groups of readers:
 a. Link designers wishing to configure (or tune) a link for the IP
    traffic that it will carry, using standard link-layer mechanisms
    such as the ISO High-level Data Link Control (HDLC) [ISO4335a] or
    its derivatives.
 b. Link implementers who may wish to design new link mechanisms that
    perform well for IP traffic.
 c. The community of people using or developing TCP, UDP and related
    protocols, who may wish to be aware of the ways in which links
    can operate.
 The primary audiences are intended to be groups (a) and (b).  Group
 (c) should not need to be aware of the exact details of an ARQ scheme
 across a single link, and should not have to consider such details
 for protocol implementations; much of the Internet runs across links
 that do not use any form of ARQ.  However, the TCP/IP community does
 need to be aware that the IP protocol operates over a diverse range
 of underlying subnetworks.  This document may help to raise that
 awareness.
 Perfect reliability is not a requirement for IP networks, nor is it a
 requirement for links [DRAFTKARN02].  IP networks may discard packets
 due to a variety of reasons entirely unrelated to channel errors,
 including lack of queuing space, congestion management, faults, and
 route changes.  It has long been widely understood that perfect
 end-to-end reliability can be ensured only at, or above, the
 transport layer [SALT81].
 Some familiarity with TCP, the Transmission Control Protocol [RFC793,
 STE94], is presumed here.  TCP provides a reliable byte-stream
 transport service, building upon the best-effort datagram delivery
 service provided by the Internet Protocol.  TCP achieves this by
 dividing data into TCP segments, and transporting these segments in
 IP packets.  TCP guarantees that a TCP session will retransmit the
 TCP segments contained in any data packets that are lost along the
 Internet path between endhosts.  TCP normally performs retransmission
 using its Fast Retransmit procedure, but if the loss fails to be
 detected (or retransmission is unsuccessful), TCP falls back to a
 Retransmission Time Out (RTO) retransmission using a timer [RFC2581,
 RFC2988].  (Link protocols also implement timers to verify integrity
 of the link, and to assist link ARQ.)  TCP also copes with any
 duplication or reordering introduced by the IP network.  There are a
 number of variants of TCP, with differing levels of sophistication in

Fairhurst & Wood Best Current Practice [Page 3] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 their procedures for handling loss recovery and congestion avoidance.
 Far from being static, the TCP protocol is itself subject to ongoing
 gradual refinement and evolution, e.g., [RFC2488, RFC2760].
 Internet networks may reasonably be expected to carry traffic from a
 wide and evolving range of applications.  Not all applications
 require or benefit from using the reliable service provided by TCP.
 In the Internet, these applications are carried by alternate
 transport protocols, such as the User Datagram Protocol (UDP)
 [RFC768].

1.1 Link ARQ

 At the link layer, ARQ operates on blocks of data, known as frames,
 and attempts to deliver frames from the link sender to the link
 receiver over a channel.  The channel provides the physical-layer
 connection over which the link protocol operates.  In its simplest
 form, a channel may be a direct physical-layer connection between the
 two link nodes (e.g., across a length of cable or over a wireless
 medium).  ARQ may also be used edge-to-edge across a subnetwork,
 where the path includes more than one physical-layer medium.  Frames
 often have a small fixed or maximum size for convenience of
 processing by Medium-Access Control (MAC) and link protocols.  This
 contrasts with the variable lengths of IP datagrams, or 'packets'.  A
 link-layer frame may contain all, or part of, one or more IP packets.
 A link ARQ mechanism relies on an integrity check for each frame
 (e.g., strong link-layer CRC [DRAFTKARN02]) to detect channel errors,
 and uses a retransmission process to retransmit lost (i.e., missing
 or corrupted) frames.
 Links may be full-duplex (allowing two-way communication over
 separate forward and reverse channels), half-duplex (where two-way
 communication uses a shared forward and reverse channel, e.g., IrDA,
 IEEE 802.11) or simplex (where a single channel permits communication
 in only one direction).
 ARQ requires both a forward and return path, and therefore link ARQ
 may be used over links that employ full- or half-duplex links.  When
 a channel is shared between two or more link nodes, a link MAC
 protocol is required to ensure all nodes requiring transmission can
 gain access to the shared channel.  Such schemes may add to the delay
 (jitter) associated with transmission of packet data and ARQ control
 frames.
 When using ARQ over a link where the probability of frame loss is
 related to the frame size, there is an optimal frame size for any
 specific target channel error rate.  To allow for efficient use of
 the channel, this maximum link frame size may be considerably lower

Fairhurst & Wood Best Current Practice [Page 4] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 than the maximum IP datagram size specified by the IP Maximum
 Transmission Unit (MTU).  Each frame will then contain only a
 fraction of an IP packet, and transparent implicit fragmentation of
 the IP datagram is used [DRAFTKARN02].  A smaller frame size
 introduces more frame header overhead per payload byte transported.
 Explicit network-layer IP fragmentation is undesirable for a variety
 of reasons, and should be avoided [KEN87, DRAFTKARN02].  Its use can
 be minimized with use of Path MTU discovery [RFC1191, RFC1435,
 RFC1981].
 Another way to reduce the frame loss rate (or reduce transmit signal
 power for the same rate of frame loss) is to use coding, e.g.,
 Forward Error Correction (FEC) [LIN93].
 FEC is commonly included in the physical-layer design of wireless
 links and may be used simultaneously with link ARQ.  FEC schemes
 which combine modulation and coding also exist, and may also be
 adaptive.  Hybrid ARQ [LIN93] combines adaptive FEC with link ARQ
 procedures to reduce the probability of loss of retransmitted frames.
 Interleaving may also be used to reduce the probability of frame loss
 by dispersing the occurrence of errors more widely in the channel to
 improve error recovery; this adds further delay to the channel's
 existing propagation delay.
 The document does not consider the use of link ARQ to support a
 broadcast or multicast service within a subnetwork, where a link may
 send a single packet to more than one recipient using a single link
 transmit operation.  Although such schemes are supported in some
 subnetworks, they raise a number of additional issues not examined
 here.
 Links supporting stateful reservation-based quality of service (QoS)
 according to the Integrated Services (intserv) model are also not
 explicitly discussed.

1.2 Causes of Packet Loss on a Link

 Not all packets sent to a link are necessarily received successfully
 by the receiver at the other end of the link.  There are a number of
 possible causes of packet loss.  These may occur as frames travel
 across a link, and include:
 a. Loss due to channel noise, often characterised by random frame
    loss.  Channel noise may also result from other traffic degrading
    channel conditions.

Fairhurst & Wood Best Current Practice [Page 5] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 b. Frame loss due to channel interference.  This interference can
    be random, structured, and in some cases even periodic.
 c. A link outage, a period during which the link loses all or
    virtually all frames, until the link is restored.  This is a
    common characteristic of some types of link, e.g., mobile cellular
    radio.
 Other forms of packet loss are not related to channel conditions,
 but include:
 i.   Loss of a frame transmitted in a shared channel where a
      contention-aware MAC protocol is used (e.g., due to collision).
      Here, many protocols require that retransmission is deferred to
      promote stability of the shared channel (i.e., prevent excessive
      channel contention).  This is discussed further in section 1.5.
 ii.  Packet discards due to congestion.  Queues will eventually
      overflow as the arrival rate of new packets to send continues to
      exceed the outgoing packet transmission rate over the link.
 iii. Loss due to implementation errors, including hardware faults
      and software errors.  This is recognised as a common cause of
      packet corruption detected in the endhosts [STONE00].
 The rate of loss and patterns of loss experienced are functions of
 the design of the physical and link layers.  These vary significantly
 across different link configurations.  The performance of a specific
 implementation may also vary considerably across the same link
 configuration when operated over different types of channel.

1.3 Why Use ARQ?

 Reasons that encourage considering the use of ARQ include:
 a. ARQ across a single link has a faster control loop than TCP's
    acknowledgement control loop, which takes place over the longer
    end-to-end path over which TCP must operate.  It is therefore
    possible for ARQ to provide more rapid retransmission of TCP
    segments lost on the link, at least for a reasonable number of
    retries [RFC3155, SALT81].
 b. Link ARQ can operate on individual frames, using implicit
    transparent link fragmentation [DRAFTKARN02].  Frames may be
    much smaller than IP packets, and repetition of smaller frames
    containing lost or errored parts of an IP packet may improve the
    efficiency of the ARQ process and the efficiency of the link.

Fairhurst & Wood Best Current Practice [Page 6] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 A link ARQ procedure may be able to use local knowledge that is not
 available to endhosts, to optimise delivery performance for the
 current link conditions.  This information can include information
 about the state of the link and channel, e.g., knowledge of the
 current available transmission rate, the prevailing error
 environment, or available transmit power in wireless links.

1.4 Commonly-used ARQ Techniques

 A link ARQ protocol uses a link protocol mechanism to allow the
 sender to detect lost or corrupted frames and to schedule
 retransmission.  Detection of frame loss may be via a link protocol
 timer, by detecting missing positive link acknowledgement frames, by
 receiving explicit negative acknowledgement frames and/or by polling
 the link receiver status.
 Whatever mechanisms are chosen, there are two easily-described
 categories of ARQ retransmission process that are widely used:

1.4.1 Stop-And-Wait ARQ

 A sender using stop-and-wait ARQ (sometimes known as 'Idle ARQ'
 [LIN93]) transmits a single frame and then waits for an
 acknowledgement from the receiver for that frame.  The sender then
 either continues transmission with the next frame, or repeats
 transmission of the same frame if the acknowledgement indicates that
 the original frame was lost or corrupted.
 Stop-and-wait ARQ is simple, if inefficient, for protocol designers
 to implement, and therefore popular, e.g., tftp [RFC1350] at the
 transport layer.  However, when stop-and-wait ARQ is used in the link
 layer, it is well-suited only to links with low bandwidth-delay
 products.  This technique is not discussed further in this document.

1.4.2 Sliding-Window ARQ

 A protocol using sliding-window link ARQ [LIN93] numbers every frame
 with a unique sequence number, according to a modulus.  The modulus
 defines the numbering base for frame sequence numbers, and the size
 of the sequence space.  The largest sequence number value is viewed
 by the link protocol as contiguous with the first (0), since the
 numbering space wraps around.

Fairhurst & Wood Best Current Practice [Page 7] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 TCP is itself a sliding-window protocol at the transport layer
 [STE94], so similarities between a link-interface-to-link-interface
 protocol and end-to-end TCP may be recognisable.  A sliding-window
 link protocol is much more complex in implementation than the simpler
 stop-and-wait protocol described in the previous section,
 particularly if per-flow ordering is preserved.
 At any time the link sender may have a number of frames outstanding
 and awaiting acknowledgement, up to the space available in its
 transmission window.  A sufficiently-large link sender window
 (equivalent to or greater than the number of frames sent, or larger
 than the bandwidth*delay product capacity of the link) permits
 continuous transmission of new frames.  A smaller link sender window
 causes the sender to pause transmission of new frames until a timeout
 or a control frame, such as an acknowledgement, is received.  When
 frames are lost, a larger window, i.e., more than the link's
 bandwidth*delay product, is needed to allow continuous operation
 while frame retransmission takes place.
 The modulus numbering space determines the size of the frame header
 sequence number field.  This sequence space needs to be larger than
 the link window size and, if using selective repeat ARQ, larger than
 twice the link window size.  For continuous operation, the sequence
 space should be larger than the product of the link capacity and the
 link ARQ persistence (discussed in section 2), so that in-flight
 frames can be identified uniquely.
 As with TCP, which provides sliding-window delivery across an entire
 end-to-end path rather than across a single link, there are a large
 number of variations on the basic sliding-window implementation, with
 increased complexity and sophistication to make them suitable for
 various conditions.  Selective Repeat (SR), also known as Selective
 Reject (SREJ), and Go-Back-N, also known as Reject (REJ), are
 examples of ARQ techniques using protocols implementing sliding
 window ARQ.

1.5 Causes of Delay Across a Link

 Links and link protocols contribute to the total path delay
 experienced between communicating applications on endhosts.  Delay
 has a number of causes, including:
 a. Input packet queuing and frame buffering at the link head before
    transmission over the channel.
 b. Retransmission back-off, an additional delay introduced for
    retransmissions by some MAC schemes when operating over a shared
    channel to prevent excessive contention.  A high level of

Fairhurst & Wood Best Current Practice [Page 8] RFC 3366 Advice to Link Designers on Link ARQ August 2002

    contention may otherwise arise, if, for example, a set of link
    receivers all retransmitted immediately after a collision on a
    busy shared channel.  Link ARQ protocols designed for shared
    channels may select a backoff delay, which increases with the
    number of attempts taken to retransmit a frame; analogies can be
    drawn with end-to-end TCP congestion avoidance at the transport
    layer [RFC2581].  In contrast, a link over a dedicated channel
    (which has capacity pre-allocated to the link) may send a
    retransmission at the earliest possible time.
 c. Waiting for access to the allocated channel when the channel is
    shared.  There may be processing or protocol-induced delay
    before transmission takes place [FER99, PAR00].
 d. Frame serialisation and transmission processing.  These are
    functions of frame size and the transmission speed of the link.
 e. Physical-layer propagation time, limited by the speed of
    transmission of the signal in the physical medium of the
    channel.
 f. Per-frame processing, including the cost of QoS scheduling,
    encryption, FEC and interleaving.  FEC and interleaving also add
    substantial delay and, in some cases, additional jitter.  Hybrid
    link ARQ schemes [LIN93], in particular, may incur significant
    receiver processing delay.
 g. Packet processing, including buffering frame contents at the
    link receiver for packet reassembly, before onward transmission
    of the packet.
 When link ARQ is used, steps (b), (c), (d), (e), and (f) may be
 repeated a number of times, every time that retransmission of a frame
 occurs, increasing overall delay for the packet carried in part by
 the frame.  Adaptive ARQ schemes (e.g., hybrid ARQ using adaptive FEC
 codes) may also incur extra per-frame processing for retransmitted
 frames.
 It is important to understand that applications and transport
 protocols at the endhosts are unaware of the individual delays
 contributed by each link in the path, and only see the overall path
 delay.  Application performance is therefore determined by the
 cumulative delay of the entire end-to-end Internet path.  This path
 may include an arbitrary or even a widely-fluctuating number of
 links, where any link may or may not use ARQ.  As a result, it is not
 possible to state fixed limits on the acceptable delay that a link
 can add to a path; other links in the path will add an unknown delay.

Fairhurst & Wood Best Current Practice [Page 9] RFC 3366 Advice to Link Designers on Link ARQ August 2002

2. ARQ Persistence

 ARQ protocols may be characterised by their persistency.  Persistence
 is the willingness of the protocol to retransmit lost frames to
 ensure reliable delivery of traffic across the link.
 A link's retransmission persistency defines how long the link is
 allowed to delay a packet, in an attempt to transmit all the frames
 carrying the packet and its content over the link, before giving up
 and discarding the packet.  This persistency can normally be measured
 in milliseconds, but may, if the link propagation delay is specified,
 be expressed in terms of the maximum number of link retransmission
 attempts permitted.  The latter does not always map onto an exact
 time limit, for the reasons discussed in section 1.5.
 An example of a reliable link protocol that is perfectly persistent
 is the ISO HDLC protocol in the Asynchronous Balanced Mode (ABM)
 [ISO4335a].
 A protocol that only retransmits a number of times before giving up
 is less persistent, e.g., Ethernet [FER99], IEEE 802.11, or GSM RLP
 [RFC2757].  Here, lower persistence also ensures stability and fair
 sharing of a shared channel, even when many senders are attempting
 retransmissions.
 TCP, STCP [RFC2960] and a number of applications using UDP (e.g.,
 tftp) implement their own end-to-end reliable delivery mechanisms.
 Many TCP and UDP applications, e.g., streaming multimedia, benefit
 from timely delivery from lower layers with sufficient reliability,
 rather than perfect reliability with increased link delays.

2.1 Perfectly-Persistent (Reliable) ARQ Protocols

 A perfectly-persistent ARQ protocol is one that attempts to provide a
 reliable service, i.e., in-order delivery of packets to the other end
 of the link, with no missing packets and no duplicate packets.  The
 perfectly-persistent ARQ protocol will repeat a lost or corrupted
 frame an indefinite (and potentially infinite) number of times until
 the frame is successfully received.
 If traffic is going no further than across one link, and losses do
 not occur within the endhosts, perfect persistence ensures
 reliability between the two link ends without requiring any
 higher-layer protocols.  This reliability can become
 counterproductive for traffic traversing multiple links, as it
 duplicates and interacts with functionality in protocol mechanisms at
 higher layers [SALT81].

Fairhurst & Wood Best Current Practice [Page 10] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 Arguments against the use of perfect persistence for IP traffic
 include:
 a. Variable link delay; the impact of ARQ introduces a degree of
    jitter, a function of the physical-layer delay and frame
    serialisation and transmission times (discussed in section 1.5),
    to all flows sharing a link performing frame retransmission.
 b. Perfect persistence does not provide a clear upper bound on the
    maximum retransmission delay for the link.  Significant changes
    in path delay caused by excessive link retransmissions may lead
    to timeouts of TCP retransmission timers, although a high
    variance in link delay and the resulting overall path delay may
    also cause a large TCP RTO value to be selected [LUD99b, PAR00].
    This will alter TCP throughput, decreasing overall performance,
    but, in mitigation, it can also decrease the occurrence of
    timeouts due to continued packet loss.
 c. Applications needing perfectly-reliable delivery can implement a
    form of perfectly-persistent ARQ themselves, or use a reliable
    transport protocol within the endhosts.  Implementing perfect
    persistence at each link along the path between the endhosts is
    redundant, but cannot ensure the same reliability as end-to-end
    transport [SALT81].
 d. Link ARQ should not adversely delay the flow of end-to-end
    control information.  As an example, the ARQ retransmission of
    data for one or more flows should not excessively extend the
    protocol control loops.  Excessive delay of duplicate TCP
    acknowledgements (dupacks [STE94, BAL97]), SACK, or Explicit
    Congestion Notification (ECN) indicators will reduce the
    responsiveness of TCP flows to congestion events.  Similar
    issues exist for TCP-Friendly Rate Control (TFRC), where
    equation-based congestion control is used with UDP [DRAFTHAN01].
 Perfectly-persistent link protocols that perform unlimited ARQ, i.e.,
 that continue to retransmit frames indefinitely until the frames are
 successfully received, are seldom found in real implementations.
 Most practical link protocols give up retransmission at some point,
 but do not necessarily do so with the intention of bounding the ARQ
 retransmission persistence.  A protocol may, for instance, terminate
 retransmission after a link connection failure, e.g., after no frames
 have been successfully received within a pre-configured timer period.
 The number of times a protocol retransmits a specific frame (or the
 maximum number of retransmissions) therefore becomes a function of
 many different parameters (ARQ procedure, link timer values, and
 procedure for link monitoring), rather than being pre-configured.

Fairhurst & Wood Best Current Practice [Page 11] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 Another common feature of this type of behaviour is that some
 protocol implementers presume that, after a link failure, packets
 queued to be sent over the link are no longer significant and can be
 discarded when giving up ARQ retransmission.
 Examples of ARQ protocols that are perfectly persistent include
 ISO/ITU-T LAP-B [ISO7776] and ISO HDLC in the Asynchronously Balanced
 Mode (ABM) [ISO4335a], e.g., using Multiple Selective Reject (MSREJ
 [ISO4335b]).  These protocols will retransmit a frame an unlimited
 number of times until receipt of the frame is acknowledged.

2.2 High-Persistence (Highly-Reliable) ARQ Protocols

 High-persistence ARQ protocols limit the number of times (or number
 of attempts) that ARQ may retransmit a particular frame before the
 sender gives up on retransmission of the missing frame and moves on
 to forwarding subsequent buffered in-sequence frames.  Ceasing
 retransmission of a frame does not imply a lack of link connectivity
 and does not cause a link protocol state change.
 It has been recommended that a single IP packet should never be
 delayed by the network for more than the Maximum Segment Lifetime
 (MSL) of 120 seconds defined for TCP [RFC1122].  It is, however,
 difficult in practice to bound the maximum path delay of an Internet
 path.  One case where segment (packet) lifetime may be significant is
 where alternate paths of different delays exist between endhosts and
 route flapping or flow-unaware traffic engineering is used.  Some TCP
 packets may follow a short path, while others follow a much longer
 path, e.g., using persistent ARQ over a link outage.
 Failure to limit the maximum packet lifetime can result in TCP
 sequence numbers wrapping at high transmission rates, where old data
 segments may be confused with newer segments if the sequence number
 space has been exhausted and reused in the interim.  Some TCP
 implementations use the Round Trip Timestamp Measurement (RTTM)
 option in TCP packets to remove this ambiguity, using the Protection
 Against Wrapped Sequence number (PAWS) algorithm [RFC1323].
 In practice, the MSL is usually very large compared to the typical
 TCP RTO.  The calculation of TCP RTO is based on estimated round-trip
 path delay [RFC2988].  If the number of link retransmissions causes a
 path delay larger than the value of RTO, the TCP retransmission timer
 can expire, leading to a timeout and retransmission of a segment
 (packet) by the TCP sender.

Fairhurst & Wood Best Current Practice [Page 12] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 Although high persistency may benefit bulk flows, the additional
 delay (and variations in delay) that it introduces may be highly
 undesirable for other types of flows.  Being able to treat flows
 separately, with different classes of link service, is useful, and is
 discussed in section 3.
 Examples of high-persistence ARQ protocols include [BHA97, ECK98,
 LUD99a, MEY99].

2.3 Low-Persistence (Partially-Reliable) ARQ Protocols

 The characteristics of a link using a low-persistence ARQ protocol
 may be summarised as:
 a. The link is not perfectly reliable and does not provide an
    absolute guarantee of delivery, i.e., the transmitter will
    discard some frames as it 'gives up' before receiving an
    acknowledgement of successful transmission across the link.
 b. There is a lowered limit on the maximum added delay that IP
    packets will experience when travelling across the link
    (typically lower than the TCP path RTO).  This reduces
    interaction with TCP timers or with UDP-based error-control
    schemes.
 c. The link offers a low bound for the time that retransmission for
    any one frame can block completed transmission and assembly of
    other correctly and completely-received IP packets whose
    transmission was begun before the missing frame was sent.
    Limiting delay avoids aggravating contention or interaction
    between different packet flows (see also section 3.2).
 Examples of low-persistence ARQ protocols include [SAM96, WARD95,
 CHE00].

2.4 Choosing Your Persistency

 The TCP Maximum RTO is an upper limit on the maximum time that TCP
 will wait until it performs a retransmission.  Most TCP
 implementations will generally have a TCP RTO of at least several
 times the path delay.
 Setting a lower link persistency (e.g., of the order 2-5
 retransmission attempts) reduces potential interaction with the TCP
 RTO timer, and may therefore reduce the probability of duplicate
 copies of the same packet being present in the link transmit buffer
 under some patterns of loss.

Fairhurst & Wood Best Current Practice [Page 13] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 A link using a physical layer with a low propagation delay may allow
 tens of retransmission attempts to deliver a single frame, and still
 satisfy a bound for (b) in section 2.3.  In this case, a low delay is
 defined as being where the total packet transmission time across the
 link is much less than 100 ms (a common value for the granularity of
 the internal TCP system timer).
 A packet may traverse a number of successive links on its total end-
 to-end path.  This is therefore an argument for much lower
 persistency on any individual link, as delay due to persistency is
 accumulated along the path taken by each packet.
 Some implementers have chosen a lower persistence, falling back on
 the judgement of TCP or of a UDP application to retransmit any
 packets that are not recovered by the link ARQ protocol.

2.5 Impact of Link Outages

 Links experiencing persistent loss, where many consecutive frames are
 corrupted over an extended time, may also need to be considered.
 Examples of channel behaviour leading to link outages include fading,
 roaming, and some forms of interference.  During the loss event,
 there is an increased probability that a retransmission request may
 be corrupted, and/or an increased probability that a retransmitted
 frame will also be lost.  This type of loss event is often known as a
 "transient outage".
 If the transient outage extends for longer than the TCP RTO, the TCP
 sender will also perform transport-layer retransmission.  At the same
 time, the TCP sender will reduce its congestion window (cwnd) to 1
 segment (packet), recalculate its RTO, and wait for an ACK packet.
 If no acknowledgement is received, TCP will retransmit again, up to a
 retry limit.  TCP only determines that the outage is over (i.e., that
 path capacity is restored) by receipt of an ACK.  If link ARQ
 protocol persistency causes a link in the path to discard the ACK,
 the TCP sender must wait for the next RTO retransmission and its ACK
 to learn that the link is restored.  This can be many seconds after
 the end of the transient outage.
 When a link layer is able to differentiate a set of link service
 classes (see section 3.3), a link ARQ persistency longer than the
 largest link loss event may benefit a TCP session.  This would allow
 TCP to rapidly restore transmission without the need to wait for a
 retransmission time out, generally improving TCP performance in the
 face of transient outages.  Implementation of such schemes remains a
 research issue.

Fairhurst & Wood Best Current Practice [Page 14] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 When an outage occurs for a sender sharing a common channel with
 other nodes, uncontrolled high persistence can continue to consume
 transmission resources for the duration of the outage.  This may be
 undesirable, since it reduces the capacity available for other nodes
 sharing the channel, which do not necessarily experience the same
 outage.  These nodes could otherwise use the channel for more
 productive transfers.  The persistence is often limited by another
 controlling mechanism in such cases.  To counter such contention
 effects, ARQ protocols may delay retransmission requests, or defer
 the retransmission of requested frames until the outage ends for the
 sender.
 An alternate suggested approach for a link layer that is able to
 identify separate flows is to use low link persistency (section 2.3)
 along with a higher-layer mechanism, for example one that attempts to
 deliver one packet (or whole TCP segment) per TCP flow after a loss
 event [DRAFTKARN02].  This is intended to ensure that TCP
 transmission is restored rapidly.  Algorithms to implement this
 remain an area of research.

3. Treatment of Packets and Flows

3.1 Packet Ordering

 A common debate is whether a link should be allowed to forward
 packets in an order different from that in which they were originally
 received at its transmit interface.
 IP networks are not required to deliver all IP packets in order,
 although in most cases networks do deliver IP packets in their
 original transmission order.  Routers supporting class-based queuing
 do reorder received packets, by reordering packets in different
 flows, but these usually retain per-flow ordering.
 Policy-based queuing, allowing fairer access to the link, may also
 reorder packets.  There is still much debate on optimal algorithms,
 and on optimal queue sizes for particular link speeds.  This,
 however, is not related to the use of link ARQ and applies to any
 (potential) bottleneck router.
 Although small amounts of reordering are common in IP networks
 [BEN00], significant reordering within a flow is undesirable as it
 can have a number of effects:
 a. Reordering will increase packet jitter for real-time
    applications.  This may lead to application data loss if a small
    play-out buffer is used by the receiving application.

Fairhurst & Wood Best Current Practice [Page 15] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 b. Reordering will interleave arrival of TCP segments, leading to
    generation of duplicate ACKs (dupacks), leading to assumptions
    of loss.  Reception of an ACK followed by a sequence of three
    identical dupacks causes the TCP sender to trigger fast
    retransmission and recovery, a form of congestion avoidance,
    since TCP always presumes that packet loss is due to congestion
    [RFC2581, STE94].  This reduces TCP throughput efficiency as far
    as the application is concerned, although it should not impact
    data integrity.
 In addition, reordering may negatively impact processing by some
 existing poorly-implemented TCP/IP stacks, by leading to unwanted
 side-effects in poorly-implemented IP fragment reassembly code,
 poorly-implemented IP demultiplexing (filter) code, or in
 poorly-implemented UDP applications.
 Ordering effects must also be considered when breaking the end-to-end
 paradigm and evaluating transport-layer relays such as split-TCP
 implementations or Protocol Enhancing Proxies [RFC3135].
 As with total path delay, TCP and UDP flows are impacted by the
 cumulative effect of reordering along the entire path.  Link protocol
 designers must not assume that their link is the only link
 undertaking packet reordering, as some level of reordering may be
 introduced by other links along the same path, or by router
 processing within the network [BEN00].  Ideally, the link protocol
 should not contribute to reordering within a flow, or at least ensure
 that it does not significantly increase the level of reordering
 within the flow.  To achieve this, buffering is required at the link
 receiver.  The total amount of buffering required is a function of
 the link's bandwidth*delay product and the level of ARQ persistency,
 and is bounded by the link window size.
 A number of experimental ARQ protocols have allowed out-of-order
 delivery [BAL95, SAM96, WARD95].

3.2 Using Link ARQ to Support Multiple Flows

 Most links can be expected to carry more than one IP flow at a time.
 Some high-capacity links are expected to carry a very large number of
 simultaneous flows, often from and to a large number of different
 endhosts.  With use of multiple applications at an endhost, multiple
 flows can be considered the norm rather than the exception, even for
 last-hop links.

Fairhurst & Wood Best Current Practice [Page 16] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 When packets from several flows are simultaneously in transit within
 a link ARQ protocol, ARQ may cause a number of additional effects:
 a. ARQ introduces variable delay (jitter) to a TCP flow sharing a
    link with another flow experiencing loss.  This additional
    delay, introduced by the need for a link to provide in-sequence
    delivery of packets, may adversely impact other applications
    sharing the link, and can increase the duration of the initial
    slow-start period for TCP flows for these applications.  This is
    significant for short-lived TCP flows (e.g., those used by
    HTTP/1.0 and earlier), which spend most of their lives in
    slow-start.
 b. ARQ introduces jitter to UDP flows that share a link with
    another flow experiencing loss.  An end-to-end protocol may not
    require reliable delivery for its flows, particularly if it is
    supporting a delay-sensitive application.
 c. High-persistence ARQ may delay packets long enough to cause the
    premature timeout of another TCP flow's RTO timer, although
    modern TCP implementations should not experience this since
    their computed RTO values should leave a sufficient margin over
    path RTTs to cope with reasonable amounts of jitter.
 Reordering of packets belonging to different flows may be desirable
 [LUD99b, CHE00] to achieve fair sharing of the link between
 established bulk-data transfer sessions and sessions that transmit
 less data, but would benefit from lower link transit delay.
 Preserving ordering within each individual flow, to avoid the effects
 of reordering described earlier in section 3.1, is worthwhile.

3.3 Differentiation of Link Service Classes

 High ARQ persistency is generally considered unsuitable for many
 applications using UDP, where reliable delivery is not always
 required and where it may introduce unacceptable jitter, but may
 benefit bulk data transfers under certain link conditions.  A scheme
 that differentiates packet flows into two or more classes, to provide
 a different service to each class, is therefore desirable.
 Observation of flow behaviour can tell you which flows are controlled
 and congestion-sensitive, or uncontrolled and not, so that you can
 treat them differently and ensure fairness.  However, this cannot
 tell you whether a flow is intended as reliable or unreliable by its
 application, or what the application requires for best operation.

Fairhurst & Wood Best Current Practice [Page 17] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 Supporting different link services for different classes of flows
 therefore requires that the link is able to distinguish the different
 flows from each other.  This generally needs an explicit indication
 of the class associated with each flow.
 Some potential schemes for indicating the class of a packet include:
 a. Using the Type of Service (ToS) bits in the IP header [RFC791].
    The IETF has replaced these globally-defined bits, which were
    not widely used, with the differentiated services model
    (diffserv [RFC2475, RFC3260]).  In diffserv, each packet carries a
    Differentiated Service Code Point (DSCP), which indicates which
    one of a set of diffserv classes the flow belongs to.  Each
    router maps the DSCP value of a received IP packet to one of a
    set of Per Hop Behaviours (PHBs) as the packet is processed
    within the network.  Diffserv uses include policy-based routing,
    class-based queuing, and support for other QoS metrics,
    including IP packet priority, delay, reliability, and cost.
 b. Inspecting the network packet header and viewing the IP protocol
    type [RFC791] to gain an idea of the transport protocol used and
    thus guess its needs.  This is not possible when carrying an
    encrypted payload, e.g., using the IP security extensions (IPSec)
    with Encapsulation Security Payload (ESP) [RFC2406] payload
    encryption.
 c. By inspecting the transport packet header information to view
    the TCP or UDP headers and port numbers (e.g., [PAR00, BAL95]).
    This is not possible when using payload encryption, e.g., IPSec
    with ESP payload encryption [RFC2406], and incurs processing
    overhead for each packet sent over the link.
 There are, however, some drawbacks to these schemes:
 i.   The ToS/Differentiated Services Code Point (DSCP) values
      [RFC2475] may not be set reliably, and may be overwritten by
      intermediate routers along the packet's path.  These values may
      be set by an ISP, and do not necessarily indicate the level of
      reliability required by the end application.  The link must be
      configured with knowledge of the local meaning of the values.
 ii.  Tunnelling of traffic (e.g., GRE, MPLS, L2TP, IP-in-IP
      encapsulation) can aggregate flows of different transport
      classes, complicating individual flow classification with
      schemes (b) and (c) and incurring further header processing if
      tunnel contents are inspected.

Fairhurst & Wood Best Current Practice [Page 18] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 iii. Use of the TCP/UDP port number makes assumptions about
      application behaviour and requirements.  New applications or
      protocols can invalidate these assumptions, as can the use of
      e.g., Network Address Port Translation, where port numbers are
      remapped [RFC3022].
 iv.  In IPv6, the entire IPv6 header must be parsed to locate the
      transport layer protocol, adding complexity to header
      inspection.  Again, this assumes that IPSec payload encryption
      is not used.
 Despite the difficulties in providing a framework for accurate flow
 identification, approach (a) may be beneficial, and is preferable to
 adding optimisations that are triggered by inspecting the contents of
 specific IP packets.  Some such optimisations are discussed in detail
 in [LUD99b].
 Flow management is desirable; clear flow identification increases the
 number of tools available for the link designer, and permits more
 complex ARQ strategies that may otherwise make misassumptions about
 traffic requirements and behaviour when flow identification is not
 done.
 Links that are unable to distinguish clearly and safely between
 delay-sensitive flows, e.g., real-time multimedia, DNS queries or
 telnet, and delay-insensitive flows, e.g., bulk ftp transfers or
 reliable multicast file transfer, cannot separate link service
 classes safely.  All flows should therefore experience the same link
 behaviour.
 In general, if separation of flows according to class is not
 practicable, a low persistency is best for link ARQ.

4. Conclusions

 A number of techniques may be used by link protocol designers to
 counter the effects of channel errors or loss. One of these
 techniques is Automatic Repeat ReQuest, ARQ, which has been and
 continues to be used on links that carry IP traffic.  An ARQ protocol
 retransmits link frames that have been corrupted during transmission
 across a channel.  Link ARQ may significantly improve the probability
 of successful transmission of IP packets over links prone to
 occasional frame loss.
 A lower rate of packet loss generally benefits transport protocols
 and endhost applications.  Applications using TCP generally benefit
 from Internet paths with little or no loss and low round trip path
 delay.  This reduces impact on applications, allows more rapid growth

Fairhurst & Wood Best Current Practice [Page 19] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 of TCP's congestion window during slow start, and ensures prompt
 reaction to end-to-end protocol exchanges (e.g., retransmission,
 congestion indications).  Applications using other transport
 protocols, e.g., UDP or SCTP, also benefit from low loss and timely
 delivery.
 A side-effect of link ARQ is that link transit delay is increased
 when frames are retransmitted.  At low error rates, many of the
 details of ARQ, such as degree of persistence or any resulting
 out-of-order delivery, become unimportant.  Most frame losses will be
 resolved in one or two retransmission attempts, and this is generally
 unlikely to cause significant impact to e.g., TCP.  However, on
 shared high-delay links, the impact of ARQ on other UDP or TCP flows
 may lead to unwanted jitter.
 Where error rates are highly variable, high link ARQ persistence may
 provide good performance for a single TCP flow.  However,
 interactions between flows can arise when many flows share capacity
 on the same link.  A link ARQ procedure that provides flow management
 will be beneficial.  Lower ARQ persistence may also have merit, and
 is preferable for applications using UDP.  The reasoning here is that
 the link can perform useful work forwarding some complete packets,
 and that blocking all flows by retransmitting the frames of a single
 packet with high persistence is undesirable.
 During a link outage, interactions between ARQ and multiple flows are
 less significant; the ARQ protocol is likely to be equally
 unsuccessful in retransmitting frames for all flows.  High
 persistence may benefit TCP flows, by enabling prompt recovery once
 the channel is restored.
 Low ARQ persistence is particularly useful where it is difficult or
 impossible to classify traffic flows, and hence treat each flow
 independently, and where the link capacity can accommodate a large
 number of simultaneous flows.
 Link ARQ designers should consider the implications of their design
 on the wider Internet.  Effects such as increased transit delay,
 jitter, and re-ordering are cumulative when performed on multiple
 links along an Internet path.  It is therefore very hard to say how
 many ARQ links may exist in series along an arbitrary Internet path
 between endhosts, especially as the path taken and its links may
 change over time.
 In summary, when links cannot classify traffic flows and treat them
 separately, low persistence is generally desirable; preserving packet
 ordering is generally desirable.  Extremely high persistence and
 perfect persistence are generally undesirable; highly-persistent ARQ

Fairhurst & Wood Best Current Practice [Page 20] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 is a bad idea unless flow classification and detailed and accurate
 knowledge of flow requirements make it possible to deploy high
 persistency where it will be beneficial.
 There is currently insufficient experience to recommend a specific
 ARQ scheme for any class of link.  It is also important to realize
 that link ARQ is just one method of error recovery, and that other
 complementary physical-layer techniques may be used instead of, or
 together with, ARQ to improve overall link throughput for IP traffic.
 The choice of potential schemes includes adapting the data rate,
 adapting the signal bandwidth, adapting the transmission power,
 adaptive modulation, adaptive information redundancy / forward error
 control, and interleaving.  All of these schemes can be used to
 improve the received signal energy per bit, and hence reduce error,
 frame loss and resulting packet loss rates given specific channel
 conditions.
 There is a need for more research to more clearly identify the
 importance of and trade-offs between the above issues over various
 types of link and over various types of channels.  It would be useful
 if researchers and implementers clearly indicated the loss model,
 link capacity and characteristics, link and end-to-end path delays,
 details of TCP, and the number (and details) of flows sharing a link
 when describing their experiences.  In each case, it is recommended
 that specific details of the link characteristics and mechanisms also
 be considered; solutions vary with conditions.

5. Security Considerations

 No security implications have been identified as directly impacting
 IP traffic.  However, an unreliable link service may adversely impact
 some existing link-layer key management distribution protocols if
 link encryption is also used over the link.
 Denial-of-service attacks exploiting the behaviour of the link
 protocol, e.g., using knowledge of its retransmission behaviour and
 propagation delay to cause a particular form of jamming, may be
 specific to an individual link scenario.

6. IANA Considerations

 No assignments from the IANA are required.

Fairhurst & Wood Best Current Practice [Page 21] RFC 3366 Advice to Link Designers on Link ARQ August 2002

7. Acknowledgements

 Much of what is described here has been developed from a summary of a
 subset of the discussions on the archived IETF PILC mailing list.  We
 thank the contributors to PILC for vigorous debate.
 In particular, the authors would like to thank Spencer Dawkins, Aaron
 Falk, Dan Grossman, Merkourios Karaliopoulos, Gary Kenward, Reiner
 Ludwig and Jean Tourrilhes for their detailed comments.

8. References

 References of the form RFCnnnn are Internet Request for Comments
 (RFC) documents available online at http://www.rfc-editor.org/.

8.1 Normative References

 [RFC768]      Postel, J., "User Datagram Protocol", STD 6, RFC 768,
               August 1980.
 [RFC791]      Postel, J., "Internet Protocol", STD 5, RFC 791,
               September 1981.
 [RFC793]      Postel, J., "Transmission Control Protocol", RFC 793,
               September 1981.
 [RFC1122]     Braden, R., Ed., "Requirements for Internet Hosts --
               Communication Layers", STD 3, RFC 1122, October 1989.
 [RFC2406]     Kent, S. and R. Atkinson, "IP Encapsulating Security
               Payload (ESP)", RFC 2406, November 1998.
 [RFC2475]     Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z.
               and W. Weiss, "An Architecture for Differentiated
               Services", RFC 2475, December 1998.
 [RFC2581]     Allman, M., Paxson, V. and W. Stevens, "TCP Congestion
               Control", RFC 2581, April 1999.
 [RFC2988]     Paxson, V. and M. Allman, "Computing TCP's
               Retransmission Timer", RFC 2988, November 2000.
 [RFC3135]     Border, J., Kojo, M., Griner, J., Montenegro, G. and Z.
               Shelby, "Performance Enhancing Proxies Intended to
               Mitigate Link-Related Degradations", RFC 3135, June
               2001.

Fairhurst & Wood Best Current Practice [Page 22] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 [RFC3260]     Grossman, D., "New Terminology and Clarifications for
               Diffserv", RFC 3260, April 2002.

8.2 Informative References

 [BAL95]       Balakrishnan, H., Seshan, S. and R. H. Katz,
               "Improving Reliable Transport and Handoff Performance
               in Cellular Wireless Networks", ACM MOBICOM, Berkeley,
               1995.
 [BAL97]       Balakrishnan, H., Padmanabhan, V. N., Seshan, S. and
               R. H. Katz, "A Comparison of Mechanisms for Improving
               TCP Performance over Wireless Links", IEEE/ACM
               Transactions on Networking, 5(6), pp. 756-759, 1997.
 [BEN00]       Bennett, J. C., Partridge, C. and N. Schectman, "Packet
               Reordering is Not Pathological Network Behaviour",
               IEEE/ACM Transactions on Networking, 7(6), pp. 789-798,
               2000.
 [BHA97]       Bhagwat, P., Bhattacharya, P., Krishna A. and S. K.
               Tripathi, "Using channel state dependent packet
               scheduling to improve TCP throughput over wireless
               LANs", ACM/Baltzer Wireless Networks Journal, (3)1,
               1997.
 [CHE00]       Cheng, H. S., G. Fairhurst et al., "An Efficient
               Partial Retransmission ARQ Strategy with Error Codes
               by Feedback Channel", IEE Proceedings - Communications,
               (147)5, pp. 263-268, 2000.
 [DRAFTKARN02] Karn, P., Ed., "Advice for Internet Subnetwork
               Designers", Work in Progress.
 [DRAFTHAN01]  Handley, M., Floyd, S. and J. Widmer, "TCP Friendly
               Rate Control (TFRC): Protocol Specification", Work in
               Progress.
 [ECK98]       Eckhardt, D. A. and P. Steenkiste, "Improving Wireless
               LAN Performance via Adaptive Local Error Control",
               IEEE ICNP, 1998.
 [FER99]       Ferrero, A., "The Eternal Ethernet", Addison-Wesley,
               1999.
 [ISO4335a]    HDLC Procedures: Specification for Consolidation of
               Elements of Procedures, ISO 4335 and AD/1,
               International Standardization Organization, 1985.

Fairhurst & Wood Best Current Practice [Page 23] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 [ISO4335b]    HDLC Procedures: Elements of Procedures, Amendment 4:
               Multi-Selective Reject Option, ISO 4335/4,
               International Standards Organization, 1991.
 [ISO7776]     Specification for X.25 LAPB-Compatible DTE Data Link
               Procedures, ISO 4335/4, International Standards
               Organization, 1985.
 [KEN87]       Kent, C. A. and J. C. Mogul, "Fragmentation
               Considered Harmful", Proceedings of ACM SIGCOMM 1987,
               ACM Computer Communications Review, 17(5), pp. 390-401,
               1987.
 [LIN93]       Lin, S. and D. Costello, "Error Control Coding:
               Fundamentals and Applications", Prentice Hall, 1993.
 [LUD99a]      Ludwig, R., Rathonyi, B., Konrad, A., Oden, K., and A.
               Joseph, "Multi-Layer Tracing of TCP over a Reliable
               Wireless Link", ACM SIGMETRICS, pp. 144-154, 1999.
 [LUD99b]      Ludwig, R., Konrad, A., Joseph, A. and R. H. Katz,
               "Optimizing the End-to-End Performance of Reliable
               Flows over Wireless Links", ACM MobiCOM, 1999.
 [MEY99]       Meyer, M., "TCP Performance over GPRS", IEEE Wireless
               Communications and Networking Conference, 1999.
 [PAR00]       Parsa, C. and J. J. Garcia-Luna-Aceves, "Improving TCP
               Performance over Wireless Networks at the Link Layer",
               ACM Mobile Networks and Applications Journal, (5)1,
               pp. 57-71, 2000.
 [RFC1191]     Mogul, J. and S. Deering, "Path MTU Discovery", RFC
               1191, November 1990.
 [RFC1323]     Jacobson, V., Braden, R. and D. Borman, "TCP Extensions
               for High Performance", RFC 1323, May 1992.
 [RFC1350]     Sollins, K., "The TFTP Protocol (Revision 2)", STD 33,
               RFC 1350, July 1992.
 [RFC1435]     Knowles, S., "IESG Advice from Experience with Path MTU
               Discovery", RFC 1435, March 1993.
 [RFC1981]     McCann, J., Deering, S. and J. Mogul, "Path MTU
               Discovery for IP version 6", RFC 1981, August 1996.

Fairhurst & Wood Best Current Practice [Page 24] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 [RFC2488]     Allman, M., Glover, D. and L. Sanchez, "Enhancing TCP
               Over Satellite Channels using Standard Mechanisms",
               BCP 28, RFC 2488, January 1999.
 [RFC2757]     Montenegro, G., Dawkins, S., Kojo, M., Magret V. and
               N. Vaidya, "Long Thin Networks", RFC 2757, January
               2000.
 [RFC2760]     Allman, M., Dawkins, S., Glover, D., Griner, J.,
               Tran, D., Henderson, T., Heidemann, J., Touch, J.,
               Kruse, H., Ostermann, S., Scott K. and J. Semke
               "Ongoing TCP Research Related to Satellites",
               RFC 2760, February 2000.
 [RFC2960]     Stewart, R., Xie, Q., Morneault, K., Sharp, C.,
               Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M.,
               Zhang, L. and V. Paxson, "Stream Control Transmission
               Protocol", RFC 2960, October 2000.
 [RFC3022]     Srisuresh, P. and K. Egevang, "Traditional IP Network
               Address Translator (Traditional NAT)", RFC 3022,
               January 2001.
 [RFC3155]     Dawkins, S., Montenegro, G., Kojo, M., Magret, V. and
               N. Vaidya, "End-to-end Performance Implications of
               Links with Errors", BCP 50, RFC 3155, August 2001.
 [SALT81]      Saltzer, J. H., Reed, D. P. and D. Clark, "End-to-End
               Arguments in System Design", Second International
               Conference on Distributed Computing Systems, pp.
               509-512, 1981.  Published with minor changes in ACM
               Transactions in Computer Systems (2)4, pp. 277-288,
               1984.
 [SAM96]       Samaraweera, N. and G. Fairhurst, "Robust Data Link
               Protocols for Connection-less Service over Satellite
               Links", International Journal of Satellite
               Communications, 14(5), pp. 427-437, 1996.
 [SAM98]       Samaraweera, N. and G. Fairhurst, "Reinforcement of
               TCP/IP Error Recovery for Wireless Communications",
               ACM Computer Communications Review, 28(2), pp. 30-38,
               1998.
 [STE94]       Stevens, W. R., "TCP/IP Illustrated, Volume 1",
               Addison-Wesley, 1994.

Fairhurst & Wood Best Current Practice [Page 25] RFC 3366 Advice to Link Designers on Link ARQ August 2002

 [STONE00]     Stone, J. and C. Partridge, "When the CRC and TCP
               Checksum Disagree", Proceedings of SIGCOMM 2000, ACM
               Computer Communications Review 30(4), pp. 309-321,
               September 2000.
 [WARD95]      Ward, C., et al., "A Data Link Control Protocol for LEO
               Satellite Networks Providing a Reliable Datagram
               Service", IEEE/ACM Transactions on Networking, 3(1),
               1995.

Authors' Addresses

 Godred Fairhurst
 Department of Engineering
 University of Aberdeen
 Aberdeen AB24 3UE
 United Kingdom
 EMail: gorry@erg.abdn.ac.uk
 http://www.erg.abdn.ac.uk/users/gorry/
 Lloyd Wood
 Cisco Systems Ltd
 4 The Square
 Stockley Park
 Uxbridge UB11 1BY
 United Kingdom
 EMail: lwood@cisco.com
 http://www.ee.surrey.ac.uk/Personal/L.Wood/

Fairhurst & Wood Best Current Practice [Page 26] RFC 3366 Advice to Link Designers on Link ARQ August 2002

Full Copyright Statement

 Copyright (C) The Internet Society (2002).  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.

Fairhurst & Wood Best Current Practice [Page 27]

/data/webs/external/dokuwiki/data/pages/rfc/rfc3366.txt · Last modified: 2002/08/30 19:48 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki