<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<!-- MUX.html   (C) K. J. Turner        18/12/14  -->

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

  <title>Multicasting</title>

  <link rev="made" href="http://www.cs.stir.ac.uk/~kjt/"/>

  <script type="text/javascript" language="JavaScript">
<!--
  var simulator;
  var serviceMode;

  function set() {
    serviceMode = document.settings.serviceMode.value;
    simulator.setParameter("serviceMode", serviceMode);
    simulator.restart();
  }
//-->
  </script>

</head>

<body background="simulator.jpeg"
 onload="simulator=document.ProtocolSimulator; set();">

  <div style="text-align: center">

    <h1>Multicasting</h1>

    <img src="simulator.gif" alt="Simulator Logo"/>

  </div>

  <h2>Protocol Description</h2>

  <p>
    MCAST (Multicasting) illustrates how data can be sent from a source to
    multiple destinations over a network. The following example shows a source,
    three destinations, and a further host that has no interest in the data.
    These are interconnected by routers A to F.
  </p>

  <center>

    <img src="multicast.gif" alt="Multicast Illustration"/>

  </center>

  <p>
    There are three strategies for sending data from the source to the
    destinations:
  </p>

  <dl>

    <dt><b>Broadcast</b>:</dt>
    <dt>
      <p>
	If the source does not know which networks the destinations are on, it
	must send a copy of the messages to each router that gives access to a
	possible destination. In this example, the source must send data to
	routers B, D, E and F. The result is inefficient in that 10 copies of
	the message must be sent.
      </p>
    </dt>

    <dt><b>Unicast</b>:</dt>
    <dt>
      <p>
	If the source knows which networks the destinations are on, it can send
	a copy of the messages only to the routers that gives access to these
	destinations. In this example, the source must send data to routers B, D
	and E. The result is more efficient than broadcast, but 8 copies of the
	message must still be sent.
      </p>
    </dt>

    <dt><b>Multicast</b>:</dt>
    <dt>
      <p>
	The source can instead rely on the routers to distribute messages,
	making copies only when necessary. In this example, the source sends
	just one message to router A, stating that it is for routers B, D and E.
	Router A looks at where the message is going, and delivers copies of the
	message to routers B and C (when it states that the message is for
	routers D and E). Router C then delivers copies of the message to
	routers D and E. The result is more efficient than unicast, with only 5
	copies of messages being sent. This is half the number for broadcast. On
	a much larger network, the transmission savings of multicast can be
	substantial.
     </p>
    </dt>

  </dl>

  <p>
    Each router stores the messages it receives and forwards them to their
    destination. The messages may be forwarded in any order since it depends on
    how busy the communications links are. When trying the simulation, you may
    find it easier to understand if you immediately forward router messages
    rather than let them build up. For this simulation, the communications
    channels are assumed to operate perfectly (no message corruption, loss or
    misordering).
  </p>

  <h2>Protocol Parameters</h2>

  <p>
    By default, multicasting uses the broadcast strategy. You can modify the way
    in which the protocol works by modifying the strategy. Click Change Settings
    after making this alteration. This will restart the whole simulation.
  </p>

  <form name="settings">

    <center>

      <table cellspacing="5">

	<tr>
	  <td align="right">Multicasting Strategy:</td>
	  <td>
	    <select name="serviceMode">
	      <option selected>Broadcast</option>
	      <option>Unicast</option>
	      <option>Multicast</option>
	    </select>
	  </td>
	</tr>

	<tr>
	  <td align="center" colspan="2">
	    <input type="button" name="btnSet" value="Change Settings"
	    onclick="set()"/>
	  </td>
	</tr>

      </table>

    </center>

  </form>

  <h2>Protocol Simulation</h2>

  <p>
    The protocol simulation shows a time-sequence diagram with the source and
    the six routers. Messages have the format
    <var>DT(Destinations,Mn)</var>. For broadcast and unicast, each
    message has one destination; for multicast, there can be multiple
    destinations. Messages are numbered <var>M0</var>, <var>M1</var>, etc.; no
    explicit data
    content is given.
  </p>

  <center>

    <applet code="simulator.ProtocolSimulator.class"
     archive="ProtocolSimulator.jar" width="800" height="700"
     name="ProtocolSimulator">
      <param name="protocol" value="MCAST"/>
    </applet>

  </center>

  <hr/>

  <p>
    <a href="index.html"><img src="uparrow.gif" alt="Up Arrow"/></a>
    Up one level to <a href="index.html">Protocol Simulators</a>
  </p>

</body>

</html>