broadcast and multicast. overview last time: routing protocols for the internet hierarchical...

46
Broadcast and Multicast

Upload: scott-williams

Post on 31-Dec-2015

222 views

Category:

Documents


0 download

TRANSCRIPT

Broadcast and Multicast

Overview

Last time: routing protocols for the Internet Hierarchical routing RIP, OSPF, BGP

This time: broadcast and multicast

Definitions

Unicast Single source, single receiver

Broadcast Send same packet to all receivers “all” usually limited in some way

LAN, subnet, organization

Multicast Send same packet to many receivers

In-network Duplication

R1

R2

R3 R4

sourceduplication

R1

R2

R3 R4

in-networkduplication

duplicatecreation/transmissionduplicate

duplicate

Source duplication inefficient Source does not know all destinations

Flooding

Loops Broadcast storms

A B

D C

Controlled Flooding

Ignore duplicate messages Cache to remember what’s been sent before

Special case: sequence numbers Used with broadcast updates Source assigns increasing seq no to broadcast Record latest seq no from each source Discard messages with old seq no’s

Ensures always use the latest update

Reverse Path Forwarding

Idea: use unicast routing information Forward only messages coming from

the shortest path to source Note: problem with asymmetric paths

Reverse Path Forwarding

AC

B

G F

ED

45

26

4

1

23

6

Reverse Path Forwarding

AC

B

G F

ED

45

26

4

1

23

6

Forward Path

Reverse Path Forwarding

AC

B

G F

ED

45

26

4

1

23

6

Reverse Path

Spanning Tree Subset of graph edges that forms a tree Flood messages along all edges on

spanning tree, ignore all others

A

B

G

DE

c

F

A

B

G

DE

c

F

(a) Broadcast initiated at A (b) Broadcast initiated at D

Minimal Spanning Tree

Minimal cost spanning tree Minimal by sum of all edge costs Provably optimal broadcast cost, for any

source in the tree NP-complete problem (not true)

Approximation: Shortest unicast paths to some root

Minimum Spanning Tree

AC

B

G F

ED

45

26

4

1

23

6

Shortest Path Tree

AC

B

G F

ED

45

26

4

1

23

6

Multicast

Motivation?

Multicast Issues

Naming Membership Management Routing

IP Multicast Naming

Class D address represents multicast group E.g. 226.17.30.197

Datagram with destination address set to group delivered to all hosts in the group Indirection 226.17.30.197 => 65.30.1.2, 66.8.3.53,

128.32.75.60, … Sender may or may not be in the group

No address hierarchy or subnets How is routing done?

Membership Management

Some other questions: Who is part of the group? How does one join? How does one leave? Who decides if it’s OK?

Membership management answers these

IGMP

Internet Group Management Protocol Runs only between host and router

Multicast routing takes care of communication between routers

IGMP

hosts

routers

host-to-router protocol(IGMP)

multicast routing protocols(various)

IGMP query

IGMP membership_query Router sends query Find out all groups a host belongs to Can query a specific group instead Sent to the “all systems group”

(224.0.0.1) with TTL=1

IGMP report

IGMP membership_report Response from host to a query Can send report unsolicited

Join group this way!

IGMP leave_group Optional Router will clean up membership info on

next membership_query

IGMP properties

Minimalist semantics Host controlled membership

No decision about: Who controls membership Invitations How to find groups and join them

Move these decisions to application layer

Soft state

Host is authoritative on group membership

Router maintains “soft state” A crashed router soon recovers

Sends a new membership_query Misdelivers packets for a little while

OK by IP service model!

Multicast Routing

A number of routers have hosts that belong to a multicast group

How to connect them (and others) in a tree? Shared tree: single tree for all Source-based tree: many trees

Core-Based Tree

Tree rooted at a core To join a group, send unicast message

towards core Add all links traversed until hit existing

tree

Diagram

Core

Choice of Core

If core close to source, efficiency is good

If core far from source, efficiency falls Delay up to twice optimal

Optimal core placement is NP-hard Use heuristics

Source-based Trees

Different tree for each possible source Why?

Reverse path forwarding to figure out tree

Pruning to leave out routers

Pruning Prune when no attached members or

downstream routers Propagate prune messages upstream

R1

R2

R3

R4

R5

R6 R7

router with attachedgroup member

router with no attachedgroup member

prune message

S: source

links with multicastforwarding

P

P

P

DVMRP

Distance Vector Multicast Routing Protocol DV + RPF + Pruning DV vector carries distance to multicast

sources Pruning carries a timeout

Afterwards, traffic delivery is resumed Explicit graft message to reverse pruning

Done upon join

MOSPF

Multicast Extensions to OSPF Link-state advertisements include multicast

group membership Only report directly connected hosts

Compute shortest-path spanning tree rooted at source On demand, when receiving packet from source

for the first time Forward multicast traffic along tree

MOSPF performance

Global state allows source-based trees to be used Faster delivery of messages

Overhead Joins and leaves flooded to all routers Any change may cause whole tree to be

recomputed

PIM

Protocol Independent Multicast Uses routing tables, but agnostic of how they are

built Two settings:

Dense: most routers members of a group Use RPF flooding with pruning

Sparse: most routers not members of a group Use shared tree or source-based tree based on data

characteristics

Uses soft-state

Sparse vs. Dense

Dense Mode Dense participants B/W plentiful Membership

assumed until pruned

Data driven

Sparse Mode Sparse participants B/W overhead

significant Membership

explicitly requested Receiver driven

Shared v. Source-based Trees

Shared trees used initially Tree rooted at rendezvouz-point (RP)

Can switch to source-based trees when data rate is high RP sends a Join message to source Each router independently decides to

switch to source-based tree, sends Join to source

Shared Tree Example

RP

S

G

GG

PIM Receiver Join

RP

S

G

GG

G

Join *,G

Report G

What if join is here?

PIM Shared Tree After Join

RP

S

G

GG

G

G

PIM Source Based Tree

RP

S

G

GG

G

G

Join s,g

PIM Source Based Tree

RP

S

G

GG

G

G

PIM routing tables

Routing entries of the form (s,g) s - source g - group

Wildcard entries (*,g) for shared-group trees

Packets are routed using best match

Steiner Trees

Steiner Tree: minimum cost tree connecting all routers with attached group members

problem is NP-complete excellent heuristics exists not used in practice:

computational complexity information about entire network needed monolithic: rerun whenever a router needs to join/leave

Minimum Spanning Tree

AC

B

G F

ED

45

26

4

1

33

6

Steiner Tree

AC

B

G F

ED

45

26

4

1

33

6

Tunneling

Q: How to connect “islands” of multicast routers in a “sea” of unicast routers?

mcast datagram encapsulated inside “normal” (non-multicast-addressed) datagram

normal IP datagram sent thru “tunnel” via regular IP unicast to receiving mcast router

receiving mcast router unencapsulates to get mcast datagram

physical topology logical topology