0% found this document useful (0 votes)
37 views32 pages

CS4254 Computer Network Architecture and Programming: Dr. Ayman A. Abdel-Hamid

The document discusses IP multicasting including IPv4 multicast addresses, sending and receiving multicast messages, multicast on local and wide area networks, and issues with multicasting. It describes how multicast works at the IP, transport, and network layers to enable one-to-many and many-to-many communications between hosts.

Uploaded by

Vikram Shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views32 pages

CS4254 Computer Network Architecture and Programming: Dr. Ayman A. Abdel-Hamid

The document discusses IP multicasting including IPv4 multicast addresses, sending and receiving multicast messages, multicast on local and wide area networks, and issues with multicasting. It describes how multicast works at the IP, transport, and network layers to enable one-to-many and many-to-many communications between hosts.

Uploaded by

Vikram Shukla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 32

CS4254

Computer Network Architecture and


Programming
Dr. Ayman A. Abdel-Hamid
Computer Science Department
Virginia Tech

Multicasting
Multicasting

Dr. Ayman Abdel-H

Outline
Multicasting (Chapter 21)
Multipoint Communications
IP Multicast
IPv4 Multicast addresses
Sending and Receiving Messages
Multicasting on a LAN
Multicasting on a WAN
Multicast Issues
Multicasting

Dr. Ayman Abdel-H

Multipoint Communications
Multipoint communications support communications between
more than two hosts
One-to-many
Many-to-many
Unlike broadcast, allows a proper subset of hosts to participate
Example standards
IP Multicast (RFC 1112, standard)

Multicasting

Dr. Ayman Abdel-H

Logical Multipoint Communications


Two basic logical organizations
Rooted: hierarchy (perhaps just two
levels) that structures communications
Non-rooted: peer-to-peer (no
distinguished nodes)
Different structure could apply to control
and data planes
Control plane determines how
multipoint session is created
Data plane determines how data is
transferred between hosts in the
multipoint session
Multicasting

Dr. Ayman Abdel-H

Logical Multipoint Communications


Control Plane
The control plane manages creation of a multipoint session
Rooted control plane
One member of the session is the root, c_root
Other members are the leafs, c_leafs
Normally c_root establishes a session
Root connects to one or more c_leafs
c_leafs join c_root after session established
Non-rooted control plane
All members are the same (c_leafs)
Each leaf adds itself to the session
Multicasting

Dr. Ayman Abdel-H

Logical Multipoint Communications


Data Plane
The data plane is concerned with data transfer
Rooted data plane
Special root member, d_root
Other members are leafs, d_leafs
Data transferred between d_leafs and d_roots
d_leaf to d_root
d_root to d_leaf
There is no direct communication between d_leafs
Non-rooted data plane
No special members, all are d_leafs
Every d_leafs communicate with all d_leafs
Multicasting
Dr. Ayman Abdel-H

Forms of Multipoint Communications


Server-based -- rooted multipoint communications with server as
d_root
Passive or inactive
Relay
Reflector
Active
Bridge or multipoint control unit (MCU)
Strictly peer-to-peer multipoint Non-rooted
Multicast
Multicasting

Dr. Ayman Abdel-H

Multipoint Servers
Passive Multipoint Server
a relay or reflector service
Provides no processing of the
data
Minimum requirement is for
transport-level semantics, so
can operate at the transport or
application level

Multicasting

Active Multipoint Server


Does application-level
processing
transcoding
uses application-level
semantics

Dr. Ayman Abdel-H

Multicast Communication
Multicast abstraction is peer-to-peer
Application-level multicast
Network-level multicast
Requires router support (multicast-enabled routers)
Multicast provided at network protocol level IP multicast

Multicasting

Dr. Ayman Abdel-H

Multicast Communication
Transport mechanism and network layer must support multicast
Internet multicast limited to UDP (not TCP)
Unreliable: No acknowledgements or other error recovery
schemes (perhaps at application level)
Connectionless: No connection setup (although there is
routing information provided to multicast-enabled routers)
Datagram: Message-based multicast

Multicasting

Dr. Ayman Abdel-H

10

IP Multicast
IP supports multicasting
Uses only UDP, not TCP
Special IP addresses (Class D) identify multicast groups
Internet Group Management Protocol (IGMP) to provide
group routing information
Multicast-enabled routers selectively forward multicast
datagrams
IP TTL field limits extent of multicast
Requires underlying network and adapter to support broadcast or,
preferably, multicast
Ethernet (IEEE 802.3) supports multicast
Multicasting

Dr. Ayman Abdel-H

11

IP Multicast: Group Address


How to identify the receivers of a multicast datagram?
How to address a datagram sent to these receivers?
Each multicast datagram to carry the IP addresses of all
recipients? Not scalable for large number of recipients
Use address indirection
A single identifier used for a group of receivers

Multicasting

Dr. Ayman Abdel-H

12

IP Multicast: IGMP Protocol


RFC 3376 (IGMP v3): operates between a
host and its directly attached router
host informs its attached router that an
application running on the host wants to
join or leave a specific multicast group
another protocol is required to coordinate
multicast routers throughout the Internet
network layer multicast routing algorithms
Network layer multicast IGMP and
multicast routing protocols
IGMP enables routers to populate
multicast routing tables
Carried within an IP datagram
Multicasting
Dr. Ayman Abdel-H

13

IP Multicast: IGMP Protocol


IGMP v2 Message types
membership query: general
Sent by routers router query multicast groups joined by
attached hosts
membership query: specific
Sent by routers query if specific multicast group joined by
attached hosts
membership report
Sent by host report host wants to join or is joined to given
multicast group
leave group (optional)
Sent by host report leaving given multicast group
Multicasting

Dr. Ayman Abdel-H

14

IP Multicast: IGMP Protocol


Joining a group
Host sends group report when the first process joins a given
group
Application requests join, service provider (end-host) sends
report
Maintaining table at the router
Multicast router periodically queries for group information
Host (service provider) replies with an IGMP report for each
group
Host does not notify router when the last process leaves a
group this is discovered through the lack of a report for a
query
Multicasting

Dr. Ayman Abdel-H

15

IP Multicast: Multicast Routing


Multicast routers do not maintain a list of individual members of
each host group
Multicast routers do associate zero or more host group addresses
with each interface

Multicasting

Dr. Ayman Abdel-H

16

IP Multicast: Multicast Routing


Multicast router maintains table of multicast groups that are active
on its networks
Datagrams forwarded only to those networks with group members

Multicasting

Dr. Ayman Abdel-H

17

IP Multicast: Multicast Routing


How multicast routers route traffic amongst themselves to ensure
delivery of group traffic?
Find a tree of links that connects all of the routers that have
attached hosts belonging to the multicast group
Group-shared trees
Source-based trees

Shared Tree

Multicasting

Dr. Ayman Abdel-H

Source Trees

18

MBONE: Internet Multicast Backbone


The MBone is a virtual network on top of the Internet (section B.2)
Routers that support IP multicast
IP tunnels between such routers and/or subnets

Multicasting

Dr. Ayman Abdel-H

19

Unicast versus Broadcast versus Multicast


A unicast address identifies a single IP interface
A broadcast address identifies all IP interfaces on the subnet
A multicast address identifies a set of IP interfaces
A multicast datagram is received only by those interfaces
interested in the datagram (applications wishing to participate in
the multicast group)

Multicasting

Dr. Ayman Abdel-H

20

IPv4 Multicast Addresses

1/3

Class D addresses in the range 224.0.0.0 through


239.255.255.255
Low order 28 bits of class D Naddress (see appendix A) form
the multicast group ID (32-bit address is the group address)
Mapping of IPv4 multicast address to Ethernet address
High-order 24 bits of Ethernet address are always 01:00:5E
Next bit always 0
Low-order 23 bits are copied from low-order 23 bits of multicast
group address
High-order 5 bits of group address are ignored in the mapping
Mapping not one-to-one

Multicasting

Dr. Ayman Abdel-H

21

IPv4 Multicast Addresses

2/3

224.0.1.88 mapped into an Ethernet address?


Remember an Ethernet address is 48 bits
The address 224 is E0 in hex, 0 is 00 in hex, 1 is 01 in hex, and
88 is 58 in hex. However, only the low-order 23 bits are used
Therefore, the IP address of 224.0.1.88 converted to a MAC
address is 01-00-5E-00-01-58.

Multicasting

Dr. Ayman Abdel-H

22

IPv4 Multicast Addresses

3/3

Some special IPv4 multicast addresses


224.0.0.0 reserved
224.0.0.1 all-host group
224.0.0.2 all-routers group
224.0.0.1 through 224.0.0.255 reserved for routing-protocols
Datagrams destined to any of theses addresses are never
forwarded by a multicast router

Multicasting

Dr. Ayman Abdel-H

23

Sending & Receiving Multicast Messages


Receiving Multicast Messages
Create a UDP socket
Bind it to a UDP port, e.g., 1234
All processes must bind to the same port in order to
receive the multicast messages
Join a multicast group address
Use recv or recvfrom to read the messages
Sending Multicast Messages
You may use the same socket (you used for receiving) for
sending multicast messages or you can use any other UDP
socket (it does not have to join any multicast group)
Multicasting

Dr. Ayman Abdel-H

24

Multicast on a LAN

1/3

Receiving application creates a UDP socket, binds to port 123


and joins multicast group 224.0.1.1
IPv4 layers saves the information internally and tells appropriate
datalink to receive Ethernet frames destined to 01:00:5E:00:01:01

Sending applications creates a UDP socket and sends a


datagram to 224.0.1.1, port 123
Ethernet frame contains destination Ethernet address,
destination IP address, and destination port
A host on the LAN that did not express interest in receiving
multicast from that group will ignore such datagram
Destination Ethernet address does not match the interface address
Destination Ethernet address is not the ethernet broadcast address
The interface has not been told to receive any group addresses

Multicasting

Dr. Ayman Abdel-H

25

Multicast on a LAN

2/3

Ethernet frame received by datalink of receiver based on imperfect


filtering (When interface told to receive frames destined to one specific
Ethernet multicast address, it can receive frames destined to other
Ethernet multicast addresses)
Ethernet interface cards apply a hash function to group address,
calculating a value between 0 and 511. This information turns on a bit in a
512-bit array
Small size bit-array implies receiving unwanted frames
Some network cards provide perfect filtering
Some network cards have no multicast filtering at all (multicast
promiscuous mode)

Packet passed to IP layer (IP layer compares group address against all
multicast addresses that applications on this host have joined perfect
filtering)
Packet passed to UDP layer, which passes it to socket bound to port 123

Multicasting

Dr. Ayman Abdel-H

26

Multicast on a LAN

3/3

Some Other scenarios


A host running an application that has joined 225.0.1.1
Ethernet address 01:00:5E:00:01:01. Packet will be discarded by
perfect filtering in IP layer
A host running an application that has joined some multicast
group which the Ethernet address produces the same hash value as
01:00:5E:00:01:01. Packet will be discarded by datalink layer or
by IP layer
A packet destined to the same group, but a different port.
Accepted by IP layer, but discarded by UDP layer (no socket has
bound the different port)
Multicasting

Dr. Ayman Abdel-H

27

Multicast on a WAN
A program started on five hosts belonging to different LANs
Multicast routers communicate with neighbor routers using a multicast routing
protocol (MRP)
When a process on a host joins a multicast group, that host sends an IGMP
message to any attached multicast routers, which in turn exchange this
information using MRP with neighbor routers
When a sender sends a multicast message, mutlicast routing information is
used to direct the message

H1

MR1

MR2

MR5

MR3

MR4
H4

H2

H5

H3

Multicasting

Dr. Ayman Abdel-H

28

Some Multicast Issues


Time To Live
Set TTL for outgoing multicast datagrams (default is 1 local
subnet)
Loopback mode
Enable or disable local loopback of multicast datagrams
By default loopback is enabled
A copy of each multicast datagram sent by a process on the
host will also be looped back and processed as a received
datagram by that host
Port Reuse
Allow the same multicast application to have several
instances running on the same host
In Java, Port reuse is enabled by default
Multicasting
Dr. Ayman Abdel-H
29

Socket Options
Various attributes that are used to determine the behavior of
sockets (see chapter 7)
#include <sys/socket.h>
int getsockopt (int sockfd, int level, int optname, void * optval,
socklen_t *optlen);
int setsockopt (int sockfd, int level, int optname, const void * optval,
socklen_t optlen);
Both return 0 if OK, -1 on error
sockfd: an open socket descriptor
level: code in the system that interprets the option (general socket
code, or protocol-specific code) (SOL_SOCKET, IPPROTO_IP,
IPPROTO_IPv6, IPPROTO_TCP are examples)
optname: see page 193
Multicasting

Dr. Ayman Abdel-H

30

Socket Options
Some socket options examples (see table on page 193 and 194)
For multicast socket options see section 21.6 on page 559
Socket Level
SO_SNDBUF, SO_RCVBUF, SO_KEEPALIVE,
SO_BROADCAST, SO_REUSEADDR,
SO_RESUEPORT
IP Level
IP_TTL, IPMULTICAST_IF, IPMUTLICAST_TTL,
IP_MULTICAST_LOOP, IP_ADD_MEMBERSHIP,
IP_DROP_MEMBERSHIP
TCP Level
TCP_KEEPALIVE, TCP_MAXSEG, TCP_NODELAY
Multicasting

Dr. Ayman Abdel-H

31

Sending and Receiving


Section 21.10 page 575
A program to send and receive multicast datagrams
Send datagram to a specific group every five seconds
(datagram contains senders hostname and process ID)
An infinite loop that joins the multicast group to which the
sending part is sending and prints every received datagram
Create a UDP socket then set multicast socket options for address
reuse, joining the group, and setting loopback
See mcast/main.c, mcast/send.c, and mcast/recv.c

Multicasting

Dr. Ayman Abdel-H

32

You might also like