Multi Cast Multicast Routing Protocols

download Multi Cast Multicast Routing Protocols

of 54

Transcript of Multi Cast Multicast Routing Protocols

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    1/54

    Multicast

    Henning SchulzrinneDept. of Computer Science

    Columbia University

    Fall 2003

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    2/54

    Overview

    IP multicast service models

    any source, source-specific multicast, Multicast protocol components

    address assignment

    local group management

    intra- and inter-domain routing

    Programming IP multicast applications

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    3/54

    Multicast service models

    Basic idea: same data needs to reach multiple

    receivers avoid transmitting it once for each

    receiver

    particularly useful if access link has bandwidth limitations

    can be implemented at link, network and application layer

    e.g., mailing list as example

    Variations: reach unknown destination bymembership (foo server) rather than address also anycast

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    4/54

    *Cast

    Broadcast = all nodes on (small, local)

    network Directed broadcast = copies to all hosts on

    remote network

    DDOS not supported any more (RFC 2644)

    Multicast = copies to >= 1 hosts (group)

    Anycast = packet to 1 of Nhosts

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    5/54

    Diversion: Anycast

    RFC 1546 (Host Anycasting Service) RFC 2373 (IP Version 6 Addressing Architecture)

    locate a host which supports a particular service but, if several servers support

    the service, does not particularly care which server is used. Example uses:

    DNS root servers (F.root-servers.net = 192.5.5.241 ); see http://www.isc.org root servers are hard-configured in DNS resolvers

    272 million queries a day

    all access routers providing Internet service

    Anycast deliver to single host special form of unicast routing

    deliver to nearest host (by routing metric)

    Multicast deliver to >= 1 host (and maybe get answers from > 1 host)

    http://www.isc.org/http://www.isc.org/
  • 8/12/2019 Multi Cast Multicast Routing Protocols

    6/54

    Anycast routing

    Assign same address within subnet supernet is advertised either globally (global nodes) or

    locally (local nodes) advertise whole prefix, not just single address avoid route

    filtering

    BGP automatically ensures routing to closest local orglobal node

    Distributes (or localizes) denial-of-service traffic

    Does not scale well due to address usage (unless allservices within the same subnet)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    7/54

    Multicast applications

    audio-video distribution (1-to-many)

    audio-video conferences (all-to-all)

    distributed simulation (war gaming, multi-playerDoom, )

    resource discovery (wheres the next time server?) instances of resource identified by multicast address

    file distribution (stock market quotes, new softwarereleases, OS patches, )

    network news (Usenet)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    8/54

    Multicast trees

    spanning tree tree that connects allvertices vertices = hosts and routers

    shared tree = single tree for all sources S minimum cost spanning tree (MST)

    minimum-weight treein a weighted graphwhich contains all ofthe graph's vertices

    cost = hops, delay, transmission cost ($),

    does not minimize length of S to individual destination

    all traffic concentrated on tree reservation failure

    per-source tree build independently for each source

    http://www.nist.gov/dads/HTML/vertex.htmlhttp://www.nist.gov/dads/HTML/vertex.htmlhttp://www.nist.gov/dads/HTML/tree.htmlhttp://www.nist.gov/dads/HTML/weightgraph.htmlhttp://www.nist.gov/dads/HTML/vertex.htmlhttp://www.nist.gov/dads/HTML/vertex.htmlhttp://www.nist.gov/dads/HTML/weightgraph.htmlhttp://www.nist.gov/dads/HTML/tree.html
  • 8/12/2019 Multi Cast Multicast Routing Protocols

    9/54

    Multicast treesSteiner trees

    given a weighted graph in which a subsetofvertices are identified as terminals, find a minimum-

    weight connected subgraph that includes all theterminals

    Differs from MST in that Steiner vertices must be

    identified

    NP-complete problem (see traveling salesman)

    unstable: small additions to graph large changes in traffic

    flows

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    10/54

    Finding MST via Prims algorithm

    centralized, finds MST for G = (V,E)

    U: set of vertices connected, start with one add lowest-cost edge (u,v) with uUand v

    in V U

    tree T T (u,v)

    U U v

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    11/54

    Connection-oriented multicast

    enumerate sources explicitly source-based tree

    examples:

    ATM: explicitly add each end point to tree ST-II (IPv5): enumerate end points in setup message

    End nodes can also attach themselves to tree

    only connection-oriented enumeration only in setup message

    source needs to know destinations

    resource discovery not possible dynamic groups difficult

    but: natural transition from 2-party to N-party

    same routing algorithm

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    12/54

    Host group model

    Multicast service model

    S. Deering, 1991 (RFC 1112)

    senders need not be members

    groups may have any number of members

    there are no topological restrictions on group membership

    membership is dynamic and autonomous

    host groups may be dynamic or permanent

    receiver-driven model

    subscriptions

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    13/54

    Local multicast

    Some local networks are by (original) nature multicast orbroadcast: Ethernet: original coax contention (CDMA), 802.11 wireless

    need to emulate in Ethernet switches

    token ring

    FDDI

    wireless links (BlueTooth, cellular), powerline networks

    Ethernet, token ring: broadcast: all-1 address

    multicast: 01.xx.xx.xx.xx.xx

    adapter hardware can filter dynamic list of addresses

    ATM: point-to-point links ATM multicast server or replicationin switches

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    14/54

    IP multicast: model & addresses

    host-group model

    network level: data packets remain same, only address changes

    need help from routers to replicate and route

    special IP addresses (class D): 224.0.0.0 through 239.255.255.255 (224/4) 28 bits 268 million groups

    in addition, scoping

    224.0.0.x: local network only 224.0.0.1: all hosts

    224.0.0.2: all routers

    224.0.1.x: internetwork control block

    224.0.2.0-224.0.255.0: ad-hoc 224.2.0.0-224.2.255.255: SDP/SAP block

    some pre-assigned by IANA

    map into Ethernet: 01.00.5E.00.00.00 + lower 23 bits

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    15/54

    IP multicast scope

    Avoid accidental distribution to whole Internet

    IP TTL value: 0 = host, 1 = network

    Others to reach larger groups but split horizon problem (RFC 2907) pruning (see later) may fail: larger TTL later

    Administrative scoping (RFC 2365) 239.0.0.0 to 239.255.255.255

    RFC 1884 for IPv6 (16 scopes)

    link-local scope

    IPv4 local scope organization local scope

    global scope

    relative addresses (from top) for common applications within scope

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    16/54

    IP multicast protocols

    tree construction protocol PIM-SM, PIM-DM

    advertise reverse paths towards sources

    Multiprotocol Border Gateway Protocol (MBGP)

    disseminate information about sources Multicast

    Source Discovery Protocol (MSDP)

    hosts dynamically join and leave multicast groups

    Internet Group Management Protocol (IGMP)

    IGMPv2: specify host group

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    17/54

    Multicast model problems

    Host group model now known as Any Source Multicast (ASM)

    variant: source-filtered multicast (SFM)

    hosts can request data for group G only for specific set of sources or exclude list of sources

    IGMPv3 for IPv4 and MLD (listener discovery) for IPv6

    host of problems have prevented large-scale deployment:

    attacks against multicast groups by unauthorized transmitters

    deployment complexity

    problems of allocating scarce global class-D IP addresses

    lack of inter-domain scalability

    single point-of-failure problems

    K. Almeroth, S. Bhattacharyya, C. Diot, Challenges of Integrating ASM and SSMIP Multicast Protocol Architectures

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    18/54

    Source-Specific Multicast (SSM)

    receiving host explicitly specifies the addressof the source it wants to receive from in addition to multicast group

    support one-to-many multicast

    address range 232/8, ff2x:: and ff3x::

    IGMPv3: allow source specification remove complexity from network layer

    application layer (where needed)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    19/54

    SSM, contd.

    distribution tree for channel (S,G) rooted at S no shared tree infrastructure

    no need for MSDP only a single source can transmit

    avoid access control problem

    avoid forwarding unwanted data (cf. SFM)

    addresses local to each source

    no global addressallocation needed

    for large groups, often single source or dominated by single source

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    20/54

    Xcast

    providing for many groups of small conferences (a smallnumber of widely dispersed people) with global topologicalscope scales badly given the current multicast model (IABworkshop report)

    Large number of small groups:

    three-party calls

    small interactive conferences

    networked games

    explicitly enumerate addresses in IP header

    each router looks up all addresses

    group by interface

    remote addresses that dont apply (why?)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    21/54

    Xcast

    Thus, sender-driven model

    Advantages: no session setup needed

    no address allocation

    known set of destinations: simplifies accounting,

    access control

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    22/54

    RPFReverse path forwarding

    Normal (unicast) routing:

    look up destinationaddress

    in routing table forward to listed outgoing

    interface

    RPF: look up source

    addressin IP routing table

    only forward if packetarrived on that interface

    strictly correct only for

    symmetric routes Cisco IP multicast technology overview

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    23/54

    PIM-DM

    Uses unicast routing protocols (unlikeDVMRP)

    push model send traffic everywhere

    non-receivers prune

    time out after 3 minutes

    only source trees good for networks where most subnets want

    traffic

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    24/54

    PIM-SM

    pull model

    join only (G,*)

    initially, shared tree =

    rendezvous point (RP) router closest to receiver

    registers with RP

    sources register with RP andthen initially send data via theshared tree

    edge routers can force a sourcetree by sending (S,G)messages towards the source ifdistance to source is smallerthan distance to RP

    see draft-ietf-pim-v2-dmCisco IP multicast technology overview

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    25/54

    Dense Mode PIM Example

    Source

    Receiver 2Receiver 1

    D F

    I

    B

    C

    A

    E

    G

    H

    Link

    Data

    Control

    following slides by Salmani

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    26/54

    Dense Mode PIM Example

    Initial Flood of Data

    and Creation of State

    Source

    Receiver 2Receiver 1

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    27/54

    Dense Mode PIM Example

    Prune to Non-RPF Neighbor

    Source

    Prune

    Receiver 2Receiver 1

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    28/54

    Dense Mode PIM Example

    C and D Assert to Determine

    Forwarder for the LAN, C Wins

    Source

    Asserts

    Receiver 2Receiver 1

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    29/54

    Dense Mode PIM Example

    I Gets Pruned

    Es Prune is Ignored

    Gs Prune is Overridden

    Source

    Prune

    Receiver 2Receiver 1

    Join Override

    Prune

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    30/54

    Dense Mode PIM Example

    Source

    Graft

    Receiver 2Receiver 3

    Receiver 1

    New Receiver, I Sends Graft

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    31/54

    Dense Mode PIM Example

    Source

    Receiver 2Receiver 3

    Receiver 1

    D F

    I

    B

    C

    A

    E

    G

    H

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    32/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A D

    Source

    C

    Receiver 2

    RP

    Link

    Data

    Control

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    33/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A D

    SourceReceiver 1 Joins Group G

    C Creates (*, G) State, Sends(*, G) Join to the RP

    C

    Receiver 2

    RP

    Join

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    34/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceRP Creates (*, G) State

    C

    Receiver 2

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    35/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceSource Sends Data

    A Sender Registers to theRP

    C

    Receiver 2

    Register

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    36/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceRP de-encapsulates Registers

    Forwards Data Down the Shared TreeSends Joins Towards the Source

    C

    Receiver 2

    Join Join

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    37/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceRP Sends Register-Stop

    OnceData Arrives Natively

    C

    Receiver 2

    Register-Stop

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    38/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceC Sends (S, G) Joins to Join

    theShortest Path (SPT) Tree

    C

    Receiver 2

    (S, G) Join

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    39/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceWhen C Receives Data Natively,

    It Sends Prunes Up the RP tree forthe Source. RP Deletes (S, G) OIF and

    Sends Prune Towards the Source

    C

    Receiver 2

    (S, G) RP Bit Prune

    (S, G) Prune

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    40/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceNew Receiver 2 Joins

    E Creates State and Sends (*, G) Join

    C

    Receiver 2

    (*, G) Join

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    41/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceC Adds Link Towards E to the OIF

    List of Both (*, G) and (S, G)Data from Source Arrives at E

    C

    Receiver 2

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    42/54

    Sparse Mode PIM Example

    Receiver 1

    B

    E

    A RP D

    SourceNew Source Starts Sending

    D Sends Registers, RP Sends JoinsRP Forwards Data to Receivers

    through Shared Tree

    C

    Receiver 2

    Source 2

    Register

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    43/54

    MBGP (Multiprotocol BGP)

    RFC 2283 (Multiprotocol Extensions for

    BGP-4)

    RPF check for AS

    path attributes MP_REACH_NLRI and

    MP_UNREACH_NLRI two sets of routing

    information non-congruent unicast andmulticast topologies

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    44/54

    MSDP (Multicast source discovery

    protocol)

    Scaling different RPs foreach AS several PIM-SMdomains

    each RP only knows localsources and receivers

    RPs share sourceinformation via MSDP

    TCP session mesh

    first message from newsource sent to other RPs viaSource Active (SA) MSDPmessage

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    45/54

    MSDP, contd.

    If receiving router has (*,G) state, it joins other RP and creates(S,G) state

    Encapsulated data sent down remote RP shared tree

    Last-hop router may join shortest path to source directly

    MSDP is complex and effectively broadcasts to every RP in theInternet

    DOS attack by sending out flood of source announcements

    Doesnt scale for large number of sourcesSA flood topology

    & carry data

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    46/54

    Multicast address allocation

    two different sessions may pick same class-D address andinterfere with each other

    solutions: dynamic allocation SAP (later), but doesnt fit all applications,

    scaling problems

    explicit request MALLOC

    static delegation GLOP

    interim solution: GLOP (RFC 2770) divides IPv4 multicastaddress space by AS

    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 233 | 16 bits AS | local bits |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    47/54

    IPv6 multicast address allocation

    RFC 3306 (Unicast-Prefix-based IPv6 Multicast Addresses)

    Like GLOP, unicast prefix based

    | 8 | 4 | 4 | 112 |+--------+----+----+---------------------------------------------+|11111111|flgs|scop| group ID |+--------+----+----+---------------------------------------------+

    | 8 | 4 | 4 | 8 | 8 | 64 | 32 |+--------+----+----+--------+--------+----------------+----------+|11111111|0011|scop|reserved| plen | network prefix | group ID |+--------+----+----+--------+--------+----------------+----------+

    see RFC 3307:

    permanent: e.g.,

    0x40404040 for NTP

    length of

    network

    prefix

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    48/54

    Multicast address allocation

    RFC 2908 (Internet Multicast Address Allocation Architecture)

    Instance of global identifier allocation problem:

    hierarchical blocks (IEEE EUI, DNS, IP addresses, phonenumbers, SSN, ) local mechanism left unspecified

    on-demand

    centralized server (e.g., DHCP within domain)

    distributed pools

    usually, combination of both Two qualifiers:

    scope (possibly global)

    lifetime (possibly indefinite)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    49/54

    Multicast address allocation

    core requirements: robustness: work even if remote parts of the

    networks dont timeliness: seconds

    low probability of clashes

    avoid fragmentation overhead

    unfortunately, cant have all of them e.g., reliability fragmentation to warehouse

    addresses or collisions

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    50/54

    Multicast address allocation

    MAAS MAAS

    MADCAP HTTP

    prefixcoordinator

    Layer 2

    intra-domain coordinationLayer 1

    or GLOP

    prefix

    coordinator

    prefix

    coordinator Layer 3

    domain (AS)

    MASC

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    51/54

    MADCAP

    Loosely based on DHCP

    Client sends unicast or multicast request toserver (one of a group) DISCOVER to find servers

    OFFER: lease time and multicast scope

    REQUEST address

    Client retransmits if no response

    Leases can be renewed and released

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    52/54

    PGM (Pragmatic General Multicast)

    RFC 3208, PGM Reliable Transport Protocol

    Specification

    ordered, duplicate-free multicast data from multiplesources to multiple receivers

    either receives all data packets or can detect

    unrecoverable losses

    sender retransmits after NAK

    routers suppress duplicate NAKs and route

    retransmissions to branches in need

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    53/54

    Multicast summary

    Relatively complete architecture

    Difficulty of network service enhancements Difficult to meet higher-layer requirements:

    Storage and time-shifting

    Access control and billing

    Heterogeneous networks

    application-layer techniques (CDNs)

  • 8/12/2019 Multi Cast Multicast Routing Protocols

    54/54

    Multicast readings

    Stephen A. Thomas, IPng and the TCP/IP

    protocols, Wiley, 1996

    Christian Huitema, Routing in the Internet,

    Prentice Hall, 1995

    J. Crowcroft, M. Handley, I. Wakeman,

    Internetworking Multimedia, 2000.