< draft-ietf-6lo-fragment-recovery-05.txt   draft-ietf-6lo-fragment-recovery-06.txt >
6lo P. Thubert, Ed. 6lo P. Thubert, Ed.
Internet-Draft Cisco Systems Internet-Draft Cisco Systems
Updates: 4944 (if approved) July 22, 2019 Updates: 4944 (if approved) 21 October 2019
Intended status: Standards Track Intended status: Standards Track
Expires: January 23, 2020 Expires: 23 April 2020
6LoWPAN Selective Fragment Recovery 6LoWPAN Selective Fragment Recovery
draft-ietf-6lo-fragment-recovery-05 draft-ietf-6lo-fragment-recovery-06
Abstract Abstract
This draft updates RFC 4944 with a simple protocol to recover This draft updates RFC 4944 with a simple protocol to recover
individual fragments across a route-over mesh network, with a minimal individual fragments across a route-over mesh network, with a minimal
flow control to protect the network against bloat. flow control to protect the network against bloat.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 33 skipping to change at page 1, line 33
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 23, 2020. This Internet-Draft will expire on 23 April 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents (https://trustee.ietf.org/
(https://trustee.ietf.org/license-info) in effect on the date of license-info) in effect on the date of publication of this document.
publication of this document. Please review these documents Please review these documents carefully, as they describe your rights
carefully, as they describe your rights and restrictions with respect and restrictions with respect to this document. Code Components
to this document. Code Components extracted from this document must extracted from this document must include Simplified BSD License text
include Simplified BSD License text as described in Section 4.e of as described in Section 4.e of the Trust Legal Provisions and are
the Trust Legal Provisions and are provided without warranty as provided without warranty as described in the Simplified BSD License.
described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. BCP 14 . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4 2.2. References . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. 6LoWPAN Acronyms . . . . . . . . . . . . . . . . . . . . 4 2.3. 6LoWPAN Acronyms . . . . . . . . . . . . . . . . . . . . 4
2.4. Referenced Work . . . . . . . . . . . . . . . . . . . . . 4 2.4. Referenced Work . . . . . . . . . . . . . . . . . . . . . 4
2.5. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 5 2.5. New Terms . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Updating RFC 4944 . . . . . . . . . . . . . . . . . . . . . . 6 3. Updating RFC 4944 . . . . . . . . . . . . . . . . . . . . . . 6
4. Extending draft-ietf-6lo-minimal-fragment . . . . . . . . . . 6 4. Extending draft-ietf-6lo-minimal-fragment . . . . . . . . . . 6
4.1. Slack in the First Fragment . . . . . . . . . . . . . . . 7 4.1. Slack in the First Fragment . . . . . . . . . . . . . . . 7
4.2. Gap between frames . . . . . . . . . . . . . . . . . . . 7 4.2. Gap between frames . . . . . . . . . . . . . . . . . . . 7
4.3. Modifying the First Fragment . . . . . . . . . . . . . . 8 4.3. Modifying the First Fragment . . . . . . . . . . . . . . 7
5. New Dispatch types and headers . . . . . . . . . . . . . . . 8 5. New Dispatch types and headers . . . . . . . . . . . . . . . 8
5.1. Recoverable Fragment Dispatch type and Header . . . . . . 9 5.1. Recoverable Fragment Dispatch type and Header . . . . . . 8
5.2. RFRAG Acknowledgment Dispatch type and Header . . . . . . 11 5.2. RFRAG Acknowledgment Dispatch type and Header . . . . . . 11
6. Fragments Recovery . . . . . . . . . . . . . . . . . . . . . 12 6. Fragments Recovery . . . . . . . . . . . . . . . . . . . . . 12
6.1. Forwarding Fragments . . . . . . . . . . . . . . . . . . 14 6.1. Forwarding Fragments . . . . . . . . . . . . . . . . . . 14
6.1.1. Upon the first fragment . . . . . . . . . . . . . . . 15 6.1.1. Upon the first fragment . . . . . . . . . . . . . . . 14
6.1.2. Upon the next fragments . . . . . . . . . . . . . . . 15 6.1.2. Upon the next fragments . . . . . . . . . . . . . . . 15
6.2. Upon the RFRAG Acknowledgments . . . . . . . . . . . . . 16 6.2. Upon the RFRAG Acknowledgments . . . . . . . . . . . . . 15
6.3. Aborting the Transmission of a Fragmented Packet . . . . 16 6.3. Aborting the Transmission of a Fragmented Packet . . . . 16
7. Management Considerations . . . . . . . . . . . . . . . . . . 17 7. Management Considerations . . . . . . . . . . . . . . . . . . 16
7.1. Protocol Parameters . . . . . . . . . . . . . . . . . . . 17 7.1. Protocol Parameters . . . . . . . . . . . . . . . . . . . 16
7.2. Observing the network . . . . . . . . . . . . . . . . . . 18 7.2. Observing the network . . . . . . . . . . . . . . . . . . 18
8. Security Considerations . . . . . . . . . . . . . . . . . . . 18 8. Security Considerations . . . . . . . . . . . . . . . . . . . 18
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 11. Normative References . . . . . . . . . . . . . . . . . . . . 19
11.1. Normative References . . . . . . . . . . . . . . . . . . 19 12. Informative References . . . . . . . . . . . . . . . . . . . 20
11.2. Informative References . . . . . . . . . . . . . . . . . 20
Appendix A. Rationale . . . . . . . . . . . . . . . . . . . . . 23 Appendix A. Rationale . . . . . . . . . . . . . . . . . . . . . 23
Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 24 Appendix B. Requirements . . . . . . . . . . . . . . . . . . . . 24
Appendix C. Considerations On Flow Control . . . . . . . . . . . 25 Appendix C. Considerations On Flow Control . . . . . . . . . . . 25
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 26 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 26
1. Introduction 1. Introduction
In most Low Power and Lossy Network (LLN) applications, the bulk of In most Low Power and Lossy Network (LLN) applications, the bulk of
the traffic consists of small chunks of data (in the order few bytes the traffic consists of small chunks of data (in the order few bytes
to a few tens of bytes) at a time. Given that an IEEE Std. 802.15.4 to a few tens of bytes) at a time. Given that an IEEE Std. 802.15.4
skipping to change at page 4, line 25 skipping to change at page 4, line 21
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP "OPTIONAL" in this document are to be interpreted as described in BCP
14 [RFC2119][RFC8174] when, and only when, they appear in all 14 [RFC2119][RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
2.2. References 2.2. References
In this document, readers will encounter terms and concepts that are In this document, readers will encounter terms and concepts that are
discussed in "Problem Statement and Requirements for IPv6 over Low- discussed in "Problem Statement and Requirements for IPv6 over
Power Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606] Low-Power Wireless Personal Area Network (6LoWPAN) Routing" [RFC6606]
2.3. 6LoWPAN Acronyms 2.3. 6LoWPAN Acronyms
This document uses the following acronyms: This document uses the following acronyms:
6BBR: 6LoWPAN Backbone Router 6BBR: 6LoWPAN Backbone Router
6LBR: 6LoWPAN Border Router
6LBR: 6LoWPAN Border Router
6LN: 6LoWPAN Node 6LN: 6LoWPAN Node
6LR: 6LoWPAN Router 6LR: 6LoWPAN Router
LLN: Low-Power and Lossy Network LLN: Low-Power and Lossy Network
2.4. Referenced Work 2.4. Referenced Work
Past experience with fragmentation has shown that misassociated or Past experience with fragmentation has shown that misassociated or
lost fragments can lead to poor network behavior and, occasionally, lost fragments can lead to poor network behavior and, occasionally,
trouble at application layer. The reader is encouraged to read "IPv4 trouble at application layer. The reader is encouraged to read "IPv4
Reassembly Errors at High Data Rates" [RFC4963] and follow the Reassembly Errors at High Data Rates" [RFC4963] and follow the
references for more information. references for more information.
skipping to change at page 5, line 38 skipping to change at page 5, line 30
"LLN Minimal Fragment Forwarding" [I-D.ietf-6lo-minimal-fragment] "LLN Minimal Fragment Forwarding" [I-D.ietf-6lo-minimal-fragment]
introduces the concept of a Virtual Reassembly Buffer (VRB) and an introduces the concept of a Virtual Reassembly Buffer (VRB) and an
associated technique to forward fragments as they come, using the associated technique to forward fragments as they come, using the
datagram_tag as a label in a fashion similar to MPLS. This datagram_tag as a label in a fashion similar to MPLS. This
specification reuses that technique with slightly modified controls. specification reuses that technique with slightly modified controls.
2.5. New Terms 2.5. New Terms
This specification uses the following terms: This specification uses the following terms:
6LoWPAN endpoints The LLN nodes in charge of generating or expanding 6LoWPAN endpoints: The LLN nodes in charge of generating or
a 6LoWPAN header from/to a full IPv6 packet. The 6LoWPAN expanding a 6LoWPAN header from/to a full IPv6 packet. The
endpoints are the points where fragmentation and reassembly take 6LoWPAN endpoints are the points where fragmentation and
place. reassembly take place.
Compressed Form This specification uses the generic term Compressed Compressed Form: This specification uses the generic term Compressed
Form to refer to the format of a datagram after the action of Form to refer to the format of a datagram after the action of
[RFC6282] and possibly [RFC8138] for RPL [RFC6550] artifacts. [RFC6282] and possibly [RFC8138] for RPL [RFC6550] artifacts.
datagram_size: The size of the datagram in its Compressed Form datagram_size: The size of the datagram in its Compressed Form
before it is fragmented. The datagram_size is expressed in a unit before it is fragmented. The datagram_size is expressed in a unit
that depends on the MAC layer technology, by default a byte. that depends on the MAC layer technology, by default a byte.
fragment_offset: The offset of a particular fragment of a datagram fragment_offset: The offset of a particular fragment of a datagram
in its Compressed Form. The fragment_offset is expressed in a in its Compressed Form. The fragment_offset is expressed in a
unit that depends on the MAC layer technology and is by default a unit that depends on the MAC layer technology and is by default a
skipping to change at page 9, line 32 skipping to change at page 9, line 26
1 2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 0 1 0 0|E| datagram_tag | |1 1 1 0 1 0 0|E| datagram_tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|X| sequence| fragment_size | fragment_offset | |X| sequence| fragment_size | fragment_offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
X set == Ack-Request X set == Ack-Request
Figure 1: RFRAG Dispatch type and Header Figure 1: RFRAG Dispatch type and Header
There is no requirement on the receiver to check for contiguity of There is no requirement on the receiver to check for contiguity of
the received fragments, and the sender MUST ensure that when all the received fragments, and the sender MUST ensure that when all
fragments are acknowledged, then the datagram is fully received. fragments are acknowledged, then the datagram is fully received.
This may be useful in particular in the case where the MTU changes This may be useful in particular in the case where the MTU changes
and a fragment sequence is retried with a smaller fragment_size, the and a fragment sequence is retried with a smaller fragment_size, the
remainder of the original fragment being retried with new sequence remainder of the original fragment being retried with new sequence
values. values.
The first fragment is recognized by a sequence of 0; it carries its The first fragment is recognized by a sequence of 0; it carries its
fragment_size and the datagram_size of the compressed packet before fragment_size and the datagram_size of the compressed packet before
it is fragmented, whereas the other fragments carry their it is fragmented, whereas the other fragments carry their
fragment_size and fragment_offset. The last fragment for a datagram fragment_size and fragment_offset. The last fragment for a datagram
is recognized when its fragment_offset and its fragment_size add up is recognized when its fragment_offset and its fragment_size add up
to the datagram_size. to the datagram_size.
Recoverable Fragments are sequenced and a bitmap is used in the RFRAG Recoverable Fragments are sequenced and a bitmap is used in the RFRAG
Acknowledgment to indicate the received fragments by setting the Acknowledgment to indicate the received fragments by setting the
individual bits that correspond to their sequence. individual bits that correspond to their sequence.
X: 1 bit; Ack-Request: when set, the sender requires an RFRAG X: 1 bit; Ack-Request: when set, the sender requires an RFRAG
Acknowledgment from the receiver. Acknowledgment from the receiver.
E: 1 bit; Explicit Congestion Notification; the "E" flag is reset by E: 1 bit; Explicit Congestion Notification; the "E" flag is reset by
the source of the fragment and set by intermediate routers to the source of the fragment and set by intermediate routers to
signal that this fragment experienced congestion along its path. signal that this fragment experienced congestion along its path.
Fragment_size: 10 bit unsigned integer; the size of this fragment in Fragment_size: 10 bit unsigned integer; the size of this fragment in
a unit that depends on the MAC layer technology. Unless a unit that depends on the MAC layer technology. Unless
overridden by a more specific specification, that unit is the overridden by a more specific specification, that unit is the
octet which allows fragments up to 512 bytes. octet which allows fragments up to 512 bytes.
datagram_tag: 16 bits; an identifier of the datagram that is locally datagram_tag: 16 bits; an identifier of the datagram that is locally
unique to the sender. unique to the sender.
Sequence: 5 bit unsigned integer; the sequence number of the Sequence: 5 bit unsigned integer; the sequence number of the
fragment in the acknowledgement bitmap. Fragments are numbered fragment in the acknowledgement bitmap. Fragments are numbered
[0..N] where N is in [0..31]. A Sequence of 0 indicates the first [0..N] where N is in [0..31]. A Sequence of 0 indicates the first
fragment in a datagram, but non-zero values are not indicative of fragment in a datagram, but non-zero values are not indicative of
the position in the reassembly buffer. the position in the reassembly buffer.
Fragment_offset: 16 bit unsigned integer; Fragment_offset: 16 bit unsigned integer.
* When the Fragment_offset is set to a non-0 value, its semantics
depend on the value of the Sequence field.
+ For a first fragment (i.e. with a Sequence of 0), this field
indicates the datagram_size of the compressed datagram, to
help the receiver allocate an adapted buffer for the
reception and reassembly operations. The fragment may be
stored for local reassembly. Alternatively, it may be
routed based on the destination IPv6 address. In that case,
a VRB state must be installed as described in Section 6.1.1.
+ When the Sequence is not 0, this field indicates the offset When the Fragment_offset is set to a non-0 value, its semantics
of the fragment in the Compressed Form of the datagram. The depend on the value of the Sequence field as follows:
fragment may be added to a local reassembly buffer or
forwarded based on an existing VRB as described in
Section 6.1.2.
* A Fragment_offset that is set to a value of 0 indicates an * For a first fragment (i.e. with a Sequence of 0), this field
abort condition and all state regarding the datagram should be indicates the datagram_size of the compressed datagram, to help
cleaned up once the processing of the fragment is complete; the the receiver allocate an adapted buffer for the reception and
processing of the fragment depends on whether there is a VRB reassembly operations. The fragment may be stored for local
already established for this datagram, and the next hop is reassembly. Alternatively, it may be routed based on the
still reachable: destination IPv6 address. In that case, a VRB state must be
installed as described in Section 6.1.1.
* When the Sequence is not 0, this field indicates the offset of
the fragment in the Compressed Form of the datagram. The
fragment may be added to a local reassembly buffer or forwarded
based on an existing VRB as described in Section 6.1.2.
+ if a VRB already exists and is not broken, the fragment is A Fragment_offset that is set to a value of 0 indicates an abort
to be forwarded along the associated Label Switched Path condition and all state regarding the datagram should be cleaned
(LSP) as described in Section 6.1.2, but regardless of the up once the processing of the fragment is complete; the processing
value of the Sequence field; of the fragment depends on whether there is a VRB already
established for this datagram, and the next hop is still
reachable:
+ else, if the Sequence is 0, then the fragment is to be * if a VRB already exists and is not broken, the fragment is to
routed as described in Section 6.1.1 but no state is be forwarded along the associated Label Switched Path (LSP) as
conserved afterwards. In that case, the session if it described in Section 6.1.2, but regardless of the value of the
exists is aborted and the packet is also forwarded in an Sequence field;
attempt to clean up the next hops as along the path * else, if the Sequence is 0, then the fragment is to be routed
indicated by the IPv6 header (possibly including a routing as described in Section 6.1.1 but no state is conserved
header). afterwards. In that case, the session if it exists is aborted
and the packet is also forwarded in an attempt to clean up the
next hops as along the path indicated by the IPv6 header
(possibly including a routing header).
If the fragment cannot be forwarded or routed, then an abort If the fragment cannot be forwarded or routed, then an abort
RFRAG-ACK is sent back to the source as described in RFRAG-ACK is sent back to the source as described in
Section 6.1.2. Section 6.1.2.
5.2. RFRAG Acknowledgment Dispatch type and Header 5.2. RFRAG Acknowledgment Dispatch type and Header
This specification also defines a 4-octet RFRAG Acknowledgment bitmap This specification also defines a 4-octet RFRAG Acknowledgment bitmap
that is used by the reassembling end point to confirm selectively the that is used by the reassembling end point to confirm selectively the
reception of individual fragments. A given offset in the bitmap maps reception of individual fragments. A given offset in the bitmap maps
one to one with a given sequence number and indicates which fragment one to one with a given sequence number and indicates which fragment
is acknowledged as follows: is acknowledged as follows:
1 2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RFRAG Acknowledgment Bitmap | | RFRAG Acknowledgment Bitmap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
^ ^ ^ ^
| | bitmap indicating whether: | | bitmap indicating whether:
| +----- Fragment with sequence 9 was received | +----- Fragment with sequence 9 was received
+----------------------- Fragment with sequence 0 was received +----------------------- Fragment with sequence 0 was received
Figure 2: RFRAG Acknowledgment bitmap encoding Figure 2: RFRAG Acknowledgment bitmap encoding
Figure 3 shows an example Acknowledgment bitmap which indicates that Figure 3 shows an example Acknowledgment bitmap which indicates that
all fragments from sequence 0 to 20 were received, except for all fragments from sequence 0 to 20 were received, except for
fragments 1, 2 and 16 that were lost and must be retried. fragments 1, 2 and 16 that were lost and must be retried.
1 2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|0|0|1|1|1|1|1|1|1|1|1|1|1|1|1|0|1|1|1|1|0|0|0|0|0|0|0|0|0|0|0| |1|0|0|1|1|1|1|1|1|1|1|1|1|1|1|1|0|1|1|1|1|0|0|0|0|0|0|0|0|0|0|0|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 12, line 15 skipping to change at page 12, line 4
The RFRAG Acknowledgment Bitmap is included in a RFRAG Acknowledgment The RFRAG Acknowledgment Bitmap is included in a RFRAG Acknowledgment
header, as follows: header, as follows:
1 2 3 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1 1 1 0 1 0 1|E| datagram_tag | |1 1 1 0 1 0 1|E| datagram_tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RFRAG Acknowledgment Bitmap (32 bits) | | RFRAG Acknowledgment Bitmap (32 bits) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: RFRAG Acknowledgment Dispatch type and Header Figure 4: RFRAG Acknowledgment Dispatch type and Header
E: 1 bit; Explicit Congestion Notification Echo E: 1 bit; Explicit Congestion Notification Echo
When set, the sender indicates that at least one of the When set, the sender indicates that at least one of the
acknowledged fragments was received with an Explicit Congestion acknowledged fragments was received with an Explicit Congestion
Notification, indicating that the path followed by the fragments Notification, indicating that the path followed by the fragments
is subject to congestion. More in Appendix C. is subject to congestion. More in Appendix C.
RFRAG Acknowledgment Bitmap RFRAG Acknowledgment Bitmap: An RFRAG Acknowledgment Bitmap, whereby
setting the bit at offset x indicates that fragment x was
An RFRAG Acknowledgment Bitmap, whereby setting the bit at offset received, as shown in Figure 2. All 0's is a NULL bitmap that
x indicates that fragment x was received, as shown in Figure 2. indicates that the fragmentation process is aborted. All 1's is a
All 0's is a NULL bitmap that indicates that the fragmentation FULL bitmap that indicates that the fragmentation process is
process is aborted. All 1's is a FULL bitmap that indicates that complete, all fragments were received at the reassembly end point.
the fragmentation process is complete, all fragments were received
at the reassembly end point.
6. Fragments Recovery 6. Fragments Recovery
The Recoverable Fragment header RFRAG is used to transport a fragment The Recoverable Fragment header RFRAG is used to transport a fragment
and optionally request an RFRAG Acknowledgment that will confirm the and optionally request an RFRAG Acknowledgment that will confirm the
good reception of one or more fragments. An RFRAG Acknowledgment is good reception of one or more fragments. An RFRAG Acknowledgment is
carried as a standalone fragment header (i.e. with no 6LoWPAN carried as a standalone fragment header (i.e. with no 6LoWPAN
payload) in a message that is propagated back to the 6LoWPAN endpoint payload) in a message that is propagated back to the 6LoWPAN endpoint
that was the originator of the fragments. To achieve this, each hop that was the originator of the fragments. To achieve this, each hop
that performed an MPLS-like operation on fragments reverses that that performed an MPLS-like operation on fragments reverses that
skipping to change at page 15, line 38 skipping to change at page 15, line 20
Upon a next fragment (i.e. with a non-zero sequence), the router Upon a next fragment (i.e. with a non-zero sequence), the router
looks up a LSP indexed by the tuple (MAC address, datagram_tag) found looks up a LSP indexed by the tuple (MAC address, datagram_tag) found
in the fragment. If it is found, the router forwards the fragment in the fragment. If it is found, the router forwards the fragment
using the associated VRB as prescribed by using the associated VRB as prescribed by
[I-D.ietf-6lo-minimal-fragment]. [I-D.ietf-6lo-minimal-fragment].
if the VRB for the tuple is not found, the router builds an RFRAG-ACK if the VRB for the tuple is not found, the router builds an RFRAG-ACK
to abort the transmission of the packet. The resulting message has to abort the transmission of the packet. The resulting message has
the following information: the following information:
o The source and destination MAC addresses are swapped from those * The source and destination MAC addresses are swapped from those
found in the fragment found in the fragment
* The datagram_tag set to the datagram_tag found in the fragment
o The datagram_tag set to the datagram_tag found in the fragment * A NULL bitmap is used to signal the abort condition
o A NULL bitmap is used to signal the abort condition
At this point the router is all set and can send the RFRAG-ACK back At this point the router is all set and can send the RFRAG-ACK back
to the previous router. The RFRAG-ACK should normally be forwarded to the previous router. The RFRAG-ACK should normally be forwarded
all the way to the source using the reverse LSP state in the VRBs in all the way to the source using the reverse LSP state in the VRBs in
the intermediate routers as described in the next section. the intermediate routers as described in the next section.
6.2. Upon the RFRAG Acknowledgments 6.2. Upon the RFRAG Acknowledgments
Upon an RFRAG-ACK, the router looks up a Reverse LSP indexed by the Upon an RFRAG-ACK, the router looks up a Reverse LSP indexed by the
tuple (MAC address, datagram_tag), which are respectively the source tuple (MAC address, datagram_tag), which are respectively the source
skipping to change at page 17, line 24 skipping to change at page 16, line 48
7. Management Considerations 7. Management Considerations
7.1. Protocol Parameters 7.1. Protocol Parameters
There is no particular configuration on the receiver, as echoing ECN There is no particular configuration on the receiver, as echoing ECN
is always on. The configuration only applies to the sender, which is is always on. The configuration only applies to the sender, which is
in control of the transmission. The management system SHOULD be in control of the transmission. The management system SHOULD be
capable of providing the parameters below: capable of providing the parameters below:
MinFragmentSize: The MinFragmentSize is the minimum value for the MinFragmentSize: The MinFragmentSize is the minimum value for the
Fragment_Size. Fragment_Size.
OptFragmentSize: The MinFragmentSize is the value for the OptFragmentSize: The MinFragmentSize is the value for the
Fragment_Size that the sender should use to start with. Fragment_Size that the sender should use to start with.
MaxFragmentSize: The MaxFragmentSize is the maximum value for the MaxFragmentSize: The MaxFragmentSize is the maximum value for the
Fragment_Size. It MUST be lower than the minimum MTU along the Fragment_Size. It MUST be lower than the minimum MTU along the
path. A large value augments the chances of buffer bloat and path. A large value augments the chances of buffer bloat and
transmission loss. The value MUST be less than 512 if the unit transmission loss. The value MUST be less than 512 if the unit
that is defined for the PHY layer is the octet. that is defined for the PHY layer is the octet.
UseECN: Indicates whether the sender should react to ECN. When the UseECN: Indicates whether the sender should react to ECN. When the
sender reacts to ECN the Window_Size will vary between sender reacts to ECN the Window_Size will vary between
MinWindowSize and MaxWindowSize. MinWindowSize and MaxWindowSize.
MinWindowSize: The minimum value of Window_Size that the sender can MinWindowSize: The minimum value of Window_Size that the sender can
use. use.
OptWindowSize: The OptWindowSize is the value for the Window_Size OptWindowSize: The OptWindowSize is the value for the Window_Size
that the sender should use to start with. that the sender should use to start with.
MaxWindowSize: The maximum value of Window_Size that the sender can MaxWindowSize: The maximum value of Window_Size that the sender can
use. The value MUSt be less than 32. use. The value MUSt be less than 32.
InterFrameGap: Indicates a minimum amount of time between InterFrameGap: Indicates a minimum amount of time between
transmissions. All packets to a same destination, and in transmissions. All packets to a same destination, and in
particular fragments, may be subject to receive while particular fragments, may be subject to receive while transmitting
transmitting and hidden terminal collisions with the next or and hidden terminal collisions with the next or the previous
the previous transmission as the fragments progress along a transmission as the fragments progress along a same path. The
same path. The InterFrameGap protects the propagation of one InterFrameGap protects the propagation of one transmission before
transmission before the next one is triggered and creates a the next one is triggered and creates a duty cycle that controls
duty cycle that controls the ratio of air time and memory in the ratio of air time and memory in intermediate nodes that a
intermediate nodes that a particular datagram will use. particular datagram will use.
MinARQTimeOut: The maximum amount of time a node should wait for an MinARQTimeOut: The maximum amount of time a node should wait for an
RFRAG Acknowledgment before it takes a next action. RFRAG Acknowledgment before it takes a next action.
OptARQTimeOut: The starting point of the value of the amount that a OptARQTimeOut: The starting point of the value of the amount that a
sender should wait for an RFRAG Acknowledgment before it takes sender should wait for an RFRAG Acknowledgment before it takes a
a next action. next action.
MaxARQTimeOut: The maximum amount of time a node should wait for an MaxARQTimeOut: The maximum amount of time a node should wait for an
RFRAG Acknowledgment before it takes a next action. RFRAG Acknowledgment before it takes a next action.
MaxFragRetries: The maximum number of retries for a particular MaxFragRetries: The maximum number of retries for a particular
Fragment. Fragment.
MaxDatagramRetries: The maximum number of retries from scratch for a MaxDatagramRetries: The maximum number of retries from scratch for a
particular Datagram. particular Datagram.
7.2. Observing the network 7.2. Observing the network
The management system should monitor the amount of retries and of ECN The management system should monitor the amount of retries and of ECN
settings that can be observed from the perspective of the both the settings that can be observed from the perspective of the both the
sender and the receiver, and may tune the optimum size of sender and the receiver, and may tune the optimum size of
Fragment_Size and of the Window_Size, OptWindowSize and OptWindowSize Fragment_Size and of the Window_Size, OptWindowSize and OptWindowSize
respectively, at the sender. The values should be bounded by the respectively, at the sender. The values should be bounded by the
expected number of hops and reduced beyond that when the number of expected number of hops and reduced beyond that when the number of
datagrams that can traverse an intermediate point may exceed its datagrams that can traverse an intermediate point may exceed its
skipping to change at page 18, line 48 skipping to change at page 18, line 28
8. Security Considerations 8. Security Considerations
The considerations in the Security section of [I-D.ietf-core-cocoa] The considerations in the Security section of [I-D.ietf-core-cocoa]
apply equally to this specification. apply equally to this specification.
The process of recovering fragments does not appear to create any The process of recovering fragments does not appear to create any
opening for new threat compared to "Transmission of IPv6 Packets over opening for new threat compared to "Transmission of IPv6 Packets over
IEEE 802.15.4 Networks" [RFC4944]. IEEE 802.15.4 Networks" [RFC4944].
The technique of Virtual Recovery Buffers inherited from The Virtual Recovery Buffer inherited from
[I-D.ietf-6lo-minimal-fragment] may be used to perform a Denial-of- [I-D.ietf-6lo-minimal-fragment] may be used to perform a Denial-of-
Service (DoS) attack against the intermediate Routers since the Service (DoS) attack against the intermediate Routers since the
routers need to maintain a state per flow. Note that as opposed to routers need to maintain a state per flow. The VRB implementation
the VRB described in [I-D.ietf-lwig-6lowpan-virtual-reassembly] the technique described in [I-D.ietf-lwig-6lowpan-virtual-reassembly]
data that is transported in each fragment is conserved and the state allows to realign which data goes in which fragment which causes the
to keep does not include any data that would not fit in the previous intermediate node to store a portion of the data, which adds an
fragment. attack vector that is not present with this specification. With this
specification, the data that is transported in each fragment is
conserved and the state to keep does not include any data that would
not fit in the previous fragment.
9. IANA Considerations 9. IANA Considerations
This document allocates 4 values in Page 0 for recoverable fragments This document allocates 4 values in Page 0 for recoverable fragments
from the "Dispatch Type Field" registry that was created by from the "Dispatch Type Field" registry that was created by
"Transmission of IPv6 Packets over IEEE 802.15.4 Networks" [RFC4944] "Transmission of IPv6 Packets over IEEE 802.15.4 Networks" [RFC4944]
and reformatted by "6LoWPAN Paging Dispatch" [RFC8025]. and reformatted by "6LoWPAN Paging Dispatch" [RFC8025].
The suggested values (to be confirmed by IANA) are indicated in The suggested values (to be confirmed by IANA) are indicated in
Table 1. Table 1.
+-------------+------+----------------------------------+-----------+ +-------------+------+----------------------------------+-----------+
| Bit Pattern | Page | Header Type | Reference | | Bit Pattern | Page | Header Type | Reference |
+=============+======+==================================+===========+
| 11 10100x | 0 | RFRAG - Recoverable Fragment | THIS RFC |
+-------------+------+----------------------------------+-----------+ +-------------+------+----------------------------------+-----------+
| 11 10100x | 0 | RFRAG - Recoverable Fragment | RFC THIS | | 11 10101x | 0 | RFRAG-ACK - RFRAG | THIS RFC |
| 11 10101x | 0 | RFRAG-ACK - RFRAG Acknowledgment | RFC THIS | | | | Acknowledgment | |
+-------------+------+----------------------------------+-----------+ +-------------+------+----------------------------------+-----------+
Table 1: Additional Dispatch Value Bit Patterns Table 1: Additional Dispatch Value Bit Patterns
10. Acknowledgments 10. Acknowledgments
The author wishes to thank Michel Veillette, Dario Tedeschi, Laurent The author wishes to thank Michel Veillette, Dario Tedeschi, Laurent
Toutain, Carles Gomez Montenegro, Thomas Watteyne and Michael Toutain, Carles Gomez Montenegro, Thomas Watteyne and Michael
Richardson for in-depth reviews and comments. Also many thanks to Richardson for in-depth reviews and comments. Also many thanks to
Jonathan Hui, Jay Werb, Christos Polyzois, Soumitri Kolavennu, Pat Jonathan Hui, Jay Werb, Christos Polyzois, Soumitri Kolavennu, Pat
Kinney, Margaret Wasserman, Richard Kelsey, Carsten Bormann and Harry Kinney, Margaret Wasserman, Richard Kelsey, Carsten Bormann and Harry
Courtice for their various contributions. Courtice for their various contributions.
11. References 11. Normative References
11.1. Normative References
[I-D.ietf-6lo-minimal-fragment] [I-D.ietf-6lo-minimal-fragment]
Watteyne, T., Bormann, C., and P. Thubert, "LLN Minimal Watteyne, T., Bormann, C., and P. Thubert, "6LoWPAN
Fragment Forwarding", draft-ietf-6lo-minimal-fragment-02 Fragment Forwarding", Work in Progress, Internet-Draft,
(work in progress), June 2019. draft-ietf-6lo-minimal-fragment-04, 2 September 2019,
<https://tools.ietf.org/html/draft-ietf-6lo-minimal-
[I-D.ietf-lwig-6lowpan-virtual-reassembly] fragment-04>.
Bormann, C. and T. Watteyne, "Virtual reassembly buffers
in 6LoWPAN", draft-ietf-lwig-6lowpan-virtual-reassembly-01
(work in progress), March 2019.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>. <https://www.rfc-editor.org/info/rfc2119>.
[RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler,
"Transmission of IPv6 Packets over IEEE 802.15.4 "Transmission of IPv6 Packets over IEEE 802.15.4
Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007,
<https://www.rfc-editor.org/info/rfc4944>. <https://www.rfc-editor.org/info/rfc4944>.
skipping to change at page 20, line 40 skipping to change at page 20, line 21
[RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie, [RFC8138] Thubert, P., Ed., Bormann, C., Toutain, L., and R. Cragie,
"IPv6 over Low-Power Wireless Personal Area Network "IPv6 over Low-Power Wireless Personal Area Network
(6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138, (6LoWPAN) Routing Header", RFC 8138, DOI 10.17487/RFC8138,
April 2017, <https://www.rfc-editor.org/info/rfc8138>. April 2017, <https://www.rfc-editor.org/info/rfc8138>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
11.2. Informative References 12. Informative References
[I-D.ietf-6tisch-architecture] [I-D.ietf-6tisch-architecture]
Thubert, P., "An Architecture for IPv6 over the TSCH mode Thubert, P., "An Architecture for IPv6 over the TSCH mode
of IEEE 802.15.4", draft-ietf-6tisch-architecture-24 (work of IEEE 802.15.4", Work in Progress, Internet-Draft,
in progress), July 2019. draft-ietf-6tisch-architecture-27, 18 October 2019,
<https://tools.ietf.org/html/draft-ietf-6tisch-
architecture-27>.
[I-D.ietf-core-cocoa] [I-D.ietf-core-cocoa]
Bormann, C., Betzler, A., Gomez, C., and I. Demirkol, Bormann, C., Betzler, A., Gomez, C., and I. Demirkol,
"CoAP Simple Congestion Control/Advanced", draft-ietf- "CoAP Simple Congestion Control/Advanced", Work in
core-cocoa-03 (work in progress), February 2018. Progress, Internet-Draft, draft-ietf-core-cocoa-03, 21
February 2018,
<https://tools.ietf.org/html/draft-ietf-core-cocoa-03>.
[I-D.ietf-intarea-frag-fragile] [I-D.ietf-intarea-frag-fragile]
Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O., Bonica, R., Baker, F., Huston, G., Hinden, R., Troan, O.,
and F. Gont, "IP Fragmentation Considered Fragile", draft- and F. Gont, "IP Fragmentation Considered Fragile", Work
ietf-intarea-frag-fragile-15 (work in progress), July in Progress, Internet-Draft, draft-ietf-intarea-frag-
2019. fragile-17, 30 September 2019,
<https://tools.ietf.org/html/draft-ietf-intarea-frag-
fragile-17>.
[I-D.ietf-lwig-6lowpan-virtual-reassembly]
Bormann, C. and T. Watteyne, "Virtual reassembly buffers
in 6LoWPAN", Work in Progress, Internet-Draft, draft-ietf-
lwig-6lowpan-virtual-reassembly-01, 11 March 2019,
<https://tools.ietf.org/html/draft-ietf-lwig-6lowpan-
virtual-reassembly-01>.
[IEEE.802.15.4] [IEEE.802.15.4]
IEEE, "IEEE Standard for Low-Rate Wireless Networks", IEEE, "IEEE Standard for Low-Rate Wireless Networks",
IEEE Standard 802.15.4, DOI 10.1109/IEEE IEEE Standard 802.15.4, DOI 10.1109/IEEE
P802.15.4-REVd/D01, P802.15.4-REVd/D01, October 2019,
<http://ieeexplore.ieee.org/document/7460875/>. <http://ieeexplore.ieee.org/document/7460875/>.
[Kent] Kent, C. and J. Mogul, ""Fragmentation Considered [Kent] Kent, C. and J. Mogul, ""Fragmentation Considered
Harmful", In Proc. SIGCOMM '87 Workshop on Frontiers in Harmful", In Proc. SIGCOMM '87 Workshop on Frontiers in
Computer Communications Technology", Computer Communications Technology",
DOI 10.1145/55483.55524, August 1987, DOI 10.1145/55483.55524, August 1987,
<http://www.hpl.hp.com/techreports/Compaq-DEC/ <http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-
WRL-87-3.pdf>. 87-3.pdf>.
[RFC2914] Floyd, S., "Congestion Control Principles", BCP 41, [RFC2914] Floyd, S., "Congestion Control Principles", BCP 41,
RFC 2914, DOI 10.17487/RFC2914, September 2000, RFC 2914, DOI 10.17487/RFC2914, September 2000,
<https://www.rfc-editor.org/info/rfc2914>. <https://www.rfc-editor.org/info/rfc2914>.
[RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol [RFC3031] Rosen, E., Viswanathan, A., and R. Callon, "Multiprotocol
Label Switching Architecture", RFC 3031, Label Switching Architecture", RFC 3031,
DOI 10.17487/RFC3031, January 2001, DOI 10.17487/RFC3031, January 2001,
<https://www.rfc-editor.org/info/rfc3031>. <https://www.rfc-editor.org/info/rfc3031>.
skipping to change at page 23, line 15 skipping to change at page 23, line 15
Appendix A. Rationale Appendix A. Rationale
There are a number of uses for large packets in Wireless Sensor There are a number of uses for large packets in Wireless Sensor
Networks. Such usages may not be the most typical or represent the Networks. Such usages may not be the most typical or represent the
largest amount of traffic over the LLN; however, the associated largest amount of traffic over the LLN; however, the associated
functionality can be critical enough to justify extra care for functionality can be critical enough to justify extra care for
ensuring effective transport of large packets across the LLN. ensuring effective transport of large packets across the LLN.
The list of those usages includes: The list of those usages includes:
Towards the LLN node: Towards the LLN node: Firmware update: For example, a new version
of the LLN node software is downloaded from a system manager
Firmware update: For example, a new version of the LLN node over unicast or multicast services. Such a reflashing
software is downloaded from a system manager over unicast or operation typically involves updating a large number of similar
multicast services. Such a reflashing operation typically LLN nodes over a relatively short period of time.
involves updating a large number of similar LLN nodes over a Packages of Commands: A number of commands or
relatively short period of time. a full configuration can be packaged as a single message to
ensure consistency and enable atomic execution or complete roll
Packages of Commands: A number of commands or a full back. Until such commands are fully received and interpreted,
configuration can be packaged as a single message to ensure the intended operation will not take effect.
consistency and enable atomic execution or complete roll back. From the LLN node: Waveform captures: A number of consecutive
Until such commands are fully received and interpreted, the samples are measured at a high rate for a short time and then
intended operation will not take effect. transferred from a sensor to a gateway or an edge server as a
single large report.
From the LLN node: Data logs: LLN nodes may generate large logs of
sampled data for later extraction. LLN nodes may also generate
Waveform captures: A number of consecutive samples are measured system logs to assist in diagnosing problems on the node or
at a high rate for a short time and then transferred from a network.
sensor to a gateway or an edge server as a single large report. Large data packets: Rich data types might
require more than one fragment.
Data logs: LLN nodes may generate large logs of sampled data for
later extraction. LLN nodes may also generate system logs to
assist in diagnosing problems on the node or network.
Large data packets: Rich data types might require more than one
fragment.
Uncontrolled firmware download or waveform upload can easily result Uncontrolled firmware download or waveform upload can easily result
in a massive increase of the traffic and saturate the network. in a massive increase of the traffic and saturate the network.
When a fragment is lost in transmission, the lack of recovery in the When a fragment is lost in transmission, the lack of recovery in the
original fragmentation system of RFC 4944 implies that all fragments original fragmentation system of RFC 4944 implies that all fragments
would need to be resent, further contributing to the congestion that would need to be resent, further contributing to the congestion that
caused the initial loss, and potentially leading to congestion caused the initial loss, and potentially leading to congestion
collapse. collapse.
skipping to change at page 26, line 44 skipping to change at page 26, line 38
by throttling the sources. by throttling the sources.
Section 6 describes how the sender decides how many fragments are Section 6 describes how the sender decides how many fragments are
(re)sent before an acknowledgment is required, and how the sender (re)sent before an acknowledgment is required, and how the sender
adapts that number to the network conditions. adapts that number to the network conditions.
Author's Address Author's Address
Pascal Thubert (editor) Pascal Thubert (editor)
Cisco Systems, Inc Cisco Systems, Inc
Building D Building D, 45 Allee des Ormes - BP1200
45 Allee des Ormes - BP1200 06254 MOUGINS - Sophia Antipolis
MOUGINS - Sophia Antipolis 06254 France
FRANCE
Phone: +33 497 23 26 34 Phone: +33 497 23 26 34
Email: pthubert@cisco.com Email: pthubert@cisco.com
 End of changes. 60 change blocks. 
176 lines changed or deleted 167 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/