Dense Mode

The Dense Mode protocol (DM.tcl) is an implementation of a dense-mode-like protocol. Depending on the value of DM class variable CacheMissMode it can run in one of two modes. If CacheMissMode is set to pimdm (default), PIM-DM-like forwarding rules will be used. Alternatively, CacheMissMode can be set to dvmrp (loosely based on DVMRP [31]). The main difference between these two modes is that DVMRP maintains parent-child relationships among nodes to reduce the number of links over which data packets are broadcast. The implementation works on point-to-point links as well as LANs and adapts to the network dynamics (links going up and down).

Any node that receives data for a particular group for which it has no downstream receivers, send a prune upstream. A prune message causes the upstream node to initiate prune state at that node. The prune state prevents that node from sending data for that group downstream to the node that sent the original prune message while the state is active. The time duration for which a prune state is active is configured through the DM class variable, PruneTimeout. A typical DM configuration is shown below:

        DM set PruneTimeout 0.3           # default 0.5 (sec);
        DM set CacheMissMode dvmrp        # default pimdm;
        $ns mrtproto DM

Tom Henderson 2011-11-05