IP Multicast CS 5248 NUS SOC CS 5248

  • Slides: 103
Download presentation
IP Multicast CS 5248 NUS. SOC. CS 5248 Ooi Wei Tsang

IP Multicast CS 5248 NUS. SOC. CS 5248 Ooi Wei Tsang

You are Here Encoder Decoder Middlebox Receiver Sender Network NUS. SOC. CS 5248 OOI

You are Here Encoder Decoder Middlebox Receiver Sender Network NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models sender receiver Traditional Applications: One-to-One NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models sender receiver Traditional Applications: One-to-One NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models sender receivers Media Applications: One-to-Many NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models sender receivers Media Applications: One-to-Many NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models Media Applications: Many-to-Many NUS. SOC. CS 5248 OOI Wei Tsang

Communication Models Media Applications: Many-to-Many NUS. SOC. CS 5248 OOI Wei Tsang

Naïve Solution n Create M unicast connection for M clients NOT Scalable! NUS. SOC.

Naïve Solution n Create M unicast connection for M clients NOT Scalable! NUS. SOC. CS 5248 OOI Wei Tsang

Famous Example n Victoria’s Secret Spring Fashion Show n Live Broadcast in 1999 n

Famous Example n Victoria’s Secret Spring Fashion Show n Live Broadcast in 1999 n Video bit-rate: 28 Kbps n Number of viewers: 1. 5 Millions NUS. SOC. CS 5248 OOI Wei Tsang

IP Multicast NUS. SOC. CS 5248 Ooi Wei Tsang

IP Multicast NUS. SOC. CS 5248 Ooi Wei Tsang

New Model: IP Multicast sender receivers NUS. SOC. CS 5248 OOI Wei Tsang

New Model: IP Multicast sender receivers NUS. SOC. CS 5248 OOI Wei Tsang

Group and Members NUS. SOC. CS 5248 OOI Wei Tsang

Group and Members NUS. SOC. CS 5248 OOI Wei Tsang

Sending to a Group NUS. SOC. CS 5248 OOI Wei Tsang

Sending to a Group NUS. SOC. CS 5248 OOI Wei Tsang

Joining and Leaving NUS. SOC. CS 5248 OOI Wei Tsang

Joining and Leaving NUS. SOC. CS 5248 OOI Wei Tsang

Anyone can Send NUS. SOC. CS 5248 OOI Wei Tsang

Anyone can Send NUS. SOC. CS 5248 OOI Wei Tsang

Multicast Address n Group ID or “Multicast address” n 224. 0. 0. 0 –

Multicast Address n Group ID or “Multicast address” n 224. 0. 0. 0 – 239. 255 NUS. SOC. CS 5248 OOI Wei Tsang

Unicast S A B C Router A Router C NUS. SOC. CS 5248 OOI

Unicast S A B C Router A Router C NUS. SOC. CS 5248 OOI Wei Tsang B

Multicast S G A Router C NUS. SOC. CS 5248 OOI Wei Tsang B

Multicast S G A Router C NUS. SOC. CS 5248 OOI Wei Tsang B

Multicast S A G Router G C NUS. SOC. CS 5248 OOI Wei Tsang

Multicast S A G Router G C NUS. SOC. CS 5248 OOI Wei Tsang Router B

Multicast G S A Router G Router C NUS. SOC. CS 5248 OOI Wei

Multicast G S A Router G Router C NUS. SOC. CS 5248 OOI Wei Tsang B

Question 1 should I forward this packet to my subnet? Router ? NUS. SOC.

Question 1 should I forward this packet to my subnet? Router ? NUS. SOC. CS 5248 OOI Wei Tsang G

Question 2 which neighbors should I forward this packet? Router NUS. SOC. CS 5248

Question 2 which neighbors should I forward this packet? Router NUS. SOC. CS 5248 OOI Wei Tsang

Group Management NUS. SOC. CS 5248 Ooi Wei Tsang

Group Management NUS. SOC. CS 5248 Ooi Wei Tsang

Group Management n Routers maintain “local host group membership table” n “which group has

Group Management n Routers maintain “local host group membership table” n “which group has a member in my subnet ? ” NUS. SOC. CS 5248 OOI Wei Tsang

IGMP v 1. 0 n JOIN message A : “I want to join group

IGMP v 1. 0 n JOIN message A : “I want to join group G. ” n QUERY message R : “Which group have you joined ? ” NUS. SOC. CS 5248 OOI Wei Tsang

IGMP v 1. 0 n MEMBERSHIP Report A : “I am a member of

IGMP v 1. 0 n MEMBERSHIP Report A : “I am a member of group G” A : “I am a member of group H” B : “I am a member of group G” NUS. SOC. CS 5248 OOI Wei Tsang

Avoiding Implosion n Select random delay t n After time t, if nobody belongs

Avoiding Implosion n Select random delay t n After time t, if nobody belongs to the same group, send membership report. n Resend the report after some delay just to be safe. NUS. SOC. CS 5248 OOI Wei Tsang

Leave n If no one in group G after a few query messages, remove

Leave n If no one in group G after a few query messages, remove G from local host membership table. n Problem: Long leave latency (minutes) NUS. SOC. CS 5248 OOI Wei Tsang

IGMP v 2. 0 n LEAVE message “I want to leave group G” n

IGMP v 2. 0 n LEAVE message “I want to leave group G” n Group-Specific Query “Anybody else belongs to group G ? ” NUS. SOC. CS 5248 OOI Wei Tsang

IGMP v 3. 0 n Group-Source Inclusion “I want to listen to S from

IGMP v 3. 0 n Group-Source Inclusion “I want to listen to S from group G” n Group-Source Exclusion “I do not want to listen to S from group G” NUS. SOC. CS 5248 OOI Wei Tsang

Question 2 which neighbors should I forward this packet? Router NUS. SOC. CS 5248

Question 2 which neighbors should I forward this packet? Router NUS. SOC. CS 5248 OOI Wei Tsang

Routing Protocols NUS. SOC. CS 5248 Ooi Wei Tsang

Routing Protocols NUS. SOC. CS 5248 Ooi Wei Tsang

Routing Protocols n Generic Methods : n Form a tree to all routers with

Routing Protocols n Generic Methods : n Form a tree to all routers with members n Deliver the packets along the tree NUS. SOC. CS 5248 OOI Wei Tsang

Shortest Path Tree n One tree for each source for each group NUS. SOC.

Shortest Path Tree n One tree for each source for each group NUS. SOC. CS 5248 OOI Wei Tsang

Shared Tree n One tree for each group NUS. SOC. CS 5248 OOI Wei

Shared Tree n One tree for each group NUS. SOC. CS 5248 OOI Wei Tsang

Routing Protocols n DVMRP n CBT n PIM NUS. SOC. CS 5248 OOI Wei

Routing Protocols n DVMRP n CBT n PIM NUS. SOC. CS 5248 OOI Wei Tsang

DVMRP Distance Vector Multicast Routing Protocol NUS. SOC. CS 5248 Ooi Wei Tsang

DVMRP Distance Vector Multicast Routing Protocol NUS. SOC. CS 5248 Ooi Wei Tsang

From S to G Q R P T NUS. SOC. CS 5248 OOI Wei

From S to G Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Is R on the shortest path to S ? Q R P T NUS.

Is R on the shortest path to S ? Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

If no. . ignore the packet Q R P T NUS. SOC. CS 5248

If no. . ignore the packet Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

If yes. . continue Where should I forward it to ? Q R P

If yes. . continue Where should I forward it to ? Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Forward to subnet? Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Forward to subnet? Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Truncation n Router checks local host membership table. n Duplicate the packets only if

Truncation n Router checks local host membership table. n Duplicate the packets only if there is a member in the subnet. NUS. SOC. CS 5248 OOI Wei Tsang

Truncation Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Truncation Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Forward to Neighbors? R NUS. SOC. CS 5248 OOI Wei Tsang ? Q ?

Forward to Neighbors? R NUS. SOC. CS 5248 OOI Wei Tsang ? Q ? T P

Observation n If neighbor is going to ignore my packets, don’t need to send

Observation n If neighbor is going to ignore my packets, don’t need to send the packets to it. NUS. SOC. CS 5248 OOI Wei Tsang

Exchanging Routing Tables R Dest Next Hop Cost S P 4 A T 3

Exchanging Routing Tables R Dest Next Hop Cost S P 4 A T 3 B P 2 Q P T NUS. SOC. CS 5248 OOI Wei Tsang

Flooding n Default : Always send to neighboring routers, unless told otherwise. NUS. SOC.

Flooding n Default : Always send to neighboring routers, unless told otherwise. NUS. SOC. CS 5248 OOI Wei Tsang

Pruning n Routers who received a “useless” packet send a prune message back. “Don’t

Pruning n Routers who received a “useless” packet send a prune message back. “Don’t send me packets addressed to G anymore !” NUS. SOC. CS 5248 OOI Wei Tsang

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q R P PRUNE NUS. SOC. CS 5248 OOI Wei Tsang T

Q R P PRUNE NUS. SOC. CS 5248 OOI Wei Tsang T

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q R P GRAFT NUS. SOC. CS 5248 OOI Wei Tsang T

Q R P GRAFT NUS. SOC. CS 5248 OOI Wei Tsang T

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q PRUNE R P T NUS. SOC. CS 5248 OOI Wei Tsang

Q PRUNE R P T NUS. SOC. CS 5248 OOI Wei Tsang

A router needs to remember. . n If it has any member for group

A router needs to remember. . n If it has any member for group G in its subnet n Where to forward packets from source S to group G n Which neighbors will not throw my packets away n Which sub-trees are pruned NUS. SOC. CS 5248 OOI Wei Tsang

Periodically Rebuild Tree n DVMRP periodically forget about everything it learned n Why? n

Periodically Rebuild Tree n DVMRP periodically forget about everything it learned n Why? n To clean-up “left-over” states for groups that are no longer active. NUS. SOC. CS 5248 OOI Wei Tsang

Problems of DVMRP n Not Scalable n O(|S||G|) n Not Efficient n Flooding initially

Problems of DVMRP n Not Scalable n O(|S||G|) n Not Efficient n Flooding initially n Periodically exchange routing tables NUS. SOC. CS 5248 OOI Wei Tsang

CBT Core-based Tree NUS. SOC. CS 5248 Ooi Wei Tsang

CBT Core-based Tree NUS. SOC. CS 5248 Ooi Wei Tsang

Core Based Tree n One tree per group n Pick a router as core

Core Based Tree n One tree per group n Pick a router as core n Identity of core can be preconfigured or computing using some multicast address to core address mapping. NUS. SOC. CS 5248 OOI Wei Tsang

A Shared Tree U Q NUS. SOC. CS 5248 OOI Wei Tsang W R

A Shared Tree U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

V Joins G U W R JOIN Q NUS. SOC. CS 5248 OOI Wei

V Joins G U W R JOIN Q NUS. SOC. CS 5248 OOI Wei Tsang core P V

V Joins G U W R JOIN Q NUS. SOC. CS 5248 OOI Wei

V Joins G U W R JOIN Q NUS. SOC. CS 5248 OOI Wei Tsang core P V

V Joins G U W R ACK Q NUS. SOC. CS 5248 OOI Wei

V Joins G U W R ACK Q NUS. SOC. CS 5248 OOI Wei Tsang core P V

V Joins G U W R ACK Q NUS. SOC. CS 5248 OOI Wei

V Joins G U W R ACK Q NUS. SOC. CS 5248 OOI Wei Tsang core P V

V Joins G U Q NUS. SOC. CS 5248 OOI Wei Tsang W R

V Joins G U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

U Joins G U W R JOIN NUS. SOC. CS 5248 OOI Wei Tsang

U Joins G U W R JOIN NUS. SOC. CS 5248 OOI Wei Tsang Q core P V

U Joins G U W R ACK Q intercept! NUS. SOC. CS 5248 OOI

U Joins G U W R ACK Q intercept! NUS. SOC. CS 5248 OOI Wei Tsang core P V

Echo U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P

Echo U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

Flush! U Q NUS. SOC. CS 5248 OOI Wei Tsang W R X core

Flush! U Q NUS. SOC. CS 5248 OOI Wei Tsang W R X core P V

Send (on Tree) U Q NUS. SOC. CS 5248 OOI Wei Tsang W R

Send (on Tree) U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

Send (Not on Tree) U Q NUS. SOC. CS 5248 OOI Wei Tsang W

Send (Not on Tree) U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

CBT Strengths n Scalable n O(|G|) states n No flooding n No exchange of

CBT Strengths n Scalable n O(|G|) states n No flooding n No exchange of states NUS. SOC. CS 5248 OOI Wei Tsang

CBT Weaknesses n Core placement matters n Single point of failure n Core can

CBT Weaknesses n Core placement matters n Single point of failure n Core can become bottleneck NUS. SOC. CS 5248 OOI Wei Tsang

SPT vs. ST NUS. SOC. CS 5248 Ooi Wei Tsang

SPT vs. ST NUS. SOC. CS 5248 Ooi Wei Tsang

Experiment 1 n “Shared tree has worst delay than shortest path tree. How much

Experiment 1 n “Shared tree has worst delay than shortest path tree. How much worst? ” n Generate 500 random networks, 50 nodes each, 10 -member groups NUS. SOC. CS 5248 OOI Wei Tsang

Experimental Results Delay Ratio (CBT/SPT) ~1. 4 1 NUS. SOC. CS 5248 OOI Wei

Experimental Results Delay Ratio (CBT/SPT) ~1. 4 1 NUS. SOC. CS 5248 OOI Wei Tsang Node Degree

Experiment 2 n “CBT causes traffic to concentrate on a set of links. How

Experiment 2 n “CBT causes traffic to concentrate on a set of links. How bad is this concentration? ” n Generate 500 random networks, 50 nodes, 300 groups, 40 members, 32 senders NUS. SOC. CS 5248 OOI Wei Tsang

Experimental Results Max Number of Flows/Link 9 K CBT SPT 6 K NUS. SOC.

Experimental Results Max Number of Flows/Link 9 K CBT SPT 6 K NUS. SOC. CS 5248 OOI Wei Tsang Node Degree

PIM Protocol Independent Multicast NUS. SOC. CS 5248 Ooi Wei Tsang

PIM Protocol Independent Multicast NUS. SOC. CS 5248 Ooi Wei Tsang

PIM n Get the best of both world : n dense mode : shortest

PIM n Get the best of both world : n dense mode : shortest path n sparse mode : shared tree NUS. SOC. CS 5248 OOI Wei Tsang

PIM-DM n Similar to DVMRP, except n send to neighbors even if they will

PIM-DM n Similar to DVMRP, except n send to neighbors even if they will ignore my packets NUS. SOC. CS 5248 OOI Wei Tsang

PIM-SM n Similar to CBT except n links are uni-directional U Q NUS. SOC.

PIM-SM n Similar to CBT except n links are uni-directional U Q NUS. SOC. CS 5248 OOI Wei Tsang W R core P V

Join R P NUS. SOC. CS 5248 OOI Wei Tsang Q join core

Join R P NUS. SOC. CS 5248 OOI Wei Tsang Q join core

Send (SM) S R P NUS. SOC. CS 5248 OOI Wei Tsang Q core

Send (SM) S R P NUS. SOC. CS 5248 OOI Wei Tsang Q core

Switch (Join S) S R switch P NUS. SOC. CS 5248 OOI Wei Tsang

Switch (Join S) S R switch P NUS. SOC. CS 5248 OOI Wei Tsang Q core

Switch S switch P NUS. SOC. CS 5248 OOI Wei Tsang Q R core

Switch S switch P NUS. SOC. CS 5248 OOI Wei Tsang Q R core

Prune S R P NUS. SOC. CS 5248 OOI Wei Tsang Q prune core

Prune S R P NUS. SOC. CS 5248 OOI Wei Tsang Q prune core

Summary n What is IP Multicast? n How to route packets n IGMP n

Summary n What is IP Multicast? n How to route packets n IGMP n DVMRP/CBT/PIM NUS. SOC. CS 5248 OOI Wei Tsang

So, why can’t we multicast? n Who assign multicast address? n Who pay for

So, why can’t we multicast? n Who assign multicast address? n Who pay for multicast traffic? n How to inter-operate between protocols? n How can we prevent Do. S? NUS. SOC. CS 5248 OOI Wei Tsang

System Design Considerations or “What I learned from Multicast Routing Protocols” NUS. SOC. CS

System Design Considerations or “What I learned from Multicast Routing Protocols” NUS. SOC. CS 5248 Ooi Wei Tsang

Practical Issues n Money matters n Security matters NUS. SOC. CS 5248 OOI Wei

Practical Issues n Money matters n Security matters NUS. SOC. CS 5248 OOI Wei Tsang

Scalability n Minimize states n Avoid implosion n random timer n Avoid hot spot

Scalability n Minimize states n Avoid implosion n random timer n Avoid hot spot NUS. SOC. CS 5248 OOI Wei Tsang

Robustness n Periodically forget (soft-states) n Echo messages (alive messages) NUS. SOC. CS 5248

Robustness n Periodically forget (soft-states) n Echo messages (alive messages) NUS. SOC. CS 5248 OOI Wei Tsang

Minimize Interface /Coupling n do not assume unicast routing protocol NUS. SOC. CS 5248

Minimize Interface /Coupling n do not assume unicast routing protocol NUS. SOC. CS 5248 OOI Wei Tsang

Middle Ground n If you have two schemes with different pros/cons, think “middle ground”

Middle Ground n If you have two schemes with different pros/cons, think “middle ground” NUS. SOC. CS 5248 OOI Wei Tsang

Possible Survey and Project Topics NUS. SOC. CS 5248 Ooi Wei Tsang

Possible Survey and Project Topics NUS. SOC. CS 5248 Ooi Wei Tsang

Application-Level Multicast NUS. SOC. CS 5248 OOI Wei Tsang

Application-Level Multicast NUS. SOC. CS 5248 OOI Wei Tsang

Single Source Multicast n Most media applications do not require many-to-many communication. n Single

Single Source Multicast n Most media applications do not require many-to-many communication. n Single Source Multicast protocols have been proposed NUS. SOC. CS 5248 OOI Wei Tsang

Transport Layer NUS. SOC. CS 5248 Ooi Wei Tsang

Transport Layer NUS. SOC. CS 5248 Ooi Wei Tsang

TCP vs UDP n TCP offers n packet ordering n reliability n flow control

TCP vs UDP n TCP offers n packet ordering n reliability n flow control n UDP n just send! NUS. SOC. CS 5248 OOI Wei Tsang

TCP vs UDP n Continuous media uses UDP n Retransmission may not be useful

TCP vs UDP n Continuous media uses UDP n Retransmission may not be useful n Flow control makes throughput unpredictable n Multicast + TCP has problems NUS. SOC. CS 5248 OOI Wei Tsang

UDP Header struct { short } NUS. SOC. CS 5248 OOI Wei Tsang UDPHeader

UDP Header struct { short } NUS. SOC. CS 5248 OOI Wei Tsang UDPHeader src_port; dst_port; length; checksum;

Is UDP Enough? n Who sent this packet? n How do I interpret this

Is UDP Enough? n Who sent this packet? n How do I interpret this packet? n When was this packet generated? n Which packets come first? NUS. SOC. CS 5248 OOI Wei Tsang

RTP n “Real-Time Transport Protocol” (not really a transport protocol) n Provides n source

RTP n “Real-Time Transport Protocol” (not really a transport protocol) n Provides n source identification n sequence number n time stamping n payload identification NUS. SOC. CS 5248 OOI Wei Tsang