Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications...
Transcript of Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications...
![Page 1: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/1.jpg)
1
Data Communication & Networks
G22.2262-001
Session 11 - Main Theme
IP Multicast
Dr. Jean-Claude Franchitti
New York University
Computer Science Department
Courant Institute of Mathematical Sciences
![Page 2: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/2.jpg)
2
Agenda
� Introduction to Multicast
� Multicast Addresses
� IP Multicast
� Reliable Multicast
� Pragmatic General Multicast (PGM)
� Reliable Multicast Protocol (RMP)
� Conclusion
![Page 3: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/3.jpg)
3
Part I
Introduction to Multicast
![Page 4: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/4.jpg)
4
Cast Definitions
� Unicast - send to one destination (198.122.15.20)
� General Broadcast - send to EVERY local node
(255.255.255.255)
� Directed Broadcast - send to subset of nodes on
LAN (198.122.15.255)
� Multicast - send to every member of a Group of
“interested” nodes (Class D address).
� RFC 1112 (an easy read!)
![Page 5: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/5.jpg)
5
Why Multicast, Why Not Unicast?
� Unicast:
� Many applications require same message sent to many
nodes (10, 100, 1000, n)
� Same message transits network n times.
� n messages requires n*(CPU time) as 1 message
� Need to deliver “timely” information.
� Message arrives at node n >> node 1
![Page 6: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/6.jpg)
6
Why Multicast, Why Not Broadcast?
� Broadcast:
� Send a copy to every machine on the net
� Simple, but inefficient
� All nodes “must” process the packet even if they don’t
care
� Wastes more CPU cycles of slower machines
(“broadcast radiation”)
� General broadcast cannot be routed
� Directed broadcast is limited in scope (to machines on
same sub-net or same domain)
![Page 7: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/7.jpg)
7
Multicast Applications
� News/sports/stock/weather updates
� Software distribution
� Video-conferencing, shared whiteboards
� Distributed interactive gaming or simulations
� Email distribution lists
� Database replication
![Page 8: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/8.jpg)
8
IP Multicast - Concepts
� Message sent to multicast “group” of receivers
� Senders need not be group members
� Each group has a “group address”
� Groups can have any size
� End-stations (receivers) can join/leave at will
� Data Packets are UDP (uh oh!)
![Page 9: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/9.jpg)
9
IP Multicast Benefits
� Distribution tree for delivery/distribution of packets
(i.e., scope extends beyond LAN)
� Tree is built by multicast routing protocols. Current
multicast tree over the internet is called MBONE
� No more than one copy of packet appears on any
sub-net
� Packets delivered only to “interested” receivers =>
multicast delivery tree changes dynamically
� Non-member nodes even on a single sub-net do not
receive packets (unlike sub-net-specific broadcast)
![Page 10: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/10.jpg)
10
Part II
Multicast Addresses
![Page 11: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/11.jpg)
11
Multicast Addresses
� Class D addresses: 224.0.0.0 - 239.255.255.255
� Each multicast address represents a group of
arbitrary size, called a “host group”
� Addresses 224.0.0.x and 224.0.1.x are reserved.
� See assigned numbers RFC 1700
� Eg: 224.0.0.2 = all routers on this sub-net
� Addresses 239.0.0.0 thru 239.255.255.255 are
reserved for private network (or intranet) use
![Page 12: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/12.jpg)
12
Link-Layer Multicast Addresses
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0
1 1 1 0 28 bits
23 bits
IP multicast address
Group bit
Ethernet and other LANs using 802 addresses:
LAN multicast address
Lower 23 bits of Class D address are inserted into the lower
23 bits of MAC address (see RFC 1112)
0x01005e
![Page 13: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/13.jpg)
13
Part III
IP Multicast
![Page 14: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/14.jpg)
14
NIC, IP Stack, Apps Cooperate!
� Idea - NIC does not accept packets unless some
app on this node wants it (avoid non-productive
work).
� How does it know which packets to accept?
� App “joins” group with Class D address
� IP stack gives class D info to NIC
� NIC builds “filter” to match MAC addresses
� Latch on to:
� Own address, MAC broadcast, or “Group” address
![Page 15: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/15.jpg)
15
IP Multicast - Sending
� Use normal IP-Send operation, with multicast
address specified as destination
� Must provide sending application a way to:
� Specify outgoing network interface, if >1 available
� Specify IP time-to-live (TTL) on outgoing packet
� Enable/disable loop-back if the sending host is/isn’t a
member of the destination group on the outgoing
interface
![Page 16: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/16.jpg)
16
IP Multicast - Receiving
� Two new operations
� Join-IP-Multicast-Group(group-address,
interface)
� Leave-IP-Multicast-Group(group-address,
interface)
� Receive multicast packets for joined groups via
normal IP-Receive operation
![Page 17: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/17.jpg)
17
Multicast Scope
� Scope: How far do transmissions propagate?
� Implicit scope:
� Reserved Mcast addresses => don’t leave subnet.
� TTL-based scope:
� Each multicast router has a configured TTL threshold
� It does not forward multicast datagram if TTL <= TTL-
threshold
� Useful at edges of a large intranet as a blanket
parameter
![Page 18: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/18.jpg)
18
IGMP
� Router sends Host Membership Query to
224.0.0.1 (all multicast hosts on sub-net)
� Host responds with Host Membership report for
each group to which it belongs, sent to group
address (224.0.0.2)
� Router periodically broadcasts query to detect if
groups have gone away
� Hosts send reports when join or leave group
![Page 19: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/19.jpg)
19
IP Multicast in Java
� Java has a Multicast Socket Class
� Use it to “join” a multicast group.
MulticastSocket s = null;
InetAddress group = null;
try {
group = InetAddress.getByName(“227.1.2.3”);
s = new MulticastSocket(5555);
s.joinGroup(group);
} catch (UnknownHostException e) {
} catch (IOException e) {
}
![Page 20: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/20.jpg)
20
IP Multicast in Java
� Receive DatagramPackets on a MulticastSocket
DatagramPacket recv = new DatagramPacket(buf,
buf.length);
try {
s.receive(recv);
} catch (IOException e) {
System.out.println("mcastReceive: " +
e.toString());
return;
}
// get message
String msg = new String(recv.getData(),
recv.getOffset(), recv.getLength());
![Page 21: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/21.jpg)
21
IP Multicast in Java (cont.)
• To send, just send a DatagramPacket to the
multicast address, port (no need to use a
MulticastSocket, although you could)
group = InetAddress.getByName(“227.1.2.3”);
s = new DatagramSocket();
DatagramPacket snd = new DatagramPacket(buf, buf.length,
group, 5555);
try {
s.send(snd);
} catch (IOException e) {
System.out.println("mcastSend: " + e.toString());
return;
}
![Page 22: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/22.jpg)
22
Let’s See Multicast in Action
![Page 23: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/23.jpg)
23
Part IV
Reliable Multicast
![Page 24: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/24.jpg)
24
Reliable Multicast
• Remember: IP Multicast uses IP - it’s unreliable!
• We need a “reliable” multicast
• Let’s review what we mean by “reliable”
• message gets to ALL receivers
• sending order is preserved
• no duplicates
• no corruption
![Page 25: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/25.jpg)
25
Reliable Multicast (cont.)
• Problems:
• Retransmission can make reliable multicast as
inefficient as replicated unicast
• Ack-implosion if all destinations ack at once
• Nak-implosion if all destinations nack at once
• Source does not know # of destinations. Or
even if all destinations are still “up”
• One bad link affects entire group
• Heterogeneity: receivers, links, group sizes
![Page 26: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/26.jpg)
26
Reliable Multicast (cont.)
• RM protocols have to deal with:
• Scalability
• Heterogeneity
• Adaptive flow/congestion control
• Reliability
• Not all multicast applications need reliability of the
type provided by TCP. Some can tolerate
reordering, delay, etc
• Let’s look at two very different approaches
• PGM (Pragmatic General Multicast)
• RMP (Reliable Multicast Protocol)
![Page 27: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/27.jpg)
27
Part V
Pragmatic General Multicast (PGM)
![Page 28: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/28.jpg)
28
Pragmatic General Multicast
• Cisco’s reliable multicast protocol
• Central design goal
• Simplicity of operation yet provide for
scalability and network efficiency
• Not the perfect solution for all requirements, but for most, Pretty Good!
![Page 29: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/29.jpg)
29
Overview of PGM
• Components
• Source : transport-layer originators of PGM
data packets
• Receiver : transport-layer consumers of PGM
data packets
• Network element : network-layer entities in the
intervening network – typically routers, but
need not be
• Receiver initiated repair protocol
• Based on NAK
![Page 30: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/30.jpg)
30
PGM Packet Types
• ODATA
• Data packets from a source
• SPM (Source Path Message)
• Sent by sources: used to establish reverse path from
receivers to sources
• NAK
• Sent by receivers to ask for repairs.
• Forwarded upstream along source path
• NCF (NAK Confirm)
• Sent by network elements to NAKers
• RDATA
• Data packet resent from a source in reply to a NAK
![Page 31: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/31.jpg)
31
PGM Transmit Window
• Problem: NO Acks, so:
• Senders don’t know when all receivers have
packets
• Therefore, how long does sender retain
packet?
• Solution (sort of)
• Define a window (range of sequence #s)
• Keep only packets in window
• Update window edges periodically to receivers
• Receivers can only ask for resend (NAK) of
packets in the window
![Page 32: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/32.jpg)
32
Source Functions
• Data Transmission
• Multicast ODATA packets within transmit window a
given transmit rate
• Source Path State
• Multicast SPMs to establish source path state in PGM
network elements
• NAK Reliability
• Sources multicast NCFs in response to any NAKs they
receive
• Repairs
• Multicast RDATA packets in response to NAKs received
for data packets within the transmit window
![Page 33: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/33.jpg)
33
Source Functions (cont.)
• Transmit Window Advance
• Sources MAY advance the trailing edge of the
window according to one of a number of
strategies, for example:
• keeping the window at a fixed size in bytes
• keeping the window at a fixed number of packets
• keeping the window at a fixed real time duration.
• Trailing edge is advanced in ODATA and SPM
packets.
• Question: What defines the leading edge?
![Page 34: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/34.jpg)
34
Receiver Functions
• Source Path State
• Use SPMs to determine the last-hop PGM network
element for a given TSI to which to direct their NAKs
• Data Reception
• Receive ODATA within transmit window and eliminate
any duplicates (and order packets!)
• Repair Requests
• Receivers unicast NAKs to last-hop PGM network
element.
• Receiver MUST repeatedly transmit a given NAK until it
receives a matching NCF
![Page 35: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/35.jpg)
35
Receiver Functions (cont.)
• NAK Suppression
• Receivers suppress NAKs for which a matching
NCF or NAK is received during the NAK
transmit back-off interval
• Receive Window Advance
• Receivers immediately advance their receive
windows upon receipt of any PGM data packet
or SPM within the transmit window that
advances the receive window
![Page 36: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/36.jpg)
36
Network Element Functions
• Source Path State
• Network elements intercept SPMs and use
them to establish source path state for the
corresponding TSI before multicast forwarding
them
• NAK Reliability
• Network elements multicast NCFs to the group
in response to any NAK they receive
• For each NAK received, create repair state
recording the TSI, the sequence number of the
NAK, and the input interface on which the NAK
was received
![Page 37: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/37.jpg)
37
Network Element Functions (cont.)
• Constrained NAK Forwarding
• Network elements repeatedly unicast forward only the
first copy of any NAK they receive to the upstream
PGM network element on the distribution path for the
TSI until they receive an NCF in response
• NAK Elimination
• Network elements discard exact duplicates of any NAK
for which they already have repair state and respond
with a matching NCF
• Constrained RDATA Forwarding
• Network elements use NAKs to maintain repair state
consisting of a list of interfaces upon which a given
NAK was received, and they forward the corresponding
RDATA only on these interfaces
![Page 38: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/38.jpg)
38
Operation – No Errors
• Sources multicast ODATA packets
• Packet contains source ID, seq #, Window trailing
edge, data
• Network Elements forward packets to receivers (could
be applications nodes or other NEs)
• Sources periodically multicast SPM packets (also
contain source ID, seq #, Window edges)
• Network Elements use SPMs to build a reverse
path to the source (keyed by Source ID, called
TSI in PGM)
• NE must forward SPM to downstream NE!
![Page 39: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/39.jpg)
39
Receiver Operation: Packet Loss
• Receiver detects missing packet possibly from:
• ODATA sequence number
• SPM sequence number
• Receipt of NCF
• Start a random (bounded) timer
• If missing packet arrives (ODATA or RDATA) cancel
(success)
• If another NCF arrives (same seq. #), restart timer
• If timer expires, send NAK, restart timer
• If too many retries, cancel (fail)
![Page 40: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/40.jpg)
40
Network Element Operation: Packet Loss
• Receiver unicasts NAK to NE
• NE builds a “repair state” for this request ONLY if
NAK is from a local group member
• NE multicasts NCF to group (limit scope using
TTL) – now all receivers in local group know
• NE unicasts NAK to next upstream PGM hop for
this source (using TSI from NAK packet and SPM
info)
• This process is repeated at each successive
upstream NE
![Page 41: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/41.jpg)
41
Source Operation: Packet Loss
• Source of requested packet gets NAK
• Source multicasts NCF
• Source multicasts RDATA packet (but only if the requested packet is still in the transmit window)
![Page 42: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/42.jpg)
42
Pragmatic General Multicast
Packet 1 reaches only R1; R2, R3, R4 request resends
Packet 1 resent to R2, R3, R4; Not resent to R1
R1
S
R3 R4
R2
1
1 1
1
Resent packet
R1
S
R3 R4
R2
21
1X
Routers remember resend requests
Resend request
![Page 43: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/43.jpg)
43
Part VI
Reliable Multicast Protocol (RMP)
![Page 44: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/44.jpg)
44
RMP
• Messages from multiple senders to multiple destinations
• Quality of Service (QoS) Selection on a per message basis
• Supports total ordering of all messages
• Transparent failure recovery (Reformation)
• Uses Post Ordering Rotating Token algorithm, extension of work by Chang & Maxemchuk
![Page 45: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/45.jpg)
45
RMP: Quality of Service
• Unreliable - same QOS as UDP
• Reliable - delivery guaranteed, but not order or 1-copy
• Source Ordered - all messages from same source ordered, 1-copy
• Totally Ordered - all receivers see exactly same sequence from all sources
![Page 46: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/46.jpg)
46
About Total Ordering
• Hosts A, B, & C send messages into the group
(A1, A2, B1, B2, C1, C2)
• Suppose:
• Host D gets A1, B1, B2, C1, A2, C2
• Host E gets C1, A1, A2, B1, C2, B2
• Host F gets B1, A1, C1, A2, B2, C2
• What if results at Hosts D, E, F depend on order
of all messages? In this case, results will be
different!
• Total ordering means D, E, F have to see same
sequence!
![Page 47: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/47.jpg)
47
RMP - Concepts
• Each process (an App) has an ID
• Processes form groups (based on mcast Addr, Port, TTL)
• All processes see “membership list”
• Members agree among themselves what the “order” of messages should be (when total order QOS is selected)
![Page 48: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/48.jpg)
48
RMP – Token Passing
• One member holds a “token”
• The token holder assigns “global” sequence number to each correct packet
• Every packet has unique id (GroupID:Pid:seqno)
• Token Holder “passes” token to next member in list (token pass is mcast!)
• Token packet contains global sequence numbers and packet IDs
![Page 49: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/49.jpg)
49
RMP – Ack, Nak
• Since token pass is mcast, all members see it (usually)
• The token is the Ack packet
• Since Ack packet contains ids of packets, receiving process sees what it might have missed!
• If missing packets, send Nak packet to request packets (Nak is mcast!)
![Page 50: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/50.jpg)
50
RMP – Avoiding Nak Implosion
• Before sending Nak, start random timer Tr
• If see missing packets, kill Tr, accept packets
• If see Nak for same packets before Tr, kill Tr, start new timer Tn
• If Tn or Tr, send Nak
![Page 51: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/51.jpg)
51
RMP – Protocol Model
Multicast
Media
A
C
B
DATA (A, 1)ACK ( (A,1), C, 1)
ACK ( NULL, A, 2)
Event Order
DATA (A, 1)
ACK ( (A, 1), C, 1)
ACK (NULL, A, 2)
Imposed Order
Timestamp Event
1 ACK ( (A, 1), C, 1)
DATA (A, 1)
2 ACK (NULL, A, 2)
Initial Token Site
(1) B is TS
(2) A sends (1)
(3) B assigns TS 1 to
(A,1), passes token to C.
(4) C* has nothing, so
passes token (NULL Ack)
to A with TS = 2
(5) Packet (A,1) can be
committed after token gets
back to B
* Cannot accept token token unless have all packets being assigned global timestamps
![Page 52: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/52.jpg)
52
Packet Reception vs. Delivery
• When providing total ordering:
• Cannot deliver packets to app when received.
• Must wait until:
• timestamp is assigned
• packet is stable at all nodes (Token is passed n times in group of size n)
• When providing source ordering, can deliver
packet if have all previous packets from source
• Question: When can a node delete a packet?
![Page 53: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/53.jpg)
53
Packet Stability
• Rule: you can delete a packet if no other group
member will need it
• When is that?
• When the site that that assigned a global time stamp
to the packet becomes the token site again!
• How to know this? Answer: Ordering Queue
• list of all packets in order of time stamp
• when list has n + 1 Ack packets, delete oldest Ack and lower
numbered packets
![Page 54: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/54.jpg)
54
RMP - Observations
• Good:
• Use to build distributed Applications where virtual synchrony is required
• Fault Tolerant - group reforms after network partition
• Not So Good:
• Does not scale well (maybe to 100 nodes)
• Question: Why do you think this is so?
• More complex protocol than PGM
• Implementations are no longer available (except mine), but specs with FSMs are available
![Page 55: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/55.jpg)
55
Part VII
Conclusion
![Page 56: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/56.jpg)
56
Assignment & Readings
� Readings
� IP Multicast Backgrounder (PDF File)
� Chapter 4, section 4.7 - multicast routing
� RFC 1022 (IP Multicast Extensions) (optional)
� RFC 3208 (PGM) (optional)
![Page 57: Data Communication & Networks G22.2262-001Why Multicast, Why Not Unicast? Unicast: Many applications require same message sent to many nodes (10, 100, 1000, n) Same message transits](https://reader034.fdocuments.net/reader034/viewer/2022051606/601a14b331da43084a315446/html5/thumbnails/57.jpg)
57
Next Session:Performance in Queuing Systems