[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Flow label versus Extension header - protocol itself



On 7-mei-2005, at 1:31, Erik Nordmark wrote:

Anyway, in a post I don't think anybody read I suggested that we should use a sort of demux negotation. Since demux can happen on:
- unique locator sets
- transport protocol information (port numbers)
- flow label
- demux option in the packet

I did read that message.
My concerns with this suggestion are:
1. Having multiple mechanisms plus some fallback rules seems very complex. We should figure out how to make a single mechanism work.

Well, obviously a single mechanism is always gong to be less complex, but what I'm proposing here really isn't all that bad. In its simplest form, the receiver only has to transmit a fixed capabilities message and demux based on a shim header. The sender needs to parse a capabilities message and perform the following check:


if (demuxPossibleOnLocators() == true)
sendPacket();
else if (demuxPossibleOnPort() == true && (proto == TCP || proto == UDP))
sendPacket();
else
sendPacketWithShim6Option();


However, the possible gains are substantial: implementers now get to add unique locator / transport / flow label (de)multiplexing to their stuff if and when it makes sense for them, and this capability will be used whenever it's available at both ends.

Simply going for the option means adding bytes to all packets forever. This is especially harmful when future developments such as unreachable ULIDs or rehoming for traffic engineering purposes happen.

2. Peeking at the transport information is a no-no in my mind. We want this to be transport independent.

There is a difference in using information when it's available and depending on the information to be there.