第7章:IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)_第1頁
第7章:IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)_第2頁
第7章:IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)_第3頁
第7章:IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)_第4頁
第7章:IPv6數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(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ù)相對(duì)簡單,第三種模式由于要通過路由器進(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

地址自動(dòng)配置技術(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地址自動(dòng)配置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ā)送一個(gè)報(bào)文給目標(biāo)主機(jī),并設(shè)收發(fā)雙方的子網(wǎng)掩碼為。如圖7-1所示??偰夸浧鋽?shù)據(jù)轉(zhuǎn)發(fā)過程如下:第1步:源主機(jī)()首先查詢自身的ARP緩存,看看是否存在與目標(biāo)主機(jī)IP地址對(duì)應(yīng)的記錄,若存在,則取出其對(duì)應(yīng)的MAC地址,轉(zhuǎn)第4步。否則轉(zhuǎn)第4步。第2步:發(fā)送方發(fā)送一條ARP請(qǐng)求的廣播消息,目標(biāo)主機(jī)對(duì)該ARP消息進(jìn)行回應(yīng),源主機(jī)獲得對(duì)應(yīng)的MAC地址(即由響應(yīng)ARP請(qǐng)求并返回帶MAC地址的應(yīng)答報(bào)文)。并將其存入本機(jī)ARP緩存。第3步:用獲得的MAC地址封裝報(bào)文并向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)包??偰夸?.2.1源與目標(biāo)在同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)技術(shù)IPv6采用與IPv4類似的兩個(gè)技術(shù)來實(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與其在同一個(gè)鏈路上,即1::2是一個(gè)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.如何判斷源和目的在同一鏈路在這里,分兩種情況討論:有地址伴隨前綴和無地址伴隨前綴。第一種情況是,有地址伴隨前綴。所謂有地址伴隨一個(gè)前綴是指在該主機(jī)的路由表中存在一個(gè)路由表項(xiàng),在該路由表項(xiàng)中有一個(gè)1::1和1::2共同的前綴。路由表項(xiàng)如下:PublishTypeMetPrefixIdxGateway/InterfaceNamenoAutoconf81::/644本地連接一個(gè)地址伴隨一個(gè)前綴,還可以從無狀態(tài)自動(dòng)配置時(shí)由路由器分發(fā)的RouterAdvertisement報(bào)文中給出,若其中的on-link標(biāo)志有效,接收主機(jī)就會(huì)自動(dòng)生成這條路由??偰夸洘o狀態(tài)自動(dòng)配置的RouterSolicitation(路由請(qǐng)求)、RouterAdvertisement(路由通告)及RouterAdvertisement報(bào)文前綴格式如圖5-31、圖5-32和圖7-3所示。標(biāo)志字段含義(其余字段的含義詳見圖5-32):l

L:表示Prefix是否可用,用于判斷一個(gè)地址是否在本地鏈路上。L=1表示該目標(biāo)地址在本地鏈路上,L=0表示該目標(biāo)地址不在本地鏈路上;l

A:表示該P(yáng)refix是否可用于地址自動(dòng)配置。A=1表示該P(yáng)refix可用于地址自動(dòng)配置,A=0表示該P(yáng)refix不可用于地址自動(dòng)配置。ValidLifetime和PreferredLifetime向主機(jī)分別通報(bào)該前綴的兩個(gè)生命周期。

總目錄第二種情況是:PC1中沒有與1::2相伴隨的前綴。這里又有兩種可能的情況。如果PC1的IPv6路由表中存在這樣一條路由,該路由的前綴剛好是1::2的前綴,而且“下一跳”是一個(gè)具體的下一跳地址(一個(gè)完整的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是一個(gè)與源主機(jī)on-linkdetermination的。地址解析過程如下:

PC1以1::2為索引查找鄰居緩存,如果有命中,直接按照其中的鏈路層地址封裝數(shù)據(jù)包。如果沒有命中,則在鄰居表緩存中創(chuàng)建一個(gè)1::2為索引的表項(xiàng),標(biāo)識(shí)其狀態(tài)為Incomplete(不確定性狀態(tài)),并啟動(dòng)地址解析過程。PC1發(fā)出一個(gè)NeighborSolicitation報(bào)文,IPv6目的地址為1::2對(duì)應(yīng)的Solicited-Node組播地址ff02::1(鏈路本地范圍內(nèi)所有節(jié)點(diǎn)組播地址),并在其中的Target域中包含待解析的地址1::2。同時(shí)在ICMP選項(xiàng)部份包含一個(gè)1::1對(duì)應(yīng)的鏈路層地址,以供對(duì)端回應(yīng)NeighborDvertisement報(bào)文時(shí)作二層封裝使用。PC2接收到這個(gè)NeighborSolicitation(鄰居請(qǐng)求)報(bào)文后,發(fā)現(xiàn)其要解析的地址是1::2,于是就構(gòu)造出一個(gè)包含Target1::2及其鏈路層地址的NeighborAdvertisement(鄰居通告)報(bào)文,同時(shí)將1::1與其對(duì)應(yīng)的鏈路層地址映射加入到本地鄰居緩存表中,并將其狀態(tài)設(shè)為STALE。當(dāng)PC1收到NeighborAdvertisement報(bào)文后,就將其中的1::2對(duì)應(yīng)的鏈路層地址加入到鄰居緩存中,并更新其狀態(tài)為Reachbale。

之后,后續(xù)的通信就可以利用這個(gè)鄰居緩存中的Reachbale表項(xiàng)進(jìn)行通信了。IPv6地址解析流程、NeighborSolicitation和NeighborAdvertisement報(bào)文格式分別如圖7-5、圖5-29和圖5-30所示??偰夸浛偰夸浺粋€(gè)典型的NeighborSolicitation報(bào)文如下:+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總目錄一個(gè)典型的NeighborAdvertisement報(bào)文如下:+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)主要要解決如下兩個(gè)問題:

l

主機(jī)如何才能知道應(yīng)該將數(shù)據(jù)發(fā)往哪一個(gè)路由器;

l

路由器怎么才能知道將報(bào)文轉(zhuǎn)發(fā)到哪一個(gè)接口上的哪一個(gè)鄰居。其實(shí)現(xiàn)技術(shù)具體體現(xiàn)在以下3個(gè)方面:

l

三層轉(zhuǎn)發(fā)信息從哪里來?即Router&PrefixDiscovry;l

如何確定下一跳?即Next_hopDetermination;l

如何優(yōu)化路由?即Redirect??偰夸?.主機(jī)-路由器與源和目的在同一鏈路的數(shù)據(jù)轉(zhuǎn)發(fā)類似,在這里,源主機(jī)使用RouterSolicitation報(bào)文進(jìn)行廣播查找目標(biāo)路由器地址,目標(biāo)路由器用RouterAdvertisement報(bào)文進(jìn)行應(yīng)答。之后,源節(jié)點(diǎn)用RouterAdvertisement報(bào)文返回的目標(biāo)節(jié)點(diǎn)的MAC地址封裝報(bào)文并發(fā)給目標(biāo)主機(jī)。通過前面的學(xué)習(xí)我們知道,一臺(tái)源主機(jī)要向目標(biāo)主機(jī)發(fā)送數(shù)據(jù)包,至少要兩條信息:

l

一個(gè)源主機(jī)的IP地址;

l

一條包含目標(biāo)主機(jī)MAC地址及下一跳路由。源主機(jī)可以通過下列三種渠道得到目標(biāo)主機(jī)的MAC地址:

l

無狀態(tài)地址配置;

l

有狀態(tài)地址配置;

l

手工配置。在這里,著重介紹的是無狀態(tài)地址配置技術(shù)。以圖7-6所示的一個(gè)簡單網(wǎng)絡(luò)拓?fù)鋵?shí)例入手,介紹主機(jī)-路由器的數(shù)據(jù)轉(zhuǎn)發(fā)中需要的路由配置過程。總目錄在這個(gè)例子中,主機(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總目錄首先,對(duì)路由器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也可以使用自動(dòng)獲得的鏈路本地地址),源主機(jī)就會(huì)自動(dòng)向路由器發(fā)起一個(gè)路由請(qǐng)求報(bào)文RouterSolicitation,路由器收到該報(bào)文后,會(huì)自動(dòng)回執(zhí)一個(gè)路由通告報(bào)文RouterAdvertisement,該通告報(bào)文包含了路由器的MAC地址??偰夸汻outerSolicitation報(bào)文(由源主機(jī)PC1發(fā)出的路由請(qǐng)求報(bào)文)如下:+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報(bào)文(由路由器RT1發(fā)往所有節(jié)點(diǎn)的路由通告報(bào)文)如下:+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é)點(diǎn)的組播地址-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ù)就是路由表項(xiàng),IPv6的路由表項(xiàng)通常有三種:

l

直連路由;

l

靜態(tài)路由;

l

由動(dòng)態(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)生如下路由表項(xiàng):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)自動(dòng)取默認(rèn)值進(jìn)行配置。總目錄(3)動(dòng)態(tài)路由協(xié)議發(fā)現(xiàn)的路由主要使用下列協(xié)議進(jìn)行動(dòng)態(tài)路由定位:

RIPng:路由信息協(xié)議;IS-ISv6:路由器-路由器協(xié)議;OSPFv3:開放式最短路由協(xié)議;BGP4+:邊界網(wǎng)關(guān)協(xié)議第4版。動(dòng)態(tài)路由協(xié)議的配置與使用技術(shù)詳見第8章,“IPv6路由技術(shù)”??偰夸?.3鄰居發(fā)現(xiàn)技術(shù)1.鄰居發(fā)現(xiàn)的概念鄰居發(fā)現(xiàn)又稱鄰機(jī)發(fā)現(xiàn)或鄰節(jié)點(diǎn)發(fā)現(xiàn)。IPv6解決的最大問題是擴(kuò)大了地址空間,另外,它與IPv4相比在其它許多方面都具有優(yōu)勢(shì),例如安全性、服務(wù)質(zhì)量、移動(dòng)性等。IPv6的一個(gè)顯著特點(diǎn)就是它具有“即插即用”功能。即插即用使節(jié)點(diǎn)直接連接到網(wǎng)絡(luò)后,不需要經(jīng)過任何人工配置就能夠自動(dòng)連入網(wǎng)絡(luò),即插即用使網(wǎng)絡(luò)的管理和控制變得更加簡單;其次,節(jié)點(diǎn)只需要知道自己的鏈路層地址及本地網(wǎng)絡(luò)的子網(wǎng)前綴,就能夠通過IPv6的無狀態(tài)或者全狀態(tài)自動(dòng)配置得到惟一的IPv6地址,從而成為網(wǎng)絡(luò)的一部分;另外,IPv6還實(shí)現(xiàn)了更好的對(duì)節(jié)點(diǎn)移動(dòng)性的支持。這些功能都是通過鄰居發(fā)現(xiàn)協(xié)議來實(shí)現(xiàn)的,同一個(gè)子網(wǎng)內(nèi)的所有主機(jī)和路由器之間的交互也都是通過鄰居發(fā)現(xiàn)協(xié)議來實(shí)現(xiàn)的。

總目錄使用鄰居發(fā)現(xiàn)技術(shù)主要有節(jié)點(diǎn)、主機(jī)和路由器。一個(gè)節(jié)點(diǎn)使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:

l

解析IPv6數(shù)據(jù)包將被轉(zhuǎn)發(fā)到的鄰節(jié)點(diǎn)的鏈路層地址;

l

確定鄰節(jié)點(diǎn)的鏈路層地址什么時(shí)候發(fā)生變化;

l

確定鄰節(jié)點(diǎn)的可到達(dá)性。一臺(tái)主機(jī)使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:

l

發(fā)現(xiàn)相鄰的路由器;

l

自動(dòng)配置地址、地址前綴及路由等。一臺(tái)路由器使用鄰居發(fā)現(xiàn)技術(shù)主要解決下述問題:

l

公告路由器的配置參數(shù)、路由以及鏈路上的地址前綴;

l

通知主機(jī)發(fā)往指定目標(biāo)的數(shù)據(jù)包有一個(gè)更好的下一跳地址。總目錄2.鄰居發(fā)現(xiàn)選項(xiàng)鄰居發(fā)現(xiàn)選項(xiàng)采用TLV格式,在RFC2461中定義了5種IPv6鄰居發(fā)現(xiàn)選項(xiàng):l

源鏈路層地址選項(xiàng)。該選項(xiàng)表示鄰居發(fā)現(xiàn)報(bào)文的發(fā)送方的鏈路層地址(MAC地址),主要用于鄰居請(qǐng)求、路由請(qǐng)求和路由通告報(bào)文中。l

目標(biāo)鏈路層地址選項(xiàng)。該選項(xiàng)表示IPv6數(shù)據(jù)包發(fā)送到鄰居的鏈路層地址,用于鄰居通告和重定向報(bào)文。l

前綴信息選項(xiàng)。該選項(xiàng)用于路由通告報(bào)文,以表示地址前綴和有關(guān)地址自動(dòng)配置的信息。l

重定向報(bào)文選項(xiàng)。該選項(xiàng)用于重定向報(bào)文中,指定導(dǎo)致路由器發(fā)送重定向報(bào)文的IPv6數(shù)據(jù)包。l

MTU選項(xiàng)。該選項(xiàng)用于路由通告報(bào)文,表示鏈路的IPv6MTU。MTU選項(xiàng)將重寫由接口硬件報(bào)告的IPv6MTU。總目錄3.鄰居發(fā)現(xiàn)技術(shù)的內(nèi)容鄰居發(fā)現(xiàn)協(xié)議是IPv6協(xié)議的一個(gè)基本的組成部分,鄰居發(fā)現(xiàn)協(xié)議實(shí)現(xiàn)了路由器和前綴發(fā)現(xiàn)、地址解析、下一跳地址確定、重定向、鄰居不可達(dá)檢測(cè)、重復(fù)地址檢測(cè)等功能,可實(shí)現(xiàn)鏈路層地址變化、負(fù)載均衡、泛播地址和代理通告等功能。鄰居發(fā)現(xiàn)協(xié)議采用5種類型的IPv6控制信息報(bào)文(ICMPv6)來實(shí)現(xiàn)鄰居發(fā)現(xiàn)協(xié)議的各種功能。這5種類型消息如下。l

路由請(qǐng)求(RouterSolicitation)報(bào)文。路由請(qǐng)求報(bào)文對(duì)應(yīng)的ICMPv6類型為133。l

路由通告(RouterAdvertisement)報(bào)文。路由通告報(bào)文對(duì)應(yīng)的ICMPv6類型為134。l

鄰居請(qǐng)求(NeighborSolicitation)報(bào)文。鄰居請(qǐng)求報(bào)文對(duì)應(yīng)的ICMPv6類型為135。l

鄰居通告(NeighborAdvertisement)報(bào)文。鄰居通告報(bào)文對(duì)應(yīng)的ICMPv6類型為136。l

重定向(Redirect)報(bào)文。重定向報(bào)文對(duì)應(yīng)的ICMPv6類型為137??偰夸?.主機(jī)的數(shù)據(jù)結(jié)構(gòu)IPv6的設(shè)計(jì)要求是:即使在一個(gè)有限的網(wǎng)絡(luò)內(nèi),主機(jī)也必須正確無誤碼地工作,而不像路由器不能儲(chǔ)存路由表,不能有永久的配置,因此主機(jī)必須能自動(dòng)配置,必須具有到交換數(shù)據(jù)的有關(guān)目的地的最小信息。這些信息儲(chǔ)存的存儲(chǔ)器叫做緩存,其數(shù)據(jù)結(jié)構(gòu)是一系列記錄的排列,稱作“表項(xiàng)”。每個(gè)表項(xiàng)儲(chǔ)存的信息有一定的有效期,需要周期性地清除緩存中的表項(xiàng),以保證緩存的空間大小。主機(jī)需要為每一接口維護(hù)以下信息。l

鄰居緩存;l

目的地緩存;l

前綴列表;l

缺省路由器列表??偰夸涏従泳彺姘従硬豢蛇_(dá)檢測(cè)算法維護(hù)的信息。鄰居可達(dá)性狀態(tài)是最關(guān)鍵的信息,它的取值是下列的5個(gè)狀態(tài)值之一。l

不確定性(Incomplete)。正在進(jìn)行地址解析,鄰居的鏈路層地址還未確定。l

可到達(dá)性(Reachbale)。此時(shí),鄰居處于可達(dá)狀態(tài)。l

過時(shí)(STALE)。在數(shù)據(jù)流發(fā)送給該鄰居以前鄰居是不可達(dá)的,并無法驗(yàn)證其可達(dá)性。l

延遲(Delay)。鄰居不再是可達(dá)的,同時(shí)數(shù)據(jù)流在最近已經(jīng)發(fā)送給鄰居,但不立即對(duì)該鄰居進(jìn)行探測(cè),而在一個(gè)短時(shí)延后發(fā)送探測(cè)信息,這樣就可以為上層協(xié)議提供可達(dá)性確認(rèn)。l

探測(cè)(Probe)。鄰居不再是可達(dá)的,同時(shí)發(fā)送單播鄰居請(qǐng)求探測(cè)以驗(yàn)證可達(dá)性??偰夸涍@些狀態(tài)是可以轉(zhuǎn)換的,其具體過程如下:

Incomplete狀態(tài)是一個(gè)初始狀態(tài),此時(shí),鄰居緩存中三層地址(IP地址)不存在二層鏈路層地址(MAC地址)與其綁定。當(dāng)某個(gè)鄰居緩存表項(xiàng)處于該狀態(tài)時(shí),經(jīng)過地址解析獲得二層地址后,可以轉(zhuǎn)化為Reachbale狀態(tài)。當(dāng)某個(gè)鄰居緩存表項(xiàng)處于Reachbale時(shí),表示該鄰居在短時(shí)間內(nèi)(10s鐘之內(nèi))是完全可到達(dá)的。如果在這段時(shí)間內(nèi)沒有收到關(guān)于該鄰居的“可達(dá)性證實(shí)”消息,則該表項(xiàng)就會(huì)自動(dòng)進(jìn)入“State”狀態(tài)。State狀態(tài)表示某個(gè)鄰居緩存項(xiàng)“存舊”了(即過時(shí)了)。State狀態(tài)除了可從Reachbale狀態(tài)直接進(jìn)入以外,還可以從不可信渠道獲得的鏈路層地址信息中獲得,例如,可從鄰居請(qǐng)求中的Option字段提供的信息源鏈路層地址中獲得。State是一個(gè)穩(wěn)定的狀態(tài),在沒有任何報(bào)文發(fā)往這個(gè)鄰居的情況下該報(bào)文表項(xiàng)是不會(huì)被處理的。當(dāng)有報(bào)文發(fā)往該鄰居時(shí),這個(gè)報(bào)文就會(huì)利用緩存中的鏈路層地址進(jìn)行報(bào)文的封裝,同時(shí)進(jìn)入Delay狀態(tài),期待上層協(xié)議能給出一個(gè)該鄰居的“可達(dá)性證實(shí)”消息。Delay狀態(tài)是一個(gè)專門為上層協(xié)議提供“可達(dá)性證實(shí)”消息機(jī)會(huì)的,在進(jìn)入Delay狀態(tài)后,如果在一定的時(shí)間之內(nèi)未收到關(guān)于該鄰居的任何“可達(dá)性證實(shí)”消息,就會(huì)向該鄰居發(fā)送鄰居請(qǐng)求報(bào)文,同時(shí)進(jìn)入Probe狀態(tài)。節(jié)點(diǎn)會(huì)向處于Probe狀態(tài)的鄰居不斷地發(fā)送鄰居請(qǐng)求報(bào)文,直到接收到“可達(dá)性證實(shí)”消息為止。若在兩個(gè)“鄰居請(qǐng)求”報(bào)文之間多次嘗試后仍未收到“可達(dá)性證實(shí)”消息,就被認(rèn)為該鄰居是不可到達(dá)的,在這種情況下,送往該鄰居的報(bào)文將被丟棄,并發(fā)送ICMP信息報(bào)文指示該目標(biāo)不可到達(dá),同時(shí),刪除相應(yīng)的表項(xiàng)??偰夸?.?dāng)?shù)據(jù)包的發(fā)送算法節(jié)點(diǎn)向目的地發(fā)送數(shù)據(jù)包時(shí),使用目的地緩存、前綴列表、默認(rèn)路由器列表確定合適的下一跳的IP地址,然后路由器查詢鄰居緩存確定鄰居的鏈路層地址。確定IPv6單播地址的下一跳操作過程如下:發(fā)送者使用前綴列表中的前綴進(jìn)行最長前綴匹配,確定包的目的地是連接的還是非連接的。如果下一跳是連接的,下一跳地址就和目的地地址相同,否則發(fā)送者從默認(rèn)路由器列表中選擇下一跳。如果默認(rèn)路由器列表為空,則發(fā)送者認(rèn)為目的地是連接的。下一跳確定的信息存儲(chǔ)在目的地緩存中,下一個(gè)包可以使用這些信息。當(dāng)路由器發(fā)送包時(shí),首先檢查目的地緩存,如果目的地緩存沒有相關(guān)信息存在,就激活下一跳確定過程。在找到下一跳路由器的IPv6地址后,發(fā)送者檢查鄰居緩存以決定鏈路層地址。如果沒有下一跳IPv6地址的表項(xiàng)存在,路由器將完成以下工作:l

創(chuàng)建一個(gè)新表項(xiàng),并設(shè)置其狀態(tài)為不完全;l

開始進(jìn)行地址解析;l

對(duì)傳送的包進(jìn)行排隊(duì)。當(dāng)?shù)刂方馕鼋Y(jié)束時(shí),獲得鏈路層地址,存儲(chǔ)在鄰居緩存中。此時(shí)表項(xiàng)到達(dá)新的可達(dá)狀態(tài),排隊(duì)的包能夠傳送。總目錄6.鄰居發(fā)現(xiàn)的實(shí)現(xiàn)技術(shù)(1)鄰居緩存和目的地緩存在鄰居發(fā)現(xiàn)技術(shù)中,鄰居緩存和目的地緩存是兩張非常重要的信息表。鄰居發(fā)現(xiàn)維護(hù)著一份最近發(fā)生過的通信鄰居列表,按照它們的單播IP地址列出,每條記錄包含了有關(guān)鄰居的鏈路層地址信息,以及一個(gè)用以區(qū)分鄰居是主機(jī)還是路由器的標(biāo)志。目的地緩存用于維護(hù)最近發(fā)生過的目的地信息,包括本地目的地和遠(yuǎn)程目的地。換句話說,可以認(rèn)為鄰居緩存是目的地緩存的子集。目的地緩存是通過ICMP重定向報(bào)文的信息進(jìn)行更新的。如果目的地是遠(yuǎn)程地址,則在目的地緩存中的記錄中列出的信息有下一跳路由器的鏈路層地址、MTU值和往返時(shí)間的附加信息。鄰居緩存和目的地緩存的詳細(xì)描述見本小節(jié)的第4部份“主機(jī)的數(shù)據(jù)結(jié)構(gòu)”。總目錄(2)地址解析 IPv6節(jié)點(diǎn)是通過鄰居請(qǐng)求報(bào)文和鄰居通告報(bào)文進(jìn)行信息交互的,并以此來解析給定目標(biāo)的鏈路上下一跳地址的鏈路層地址。具體做法是,源主機(jī)在適當(dāng)?shù)慕涌谏习l(fā)送一個(gè)多播鄰居請(qǐng)求報(bào)文,該報(bào)文的多播地址是從目標(biāo)IP地址得到的請(qǐng)求節(jié)點(diǎn)的多播地址,報(bào)文中包含了在源鏈路層地址選項(xiàng)中的源主機(jī)的鏈路層地址。當(dāng)目標(biāo)主機(jī)接收到鄰居節(jié)點(diǎn)的請(qǐng)求報(bào)文后,會(huì)根據(jù)鄰居請(qǐng)求報(bào)文中的源地址和源鏈路層地址選項(xiàng)中的鏈路層地址來更新自己的鄰居緩存。此后,目標(biāo)節(jié)點(diǎn)向鄰居請(qǐng)求報(bào)文的發(fā)送方發(fā)送一個(gè)單播鄰居通告報(bào)文,鄰居通告報(bào)文中包含了目標(biāo)鏈路層地址選項(xiàng)。當(dāng)接收到來自目標(biāo)節(jié)點(diǎn)的鄰居通告報(bào)文后,源主機(jī)會(huì)根據(jù)目標(biāo)鏈路層地址選項(xiàng)中的信息創(chuàng)建一個(gè)關(guān)于目標(biāo)節(jié)點(diǎn)的新表項(xiàng),以更新其鄰居高速緩存??偰夸?3)鄰居不可到達(dá)性檢測(cè)如果確認(rèn)發(fā)送給鄰居節(jié)點(diǎn)的IPv6數(shù)據(jù)包已被鄰居節(jié)點(diǎn)接收,則說成是“鄰居節(jié)點(diǎn)是可到達(dá)的”。而“鄰居不可到達(dá)”僅僅是驗(yàn)證到目的地的第一跳的可到達(dá)性,并不關(guān)心源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的可到達(dá)性。通常,確定鄰居的可達(dá)性有兩種方法,其一是通過鄰居請(qǐng)求報(bào)文和鄰居通告報(bào)文來完成,另一種是通過上層協(xié)議表示的使用下一跳地址進(jìn)行的通信正處于發(fā)送數(shù)據(jù)的過程來間接地確定鄰居的可到達(dá)性。(4)重復(fù)地址檢測(cè)IPv6使用鄰居請(qǐng)求報(bào)文來檢測(cè)本地鏈路上是否存在正在使用地址有重復(fù)。在IPv6重復(fù)地址檢測(cè)中,鄰居請(qǐng)求報(bào)文中的目標(biāo)地址字段被置成檢測(cè)出的重復(fù)的IPv6地址。當(dāng)一個(gè)節(jié)點(diǎn)接收到目標(biāo)地址字段被置成檢測(cè)到重復(fù)的IP地址的多播鄰居通告報(bào)文后,就會(huì)禁止使用自己接口上的重復(fù)的IP地址;如果此節(jié)點(diǎn)沒有接收到阻止使用這個(gè)IP地址的鄰居通告報(bào)文,則就會(huì)在自己的接口上初始化這個(gè)地址??偰夸?5)路由器發(fā)現(xiàn)IPv6的節(jié)點(diǎn)是通過路由器發(fā)現(xiàn)報(bào)文來發(fā)現(xiàn)本地鏈路上的路由器的設(shè)置的,IPv6路由器在本地鏈路上偽周期性在發(fā)送路由通告報(bào)文以通告其自己的存在,并且提供默認(rèn)跳限制、MTU、前綴和路由等配置參數(shù)。在本地鏈路上活動(dòng)的IPv6主機(jī)接收到路由通告報(bào)文后,就會(huì)使用這些報(bào)文的內(nèi)容來維護(hù)默認(rèn)路由器列表和前綴列表、自動(dòng)配置地址、添加路由和配置其他參數(shù)。正在啟動(dòng)的主機(jī)會(huì)向鏈路本地范圍上所有路由器多播地址(FF02::2)發(fā)送一個(gè)路由請(qǐng)求報(bào)文,本地鏈路上所有路由器在接收到路由請(qǐng)求報(bào)文后,都會(huì)向發(fā)送路由請(qǐng)求報(bào)文的主機(jī)的單播地址或鏈路本地范圍所有節(jié)點(diǎn)多播地址(FF02::1)發(fā)送路由通告報(bào)文。主機(jī)接收路由通告報(bào)文后用其內(nèi)容來建立默認(rèn)路由列表、前綴列表和設(shè)置其他的配置參數(shù)??偰夸?6)重定向路由器使用重定向功能來通知源主機(jī)具有更好的第一跳鄰居節(jié)點(diǎn),發(fā)往指定目的地的業(yè)務(wù)流應(yīng)該首先被發(fā)送到這個(gè)鄰居節(jié)點(diǎn)。路由器必須同時(shí)滿足下列3個(gè)條件才能發(fā)送重定向消息:l

需轉(zhuǎn)發(fā)的數(shù)據(jù)包的IP源地址是一個(gè)鄰居;l

路由器發(fā)現(xiàn)在同一條鏈路上存在一個(gè)更佳的下一跳節(jié)點(diǎn);l

需轉(zhuǎn)發(fā)的數(shù)據(jù)包的目標(biāo)IP地址不是組播地址。源主機(jī)在接收到重定向報(bào)文后,如果在目的地緩存中存在該目的地,則修改目的地緩存,使其后續(xù)的數(shù)據(jù)包轉(zhuǎn)至新的下一跳;如果目的地緩存不存在,就新建該目的地及下一跳??偰夸?.4地址自動(dòng)配置技術(shù)1.IPv6地址格式及地址配置方式一個(gè)典型的IPv6主機(jī)單播地址由3部分組成:全球路由前綴、子網(wǎng)ID和接口ID。全球路由前綴用來識(shí)別分配給一個(gè)站點(diǎn)的一個(gè)地址范圍。子網(wǎng)ID也稱為子網(wǎng)前綴,一個(gè)子網(wǎng)ID與一個(gè)鏈接相關(guān)聯(lián),以識(shí)別站點(diǎn)中某個(gè)鏈接。接口ID用來識(shí)別鏈接上的某個(gè)接口,在該鏈接上是惟一的。IPv6地址配置可以分為手動(dòng)地址配置和自動(dòng)地址配置兩種方式。自動(dòng)地址配置方式又可以分為無狀態(tài)地址自動(dòng)配置和有狀態(tài)地址自動(dòng)配置兩種。在無狀態(tài)地址自動(dòng)配置方式下,網(wǎng)絡(luò)接口接收路由通告的全球地址前綴,再結(jié)合接口ID得到一個(gè)可聚合全球單播地址。在有狀態(tài)地址自動(dòng)配置的方式下,主要采用動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP),需要配備專門的DHCP服務(wù)器,網(wǎng)絡(luò)接口通過客戶機(jī)/服務(wù)器模式從DHCP服務(wù)器處動(dòng)態(tài)地獲得地址配置信息??偰夸?.接口ID的生成在無狀態(tài)地址自動(dòng)配置方式下,接口ID通常可以通過EUI-64轉(zhuǎn)換算法得到。接口ID由48位MAC地址轉(zhuǎn)換得到。EUI-64是IEEE定義的一種基于64位的擴(kuò)展惟一標(biāo)示符。是IEEE指定的公共24位制造商標(biāo)識(shí)和制造商為產(chǎn)品指定的40位值的組合。在IPv6地址中,接口ID的長度為64位,由48位的以太網(wǎng)MAC地址轉(zhuǎn)換得到。詳見3.2.1小節(jié)。WindowsXP下主機(jī)地址自動(dòng)配置示例如下圖所示。例中,Linklayeraddress(即MAC地址)為“00-16-d3-3d-0b-4e”。preferredlinklocal通過自動(dòng)配置得到主機(jī)鏈路本地地址。其中,fe80::/64是鏈路本地地址的固定前綴,216:d3ff:fe3d:b4e是從MAC地址轉(zhuǎn)換得到的64位的接口ID??偰夸浛偰夸?.全球路由前綴的獲得網(wǎng)絡(luò)節(jié)點(diǎn)為獲得全球路由前綴,向與其相連的路由器發(fā)出路由請(qǐng)求RS(RouterSolicitation)消息。該RS消息的類型字段值為133,消息的源地址是網(wǎng)絡(luò)節(jié)點(diǎn)的本地鏈路地址,由于這是一個(gè)路由請(qǐng)求消息,目的地址是FF02::2(所有路由器多播地址)。路由器接收到網(wǎng)絡(luò)節(jié)點(diǎn)的RS消息后,向該節(jié)點(diǎn)回送路由通告RA(RouterAdvertisement)消息。RA消息的源地址是路由器的IPv6地址,目的地址是網(wǎng)絡(luò)節(jié)點(diǎn)的本地鏈路地址,消息的類型字段值是134,表明這是一個(gè)路由通告消息,消息的選項(xiàng)字段給出全球路由前綴。網(wǎng)絡(luò)節(jié)點(diǎn)在獲得全球路由前綴后,與接口ID結(jié)合形成全球IPv6地址。至此,網(wǎng)絡(luò)節(jié)點(diǎn)的無狀態(tài)地址自動(dòng)配置過程結(jié)束??偰夸浭褂肊UI-64轉(zhuǎn)換算法得到的接口ID是隨機(jī)器硬件固定的,也是全球惟一的。該算法實(shí)現(xiàn)簡單,是一種重要的接口ID自動(dòng)生成算法,目前Windows,Linux操作系統(tǒng)在對(duì)主機(jī)生成接口ID時(shí),均使用EUI-64轉(zhuǎn)換算法。作為對(duì)該算法的一種改進(jìn),RFC3041又引入了一種隨機(jī)地址機(jī)制,他包含了用一組隨機(jī)數(shù)字代替由MAC地址轉(zhuǎn)換的接口ID。該地址具有一定的生存周期,隨著生存周期的結(jié)束,該地址會(huì)自動(dòng)更換,較好地解決了節(jié)點(diǎn)的Internet訪問活動(dòng)被跟蹤的問題。總目錄7.6IPv6組播技術(shù)7.5.1組播的基本概念1.組播的基本概念網(wǎng)絡(luò)應(yīng)用中越來越多的是基于一個(gè)特定的組,比如:多媒體會(huì)議、群組數(shù)據(jù)分發(fā)、網(wǎng)絡(luò)游戲、群組視頻點(diǎn)播、群組網(wǎng)絡(luò)聊天等。要完成這些應(yīng)用,使用傳統(tǒng)的TCP/IP的單播技術(shù)或是廣播技術(shù)都不合適。單播技術(shù)會(huì)有大量的冗余數(shù)據(jù),占用大量的網(wǎng)絡(luò)帶寬,而廣播除了產(chǎn)生大量的冗余數(shù)據(jù),占用大量的網(wǎng)絡(luò)帶寬外,還會(huì)降低網(wǎng)絡(luò)的安全性和對(duì)無關(guān)的網(wǎng)絡(luò)設(shè)備和客戶造成影響,如產(chǎn)生廣播風(fēng)暴等。要實(shí)現(xiàn)特定組的數(shù)據(jù)的傳播,最好的辦法就是組播技術(shù):根據(jù)實(shí)際情況,將相關(guān)的成員劃分到一個(gè)群組,數(shù)據(jù)的傳播僅在該組內(nèi)進(jìn)行,對(duì)同一方向的多個(gè)(或一個(gè))用戶有同一數(shù)據(jù)包需求的,僅轉(zhuǎn)發(fā)一個(gè)數(shù)據(jù)包,這樣就可以最大限度地減少冗余數(shù)據(jù)的轉(zhuǎn)發(fā)。組播是一種基于網(wǎng)絡(luò)硬件設(shè)備實(shí)現(xiàn)的一種分組廣播的數(shù)據(jù)傳輸方式。組播數(shù)據(jù)傳輸時(shí),服務(wù)器可以將一個(gè)數(shù)據(jù)包通過網(wǎng)絡(luò)硬件設(shè)備復(fù)制的方法同時(shí)分組發(fā)送給多個(gè)需要接收的客戶端。采用這種方式,組播視頻節(jié)目就可以在有限的網(wǎng)絡(luò)主干帶寬下實(shí)現(xiàn)無限用戶同時(shí)在線觀看。總目錄2.組播協(xié)議的優(yōu)勢(shì)能節(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é)議的缺點(diǎn)與單播協(xié)議相比,組播沒有補(bǔ)包機(jī)制,因?yàn)榻M播采用的是UTP(單向傳輸協(xié)議)的傳輸方式,并且不是針對(duì)一個(gè)接收者,所以無法有針對(duì)的進(jìn)行補(bǔ)包。因此,直接用組播協(xié)議傳輸?shù)臄?shù)據(jù)是不可靠的。4.組播技術(shù)的分類目前,組播技術(shù)分為兩大陣營:l

基于視頻信號(hào)的組播技術(shù);l

基于網(wǎng)絡(luò)信號(hào)的組播技術(shù)??偰夸?.5.2IPv4組播技術(shù)回顧IPv4網(wǎng)絡(luò)有三種通訊模式:單播、廣播和組播,其中的組播出現(xiàn)時(shí)間最晚但同時(shí)具備單播和廣播的優(yōu)點(diǎn),最具有發(fā)展前景。1.單播技術(shù)(1)單播的概念主機(jī)之間采用“一對(duì)一”的通訊模式,網(wǎng)絡(luò)中的交換機(jī)和路由器對(duì)數(shù)據(jù)只進(jìn)行轉(zhuǎn)發(fā)不進(jìn)行復(fù)制。如果10個(gè)客戶機(jī)需要相同的數(shù)據(jù),則服務(wù)器需要逐一傳送,重復(fù)10次相同的工作。但由于其能夠針對(duì)每個(gè)客戶機(jī)的及時(shí)響應(yīng)而使該技術(shù)獨(dú)占鰲頭,例如現(xiàn)在的網(wǎng)頁瀏覽全部都是采用IP單播協(xié)議。網(wǎng)絡(luò)中的路由器和交換機(jī)根據(jù)其目標(biāo)地址選擇傳輸路徑,將IP單播數(shù)據(jù)傳送到其指定的目的地。總目錄總目錄2.廣播技術(shù)(1)廣播的概念主機(jī)之間采用“一對(duì)所有”的通訊模式,網(wǎng)絡(luò)對(duì)其中每一臺(tái)主機(jī)發(fā)出的信號(hào)都進(jìn)行無條件的復(fù)制并轉(zhuǎn)發(fā),所有主機(jī)都可以接收到所有廣播信息(不管你是否需要),由于不用進(jìn)行路徑選擇,所以其網(wǎng)絡(luò)成本可以很低廉。有線電視網(wǎng)就是典型的廣播型網(wǎng)絡(luò),電視機(jī)實(shí)際上是接收到所有頻道的信號(hào),但只將一個(gè)頻道的信號(hào)還原成畫面。在數(shù)據(jù)網(wǎng)絡(luò)中也允許廣播的存在,但其被限制在二層交換機(jī)的局域網(wǎng)范圍內(nèi),禁止廣播數(shù)據(jù)穿過路由器,防止廣播數(shù)據(jù)影響大面積的主機(jī)。總目錄總目錄3.組播技術(shù)(1)組播的概念主機(jī)之間采用“一對(duì)一組”的通訊模式,也就是加入了同一個(gè)組的主機(jī)可以接收到此組內(nèi)的所有數(shù)據(jù),網(wǎng)絡(luò)中的交換機(jī)和路由器只向有需求者復(fù)制并轉(zhuǎn)發(fā)其所需數(shù)據(jù)。主機(jī)可以向路由器請(qǐng)求加入或退出某個(gè)組,網(wǎng)絡(luò)中的路由器和交換機(jī)有選擇的復(fù)制并傳輸數(shù)據(jù),即只將組內(nèi)數(shù)據(jù)傳輸給加入了組的主機(jī)。這樣既能一次將數(shù)據(jù)傳輸給多個(gè)有需要(加入組)的主機(jī),又能保證不影響其他不需要(未加入組)的主機(jī)的其他通訊??偰夸浛偰夸?.IPv4組播地址組播協(xié)議的地址在IP協(xié)議中屬于D類地址。D類地址是從到55之間的IP地址,其中到55是被保留的地址。組播協(xié)議的地址范圍類似于一般的單播地址,被劃分為兩個(gè)大的地址范圍,—55是私有地址,供各個(gè)內(nèi)部網(wǎng)在內(nèi)部使用,這個(gè)地址的組播不能上公網(wǎng),類似于單播協(xié)議使用的私有地址192.168.X.X和10.X.X.X?!?5是公用的組播地址,可以用于Internet上。IPv4組播地址又分為3大類:l

局部鏈接地址:~55,用于局域網(wǎng)絡(luò)內(nèi)部,路由器不轉(zhuǎn)發(fā)屬于此范圍的IP包。在這一范圍的多播包不會(huì)被轉(zhuǎn)發(fā)出本地網(wǎng)絡(luò),也不會(huì)考慮多播包的TTL值。

l

預(yù)留組播地址:~55,用于全球范圍或網(wǎng)絡(luò)協(xié)議;l

管理權(quán)限地址:~55,組織內(nèi)部使用,用于限制組播范圍,類似于內(nèi)部私有地址。

總目錄5.組播實(shí)現(xiàn)技術(shù)由于組播源是向組播組發(fā)送數(shù)據(jù)包而非單播模型中的具體目標(biāo)主機(jī),所以組播路由器不能依靠IP包中的目標(biāo)地址來決定如何轉(zhuǎn)發(fā)數(shù)據(jù)包,而必須將組播數(shù)據(jù)包轉(zhuǎn)發(fā)到多個(gè)外部接口上,以便同一組播組的成員都能接收到數(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á)路由器時(shí),路由器作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ù)包??偰夸洠?)TTL(生命周期)閾值的設(shè)置每當(dāng)一個(gè)路由器轉(zhuǎn)發(fā)組播數(shù)據(jù)包時(shí),IP包中的TTL(TimeToLive)值都減1。若數(shù)據(jù)包的TTL減少到0,路由器將拋棄該數(shù)據(jù)包。TTL閾值可用于組播路由器的各個(gè)接口,以防止在該接口上轉(zhuǎn)發(fā)低于TTL閾值的組播數(shù)據(jù)包。這樣可對(duì)組播的范圍加以控制。表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ù)包,而這一地址卻代表一個(gè)主機(jī)組。為了向所有接收者傳遞數(shù)據(jù),一般采用組播分布樹描述IP組播在網(wǎng)絡(luò)里經(jīng)過的路徑。組播分布樹有4種基本類型:泛洪法、有源樹、共享樹、Steiner樹和有核樹。

總目錄

l

洪泛法(Flooding)這是最簡單的向前傳送組播路由算法,并不構(gòu)造所謂的分布樹。其基本原理如下:當(dāng)組播路由器收到發(fā)往某個(gè)組播地址的數(shù)據(jù)包后,首先判斷是否是首次收到該數(shù)據(jù)包,如果是首次收到,那么將其轉(zhuǎn)發(fā)到所有接口上,以確保其最終能到達(dá)所有接收者;如果不是首次收到,則拋棄該數(shù)據(jù)包(每個(gè)數(shù)據(jù)包都要進(jìn)行判斷)。洪泛法的實(shí)現(xiàn)關(guān)鍵是“首次收到”的檢測(cè)。這需要維護(hù)一個(gè)最近通過的數(shù)據(jù)包列表,但無需維護(hù)路由表。它適合于對(duì)組播需求比較高的場合,并且能做到即使傳輸出現(xiàn)錯(cuò)誤,只要還存在一條到接收者的鏈路,則所有接收者都能接收到組播數(shù)據(jù)包。然而,洪泛法不適合用于Internet,因?yàn)樗豢紤]鏈路狀態(tài),并會(huì)產(chǎn)生大量的拷貝數(shù)據(jù)包。此外,對(duì)于高速網(wǎng)絡(luò)而言,“首次收到”列表將會(huì)很長,占用相當(dāng)大的內(nèi)存;盡管它能保證不對(duì)相同的數(shù)據(jù)包進(jìn)行二次轉(zhuǎn)發(fā),但不能保證對(duì)相同數(shù)據(jù)包只接收一次??偰夸沴

有源樹SPT有源樹也稱為基于信源的樹或最短路徑樹SPT(ShortestPathTree)。它是以組播源為根構(gòu)造的從根到所有接收者路徑都最短的分布樹。如果組中有多個(gè)組播源,則必須為每個(gè)組播源構(gòu)造一棵組播樹。由于不同組播源發(fā)出的數(shù)據(jù)包被分散到各自分離的組播樹上,因此采用SPT有利于網(wǎng)絡(luò)中數(shù)據(jù)流量的均衡。同時(shí),因?yàn)閺慕M播源到每個(gè)接收者的路徑最短,所以端到端(end-to-end)的時(shí)延性能較好,有利于流量大、時(shí)延性能要求較高的實(shí)時(shí)媒體應(yīng)用。SPT的缺點(diǎn)是:要為每個(gè)組播源構(gòu)造各自的分布樹,當(dāng)數(shù)據(jù)流量不大時(shí),構(gòu)造SPT的開銷相對(duì)較大??偰夸沴

共享樹RPT共享樹也稱RP樹(RPT),是指為每個(gè)組播組選定一個(gè)共用根(匯合點(diǎn)RP或核心),以RP為根建立的組播樹。同一組播組的組播源將所要組播的數(shù)據(jù)單播到RP,再由RP向其它成員轉(zhuǎn)發(fā)(即組播)。目前,討論最多同時(shí)也是最具代表性的兩種共享樹是Steiner樹和有核樹(CBT)。l

Steiner樹Steiner樹是總代價(jià)最小的分布樹,它使連接特定圖中的特定組成員所需的鏈路數(shù)最少。若考慮資源總量被大量的組使用的情況,那么使用資源較少最終就會(huì)減少產(chǎn)生擁塞的風(fēng)險(xiǎn)。Steiner樹相當(dāng)不穩(wěn)定,樹的形狀隨組中成員關(guān)系的改變而改變,且對(duì)大型網(wǎng)絡(luò)缺少通用的解決方案。l

有核樹有核樹是由根到所有組成員的最短路徑合并而成的樹。A.Ballardie在1997年9月的《基于核的組播路由體系結(jié)構(gòu)》(CoreBasedTrees(CBT)MulticastRoutingArchitecture)(RFC2189和RFC2201)中介紹了有核樹。總目錄(5)組管理協(xié)議IGMP

主機(jī)使用IGMP通知子網(wǎng)組播路由器,希望加入組播組;路由器使用IGMP查詢本地子網(wǎng)中是否有屬于某個(gè)組播組的主機(jī)。l

加入組播組當(dāng)某個(gè)主機(jī)加入某一個(gè)組播組時(shí),它通過“成員資格報(bào)告”消息通知它所在的IP子網(wǎng)的組播路由器,同時(shí)將自己的IP模塊做相應(yīng)的準(zhǔn)備,以便開始接收來自該組播組傳來的數(shù)據(jù)。如果這臺(tái)主機(jī)是它所在的IP子網(wǎng)中第一臺(tái)加入該組播組的主機(jī),通過路由信息的交換,組播路由器加入組播分布樹。l

退出組播組在IGMPv1中,當(dāng)主機(jī)離開某一個(gè)組播組時(shí),它將自行退出。組播路由器定時(shí)(如120秒)使用“成員資格報(bào)告”消息向IP子網(wǎng)中的所有主機(jī)的組地址()查詢,如果某一組播組在IP子網(wǎng)中已經(jīng)沒有任何成員,那么組播路由器在確認(rèn)這一事件后,將不再在子網(wǎng)中轉(zhuǎn)發(fā)該組播組的數(shù)據(jù)。與此同時(shí),通過路由信息交換,從特定的組播組分布樹中刪除相應(yīng)的組播路由器。這種不通知任何人而悄悄離開的方法,使得組播路由器知道IP子網(wǎng)中已經(jīng)沒有任何成員的事件延時(shí)了一段時(shí)間,所以在IGMPv2.0中,當(dāng)每一個(gè)主機(jī)離開某一個(gè)組播組時(shí),需要及時(shí)通知子網(wǎng)組播路由器,組播路由器立即向IP子網(wǎng)中的所有組播組詢問,從而減少了系統(tǒng)處理停止組播的延時(shí)??偰夸洠?)以太網(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必須對(duì)收到的每一個(gè)組播數(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地址,這樣會(huì)有32個(gè)IP組播地址映射到同一MAC地址上??偰夸浿饕蛟谟冢阂蕴W(wǎng)MAC地址有48位,用12個(gè)十六進(jìn)制位表示,但組播地址只使用了23位,原因是,20世紀(jì)90年代組播的早期研究者在申請(qǐng)組織機(jī)構(gòu)唯一標(biāo)識(shí)符(OUI)時(shí),本來需要16個(gè)OUI的(每個(gè)OUI3位,正好48位),由于資金問題(一個(gè)OUI需要1000美元),最終只申請(qǐng)8個(gè)OUI(24位),而其中的1位用于組播研究。所以,以太網(wǎng)與FDDI組播MAC地址映射IP組播幀都使用以二進(jìn)制“00000001,00000000,01011110,0”的25位前綴開始的23位MAC層地址可以被IP組播使用。總目錄6.組播路由協(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收到一個(gè)發(fā)自接收端的加入(Join),它就會(huì)向著組G的RP方向(逆向)逐跳組播發(fā)出一個(gè)(*,G)加入信息用以加入共享樹;l

源主機(jī)向組發(fā)送組播數(shù)據(jù)時(shí),源的數(shù)據(jù)被封裝在注冊(cè)消息內(nèi),并由其DR單播至RP,RP再將源的解封裝數(shù)據(jù)包沿著共享樹轉(zhuǎn)發(fā)到各個(gè)組成員;l

RP朝著源方向向第一跳路由器發(fā)送(S,G)加入信息,用以加入此源的最短路徑樹,這樣源的數(shù)據(jù)包將沿著其最短路徑樹不加封裝地發(fā)送到RP;l

當(dāng)?shù)谝粋€(gè)組播數(shù)據(jù)沿此樹到達(dá)時(shí),RP向源的DR發(fā)送注冊(cè)-停止消息,以使DR停止注冊(cè)封裝過程。此后,這個(gè)源的組播數(shù)據(jù)不再注冊(cè)封裝,而是先沿著源的最短路徑樹發(fā)送到RP,再由RP將其沿著共享樹轉(zhuǎn)發(fā)到各個(gè)組成員;當(dāng)不再需要組播數(shù)據(jù)時(shí),DR向著組G的RP逐跳組播剪枝消息用以剪枝共享樹。

總目錄7.5.3IPv6組播技術(shù)1.IPv6對(duì)IPv4組播技術(shù)的繼承和增強(qiáng)由于組播技術(shù)的優(yōu)越性,IETF在制訂IPv6協(xié)議時(shí)保留了組播功能,而取消了廣播。并為了更好地使用和管理組播技術(shù),IPv6對(duì)組播作了進(jìn)一步的改進(jìn),主要表現(xiàn)在以下方面。(1)組播地址如圖3-12,IPv6組播地址前8位為11111111;4位的組播標(biāo)志用于區(qū)分眾所周知組播地址(值為0)和臨時(shí)組播地址(值為1),該字段的高3位保留;4位的范圍字段決定了組播報(bào)文輸?shù)姆秶R逊峙涞姆秶侄沃等缦拢ㄆ渌祷蛘哌€沒有分配,或者已經(jīng)保留):l

1:節(jié)點(diǎn)局部。節(jié)點(diǎn)局部報(bào)文禁止從端口輸出;l

2:鏈路局部。鏈路局部報(bào)文不能被路由器轉(zhuǎn)發(fā);l

5:站點(diǎn)局部。站點(diǎn)的定義由該網(wǎng)點(diǎn)的組播路由器管理員決定;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路由器上運(yùn)行的組播路

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論