Subject: Re: [nat66] NPTv6 deals with "packets", not with "datagrams" - to be corrected after draft-14

From: Fred Baker <[email-masked]>
Date: Mon, 2 May 2011 09:54:40 -0700

On May 2, 2011, at 5:22 AM, Rémi Després wrote:

> Fred.
> 
> On March 11, 2011 Rémi Després wrote (about the draft -12 in which "datagram" is used interchangeably with "packet"):
>> ...
>> 3.2 and remainder of the document.
>> The word datagram seems to be used instead of packet:
>> - RFC 2460 doesn't use the word datagram for IPv6, even in case of fragmentation 
>> - In any case, NPTv6 operates individually on packets without concern with reassembling fragments.
> 
> As draft -14 has replaced all occurrences of "packet" by "datagram", there must have been a misunderstanding.
> 
> Since NPTv6 isn't concerned about reassembling transport-layer datagrams (a significant advantage over NAPT66 whose advantages are on a different ground), the word to be used throughout in the draft  is "packet". 
> In my understanding, this needs to be fixed in a next version. 

I'm not planning on a next version.

I also am confused by your use of the term "datagram". A datagram is not a transport layer construct, it's a network layer construct. http://dictionary.reference.com/browse/datagram

We are absolutely discussing datagrams here. Every IP packet is a datagram.

---

From: Fred Baker <[email-masked]>
Date: Tue, 3 May 2011 08:03:56 -0700

On May 3, 2011, at 1:38 AM, Rémi Després wrote:
>> I also am confused by your use of the term "datagram". A datagram is not a transport layer construct,
> 
> Isn't User Datagram Protocol a transport layer protocol?

Yes, and unless the datagram is carried in IP, it's not actually a datagram. I refer you to the definition of the term. A datagram is self-addressed and contains all of the information necessary to deliver it from its source to its destination.

>> it's a network layer construct. http://dictionary.reference.com/browse/datagram
> 
> To know what a datagram is in IETF, RFC's are IMHO better than an online dictionary

If you want to play that game, so be it. The word "datagram" (along with "catenet", which has largely been replaced by the term "internet", in lwer case) was common in the 1970's and 1980's, and the definition was well known to those present. So I don't find a place that says "when I say 'datagram' I mean '...'" in the RFC series - that was in published conference papers circa 1972 when the datagram model was first being proposed as an alternative to virtual circuits. What I do find, however, is this in IEN #48. The Internet Engineering Notes (IENs) were  a parallel document track used in the 1970's. IEN #48 is "The Catenet Model for Internetworking", written by Vint Cerf. It says, among its assumptions, that 

	it is assumed that the
	participating network allows switched access so that any source
	computer can quickly enter datagrams for successive and different
	destination computers with little or no delay (i.e., on the order
	of tens of milliseconds or less switching time).

	Under these assumptions, we can readily include networks which
	offer "datagram" interfaces to subscribing host computers.  That
	is, the switching is done by the network based on a destination
	address contained in each datagram passing across the host to
	network interface.

A datagram is, unlike a packet carried in a virtual circuit, a message that carries its own destination address and can therefore be routed by the network without setting up such a circuit first.

> I hope the IESG won't accept your new interpretation.

Well, if they have a problem with it, they can ask the designers of the architecture for their opinions. "Datagram" is a well known and well understood term.

---

From: JFC Morfin <[email-masked]>
Date: Tue, 03 May 2011 18:21:20 +0200

Louis,
an interesting discussion between Fred Baker and Rémi Després that 
you could may be clarify about your catenet and datagram. Since this 
(NAT66) is at the core of the IPv6 deployment your help might be precious.
----
Louis,
une discussion interessant entre Fred Baker et Rémi Després que tu 
pourrais sans doute aider à claifier au sujets de tes catenet et 
datagrames. Puisque le sujet (NAT66) est au coeur du déploiement 
d'IPv6 ton aide pourrait être précieuse. L'idée de Fred est de 
permettre une conversion de l'adresse réseau IPv6 actuelle (mobiles, 
déménagement, reconfiguration, multihoming, multi-ISP) avec une 
adresse réseau interne.

Tu retrouveras le Draft de Fred sous : 
http://tools.ietf.org/rfcdiff?url1=draft-mrw-nat66-12&url2=draft-mrw-nat66-14

Cela m'interesse bougrement car c'est net, clair et simple et peut 
facilement être utilisé à mon niveau IUI (côté utilisateur/côté 
réseau) et aider le support de IID (IDv6) de façon transparente en 
utilisant des noms de domaine pour porter la partie IDv6 utilisateur, 
sous IPv6 ou IPv4.

jfc

At 17:03 03/05/2011, Fred Baker wrote:
>From: Fred Baker <[email-masked]>
>To: Rémi Després <[email-masked]>
>Cc: IESG <[email-masked]>, NAT66 HappyFunBall <[email-masked]>
>Subject: Re: [nat66] NPTv6 deals with "packets",
>         not with "datagrams" - to be corrected after draft-14
>
>
> >> I also am confused by your use of the term "datagram". A 
> datagram is not a transport layer construct,
> >
>Yes, and unless the datagram is carried in IP, it's not actually a 
>datagram. I refer you to the definition of the term. A datagram is 
>self-addressed and contains all of the information necessary to 
>deliver it from its source to its destination.
>
> >> it's a network layer construct. 
> http://dictionary.reference.com/browse/datagram
> >
>If you want to play that game, so be it. The word "datagram" (along 
>with "catenet", which has largely been replaced by the term 
>"internet", in lwer case) was common in the 1970's and 1980's, and 
>the definition was well known to those present. So I don't find a 
>place that says "when I say 'datagram' I mean '...'" in the RFC 
>series - that was in published conference papers circa 1972 when the 
>datagram model was first being proposed as an alternative to virtual 
>circuits. What I do find, however, is this in IEN #48. The Internet 
>Engineering Notes (IENs) were  a parallel document track used in the 
>1970's. IEN #48 is "The Catenet Model for Internetworking", written 
>by Vint Cerf. It says, among its assumptions, that
>
>         it is assumed that the
>A datagram is, unlike a packet carried in a virtual circuit, a 
>message that carries its own destination address and can therefore 
>be routed by the network without setting up such a circuit first.
>
>Well, if they have a problem with it, they can ask the designers of 
>the architecture for their opinions. "Datagram" is a well known and 
>well understood term.

---

From: Dave Thaler <[email-masked]>
Date: Tue, 3 May 2011 17:03:36 +0000

RFC 768 (the UDP RFC) uses the term "user datagram" to refer to the
transport layer payload and "internet datagram" to refer to the network layer
packet.

(It obviously does not reference http://dictionary.reference.com/browse/datagram
and presumably predates it by decades.)

In any case, the point is that "datagram" by itself is used in a layer-agnostic 
fashion and requires an adjective prefix to be specific, at least as of 1980.

-Dave

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]] On Behalf Of
> Fred Baker
> Sent: Tuesday, May 03, 2011 8:04 AM
> To: Rémi Després
> Cc: IESG; NAT66 HappyFunBall
> Subject: Re: [nat66] NPTv6 deals with "packets", not with "datagrams" - to be
> corrected after draft-14
> 
> 
> Yes, and unless the datagram is carried in IP, it's not actually a datagram. I
> refer you to the definition of the term. A datagram is self-addressed and
> contains all of the information necessary to deliver it from its source to its
> destination.
> 
> If you want to play that game, so be it. The word "datagram" (along with
> "catenet", which has largely been replaced by the term "internet", in lwer
> case) was common in the 1970's and 1980's, and the definition was well
> known to those present. So I don't find a place that says "when I say
> 'datagram' I mean '...'" in the RFC series - that was in published conference
> papers circa 1972 when the datagram model was first being proposed as an
> alternative to virtual circuits. What I do find, however, is this in IEN #48. The
> Internet Engineering Notes (IENs) were  a parallel document track used in
> the 1970's. IEN #48 is "The Catenet Model for Internetworking", written by
> Vint Cerf. It says, among its assumptions, that
> 
> 	it is assumed that the
> A datagram is, unlike a packet carried in a virtual circuit, a message that
> carries its own destination address and can therefore be routed by the
> network without setting up such a circuit first.
> 
> Well, if they have a problem with it, they can ask the designers of the
> architecture for their opinions. "Datagram" is a well known and well
> understood term.
> 
> _______________________________________________
> nat66 mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/nat66

---

From: Fred Baker <[email-masked]>
Date: Tue, 3 May 2011 13:31:36 -0700

On May 3, 2011, at 11:02 AM, Rémi Després wrote:

>> I refer you to the definition of the term. A datagram is self-addressed and contains all of the information necessary to deliver it from its source to its destination.
> 
> In hosts, which perform datagram reassembly, that's correct.

You really don't understand. The distinction is between datagram networks and virtual circuit (in context, SNA and X.25) networks. A transport PDU could be carried by a virtual circuit from here to there, or it could be carried in a datagram over a connectionless network. TCP data is carried in datagrams, and UDP data is carried in datagrams. NFS routinely used fragmented UDP packets to carry its data, but when UDP was designed, that was not the intended model; anyone who has done very much UDP-with-fragmentation will tell you that it operationally doesn't work very well either if there is any kind of bottleneck in the path.

I found a formal definition of the term in RFC 1594:

Datagram
        A self-contained, independent entity of data carrying
        sufficient information to be routed from the source
        to the destination computer without reliance on earlier
        exchanges between this source and destination computer and
        the transporting network.

Is this really worth arguing about? I use the term "datagram" because the meaning is important in the context; I'm playing with the prefixes in the addresses in the datagram header. I don't use the term "packet" because it's an empty word; it can be applied at any layer (an ATM "cell" is a packet with a certain format, an IP datagram is a packet with a certain format, a LAPB or Frame Relay "frame" is a packet with a certain format, and a TCP segment is a packet with a certain format). A packet is a quantum of data moving as a single unit in the network at the layer of interest. I'm sorry it bothers you. What NPTv6 deals with is IP datagrams. You very correctly called me on using both terms in the document, and in response to your comment I corrected the usage.

---

From: Scott Brim <[email-masked]>
Date: Tue, 3 May 2011 16:54:59 -0400

Remi: One of the essential characteristics of a "datagram" is that it
carries all information necessary for it to be delivered _across a network_
... that is, it contains information that the network can use for routing
and forwarding decisions.  The network, i.e. the Internet.  The functional
determination of whether something is a datagram is made in the network, at
the IP layer, by network components.

Dave: "user datagram" as in UDP refers to exposing the datagram interface to
the user.  "This User Datagram  Protocol (UDP) is defined to make available
a datagram mode of packet-switched computer communication": a "datagram
mode" is "made available", that is, the user can send datagrams directly
instead of offering a stream or a file that is magically chopped up into
datagrams for him.  "User datagram" is not a new meaning of datagram.

OK?

swb

---

From: Fred Baker <[email-masked]>
Date: Tue, 3 May 2011 14:33:33 -0700

On May 3, 2011, at 1:54 PM, Scott Brim wrote:

> Dave: "user datagram" as in UDP refers to exposing the datagram interface to the user.  "This User Datagram  Protocol (UDP) is defined to make available a datagram mode of packet-switched computer communication": a "datagram mode" is "made available", that is, the user can send datagrams directly instead of offering a stream or a file that is magically chopped up into datagrams for him.  "User datagram" is not a new meaning of datagram.

Yes. I find myself looking at the various definitions of the term, in IEN48, RFC 1594, and so on, and then looking at the header defined in RFC 768, and looking diligently for the destination address.