簡(jiǎn)介
目前任播技術(shù)的定義不是十分清楚,但是終端主機(jī)通過(guò)路由器是被基于包交換所決定。任播技術(shù)的概念并不局限于網(wǎng)絡(luò)層,它也可以在其他層實(shí)現(xiàn)(例如:應(yīng)用層),網(wǎng)絡(luò)層和應(yīng)用層的任播技術(shù)均有優(yōu)點(diǎn)和缺點(diǎn)。根據(jù)RFC2526(Reserved IPv6 Subnet Anycast Addresses, March 1993),任播地址是“IPv6中保留的地址,指定給一個(gè)或多個(gè)可能屬于不同物理節(jié)點(diǎn)的網(wǎng)絡(luò)接口。其屬性為發(fā)送到任播地址的數(shù)據(jù)分組會(huì)按照路由選擇協(xié)議的距離方法,被路由選擇到有該地址的最近接口?!绷硪惶攸c(diǎn)是,任播地址與常規(guī)單播地址相似。向單播地址發(fā)送數(shù)據(jù)分組的節(jié)點(diǎn)并不需要知道它是單播地址。
任播Anycasting最初是在RFC1546中提出并定義的,它的最初語(yǔ)義是,在IP網(wǎng)絡(luò)上通過(guò)一個(gè)Anycast地址標(biāo)識(shí)一組提供特定服務(wù)的主機(jī),同時(shí)服務(wù)訪問(wèn)方并不關(guān)心提供服務(wù)的具體是哪一臺(tái)主機(jī)(比如DNS或者鏡像服務(wù)),訪問(wèn)該地址的報(bào)文可以被IP網(wǎng)絡(luò)路由到這一組目標(biāo)中的任何一臺(tái)主機(jī)上,它提供的是一種無(wú)狀態(tài)的、盡力而為的服務(wù)。
在RFCl546(Host Anycasting Service, November 1993)中,論述了任播的目的;但那時(shí)還沒(méi)有開(kāi)發(fā)IPv6尋址。理由是客戶端需要兩個(gè)或多個(gè)服務(wù)器提供的服務(wù)??蛻舳瞬唤橐饽膫€(gè)服務(wù)器提供服務(wù),重要的一點(diǎn)是使客戶端的查找服務(wù)更容易。例如,客戶可以鍵入請(qǐng)求并被連接到最近的服務(wù)器,而不必從信息服務(wù)器列表中選擇。任播也提供容錯(cuò),因?yàn)槿绻蟹?wù)器出現(xiàn)故障,服務(wù)器組中的其他服務(wù)器可以提供服務(wù)。
RFC2373(IP Version 6 Addressing Architecture, July 1998)提供了較新的說(shuō)明和動(dòng)機(jī):任播地址的一個(gè)期望應(yīng)用是標(biāo)識(shí)屬于某個(gè)提供互聯(lián)網(wǎng)服務(wù)的機(jī)構(gòu)的路由器集合。這種地址可以用作IPv6路由標(biāo)題的中間地址,使數(shù)據(jù)分組通過(guò)某一聚合或聚合序列傳遞。其他可能的用途是標(biāo)識(shí)屬于某一子網(wǎng)的路由器組或提供進(jìn)入某一路由范圍入口的路由器組。
RFC2373標(biāo)準(zhǔn)對(duì)任播的定義是,當(dāng)一個(gè)單播地址被分配到多于一個(gè)的接口上時(shí),發(fā)到該接口的報(bào)文被網(wǎng)絡(luò)路由到由路由協(xié)議度量的“最近”的目標(biāo)接口上。與Unicast和Multicast類似,Anycast也是IP網(wǎng)絡(luò)的一種通信模式。Unicast允許源結(jié)點(diǎn)向單一目標(biāo)結(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào),Multicast允許源結(jié)點(diǎn)向一組目標(biāo)結(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào),而Anycast則允許源結(jié)點(diǎn)向一組目標(biāo)結(jié)點(diǎn)中的一個(gè)結(jié)點(diǎn)發(fā)送數(shù)據(jù)報(bào),而這個(gè)結(jié)點(diǎn)由路由系統(tǒng)選擇,對(duì)源結(jié)點(diǎn)透明;同時(shí),路由系統(tǒng)選擇“最近”的結(jié)點(diǎn)為源結(jié)點(diǎn)提供服務(wù),從而在一定程序上為源結(jié)點(diǎn)提供了更好的服務(wù)也減輕了網(wǎng)絡(luò)負(fù)載。
目前,任意點(diǎn)傳送地址僅被用做目標(biāo)地址,且僅分配給路由器。任意點(diǎn)傳送地址是從單點(diǎn)傳送地址空間中分配的,使用了單點(diǎn)傳送地址格式中的一種。任播地址結(jié)構(gòu)如圖1所示。
子網(wǎng)-路由器任意點(diǎn)傳送地址必須經(jīng)過(guò)預(yù)定義,該地址從子網(wǎng)前綴中產(chǎn)生。為構(gòu)造一個(gè)子網(wǎng)-路由器任意點(diǎn)傳送地址,子網(wǎng)前綴必須固定,余下的位數(shù)置為全“0”。一個(gè)子網(wǎng)內(nèi)的所有路由器接口均被分配該子網(wǎng)的子網(wǎng)-路由器任意點(diǎn)傳送地址。子網(wǎng)-路由器任意點(diǎn)傳送地址用于一組路由器中的一個(gè)與遠(yuǎn)程子網(wǎng)的通信。
對(duì)任意的任播地址,都有最長(zhǎng)的地址前綴P,它限定了一個(gè)拓?fù)鋮^(qū)域,所有屬于該任播地址的接口都處在這個(gè)區(qū)域中。在P所限定的這個(gè)區(qū)域中,屬于該任播地址集合的每一個(gè)成員都必須作為尋經(jīng)系統(tǒng)中的單獨(dú)入口而被廣告;在該區(qū)域之外,該任播地址也許會(huì)聚集到對(duì)該前綴P的尋經(jīng)廣告中。
一個(gè)任播地址有一個(gè)拓?fù)鋮^(qū)域,屬于該任播地址的所有成員都位于其中。在該區(qū)域內(nèi),每個(gè)成員必須作為路由選擇系統(tǒng)中的一個(gè)獨(dú)立項(xiàng)公布,但在區(qū)域外,這些成員作為單一的聚合任播地址存在。
RFC1546論述了一些潛在的問(wèn)題。例如,IP是無(wú)國(guó)界的,而且并不記錄較早的數(shù)據(jù)報(bào)是在哪里傳遞的。如果客戶端向任播地址發(fā)送兩個(gè)數(shù)據(jù)報(bào),一個(gè)可能會(huì)發(fā)送到某一服務(wù)器上,而另一個(gè)可能會(huì)發(fā)送到另一個(gè)服務(wù)器上。若要確保選定任播服務(wù)器后,所有以后的數(shù)據(jù)分組都傳輸?shù)皆摲?wù)器,需要一種機(jī)制。任播數(shù)據(jù)報(bào)還有可能會(huì)被發(fā)送到服務(wù)于該任播地址的所有主機(jī)上。鑒于這些問(wèn)題,RFC提供了IP任播較正確的定義,即“向服務(wù)于任播地址的至少一個(gè)主機(jī),最好僅一個(gè)主機(jī)提供任播數(shù)據(jù)報(bào)的無(wú)國(guó)界最佳效果傳遞的服務(wù)。
RFC認(rèn)為解決方法是,在第一次數(shù)據(jù)報(bào)交換中了解客戶端地址并將其用在所有以后的對(duì)話中,要求應(yīng)用程序保持狀態(tài)。有關(guān)任播尋址、其體系結(jié)構(gòu)、在應(yīng)用程序中的使用、安全性考慮以及其他細(xì)節(jié)的RFC2526提供了更多有關(guān)如何與IPv6一起實(shí)現(xiàn)任播的最新建議。
特點(diǎn)任播通信模式的特點(diǎn),使它在IP網(wǎng)絡(luò)中具有了一定程序的應(yīng)用前景。首先,分布的服務(wù)共享相同的IP地址,同時(shí)在IP層進(jìn)行透明的服務(wù)定位,這使得各種網(wǎng)絡(luò)服務(wù)特別是應(yīng)用層服務(wù)具有更強(qiáng)的透明性,比如DNS,在IPv6網(wǎng)絡(luò)中它可以共享一個(gè)熟知的IP地址,用戶不需要特殊配置也不用關(guān)心訪問(wèn)的是哪一臺(tái)DNS服務(wù)器;其次,路由系統(tǒng)選擇了“最近”的服務(wù),縮短了服務(wù)響應(yīng)的時(shí)間,同時(shí)減輕了網(wǎng)絡(luò)負(fù)載;最后,相同的服務(wù)在網(wǎng)絡(luò)上冗余分布,路由系統(tǒng)可以提供機(jī)制選擇負(fù)載相對(duì)輕的帶寬相對(duì)高的路徑來(lái)轉(zhuǎn)發(fā)報(bào)文,這樣就給用戶帶來(lái)了兩個(gè)方面的好處:
減弱了DOS攻擊對(duì)用戶帶來(lái)的影響。當(dāng)任播組中某一個(gè)成員或者幾個(gè)成員受到攻擊時(shí),負(fù)責(zé)報(bào)文轉(zhuǎn)發(fā)的路由器可以根據(jù)各個(gè)組成員的響應(yīng)時(shí)間來(lái)決定報(bào)文應(yīng)該轉(zhuǎn)發(fā)到哪個(gè)成員上,這樣受到攻擊的成員由于沒(méi)有響應(yīng),所以報(bào)文就不會(huì)被轉(zhuǎn)發(fā)到那里,同時(shí),由于任播提供的服務(wù)訪問(wèn)透明性,組成員也相對(duì)較難受到DOS攻擊。
減弱了網(wǎng)絡(luò)擁塞給用戶帶來(lái)的影響。同上面的道理,當(dāng)任播的某些組成員處在擁塞的網(wǎng)段時(shí),它的響應(yīng)時(shí)間就較長(zhǎng),報(bào)文可以被轉(zhuǎn)發(fā)到響應(yīng)較好的成員那里。
任播通信模式還具有以下一些特點(diǎn)2:
透明的服務(wù)定位任播地址可以作為一項(xiàng)服務(wù)的標(biāo)識(shí),任播通信組組員共享相同的任播地址,同時(shí)在IP層進(jìn)行透明的服務(wù)定位,使得各種網(wǎng)絡(luò)服務(wù)具有較強(qiáng)的透明性。比如DNS服務(wù),各域名服務(wù)器可以共享一個(gè)任播地址,用戶在接受域名服務(wù)時(shí),無(wú)需特殊配置也無(wú)需知道具體是哪一臺(tái)DNS服務(wù)器提供服務(wù)。
負(fù)載均衡當(dāng)任播的某些組員擁塞時(shí),其響應(yīng)時(shí)間較長(zhǎng),這時(shí)數(shù)據(jù)包可以被轉(zhuǎn)發(fā)到當(dāng)前響應(yīng)較好的組員處(即當(dāng)前最優(yōu)組員)。因此,任播技術(shù)可以節(jié)約路由和鏈路資源,減少網(wǎng)絡(luò)擁塞給客戶帶來(lái)的影響,增加資源利用效率和避免單點(diǎn)失效。
彈性服務(wù)如果正在提供服務(wù)的任播組員由于移動(dòng)或者其它某種原因斷開(kāi),可通過(guò)任播路由在其它組員中找到離用戶最近的組員繼續(xù)提供服務(wù),這樣很大地保證了服務(wù)的可靠性。(4)主機(jī)自動(dòng)配置只要把某一任播地址分配給DNS服務(wù)器,當(dāng)客戶從一個(gè)網(wǎng)絡(luò)移動(dòng)到其它網(wǎng)絡(luò)時(shí),無(wú)需為客戶重新配置本地DNS服務(wù)器,客戶可以使用任播地址與任何網(wǎng)絡(luò)的DNS服務(wù)器進(jìn)行通信。
雖然任播在以上方面有一定的優(yōu)勢(shì),但是目前任播的應(yīng)用并不如期待中的一樣。應(yīng)用層對(duì)任播的使用主要有服務(wù)器自動(dòng)選擇、服務(wù)自動(dòng)定位,服務(wù)器自動(dòng)選擇可以使用在需要對(duì)某種應(yīng)用層服務(wù)提供多個(gè)鏡像服務(wù)器的情況,比如FTP服務(wù)、在線游戲服務(wù)等。服務(wù)自動(dòng)定位可以使用在主機(jī)不需要特別配置而使用一種知名服務(wù)的情況,典型的如DNS。網(wǎng)絡(luò)層實(shí)現(xiàn)任播主要是依據(jù)任播路由表對(duì)報(bào)文進(jìn)行透明轉(zhuǎn)發(fā),向上層提供服務(wù),這樣應(yīng)用層就不需要專門的任播程序模塊。任播路由表記錄了一個(gè)任播組所有成員的Unicast地址,當(dāng)路由器收到一個(gè)指向任播地址的報(bào)文時(shí),首先搜索任播路由表找到相應(yīng)的任播組,然后把報(bào)文轉(zhuǎn)發(fā)到這個(gè)組中的一個(gè)成員上。鑒于應(yīng)用層對(duì)全球范圍內(nèi)的任播的需求,所以促成了對(duì)網(wǎng)絡(luò)層全球任播機(jī)制的研究。