diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc3366.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc3366.txt')
-rw-r--r-- | doc/rfc/rfc3366.txt | 1515 |
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] + |