need for flow support in internetwork layer

woody@sparta.com (Robert "Woody" Woodburn) Fri, 11 December 1992 14:26 UTC

Received: by munnari.oz.au (5.83--+1.3.1+0.50) id AA11191; Sat, 12 Dec 1992 01:26:59 +1100 (from owner-Big-Internet)
Return-Path: <owner-Big-Internet@munnari.oz.au>
Received: from SPARTA.COM by munnari.oz.au with SMTP (5.83--+1.3.1+0.50) id AA11134; Sat, 12 Dec 1992 01:26:25 +1100 (from woody@sparta.com)
Received: from [192.48.111.116] by sparta.com (5.65/1.34) id AA25583; Fri, 11 Dec 92 09:27:30 -0500
Date: Fri, 11 Dec 1992 09:27:30 -0500
From: woody@sparta.com
Message-Id: <9212111427.AA25583@sparta.com>
Received: by 630mp.noname (4.1/SMI-4.1) id AA00914; Fri, 11 Dec 92 09:23:17 EST
To: fbaker@acc.com
Cc: craig@aland.bbn.com, big-internet@munnari.oz.au, huston@ps73.ako.dec.com
In-Reply-To: Fred Baker's message of Thu, 10 Dec 92 14:27:48 PST <9212102227.AA11240@saffron.acc.com>
Subject: need for flow support in internetwork layer

This may be an aside, but I thought I'd comment anyway...

    I wonder if you are referring to my comments of a few weeks ago here.
    If so, I think we have to agree that transport layer information can be
    relied on if and only if sufficient such information is present in
    every message to associate it with the pre-negotiated flow - ie, no
    network layer fragmentation (read: MTU discovery is supported in the
    routers and used by the hosts). That has some implications for CLNP if
    IPv7 is a flavor of CLNP.

IDPR has had the same problem in its flows.  The existing gated implementation
ignores the problem, by only looking at addresses, not port numbers, although
the hooks are there to also use ports.  Fragmentation makes it impossible to
identify a particular session (which seems to be a reasonable granularity for
a flow), and because we were using encapsulation, fragmentation became more
of a problem.  (no, we didn't implement path discovery for a variety of
reasons...)  I believe I discuss some of these issues in RFC1241, which might 
be useful if you haven't read it.

    3)	given that we do, how do we negotiate them?

Do they have to be negotiated?  I made the flow ID 32 bits in 1241, but that
was to handle problems with ICMP.  Dave Mills didn't like this, but I was
thinking of hop-by-hop negotiation at the time.  Now I think that the benefits
of a short identifier are outweighed by the complexity of the ID negotiation.
And besides, if ICMP is going to be changed to return more of the header, the
need for short flow IDs goes away.  IDPR uses a 64bit flow ID, which is
assigned by a policy gateway.  the first part of the ID is the unique gateway
identifier, and the other 32 bits are a locally assigned number.  Would
assignment of globally unique identifiers to flows be out of the question?

When Dave and I bounced this back and forth, he convinced me that dynamic
generation of a truly globally unique ID was a very hard problem.  Generation
of a 64bit "ticket-to-ride" could be done through "ticket servers" who own a
portion of the space, but there could be a lot of overhead there.  Going one
step further to something more like IDPR, if a fixed length part is globally
assigned, then what happens when things get bigger than we ever thought they
would in another decade?

    4)	given that we do, how do we identify traffic as relating to them?

	There are two obvious approaches: a flow identifier and a
	combination of information that would be matched by a fast path
	matcher.

IDPR uses a combination.  It matches on header information to assign the
packet to a flow and encapsulate it.  Subsequent gateways only look at
the flow ID.

wood y