[6lowpan] making progress on fragmentation

Richard Kelsey <richard.kelsey@ember.com> Tue, 18 August 2009 13:00 UTC

Return-Path: <richard.kelsey@ember.com>
X-Original-To: 6lowpan@core3.amsl.com
Delivered-To: 6lowpan@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 035353A68F3 for <6lowpan@core3.amsl.com>; Tue, 18 Aug 2009 06:00:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id JOGoBUPSHUmd for <6lowpan@core3.amsl.com>; Tue, 18 Aug 2009 06:00:57 -0700 (PDT)
Received: from EMPIRE.hq.ember.com (mail.ember.com [74.10.175.227]) by core3.amsl.com (Postfix) with ESMTP id 0213928C15A for <6lowpan@ietf.org>; Tue, 18 Aug 2009 06:00:56 -0700 (PDT)
Received: from kelsey-ws.hq.ember.com ([192.168.81.60]) by EMPIRE.hq.ember.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 18 Aug 2009 08:26:26 -0400
Date: Tue, 18 Aug 2009 08:26:50 -0400
Message-Id: <87ljlh2tpx.fsf@kelsey-ws.hq.ember.com>
To: 6lowpan@ietf.org
From: Richard Kelsey <richard.kelsey@ember.com>
X-OriginalArrivalTime: 18 Aug 2009 12:26:26.0633 (UTC) FILETIME=[1B29DB90:01CA1FFF]
Subject: [6lowpan] making progress on fragmentation
X-BeenThere: 6lowpan@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Working group discussion for IPv6 over LowPan networks <6lowpan.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/6lowpan>, <mailto:6lowpan-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/6lowpan>
List-Post: <mailto:6lowpan@ietf.org>
List-Help: <mailto:6lowpan-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lowpan>, <mailto:6lowpan-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 18 Aug 2009 13:00:58 -0000

I would like to work towards the adoption of Pascal's
fragmentation draft (draft-thubert-6lowpan-simple-fragment-
recovery) as a working group document.  Partly for the
reason giving in the draft, that retries are needed to make
delivery of large packets reliable, but also because retries
are needed to make delivery of *small* packets reliable.

With Ember's earlier, non-IP stacks, we have found that
customers expect IP-like reliability even from non-IP
protocols.  We have gotten reliable delivery (as reliable as
UDP packets in the Internet, say) on a radio mesh only by
repairing routes without dropping data packets.

The hard part of route repair is knowing when to do it.  The
most reliabile way is to use end-to-end ACKs within the
mesh.  Using NACKs would be more efficient that ACKs, but
these are lossy networks and NACKs are even less reliable
than data packets, because they only get sent when something
is already broken.

When a route breaks, we get the following sequence of
events:

  1. send a packet
  2. fail to receive an ACK
  3. update the route
  4. resend the packet
  
This has allowed us to get end-to-end mesh reliability
approaching that expected from IP links.  The usual
higher-level IP retry mechanisms can take over from there.

(Sending fragments multiple hops in a route-over network
will require some kind of label switching.  That will need
to be discussed over in ROLL.)

How close are we to consensus on Pascal's draft?  What
needs to be fixed/improved/removed?

                               -Richard Kelsey