13
Multicast R1 R2 R1 R2 duplicate creation/transmission duplicate duplicate Broadcast Routing deliver packets from source to all other nodes source duplication is inefficient: R2 R3 R4 source duplication R3 R4 in-network duplication source duplication: how does source determine recipient addresses? In-network duplication flooding: when node receives brdcst pckt, sends copy to all neighbors Problems: cycles & broadcast storm controlled flooding: node only brdcsts pkt if it hasn’t brdcst same packet before it hasn’t brdcst same packet before Node keeps track of pckt ids already brdcsted Or reverse path forwarding (RPF): only forward pckt if it arrived on shortest path between node and source spanning tree No redundant packets received by any node Flooding flooding: when node receives brdcst pckt, sends copy to all neighbors EXCEPT the one from which the pckt was received Problems: cycles & broadcast storm 2 1 2 3

Broadcast Routing Multicast - Tor Vergatadidattica.uniroma2.it/assets/uploads/corsi/144529/Multicastpdf.pdf · Network multicast Router actively ... host: sends IGMP report when application

  • Upload
    leque

  • View
    239

  • Download
    5

Embed Size (px)

Citation preview

MulticastR1

R2

R1

R2

duplicatecreation/transmissionduplicate

duplicate

Broadcast Routing

❒deliver packets from source to all other nodes❒source duplication is inefficient:

R2

R3 R4

sourceduplication

R2

R3 R4

in-networkduplication

❒source duplication: how does source determine recipient addresses?

In-network duplication

❒flooding: when node receives brdcst pckt, sends copy to all neighbors❍Problems: cycles & broadcast storm

❒controlled flooding: node only brdcsts pkt if it hasn’t brdcst same packet beforeit hasn’t brdcst same packet before❍Node keeps track of pckt ids already brdcsted❍Or reverse path forwarding (RPF): only forward pckt if it arrived on shortest path between node and source

❒spanning tree❍No redundant packets received by any node

Flooding❒ flooding: when node receives brdcst pckt, sends copy to all neighbors EXCEPT the one from which the pckt was received❍Problems: cycles & broadcast storm

2

1

2

3

Flooding

❒ flooding: when node receives brdcst pckt, sends copy to all neighbors❍Problems: cycles & broadcast storm

2

1

2

3

Flooding

❒ flooding: when node receives brdcst pckt, sends copy to all neighbors❍Problems: cycles & broadcast storm

E ricominciamo come nella prima situazioneBisogna saper distinguere tra quandomandiamo un nuovo messaggio e quandostiamo ritrasmettendo qualcosa che abbiamo già visto� Sequence numbers!

Broacast storm Broacast storm

Broacast storm Controlled flooding

❒ Node keeps track of pckt ids already brdcsted- use <node id, msg id> to identify packets

❒ Reverse path forwarding (RPF): only forward pckt (on all links but the one from which the packet was received) if it which the packet was received) if it arrived on shortest path between node and source

A

B

DE

c

F

Reverse Path Forwarding

G

EFA A

Spanning Tree

❒ First construct a spanning tree

❒Nodes forward copies only along spanning tree

A

B

G

DE

c

F

A

B

G

DE

c

F

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

Spanning Tree: Creation

❒ Center node

❒ Each node sends unicast join message to center node❍ Message forwarded until it arrives at a node already belonging to spanning tree

A

B

G

DE

c

F1

2

3

4

5

(a) Stepwise construction of spanning tree

A

B

G

DE

c

F

(b) Constructed spanning tree

Multicasting ApplicationsMultimedia

television, presentations, etc.

Teleconferencingvoice and video

DatabaseDatabasereplication and updates

Distributed computing and real-time workgroupexchange of results, files, graphics, messages, etc.

Multicast: one sender to many receivers

❒ Multicast: act of sending datagram to multiple receivers with single “transmit” operation

❍ analogy: one teacher to many students

❒ Question: how to achieve multicast

Multicast via unicastMulticast via unicast❒ source sends N

unicast datagrams, one addressed to each of N receivers

multicast receiver (red)

not a multicast receiver (red)

routersforward unicastdatagrams

Multicast: one sender to many receivers

❒ Multicast: act of sending datagram to multiple receivers with single “transmit” operation

❍ analogy: one teacher to many students

❒ Question: how to achieve multicast

Network multicastNetwork multicast❒ Router actively

participate in multicast, making copies of packets as needed and forwarding towards multicast receiversMulticast

routers (red) duplicate and forward multicast datagrams

Multicast: one sender to many receivers

❒ Multicast: act of sending datagram to multiple receivers with single “transmit” operation

❍ analogy: one teacher to many students

❒ Question: how to achieve multicast

Application-layer Application-layer multicast

❒ end systems involved in multicast copy and forward unicast datagrams among themselves

Internet Multicast Service Model

128.119.40.186

128.59.16.12

128.34.108.63multicast group

226.17.30.197

multicast group concept: use of indirection

❍ hosts addresses IP datagram to multicast group

❍ routers forward multicast datagrams to hosts that have “joined” that multicast group

128.34.108.60

226.17.30.197

Multicast groups

� class D Internet addresses reserved for multicast:

� host group semantics:

o anyone can “join” (receive) multicast groupo anyone can “join” (receive) multicast group

o anyone can send to multicast group

o no network-layer identification to hosts of members

� needed: infrastructure to deliver mcast-addressed datagrams to all hosts that have joined that multicast group

Joining a mcast group: two-step process

❒ local: host informs local mcast router of desire to join group: IGMP (Internet Group Management Protocol)

❒ wide area: local router interacts with other routers to receive mcast datagram flow

❍ many protocols (e.g., DVMRP, MOSPF, PIM)❍ many protocols (e.g., DVMRP, MOSPF, PIM)

IGMPIGMP

IGMP

wide-areamulticast routing

IGMP: Internet Group Management Protocol

❒ host: sends IGMP report when application joins mcast group

❍ IP_ADD_MEMBERSHIP socket option

❍ host need not explicitly “unjoin” group when leaving leaving

❒ router: sends IGMP query at regular intervals

❍ host belonging to a mcast group must reply to query

query report

IGMP

❒ router: Host Membership Query msg broadcast on LAN to all hosts

❒ host: Host Membership Report msg to indicate group membership

❒ group-specific Query

❒ Leave Group msg❍ last host replying to Query can send explicit Leave Group msg

❍ router performs group-specific query to see if any group membership

❍ randomized delay before responding

❍ implicit leave via no reply to Query

specific query to see if any hosts left in group

❍ Introduced in RFC 2236

IGMP v4: current version

IGMPv4 Message Format

TypeTypeMembership Query: learn group members on network

RFC 2236RFC 2236

23

Membership Query: learn group members on network

Membership Report: declare group membership

Leave Group: declare departure from group

Max Response TimeMax Response Timein Membership Query only

max time before sending response in 1/10 second units

Checksum:Checksum: 16-bit ones complementGroup Address: Group Address: IP multicast address (zero in request

message)

Multicast Routing: Problem Statement

❒ Goal: find a tree (or trees) connecting routers having local mcast group members

❍ tree: not all paths between routers used

❍ source-based: different tree from each sender to rcvrs

❍ shared-tree: same tree used by all group members

Shared tree Source-based trees

Approaches for building mcast trees

Approaches:

❒ source-based tree: one tree per source❍ shortest path trees

❍ reverse path forwarding❍ reverse path forwarding

❒ group-shared tree: group uses one tree❍ minimal spanning (Steiner)

❍ center-based trees

…we first look at basic approaches, then specific protocols adopting these approaches

Shortest Path Tree

❒ mcast forwarding tree: tree of shortest path routes from source to all receivers❍ Dijkstra’s algorithm

LEGENDS: source

R1

R2

R3

R4

R5

R6 R7

21

6

3 4

5

i

router with attachedgroup member

router with no attachedgroup member

link used for forwarding,i indicates order linkadded by algorithm

LEGENDS: source

Source-Based Trees with Reverse Path Forwarding

� rely on router’s knowledge of unicast shortest path from it to sender

� each router has simple forwarding behavior:

if (mcast datagram received on incoming link on shortest path back to center)

then flood datagram onto all outgoing links

else ignore datagram

Reverse Path Forwarding: example

R1

R2

R4

R5

router with attachedgroup member

router with no attachedgroup member

LEGENDS: source

• result is a source-specific reverse SPT

– may be a bad choice with asymmetric links

R3

R5

R6 R7

group member

datagram will be forwardeddatagram will not be forwarded

Reverse Path Forwarding: pruning

❒ forwarding tree contains subtrees with no mcast group members

❍ no need to forward datagrams down subtree

❍ “prune” msgs sent upstream by router with no downstream group members

LEGEND

R1

R2

R3

R4

R5

R6 R7

router with attachedgroup member

router with no attachedgroup member

prune message

LEGENDS: source

links with multicastforwarding

P

P

P

Shared-Tree: Steiner Tree

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

❒ problem is NP-completeproblem 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

Center-based trees

❒ single delivery tree shared by all

❒ one router identified as “center” of tree

❒ to join:❍ edge router sends unicast join-msg addressed ❍ edge router sends unicast join-msg addressed to center router

❍ join-msg “processed” by intermediate routers and forwarded towards center

❍ join-msg either hits existing tree branch for this center, or arrives at center

❍ path taken by join-msg becomes new branch of tree for this router

Center-based trees: an example

Suppose R6 chosen as center:

R1R4

router with attachedgroup member

LEGEND

3

R2

R3

R4

R5

R6 R7

group member

router with no attachedgroup member

path order in which join messages generated

21

3

1

Multicast Routing Algorithms

DVMRPDVMRP: distance vector source-based with RPF/RPM, based on RIP

MOSPFMOSPF: link-state source-based, extension of OSPF

CBT: core-based tree

Chapter 16b Multicasting

33

CBT: core-based tree

PIM-DM: protocol independent, dense

PIMPIM--SMSM: protocol independent, sparse

MBONE: tunneling via backbone

Distance-Vector Multicast Routing Protocol (DVMRP)The first and, arguably, most widely-deployed multicast routing algorithm used in the InternetStraightforward implementation of sourcesource--based based treestreesbased based treestrees

flood and prune: reverse path forwarding, source-based tree❍ RPF tree based on DVMRP’s own routing tables constructed by communicating DVMRP routers

❍ no assumptions about underlying unicast

❍ initial datagram to mcast group flooded everywhere via RPF

❍ routers not wanting group: send upstream prune

DVMRP: continued…

❒ soft state: DVMRP router periodically (1 min.) “forgets” branches are pruned: ❍ mcast data again flows down unpruned branch❍ downstream router: reprune or else continue to receive data

routers can quickly regraft to tree ❒ routers can quickly regraft to tree ❍ following IGMP join at leaf

❒ odds and ends❍ commonly implemented in commercial routers❍ Mbone routing done using DVMRP

❒ Works well in small autonomous domains

Problem with RPF

RPF does not guarantee that each network receives only one copy

a network may receive two or more copies. The reason is that RPF is not based on the destination address (a group address); The reason is that RPF is not based on the destination address (a group address); forwarding is based on the source address.

DVMRP: Strategies (cont)Reverse path broadcasting: RPB creates a shortest path broadcast

tree from the source to each destination. It guarantees that each destination receives one and only one copy of the packet

To eliminate duplication, we must define only one parent router for each network.

We must have this restriction: A network can receive a multicast packet from a particular source only through a designated parent router.

the router sends the packet only out of those interfaces for which it is the

Computer Networks 22-37

the router sends the packet only out of those interfaces for which it is the designated parent.

The designated parent router can be the router with the shortest path to the source. If more than one router qualifies, the router with the smallest IP address is selected.

DVMRP: Strategies

Reverse path multicasting: RPM adds pruning and grafting to RPB to create a multicast shortest path tree that supports dynamic membership changes

Computer Networks 22-38

Multicast Extensions to OSPFDirect extension extension to OSPF unicast routing

MOSPFMOSPF is designed to operate within a single AS to generate sourcesource--specificspecific, pre, pre--pruned, leastpruned, least--cost treescost trees for each multicast group

Multicast spanning trees calculated on demand

Chapter 16b Multicasting

39

Multicast spanning trees calculated on demandusing Dijkstra’s algorithmDijkstra’s algorithm

Routers periodically flood group membership flood group membership informationinformation to all other routers in its area

added to the link-state advertisements that are used with OSPF

Protocol Independent Multicast (PIM)More general solution to multicast routing

Key assumption: members of any given multicast group are few and widely-dispersed

Independent of underlying unicast routing algorithm

Chapter 16b Multicasting

40

algorithmUses multiple shortest-path unicast routing approach

Two modes of operation (actually, two separate algorithms):dense mode: intra-ASsparse mode: inter-AS

Consequences of Sparse-Dense Dichotomy:

Dense❒ group membership by

routers assumed until routers explicitly prune

❒ data-driven construction

Sparse:❒ no membership until

routers explicitly join❒ receiver- driven

construction of mcast ❒ data-driven construction on mcast tree (e.g., RPF)

❒ bandwidth and non-group-router processing profligate

construction of mcast tree (e.g., center-based)

❒ bandwidth and non-group-router processing conservative

PIM- Dense Mode

flood-and-prune RPF, similar to DVMRP but� underlying unicast protocol provides RPF info

for incoming datagram

� less complicated (less efficient) downstream flood than DVMRP reduces reliance on flood than DVMRP reduces reliance on underlying routing algorithm

� has protocol mechanism for router to detect it is a leaf-node router

PIM - Sparse Mode

❒ center-based approach

❒ Group router(s) sends join msg to rendezvous point (RP)

❍ intermediate routers

R1

R2

R4

join

join

❍ intermediate routers update state and forward join

❒ after joining via RP, router can switch to source-specific tree

❍ increased performance: less concentration, shorter paths

R2

R3

R5

R6R7

join

join

all data multicastfrom rendezvouspoint

rendezvouspoint

PIM - Sparse Mode

sender(s):

❒ unicast data to RP, which distributes down RP-rooted tree

❒ RP can extend mcast

R1

R2

R4

join

join

❒ RP can extend mcast tree upstream to source

❒ RP can send stop msg if no attached receivers

❍ “no one is listening!”

R2

R3

R5

R6R7

join

join

all data multicastfrom rendezvouspoint

rendezvouspoint

PIM-SM continued …

❒ What if source is located in remote domains?❍ PIM-SM requires group-RP mappings to be advertised to all PIM-SM domains

Use Multicast Source Discovery Protocol, ❍ Use Multicast Source Discovery Protocol, functionality is similar to BGP

❒ Inter-domain multicast to be managed by Border Gateway Multicast Protocol (BGMP)

MBONETo enable multicasting, we make a multicast backbone (MBONE) out of

isolated routers, using of the concept of tunneling

small fraction of Internet routers are multicast routersa multicast router may not find another multicast router in the neighborhood to forward the

multicast packet.

solution to this problem is tunneling :solution to this problem is tunneling :

The multicast routers may not be connected directly, but they are connected logically.

To enable multicasting, we make a multicast backbone (MBONE) out of these isolated routers by using the concept of tunneling.

Logical Tunneling

A logical tunnel is established by encapsulating the multicast packet inside a unicast packet

The multicast packet becomes the payload (data) of the unicast packet

So far the only protocol supporting MBONE and tunneling is DVMRP

Mbone (IP in IP tunneling)RFC 1853, Simpson, October 1995

“Method by which an IP datagram may be encapsulated (carried as payload)within an IP datagram. Encapsulation is suggested as a means to alter thenormal IP routing for datagrams, by delivering them to an intermediatedestination that would otherwise not be selected based on the IP DestinationAddress field in the original IP header. Once the encapsulated datagramarrives at this intermediate destination node, it is decapsulated, yielding theoriginal IP datagram, which is then delivered to the destination indicated bythe original Destination Address field. The encapsulator and decapsulator areconsidered to be the "endpoints" of the tunnel.”considered to be the "endpoints" of the tunnel.”