multicast.tex
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:5k
源码类别:

通讯编程

开发平台:

Visual C++

  1. chapter{Multicast Routing}
  2. label{chap:multicast}
  3. This section describes the usage and the internals of multicast
  4. routing implementation in ns.
  5. We first describe the user interface to enable multicast routing,
  6. specify the multicast routing protocol to be used and the
  7. various methods and configuration parameters specific to the
  8. protocols currently supported in ns.
  9. Then we describe in detail the internals and the architecture of the
  10. multicast routing implementation in ns.
  11. section{Multicast API}
  12. label{sec:mcast-api}
  13. Multicast routing is enabled in the simulation by setting 
  14. the code{EnableMcast_} Simulator variable to 1
  15. before any node, link or agent objects are created.
  16. This is so that the subsequently created 
  17. node, link and agent objects are appropriately
  18. be configured during creation to support multicast routing.
  19. For example the link objects are created with interface labels that
  20. are required by some multicast routing protocols, 
  21. node objects are created with the 
  22. appropriate multicast classifier objects
  23. and agent objects are made to point to the 
  24. appropriate classifier at that node
  25. [need to point to descriptions of interfaces, multicast-enabled node
  26. and multicast classifiers].
  27. A multicast routing strategy is the mechanism by which
  28. the multicast distribution tree
  29. is computed in the simulation.
  30. The multicast routing strategy or protocol
  31. to be used is specified through the mrtproto command.
  32. A handle is returned to an object that has 
  33. methods and configuration parameters specific to a
  34. particular multicast routing strategy or protocol.
  35. A null string is returned otherwise.
  36. There are currently 4 multicast routing strategies in ns: Centralized
  37. Multicast, static Dense Mode, dynamic Dense Mode (i.e., adapts to
  38. network changes), Protocol Independent Multicast - Dense Mode.
  39. Currently only Centralized Multicast returns an object that has
  40. methods and configuration parameters.
  41. Need to describe how an agent joins and leaves multicast groups.
  42. Also need to talk about multicast addresses.
  43. An example configuration would be:
  44. begin{program}
  45. set ns [new Simulator]
  46. Simulator set EnableMcast_ 1 ; enable multicast routing;
  47.         set node0 [$ns node]
  48. end{program}
  49. subsection{Protocol Specific configuration}
  50. paragraph{Centralized Multicast}
  51. A Rendezvous Point (RP) rooted shared tree is built
  52. for a multicast group.
  53. The actual sending
  54. of prune, join messages etc.
  55. to set up state at the nodes is not simulated.
  56. A centralized computation agent is used
  57. to compute the fowarding trees and set up 
  58. multicast forwarding state, (*,G) at the relevant nodes
  59. as new receivers join a group.
  60. Data packets from the senders to a group
  61. are unicast to the RP.
  62. Note that data packets
  63. from the senders are unicast to the RP
  64. even if there are no receivers for the group.
  65. Description of available methods:
  66. shared tree
  67. setting nodes to be candidate RPs
  68.                 getting RP for group
  69. switching to source-specific trees
  70. Description of behavior under network dynamics
  71. mention causality violations
  72. Should give example configuration
  73. paragraph{Static Dense Mode}
  74. The Static Dense Mode protocol 
  75. is based on DVMRP with the exception
  76. that it does not adapt to network dynamics.
  77. It uses parent-child lists as in DVMRP
  78. to reduce the number of links over which the
  79. data packets are broadcast.
  80. Prune messages for a particular group
  81. are sent upstream by nodes in case they do not lead
  82. to any group members.
  83. These prune messages instantiate prune state
  84. in the appropriate upstream nodes to prevent multicast
  85. packets from being forwarded down links
  86. that do not lead to any group members.
  87. The prune state at the nodes times out
  88. after a prune timeout value that is 0.5s by default.
  89. The prune timeout is a class variable in Agent/DM.
  90. Should give example configuration.
  91. paragraph{Dynamic dense mode}
  92. DVMRP-like dense mode protocol that
  93. adapts to network changes is simulated.
  94. 'Poison-reverse' information
  95. (i.e. the information that a particular neighbouring node
  96. uses me to reach a particular network)
  97. is read from the routing tables of neighbouring nodes
  98. in order to adapt to network dynamics
  99. (DVMRP runs its own unicast routing protocol
  100. that exchanges this information).
  101. Prune Timeout value etc.
  102. Should give example configuration.
  103. paragraph{PIM dense mode}
  104. section{Internals of multicast routing}
  105. label{sec:mcast-internals}
  106. We first describe the main classes that are
  107. used to implement multicast routing and
  108. then describe how each multicast routing strategy
  109. or protocol is implemented.
  110. subsection{The classes}
  111. The main classes in the implementation are
  112. the McastProtoArbiter class and the McastProtocol class 
  113. that is the base class for the
  114. various multicast routing strategy and protocol objects.
  115. In addition some methods and configuration parameters
  116. have been defined in the Simulator, Node, Agent 
  117. and Classifier objects for multicast routing.
  118. paragraph{McastProtoArbiter class}
  119. paragraph{McastProtocol class}
  120. paragraph{Simulator class}
  121. paragraph{Node class}
  122. paragraph{Agent class}
  123. paragraph{Classifier class}
  124. subsection{Protocol Internals}
  125. label{sec:mcastproto-internals}
  126. We describe the implementation of the
  127. multicast routing protocol agents in this section.
  128. paragraph{Centralized Multicast}
  129. paragraph{Static Dense Mode}
  130. paragraph{Dynamic Dense Mode}
  131. paragraph{PIM Dense Mode}
  132. endinput