[dtn-interest] more on reactive fragmentation

"Burleigh, Scott C (312G)" <scott.c.burleigh@jpl.nasa.gov> Fri, 02 May 2014 22:45 UTC

Return-Path: <scott.c.burleigh@jpl.nasa.gov>
X-Original-To: dtn-interest@ietfa.amsl.com
Delivered-To: dtn-interest@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 747C41A09CC for <dtn-interest@ietfa.amsl.com>; Fri, 2 May 2014 15:45:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.85
X-Spam-Level:
X-Spam-Status: No, score=-4.85 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RP_MATCHES_RCVD=-0.651] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ndptdgVuYUfv for <dtn-interest@ietfa.amsl.com>; Fri, 2 May 2014 15:45:54 -0700 (PDT)
Received: from mail.jpl.nasa.gov (mailhost.jpl.nasa.gov [128.149.139.106]) by ietfa.amsl.com (Postfix) with ESMTP id 6BFC21A09B6 for <dtn-interest@irtf.org>; Fri, 2 May 2014 15:45:54 -0700 (PDT)
Received: from mail.jpl.nasa.gov (ap-ehub-sp01.jpl.nasa.gov [128.149.137.148]) by smtp.jpl.nasa.gov (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id s42Mjo4V001592 (using TLSv1/SSLv3 with cipher AES128-SHA (128 bits) verified NO) for <dtn-interest@irtf.org>; Fri, 2 May 2014 15:45:50 -0700
Received: from AP-EMBX-SP40.RES.AD.JPL ([169.254.7.218]) by ap-ehub-sp01.RES.AD.JPL ([169.254.3.182]) with mapi id 14.03.0174.001; Fri, 2 May 2014 15:45:50 -0700
From: "Burleigh, Scott C (312G)" <scott.c.burleigh@jpl.nasa.gov>
To: "dtn-interest@irtf.org" <dtn-interest@irtf.org>
Thread-Topic: more on reactive fragmentation
Thread-Index: Ac9mVngCG7LCzCg9RAy1FTv5zUON/A==
Date: Fri, 02 May 2014 22:45:49 +0000
Message-ID: <A5BEAD028815CB40A32A5669CF737C3B4238A9F0@ap-embx-sp40.RES.AD.JPL>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [128.149.137.114]
Content-Type: multipart/alternative; boundary="_000_A5BEAD028815CB40A32A5669CF737C3B4238A9F0apembxsp40RESAD_"
MIME-Version: 1.0
X-Source-Sender: scott.c.burleigh@jpl.nasa.gov
X-AUTH: Authorized
Archived-At: http://mailarchive.ietf.org/arch/msg/dtn-interest/CGNask3HuljY-akIM6hE33jE45c
Subject: [dtn-interest] more on reactive fragmentation
X-BeenThere: dtn-interest@irtf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "The Delay-Tolerant Networking Research Group \(DTNRG\) - Announce." <dtn-interest.irtf.org>
List-Unsubscribe: <https://www.irtf.org/mailman/options/dtn-interest>, <mailto:dtn-interest-request@irtf.org?subject=unsubscribe>
List-Archive: <http://www.irtf.org/mail-archive/web/dtn-interest/>
List-Post: <mailto:dtn-interest@irtf.org>
List-Help: <mailto:dtn-interest-request@irtf.org?subject=help>
List-Subscribe: <https://www.irtf.org/mailman/listinfo/dtn-interest>, <mailto:dtn-interest-request@irtf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 May 2014 22:45:56 -0000

Will, I well remember reading about how useful you found reactive fragmentation in the UK-DMC experiments, so I can understand why you now feel it is a requirement.  My thinking has developed in the opposite direction: I was a big fan of reactive fragmentation originally, but now I believe it's the wrong answer.  Here's my reasoning:
*       The problem we're trying to solve is the waste of bandwidth that is caused by needing to retransmit a large amount of data that has already been transmitted, simply because connectivity was lost part way through transmission of a single large indivisible protocol data unit (bundle).
*       Reactive fragmentation solves this problem by dynamically dividing the original large bundle at the time of connectivity loss: most or all of the portion that has already been transmitted becomes a new (fragmentary) bundle, and the residual portion that hasn't yet been transmitted likewise becomes a fragmentary bundle.
*       But reactive fragmentation is possible only when the receiving entity can somehow notify the sender of how much of the original bundle was received prior to the end of connectivity.  (Otherwise the sender has no idea of how much data it need not retransmit.)
*       So there has to be a constant stream of "I got this much" messages returned from the receiver to the sender.  Those messages constitute bandwidth consumption that to some extent offsets what you save by reactively fragmenting.  (And of course the handling of these messages also consumes processing cycles at both the sender and the receiver.)
*       The benefit (bandwidth savings) that you get from reactive fragmentation varies directly with the size of your bundles and the frequency of contact truncation.  If contact truncations are rare or if your bundles are small then the cost of enabling reactive fragmentation outweighs the benefit.
*       From the size of the "I got this much" messages and the rate at which they are returned, we can compute the minimum bandwidth savings that must result from reactive fragmentation in order for it to be cost justified.  Divide that by the estimated frequency of contact truncation and you get the minimum mean bundle size at which reactive fragmentation makes sense.  Now, if you proactively fragment bundles to never exceed that size, then reactive fragmentation is unnecessary.

That's why ION implements "just in time" proactive fragmentation, at the moment of transmission, rather than reactive transmission.  (I wrote a little about this a few days ago.)

When BP is running over TCP/IP in the terrestrial Internet, the probability of unanticipated contact truncation is extremely low, so mostly there's no point in bothering with proactive fragmentation.

When BP is running in a space link environment, it arguably ought to be running over LTP rather than TCP/IP.  In ION, LTP is driven by a plan of scheduled contacts, so again the probability of unanticipated contact truncation is low -- contact truncation happens all the time, but it's almost always anticipated.  Moreover, LTP segments outbound bundles anyway; the segments are usually pretty small, so if one gets lost due to contact truncation there's negligible waste of bandwidth.

(As an aside, there is an open work item to modify ION's LTP to proactively truncate an outbound bundle that is too large to fit within the expected remaining seconds of the current contact.  This enables part of the bundle to be transmitted in the current contact, fully utilizing the contact, and the rest may be transmitted on a subsequent contact, possibly with a different network neighbor.  And again you don't miss reactive fragmentation.)

In your UK-DMC experiments you were running BP in a space link environment over TCP/IP, and I'll admit that this is a configuration in which reactive fragmentation is a bacon-saving feature: you were sending big bundles and you had several unanticipated contact truncations.  But I'll argue that this is a configuration that we should stay away from, for this reason among others.

Scott

-----Original Message-----
From: Stephen Farrell [mailto:stephen.farrell@cs.tcd.ie]
Sent: Friday, May 02, 2014 1:59 PM
To: Ivancic, William D. (GRC-RHN0); Burleigh, Scott C (312G); dtn-interest@irtf.org
Subject: Re: [dtn-interest] DTN BoF Proposal for IETF90

On 02/05/14 21:24, Ivancic, William D. (GRC-RHN0) wrote:
> Some really nice slides from Scott- seriously.  I found these while
> preparing for a talk. These do a nice job of highlight the difference
> between CFDP and DTN.
>
> http://chapters.comsoc.org/comsig/Slides/Jan2004_BurleighS_IPN_DTN.pdf
>
>  Interesting that reactive fragmentation is called out.  I was not a
> big fan originally, but not I feel it is a requirement.
>
> Has anyone done reactive fragmentation over LTP?  I was the
> beneficiary over TCP.

Not with our LTP implementation. LTPlib and the LTPCL we implemented would handle the disruption the LTP session and not tell the BPA. Not sure about ION. Handing the problem back to the bundle layer at some point would be an idea but I've not looked to see if it'd be easy or hard to code up.

> Stephen, was your experience with reactive fragmentation over TCP or
> some other convergence layer?

The N4C stuff was all TCP.

Cheers,
S.