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

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



At 01:17 PM 2/28/01, Hugh LaMaster wrote:
>The end-user still has to have a UMTP-enabled app, though, right?

One possible approach is for each multicast application to support UMTP (or 
whatever UDP-based tunneling protocol ends up being defined for automatic 
tunneling).  Another possible approach is for the helper app, shell or 
plugin that *launches* the application to support this tunneling 
protocol.  For example, if you launch your application from a SDP session 
browser, then this browser can perform the tunneling itself.  The browser 
receives incoming tunneled traffic, and re-multicasts it locally (i.e., 
with TTL 0) where it can be received by existing multicast applications 
(without modifying them).

For example, the "multikit" multicast session browser (available for free 
from <http://www.live.com/multikit/>) already has a tunneling option, and 
several people have used this to tunnel multicast sessions over 
non-multicast-capable routers. (In this case, the tunneling isn't 
automatic; instead, the user has to explicitly specify a UMTP 'slave' 
(e.g., a liveGate server) that's located on a separate, multicast-enabled 
network.)

>Do UMTP-enabled versions of, say, vic and vat exist today?

No, although - as noted above - they can (& do) work without change by 
having the launcher tool do the tunneling.

>Do existing apps offer automatic switchover (start
>with multicast, switch to UMTP if nothing happens?)

No, although "multikit" sort of does the reverse: It lets the user start up 
a (non-automatic) tunnel explicitly, but turns it off if it detects that 
it's not necessary.

In practice, I don't think that deploying application support for multicast 
tunneling is going to be a significant hurdle.  The most widely deployed 
media players (e.g., RealPlayer and Windows Media Player) already have 
mechanisms for automatically downloading new plugins on demand.  (Ditto for 
web browser plugins.)  Just as long as we don't require *OS* 
upgrades...  In contrast, the biggest hurdle is going to be to persuade the 
router vendors to bundle tunneling slave support with their PIM-SSM 
implementations.

>So, it is a big deal to ask the router
>operating system to catch all the packets of a certain type and
>process them in software, and it opens up the possibility of DoS,
>on-purpose, or perhaps accidentally.  If the core router could
>dumbly forward all request packets to a nearby helper, I would
>think that would help a lot.

Agreed.  Router vendor buy-in is (obviously) essential here, and the 
tunneling protocol should be designed with ease of router support in 
mind.  (For example, we've already heard some feedback that it's easier for 
routers to send tunneled multicast packets to the end nodes using 
encapsulation (IP/UDP) rather than header rewriting+adding a trailer (which 
is what UMTP's "DATA" command does now).

One possibly useful way to proceed now would be to break the problem up 
into three parts:
1/ The UDP-based *signalling* protocol that end nodes (tunnel 'masters') 
would use to join (with periodic keep-alives) and leave multicast 
groups.  This could be something similar to UMTP's "JOIN_GROUP" and 
"LEAVE_GROUP" commands.
2/ The UDP-based *data delivery* protocol that tunnel 'slaves' (ideally, 
compliant routers) would use to deliver multicast data to the end 
nodes.  (This might just be a simple encapsulation protocol.)
3/ One or more possible 'router behaviors' that would implement automatic 
tunneling.  The current draft talks about one such 'behavior': "Upstream 
router interception".  This seems like the simplest behavior to support, 
but one could imagine extending it to support things like more complicated 
hand-off, etc...

The key point here is that we can define the end-user signalling and 
delivery protocols (1/ and 2/) for automatic tunneling, while leaving room 
for some flexibility as to how routers actually implement this (i.e., 3/).


>UMTP seems like a lot of work to develop/debug/deploy.  I think
>the same level of effort applied to deploying native multicast
>might bring more multicast users online.

Perhaps, but its effort that would be applied in different places.  There's 
nothing to prevent us from attacking both fronts; in fact, there are good 
reasons why we should do this.  There are lots and lots of legacy first-hop 
routers out in the Internet that don't support native multicast.  They are 
never going to get upgraded to support multicast unless we provide some 
incentive.  The availability of UDP-tunneled multicast (which allows all of 
these users to experience multicast sessions ASAP) can provide such an 
incentive, by creating demand for the deployment of native support (to 
improve performance).  "Build it, and they will come" :-)

         Ross.