1補充InternetMulticastProtocols2CommunicationModelsUnicast(1:1)Multicast(1:n)Concast(m:1)Multipeer/multipoint(m:n)3OutlineReliableMulticastMulticast-capablenetworkprotocolsConnectionlesstransportprotocolOtherconnect-ionorientedprotocolsTransportlayerNetworklayerDataorderingprotocolApplications4MotivationResourceconservationDeliverasinglemessagetoasetofsiteswithoutusingmultipleunicastsSource5StrengthsofMulticastInformationdisseminationWeatherreports,news,roadtraffic,commercialsDistantlearning(遠距教學)InternetTV,digitalaudio/videodeliveryDistributedcooperativeapplicationsReplicatedcache/file/databaseupdateMulti-partyconversation,videoconferencing,on-linegameMandatoryL3functionforeachIPv6nodeNeighbordiscovery,duplicateaddressdetection6PotentialWeaknessesMulticastisUDPbasedMostlybest-effort(unreliable?)deliveryReliablemulticastisanactiveresearchareaNocongestioncontrolLackofTCPwindowand“slow-start”mechanismsDuplicatesApplicationsshouldoperateinthepresenceofduplicatepacketsOutofordermessagedelivery7Out-of-OrderMessageDeliveryNeedtoregulatemessagedeliverytooverlyingapplicationsforaconsistentorderofeventsaffectingagroupIfsend(m)gsend(m’),thenanyprocessthatdeliversbothmessagesdeliversmpriortom’S1S2S3m:D:=D+50m':D:=D*2Time8Network-layerProtocols—Pathselectionforroutingmulticasttraffic—9MulticastAddressClassDIPaddress224.0.0.0~239.255.255.255MappingtoEthernetaddressAddressResolutionProtocolisnotrequired!1110Groupidentity000000010000000001011110001005E23bits10AddressScoping224.0.0.0/24,link-local(TTL1)Foradministrativeandsystemlevelroutingchores224.0.0.1—allsystemsonthesubnet224.0.0.2—allroutersonthesubnet224.0.1.0~238.255.255.255,globallyscopedForenduserapplications224.0.1.1—NetworkTimeProtocol(NTP)224.0.1.9—MulticastTransportProtocol(MTP)232.0.0.0/8,SourceSpecificMulticast233.0.0.0/8,GLOPaddresses11AddressScoping(cont’d)239.0.0.0/8Limited(administratively)scoped239.255.0.0~239.255.255.255,AutonomousSystem-widelocalscope239.253.0.0~239.254.255.255,Expansionofthelocalscope239.192.0.0~239.195.255.244,Organizationscope—E.g.,TANET239.0.0.0~239.191.255.255,Expansionoftheorganizationalscope12Time-to-Live(TTL)ScopingThresholdScope0Restrictedtothesamehost1Restrictedtothesamesubnet15Restrictedtothesamesite31Restrictedtothesamedomain63Restrictedtosameregion127Worldwide255Unrestrictedinscope13UsingNetwork-LayerMulticastNormalIP-Send,withanIPmulticastaddressspecifiedasthedestinationReceivepacketsviaordinaryIP-Receive,withanopenandclosesocket,except...SpecifyanaddressonwhichtoreceiveJOIN-IP-MULTICAST-GROUP(group-address,interface)LEAVE-IP-MULTICAST-GROUP(group-address,interface)14IPMulticastArchitectureGroupmanagementInter-domainroutingIntra-domainrouting15GroupManagementInternetGroupManagementProtocol(IGMP)LearnwhichgrouppresentoneachlocalnetworkRFC1112(obsolete),RFC2236,InternetdraftMessageformatIPheader20bytes8bytesVer.TypeUnusedChecksumGroupAddressIGMPMessage37153116IGMPOverviewOneachlocalnetwork,oneQuerierrouterQuerierperiodically,per125s,sendsaMembershipQuerymessagetotheall-systemsgroup(224.0.0.1)Onreception,hostsstartrandomtimersof10secsforeachparticipantgroupWhenahost’stimerforgroupgexpires,itsendsaMembershipReporttogroupg,withTTL=1OthermembersofgroupgoverhearthereportandstoptheirtimersRouterstimeoutnon-respondinggroupsLeavelatencyupto260s17IGMPOverview(cont’d)g1g1,g2g2jMembershipQuerykkkkQuerierPeriodicallysendsGeneralQueriesto224.0.0.1todeterminememberships18IGMPOverview(cont’d)g1g1,g2g2jMembershipQuerykkklReport(g1)m{g1,…}JoiningmembersendsReportto224.1.1.1immediatelyuponjoining19IGMPVersion2(RFC2236)Changesfromversion1Reduce“leavelatency”(260s)—LasthostthatrepliedReport(g)initiatesaLeave-Group(g)messagetoleavegroupg‘Version’and‘Type’fieldsmergedintooneg1g1,g2g2MembershipQuery(g1)224.1.1.1oLeave-Group(g1)destined224.0.0.2npReport(g1)20IGMPVersion2(cont’d)MessageformatType0x11=MembershipQuery(GeneralQuery,Group-SpecificQuery)0x12=Version1MembershipReport0x16=Version2MembershipReport0x17=LeaveGroupTypeMax.ResponseTimeChecksumGroupAddress21IGMPVersion2(cont’d)MessageformatMax.ResponseTimeMax.timebeforesendingaMembershipReportin1/10sec.(Default=10sec.)EnablesIGMPv2hostsastheupperboundwhenrandomlychoosingthevalueofresponsetimersControltheburstinessofMembershipReportsTypeMax.ResponseTimeChecksumGroupAddress22IGMPVersion3IETFdraft-ieft-idmr-igmp-v3-05.txtEmergingstandardChangesfromversion2—“sourcefiltering”EnablehoststoreceiveorexcludemulticasttrafficfromspecificsourceaddressesAPI—IPMulticastListen(socket,interface,multicast-address,filter-mode,source-list)—filter-mode:INCLUDEorEXCLUDE23IGMPVersion3(cont’d)Source=1.1.1.1Group=224.1.1.1Memberof224.1.1.1Source=2.2.2.2Group=224.1.1.1Join1.1.1.1,224.1.1.1Leave2.2.2.2,224.1.1.1Recordsource-grouppair{(s,g),…}24IGMPVersion3(cont’d)QueryMessageformatQRV:QuerierRobust-nessValueQQIC:Querier’sQueryIntervalCode25IGMPVersion3(cont’d)ReportMessageformatRecordtypeMODE_IS_INCLUDE,MODE_IS_EXCLUDE26IPMulticastArchite