183 lines
5.0 KiB
HTML
Executable File
183 lines
5.0 KiB
HTML
Executable File
<!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>
|
|
|