< draft-thubert-6lowpan-simple-fragment-recovery-05.txt   draft-thubert-6lowpan-simple-fragment-recovery-06.txt >
6LoWPAN P. Thubert, Ed. 6LoWPAN P. Thubert, Ed.
Internet-Draft Cisco Internet-Draft Cisco
Intended status: Standards Track J. Hui Intended status: Standards Track J. Hui
Expires: September 29, 2009 Arch Rock Corporation Expires: January 1, 2010 Arch Rock Corporation
March 28, 2009 June 30, 2009
LoWPAN simple fragment Recovery LoWPAN simple fragment Recovery
draft-thubert-6lowpan-simple-fragment-recovery-05 draft-thubert-6lowpan-simple-fragment-recovery-06
Status of this Memo Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 33 skipping to change at page 1, line 33
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on September 29, 2009. This Internet-Draft will expire on January 1, 2010.
Copyright Notice Copyright Notice
Copyright (c) 2009 IETF Trust and the persons identified as the Copyright (c) 2009 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 in effect on the date of Provisions Relating to IETF Documents in effect on the date of
publication of this document (http://trustee.ietf.org/license-info). publication of this document (http://trustee.ietf.org/license-info).
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. and restrictions with respect to this document.
Abstract Abstract
Considering that 6LoWPAN packets can be as large as 2K bytes and that Considering that the IPv6 minimum MTU is 1280 bytes and that an an
an 802.15.4 frame with security will carry in the order of 80 bytes 802.15.4 frame can have a payload limited to 74 bytes in the worst
of effective payload, a packet might end up fragmented into as many case, a packet might end up fragmented into as many as 18 fragments
as 25 fragments at the 6LoWPAN shim layer. If a single one of those at the 6LoWPAN shim layer. If a single one of those fragments is
fragments is lost in transmission, all fragments must be resent, lost in transmission, all fragments must be resent, further
further contributing to the congestion that might have caused the contributing to the congestion that might have caused the initial
initial packet loss. This draft introduces a simple protocol to packet loss. This draft introduces a simple protocol to recover
recover individual fragments that might be lost over multiple hops individual fragments that might be lost over multiple hops between
between 6LoWPAN endpoints. 6LoWPAN endpoints.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
6. New Dispatch types and headers . . . . . . . . . . . . . . . . 7 6. New Dispatch types and headers . . . . . . . . . . . . . . . . 7
6.1. Recoverable Fragment Dispatch type and Header . . . . . . 8 6.1. Recoverable Fragment Dispatch type and Header . . . . . . 8
6.2. Fragment Acknowledgement Dispatch type and Header . . . . 8 6.2. Fragment Acknowledgement Dispatch type and Header . . . . 8
7. Fragments Recovery . . . . . . . . . . . . . . . . . . . . . . 9 7. Fragments Recovery . . . . . . . . . . . . . . . . . . . . . . 10
8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 8. Security Considerations . . . . . . . . . . . . . . . . . . . 12
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
11.1. Normative References . . . . . . . . . . . . . . . . . . . 11 11.1. Normative References . . . . . . . . . . . . . . . . . . . 12
11.2. Informative References . . . . . . . . . . . . . . . . . . 11 11.2. Informative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
In many 6LoWPAN applications, the majority of traffic is spent In many 6LoWPAN applications, the majority of traffic is spent
sending small chunks of data (order few bytes to few tens of bytes) sending small chunks of data (order few bytes to few tens of bytes)
per packet. Given that an 802.15.4 frame can carry on the order of per packet. Given that an 802.15.4 frame can carry 74 bytes or more
80 bytes in the worst case, fragmentation is often not needed for in all cases, fragmentation is often not needed for most application
most application traffic. However, many applications also require traffic. However, many applications also require occasional bulk
occasional bulk data transfer capabilities to support firmware data transfer capabilities to support firmware upgrades of 6LoWPAN
upgrades of 6LoWPAN devices or extraction of logs from 6LoWPAN devices or extraction of logs from 6LoWPAN devices. In the former
devices. In the former case, bulk data is transferred to the 6LoWPAN case, bulk data is transferred to the 6LoWPAN device, and in the
device, and in the latter, bulk data flows away from the 6LoWPAN latter, bulk data flows away from the 6LoWPAN device. In both cases,
device. In both cases, the bulk data size is often on the order of the bulk data size is often on the order of 10K bytes or more and
10K bytes or more and end-to-end reliable transport is required. end-to-end reliable transport is required.
Mechanisms such as TCP or application-layer segmentation will be used Mechanisms such as TCP or application-layer segmentation will be used
to support end-to-end reliable transport. One option to support bulk to support end-to-end reliable transport. One option to support bulk
data transfer over 6LoWPAN links is to set the Maximum Segment Size data transfer over 6LoWPAN links is to set the Maximum Segment Size
to fit within the 802.15.4 MTU. Doing so, however, can add to fit within the 802.15.4 MTU. Doing so, however, can add
significant header overhead to each 802.15.4 frame. This causes the significant header overhead to each 802.15.4 frame. This causes the
end-to-end transport to be aware of the delivery properties of end-to-end transport to be aware of the delivery properties of
6LoWPAN networks, which is a layer violation. 6LoWPAN networks, which is a layer violation.
An alternative mechanism combines the use of 6LoWPAN fragmentation in An alternative mechanism combines the use of 6LoWPAN fragmentation in
skipping to change at page 4, line 34 skipping to change at page 4, line 34
Error Recovery Procedure. Error Recovery Procedure.
LoWPAN endpoints LoWPAN endpoints
The LoWPAN nodes in charge of generating or expanding a 6LoWPAN The LoWPAN nodes in charge of generating or expanding a 6LoWPAN
header from/to a full IPv6 packet. The LoWPAN endpoints are the header from/to a full IPv6 packet. The LoWPAN endpoints are the
points where fragmentation and reassembly take place. points where fragmentation and reassembly take place.
3. Rationale 3. Rationale
There are a number of usages 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 LoWPAN; however, the associated largest amount of traffic over the LoWPAN; 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 LoWPAN. ensuring effective transport of large packets across the LoWPAN.
The list of those usages includes: The list of those usages includes:
Towards the LoWPAN node: Towards the LoWPAN node:
Packages of Commands: A number of commands or a full Packages of Commands: A number of commands or a full
skipping to change at page 5, line 44 skipping to change at page 5, line 44
hop to emerge from its sleeping state. hop to emerge from its sleeping state.
To demonstrate the severity of the problem, consider a fairly To demonstrate the severity of the problem, consider a fairly
reliable 802.15.4 frame delivery rate of 99.9% over a single 802.15.4 reliable 802.15.4 frame delivery rate of 99.9% over a single 802.15.4
hop. The expected delivery rate of a 5-fragment datagram would be hop. The expected delivery rate of a 5-fragment datagram would be
about 99.5% over a single 802.15.4 hop. However, the expected about 99.5% over a single 802.15.4 hop. However, the expected
delivery rate would drop to 95.1% over 10 hops, a reasonable network delivery rate would drop to 95.1% over 10 hops, a reasonable network
diameter for 6LoWPAN applications. The expected delivery rate for a diameter for 6LoWPAN applications. The expected delivery rate for a
1280-byte datagram is 98.4% over a single hop and 85.2% over 10 hops. 1280-byte datagram is 98.4% over a single hop and 85.2% over 10 hops.
Considering that 6LoWPAN packets can be as large as 2K bytes and that Considering that the IPv6 minimum MTU is 1280 bytes and that a
a 802.15.4 frame with security will carry in the order of 80 bytes of 802.15.4 frame can limit the MAC payload to as little as 74 bytes, a
effective payload, a packet might be fragmented into about 25 packet might be fragmented into at least 18 fragments at the 6LoWPAM
fragments at the 6LoWPAN shim layer. This level of fragmentation is shim layer. Taking into account the worst-case header overhead for
much higher than that traditionally experienced over the Internet 6LoWPAN Fragmentation and Mesh Addressing headers will increase the
with IPv4 fragments. At the same time, the use of radios increases number of required fragments to around 32. This level of
the probability of transmission loss and Mesh-Under techniques fragmentation is much higher than that traditionally experienced over
compound that risk over multiple hops. the Internet with IPv4 fragments. At the same time, the use of
radios increases the probability of transmission loss and Mesh-Under
techniques compound that risk over multiple hops.
4. Requirements 4. Requirements
This paper proposes a method to recover individual fragments between This paper proposes a method to recover individual fragments between
LoWPAN endpoints. The method is designed to fit the following LoWPAN endpoints. The method is designed to fit the following
requirements of a LoWPAN (with or without a Mesh-Under routing requirements of a LoWPAN (with or without a Mesh-Under routing
protocol): protocol):
Number of fragments Number of fragments
skipping to change at page 8, line 29 skipping to change at page 8, line 29
When set, the sender requires an Acknowledgment from the receiver When set, the sender requires an Acknowledgment from the receiver
Sequence Sequence
The sequence number of the fragment. Fragments are numbered The sequence number of the fragment. Fragments are numbered
[0..N] where N is in [0..31]. [0..N] where N is in [0..31].
6.2. Fragment Acknowledgement Dispatch type and Header 6.2. Fragment Acknowledgement Dispatch type and Header
The specification also defines an acknowledgement bitmap that is used
to carry selective acknowlegements for the received fragments. A
given offset in the bitmap maps one to one with a given sequence
number.
The bitmap is compressed as a variable length field formed by control
bits and acknowledgement bits. The leftmost bits of the compressed
form are control bits up to the first 0. The rest is ack bits
encoded right to left:
Pattern Size Ack
+--------------------------------------+----------+----------+
| 0XXXXXXX | 1 octet | 1 -> 7 |
| 10XXXXXX XXXXXXXX | 2 octets | 1 -> 14 |
| 110XXXXX XXXXXXXX XXXXXXXX | 3 octets | 1 -> 21 |
| 1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX | 4 octets | 1 -> 28 |
+------------+-----------------------------------------------+
Figure 3: Compressed acknowledgement bitmap encoding
The highest sequence number to be acknowledged determines the pattern
to be used. The format can be extended for more fragments in the
future but this specification only requires the support of up to 4
octets encoding, which enables to acknowledge up to 28 fragments.
A 32 bits uncompressed bitmap is obtained by prepending zeroes to the
XXX in the pattern above. For instance:
0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|0|1|1|0|1|1|1|1| is expanded as:
+-+-+-+-+-+-+-+-+
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|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1|1|0|1|1|1|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: Expanding 1 octet encoding
and
1 2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|1|1|0|1|1|1|1|0|1|1|1|1|1|1|1|1|1|1|1|1|1|0|0|1| is expanded as:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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|0|0|0|0|0|0|0|0|0|0|1|1|1|1|0|1|1|1|1|1|1|1|1|1|1|1|1|1|0|0|1|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: Expanding 3 octets encoding
whereas the 4 octets encoding is expanded by simply setting the first
3 bits to 0. The 32 bits uncompressed bitmap is written and read as
follows:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Bitmap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
^ ^
bitmap indicating whether: | |
Fragment with sequence 10 was received --+ |
Fragment with sequence 00 was received ----------------------+
Figure 6: Expanded bitmap encoding
So in the example in Figure 5 it appears that all fragments from
sequence 0 to 20 were received but for sequence 1, 2 and 16 that were
either lost or are still in the network over a slower path.
The compressed form of the acknowledgement bitmap is carried in a
Fragment Acknowledgement 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 Y| datagram_tag | |1 1 1 0 1 0 1 Y| datagram_tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Bitmap | | Compressed Acknowledgment Bitmap (8 to 32 bits)
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+ ....
^ ^
| | Y is reserved
| |
| | bitmap indicating whether
| +-----Fragment with sequence 10 was received
+-------------------------Fragment with sequence 00 was received
Figure 3: Fragment Acknowledgement Dispatch type and Header Figure 7: Fragment Acknowledgement Dispatch type and Header
Acknowledgement Bitmap Compressed Acknowledgement Bitmap
Each bit in the Bitmap refers to a particular fragment: bit n set An encoded form of an acknowledgement bitmap.
indicates that fragment with sequence n was received, for n in
[0..31]. A NULL bitmap (All zeroes) means that the fragment was
dropped .
7. Fragments Recovery 7. Fragments Recovery
The Recoverable Fragments header RFRAG and RFRAG-AR deprecate the The Recoverable Fragments header RFRAG and RFRAG-AR deprecate the
original fragment headers from [RFC4944] and replace them in the original fragment headers from [RFC4944] and replace them in the
fragmented packets. The Fragment Acknowledgement RFRAG-ACK is fragmented packets. The Fragment Acknowledgement RFRAG-ACK is
introduced as a standalone header in message that is sent back to the introduced as a standalone header in message that is sent back to the
fragment source endpoint as known by its MAC address. This assumes fragment source endpoint as known by its MAC address. This assumes
that the source MAC address in the fragment (is any) and datagram_tag that the source MAC address in the fragment (is any) and datagram_tag
are enough information to send the Fragment Acknowledgement back to are enough information to send the Fragment Acknowledgement back to
skipping to change at page 10, line 26 skipping to change at page 11, line 43
fragments for a first time before it retries any lost fragment; lost fragments for a first time before it retries any lost fragment; lost
fragments are retried in sequence, oldest first. This mechanism fragments are retried in sequence, oldest first. This mechanism
enables the receiver to acknowledge fragments that were delayed in enables the receiver to acknowledge fragments that were delayed in
the network before they are actually retried. the network before they are actually retried.
When the sender decides that a packet should be dropped and the When the sender decides that a packet should be dropped and the
fragmentation process canceled, it sends a pseudo fragment with the fragmentation process canceled, it sends a pseudo fragment with the
datagram_offset, sequence and datagram_size all set to zero, and no datagram_offset, sequence and datagram_size all set to zero, and no
data. Upon reception of this message, the receiver should clean up data. Upon reception of this message, the receiver should clean up
all resources for the packet associated to the datagram_tag. If an all resources for the packet associated to the datagram_tag. If an
acknowledment is requested, the receiver responds with a NULL bitmap. acknowledgement is requested, the receiver responds with a NULL
bitmap.
The receiver might need to cancel the process of a fragmented packet The receiver might need to cancel the process of a fragmented packet
for internal reasons, for instance if it is out of recomposition for internal reasons, for instance if it is out of recomposition
buffers, or considers that this packet is already fully recomposed buffers, or considers that this packet is already fully recomposed
and passed to the upper layer. In that case, the receiver SHOULD and passed to the upper layer. In that case, the receiver SHOULD
indicate so to the sender with a NULL bitmap. Upon an indicate so to the sender with a NULL bitmap. Upon an
acknowledgement with a NULL bitmap, the sender MUST drop the acknowledgement with a NULL bitmap, the sender MUST drop the
datagram. datagram.
8. Security Considerations 8. Security Considerations
 End of changes. 14 change blocks. 
54 lines changed or deleted 125 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/