Internet Multicasting Chapter 16. Hardware Broadcast Many HW technologies support sending packets to...
Transcript of Internet Multicasting Chapter 16. Hardware Broadcast Many HW technologies support sending packets to...
Internet MulticastingInternet Multicasting
Chapter 16Chapter 16
Hardware BroadcastHardware Broadcast
Many HW technologies support sending Many HW technologies support sending packets to multi destinations concurrently packets to multi destinations concurrently Broadcasting: most common formBroadcasting: most common form Copy of packet delivered to each destinationCopy of packet delivered to each destination Easy on bus technologies (Ethernet)Easy on bus technologies (Ethernet)
Done with single packet transmissionDone with single packet transmission Others: SW must forward copies of the packetOthers: SW must forward copies of the packet
Broadcast AddressBroadcast Address Reserved destination addressReserved destination address Specifies broadcast deliverySpecifies broadcast delivery
Ex. – Ethernet: address of all 1’sEx. – Ethernet: address of all 1’s HW at each machine accepts packet for:HW at each machine accepts packet for:
The machine’s addressThe machine’s address
The broadcast addressThe broadcast address
Chief disadvantage of broadcastingChief disadvantage of broadcasting Demand on resourcesDemand on resources
Network bandwidthNetwork bandwidth
Computational resources on all machinesComputational resources on all machines
Hardware Origins of MulticastHardware Origins of Multicast
MulticastingMulticasting Less common form of multi-point deliveryLess common form of multi-point delivery Also supported by hardware technologiesAlso supported by hardware technologies Allows each system to choose if it wants to Allows each system to choose if it wants to
participate in a given multicastparticipate in a given multicastLarge set of addresses reserved for multicastLarge set of addresses reserved for multicast
One address used for each group of machines that One address used for each group of machines that want to communicatewant to communicate
Multicast is a generalization of all addressingMulticast is a generalization of all addressingUnicast:Unicast: multicast with one computer in the group multicast with one computer in the groupBroadcast:Broadcast: multicast with all computers in the group multicast with all computers in the groupMulticast:Multicast: arbitrary computers in the group arbitrary computers in the group
Multicast cannot replace conventional addressingMulticast cannot replace conventional addressingDifference in underlying mechanismsDifference in underlying mechanismsForwarding and delivery done differentlyForwarding and delivery done differently
Unicast and broadcastUnicast and broadcastForwarding depends on network topologyForwarding depends on network topology
MulticastMulticastForwarding must send packet to all segmentsForwarding must send packet to all segments
Conclusion:Conclusion: Multicast may be a generalization of addressing schemesMulticast may be a generalization of addressing schemes However, underlying forwarding and delivery However, underlying forwarding and delivery
mechanisms make it less efficientmechanisms make it less efficient
Ethernet MulticastEthernet Multicast½ of Ethernet addresses reserved for multicast½ of Ethernet addresses reserved for multicast Low-order bit of high-order byte distinguishesLow-order bit of high-order byte distinguishes
0 for unicast; 1 for multicast0 for unicast; 1 for multicast Multicast in dotted hexadecimal notation:Multicast in dotted hexadecimal notation:
01.00.00.00.00.0001.00.00.00.00.001616
If interface configured for Ethernet multicast:If interface configured for Ethernet multicast:
01.00.5E.00.00.0101.00.5E.00.00.011616
Will accept any packet sent to computer’s unicast Will accept any packet sent to computer’s unicast address, broadcast address, or above multicast address, broadcast address, or above multicast addressaddress
IP MulticastIP Multicast
IP MulticastingIP Multicasting Internet abstraction of hardware multicastingInternet abstraction of hardware multicasting Allows transmission to subset of hostsAllows transmission to subset of hosts Generalizes subsetGeneralizes subset
Can spread across arbitrary physical networksCan spread across arbitrary physical networks
Anywhere throughout the internetAnywhere throughout the internet Given subset is called a Given subset is called a multicast groupmulticast group
IP multicasting has following characteristics:IP multicasting has following characteristics:Group addressGroup address
Each multicast group has unique class D addressEach multicast group has unique class D address Some groups permanent; some temporarySome groups permanent; some temporary
Number of groupsNumber of groups Up to 2Up to 22828 simultaneous multicast groups simultaneous multicast groups Number limited by constraints on routing table sizeNumber limited by constraints on routing table size
Dynamic group membershipDynamic group membership Host can join or leave anytimeHost can join or leave anytime Host can be member of arbitrary number of groupsHost can be member of arbitrary number of groups
Use of hardwareUse of hardware If underlying network HW supports multicast; IP uses itIf underlying network HW supports multicast; IP uses it If not; IP uses broadcast or unicast to deliver IP multicastIf not; IP uses broadcast or unicast to deliver IP multicast
Inter-network forwardingInter-network forwarding Members of IP multicast group can attach to multiple netsMembers of IP multicast group can attach to multiple nets Multicast routers are required to forward IP multicastMulticast routers are required to forward IP multicast
Capability usually added to conventional routersCapability usually added to conventional routers
Delivery semanticsDelivery semantics Uses same best-effort delivery as other IP datagram deliveryUses same best-effort delivery as other IP datagram delivery Multicast datagrams can be lost, delayed, duplicated, etc.Multicast datagrams can be lost, delayed, duplicated, etc.
Membership and transmissionMembership and transmission Arbitrary host can send datagrams to any multicast groupArbitrary host can send datagrams to any multicast group Membership only used to determine who receivesMembership only used to determine who receives
Conceptual PiecesConceptual PiecesThree conceptual pieces requiredThree conceptual pieces required Multicast addressing schemeMulticast addressing scheme Effective notification & delivery mechanismEffective notification & delivery mechanism Efficient internetwork forwarding facilityEfficient internetwork forwarding facility
Many goals, details, and constraints Many goals, details, and constraints present challenges for an overall designpresent challenges for an overall design
Addressing scheme has conflicting goalsAddressing scheme has conflicting goalsAllow local autonomy in assigning addressesAllow local autonomy in assigning addressesDefine addresses that have global meaningDefine addresses that have global meaning
Notification and delivery has same problemNotification and delivery has same problemMake effective use of hardware when availableMake effective use of hardware when availableAllow IP multicast over networks w/o HW supportAllow IP multicast over networks w/o HW support
Forwarding facility presents biggest challengeForwarding facility presents biggest challengeWant both efficient and dynamic schemeWant both efficient and dynamic scheme
Route packets along shortest pathRoute packets along shortest path Not send copy on path not leading to member of the groupNot send copy on path not leading to member of the group Allow hosts to join and leave a group at any timeAllow hosts to join and leave a group at any time
IP multicast includes all three aspectsIP multicast includes all three aspectsRest of chapter considers each in more detailRest of chapter considers each in more detail
IP Multicast AddressesIP Multicast AddressesPermanently assigned addressesPermanently assigned addresses Called Called well-knownwell-known Used for major services on global InternetUsed for major services on global Internet
Other groups created when neededOther groups created when needed Transient multicast groupsTransient multicast groups Discarded when group member count = 0Discarded when group member count = 0
Class D addresses reserved for multicastClass D addresses reserved for multicast
No identification information in the group bitsNo identification information in the group bitsNot identify the origin or owner of a groupNot identify the origin or owner of a group
No info about whether all members on one physical networkNo info about whether all members on one physical network Range: 224.0.0.0 through 239.255.255.255Range: 224.0.0.0 through 239.255.255.255
Lowest address reservedLowest address reserved
Others up through 224.0.0.255: routing & group maintenanceOthers up through 224.0.0.255: routing & group maintenance
Figure 16.2 shows examples of permanently assigned addressesFigure 16.2 shows examples of permanently assigned addresses
Figure 16.1Figure 16.1
Figure 16.2Figure 16.2
Multicast Address SemanticsMulticast Address Semantics
Multicast treated differently than unicastMulticast treated differently than unicast Multicast address can only be destinationMulticast address can only be destination No ICMP messages for multicast datagramsNo ICMP messages for multicast datagrams
Ping sent to multicast address never answeredPing sent to multicast address never answered Time-to-live field is honoredTime-to-live field is honored
Reaches zero; datagram discardedReaches zero; datagram discarded
No ICMP message sentNo ICMP message sent
Mapping IP Multicast to Ethernet MulticastMapping IP Multicast to Ethernet Multicast
IP multicast standard does not cover all IP multicast standard does not cover all types of network hardwaretypes of network hardware Does specify mapping to Ethernet multicastDoes specify mapping to Ethernet multicast Efficient and easyEfficient and easy
Place low-order 23 bits of IP multicast address into the Place low-order 23 bits of IP multicast address into the low-order 23 bits of the special Ethernet multicast low-order 23 bits of the special Ethernet multicast address 01.00.5E.00.00.00address 01.00.5E.00.00.001616
Example:Example:224.0.0.2224.0.0.2 becomes 01.00.5E.00.00.02 becomes 01.00.5E.00.00.021616
11101010 011101010 00000000 00000000 000000100000000 00000000 00000010
Mapping is not uniqueMapping is not unique IP multicast uses 28 significant bitsIP multicast uses 28 significant bits More than one IP multicast group may map to More than one IP multicast group may map to
same Ethernet multicast addresssame Ethernet multicast address111011100000 00000 0xxxxxxx xxxxxxxx xxxxxxxxxxxxxxx xxxxxxxx xxxxxxxx
111011101111 11111 1xxxxxxx xxxxxxxx xxxxxxxxxxxxxxx xxxxxxxx xxxxxxxx
Scheme chosen as a compromiseScheme chosen as a compromiseUses 23 of the 28 bitsUses 23 of the 28 bitsChances are small that two groups will be the sameChances are small that two groups will be the sameUsing fixed part of Ethernet address helpsUsing fixed part of Ethernet address helps
Makes debugging easierMakes debugging easier Eliminates interference between IP and other protocolsEliminates interference between IP and other protocols
Consequences: host may get msg in errorConsequences: host may get msg in errorIP software must check incoming datagramsIP software must check incoming datagrams
.
.
.
.
.
.
Hosts and Multicast DeliveryHosts and Multicast DeliveryIP multicast on single physical networkIP multicast on single physical network Host uses HW multicast addressHost uses HW multicast address Receiver always listening to itReceiver always listening to it
Multicast throughout the internetMulticast throughout the internet Special multicast routers forward the datagramsSpecial multicast routers forward the datagrams Host must send datagram to multicast routerHost must send datagram to multicast router Does via the hardware, like in local multicastDoes via the hardware, like in local multicast Diff between local & non-local in the routersDiff between local & non-local in the routers
Multicast ScopeMulticast ScopeScopeScope of multicast group of multicast group Refers to dispersion of Refers to dispersion of group membersgroup members Perhaps restricted to a network or organizationPerhaps restricted to a network or organization
Scope of multicast datagramScope of multicast datagram Set of networksSet of networks over which datagram will be sent over which datagram will be sent
Informally, datagram’s scope is called its Informally, datagram’s scope is called its rangerange
IP uses two techniques to control scopeIP uses two techniques to control scope Time-to-live fieldTime-to-live field Administrative scopingAdministrative scoping
TTL field controlTTL field controlSet to small value, host can limit distance it’s routedSet to small value, host can limit distance it’s routed
Control messages have TTL of 1 (host-router comm)Control messages have TTL of 1 (host-router comm) Applications on single host can use IP multicastApplications on single host can use IP multicast
Set TTL value to 0; never leave hostSet TTL value to 0; never leave host
Can configure site routers such that a certain TTL is Can configure site routers such that a certain TTL is needed or else the datagram will never leave the siteneeded or else the datagram will never leave the site
TTL field gives course-grain control over scopeTTL field gives course-grain control over scope Administrative scopingAdministrative scoping
Reserve parts of address spaceReserve parts of address space
Do for local groups or groups part of a single orgDo for local groups or groups part of a single org
Routers forbidden from forwarding datagrams with Routers forbidden from forwarding datagrams with addresses from this spaceaddresses from this space
Extending Host SW to Handle Extending Host SW to Handle MulticastingMulticasting
Host participates in IP multicast in 1 of 3 levelsHost participates in IP multicast in 1 of 3 levels
(1) Host can (1) Host can neither send nor receiveneither send nor receive IP multicast IP multicast
(2) Host can (2) Host can send but not receivesend but not receive IP multicast IP multicast
(3) Host can (3) Host can both send and receiveboth send and receive IP multicast IP multicast Modifications for host sending are not difficultModifications for host sending are not difficult
IP SW allows application to specify multicast as IP SW allows application to specify multicast as destinationdestination
Network interface SW must be able to map IP Network interface SW must be able to map IP multicast address into HW multicast addressmulticast address into HW multicast address
Extending host to receive is more complexExtending host to receive is more complexHost IP SW must have API allowing programs to join & Host IP SW must have API allowing programs to join & leave multicast groupsleave multicast groups
If multiple applications join, must pass all a copyIf multiple applications join, must pass all a copy If all leave, host must know it no longer participatesIf all leave, host must know it no longer participates
Host must inform multicast routers of membershipHost must inform multicast routers of membershipHosts join specific IP groups on specific networksHosts join specific IP groups on specific networks
Host may have multiple network connectionsHost may have multiple network connections May join group on one network and not on anotherMay join group on one network and not on another Keep group membership associated with networksKeep group membership associated with networks
Allows multicast use with local machines on one netAllows multicast use with local machines on one net
SW must keep separate lists of multicast addresses for SW must keep separate lists of multicast addresses for each networkeach networkApplication must specify a particular network when Application must specify a particular network when joining or leaving a multicast groupjoining or leaving a multicast group
Internet Group Management ProtocolInternet Group Management Protocol
To participate in IP multicast, host must:To participate in IP multicast, host must: Local network multicast:Local network multicast:
Have SW allowing send/receive multicast datagramsHave SW allowing send/receive multicast datagrams Multicast that spans physical networksMulticast that spans physical networks
Must inform local multicast routersMust inform local multicast routers
Multicast routers must know membershipsMulticast routers must know memberships Use Use IGMPIGMP to communicate group membership to communicate group membership Current version is 3; knows as IGMPv3Current version is 3; knows as IGMPv3
IGMP is like ICMPIGMP is like ICMP Uses IP datagrams to carry messagesUses IP datagrams to carry messages IGMP provides a service used by IPIGMP provides a service used by IP
Think of as integral part of IP, not separate protocolThink of as integral part of IP, not separate protocol IGMP is a standard for TCP/IPIGMP is a standard for TCP/IP
Required on all machines receiving IP multicastRequired on all machines receiving IP multicast
Conceptually, IGMP has two phasesConceptually, IGMP has two phases Host joins group; sends messageHost joins group; sends message
Routers get and establish routingRouters get and establish routing Routers poll hosts to see if still membersRouters poll hosts to see if still members
If none report, router stops advertising membershipIf none report, router stops advertising membership
IGMP ImplementationIGMP Implementation
IGMP designed to avoid adding overheadIGMP designed to avoid adding overhead May have multiple multicast routers on a netMay have multiple multicast routers on a net May have hosts participating, tooMay have hosts participating, too Must avoid having all participants generate Must avoid having all participants generate
control trafficcontrol traffic Several way IGMP minimizes effect on networkSeveral way IGMP minimizes effect on network
All host/router communication uses IP multicastAll host/router communication uses IP multicast IP destination address is a multicast addressIP destination address is a multicast address Datagrams with IGMP messages transmitted via HW Datagrams with IGMP messages transmitted via HW
multicastmulticast Hosts not using IP multicast never receive IGMP messagesHosts not using IP multicast never receive IGMP messages
When polling, single query sent about all groupsWhen polling, single query sent about all groups Not send a separate query for each groupNot send a separate query for each group Default polling rate is 125 secondsDefault polling rate is 125 seconds
Single polling router usedSingle polling router used Even if multiple multicast routers attach to same networkEven if multiple multicast routers attach to same network
Hosts respond to queries at different timesHosts respond to queries at different times Query contains value Query contains value NN Hosts pick random number between 0 and Hosts pick random number between 0 and NN to wait to wait Have multiple groups; pick different number for eachHave multiple groups; pick different number for each
Reports for multiple group memberships can be Reports for multiple group memberships can be sent in a single packetsent in a single packet
Group Membership State Group Membership State TransitionsTransitions
IGMP must remember status of each IGMP must remember status of each multicast group to which host belongsmulticast group to which host belongs Keeps a table to record group membershipKeeps a table to record group membership
When host joins, allocates entryWhen host joins, allocates entry Keeps group reference counter; initializes to 1Keeps group reference counter; initializes to 1 Another application joins; increment counterAnother application joins; increment counter Application terminates execution or drops out; decrementApplication terminates execution or drops out; decrement Counter reaches zero; informs multicast routerCounter reaches zero; informs multicast router
Figure 16.4Figure 16.4 The three possible states of an entry in a host’s multicast group table and transitions among them, where each transition is labeled with an event and an action. The state transitions do not show messages sent when joining and leaving a group.
IGMP Message FormatIGMP Message Format
Skip:Skip: 16.16: IGMP Membership Query Message 16.16: IGMP Membership Query Message
FormatFormat 16.17: IGMP Membership Report Message 16.17: IGMP Membership Report Message
FormatFormat
Multicast Forwarding & Routing InformationMulticast Forwarding & Routing Information
Unanswered questionsUnanswered questions How do routers exchange membership info?How do routers exchange membership info? How do routers ensure datagrams get to all How do routers ensure datagrams get to all
group members?group members? No single standard for propagationNo single standard for propagation
No real agreement on an overall planNo real agreement on an overall plan
Protocols differ in goals and basic approachProtocols differ in goals and basic approach
Why is multicast routing so difficult?Why is multicast routing so difficult? Multicast routing differs from conventional routing Multicast routing differs from conventional routing
because multicast forwarding differsbecause multicast forwarding differs
Figure 16.9Figure 16.9
Need dynamic routingNeed dynamic routingNo “dots” on net 2; not send packets thereNo “dots” on net 2; not send packets there
But, host can join at any timeBut, host can join at any time Unicast routing: changes when topology changesUnicast routing: changes when topology changes Multicast: change when application leaves/joins groupMulticast: change when application leaves/joins group
Insufficiency of destination routingInsufficiency of destination routingFF & & EE can send to cross group can send to cross group
Same destination; different actionsSame destination; different actions
AA send to cross group: still another action send to cross group: still another action
Multicast forwarding requires a router to look at Multicast forwarding requires a router to look at more than destination addressmore than destination address
Arbitrary sendersArbitrary sendersAny host can send to the group; not just membersAny host can send to the group; not just members
GG can send to dotted group can send to dotted group Not a member of the groupNot a member of the group No members on No members on GG’s network’s network Datagram may pass through other networks with no Datagram may pass through other networks with no
members of the groupmembers of the group
So:So: Multicast datagram may originate on a computer that is Multicast datagram may originate on a computer that is
not part of the groupnot part of the group May be forwarded across networks that do not have any May be forwarded across networks that do not have any
group members attachedgroup members attached
Basic Multicast Forwarding Basic Multicast Forwarding ParadigmsParadigms
Routers must use more than destinationRouters must use more than destination What exactly do they use?What exactly do they use? Multicast destination represents a set of Multicast destination represents a set of
computerscomputersWant to reach all members of the setWant to reach all members of the set
Do not want to route over same network twiceDo not want to route over same network twice
Partial solution: do not send back on arriving interfacePartial solution: do not send back on arriving interface
Will not prevent problem if set of routers form loopWill not prevent problem if set of routers form loop
Rely on datagram’s source address to avoid loopsRely on datagram’s source address to avoid loops
One idea: One idea: Reverse Path ForwardingReverse Path Forwarding Uses source address to prevent loopUses source address to prevent loop Multicast router must have conventional tableMulticast router must have conventional table
Have shortest path to all destinationsHave shortest path to all destinations
Datagram arrivesDatagram arrives Looks up in table; finds interface Looks up in table; finds interface I I which leads to sourcewhich leads to source If it arrived on If it arrived on II; forward copy to all other interfaces; forward copy to all other interfaces Otherwise, discard the copyOtherwise, discard the copy
Each multicast datagram goes to every networkEach multicast datagram goes to every networkEvery host in multicast group will receive itEvery host in multicast group will receive it
RPF alone not used – wastes bandwidthRPF alone not used – wastes bandwidth Transmits to nets with no members & lead to no membersTransmits to nets with no members & lead to no members
Truncated Reverse Path ForwardingTruncated Reverse Path Forwarding Modified version of RPFModified version of RPF Avoids sending datagrams where not neededAvoids sending datagrams where not needed Multicast router needs to have:Multicast router needs to have:
Conventional routing tableConventional routing table
List of multicast groups reachable thru each NIList of multicast groups reachable thru each NI
When a multicast datagram arrives:When a multicast datagram arrives: Router first applies RPF ruleRouter first applies RPF rule If should discard, does soIf should discard, does so If not, checks to see if one or more members in the If not, checks to see if one or more members in the
destination are reachable over each interfacedestination are reachable over each interface Truncates sending when no more members lie along pathTruncates sending when no more members lie along path Uses both source and destination addresses in decisionUses both source and destination addresses in decision
Consequences of TRPFConsequences of TRPF
Guarantees each member gets datagramGuarantees each member gets datagram
Has two surprising consequencesHas two surprising consequences Delivers an extra copy to some networksDelivers an extra copy to some networks Delivery depends on the datagram’s sourceDelivery depends on the datagram’s source
If A is source, Net 4 & B will get duplicate copies
Figure 16.10Figure 16.10
Behavior of delivery depends on the source
Figure 16.11Figure 16.11
Multicast TreesMulticast TreesUse graph theory to describe a Use graph theory to describe a treetree Set of paths from a given source to all membersSet of paths from a given source to all members Graph is tree if no cycles appearGraph is tree if no cycles appear
That is, router is on no more than one pathThat is, router is on no more than one path Called Called forwarding treeforwarding tree or or delivery treedelivery tree
Each multicast router is a Each multicast router is a nodenode in the tree in the tree
Network that connects two routers is an Network that connects two routers is an edgeedge
Last router along each path from source is a Last router along each path from source is a leafleaf Network hanging off leaf router is a Network hanging off leaf router is a leaf networkleaf network
Tree with root Tree with root XX Leaves Leaves RR33, , RR44, , RR55, and , and RR66
Technically not a treeTechnically not a treeRR33 lies along two paths lies along two paths
Informally, referred to as a tree anywayInformally, referred to as a tree anyway
Important principleImportant principle Forwarding tree is defined as set of paths Forwarding tree is defined as set of paths
through multicast routers from source to all through multicast routers from source to all members of a multicast groupmembers of a multicast group
For a given multicast group, each possible For a given multicast group, each possible source can determine a different forwarding treesource can determine a different forwarding tree
An immediate consequence concerns the An immediate consequence concerns the size of tables used for forwardingsize of tables used for forwarding
Each entry in multicast table is a pair:Each entry in multicast table is a pair:
(multicast group, source)(multicast group, source) Conceptually, Conceptually, sourcesource identifies a single host identifies a single host
that can send datagramthat can send datagramIn practice, do not keep separate entry for each hostIn practice, do not keep separate entry for each host
All forwarding trees defined by all hosts on a single network All forwarding trees defined by all hosts on a single network are identicalare identical
To save space, use a network prefix as sourceTo save space, use a network prefix as source Router defines on forwarding entry for all hosts on same netRouter defines on forwarding entry for all hosts on same net
Aggregating entries by net prefix reduces table sizeAggregating entries by net prefix reduces table size Multicast tables can still be much larger than conventionalMulticast tables can still be much larger than conventional Conventional: size proportional to number of networksConventional: size proportional to number of networks Multicast: proportional to product of number of networks and Multicast: proportional to product of number of networks and
number of multicast groupsnumber of multicast groups
Essence of Multicast RoutingEssence of Multicast Routing
Inconsistency between IP multicast & TRPFInconsistency between IP multicast & TRPF TRPF not forward datagram to a network TRPF not forward datagram to a network
unless that network leads to a memberunless that network leads to a memberMulticast router must know about group membershipMulticast router must know about group membership
IP allows host to leave/join at any timeIP allows host to leave/join at any timeLeads to rapid changesLeads to rapid changes
Group membership must be propagatedGroup membership must be propagated Since membership does not follow local scopeSince membership does not follow local scope
Membership issue central to routingMembership issue central to routing All multicast routing schemes propagate infoAll multicast routing schemes propagate info
In addition to using info for forwardingIn addition to using info for forwarding Rapid changes may make router info imperfectRapid changes may make router info imperfect
Routing updates may lag changesRouting updates may lag changes Multicast design represents a tradeoffMulticast design represents a tradeoff
Routing traffic vs. inefficient data transmissionRouting traffic vs. inefficient data transmission Must propagate group membership info or routers will not Must propagate group membership info or routers will not
forward datagrams efficientlyforward datagrams efficiently If scheme communicates with every member, resulting traffic If scheme communicates with every member, resulting traffic
will overwhelm an internetwill overwhelm an internet
Every design is a compromiseEvery design is a compromise
Reverse Path MulticastingReverse Path MulticastingDerived from TRPFDerived from TRPF Extensions make it more dynamicExtensions make it more dynamic Three underlying assumptions:Three underlying assumptions:
Receipt by every member more important than Receipt by every member more important than eliminating unnecessary transmissionseliminating unnecessary transmissions
Multicast routers have conventional tables with correct Multicast routers have conventional tables with correct informationinformation
Multicast routing should improve efficiency when Multicast routing should improve efficiency when possiblepossible
RPM uses two step processRPM uses two step process At start, uses RPF broadcast schemeAt start, uses RPF broadcast scheme
Ensures all networks get copy of datagramEnsures all networks get copy of datagram At same time, RPM has routers inform one At same time, RPM has routers inform one
another about paths not leading to membersanother about paths not leading to membersRouters stop forwarding along such pathsRouters stop forwarding along such paths
How do routers learn location of members?How do routers learn location of members? RPM propagates information bottom-upRPM propagates information bottom-up
Starts with hosts that join or leave groupsStarts with hosts that join or leave groups Sends info via IGMP to local routerSends info via IGMP to local router Thus, routers know about local members, but not distantThus, routers know about local members, but not distant
Leaf routers can decide if forward to leaf networksLeaf routers can decide if forward to leaf networks Does not forward if no members of the groupDoes not forward if no members of the group Leaf router informs next router along path back to sourceLeaf router informs next router along path back to source
Whenever router learns no members lie beyond itWhenever router learns no members lie beyond it Stops forwarding; informs next router back toward rootStops forwarding; informs next router back toward root
Called Called pruningpruning a path from the forwarding tree a path from the forwarding tree RPM called RPM called broadcast and prunebroadcast and prune
Router broadcasts using RPFRouter broadcasts using RPF
Until get information that allows a path to be prunedUntil get information that allows a path to be pruned RPM system also called RPM system also called data-drivendata-driven
Router does not send membership info to any other Router does not send membership info to any other routers until datagrams arrive for the grouprouters until datagrams arrive for the group
Data-driven model must also handle case of host Data-driven model must also handle case of host joining after path has been prunedjoining after path has been pruned
RPM handles joins bottom-upRPM handles joins bottom-up Host informs local router it has joinedHost informs local router it has joined Router consults its record of the groupRouter consults its record of the group Obtains address of router previously sent prune msg toObtains address of router previously sent prune msg to Send new message that undoes pruneSend new message that undoes prune
Known as Known as graftgraft requestsrequests
DV Multicast Routing ProtocolDV Multicast Routing ProtocolLike RIP protocol; extended for multicastLike RIP protocol; extended for multicast Allows multicast routers to pass infoAllows multicast routers to pass info
Group membership & datagram transfer costGroup membership & datagram transfer cost Routers make up forwarding tree for each Routers make up forwarding tree for each
possible (group, source) pairpossible (group, source) pairSends datagrams out over networks that correspond to Sends datagrams out over networks that correspond to branches in the forwarding treebranches in the forwarding tree
Routers talk with extended form of IGMPRouters talk with extended form of IGMPNew msg types to enter group, leave group, query New msg types to enter group, leave group, query other routers, & carry routing info (including cost)other routers, & carry routing info (including cost)
MroutedMrouted Program Program
Implements DVMRP for UNIX systemsImplements DVMRP for UNIX systems Like Like routedrouted
Cooperates closely with OS to install routing infoCooperates closely with OS to install routing info Unlike Unlike routedrouted
Does not use standard routing tableDoes not use standard routing table
Can only be used with a multicast kernelCan only be used with a multicast kernel Has special multicast routing tableHas special multicast routing table Code needed to forward multicast datagramsCode needed to forward multicast datagrams
Uses Uses multicast tunnelingmulticast tunneling
MroutedMrouted handles two tasks: handles two tasks: Route propagationRoute propagation
Uses DVMRP to propagate routing informationUses DVMRP to propagate routing information
Constructs multicast routing tableConstructs multicast routing table
Usually has Usually has mroutedmrouted in addition to standard routing in addition to standard routing Multicast tunnelingMulticast tunneling
Not all routers can forward multicast datagramsNot all routers can forward multicast datagrams
Can tunnel a datagram from one router to anotherCan tunnel a datagram from one router to another Go through routers that do not participate in multicastGo through routers that do not participate in multicast
Both tasks may not be needed at a computerBoth tasks may not be needed at a computer Configuration file used to specify how operateConfiguration file used to specify how operate
Tunneling Tunneling
Used when routers on the path Used when routers on the path between participating hosts do not run multicast between participating hosts do not run multicast routing softwarerouting software
Tunnel consists of agreement between Tunnel consists of agreement between mroutedmrouted programs running on two routers programs running on two routers
Both listen on local net for datagram sent to specified Both listen on local net for datagram sent to specified multicast destinationmulticast destination
When one arrives, it is encapsulated by When one arrives, it is encapsulated by mroutedmrouted Put in conventional unicast datagramPut in conventional unicast datagram Sent to other routerSent to other router
Other Other mroutedmrouted program receives datagram through its program receives datagram through its tunneltunnel
Extracts the multicast datagramExtracts the multicast datagram Forwards according to its multicast routing tableForwards according to its multicast routing table
Outer, unicast datagram has own TTL counterOuter, unicast datagram has own TTL counter Inner, multicast datagram has separate TTL Inner, multicast datagram has separate TTL
countercounter Tunnel treated like single physical networkTunnel treated like single physical network
Alternative ProtocolsAlternative ProtocolsDVMRP has some limitationsDVMRP has some limitations Uses small value for infinity (like RIP)Uses small value for infinity (like RIP) Keeps lots of informationKeeps lots of information Does broadcast and pruneDoes broadcast and prune
Lots of traffic to propagate membership informationLots of traffic to propagate membership informationSince use DV, propagation is slowSince use DV, propagation is slow
Does not scale wellDoes not scale well
Other multicast protocolsOther multicast protocols Core Based Trees (CBT)Core Based Trees (CBT) Protocol Independent Multicast (PIM)Protocol Independent Multicast (PIM) Multicast extensions to OSPF (MOSPF)Multicast extensions to OSPF (MOSPF) None are a required standardNone are a required standard
Core Based Trees (CBT)Core Based Trees (CBT)
Avoids broadcastingAvoids broadcasting Uses Uses demand-drivendemand-driven paradigm paradigm
Does not forward along path until host(s) joinDoes not forward along path until host(s) join
Instead of forward until negative info received, Instead of forward until negative info received, does not forward until positive info receiveddoes not forward until positive info received
Which routers should be informed when a Which routers should be informed when a host informs local router (via IGMP) that it has host informs local router (via IGMP) that it has joined a group?joined a group?
Divides the internet into regionsDivides the internet into regions
Designates a core router for each regionDesignates a core router for each region
Protocol Independent Multicast (PIM)Protocol Independent Multicast (PIM)
Really two protocolsReally two protocols PIM-DM (dense mode)PIM-DM (dense mode)
LAN environmentLAN environment
Most all networks are listening to each groupMost all networks are listening to each group PIM-SM (sparse mode)PIM-SM (sparse mode)
WAN environmentWAN environment
Members are small subset of possible networksMembers are small subset of possible networks
PIM-DMPIM-DM Assumes low-delay networks with plenty of Assumes low-delay networks with plenty of
bandwidthbandwidth Optimized for guaranteed deliveryOptimized for guaranteed delivery Uses Uses broadcast and prunebroadcast and prune
Not worry about overheadNot worry about overhead
PIM-SMPIM-SM Demand-drivenDemand-driven like CBT like CBT Designates router to be rendezvous point (RP)Designates router to be rendezvous point (RP)
Like CBT coreLike CBT core
RP is equivalent of CBT core routerRP is equivalent of CBT core router
Multicast Extensions to OSPF Multicast Extensions to OSPF (MOSPF)(MOSPF)
Let multicast routing benefit from info Let multicast routing benefit from info gathered by conventional protocolsgathered by conventional protocols Uses OSPF’s topology database to build Uses OSPF’s topology database to build
forwarding tree for each sourceforwarding tree for each source Has advantage of being Has advantage of being demand-drivendemand-driven Disadv:Disadv:
Amount of routing information to propagateAmount of routing information to propagate
Information must be synchronizedInformation must be synchronized Works well within area; cannot scale to internetWorks well within area; cannot scale to internet
Reliable MulticastReliable Multicast
Refers to system that:Refers to system that: Uses multicast deliveryUses multicast delivery Guarantees all group members receive data:Guarantees all group members receive data:
In orderIn order
No loss, duplication, or corruptionNo loss, duplication, or corruption
TheoryTheory More efficient forwarding scheme than broadcastingMore efficient forwarding scheme than broadcasting All data still arrives intactAll data still arrives intact
In practiceIn practice Not as easy as soundsNot as easy as sounds ““In sequence” delivery may be meaninglessIn sequence” delivery may be meaningless
If group has multiple sendersIf group has multiple senders Multicast schemes easily produce duplicationMulticast schemes easily produce duplication Need to bound the delay for some applicationsNeed to bound the delay for some applications Reliability requires acknowledgementsReliability requires acknowledgements
Arbitrary number of group membersArbitrary number of group members
Thus, send must handle arbitrary number of ACKsThus, send must handle arbitrary number of ACKs
This is the This is the ACK implosionACK implosion problem problem
Use hierarchical approachUse hierarchical approach Multicasting limited to single sourceMulticasting limited to single source ACK points identifiedACK points identified
Router in tree that agrees to cache copies of dataRouter in tree that agrees to cache copies of dataProcesses ACK from hosts or routers down the treeProcesses ACK from hosts or routers down the treeACK point accomplishes necessary retransmissionsACK point accomplishes necessary retransmissions
NACK usually usedNACK usually usedHost detects lost datagram; requests retransmissionHost detects lost datagram; requests retransmission
Choice of branching topology and ACK Choice of branching topology and ACK points is crucial to success of reliable points is crucial to success of reliable multicastmulticast
Other approaches to reliabilityOther approaches to reliability Send multiple datagram copiesSend multiple datagram copies
Works well if RED is used by routersWorks well if RED is used by routers
Probability of more than one copy being discarded is Probability of more than one copy being discarded is smallsmall
Forward error-correcting codesForward error-correcting codesSender incorporates error-correction info into each Sender incorporates error-correction info into each datagramdatagram
If one is lost, error correcting code contains sufficient If one is lost, error correcting code contains sufficient redundant information to allow sender to reconstruct redundant information to allow sender to reconstruct the missing datagramthe missing datagram
SummarySummaryIP multicast is an abstraction of hardware IP multicast is an abstraction of hardware multicastingmulticasting Allows delivery to multiple destinationsAllows delivery to multiple destinations Uses class D addresses to specify deliveryUses class D addresses to specify delivery
Actual transmission uses hardware, if availableActual transmission uses hardware, if available
Multicast groups are dynamicMulticast groups are dynamic Hosts can join/leave at any timeHosts can join/leave at any time
For local multicast:For local multicast:Host only need ability to send/receive multicastHost only need ability to send/receive multicast
Over multiple networks:Over multiple networks:Multicast routers propagate group informationMulticast routers propagate group information
Arrange routing so all members get copy of datagramArrange routing so all members get copy of datagram
Hosts communicate membership via IGMPHosts communicate membership via IGMP EfficientEfficient Only periodic message from a multicast router and a single Only periodic message from a multicast router and a single
reply for each multicast group per networkreply for each multicast group per network
Variety of protocols for routing Variety of protocols for routing information propagationinformation propagation Either data-driven or demand-drivenEither data-driven or demand-driven Multicast forwarding table is much larger than Multicast forwarding table is much larger than
unicast routing tableunicast routing tableNeeds entries for each (group, source) pairNeeds entries for each (group, source) pair
Not all routers propagate multicast routes or Not all routers propagate multicast routes or forward multicast datagramsforward multicast datagrams
IP tunnel used to transfer datagramsIP tunnel used to transfer datagrams
Multicast datagram encapsulated in unicast datagramMulticast datagram encapsulated in unicast datagram
Reliable multicastReliable multicast Uses multicast forwardingUses multicast forwarding But offers reliable delivery semanticsBut offers reliable delivery semantics Must avoid ACK implosionMust avoid ACK implosion
Use hierarchy of acknowledgement pointsUse hierarchy of acknowledgement points
Other approaches send redundant informationOther approaches send redundant information