[dtn-interest] Review of draft-irtf-dtnrg-tcp-clayer-04

Elwyn Davies <elwynd@folly.org.uk> Mon, 14 January 2013 16:34 UTC

Return-Path: <elwynd@folly.org.uk>
X-Original-To: dtn-interest@ietfa.amsl.com
Delivered-To: dtn-interest@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ED19621F8756 for <dtn-interest@ietfa.amsl.com>; Mon, 14 Jan 2013 08:34:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.8
X-Spam-Level:
X-Spam-Status: No, score=-1.8 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, SARE_SUB_RAND_LETTRS4=0.799]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4JGn3Xo6dedq for <dtn-interest@ietfa.amsl.com>; Mon, 14 Jan 2013 08:34:45 -0800 (PST)
Received: from b.painless.aa.net.uk (b.painless.aa.net.uk [IPv6:2001:8b0:0:30::51bb:1e34]) by ietfa.amsl.com (Postfix) with ESMTP id 83FA721F86D3 for <dtn-interest@irtf.org>; Mon, 14 Jan 2013 08:34:45 -0800 (PST)
Received: from mightyatom.folly.org.uk ([81.187.254.250]) by b.painless.aa.net.uk with esmtp (Exim 4.72) (envelope-from <elwynd@folly.org.uk>) id 1Tumzi-0006lF-TA for dtn-interest@irtf.org; Mon, 14 Jan 2013 16:34:43 +0000
From: Elwyn Davies <elwynd@folly.org.uk>
To: DTN interest <dtn-interest@irtf.org>
Content-Type: text/plain
Organization: Folly Consulting
Date: Mon, 14 Jan 2013 16:33:16 +0000
Message-Id: <1358181196.28723.7028.camel@mightyatom>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.3
Content-Transfer-Encoding: 7bit
Subject: [dtn-interest] Review of draft-irtf-dtnrg-tcp-clayer-04
X-BeenThere: dtn-interest@irtf.org
X-Mailman-Version: 2.1.12
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: Mon, 14 Jan 2013 16:34:46 -0000

A few comments on the TCP convergence layer draft:

Issues:
s1, Protocol Version:  Arguably, the version of the protocol defined
here is actually version 4.  The LENGTH message has been added to at
draft version 03 and some implementations (notably DTN2) do not
understand the LENGTH message.  Sending LENGTH messages to DTN2 will
break it - and DTN2 thinks the version is 3.

PS Adding the length message was a good thing!  I'll try and generate a
patch for DTN2 to at least accept the message and possibly send it.
  
s3, REFUSE BUNDLE:
- The specification should discuss whether the endpoints should impute
or not that reactive fragmentation should be carried out if a bundle is
refused part way through.  It would probably help if the receiver could
give a reason with the REFUSE_BUNDLE.  If the reason is that the
receiver now has the complete bundle and doesn't need the rest to be
sent then the sender can assume the bundle has been transmitted and act
accordingly.  If the reason is resource exhaustion at the receiver then
reactive bundle fragementation is desirable.  Finally the receiver may
have encountered a problem that requires the bundle to be retransmitted
in its entirety.  
- A reason code could be included with the REDUSE_BUNDLE message using
one of the currently unused flags to indicate its presence.  The default
semantics if the reason code is missing should be defined.

s4/s6.1: 
> A node MAY decide to re-attempt to establish the
>    connection, perhaps.  If it does so, it MUST NOT overwhelm its target
>    with repeated connection attempts.  Therefore, the node MUST retry
>    the connection setup only after some delay and it SHOULD use a
>    (binary) exponential backoff mechanism to increase this delay in case
>    of repeated failures.

This text in s4 should refer to s6.1 where an optional reconnection
delay can be specified with the shutdown message.  It should probably
recommend default initial delay before additional connection attempts if
the shutdown message doesn't specify it.  Also there should be some
words about what a node which has specified a reconnection delay that is
ignored by the receiving node.. ignore it? send a new immediate shutdown
maybe with a new, longer delay? Presumably the default is that the
receiving node should apply the exponential backoff starting from the
specified reconnection delay.

s9: Do we need IANA registries for:
- Protocol version (would want 'specification required' control)
- Message types
- Shutdown reason codes
- (If we add them) Refusal reason codes
- Flag definitions

Inclined to think we could get away with just protocol version.

Editorial/Nits:
s2.1, SDNV section: Should refer to RFC 6256 for more info on SDNVs.

s4.2:
> The bundle refusal capability may only be used iff both peers
>         indicate support for it in their contact header.
Should ad: .. and segment acknowledgement has been enabled.

s7: The RFC 2119 wording should be moved up to be section 2.

Notes re DTN2 implementation:
- Doesn't support BUNDLE_REFUSAL
- Doesn't support LENGTH messages and hemce will break if sent LENGTH
messages
- Never sends a reconnect delay (can accept them but ignores the
supplied value)

Regards
Elwyn Davies
(Sorry its a bit late)