UDP Packet Reflector Hacks

Rum.c is a simple unicast packet reflector I wrote to let some folks on the ROADS project use multicast tools for conferencing when many of them aren't on the mbone. Setting up mrouters looked too much like hard work, as did setting up several copies of monstermash for each participant...

Rum doesn't require that you preconfigure it with the addresses of the conference participants. Instead it simply adds anyone who sends it a udp packet to the list of participants unless it has reached its maximum number of participants. If a participant becomes silent for five minutes or longer rum will remove them from the list.

At first rum only handled a single port and so only supported tools such as wb and nte. This didn't work for vic or vat since they use a pair of ports, (because they implement RTP). This version has been extended to handle a pair of ports when given the -rtp command line flag.

You run rum like this:

rum 5556

to reflect port 5556. This would be OK for wb. Assuming you were running rum on reflector.refl.net, conference participants would launch their copies of wb using:
wb reflector.refl.net/5556

For vic or vat you would need:

rum -rtp 5556

since they use a pair of ports, because they implement RTP.

Mug.c is a version of rum.c with multicast added so that participants who are on the mbone may do The Decent Thing and save all that bandwidth. It is identical in operation to rum except that when given the -m flag with a multicast address/port/ttl combination it will add that multicast group to the list of participants.

N.B. Rum will probably run on Windows 95 but mug will not since it requires that the system supports turning multicast loopback off.


Written by Julian Highfield (J.C.Highfield@lboro.ac.uk)