Transcript IGMP

Multicasting
EECS 4215
28 March 2016
1
Multicast
• One-to-many, many-to-many communications
• Applications:
– Teleconferencing
– Database
– Distributed computing
– Real-time work groups
– Stock quote updates
– Software and software update distribution
2
Internet Multicast Service Model
128.59.16.12
128.119.40.186
multicast
group
226.17.30.197
128.34.108.63
128.34.108.60
Multicast group concept: use of indirection
• a host “sends” IP datagrams to multicast group.
• routers forward multicast datagrams to hosts that have “joined”
that multicast group.
3
Multicast Groups
 Class D Internet addresses reserved for multicast:
 Host group semantics:
o anyone can “join” (receive from) multicast group.
o anyone can send to multicast group.
o no network-layer identification to hosts of members.
 Needed: infrastructure to deliver multicast-addressed
datagrams to all hosts that have joined that multicast group.
4
Multicast Addressing
• Class D address (see next slide)
• Source: unicast IP address S
Receivers: multicast group ID G, a class-D address
• Each group is identified by (S, G)
• Ethernet broadcast address (all 1’s)
5
IPv4 Address Formats
6
Multicast Protocols
Transport layer
• UDP
• Real-time Transport Protocol (RTP): for multimedia
content
• ReSerVation Protocol (RSVP): for bandwidth
reservation in a multicast distribution
7
Multicast Protocols (2)
Routing, delivery
• On a local network (join/leave):
– Internet Group Management Protocol (IGMP)
– Multicast Listener Discovery (MLD): similar to IGMP but for
IPv6
• Intra-domain (routing):
– MOSPF, PIM, DVMRP
• Inter-domain (routing):
– Multicast Border Gateway Protocol (MBGP)
8
Joining a multicast group: 2-step process
• Local: host informs local multicast router of desire to join
group: IGMP (Internet Group Management Protocol)
• Wide area: local router interacts with other routers to receive
multicast datagram flow
– many protocols (e.g., DVMRP, MOSPF, PIM)
IGMP
IGMP
wide-area
multicast
routing
IGMP
9
IGMP
Internet Group Management
Protocol (IGMP)
• RFC 3376 used to exchange multicast group
information between hosts & routers on a LAN
• hosts send messages to routers to subscribe to (join)
and unsubscribe from (leave) multicast group
• routers check which multicast groups are of interest
to which hosts
• IGMP currently at version 3
IGMP: Main Ideas
• Router: sends IGMP query at regular intervals
– hosts belonging to a multicast group must reply to query if
wishing to join or stay in the group.
• Host: sends IGMP report (reply) when application wishes to
join a multicast group.
– IP_ADD_MEMBERSHIP socket option
– hosts need not explicitly “unsubscribe” when leaving
query
report
12
IGMP
• Router: broadcasts Host
• Group-specific Query
Membership Query
• Leave Group message
message on LAN.
– Last host replying to
• Host: replies with Host
Query can send explicit
Membership Report
Leave Group message
message to indicate group
– Router performs groupmembership
specific query to see if any
– randomized delay
hosts left in group
before responding
– Introduced in RFC 2236
– may send multiple times
• IGMP v3: current version
– implicit leave via no
reply to Query
13
Operation of IGMP v1 and v2
• IGMPv1
– hosts could join group
– routers used timer to
unsubscribe members
• IGMPv2 enabled hosts to
unsubscribe
• operational model:
– receivers have to subscribe
to groups
– sources do not have to
subscribe to groups
– any host can send traffic to
any multicast group
Problems:
• spamming of multicast
groups
• establishment of
distribution trees is
problematic (source
location unknown)
• finding globally unique
multicast addresses difficult
(duplicate addresses)
IGMP v3
• addresses weaknesses by:
– allowing hosts to specify list from which they want
to receive traffic
– blocking traffic from other hosts at routers
– allowing hosts to block packets from sources that
send unwanted traffic
IGMP Operation - Joining
• IGMP host wants to make itself known as group
member to other hosts and routers on LAN
• IGMPv3 allows hosts to specify wanted or unwanted
sources (filtering capabilities)
– EXCLUDE mode – to receive from all sources except those
listed
– INCLUDE mode – to receive only from sources listed
To join a group, a host sends IGMP membership report message
•
•
•
•
address field is the multicast address of the group
sent in IP datagram
current group members receive and learn about the new member
routers listen to all IP multicast addresses to hear all reports
IGMP Operation –
Keeping Lists Valid
routers periodically issue
IGMP general query
message (group address is
null)
• in datagram with all-hosts
multicast address
• hosts must read such
datagrams
• hosts respond with report
message
router doesn’t know every
host in a group
• needs to know at least one
group member still active
• each host in group sets timer
with random delay
• host hearing another report
cancels its own report
• if timer expires, host sends
report
• only one member of each
group reports to router
IGMP Operation - Leaving
• A host leaves a group G by sending a “leave group”
message to the all-routers static multicast address.
– “leave” = a membership report message with multicast
address of group G, INCLUDE option and null list of source
addresses.
– Note: a membership report message with multicast address of group G,
EXCLUDE option and null list of source addresses means to receive from all
sources in group G.
• Router determines if there are any remaining
members in that group using a group-specific query
message (a membership query with the multicast
address of G).
Membership Query Message
Membership Report Message
Group Record
IGMP: Summary
• For membership management.
• Between a host on a subnet (Ethernet) and the router for the
subnet.
• The router periodically broadcast an IGMP host-membership
query message on its subnet.
• A host subscribes to a group replies by multicasting a hostmembership report message.
– Feedback implosion  uses a random timer to suppress duplicates.
• The report is sent 3 times (for reliability).
• IGMP-1: hosts send no report  leaving the group
IGMP-2: hosts send explicit host-membership leave messages
to reduce leave latency.
IGMP-3: filtering and blocking
22
Multicast Routing
Shortest Path Tree
• Multicast cast forwarding tree: tree of shortest path routes
from source to all receivers.
– Dijkstra’s algorithm.
– MOSPF routing protocol
S: source
LEGEND
R1
1
2
R4
R2
3
R3
router with attached
group member
5
4
R6
router with no attached
group member
R5
6
R7
i
link used for forwarding,
i indicates order link
added by algorithm
24
How MOSPF Fits into Multicasting
• IGMP - used for discovery of hosts in multicast
groups, messages exchanged between
neighbors
• MOSPF - routes multicast datagrams within an
AS
• MBGP (Multicast BGP) - routes multicast
datagrams between ASs
MOSPF
• Extends OSPF for multicasting.
• Every router has the complete topology of its own network.
• A receiver joins a multicast group G by exchanging IGMP
messages with its end-router R.
• The end-router R broadcasts its group membership to the
whole network in the form (G, R).
• Every router in the network maintains a group membership
table with each entry being a tuple [S, G, <R1, R2, …>].
• A sender simply sends data packets as they are available.
• Each router uses the network topology, the group
membership table, and the multicast group ID in the data
packets to compute the route(s) to the destination(s).
26
Reading
• Section 19.1, Stallings
More references:
• Multicasting on the Internet and Its Applications, Sanjoy Paul,
Kluwer Academic Publishers, 1998, chapters 2, 4, 5.
• Computer Networking: A Top-Down Approach, 5th edition,
Kurose and Ross.
27