Group Communication - Rutgers University · Group Communication Paul Krzyzanowski...
Transcript of Group Communication - Rutgers University · Group Communication Paul Krzyzanowski...
Page 1Page 1
Group Communication
Paul Krzyzanowski
Distributed Systems
Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
Page 2
Modes of communication
• unicast– 1 1– Point-to-point
• anycast– 1 nearest 1 of several identical nodes– Introduced with IPv6; used with BGP
• netcast– 1 many, 1 at a time
• multicast– 1 many– group communication
• broadcast– 1 all
Page 3
Groups
Groups are dynamic– Created and destroyed
– Processes can join or leave• May belong to 0 or more groups
Send message to one entity– Deliver to entire group
Deal with collection of processes as one abstraction
Page 4
Design Issues
• Closed vs. Open– Closed: only group members can sent messages
• Peer vs. Hierarchical– Peer: each member communicates with group
– Hierarchical: go through coordinator
• Managing membership– Distributed vs. centralized
• Leaving & joining must be synchronous
• Fault tolerance?
Page 5Page 5
ImplementingGroup Communication
Mechanisms
Page 6
Hardware multicast
Hardware support for multicast– Group members listen on network address
listen addr=a1
listen addr=a1
listen addr=a1
send addr=a1
Page 7
Hardware broadcast
Hardware support for broadcast– Software filters multicast address
• May be auxiliary address
broadcast(id=m)accept id=m
accept id=m
accept id=m
discard id=m
discard id=m
Page 8
Software: netcast
Multiple unicasts (netcast)– Sender knows group members
listen local addr=a2
listen local addr=a3
listen local addr=a5
send(a3)
Page 9
Software
Multiple unicasts via group coordinator– coordinator knows group members
listen local addr
listen local addr
listen local addr
coordinator
send(a3)
send(c)
Page 10Page 10
Reliability of multicasts
Page 11
Atomic multicast
AtomicityMessage sent to a group arrives at all group members
• If it fails to arrive at any member, no member will process it.
ProblemsUnreliable network
• Each message should be acknowledged
• Acknowledgements can be lost
Message sender might die
Page 12
Achieving atomicity (2-phase commit variation)
Retry through network failures & system downtime
Sender and receivers maintain persistent log
1. Send message to all group members• Each receiver acknowledges message
• Saves message and acknowledgement in log
• Does not pass message to application
2. Sender waits for all acknowledgements• Retransmits message to non-responding members
– Again and again… until response received
3. Sender sends “go” message to all members• Each recipient passes message to application
• Sends reply to server
Page 13
Achieving atomicity
Phase 1:– Make sure that everyone gets the message
Phase 2:– Once everyone has confirmed receipt, let the
application see it
All members will eventually get the message
Page 14
Reliable multicast
Best effort– Assume sender will remain alive
– Retransmit undelivered messages
• Send message
• Wait for acknowledgement from each group member
• Retransmit to non-responding members
Page 15
Unreliable multicast
• Basic multicast
• Hope it gets there
Page 16Page 16
Message ordering
Page 17
Good Ordering
Process 0message a
order received
a, b
a, b
message b
Page 18
Bad Ordering
Process 0message a
order received
a, b
b, a
message b
Page 19
Good Ordering
Process 0
Process 1
message a
message b
order received
a, b
a, b
Page 20
Bad Ordering
Process 0
Process 1
message a
message b
order received
a, b
b, a
Page 21
Sending versus Delivering
• Multicast receiver algorithm decides when to deliver a message to the process.
• A received message may be:– Delivered immediately
(put on a delivery queue that the process reads)
– Placed on a hold-back queue(because we need to wait for an earlier message)
– Rejected/discarded(duplicate or earlier message that we no longer want)
Page 22
Sending, delivering, holding back
sender receiver
Multicast sendingalgorithm
Multicast receiving algorithm
hold-back queue
delivery queue
discard
?
sending
delivering
Page 23
Global time ordering
• All messages arrive in exact order sent
• Assumes two events never happen at the exact same time!
• Difficult (impossible) to achieve
Page 24
Total ordering• Consistent ordering everywhere• All messages arrive at all group members in the same
order
• Implementation:– Attach unique totally sequenced message ID– Receiver delivers a message to the application only
if it has received all messages with a smaller ID
1. If a process sends m before m’then any other process that delivers m’will have delivered m.
2. If a process delivers m’ before m” then every other process will have delivered m’before m”.
Page 25
Causal ordering
• Partial ordering– Messages sequenced by Lamport or Vector
timestamps
• Implementation– Deliver messages in timestamp order per-source.
If multicast(G, m) -> multicast(G, m’)then every process that delivers m’ will have delivered m
Page 26
Sync ordering
• Messages can arrive in any order
• Special message type
– Synchronization primitive
– Ensure all pending messages are delivered before any additional (post-sync) messages are accepted
Page 27
FIFO ordering
• Messages can be delivered in different order to different members
• Message m must be delivered before message m’ iff m was sent before m’ from the same host
If a process issues a multicast of m followed by m’, then every process that delivers m’ will have already delivered m.
Page 28
Unordered multicast
• Messages can be delivered in different order to different members
• Order per-source does not matter.
Page 29
Multicasting considerations
atomic
reliable
unreliable
Message Ordering
Reliability
Page 30Page 30
IP Multicasting
Page 31
IP Broadcasting
• 255.255.255.255– Limited broadcast: send to all connected networks
• Host bits all 1 (128.6.255.255, 192.168.0.255)– Directed broadcast on subnet
Page 32
IP Multicasting
Class D network created for IP multicasting
224.0.0.0/4
224.0.0.0 – 239.255.255.255
Host group– Set of machines listening to a particular multicast
address
1110 28-bit multicast address
Page 33
IP multicasting
• Can span multiple physical networks
• Dynamic membership– Machine can join or leave at any time
• No restriction on number of hosts in a group
• Machine does not need to be a member to send messages
Page 34
IP multicast addresses
• Addresses chosen arbitrarily
• Well-known addresses assigned by IANA– Internet Assigned Numbers Authority
– RFC 1340
– Similar to ports – service-based allocation• FTP: port 21, SMTP: port 25, HTTP: port 80
224.0.0.1: all systems on this subnet224.0.0.2: all multicast routers on subnet 224.0.1.16: music service224.0.1.2: SGI’s dogfight224.0.1.7: Audionews service
Page 35
LAN (Ethernet) multicasting
LAN cards support multicast in one (or both) of two ways:
– Packets filtered based on hash(mcast addr)• Some unwanted packets may pass through
• Simplified circuitry
– Exact match on small number of addresses• If host needs more, put LAN card in multicast
promiscuous mode
– Receive all hardware multicast packets
Device driver must check to see if the packet was really needed
Page 36
LAN (Ethernet) multicasting example
Intel 82546EB Dual Port Gigabit Ethernet Controller
10/100/1000 BaseT Ethernet
Supports:
- 16 exact MAC address matches
- 4096-bit hash filter for multicast frames
- promiscuous unicast & promiscuous multicast transfer modes
Page 37
IP multicast on a LAN
• Sender specifies class D address in packet
• Driver must translate 28-bit IP multicast group to multicast Ethernet address
– IANA allocated range of Ethernet MAC addresses for multicast
– Copy least significant 23 bits of IP address to MAC address
• 01:00:5e:xx:xx:xx
• Send out multicast Ethernet packet– Contains multicast IP packet
Bottom 23 bitsof IP address
Page 38
IP multicast on a LAN
Joining a multicast group
Receiving process:– Notifies IP layer that it wants to receive
datagrams addressed to a certain host group
– Device driver must enable reception of Ethernet packets for that IP address
• Then filter exact packets
Page 39
Beyond the physical network
Packets pass through routers which bridge networks together
Multicast-aware router needs to know:– are any hosts on a LAN that belong to a multicast
group?
IGMP:– Internet Group Management Protocol– Designed to answer this question– RFC 1112 (v1), 2236 (v2), 3376 (v3)
Page 40
IGMP v1
• Datagram-based protocol
• Fixed-size messages:– 20 bytes header, 8 bytes data
• 4-bit version
• 4-bit operation (1=query by router, 2=response)
• 16-bit checksum
• 32-bit IP class D address
Page 41
Joining multicast group with IGMP
• Machine sends IGMP report:– “I’m interested in this multicast address”
• Each multicast router broadcasts IGMP queries at regular intervals– See if any machines are still interested
– One query per network interface
• When machine receives query– Send IGMP response packet for each group for
which it is still interested in receiving packets
Page 42
Leaving a multicast group with IGMP
• No response to an IGMP query– Machine has no more processes which are
interested
• Eventually router will stop forwarding packets to network when it gets no IGMP responses
Page 43
IGMP enhancements
• IGMP v2– Leave group messages added
– Useful for high-bandwidth applications
• IGMP v3– Hosts can specify list of hosts from which they
want to receive traffic.
– Traffic from other (unwanted) hosts is blocked by the routers and hosts.
Page 44
IP Multicast in use
• Initially exciting:– Internet radio, NASA shuttle missions,
collaborative gaming
• But:– Few ISPs enabled it
– Required tapping into existing streams (not good for on-demand content)
– Industry embraced unicast instead
Page 45
IP Multicast in use
• IPTV is emerging as the biggest user of IP multicast
• Traffic is within the provider’s network– QoS: typically mix of ATM and/or IP
• 2.5 Mbps VBR video
• 256 kbps CBR voice
• Remainder: ABR for IP traffic
– Unicast for video on demand
– Multicast for live content• Send IGMPv2 message to join a channel when switching
• Burst of unicast data to get the I-frame to ensure 150 msec channel switching times.
Page 46Page 46
The end.