




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第7章IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)根據(jù)源和目標(biāo)所處的地理位置的不同,IPv6數(shù)據(jù)的轉(zhuǎn)發(fā)模式分為3種:l
源和目標(biāo)在同一網(wǎng)段的數(shù)據(jù)轉(zhuǎn)發(fā)模式;l
源和目標(biāo)在同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)模式;l
源和目標(biāo)在不同鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)模式。前兩種模式由于不需通過路由器,其數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)相對簡單,第三種模式由于要通過路由器進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā),牽涉到路由技術(shù)和路由算法,是比較復(fù)雜的數(shù)據(jù)傳輸模式。本章的主要內(nèi)容有:l
IPv4數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù);l
IPv6單播數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù);l
IPv6組播技術(shù);l
鄰居發(fā)現(xiàn)技術(shù);l
地址自動配置技術(shù)。
總目錄7.1IPv4數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)回顧7.2IPv6單播數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)7.3鄰居發(fā)現(xiàn)技術(shù)第7章IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)總目錄7.4地址自動配置7.5IPv6組播技術(shù)總目錄7.1IPv4數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)回顧7.1.1源和目標(biāo)在同一網(wǎng)段的數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)在IPv4網(wǎng)絡(luò)中,源主機(jī)和目標(biāo)主機(jī)在同一網(wǎng)段指的是源和目標(biāo)的IP地址屬于同一子網(wǎng),通常,源主機(jī)和目標(biāo)主機(jī)是通過二層交換機(jī)或集線器連接起來。設(shè)源主機(jī)要發(fā)送一個報文給目標(biāo)主機(jī),并設(shè)收發(fā)雙方的子網(wǎng)掩碼為。如圖7-1所示。總目錄其數(shù)據(jù)轉(zhuǎn)發(fā)過程如下:第1步:源主機(jī)()首先查詢自身的ARP緩存,看看是否存在與目標(biāo)主機(jī)IP地址對應(yīng)的記錄,若存在,則取出其對應(yīng)的MAC地址,轉(zhuǎn)第4步。否則轉(zhuǎn)第4步。第2步:發(fā)送方發(fā)送一條ARP請求的廣播消息,目標(biāo)主機(jī)對該ARP消息進(jìn)行回應(yīng),源主機(jī)獲得對應(yīng)的MAC地址(即由響應(yīng)ARP請求并返回帶MAC地址的應(yīng)答報文)。并將其存入本機(jī)ARP緩存。第3步:用獲得的MAC地址封裝報文并向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包??偰夸?.2.1源與目標(biāo)在同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)IPv6采用與IPv4類似的兩個技術(shù)來實現(xiàn)同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)。即On-linkdetermination(同一鏈路判定)和AddressResolution(地址解析)。1.數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)源和目的在同一鏈路上的數(shù)據(jù)轉(zhuǎn)發(fā)情況,類似于IPv4在同一網(wǎng)段的數(shù)據(jù)轉(zhuǎn)發(fā)情況。例:設(shè)在同一鏈路上的兩機(jī)器的IP地址分別為:1::1和1::2,如圖7-2所示。其數(shù)據(jù)轉(zhuǎn)發(fā)過程如下:源主機(jī)1::1確定目標(biāo)主機(jī)1::2與其在同一個鏈路上,即1::2是一個On-linkdestination;源主機(jī)1::1發(fā)起地址解析過程并獲得目標(biāo)主機(jī)1::2的MAC地址,再用獲得的MAC地址封裝數(shù)據(jù)包并將該數(shù)據(jù)包發(fā)往目標(biāo)主機(jī)1::2。7.2IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)總目錄2.如何判斷源和目的在同一鏈路在這里,分兩種情況討論:有地址伴隨前綴和無地址伴隨前綴。第一種情況是,有地址伴隨前綴。所謂有地址伴隨一個前綴是指在該主機(jī)的路由表中存在一個路由表項,在該路由表項中有一個1::1和1::2共同的前綴。路由表項如下:PublishTypeMetPrefixIdxGateway/InterfaceNamenoAutoconf81::/644本地連接一個地址伴隨一個前綴,還可以從無狀態(tài)自動配置時由路由器分發(fā)的RouterAdvertisement報文中給出,若其中的on-link標(biāo)志有效,接收主機(jī)就會自動生成這條路由。總目錄無狀態(tài)自動配置的RouterSolicitation(路由請求)、RouterAdvertisement(路由通告)及RouterAdvertisement報文前綴格式如圖5-31、圖5-32和圖7-3所示。標(biāo)志字段含義(其余字段的含義詳見圖5-32):l
L:表示Prefix是否可用,用于判斷一個地址是否在本地鏈路上。L=1表示該目標(biāo)地址在本地鏈路上,L=0表示該目標(biāo)地址不在本地鏈路上;l
A:表示該Prefix是否可用于地址自動配置。A=1表示該Prefix可用于地址自動配置,A=0表示該Prefix不可用于地址自動配置。ValidLifetime和PreferredLifetime向主機(jī)分別通報該前綴的兩個生命周期。
總目錄第二種情況是:PC1中沒有與1::2相伴隨的前綴。這里又有兩種可能的情況。如果PC1的IPv6路由表中存在這樣一條路由,該路由的前綴剛好是1::2的前綴,而且“下一跳”是一個具體的下一跳地址(一個完整的IPv6地址),如下所示:PublishTypeMetPrefixIdxGateway/InterfaceNamenoAutoconf256::/051::2這種情況IPv6認(rèn)為1::2是off-link的,即1::2與1::1不在同一鏈路上。如果1::2在PC1的IPv6路由表中沒有找到,則PC1認(rèn)為1::2是on-link的,即認(rèn)為1::2與1::1在同一鏈路上??偰夸?.添加路由
添加路由的步驟如下:l
打開“命令提示符”。l
在命令提示符下鍵入netsh,然后按Enter。l
鍵入interfaceipv6,然后按Enter。l
鍵入addroute[<參數(shù)>],然后按Enter。
例:
addroute3ffe::/16”internet”fe80::1總目錄4.地址解析在圖7-2中,設(shè)源主機(jī)PC1的地址為1::1,MAC地址為00:0d:56:6d:6f:fc,目的主機(jī)PC2的地址為1::2,MAC地址為00:10:5e:e5:fc:39,并設(shè)目的主機(jī)地址1::2是一個與源主機(jī)on-linkdetermination的。地址解析過程如下:
PC1以1::2為索引查找鄰居緩存,如果有命中,直接按照其中的鏈路層地址封裝數(shù)據(jù)包。如果沒有命中,則在鄰居表緩存中創(chuàng)建一個1::2為索引的表項,標(biāo)識其狀態(tài)為Incomplete(不確定性狀態(tài)),并啟動地址解析過程。PC1發(fā)出一個NeighborSolicitation報文,IPv6目的地址為1::2對應(yīng)的Solicited-Node組播地址ff02::1(鏈路本地范圍內(nèi)所有節(jié)點組播地址),并在其中的Target域中包含待解析的地址1::2。同時在ICMP選項部份包含一個1::1對應(yīng)的鏈路層地址,以供對端回應(yīng)NeighborDvertisement報文時作二層封裝使用。PC2接收到這個NeighborSolicitation(鄰居請求)報文后,發(fā)現(xiàn)其要解析的地址是1::2,于是就構(gòu)造出一個包含Target1::2及其鏈路層地址的NeighborAdvertisement(鄰居通告)報文,同時將1::1與其對應(yīng)的鏈路層地址映射加入到本地鄰居緩存表中,并將其狀態(tài)設(shè)為STALE。當(dāng)PC1收到NeighborAdvertisement報文后,就將其中的1::2對應(yīng)的鏈路層地址加入到鄰居緩存中,并更新其狀態(tài)為Reachbale。
之后,后續(xù)的通信就可以利用這個鄰居緩存中的Reachbale表項進(jìn)行通信了。IPv6地址解析流程、NeighborSolicitation和NeighborAdvertisement報文格式分別如圖7-5、圖5-29和圖5-30所示??偰夸浛偰夸浺粋€典型的NeighborSolicitation報文如下:+EthernetII,Src:00:0d:56:6d:6f:fc,Dst:-InternetProtocolVersion6Version:6Trafficclass:0x00
Flowlabel:0x00000Payloadlength:32Nextheader:ICMPv6(0x3a)Hoplimit:255Sourceaddress:1::1Destinationaddress:ff02::1-InternetControlMessageProtocolv6Type:135(Neighborsolicitation)Code:0Checksum:0xb321(correct)
Traget:1::2-ICMPv6optionsType:1(Sourcelink-layeraddress)Length:8bytes(1)Link-layeraddress:00:0d:56:6d:6f:fc總目錄一個典型的NeighborAdvertisement報文如下:+EthernetII,Src:00:10:5e:e5:fc:39,Dst:00:0d:56:6d:6f:fc-InternetProtocolVersion6Version:6Trafficclass:0x00
Flowlabel:0x00000Payloadlength:32Nextheader:ICMPv6(0x3a)Hoplimit:255Sourceaddress:1::2Destinationaddress:1::1-InternetControlMessageProtocolv6Type:136(Neighboradvertisement)Code:0Checksum:0xc66c(correct)-Flags:0x600000000……………….=notrouter.1……………..=Solicited..1…………….=Override-ICMPv6optionsType:1(Sourcelink-layeraddress)Length:8bytes(1)Link-layeraddress:00:10:5e:e5:fc:39總目錄7.2.2源和目標(biāo)在不同鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)源和目標(biāo)在不同鏈路上的數(shù)據(jù)轉(zhuǎn)主要要解決如下兩個問題:
l
主機(jī)如何才能知道應(yīng)該將數(shù)據(jù)發(fā)往哪一個路由器;
l
路由器怎么才能知道將報文轉(zhuǎn)發(fā)到哪一個接口上的哪一個鄰居。其實現(xiàn)技術(shù)具體體現(xiàn)在以下3個方面:
l
三層轉(zhuǎn)發(fā)信息從哪里來?即Router&PrefixDiscovry;l
如何確定下一跳?即Next_hopDetermination;l
如何優(yōu)化路由?即Redirect。總目錄1.主機(jī)-路由器與源和目的在同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)類似,在這里,源主機(jī)使用RouterSolicitation報文進(jìn)行廣播查找目標(biāo)路由器地址,目標(biāo)路由器用RouterAdvertisement報文進(jìn)行應(yīng)答。之后,源節(jié)點用RouterAdvertisement報文返回的目標(biāo)節(jié)點的MAC地址封裝報文并發(fā)給目標(biāo)主機(jī)。通過前面的學(xué)習(xí)我們知道,一臺源主機(jī)要向目標(biāo)主機(jī)發(fā)送數(shù)據(jù)包,至少要兩條信息:
l
一個源主機(jī)的IP地址;
l
一條包含目標(biāo)主機(jī)MAC地址及下一跳路由。源主機(jī)可以通過下列三種渠道得到目標(biāo)主機(jī)的MAC地址:
l
無狀態(tài)地址配置;
l
有狀態(tài)地址配置;
l
手工配置。在這里,著重介紹的是無狀態(tài)地址配置技術(shù)。以圖7-6所示的一個簡單網(wǎng)絡(luò)拓?fù)鋵嵗胧?,介紹主機(jī)-路由器的數(shù)據(jù)轉(zhuǎn)發(fā)中需要的路由配置過程??偰夸浽谶@個例子中,主機(jī)PC1通過路由器RT1與主機(jī)PC2相連接,其網(wǎng)絡(luò)參數(shù)如下:PC1:IP地址:fe80::020d:56ff:fe6d:6ffcMAC地址:00:0d:56:6d:6f:fcPC2:IP地址:fe80::0201:02ff:fe03:0405MAC地址:00:01:02:03:04:05RT1:IP地址:fe80::0210:5cff:fee5:fc39MAC地址:00:10:5c:e5:fc:39e1口:1::2
e3口:2::1總目錄首先,對路由器RT1的e1/0口及e3/0口作如下的配置:ipv6interfaceEthernet1/0ipv6address1::2/64undoipv6ndrahaltinterfaceEthernet3/0ipv6address2::1/64undoipv6ndrahalt路由器經(jīng)上述配置后,將PC1的IP地址設(shè)置為1::1,將PC2的IP地址設(shè)置為2::2(當(dāng)然,PC1和PC2也可以使用自動獲得的鏈路本地地址),源主機(jī)就會自動向路由器發(fā)起一個路由請求報文RouterSolicitation,路由器收到該報文后,會自動回執(zhí)一個路由通告報文RouterAdvertisement,該通告報文包含了路由器的MAC地址??偰夸汻outerSolicitation報文(由源主機(jī)PC1發(fā)出的路由請求報文)如下:+EthernetII,Src:00:0d:56:6d:6f:fc,Dst:00:01:02:03:04:05-InternetProtocolVersion6Version:6Trafficclass:0x00
Flowlabel:0x00000Payloadlength:32Nextheader:ICMPv6(0x3a)Hoplimit:255Sourceaddress:fe80::020d:56ff:fe6d:6ffcPC1的IP地址(鏈路本地址)Destinationaddress:ff02::2鏈路本地范圍所有路由器的組播地址-InternetControlMessageProtocolv6Type:133(Routersolicitation)Code:0Checksum:0xb321(correct)-ICMPv6optionsType:1(Sourcelink-layeraddress)Length:8bytes(1)Link-layeraddress:00:0d:56:6d:6f:fc源主機(jī)PC1的MAC地址總目錄RouterAdvertisement報文(由路由器RT1發(fā)往所有節(jié)點的路由通告報文)如下:+EthernetII,Src:00:10:5c:e5:fc:39,Dst:00:0d:56:6d:6f:fc-InternetProtocolVersion6Version:6Trafficclass:0x00
Flowlabel:0x00000Payloadlength:32Nextheader:ICMPv6(0x3a)Hoplimit:255Sourceaddress:fe80::0210:5cff:fee5:fc39路由器RT1的IP地址(鏈路本地地址)Destinationaddress:ff02::1鏈路本地范圍所有節(jié)點的組播地址-InternetControlMessageProtocolv6Type:134(Routeradvertisement)Code:0Checksum:0x77008(correct)Hoplimit:32總目錄-Flags:0x0Routerlifetime:1800Reachabletime:0Retranstime:0-ICMPv6optionsType:1(Sourcelink-layeraddress)Length:8bytes(1)Link-layeraddress:00:10:5c:e5:fc:39路由器RT1的MAC地址-ICMPv6optionsType:5(MTU)Length:8bytes(1)MTU:1500-ICMPv6optionsType:3(prefixinformation)Length:32bytes(4)-Flags:0xc01.......=Onlink
.1......=Auto..0.....=Notrouteraddress...0....=NotsiteprefixValidlifetime:0x0013000Preferredlifetime:0x0039000Prefix:1::總目錄2.路由器-路由器IPv6路由器-路由器的數(shù)據(jù)交換的核心技術(shù)就是路由表項,IPv6的路由表項通常有三種:
l
直連路由;
l
靜態(tài)路由;
l
由動態(tài)路由協(xié)議發(fā)現(xiàn)的路由。(1)直連路由Direct直連路由是指路由器本身接口的路由以及所屬前綴的路由,在路由表中,這類路由的Preference為0,Protocol為Direct。例如:Destination:1::2PrefixLength:164Nexthop:2::2Prefrence:0Interface:InLoopBack0Protocol:StaticState:ActiveAdvCost:0RefrenceCount:1總目錄(2)靜態(tài)路由Static靜態(tài)路由通常是指由手工配置的路由,其配置命令格式為:ipv6route-static<ip-address><prefix-length>{<interface-name>[<nexthop-address>]/<gateway-address>}[prefrernce<preference-vlue>]例如:若我們發(fā)出配置命令ipv6route-static1::2203/02::2,則產(chǎn)生如下路由表項:Destination:1::2PrefixLength:64Nexthop:2::2Prefrence:60Interface:Ethernet3/0Protocol:StaticState:ActiveAdvGotQCost:0RefrenceCount:2在該例中,我們只配置了目標(biāo)地址ip-address、前綴長度PrefixLength、接口地址interface-name及下一跳地址nexthop-address,其余參數(shù)(如上層協(xié)議Protocol、狀態(tài)Static等)由系統(tǒng)自動取默認(rèn)值進(jìn)行配置。總目錄(3)動態(tài)路由協(xié)議發(fā)現(xiàn)的路由主要使用下列協(xié)議進(jìn)行動態(tài)路由定位:
RIPng:路由信息協(xié)議;IS-ISv6:路由器-路由器協(xié)議;OSPFv3:開放式最短路由協(xié)議;BGP4+:邊界網(wǎng)關(guān)協(xié)議第4版。動態(tài)路由協(xié)議的配置與使用技術(shù)詳見第8章,“IPv6路由技術(shù)”??偰夸?.3鄰居發(fā)現(xiàn)技術(shù)1.鄰居發(fā)現(xiàn)的概念鄰居發(fā)現(xiàn)又稱鄰機(jī)發(fā)現(xiàn)或鄰節(jié)點發(fā)現(xiàn)。IPv6解決的最大問題是擴(kuò)大了地址空間,另外,它與IPv4相比在其它許多方面都具有優(yōu)勢,例如安全性、服務(wù)質(zhì)量、移動性等。IPv6的一個顯著特點就是它具有“即插即用”功能。即插即用使節(jié)點直接連接到網(wǎng)絡(luò)后,不需要經(jīng)過任何人工配置就能夠自動連入網(wǎng)絡(luò),即插即用使網(wǎng)絡(luò)的管理和控制變得更加簡單;其次,節(jié)點只需要知道自己的鏈路層地址及本地網(wǎng)絡(luò)的子網(wǎng)前綴,就能夠通過IPv6的無狀態(tài)或者全狀態(tài)自動配置得到惟一的IPv6地址,從而成為網(wǎng)絡(luò)的一部分;另外,IPv6還實現(xiàn)了更好的對節(jié)點移動性的支持。這些功能都是通過鄰居發(fā)現(xiàn)協(xié)議來實現(xiàn)的,同一個子網(wǎng)內(nèi)的所有主機(jī)和路由器之間的交互也都是通過鄰居發(fā)現(xiàn)協(xié)議來實現(xiàn)的。
總目錄使用鄰居發(fā)現(xiàn)技術(shù)主要有節(jié)點、主機(jī)和路由器。一個節(jié)點使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:
l
解析IPv6數(shù)據(jù)包將被轉(zhuǎn)發(fā)到的鄰節(jié)點的鏈路層地址;
l
確定鄰節(jié)點的鏈路層地址什么時候發(fā)生變化;
l
確定鄰節(jié)點的可到達(dá)性。一臺主機(jī)使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:
l
發(fā)現(xiàn)相鄰的路由器;
l
自動配置地址、地址前綴及路由等。一臺路由器使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:
l
公告路由器的配置參數(shù)、路由以及鏈路上的地址前綴;
l
通知主機(jī)發(fā)往指定目標(biāo)的數(shù)據(jù)包有一個更好的下一跳地址。總目錄2.鄰居發(fā)現(xiàn)選項鄰居發(fā)現(xiàn)選項采用TLV格式,在RFC2461中定義了5種IPv6鄰居發(fā)現(xiàn)選項:l
源鏈路層地址選項。該選項表示鄰居發(fā)現(xiàn)報文的發(fā)送方的鏈路層地址(MAC地址),主要用于鄰居請求、路由請求和路由通告報文中。l
目標(biāo)鏈路層地址選項。該選項表示IPv6數(shù)據(jù)包發(fā)送到鄰居的鏈路層地址,用于鄰居通告和重定向報文。l
前綴信息選項。該選項用于路由通告報文,以表示地址前綴和有關(guān)地址自動配置的信息。l
重定向報文選項。該選項用于重定向報文中,指定導(dǎo)致路由器發(fā)送重定向報文的IPv6數(shù)據(jù)包。l
MTU選項。該選項用于路由通告報文,表示鏈路的IPv6MTU。MTU選項將重寫由接口硬件報告的IPv6MTU。總目錄3.鄰居發(fā)現(xiàn)技術(shù)的內(nèi)容鄰居發(fā)現(xiàn)協(xié)議是IPv6協(xié)議的一個基本的組成部分,鄰居發(fā)現(xiàn)協(xié)議實現(xiàn)了路由器和前綴發(fā)現(xiàn)、地址解析、下一跳地址確定、重定向、鄰居不可達(dá)檢測、重復(fù)地址檢測等功能,可實現(xiàn)鏈路層地址變化、負(fù)載均衡、泛播地址和代理通告等功能。鄰居發(fā)現(xiàn)協(xié)議采用5種類型的IPv6控制信息報文(ICMPv6)來實現(xiàn)鄰居發(fā)現(xiàn)協(xié)議的各種功能。這5種類型消息如下。l
路由請求(RouterSolicitation)報文。路由請求報文對應(yīng)的ICMPv6類型為133。l
路由通告(RouterAdvertisement)報文。路由通告報文對應(yīng)的ICMPv6類型為134。l
鄰居請求(NeighborSolicitation)報文。鄰居請求報文對應(yīng)的ICMPv6類型為135。l
鄰居通告(NeighborAdvertisement)報文。鄰居通告報文對應(yīng)的ICMPv6類型為136。l
重定向(Redirect)報文。重定向報文對應(yīng)的ICMPv6類型為137??偰夸?.主機(jī)的數(shù)據(jù)結(jié)構(gòu)IPv6的設(shè)計要求是:即使在一個有限的網(wǎng)絡(luò)內(nèi),主機(jī)也必須正確無誤碼地工作,而不像路由器不能儲存路由表,不能有永久的配置,因此主機(jī)必須能自動配置,必須具有到交換數(shù)據(jù)的有關(guān)目的地的最小信息。這些信息儲存的存儲器叫做緩存,其數(shù)據(jù)結(jié)構(gòu)是一系列記錄的排列,稱作“表項”。每個表項儲存的信息有一定的有效期,需要周期性地清除緩存中的表項,以保證緩存的空間大小。主機(jī)需要為每一接口維護(hù)以下信息。l
鄰居緩存;l
目的地緩存;l
前綴列表;l
缺省路由器列表。總目錄鄰居緩存包含鄰居不可達(dá)檢測算法維護(hù)的信息。鄰居可達(dá)性狀態(tài)是最關(guān)鍵的信息,它的取值是下列的5個狀態(tài)值之一。l
不確定性(Incomplete)。正在進(jìn)行地址解析,鄰居的鏈路層地址還未確定。l
可到達(dá)性(Reachbale)。此時,鄰居處于可達(dá)狀態(tài)。l
過時(STALE)。在數(shù)據(jù)流發(fā)送給該鄰居以前鄰居是不可達(dá)的,并無法驗證其可達(dá)性。l
延遲(Delay)。鄰居不再是可達(dá)的,同時數(shù)據(jù)流在最近已經(jīng)發(fā)送給鄰居,但不立即對該鄰居進(jìn)行探測,而在一個短時延后發(fā)送探測信息,這樣就可以為上層協(xié)議提供可達(dá)性確認(rèn)。l
探測(Probe)。鄰居不再是可達(dá)的,同時發(fā)送單播鄰居請求探測以驗證可達(dá)性??偰夸涍@些狀態(tài)是可以轉(zhuǎn)換的,其具體過程如下:
Incomplete狀態(tài)是一個初始狀態(tài),此時,鄰居緩存中三層地址(IP地址)不存在二層鏈路層地址(MAC地址)與其綁定。當(dāng)某個鄰居緩存表項處于該狀態(tài)時,經(jīng)過地址解析獲得二層地址后,可以轉(zhuǎn)化為Reachbale狀態(tài)。當(dāng)某個鄰居緩存表項處于Reachbale時,表示該鄰居在短時間內(nèi)(10s鐘之內(nèi))是完全可到達(dá)的。如果在這段時間內(nèi)沒有收到關(guān)于該鄰居的“可達(dá)性證實”消息,則該表項就會自動進(jìn)入“State”狀態(tài)。State狀態(tài)表示某個鄰居緩存項“存舊”了(即過時了)。State狀態(tài)除了可從Reachbale狀態(tài)直接進(jìn)入以外,還可以從不可信渠道獲得的鏈路層地址信息中獲得,例如,可從鄰居請求中的Option字段提供的信息源鏈路層地址中獲得。State是一個穩(wěn)定的狀態(tài),在沒有任何報文發(fā)往這個鄰居的情況下該報文表項是不會被處理的。當(dāng)有報文發(fā)往該鄰居時,這個報文就會利用緩存中的鏈路層地址進(jìn)行報文的封裝,同時進(jìn)入Delay狀態(tài),期待上層協(xié)議能給出一個該鄰居的“可達(dá)性證實”消息。Delay狀態(tài)是一個專門為上層協(xié)議提供“可達(dá)性證實”消息機(jī)會的,在進(jìn)入Delay狀態(tài)后,如果在一定的時間之內(nèi)未收到關(guān)于該鄰居的任何“可達(dá)性證實”消息,就會向該鄰居發(fā)送鄰居請求報文,同時進(jìn)入Probe狀態(tài)。節(jié)點會向處于Probe狀態(tài)的鄰居不斷地發(fā)送鄰居請求報文,直到接收到“可達(dá)性證實”消息為止。若在兩個“鄰居請求”報文之間多次嘗試后仍未收到“可達(dá)性證實”消息,就被認(rèn)為該鄰居是不可到達(dá)的,在這種情況下,送往該鄰居的報文將被丟棄,并發(fā)送ICMP信息報文指示該目標(biāo)不可到達(dá),同時,刪除相應(yīng)的表項??偰夸?.?dāng)?shù)據(jù)包的發(fā)送算法節(jié)點向目的地發(fā)送數(shù)據(jù)包時,使用目的地緩存、前綴列表、默認(rèn)路由器列表確定合適的下一跳的IP地址,然后路由器查詢鄰居緩存確定鄰居的鏈路層地址。確定IPv6單播地址的下一跳操作過程如下:發(fā)送者使用前綴列表中的前綴進(jìn)行最長前綴匹配,確定包的目的地是連接的還是非連接的。如果下一跳是連接的,下一跳地址就和目的地地址相同,否則發(fā)送者從默認(rèn)路由器列表中選擇下一跳。如果默認(rèn)路由器列表為空,則發(fā)送者認(rèn)為目的地是連接的。下一跳確定的信息存儲在目的地緩存中,下一個包可以使用這些信息。當(dāng)路由器發(fā)送包時,首先檢查目的地緩存,如果目的地緩存沒有相關(guān)信息存在,就激活下一跳確定過程。在找到下一跳路由器的IPv6地址后,發(fā)送者檢查鄰居緩存以決定鏈路層地址。如果沒有下一跳IPv6地址的表項存在,路由器將完成以下工作:l
創(chuàng)建一個新表項,并設(shè)置其狀態(tài)為不完全;l
開始進(jìn)行地址解析;l
對傳送的包進(jìn)行排隊。當(dāng)?shù)刂方馕鼋Y(jié)束時,獲得鏈路層地址,存儲在鄰居緩存中。此時表項到達(dá)新的可達(dá)狀態(tài),排隊的包能夠傳送??偰夸?.鄰居發(fā)現(xiàn)的實現(xiàn)技術(shù)(1)鄰居緩存和目的地緩存在鄰居發(fā)現(xiàn)技術(shù)中,鄰居緩存和目的地緩存是兩張非常重要的信息表。鄰居發(fā)現(xiàn)維護(hù)著一份最近發(fā)生過的通信鄰居列表,按照它們的單播IP地址列出,每條記錄包含了有關(guān)鄰居的鏈路層地址信息,以及一個用以區(qū)分鄰居是主機(jī)還是路由器的標(biāo)志。目的地緩存用于維護(hù)最近發(fā)生過的目的地信息,包括本地目的地和遠(yuǎn)程目的地。換句話說,可以認(rèn)為鄰居緩存是目的地緩存的子集。目的地緩存是通過ICMP重定向報文的信息進(jìn)行更新的。如果目的地是遠(yuǎn)程地址,則在目的地緩存中的記錄中列出的信息有下一跳路由器的鏈路層地址、MTU值和往返時間的附加信息。鄰居緩存和目的地緩存的詳細(xì)描述見本小節(jié)的第4部份“主機(jī)的數(shù)據(jù)結(jié)構(gòu)”。總目錄(2)地址解析 IPv6節(jié)點是通過鄰居請求報文和鄰居通告報文進(jìn)行信息交互的,并以此來解析給定目標(biāo)的鏈路上下一跳地址的鏈路層地址。具體做法是,源主機(jī)在適當(dāng)?shù)慕涌谏习l(fā)送一個多播鄰居請求報文,該報文的多播地址是從目標(biāo)IP地址得到的請求節(jié)點的多播地址,報文中包含了在源鏈路層地址選項中的源主機(jī)的鏈路層地址。當(dāng)目標(biāo)主機(jī)接收到鄰居節(jié)點的請求報文后,會根據(jù)鄰居請求報文中的源地址和源鏈路層地址選項中的鏈路層地址來更新自己的鄰居緩存。此后,目標(biāo)節(jié)點向鄰居請求報文的發(fā)送方發(fā)送一個單播鄰居通告報文,鄰居通告報文中包含了目標(biāo)鏈路層地址選項。當(dāng)接收到來自目標(biāo)節(jié)點的鄰居通告報文后,源主機(jī)會根據(jù)目標(biāo)鏈路層地址選項中的信息創(chuàng)建一個關(guān)于目標(biāo)節(jié)點的新表項,以更新其鄰居高速緩存??偰夸?3)鄰居不可到達(dá)性檢測如果確認(rèn)發(fā)送給鄰居節(jié)點的IPv6數(shù)據(jù)包已被鄰居節(jié)點接收,則說成是“鄰居節(jié)點是可到達(dá)的”。而“鄰居不可到達(dá)”僅僅是驗證到目的地的第一跳的可到達(dá)性,并不關(guān)心源節(jié)點到目標(biāo)節(jié)點的可到達(dá)性。通常,確定鄰居的可達(dá)性有兩種方法,其一是通過鄰居請求報文和鄰居通告報文來完成,另一種是通過上層協(xié)議表示的使用下一跳地址進(jìn)行的通信正處于發(fā)送數(shù)據(jù)的過程來間接地確定鄰居的可到達(dá)性。(4)重復(fù)地址檢測IPv6使用鄰居請求報文來檢測本地鏈路上是否存在正在使用地址有重復(fù)。在IPv6重復(fù)地址檢測中,鄰居請求報文中的目標(biāo)地址字段被置成檢測出的重復(fù)的IPv6地址。當(dāng)一個節(jié)點接收到目標(biāo)地址字段被置成檢測到重復(fù)的IP地址的多播鄰居通告報文后,就會禁止使用自己接口上的重復(fù)的IP地址;如果此節(jié)點沒有接收到阻止使用這個IP地址的鄰居通告報文,則就會在自己的接口上初始化這個地址??偰夸?5)路由器發(fā)現(xiàn)IPv6的節(jié)點是通過路由器發(fā)現(xiàn)報文來發(fā)現(xiàn)本地鏈路上的路由器的設(shè)置的,IPv6路由器在本地鏈路上偽周期性在發(fā)送路由通告報文以通告其自己的存在,并且提供默認(rèn)跳限制、MTU、前綴和路由等配置參數(shù)。在本地鏈路上活動的IPv6主機(jī)接收到路由通告報文后,就會使用這些報文的內(nèi)容來維護(hù)默認(rèn)路由器列表和前綴列表、自動配置地址、添加路由和配置其他參數(shù)。正在啟動的主機(jī)會向鏈路本地范圍上所有路由器多播地址(FF02::2)發(fā)送一個路由請求報文,本地鏈路上所有路由器在接收到路由請求報文后,都會向發(fā)送路由請求報文的主機(jī)的單播地址或鏈路本地范圍所有節(jié)點多播地址(FF02::1)發(fā)送路由通告報文。主機(jī)接收路由通告報文后用其內(nèi)容來建立默認(rèn)路由列表、前綴列表和設(shè)置其他的配置參數(shù)??偰夸?6)重定向路由器使用重定向功能來通知源主機(jī)具有更好的第一跳鄰居節(jié)點,發(fā)往指定目的地的業(yè)務(wù)流應(yīng)該首先被發(fā)送到這個鄰居節(jié)點。路由器必須同時滿足下列3個條件才能發(fā)送重定向消息:l
需轉(zhuǎn)發(fā)的數(shù)據(jù)包的IP源地址是一個鄰居;l
路由器發(fā)現(xiàn)在同一條鏈路上存在一個更佳的下一跳節(jié)點;l
需轉(zhuǎn)發(fā)的數(shù)據(jù)包的目標(biāo)IP地址不是組播地址。源主機(jī)在接收到重定向報文后,如果在目的地緩存中存在該目的地,則修改目的地緩存,使其后續(xù)的數(shù)據(jù)包轉(zhuǎn)至新的下一跳;如果目的地緩存不存在,就新建該目的地及下一跳。總目錄7.4地址自動配置技術(shù)1.IPv6地址格式及地址配置方式一個典型的IPv6主機(jī)單播地址由3部分組成:全球路由前綴、子網(wǎng)ID和接口ID。全球路由前綴用來識別分配給一個站點的一個地址范圍。子網(wǎng)ID也稱為子網(wǎng)前綴,一個子網(wǎng)ID與一個鏈接相關(guān)聯(lián),以識別站點中某個鏈接。接口ID用來識別鏈接上的某個接口,在該鏈接上是惟一的。IPv6地址配置可以分為手動地址配置和自動地址配置兩種方式。自動地址配置方式又可以分為無狀態(tài)地址自動配置和有狀態(tài)地址自動配置兩種。在無狀態(tài)地址自動配置方式下,網(wǎng)絡(luò)接口接收路由通告的全球地址前綴,再結(jié)合接口ID得到一個可聚合全球單播地址。在有狀態(tài)地址自動配置的方式下,主要采用動態(tài)主機(jī)配置協(xié)議(DHCP),需要配備專門的DHCP服務(wù)器,網(wǎng)絡(luò)接口通過客戶機(jī)/服務(wù)器模式從DHCP服務(wù)器處動態(tài)地獲得地址配置信息??偰夸?.接口ID的生成在無狀態(tài)地址自動配置方式下,接口ID通??梢酝ㄟ^EUI-64轉(zhuǎn)換算法得到。接口ID由48位MAC地址轉(zhuǎn)換得到。EUI-64是IEEE定義的一種基于64位的擴(kuò)展惟一標(biāo)示符。是IEEE指定的公共24位制造商標(biāo)識和制造商為產(chǎn)品指定的40位值的組合。在IPv6地址中,接口ID的長度為64位,由48位的以太網(wǎng)MAC地址轉(zhuǎn)換得到。詳見3.2.1小節(jié)。WindowsXP下主機(jī)地址自動配置示例如下圖所示。例中,Linklayeraddress(即MAC地址)為“00-16-d3-3d-0b-4e”。preferredlinklocal通過自動配置得到主機(jī)鏈路本地地址。其中,fe80::/64是鏈路本地地址的固定前綴,216:d3ff:fe3d:b4e是從MAC地址轉(zhuǎn)換得到的64位的接口ID??偰夸浛偰夸?.全球路由前綴的獲得網(wǎng)絡(luò)節(jié)點為獲得全球路由前綴,向與其相連的路由器發(fā)出路由請求RS(RouterSolicitation)消息。該RS消息的類型字段值為133,消息的源地址是網(wǎng)絡(luò)節(jié)點的本地鏈路地址,由于這是一個路由請求消息,目的地址是FF02::2(所有路由器多播地址)。路由器接收到網(wǎng)絡(luò)節(jié)點的RS消息后,向該節(jié)點回送路由通告RA(RouterAdvertisement)消息。RA消息的源地址是路由器的IPv6地址,目的地址是網(wǎng)絡(luò)節(jié)點的本地鏈路地址,消息的類型字段值是134,表明這是一個路由通告消息,消息的選項字段給出全球路由前綴。網(wǎng)絡(luò)節(jié)點在獲得全球路由前綴后,與接口ID結(jié)合形成全球IPv6地址。至此,網(wǎng)絡(luò)節(jié)點的無狀態(tài)地址自動配置過程結(jié)束??偰夸浭褂肊UI-64轉(zhuǎn)換算法得到的接口ID是隨機(jī)器硬件固定的,也是全球惟一的。該算法實現(xiàn)簡單,是一種重要的接口ID自動生成算法,目前Windows,Linux操作系統(tǒng)在對主機(jī)生成接口ID時,均使用EUI-64轉(zhuǎn)換算法。作為對該算法的一種改進(jìn),RFC3041又引入了一種隨機(jī)地址機(jī)制,他包含了用一組隨機(jī)數(shù)字代替由MAC地址轉(zhuǎn)換的接口ID。該地址具有一定的生存周期,隨著生存周期的結(jié)束,該地址會自動更換,較好地解決了節(jié)點的Internet訪問活動被跟蹤的問題。總目錄7.6IPv6組播技術(shù)7.5.1組播的基本概念1.組播的基本概念網(wǎng)絡(luò)應(yīng)用中越來越多的是基于一個特定的組,比如:多媒體會議、群組數(shù)據(jù)分發(fā)、網(wǎng)絡(luò)游戲、群組視頻點播、群組網(wǎng)絡(luò)聊天等。要完成這些應(yīng)用,使用傳統(tǒng)的TCP/IP的單播技術(shù)或是廣播技術(shù)都不合適。單播技術(shù)會有大量的冗余數(shù)據(jù),占用大量的網(wǎng)絡(luò)帶寬,而廣播除了產(chǎn)生大量的冗余數(shù)據(jù),占用大量的網(wǎng)絡(luò)帶寬外,還會降低網(wǎng)絡(luò)的安全性和對無關(guān)的網(wǎng)絡(luò)設(shè)備和客戶造成影響,如產(chǎn)生廣播風(fēng)暴等。要實現(xiàn)特定組的數(shù)據(jù)的傳播,最好的辦法就是組播技術(shù):根據(jù)實際情況,將相關(guān)的成員劃分到一個群組,數(shù)據(jù)的傳播僅在該組內(nèi)進(jìn)行,對同一方向的多個(或一個)用戶有同一數(shù)據(jù)包需求的,僅轉(zhuǎn)發(fā)一個數(shù)據(jù)包,這樣就可以最大限度地減少冗余數(shù)據(jù)的轉(zhuǎn)發(fā)。組播是一種基于網(wǎng)絡(luò)硬件設(shè)備實現(xiàn)的一種分組廣播的數(shù)據(jù)傳輸方式。組播數(shù)據(jù)傳輸時,服務(wù)器可以將一個數(shù)據(jù)包通過網(wǎng)絡(luò)硬件設(shè)備復(fù)制的方法同時分組發(fā)送給多個需要接收的客戶端。采用這種方式,組播視頻節(jié)目就可以在有限的網(wǎng)絡(luò)主干帶寬下實現(xiàn)無限用戶同時在線觀看??偰夸?.組播協(xié)議的優(yōu)勢能節(jié)省發(fā)送數(shù)據(jù)的主機(jī)的系統(tǒng)資源和帶寬;
組播是有選擇地復(fù)制給有要求的主機(jī);
組播可以穿越公網(wǎng)廣泛傳播,而廣播則只能在局域網(wǎng)或?qū)iT的廣播網(wǎng)內(nèi)部傳播;
組播能節(jié)省網(wǎng)絡(luò)主干的帶寬。3.組播協(xié)議的缺點與單播協(xié)議相比,組播沒有補(bǔ)包機(jī)制,因為組播采用的是UTP(單向傳輸協(xié)議)的傳輸方式,并且不是針對一個接收者,所以無法有針對的進(jìn)行補(bǔ)包。因此,直接用組播協(xié)議傳輸?shù)臄?shù)據(jù)是不可靠的。4.組播技術(shù)的分類目前,組播技術(shù)分為兩大陣營:l
基于視頻信號的組播技術(shù);l
基于網(wǎng)絡(luò)信號的組播技術(shù)??偰夸?.5.2IPv4組播技術(shù)回顧IPv4網(wǎng)絡(luò)有三種通訊模式:單播、廣播和組播,其中的組播出現(xiàn)時間最晚但同時具備單播和廣播的優(yōu)點,最具有發(fā)展前景。1.單播技術(shù)(1)單播的概念主機(jī)之間采用“一對一”的通訊模式,網(wǎng)絡(luò)中的交換機(jī)和路由器對數(shù)據(jù)只進(jìn)行轉(zhuǎn)發(fā)不進(jìn)行復(fù)制。如果10個客戶機(jī)需要相同的數(shù)據(jù),則服務(wù)器需要逐一傳送,重復(fù)10次相同的工作。但由于其能夠針對每個客戶機(jī)的及時響應(yīng)而使該技術(shù)獨占鰲頭,例如現(xiàn)在的網(wǎng)頁瀏覽全部都是采用IP單播協(xié)議。網(wǎng)絡(luò)中的路由器和交換機(jī)根據(jù)其目標(biāo)地址選擇傳輸路徑,將IP單播數(shù)據(jù)傳送到其指定的目的地??偰夸浛偰夸?.廣播技術(shù)(1)廣播的概念主機(jī)之間采用“一對所有”的通訊模式,網(wǎng)絡(luò)對其中每一臺主機(jī)發(fā)出的信號都進(jìn)行無條件的復(fù)制并轉(zhuǎn)發(fā),所有主機(jī)都可以接收到所有廣播信息(不管你是否需要),由于不用進(jìn)行路徑選擇,所以其網(wǎng)絡(luò)成本可以很低廉。有線電視網(wǎng)就是典型的廣播型網(wǎng)絡(luò),電視機(jī)實際上是接收到所有頻道的信號,但只將一個頻道的信號還原成畫面。在數(shù)據(jù)網(wǎng)絡(luò)中也允許廣播的存在,但其被限制在二層交換機(jī)的局域網(wǎng)范圍內(nèi),禁止廣播數(shù)據(jù)穿過路由器,防止廣播數(shù)據(jù)影響大面積的主機(jī)??偰夸浛偰夸?.組播技術(shù)(1)組播的概念主機(jī)之間采用“一對一組”的通訊模式,也就是加入了同一個組的主機(jī)可以接收到此組內(nèi)的所有數(shù)據(jù),網(wǎng)絡(luò)中的交換機(jī)和路由器只向有需求者復(fù)制并轉(zhuǎn)發(fā)其所需數(shù)據(jù)。主機(jī)可以向路由器請求加入或退出某個組,網(wǎng)絡(luò)中的路由器和交換機(jī)有選擇的復(fù)制并傳輸數(shù)據(jù),即只將組內(nèi)數(shù)據(jù)傳輸給加入了組的主機(jī)。這樣既能一次將數(shù)據(jù)傳輸給多個有需要(加入組)的主機(jī),又能保證不影響其他不需要(未加入組)的主機(jī)的其他通訊??偰夸浛偰夸?.IPv4組播地址組播協(xié)議的地址在IP協(xié)議中屬于D類地址。D類地址是從到55之間的IP地址,其中到55是被保留的地址。組播協(xié)議的地址范圍類似于一般的單播地址,被劃分為兩個大的地址范圍,—55是私有地址,供各個內(nèi)部網(wǎng)在內(nèi)部使用,這個地址的組播不能上公網(wǎng),類似于單播協(xié)議使用的私有地址192.168.X.X和10.X.X.X。—55是公用的組播地址,可以用于Internet上。IPv4組播地址又分為3大類:l
局部鏈接地址:~55,用于局域網(wǎng)絡(luò)內(nèi)部,路由器不轉(zhuǎn)發(fā)屬于此范圍的IP包。在這一范圍的多播包不會被轉(zhuǎn)發(fā)出本地網(wǎng)絡(luò),也不會考慮多播包的TTL值。
l
預(yù)留組播地址:~55,用于全球范圍或網(wǎng)絡(luò)協(xié)議;l
管理權(quán)限地址:~55,組織內(nèi)部使用,用于限制組播范圍,類似于內(nèi)部私有地址。
總目錄5.組播實現(xiàn)技術(shù)由于組播源是向組播組發(fā)送數(shù)據(jù)包而非單播模型中的具體目標(biāo)主機(jī),所以組播路由器不能依靠IP包中的目標(biāo)地址來決定如何轉(zhuǎn)發(fā)數(shù)據(jù)包,而必須將組播數(shù)據(jù)包轉(zhuǎn)發(fā)到多個外部接口上,以便同一組播組的成員都能接收到數(shù)據(jù)包。這使組播轉(zhuǎn)發(fā)比單播轉(zhuǎn)發(fā)更加復(fù)雜。大多數(shù)現(xiàn)有組播路由協(xié)議使用逆向路徑轉(zhuǎn)發(fā)RPF機(jī)制作為組播轉(zhuǎn)發(fā)的基礎(chǔ)。(1)逆向路徑轉(zhuǎn)發(fā)PRF(ReversePathForward)當(dāng)組播數(shù)據(jù)包到達(dá)路由器時,路由器作RPF檢查,以決定是否轉(zhuǎn)發(fā)或拋棄該數(shù)據(jù)包,若成功則轉(zhuǎn)發(fā),否則拋棄。RPF檢查過程如下:l
檢查數(shù)據(jù)包的數(shù)據(jù)源地址,以確定該數(shù)據(jù)包經(jīng)過的接口,是否在從源到此的路徑上;l
若數(shù)據(jù)包是從可返回源主機(jī)的接口上到達(dá)的,則RPF檢查成功,轉(zhuǎn)發(fā)該數(shù)據(jù)包到輸出接口表上的所有接口,否則RPF檢查失敗,拋棄該數(shù)據(jù)包。總目錄(2)TTL(生命周期)閾值的設(shè)置每當(dāng)一個路由器轉(zhuǎn)發(fā)組播數(shù)據(jù)包時,IP包中的TTL(TimeToLive)值都減1。若數(shù)據(jù)包的TTL減少到0,路由器將拋棄該數(shù)據(jù)包。TTL閾值可用于組播路由器的各個接口,以防止在該接口上轉(zhuǎn)發(fā)低于TTL閾值的組播數(shù)據(jù)包。這樣可對組播的范圍加以控制。表7-1給出典型的初始TTL值和作為不同TTL邊界的路由器接口TTL閾值。范圍初始TTL值TTL閾值本地網(wǎng)12區(qū)域1516地區(qū)6364全球127128總目錄(3)管理權(quán)限邊界除TTL閾值外,組播提供另一種稱為管理權(quán)限的地址機(jī)制作為邊界,以限制組播信息轉(zhuǎn)發(fā)到域外。管理權(quán)限的組播地址是從到55,這段地址被認(rèn)為是本地分配的地址,不能用于Internet。這種機(jī)制使得在Intranet內(nèi)部可重復(fù)使用組播地址,提高組播地址空間的利用率。(4)組播樹在單播模型中,數(shù)據(jù)包通過網(wǎng)絡(luò)沿著單一路徑從源主機(jī)向目標(biāo)主機(jī)傳遞,但在組播模型中,組播源向某一組地址傳遞數(shù)據(jù)包,而這一地址卻代表一個主機(jī)組。為了向所有接收者傳遞數(shù)據(jù),一般采用組播分布樹描述IP組播在網(wǎng)絡(luò)里經(jīng)過的路徑。組播分布樹有4種基本類型:泛洪法、有源樹、共享樹、Steiner樹和有核樹。
總目錄
l
洪泛法(Flooding)這是最簡單的向前傳送組播路由算法,并不構(gòu)造所謂的分布樹。其基本原理如下:當(dāng)組播路由器收到發(fā)往某個組播地址的數(shù)據(jù)包后,首先判斷是否是首次收到該數(shù)據(jù)包,如果是首次收到,那么將其轉(zhuǎn)發(fā)到所有接口上,以確保其最終能到達(dá)所有接收者;如果不是首次收到,則拋棄該數(shù)據(jù)包(每個數(shù)據(jù)包都要進(jìn)行判斷)。洪泛法的實現(xiàn)關(guān)鍵是“首次收到”的檢測。這需要維護(hù)一個最近通過的數(shù)據(jù)包列表,但無需維護(hù)路由表。它適合于對組播需求比較高的場合,并且能做到即使傳輸出現(xiàn)錯誤,只要還存在一條到接收者的鏈路,則所有接收者都能接收到組播數(shù)據(jù)包。然而,洪泛法不適合用于Internet,因為它不考慮鏈路狀態(tài),并會產(chǎn)生大量的拷貝數(shù)據(jù)包。此外,對于高速網(wǎng)絡(luò)而言,“首次收到”列表將會很長,占用相當(dāng)大的內(nèi)存;盡管它能保證不對相同的數(shù)據(jù)包進(jìn)行二次轉(zhuǎn)發(fā),但不能保證對相同數(shù)據(jù)包只接收一次??偰夸沴
有源樹SPT有源樹也稱為基于信源的樹或最短路徑樹SPT(ShortestPathTree)。它是以組播源為根構(gòu)造的從根到所有接收者路徑都最短的分布樹。如果組中有多個組播源,則必須為每個組播源構(gòu)造一棵組播樹。由于不同組播源發(fā)出的數(shù)據(jù)包被分散到各自分離的組播樹上,因此采用SPT有利于網(wǎng)絡(luò)中數(shù)據(jù)流量的均衡。同時,因為從組播源到每個接收者的路徑最短,所以端到端(end-to-end)的時延性能較好,有利于流量大、時延性能要求較高的實時媒體應(yīng)用。SPT的缺點是:要為每個組播源構(gòu)造各自的分布樹,當(dāng)數(shù)據(jù)流量不大時,構(gòu)造SPT的開銷相對較大??偰夸沴
共享樹RPT共享樹也稱RP樹(RPT),是指為每個組播組選定一個共用根(匯合點RP或核心),以RP為根建立的組播樹。同一組播組的組播源將所要組播的數(shù)據(jù)單播到RP,再由RP向其它成員轉(zhuǎn)發(fā)(即組播)。目前,討論最多同時也是最具代表性的兩種共享樹是Steiner樹和有核樹(CBT)。l
Steiner樹Steiner樹是總代價最小的分布樹,它使連接特定圖中的特定組成員所需的鏈路數(shù)最少。若考慮資源總量被大量的組使用的情況,那么使用資源較少最終就會減少產(chǎn)生擁塞的風(fēng)險。Steiner樹相當(dāng)不穩(wěn)定,樹的形狀隨組中成員關(guān)系的改變而改變,且對大型網(wǎng)絡(luò)缺少通用的解決方案。l
有核樹有核樹是由根到所有組成員的最短路徑合并而成的樹。A.Ballardie在1997年9月的《基于核的組播路由體系結(jié)構(gòu)》(CoreBasedTrees(CBT)MulticastRoutingArchitecture)(RFC2189和RFC2201)中介紹了有核樹??偰夸洠?)組管理協(xié)議IGMP
主機(jī)使用IGMP通知子網(wǎng)組播路由器,希望加入組播組;路由器使用IGMP查詢本地子網(wǎng)中是否有屬于某個組播組的主機(jī)。l
加入組播組當(dāng)某個主機(jī)加入某一個組播組時,它通過“成員資格報告”消息通知它所在的IP子網(wǎng)的組播路由器,同時將自己的IP模塊做相應(yīng)的準(zhǔn)備,以便開始接收來自該組播組傳來的數(shù)據(jù)。如果這臺主機(jī)是它所在的IP子網(wǎng)中第一臺加入該組播組的主機(jī),通過路由信息的交換,組播路由器加入組播分布樹。l
退出組播組在IGMPv1中,當(dāng)主機(jī)離開某一個組播組時,它將自行退出。組播路由器定時(如120秒)使用“成員資格報告”消息向IP子網(wǎng)中的所有主機(jī)的組地址()查詢,如果某一組播組在IP子網(wǎng)中已經(jīng)沒有任何成員,那么組播路由器在確認(rèn)這一事件后,將不再在子網(wǎng)中轉(zhuǎn)發(fā)該組播組的數(shù)據(jù)。與此同時,通過路由信息交換,從特定的組播組分布樹中刪除相應(yīng)的組播路由器。這種不通知任何人而悄悄離開的方法,使得組播路由器知道IP子網(wǎng)中已經(jīng)沒有任何成員的事件延時了一段時間,所以在IGMPv2.0中,當(dāng)每一個主機(jī)離開某一個組播組時,需要及時通知子網(wǎng)組播路由器,組播路由器立即向IP子網(wǎng)中的所有組播組詢問,從而減少了系統(tǒng)處理停止組播的延時??偰夸洠?)以太網(wǎng)與FDDI組播MAC地址映射IP組播幀使用以0100.5EXX.XXXX(000000010000000001011110/24)的24位前綴開始的MAC層地址,但只有其中的一半MAC地址可以被IP組播使用,剩下的MAC地址空間的23位作為第三層IP組播地址進(jìn)入第二層MAC地址的映射使用。由于第三層IP組播的28位地址不能映射到只有23位的可用MAC地址空間,造成有32:1(25=32)的地址不明確,所以主機(jī)CPU必須對收到的每一個組播數(shù)據(jù)包做出判斷。這增加了主機(jī)CPU的開銷。如圖7-11所示,以太網(wǎng)和FDDI的MAC地址01:00:5E:00:00:00到01:00:5E:7F:FF:FF用于將三層IP組播地址映射為二層地址,即IP組播地址中的低23位放入IEEEMAC地址的低23位。IP組播地址有28位地址空間,但只有23位被映射到IEEEMAC地址,這樣會有32個IP組播地址映射到同一MAC地址上??偰夸浿饕蛟谟冢阂蕴W(wǎng)MAC地址有48位,用12個十六進(jìn)制位表示,但組播地址只使用了23位,原因是,20世紀(jì)90年代組播的早期研究者在申請組織機(jī)構(gòu)唯一標(biāo)識符(OUI)時,本來需要16個OUI的(每個OUI3位,正好48位),由于資金問題(一個OUI需要1000美元),最終只申請8個OUI(24位),而其中的1位用于組播研究。所以,以太網(wǎng)與FDDI組播MAC地址映射IP組播幀都使用以二進(jìn)制“00000001,00000000,01011110,0”的25位前綴開始的23位MAC層地址可以被IP組播使用??偰夸?.組播路由協(xié)議總目錄PIM-SM協(xié)議
總目錄PIM-SM的加入機(jī)制:PIM-SM通過建立組播分發(fā)樹來進(jìn)行組播數(shù)據(jù)包的轉(zhuǎn)發(fā)。組播分發(fā)樹分為兩種:以組G的RP為根的共享樹(SharedTree)和以組播源為根的最短路徑樹(ShortestPathTree)。PIM-SM通過顯式的加入/剪枝機(jī)制來完成組播分發(fā)樹的建立與維護(hù)。其過程如下:l
當(dāng)DR收到一個發(fā)自接收端的加入(Join),它就會向著組G的RP方向(逆向)逐跳組播發(fā)出一個(*,G)加入信息用以加入共享樹;l
源主機(jī)向組發(fā)送組播數(shù)據(jù)時,源的數(shù)據(jù)被封裝在注冊消息內(nèi),并由其DR單播至RP,RP再將源的解封裝數(shù)據(jù)包沿著共享樹轉(zhuǎn)發(fā)到各個組成員;l
RP朝著源方向向第一跳路由器發(fā)送(S,G)加入信息,用以加入此源的最短路徑樹,這樣源的數(shù)據(jù)包將沿著其最短路徑樹不加封裝地發(fā)送到RP;l
當(dāng)?shù)谝粋€組播數(shù)據(jù)沿此樹到達(dá)時,RP向源的DR發(fā)送注冊-停止消息,以使DR停止注冊封裝過程。此后,這個源的組播數(shù)據(jù)不再注冊封裝,而是先沿著源的最短路徑樹發(fā)送到RP,再由RP將其沿著共享樹轉(zhuǎn)發(fā)到各個組成員;當(dāng)不再需要組播數(shù)據(jù)時,DR向著組G的RP逐跳組播剪枝消息用以剪枝共享樹。
總目錄7.5.3IPv6組播技術(shù)1.IPv6對IPv4組播技術(shù)的繼承和增強(qiáng)由于組播技術(shù)的優(yōu)越性,IETF在制訂IPv6協(xié)議時保留了組播功能,而取消了廣播。并為了更好地使用和管理組播技術(shù),IPv6對組播作了進(jìn)一步的改進(jìn),主要表現(xiàn)在以下方面。(1)組播地址如圖3-12,IPv6組播地址前8位為11111111;4位的組播標(biāo)志用于區(qū)分眾所周知組播地址(值為0)和臨時組播地址(值為1),該字段的高3位保留;4位的范圍字段決定了組播報文輸?shù)姆秶?。已分配的范圍字段值如下(其他值或者還沒有分配,或者已經(jīng)保留):l
1:節(jié)點局部。節(jié)點局部報文禁止從端口輸出;l
2:鏈路局部。鏈路局部報文不能被路由器轉(zhuǎn)發(fā);l
5:站點局部。站點的定義由該網(wǎng)點的組播路由器管理員決定;l
8:組織局部。組織的定義由該組織的組播路由器管理員決定;l
14:全球范圍。總目錄2.MLD協(xié)議MLD協(xié)議(組播監(jiān)聽發(fā)現(xiàn)協(xié)議)是從IGMPv2協(xié)議中派生出來,專門用于IPv6組播群組的管理。其主要功能為:IPv6路由器利用MLD協(xié)議發(fā)現(xiàn)直接相連的鏈路上是否有組播組成員,以及相鄰的路由器正在監(jiān)聽哪些組播地址。IPv6路由器上運行的組播路
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)生堂合同范本
- 聚焦鄉(xiāng)村振興的農(nóng)業(yè)創(chuàng)新驅(qū)動方案
- 2024-2025學(xué)年深圳名校七年級上學(xué)期期末英語真題進(jìn)階練習(xí)《閱讀理解 匹配》含答案
- 2025年農(nóng)副產(chǎn)品市場買賣合同8篇
- 罪犯教育矯正知到課后答案智慧樹章節(jié)測試答案2025年春河北司法警官職業(yè)學(xué)院
- 花卉專門零售企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 枸杞醋企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 食品用水分保持劑企業(yè)縣域市場拓展與下沉戰(zhàn)略研究報告
- 智能照明情景模式機(jī)器人企業(yè)制定與實施新質(zhì)生產(chǎn)力戰(zhàn)略研究報告
- 新餐飲企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級戰(zhàn)略研究報告
- 《改革開放史》教學(xué)大綱
- 大學(xué)生就業(yè)指導(dǎo) 課件 第六單元 就業(yè)權(quán)益保護(hù)
- 2024年高職高考語文必背古詩
- 護(hù)理質(zhì)控護(hù)士競聘
- 醫(yī)學(xué)課件炎癥性腸病4
- 國際經(jīng)濟(jì)與貿(mào)易《大學(xué)生專業(yè)勞動實踐》教學(xué)大綱
- 2019年青島版(六三制)五年級數(shù)學(xué)下冊全冊教案
- 2024年4月自考00263外國法制史試題及答案
- 《井中分布式光纖聲波傳感數(shù)據(jù)采集規(guī)程》標(biāo)準(zhǔn)報批稿
- 人音版 音樂 八年級下冊 第一單元 我和你教案
- 教育戲劇在小學(xué)教育中的應(yīng)用研究 論文
評論
0/150
提交評論