Master Course
Advanced Computer Networks
Lecture 6 (Part -1)
Multicasting and Multicast
Routing Protocols
Dr. Mahmoud Shuker Mahmoud
Chapter
Outline
6.1 Introduction
6.2 Multicast Addresses
6.3 IGMP
6-1 INTRODUCTION
The IP protocol can be involved in two types of
communication: unicasting and multicasting.
Unicasting is the communication between one
sender and one receiver. It is a one-to-one
communication. However, some processes
sometimes need to send the same message to a
large number of receivers simultaneously. This is
called Multicasting, which is a one-to-many
communication.
Unicast, Multicast, and Broadcast
Unicasting
In unicast communication, there is one source and one destination. The
relationship between the source and the destination is one-to-one. In this type
of communication, both the source and destination addresses, in the IP
datagram, are the unicast addresses assigned to the hosts (or host interfaces, to
be more exact) as shown in figure below
Figure 6.1 Unicasting
Unicast, Multicast, and Broadcast
Multicasting
In multicast communication, there is one source and a group of destinations.
The relationship is one-to-many. In this type of communication, the source
address is a unicast address, but the destination address is a group address,
which defines one or more destinations. The group address identifies the
members of the group, as shown in figure below
Figure 6.2 Multicasting
Unicast, Multicast, and Broadcast
Broadcasting
In broadcast communication, the relationship between the source and the
destination is one-to-all. There is only one source, but all the other hosts are
the destinations. The Internet does not explicitly support broadcasting because
of the huge amount of traffic it would create and because of the bandwidth it
would need. Imagine the traffic generated in the Internet if one person wanted
to send a message to everyone else connected to the Internet.
Multicasting Versus Multiple Unicasting
Multicasting starts with one single packet from the source that is duplicated by the
routers. The destination address in each packet is the same for all duplicates. Note that
only one single copy of the packet travels between any two routers.
Multiple unicasting, several packets start from the source. If there are five destinations,
for example, the source sends five packets, each with a different unicast destination
address. Note that there may be multiple copies traveling between two routers. For
example, when a person sends an e-mail message to a group of people, this is multiple
unicasting.
Legend
S1 Multicast router S1
Unicast router
Di Unicast destination
Gi Group member
G1 G1 G1 G1 D1 D2 D3 D4
a. Multicasting b. Multiple unicasting
Figure 6.3 Multicasting versus multiple unicasting
6-2 MULTICAST BASICS
➢ Multicast Applications
➢ Multicast addressing
➢ Multicast Grouping
Multicast Applications
Applications Multicasting has many applications today
such as access to
✓ Distributed databases,
✓ Information dissemination,
✓ Teleconferencing, and
✓ Distance learning.
Multicast Addresses
A multicast address is a destination address for a group of hosts that have joined a
multicast group. A packet that uses a multicast address as a destination can reach
all members of the group unless there are some filtering restriction by the
receiver. The number of addresses in multicast block is huge (228) (224.0.0.0/4),
the block is dividedinto several subblocks and each subblock is used in a
particular multicast application, table below gives the common subblocks
Delivery at Data-Link layer
Network with Multicast Support
An Ethernet multicast physical
address is in the range
01:00:5E:00:00:00
to
01:00:5E:7F:FF:FF.
Figure 6.4 Mapping class D to Ethernet physical address
Example 6.1
Change the multicast IP address 232.43.14.7 to an Ethernet
multicast physical address.
Solution
We can do this in two steps:
a. We write the rightmost 23 bits of the IP address in
hexadecimal. This can be done by changing the rightmost 3
bytes to hexadecimal and then subtracting 8 from the
leftmost digit if it is greater than or equal to 8. In our example
the result is 2B:0E:07.
b. We add the result of part a to the starting Ethernet multicast
address, which is 01:00:5E:00:00:00. The result is
Example 6.2
Change the multicast IP address 238.212.24.9 to an Ethernet
multicast address.
Solution
We can do this in two steps:
a. The rightmost 3 bytes in hexadecimal are D4:18:09. We
need to subtract 8 from the leftmost digit, resulting in
54:18:09.
b. We add the result of part a to the Ethernet multicast starting
address. The result is
Delivery at Data-Link layer
Network with No Multicast Support
Most WAN do not support multicast addressing. To send multicast packet
through these networks, a process called tunneling is used, in which the
multicast packet is encapsulated in unicast packet and sent through the
network, where it emerges from the other side as a multicast packet.
Figure 6.5 Tunneling
6-3 Internet Group Management Protocol (IGMP)
Multicast communication means that a sender sends a
message to a group of recipients that are members of the
same group.
Each multicast router needs to know the list of groups that
have at least one loyal member related to each interface.
Collection of this type of information is done at two
levels: locally and globally. A multicast router connected
to a network is responsible to connect this type of
information locally, then the information collected can be
globally propagated to other routers. The first task is done
by the IGMP protocol; the second task is done by the
multicast routing protocols.
The IGMP is responsible for correcting and interpreting
information about group members in a network. It is one of
the protocols designed at the IP layer for this purpose. Figure
6.6 shows the position of the IGMP protocol in relation to
other protocols in the network layer.
Figure 6.6 Position of IGMP in the network layer
Group Management
IGMP is not a multicasting routing protocol; it is a protocol that
manages group membership. The IGMP protocol gives the
multicast routers information about the membership status of
hosts (routers) connected to the network.
If a router has no knowledge about the membership status of
the hosts, it must forward all of these packets. This creates a lot
of traffic and consumes bandwidth. IGMP helps the multicast
router create and update this list.
IGMP is a group management protocol. It helps a
multicast router create and update a list of loyal
members related to each router interface.
IGMP Messages
IGMPv3 has two types of messages: membership query
message and membership report message. The first type can
be used in three different formats: general, group specific, and
group-and-source-specific, as shown in Figure 6.7.
Figure 6.7 IGMP messages
Membership Query Message
A membership query message is sent by a router to find active group members
in the network. Figure 6.8 shows the format of this message and its three
different types
Figure 6.8 Membership query message format and its types
Membership Report Message
A membership report message is the reply from the host (or router) to the
multicast router sending the query message. Figure 6.9 shows the format of
this message.
Figure 6.9 Membership report message format
Each group record includes the information related to the
responder’s membership in a single multicast group.
There are currently six Record Type as shown in Table below.
IGMP Protocol Applied to Host
Socket State
The management of groups starts with the processes (running
application programs) on a host connected to an interface. Each
process, which is associated with a socket has a record for each
multicast group from which the socket wishes to receive a
multicast message. The record also shows one of the two modes:
include mode or exclude mode. If the record is in include mode,
it lists the unicast source addresses from which the socket accepts
the group messages. If the record is in exclude mode, it lists the
unicast source addresses that the socket will not accept the group
messages. The state can be organized in a table, in which a row
defines one single record. A socket may have more than one
record if it expects to receive multicast messages destined for
more than one group.
Example
Figure 6.10 shows a host with three processes: S1, S2, and S3. The
first process has only one record; the second and the third
processes each have two records. We have used lowercase alphabet
to show the source address.
Figure 6.10 Socket state
IGMP Protocol Applied to Host
Interface State
To be efficient, group management requires that the interface connecting the host to the
network also keep an interface state. However, the interface state keeps only one record
for each multicast group. For example, the interface state corresponding to socket state in
Figure 6.10 needs to have only two records, instead of five, because only two multicast
groups are involved. The interface state, however, needs to keep an interface timer for the
whole state and one timer for each record. The only problem in combining records is the
list of resources. The following two rules need to be followed to combine the list of
resources.
1. If any of the records to be combined has the exclusive filter mode, then the resulting
interface record will have the exclusive filter mode and the list of the source addresses
is made as shown below:
a. Apply the set intersection operation on all the address lists with exclusive filters.
b. Apply the set difference operation on the result of part a and all the address lists
with inclusive filters.
2. If all the records to be combined have the inclusive filter mode, then the resulting
interface record will have the inclusive filter mode and the list of the source addresses is
found by applying the set union operations on all the address lists.
Example
We use the two rules described above to create the interface
state for the host in previous example. First we found the list of
source address for each multicast group.
a. Multicast group 226.14.5.2 has two exclude lists and one include
list. The result is an exclude list as calculated below.
b. Multicast group: 228.24.21.4 has two include lists. The
result is an include list as calculated below. We use the plus
sign for the union operation.
Figure 6.11 shows the interface state.
Figure 6.11 Interface state
Sending Change-State Reports
If there is any change in the interface state, the host needs to
immediately send a membership report message for that group,
using the appropriate group record(s). As Figure 6.12 shows, four
different cases may occur in the change, based on the old-state
filter and the new state filter. As the figure shows, in the first two
cases, the report contains two group records; in the last two
cases, the report contains only one group record.
Figure 6.12 Sending change state reports