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

Re: New Internet Draft on automatic (end-user) tunneling for SSM



At 07:26 AM 2/24/01, Tom Pusateri wrote:
>But tunneling can be done in many ways including encapsulation,
>rewriting headers, adding source route options, etc.
>
>So when talking about overhead, please be more clear about exactly
>type of tunneling is going on.

OK, fair enough.  To recap: The 'tunneling' that we are talking about here 
is UDP multicast tunneled over UDP unicast - i.e., using a UDP unicast 
packet A to (somehow) carry the semantics of a UDP multicast packet B, so 
that the node that receives packet A can reconstruct (as appropriate) the 
semantics of B (for delivery to the end application).  Once again, it's 
important to stress how important it is that the 'outer' packet be ordinary 
UDP (unicast) - because this allows every computer in the world to receive 
(a large class of) IP multicast sessions, without requiring that their 
users install a new networking stack, or worse, a new OS.

If you have both a "router developer's hat" and an "application developer's 
hat", then you should wear the latter hat when thinking about UMTP, because 
it is simply a protocol originally designed for tunneling between agents 
that are capable of running as ordinary applications.

A UMTP "DATA" packet is simply a UDP unicast packet, whose UDP payload 
contains two things:
         - the payload from the original UDP multicast packet, and
         - a 16-byte trailer that describes the semantics of the multicast 
packet,
           in particular: its destination group address, its SSM source 
address,
             and its intended destination UDP port.
So, the overhead of UMTP - when tunneling a SSM packet - is exactly 16 
bytes.  (If desired, this could probably be reduced some more with a 
'UMTP-light' that omits things (like the ttl field) that aren't necessary 
for the special case of router<->end-node tunneling.)

>If UMTP rewrites the original header plus adds the trailer,
>it adds just the trailer which is 12 or 16 bytes.

That's correct (although - wearing an "application developer's hat" - I 
prefer not to think of it as 'rewriting the original header').  It's just 
taking the payload from the original UDP multicast packet, adding a (12 or 
16-byte) trailer, then resending it in a new UDP unicast packet.  People 
who wear "router developer's hats" are welcome to think of this another way 
if they prefer :-)

>I would request that Ross clarify draft-finlayson-umtp-05.txt
>about the use of encapsulation and header rewriting.

Will do.  It's clear that I've confused people by my (apparently incorrect) 
use of the term "encapsulation".  My apologies; I'll fix this in future 
versions.


>GRE adds: 24 bytes (20 byte IP + 4 byte GRE header)

Except remember that our goal here is UDP(multicast)-over-UDP(unicast) 
tunneling.  If you were to use GRE to encapsulate (using the term correctly 
this time :-) a UDP multicast packet within a UDP unicast packet, then this 
would add 32 bytes (20 byte IP + 8 byte UDP + 4 byte GRE header).

>IPIP adds: 20 bytes (20 byte IP)

I don't think IPIP is an option here, because the 'outer' packet needs to 
be UDP.

>A clarification on this would be great.

I hope this helps!  (I'll also be giving a spiel on UMTP as part of the 
automatic tunneling presentation during MBONED in Minneapolis.)


>Of all of these options, GRE or IPIP are simplest to implement in hardware
>which will give you the performance and scaling needed for large rollouts.

Right, although we also need to think about ease of deployment for end 
users, which seems to dictate the use of a UDP-based tunneling protocol, 
which would rule out IPIP.

As for GRE (within UDP unicast): If routers can, indeed, implement this 
significantly more efficiently than UMTP "DATA" packets, and we don't mind 
the extra overhead (32 bytes for GRE versus 16 bytes for UMTP (or less for 
'UMTP-light')), then I agree that we seriously consider using GRE 
instead.  (Note, though, that UMTP 'control' packets - or something like 
them - would still be needed in the reverse direction - to signal 'joins' 
(plus periodic keep-alives) and 'leaves'.)

I'm looking forward to getting more feedback from router folks about all 
this...

         Ross.