nus.soc.cs5248 ooi wei tsang application-level multicast

54
NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

Upload: alfred-glenn

Post on 21-Jan-2016

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Application-Level Multicast

Page 2: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

You are Here

Network

Encoder

Sender

Middlebox

Receiver

Decoder

Page 3: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Application-Level Multicast

RouterRouter

Router

Router

A

B

C

SA

Page 4: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Application-Level Multicast

RouterRouter

Router

Router

A

B

C

SC

B

Page 5: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Overlay Network

S

A

B C

Page 6: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Penalty: Delay

RouterRouter

Router

Router

A

B

C

S

S

A

B C

Page 7: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Penalty: Network Resource

RouterRouter

Router

Router

A

B

C

S

S

A

B C

Page 8: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Link Stress

RouterRouter

Router

Router

A

B

C

S

Page 9: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Questions

How to construct overlay multicast tree?

How to maintain overlay multicast tree?

Page 10: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

A Case for End-System Multicast

Y. Chu, S. Rao, S. Seshan, H. ZhangJSAC 2002

Page 11: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Narada’s Idea

Build a mesh, then build a tree

S

A

B C

S

A

B C

Page 12: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Why Build Mesh?

Page 13: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Desirable Property of MeshPath between any two nodes must be “good”

Cannot be too sparse or too dense

Page 14: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to build Mesh?

Node joinRandomly choose some existing members as neighbour

S

A

B C

Page 15: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to maintain Mesh?

Everybody knows everybodyEach node maintains a table

Address Last Seq No Last Update

1 512 10:00am

2 603 10:03am

3 341 10:02am

4 704 09:59am

Page 16: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to update table?

Refresh message to neigboursreceive message 604 from node 2

Address Last Seq No Last Update

1 512 10:00am

2 604 10:16am

3 341 10:02am

4 704 09:59am

Page 17: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to update table?

Exchange Table

Address Last Seq No Last Update

1 512 10:00am

2 604 10:16am

3 341 10:02am

4 704 09:59am

Address

Last Seq No Last Update

1 513 10:07am

2 604 10:19am

3 343 10:10am

4 702 9:51am

Page 18: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to maintain Mesh?

Neighbor failureProbes if no refresh messages for a while

S

A

B C

Page 19: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to maintain Mesh?

Mesh PartitionProbes if no updates for a while, add random edges if alive

S

A

B C

Page 20: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to Optimize Mesh?

Mesh needs to periodically updated because:nodes join and leavenetwork condition changespartition repair add unneeded edges

initial constructions are random

Page 21: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Adding a Link

Node i periodically probe randomly selected members j

Ask “what if I add (i,j)?”

Page 22: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Adding a Link (i,j)

for each node mdcurr(i,m) = current latency from i

to mdnew(i,m) = new latency from i to m

if dnew(i,m) < dcurr(i,m)utility += 1 - dnew(i,m)/dcurr(i,m)

add (i,j) if utility is high

Page 23: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Adding a Link

S

A

B C

S

A

B C

Page 24: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Removing a Link

Harder to ask “what if I remove link (i,j)?”

compute cost(i,j) instead: number of nodes for which i uses j as next hop

Page 25: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

cost(i,j)

S

A

B C

cost(S,A) = 2

Page 26: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

cost(i,j)

S

A

B C

cost(S,A) = 3cost(A,S) = 1

D

E

Page 27: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Removing a link

if max(cost(i,j), cost(j,i)) < Threshold

drop link (i,j)

(Threshold should depends on group size)

Page 28: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Narada’s Idea

Build a mesh, then build a tree

S

A

B C

S

A

B C

Page 29: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

How to build tree?

Modify DVMRPCost definition

Pick widest pathBreak ties by latency

Page 30: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: Bandwidth

Page 31: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: RTT

Page 32: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: Link Stress

Page 33: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

SUM(Delay x Stress)

Page 34: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Problem

Narada does not scaleState maintenance Message overhead

Page 35: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Scalable Application Layer Multicast

S. Banerjee, B. Bhattacharjee, and C. Kommareddy SIGCOMM 2002

Page 36: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

NICE

NICE is scalableState maintenance Message overhead

Page 37: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Members

Page 38: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Clusters

Page 39: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Leader

Page 40: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Layer

Page 41: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Nodes per Cluster[k, 3k-1]

Page 42: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Control Topology

Page 43: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Multicast Tree

Page 44: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Analysis

height =

Page 45: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Analysis

Let Li be the highest layer of a node

Number of neighbours =

Number of nodes at layer Li =

Page 46: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Analysis

Worst Case Control Message Overhead =

Average Case Control Message Overhead =

Page 47: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Analysis

Number of hops between 2 nodes =

Page 48: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Analysis

Maximum Degree of a Node =

Page 49: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Multicast Tree (Improved)

Page 50: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Node Join

RP

Page 51: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Other operations

Node leave

Node failure

Cluster merge/split

Page 52: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: Control Overhead

Page 53: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: Link Stress

Page 54: NUS.SOC.CS5248 Ooi Wei Tsang Application-Level Multicast

NUS.SOC.CS5248Ooi Wei Tsang

Evaluation: Path Length