Hello Scriv,
Let me start with some simple concepts, answer your specific
questions, and provide some references that appear to be more readable
than the ones you may have found.
First - the basic concept. IP Multicast is a slight variation on IP
Broadcasts. A broadcast will be sent to all machines that is a part of
the specified address range. For example, if I have a Class C address
range (192.168.0.1 through 192.168.0.255), the last address is
reserved for broadcast messages. Any message sent to that address will
be received by all machines in that address range.
A multicast message is sent in a similar manner. There is a set of
reserved addresses for IP Multicast (224.0.0.0 - 239.255.255.255).
Select an address in that range - say 225.0.1.1, send a message to
that address, and any machine registered to receive the message will
get it. Select a different address - say 230.129.9.60, send a message
to that address, and a different set of machines will receive it.
So - with Multicast (as with Broadcast), the sender will use a
mutually agreed address as the destination address. All machines
looking for that address with receive the messages sent to that
address. This allows a number of concurrent multicast sessions to be
active at any time.
As a side comment - note that the sender does not necessarily know
which machines will receive these messages. In a similar manner, the
receiver can start before the sender is active. The receiver will get
the messages only after the sender starts.
Specific Answers:
1. Multicast addresses.
The IANA specifies the range of addresses
224.0.0.0 through 239.255.255.255
with several of these already reserved for specific purposes. The
"definitive source" of those reserved addresses is at
http://www.iana.org/assignments/multicast-addresses
which notes that the range 224.0.0.0 through 224.0.0.255 is reserved
for use on local area networks and should not be forwarded by routers.
A number of other numbers are reserved for various purposes. For
example
224.0.1.1
is used by the network time protocol to synchronize clocks on computer
systems.
2a. Multicast on a local Ethernet.
This is the simplest solution and does not necessarily require any
special routers. The ethernet adaptors on each machine will likely be
set in "promiscuous mode" (receive all messages) or otherwise enable
receipt of multicast messages. The network interface / driver will
examine each message received and act on those messages in addition to
those sent directly to this interface.
So - let's say you have a local Ethernet with a shared wire, hub, or
switch. The sending machine will put out a message to one of the IP
Multicast addresses. Each machine looking for that address will
receive it, the others will ignore it. This sounds pretty simple and
it is.
More details - The 802.3 standard identifies a method to map IP
Multicast addresses into Ethernet broadcast addresses. The Cisco page
(see references below) has a section titled Ethernet MAC Address
Mapping that explains the mapping. By using this mapping, an Ethernet
interface can use the Ethernet address to determine if it should
process the message or not.
2b. Multicast on a Wide Area Network
This is where routers need to coordinate actions to send data
efficiently. This is generally done with some form of "tree". The
machines generating messages will send them to their local router.
That router will be programmed to send the messages along the tree to
successive routers until the messages make it to the destination
machines. The routes can be static - just like any other route you
define in the router. A simple dynamic method is "Reverse Packet
Forwarding" (RPF) - each router will simply send it along any path
that goes "away" from the sender.
There are a number of methods that are available to help set up the
multicast trees. These include:
- Static routing (set up by configuration)
- Internet Group Management Protocol (IGMP); see below.
- Protocol Independent Multicast - use unicast addresses to build RPF
tables
- Multiprotocol Border Gateway Protocol - supports both unicast and
multicast routing
as well as others.
However, the bottom line - the routers will send the multicast
messages from the source, along a tree of routers, to all of the
destination machines that are registered to receive the messages. If a
machine receives a message it does not want, it would discard or
ignore the multicast messages.
3. Internet Group Management Protocol (IGMP)
This has some simple concepts behind it, but putting it together can
be confusing. The receiving hosts will send an IGMP Report message on
a periodic basis. The router will read these report messages, note the
multicast addresses, receiving hosts to get those messages. So the
router builds a table of hosts to send multicast messages to (by
address). The router will also periodically send an IGMP Query message
to ensure that hosts are still actively interested in receiving
messages (to remove hosts from the multicast group).
So - when a host wants to receive a multicast message - it sends IGMP
Report to the router to initiate the transfer of data. It will repeat
that whenever queried by the router.
The router will maintain a list of multicast addresses / hosts to
receive those messages. The router will send all multicast messages w/
that address to the lists of hosts. The router will periodically query
hosts to ensure they are still want to receive those messages.
There is a "version 2" of IGMP which adds a "Leave Group" message -
that simply allows the receiving host to say "stop" (instead of
waiting for the query time out). A router using IGMP is not required
to implement this.
If this sounds confusing, draw a simple diagram with the sending host,
a router, and the receiving host. Show the messages going between the
three machines. If this is still unclear, I'll try to find a good
illustration
4. Multicast Routing
If you understand what was described above, you should have a handle
on this concept by now. To repeat:
- the routers are set up in a "tree" (statically or dynamically) to
determine the direction multicast messages will flow
- the source machines will send the multicast message to its adjacent
router
- the routers will flow the messages according to the route defined
in the tree. Note that a router may send the message to several
destinations at each step (multicast - not unicast).
- the destination machines will receive the multicast messages from
its adjacent router
The Cisco page has some good illustrations of this concept.
Looking at your possible exam questions...
1. Multicast on a broadcast (e.g., Ethernet) network.
As mentioned above:
- the sending machine uses the multicast address in the destination
IP address
- the destination IP address is mapped into an Ethernet address,
recognized as broadcast within the local switches
- the receiving machines will respond to that Ethernet address and
receive the message
2. Router action using IGMP
As mentioned above:
- the host uses IGMP Report to indicate it wants to receive the
multicast messages
- the router records IGMP Report messages and maintains a list of
multicast addresses / hosts to send the messages to
- the router receives a multicast message - sends it to all
registered machines
- the router periodically uses IGMP Query to request further IGMP
Report messages. Hosts that don't respond (fails three times) will be
removed from the list of hosts.
3. Why is IGMP information needed?
Strictly - it is not needed. You could send the multicast messages
everywhere IF you had enough bandwidth. Generally you don't have
enough bandwidth and IGMP is used to conserve that address.
Web sites with additional multicast information:
http://www.cisco.com/warp/public/cc/pd/iosw/prodlit/ipimt_ov.htm
This Cisco page has a long and complete summary of IP Multicast
related protocols and illustrations of how they are set up. It also
has some questions at the end - you may want to review them to see if
you understand those answers as well.
http://www.nwfusion.com/research/ipmulticast.html
A number of good references - where I found the Cisco page above. A
couple links are "dead" though.
Search phrases for additional information
ip multicast explanation
ethernet promiscuous mode
Good luck on your studies. I will try to stay on a while and also
check in 6-8 hours or so to follow up if you need clarification.
--Maniac |
Clarification of Answer by
maniac-ga
on
09 Sep 2003 10:44 PDT
Hello Scriv,
Well, an Ethernet address is often shown in the form of...
00:50:BF:39:3D:41
which uniquely identifies a machine I use to the local Ethernet
switch. So - yes, that is a "hexidecimal address" of the interface
used on that system. Note that this address is 48 bits long and an IP
address is only 32 bits long - usually shown in dotted decimal form.
You should convert from hex to decimal (or back) when discussing these
two types of addresses.
When sending an IP Multicast message on Ethernet, the sending system
(or router) is supposed to set the lowest 23 bits of the Ethernet
destination address to the lowest 23 bits of the IP Multicast address.
So you would get something like...
01:00:5E:00:01:01
for the IP Multicast Address
224.0.1.1 (network time protocol)
on the local ethernet. This is merely a way to quickly convert from IP
addresses to Ethernet addresses. Remember that the multicast Ethernet
address does not match the physical Ethernet address of any machine -
the card / driver has to recognize this kind of address and receive
the message (if desired) or discard it.
About IGMP - if the local Ethernet you use has no routers, I do not
see a specific requirement to use IGMP. If the switches have multicast
enabled, they could send the Ethernet multicast messages (as encoded
above) to all the machines connected. The machines expecting the
messages would process them. The others would discard the extra
messages. Remember that IGMP is a way to manage limited bandwidth.
Having said that - IGMP could be used in a local Ethernet set up. If
you use a router (instead of shared wire, hub, or switch), the router
could expect IGMP Report messages and send the multicast messages
accordingly. This would be a local option of the people setting up the
network. Hosts that do generate IGMP Report messages may be necessary
to facilitate upstream multicast routing (connecting this local LAN to
a wide area network).
--Maniac
|