12.07.2015 Views

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

De<strong>ns</strong>e Mode <strong>The</strong> De<strong>ns</strong>e Mode protocol (DM.tcl) is an implement<strong>at</strong>ion of a de<strong>ns</strong>e–mode–like protocol. Depending onthe 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. Altern<strong>at</strong>ively, CacheMissMode can be set to dvmrp (loosely basedon DVMRP [30]). <strong>The</strong> main difference between these two modes is th<strong>at</strong> DVMRP maintai<strong>ns</strong> parent–child rel<strong>at</strong>io<strong>ns</strong>hips amongnodes to reduce the number of links over which d<strong>at</strong>a packets are broadcast. <strong>The</strong> implement<strong>at</strong>ion works on point-to-point linksas well as LANs <strong>and</strong> adapts to the network dynamics (links going up <strong>and</strong> down).Any node th<strong>at</strong> receives d<strong>at</strong>a for a particular group for which it has no dow<strong>ns</strong>tream receivers, send a prune upstream. A prunemessage causes the upstream node to initi<strong>at</strong>e prune st<strong>at</strong>e <strong>at</strong> th<strong>at</strong> node. <strong>The</strong> prune st<strong>at</strong>e prevents th<strong>at</strong> node from sending d<strong>at</strong>afor th<strong>at</strong> group dow<strong>ns</strong>tream to the node th<strong>at</strong> sent the original prune message while the st<strong>at</strong>e is active. <strong>The</strong> time dur<strong>at</strong>ion forwhich a prune st<strong>at</strong>e is active is configured through the DM class variable, PruneTimeout. A typical DM configur<strong>at</strong>ion isshown below:DM set PruneTimeout 0.3DM set CacheMissMode dvmrp$<strong>ns</strong> mrtproto DM;# default 0.5 (sec);# default pimdmShared Tree Mode Simplified sparse mode ST.tcl is a version of a shared–tree multicast protocol. Class variable arrayRP_ indexed by group determines which node is the RP for a particular group. For example:ST set RP_($group) $node0$<strong>ns</strong> mrtproto STAt the time the multicast simul<strong>at</strong>ion is started, the protocol will cre<strong>at</strong>e <strong>and</strong> i<strong>ns</strong>tall encapsul<strong>at</strong>or objects <strong>at</strong> nodes th<strong>at</strong> havemulticast senders, decapsul<strong>at</strong>or objects <strong>at</strong> RPs <strong>and</strong> connect them. To join a group, a node sends a graft message towards theRP of the group. To leave a group, it sends a prune message. <strong>The</strong> protocol currently does not support dynamic changes <strong>and</strong>LANs.Bi-directional Shared Tree Mode BST.tcl is an experimental version of a bi–directional shared tree protocol. As i<strong>ns</strong>hared tree mode, RPs must be configured manually by using the class array RP_. <strong>The</strong> protocol currently does not supportdynamic changes <strong>and</strong> LANs.30.2 Internals of Multicast RoutingWe describe the internals in three parts: first the classes to implement <strong>and</strong> support multicast routing; second, the specificprotocol implement<strong>at</strong>ion details; <strong>and</strong> finally, provide a list of the variables th<strong>at</strong> are used in the implement<strong>at</strong>io<strong>ns</strong>.30.2.1 <strong>The</strong> classes<strong>The</strong> main classes in the implement<strong>at</strong>ion are the class mrtObject <strong>and</strong> the class McastProtocol. <strong>The</strong>re are alsoexte<strong>ns</strong>io<strong>ns</strong> to the base classes: Simul<strong>at</strong>or, Node, Classifier, etc. We describe these classes <strong>and</strong> exte<strong>ns</strong>io<strong>ns</strong> in this subsection.<strong>The</strong> specific protocol implement<strong>at</strong>io<strong>ns</strong> also use adjunct d<strong>at</strong>a structures for specific tasks, such as timer mechanisms by detailedde<strong>ns</strong>e mode, encapsul<strong>at</strong>ion/decapsul<strong>at</strong>ion agents for centralised multicast etc.; we defer the description of these objects to thesection on the description of the particular protocol itself.264

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!