summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3366.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3366.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3366.txt')
-rw-r--r--doc/rfc/rfc3366.txt1515
1 files changed, 1515 insertions, 0 deletions
diff --git a/doc/rfc/rfc3366.txt b/doc/rfc/rfc3366.txt
new file mode 100644
index 0000000..03753a3
--- /dev/null
+++ b/doc/rfc/rfc3366.txt
@@ -0,0 +1,1515 @@
+
+
+
+
+
+
+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]
+