[BEHAVE] Comments on DCCP NAT

Gorry Fairhurst <gorry@erg.abdn.ac.uk> Sat, 15 March 2008 17:29 UTC

Return-Path: <behave-bounces@ietf.org>
X-Original-To: ietfarch-behave-archive@core3.amsl.com
Delivered-To: ietfarch-behave-archive@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 6D9513A67FC; Sat, 15 Mar 2008 10:29:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.308
X-Spam-Level:
X-Spam-Status: No, score=-101.308 tagged_above=-999 required=5 tests=[AWL=-1.171, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_ORG=0.611, MIME_8BIT_HEADER=0.3, RDNS_NONE=0.1, USER_IN_WHITELIST=-100]
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 P0meW+sTcw5c; Sat, 15 Mar 2008 10:29:35 -0700 (PDT)
Received: from core3.amsl.com (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7B3763A6936; Sat, 15 Mar 2008 10:29:35 -0700 (PDT)
X-Original-To: behave@core3.amsl.com
Delivered-To: behave@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7D8B728C136 for <behave@core3.amsl.com>; Thu, 13 Mar 2008 14:26:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
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 caSi8vFMMjnG for <behave@core3.amsl.com>; Thu, 13 Mar 2008 14:26:08 -0700 (PDT)
Received: from erg.abdn.ac.uk (unknown [IPv6:2001:630:241:204:203:baff:fe9a:8c9b]) by core3.amsl.com (Postfix) with ESMTP id 0CC883A6CC2 for <BEHAVE@IETF.ORG>; Thu, 13 Mar 2008 14:26:07 -0700 (PDT)
Received: from ra-gorry.erg.abdn.ac.uk (ra-gorry.erg.abdn.ac.uk [139.133.204.42]) (authenticated bits=0) by erg.abdn.ac.uk (8.13.4/8.13.4) with ESMTP id m2DLNaKE018321 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Thu, 13 Mar 2008 21:23:42 GMT
Message-ID: <47D99B57.80709@erg.abdn.ac.uk>
Date: Thu, 13 Mar 2008 17:23:35 -0400
From: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Organization: School of Engineering, University of Aberdeen, Scotland
User-Agent: Thunderbird 2.0.0.12 (Macintosh/20080213)
MIME-Version: 1.0
To: BEHAVE@IETF.ORG, RĂ©mi Denis-Courmont <rem@videolan.org>
X-ERG-MailScanner: Found to be clean
X-ERG-MailScanner-From: gorry@erg.abdn.ac.uk
X-Mailman-Approved-At: Sat, 15 Mar 2008 10:29:33 -0700
Cc: Gorry Fairhurst <gorry@erg.abdn.ac.uk>
Subject: [BEHAVE] Comments on DCCP NAT
X-BeenThere: behave@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
Reply-To: gorry@erg.abdn.ac.uk
List-Id: mailing list of BEHAVE IETF WG <behave.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/pipermail/behave>
List-Post: <mailto:behave@ietf.org>
List-Help: <mailto:behave-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/behave>, <mailto:behave-request@ietf.org?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Sender: behave-bounces@ietf.org
Errors-To: behave-bounces@ietf.org

Remi,

As I said, I think this is a useful document to produce. I do have a few 
comments on your draft, as below.

Gorry

---
The Abstract seems to be a little short on motivation. Could we ad 
something like the text from  Behave TCP to indicate who should read this:

    such as peer-to-peer applications
    and on-line games, to work consistently.  Developing NATs that meet
    this set of requirements will greatly increase the likelihood that
    these applications will function properly.

- I think it could ALSO be good to state up-front that these 
requirements resemble those recommended for TCP.
---
Section 4.2 (simultaneous open).

Simultaneous Open updates DCCP by adding a new packet type, DCCP-Listen. 
The  DCCP-Listen packet communicates the information necessary to 
uniquely identify a DCCP session. NATs may utilise the connection 
information (address, port, Service Code) to establish local forwarding 
state.
---
Section 4.3
- Not sure I understand the wording of the REQ-4 requirement.
---
Section 6
It could also be appropriate to indicate that the payload of a DCCP-Data 
packet is usually a natural transmission unit, rather than a byte-stream 
as in TCP. The size is therefore determined by the application using 
DCCP and can vary from packet to packet.
---

Two other things  that I had in mind both follow the rule of don't 
change the other end-to-end protocol header fields:

1) Partial Coverage.

It is worth saying something about partial coverage:

DCCP supports partial checksum coverage. A NAT MAY perform incremental 
changes to the packet checksum field, as for IETF-defined protocols. 
However, if it needs to recalulate a new checksum value it MUST use the 
method described in section 9.2 of RFC4340.

The Checksum Coverage field in the DCCP header determines the parts of 
the packet that are covered by the Checksum field.  This always includes 
the DCCP header and options, but some or all of the application data may 
be excluded as determined on a packet-by-packet basis by the 
application. A NAT SHOULD NOT modify the Checksum field in the packet 
header. Changing this value in the network violates the integrity 
assumptions at the receiver and may result in unpredictable application 
behaviour.

2) Service Codes.

DCCP specifies a Service Code as a 4-byte value (32 bits) that describes 
the application-level service to which a client application wishes to 
connect [RFC4340]. This value MUST NOT be modified by the NAT. 
Implementation and guidance on use of Service Codes by middleboxes, 
including NATs can be found in [draft-ietf-dccp-serv-codes-04.txt].

<Note: The SC document will be updated to reflect this, and will also 
update the caution that SC can not be guarenteed to be associated with 
the applications that they claim to describe>.
---

Editorial NiTs that you may like to take-up in the next revision:

---
Introduction:
" handling datagrams and flows for application using the:
                                               ^
- Insert "s".
---
Introduction:
"enables when either or both"...
  ^^^^^^^
- This seems like the wrong word. Are we say it is "needed"
----
Introduction:
"[I-D.fairhurst-dccp-behave-update]"
- this was renamed [draft-ietf-dccp-simul-open-00.txt].
---
Section 6
"   modifying the payload of DCCP packets present a significant"
                                                  ^
-Please insert "s" (the "presents" refers to the modification).
---
Section 8
"Both sides of the DCCP session need must be updated to use"
                                 ^^^^
- delete "need"?
"A method MUST be defined to negociate when to use tunnelling."
           ^^^^
- Is this a requirement or an assertion? (i.e. "MUST" or "must")
---
Section 9
"   paassive endpoint in the connection establishment."
      ^
- remove "a"
---
Section 9
- Since the last comment, simultaneous open IS a working group document, 
therefore "the DCCP working group is defining an update to DCCP that 
will support this mode".
---
Section 8
"   A DCCP transport-specific solution is specified by
     [I-D.phelan-dccp-natencap]."
- A procedural note: This was not proposed as a working group item, 
therefore it is only an example of one proposal - there could be others.
---
_______________________________________________
Behave mailing list
Behave@ietf.org
https://www.ietf.org/mailman/listinfo/behave