Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
11/9/12
1
Multicast
Mul)cast Waysofaddressing:
unicast(traditional):transmissiontoasingledestinationIPaddress(uniqueontheInternet/localnetwork)
broadcast:addressing"allreceivers"inasubnetwork(e.g.lookingforarouterorserver,urgentmessage);doesn'tdeliverpacketsoutsidethenetwork
Howtotransmitonlytoaselectedgroupofaddresses,evenoutsidethelocalnetwork? multicastaddressingallowsdeliverytogroupsofreceiversregardlessofthebordersofthesubnetworks
IGMP(InternetGroupManagementProtocol)isusedformanagingthosegroups
2
Mul)cast
3
11/9/12
2
Mul)cast‐example
Wewanttotransmitto4of6computersinanetwork.How?
1. unicast:weneed6copiesofthesamepacket;multipletransmissionscanoverloadthemedium.
2. broadcast:addressallcomputers;filteringtherightreceiversisleftuptohigherlayerprotocols.
3. multicast:wetransmittoa"special"addressrepresentingaGROUPofreceiversthatlistentothepacketstargetedatthataddress
similartobroadcast:everyonereceivesthepacket but:filteringoccursatthenetworklevel‐IP
(sometimesevenatthedata‐linklayer)
4
Mul)cast:packetrou)ng broadcastpacketsarenotforwardedbyrouters(everyonewouldreceivethem!),
meaningtheystayinsidethelocalnetwork
multicastroutingispractical:asinglepacketisreplicatedbytherouterandforwardedonlythroughthoseinterfaceswheretherearelistenerstothatpacket.Groupnamesare32bitnumbers(almost).
Challengesfortheprotocol: findingoutwherethepacketreceiversare, multicastrequiresadditionalwork:routingprotocols,forwardinginformationabout
thelisteners, multicastaddressesdon'tforma(sub)network‐>themaskhas32bits.Thereforethey
requirespecialinputinroutingtables challenge:theycanalsohavemorespecialinputs.Why?
security:aneavesdropper(illicitlistener)cansubscribetolisteningthepacketsandthusbecomealegitimatereceiver
whattodowhenonlyonereceiversignalizesitdidn'treceivethepacket
5
Mul)cast
subscribingtomulticasttraffic(IGMP)
multicastrouting(PIM)
6
11/9/12
3
Mul)castapplica)ons sendinglargefilesoveranetwork(centralofficeto
affiliates)‐reliabletransmission softwareupdatesinalargenetwork datastreaming(e.g.sendinginformationaboutshares
toallfinancialcompanies audio/videostreaming videoondemand(watchingaTVprogram) conferenceholding(consideration:betteruseofa
conferencecenterthatdecideswhocanspeakandwhosepacketsaretobeforwardedtoothers) challenge:thinkabouthowaconferenceisheldusing
amulticastapproach real‐timeapplicationswithRTP,whichisusedfor
ensuringcontinuousandqualitydeliverieswithinenvironmentsthatusemulticast
7
8
IPv4addressing multicastgroupnamesareactuallyspeciallyreservedIPv4addresses:
224.0.0.0 - 239.255.255.255 (classD) Specialaddressesinsidethatrange:
Addressrange Description
224.0.0.0 - 224.0.0.255 Reservedforwell‐knownmulticastaddresses
224.0.0.1 Allsystems(interfacesandrouters)
224.0.0.2 Allrouters
224.0.1.0 - 238.255.255.255 Globally‐scopedmulticastaddresses(Internet)
239.0.0.0 - 239.255.255.255 Locally‐scopedmulticastaddresses(localnetwork)
9
11/9/12
4
IPv6addressing
1.)multicastgroupnamesare128bitnumbers‐IPv6address,startingwithFF
2.)FF02::1(linklocal:allINTERFACES)3.)FF02::2(linklocal:allROUTERS)4.)IPv6addressstructure:
10
Addressmapping EthernetandFDDIframeworksuse48bitaddresses.Mul)castgroupaddressesrange
from01‐00‐5e‐00‐00‐00to01‐00‐5e‐ff‐ff‐ff. The01‐00‐5eprefixrepresentsthemul)castframe,thenextbitis0,andtherest23
bitscons)tutethenameofthemul)castgroup.
sincemul)castIPaddressesarecomprisedof28variablebits,themappingisn'tunique!Onlythe23low‐orderbitsaremappedtotheframe.Thatmeansthat32(25)addressesaremappedtothesameaddressonthesecondlayer. challenge:whatdoestherouterhavetodothen?
Thenetworklayerdecideswhetherthedatagramsareimportantforreceivingornot.
11
12
11/9/12
5
IGMPprotocol networklayerprotocolIPv4,protocolnumber2 RFC2236,InternetGroupManagementProtocol,Version2,RFC3376,
InternetGroupManagementProtocol,Version3 required:finditontheInternetandreadit‐furtherreading! challenge:findtheotherRFCdocumentsrelatedtoIGMP
IGMPtakescareofmanagingwhothemulticastreceiversare.Itallows: establishinggroupmemberships leavingagroup detectingotherinterfacesinthegroup
13
IGMPprotocol theIGMPcommunicationoccursbetweenahostandanimmediately‐
neighboringmulticastrouter
routersgetthetaskofconnectingtothemulticasttreestructurebasedontheIGMPprotocol
14
IGMPversionsThereare3versions:IGMPv1,v2andv3.
IGMPv1:Interfacescanconnecttogroups.Therearenomessagesforleavingagroup.Routersusetimeoutstodetectgroupsofnoconcernfortheinterface.
IGMPv2:Messagesforleavingagroupareadded.Thatallowsforfasternotificationaboutunnecessarytraffictermination.
IGMPv3:Biggerchangesintheprotocol.InterfacescandetermineaLISTofotherinterfacesfromwhichtheywishtoreceivetraffic.Thenetworkblocksalltrafficfromotherinterfaces.
15
11/9/12
6
IGMPprotocol IGMPmessagesare8byteslong
type–typeofthemessage: 17 (0x11): Group Membership Query 18 (0x12): Group Membership Report IGMP v1 22 (0x16): Group Membership Report IGMP v2 34 (0x22): Group Membership Report IGMP v3
23 (0x17): Leave Group Report IGMP v2
responsetime‐maximumtimeallowedforanIGMPGroupMembershipQueryrecipienttorespond
checksum‐(doesn’tcovertheIPheader) multicastgroupaddress‐IPv4addressofthemulticastgroup
16
IGMPprotocol
Ac#on IGMPmessage IPDes#na#onAddressIGMPMul#castGroupAddress
joinagroup GroupMembershipReport groupaddress groupaddress
listofgroupmembers GroupMembershipQuery groupaddress groupaddress
listofexis#nggroups GroupMembershipQuery allinterfaces(224.0.0.1) 0.0.0.0
acknowledgebeingamemberofthequeriedgroup GroupMembershipReport groupaddress groupaddress
leavethegroup GroupLeaveReport allrouters(224.0.0.2)groupaddress
HowtoaccomplishgroupmanagementwithIGMP
17
IGMPProtocol Specialmessage:IGMPv3GroupMembershipreport
Type=0x22 theresponsesfromallinterfacesinthegroupareinthesamepacket theinterfacewaitsfortheresponsesoftheotherrecipientsinthegroupbefore
itanswers thespecialformatofthepackageensurestheavoidanceofmultipliedmulticasttraffic
18
11/9/12
7
IGMPprotocol:subscrip)ontoasource forjoiningagroup,aGMRmessageissentwithvalueTTL=1(deliveredonlyto
thenearestrouter) therouterrecognizesthatitmustforwardthegrouppacketstothenew
subscriber(how?mappedmulticastaddress/datagramcopiestotheIPaddress)
therouterinformstheneighboringroutersthatithasanewsubscriber.Ifeveryrouterweretopassthesamemessageonwards,therewouldbeaproblem‐thepacketswouldbecross‐forwardedacrossallconnectionsinthenetwork.Solutions: useoftheRPLalgorithm(ReversePathLookup):werejectallmulticast
packetscomingfromroutersthatdon'tconnecttothesourceofthepacketthroughtheshortestpath
routershavespecialroutingprotocolsformulticasttraffic:e.g.thePIM‐SMprotocol(ProtocolIndependentMulticast‐SparseMode)
19
Reversepathlookup:example
12
3 4
56
7
8
XY
ZC
B
A
rejects
rejects20
MLDprotocol MulticastListenerDiscovery,RFC2710,MulticastListenerDiscovery
(MLD)forIPv6 required:finditontheInternetandreadit‐furtherreading! challenge:lookforthedifferencesbetweenMLDandIGMP challenge:whataboutthecoexistenceofIGMP(IPv4)andMLD(IPv6)?
21
11/9/12
8
MLDprotocol Basicallyit'samulticastprotocolforIPv6andhasthesamefunctionality
asIGMP
22
IGMPandMLDprotocol MLD:
IGMP:
23
0 1 2 3
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Response Delay | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | + +
| | + Multicast Address +
| | + +
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
0 1 2 3
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Max Resp Time | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
24
11/9/12
9
Trafficmul)cast packetsmoveintheformofmulticasttrees atreecanoptimizedifferentcriteria:
figure1:totalpathlength(numberofhops)ofalldatagrams figure2:shortestpathforeverydatagramseparately(minimumspanningtree)
8hopstotal,thedatagrammakes6hops
9hopstotal,thedatagrammakes5hops
25
Mul)castrou)ng Dutyoftherouting:findatreeofconnectionsthatconnectsallrouters
inthesamemulticastgroup Forcommunicationbetweenroutersweneedmulticastrouting
algorithms(workingatthenetworklayer),like:PIM,DVMRP,MOSFPandBGP.
howtoconnecttheredroutersintoacommontree?
26
Twosolu)onsforfindingamul)casttree usingasingletreeforallroutersforroutingmulticasttraffic,wefindasingle
tree(group‐sharedtree)‐leftfigure
determiningaseparatetreeforeverymemberinthegroup(source‐basedtree);forNmembersofthegroupwehaveNtrees(foreverymulticastgroup)‐rightfigure
separatetreeforA(blue)andtreeforB(pink)
commontree
27
11/9/12
10
Determiningacommontree(group‐shared)1. findingatreewiththeminimaltotalcost(Steiner'salgorithmisusedfor
spanningtrees;theproblemisNP‐hard),leftfigureor
2. determiningthecentralnode("rendez‐vouspoint")(theunicastroutingrulesdefinehowtoroutetoit);therouterjoinsthetreewhen,onitswaytothecentralnode,itencountersthefirstnodealreadyinthetree,rightfigure
minimaltotalcost Eisthecentralnode
28
Determiningtreesforseparatesenders(source‐based)
1. Findingtheshortestpathtreeinagraph(usingDijkstra'salgorithmwhichconstructsatreeoftheshortestconnections(edges)relativetoagivenstartingnode),leftfigure
- theroutershavetoknowthestatesofallconnections(edges)(link‐state)
or2. UsingRPL(ReversePathLookup):doesn'tacceptmessagesfromrouters
thataren'tontheshortestpathtothesourceofthemessage,figureright
29
30
11/9/12
11
Rou)ngprotocols theyhandlethecommunicationbetweenroutersinanetwork
dividedby2criteria(2x2=4groups)1. sparse‐mode/dense‐mode
sparse‐mode:certainnodesrequireinclusiontothetree(pullprinciple) dense‐mode:wemulticastthemulticastpacketsaroundtheentirenetwork,
androutersarecutoffifthey'reunneeded(pushprinciple).Twoways: broadcastandprune(usespruneandgraftmessages):thestructureisperiodically
reinitialized domain‐widereporting(routersregisterclientsonthetrafficwithbroadcasting)
2. intra(withinadomain)/inter‐domain(betweendomains)
31
Rou)ngprotocols
Protocol Mode Treetype Type
PIM‐SM sparse common intraandinter‐domain
PIM‐DM dense separate intra‐domain
CBT sparse common intraandinter‐domain
MOSPF dense separate intra‐domain
BGMP dense separate intra‐domain
DVMRP dense separate intraandinter‐domain
thereisaconnectionbetweentheoperationmodeandthetypeoftreebuiltbytheprotocol
32
PIM‐SM(ProtocolIndependentMul8cast‐SparseMode) PIM‐DM:dense‐mode,separatetree PIM‐SM:sparse‐mode,commontree,occasionallyseparate
challenge:readRFC4601andstudyit
protocolsPIM‐SMandPIM‐DMaresuitableforroutersthatarealreadyrunningunicastrouting.Theyareindependentfromtheunicastprotocol
messagesusetheIPnetworkprotocolwithprotocolnumber103
messagesbetweenroutersareunicastormulticasttotheaddress224.0.0.13(allPIMrouters)
33
11/9/12
12
PIM‐SMopera)on
architectureestablishment
• candidatebootstraprouters(c‐BSR)announcetheirpresence(messagetypeBOOTSTRAP)anddesignatethemainbootstraprouterBSR
• candidatecentral(rendezvous)routers(c‐RP)announcetheirpresencetotheBSRrouter(messagetypeCANDIDATE‐RP‐ADVERTISEMENT)
• TheBSRdesignatesthefinalrendezvousrouter(RP)foreverygroupandannouncesthemwithmessagesoftypeBOOTSTRAP
datatransmission
• PIM‐SMroutersdetecteachotherandmaintaincommunicationwithHELLOmessages• theinterfacethatsendsinformationtothegroupaddressmulticastsadatagramtothelocalsegmentofthenetwork• thedesignatedrouteronthenetworkencapsulatesthedatagraminaREGISTERtypemessageandsendsittotheRP• theRPdecapsulatesthedatagramandmulticastsitacrossthemulticasttree
subscriptionmaintenance
• whentheRPdetectstherearenomorerecipientsinthegroup,itsendsaREGISTER‐STOPmessagetoalldesignatedrouters• whenanewuserwantstojoinagroup,itsendsaJOIN/PRUNEmessagewithalistofalldesiredgroupsandallowedrecipientsprejemnikov
34
Packetformat‐headercontent
Theheaderis32bitslong version=2 type:
value meaning
0 hello
1 register
2 registerstop
3 join/prune
4 bootstrap
5 assert
6candidate‐rp‐adver)sement
HEADER
packettypeHELLO
35
PIM‐SMpacketformat‐HELLOpacket
intendedforconnectionmaintenancebetweenrouters iftherouterdesignatedfortransmittingmulticasttrafficdoesn't
respond,anotheroneisdesignated thepacketcontainsasetofTLVvalues,suchase.g.timeout
36
11/9/12
13
PIM‐SMpacketformat‐REGISTERandREGISTER‐STOP
theREGISTERmessagecarriesthecontentsofthemulticastmessagetothecentralroute(unicast) B(borderrouter)‐themessage
reachedtherouterdirectlyconnectedtotheinterface,
N(null)‐thepacketisempty,forestablishingalink
theREGISTERSTOPmessageissentbytherendezvousroutertothedesignatedroutertosignalnottosendanymessages(norecipients/alreadyreceivingmessagesfromelsewhere)
37
PIM‐SMpacketformat‐JOIN/PRUNE
allowsthehostto(un)subscribetoreceivingmul)casttraffic
PIM‐SM'sNumberofPrunedSourcesis0(becauseitusesacommontree)
(Un)subscrip)onfields: EncodedJoinSourceAddress EncodedPrunedSourceAddress
38
Otherrou)ngprotocols
MOSPF MulticastOSPF added:aspecialpacketformatthatsharesinformationaboutmulticasttraffic challenge:findtheRFCdocumentsthatdescribeMOSPFandread
them!
DVMRP DistanceVectorMulticastRoutingProtocol transmittedthroughIGMPpackets(type13)
challenge:readRFC1075andstudyhowtheprotocolworks
39
11/9/12
14
MBONE connectionsbetweennetworkscapableofmulticasttraffic
atfirstinsidetheInternet,usedbyworkstationswithvirtualconnections
challenge:readRFC2715
1995:MBONEcontains901routers(DVMRPisused)andit'spresentin20countries
1999:4178routers,increaseduseofRTP,serviceprovidersbecomeoverloaded
IETFsetsuptheMBONEtaskforcewiththetaskofestablishingmulticastroutingacrosstheentireInternet(developmentoftheMSDPprotocol:MulticastSourceDiscoveryProtocol)
challenge:readRFC1112,whatisAnySourceMulticastarchitecture(ASM)?
40
Wecon)nuenext)me!
authentication,authorizationandaccounting‐AAA!
41