簡介 目前任播技術的定義不是十分清楚,但是
終端 主機 通過
路由器 是被基於包交換所決定。任播技術的概念並不局限於
網路層 ,它也可以在其他層實現(例如:
套用層 ),網路層和套用層的任播技術均有優點和缺點。根據RFC2526(Reserved IPv6 Subnet Anycast Addresses, March 1993),任播地址是“IPv6中保留的地址,指定給一個或多個可能屬於不同物理
節點 的網路接口。其屬性為傳送到任播地址的數據分組會按照
路由選擇協定 的距離方法,被
路由 選擇到有該地址的最近接口。”另一特點是,任播地址與常規
單播 地址相似。向
單播 地址傳送數據分組的
節點 並不需要知道它是單播地址。
任播 Anycasting最初是在RFC1546中提出並定義的,它的最初語義是,在IP網路上通過一個Anycast地址標識一組提供特定服務的
主機 ,同時服務訪問方並不關心提供服務的具體是哪一台主機(比如DNS或者鏡像服務),訪問該地址的
報文 可以被IP網路
路由 到這一組目標中的任何一台主機上,它提供的是一種無狀態的、盡力而為的服務。
在RFCl546(Host Anycasting Service, November 1993)中,論述了任播的目的;但那時還沒有開發IPv6定址。理由是
客戶端 需要兩個或多個伺服器提供的服務。
客戶端 不介意哪個伺服器提供服務,重要的一點是使客戶端的查找服務更容易。例如,客戶可以鍵入請求並被連線到最近的伺服器,而不必從信息伺服器列表中選擇。任播也提供容錯,因為如果有伺服器出現故障,伺服器組中的其他伺服器可以提供服務。
RFC2373(IP Version 6 Addressing Architecture, July 1998)提供了較新的說明和動機:任播地址的一個期望套用是標識屬於某個提供網際網路服務的機構的
路由器 集合。這種地址可以用作IPv6路由標題的中間地址,使數據分組通過某一聚合或聚合序列傳遞。其他可能的用途是標識屬於某一
子網 的
路由器 組或提供進入某一路由範圍入口的
路由器 組。
RFC2373標準對任播的定義是,當一個
單播 地址被分配到多於一個的接口上時,發到該接口的
報文 被網路路由到由
路由協定 度量的“最近”的目標接口上。與Unicast和Multicast類似,Anycast也是IP網路的一種通信模式。Unicast允許源結點向單一目標結點傳送數據報,Multicast允許源結點向一組目標結點傳送數據報,而Anycast則允許源結點向一組目標結點中的一個結點傳送數據報,而這個結點由
路由 系統選擇,對源結點透明;同時,路由系統選擇“最近”的結點為源結點提供服務,從而在一定程式上為源結點提供了更好的服務也減輕了網路負載。
目前,任意點傳送地址僅被用做目標地址,且僅分配給
路由器 。任意點傳送地址是從單點傳送
地址空間 中分配的,使用了單點傳送地址格式中的一種。任播地址結構如圖1所示。
子網-
路由器 任意點傳送地址必須經過預定義,該地址從子網前綴中產生。為構造一個
子網 -
路由器 任意點傳送地址,子網前綴必須固定,餘下的位數置為全“0”。一個
子網 內的所有
路由器 接口均被分配該子網的
子網 -
路由器 任意點傳送地址。
子網 -路由器任意點傳送地址用於一組路由器中的一個與遠程子網的通信。
對任意的任播地址,都有最長的地址前綴P,它限定了一個拓撲區域,所有屬於該任播地址的接口都處在這個區域中。在P所限定的這個區域中,屬於該任播地址集合的每一個成員都必須作為尋經系統中的單獨入口而被廣告;在該區域之外,該任播地址也許會聚集到對該前綴P的尋經廣告中。
一個任播地址有一個拓撲區域,屬於該任播地址的所有成員都位於其中。在該區域內,每個成員必須作為
路由選擇 系統中的一個獨立項公布,但在區域外,這些成員作為單一的聚合任播地址存在。
RFC1546論述了一些潛在的問題。例如,IP是無國界的,而且並不記錄較早的數據報是在哪裡傳遞的。如果客戶端向任播地址傳送兩個數據報,一個可能會傳送到某一伺服器上,而另一個可能會傳送到另一個伺服器上。若要確保選定任播伺服器後,所有以後的數據分組都傳輸到該伺服器,需要一種機制。任播數據報還有可能會被傳送到服務於該任播地址的所有
主機 上。鑒於這些問題,RFC提供了IP任播較正確的定義,即“向服務於任播地址的至少一個
主機 ,最好僅一個主機提供任播數據報的無國界最佳效果傳遞的服務。
RFC認為解決方法是,在第一次
數據報交換 中了解客戶端地址並將其用在所有以後的對話中,要求應用程式保持狀態。有關任播定址、其體系結構、在應用程式中的使用、安全性考慮以及其他細節的RFC2526提供了更多有關如何與IPv6一起實現任播的最新建議。
特點 任播通信模式的特點,使它在IP網路中具有了一定程式的套用前景。首先,分布的服務共享相同的IP位址,同時在IP層進行透明的服務定位,這使得各種網路服務特別是
套用層 服務具有更強的
透明性 ,比如DNS,在IPv6網路中它可以共享一個熟知的IP位址,用戶不需要特殊配置也不用關心訪問的是哪一台DNS伺服器;其次,
路由 系統選擇了“最近”的服務,縮短了服務回響的時間,同時減輕了網路負載;最後,相同的服務在網路上
冗餘 分布,路由系統可以提供機制選擇負載相對輕的頻寬相對高的路徑來轉發
報文 ,這樣就給用戶帶來了兩個方面的好處:
減弱了DDOS攻擊對用戶帶來的影響。當任播組中某一個成員或者幾個成員受到攻擊時,負責
報文 轉發的路由器可以根據各個組成員的回響時間來決定
報文 應該轉發到哪個成員上,這樣受到攻擊的成員由於沒有回響,所以報文就不會被轉發到那裡,同時,由於任播提供的服務訪問透明性,組成員也相對較難受到DDOS攻擊。
減弱了
網路擁塞 給用戶帶來的影響。同上面的道理,當任播的某些組成員處在擁塞的
網段 時,它的回響時間就較長,
報文 可以被轉發到回響較好的成員那裡。
任播通信模式還具有以下一些特點:
透明的服務定位任播地址可以作為一項服務的標識,任播通信組組員共享相同的任播地址,同時在IP層進行透明的服務定位,使得各種網路服務具有較強的透明性。比如DNS服務,各域名伺服器可以共享一個任播地址,用戶在接受域名服務時,無需特殊配置也無需知道具體是哪一台DNS伺服器提供服務。
負載均衡當任播的某些組員擁塞時,其回響時間較長,這時數據包可以被轉發到當前回響較好的組員處(即當前最優組員)。因此,任播技術可以節約路由和鏈路資源,減少網路擁塞給客戶帶來的影響,增加資源利用效率和避免單點失效。
彈性服務如果正在提供服務的任播組員由於移動或者其它某種原因斷開,可通過任播路由在其它組員中找到離用戶最近的組員繼續提供服務,這樣很大地保證了服務的可靠性。(4)主機自動配置只要把某一任播地址分配給DNS伺服器,當客戶從一個網路移動到其它網路時,無需為客戶重新配置本地DNS伺服器,客戶可以使用任播地址與任何網路的DNS伺服器進行通信。
雖然任播在以上方面有一定的優勢,但是目前任播的套用並不如期待中的一樣。
套用層 對任播的使用主要有伺服器自動選擇、服務自動定位,伺服器自動選擇可以使用在需要對某種套用層服務提供多個
鏡像伺服器 的情況,比如FTP服務、線上遊戲服務等。服務自動定位可以使用在
主機 不需要特別配置而使用一種知名服務的情況,典型的如DNS。
網路層 實現任播主要是依據任播
路由表 對報文進行透明轉發,向上層提供服務,這樣
套用層 就不需要專門的任播
程式模組 。任播路由表記錄了一個任播組所有成員的Unicast地址,當
路由器 收到一個指向任播地址的
報文 時,首先搜尋任播路由表找到相應的任播組,然後把報文轉發到這個組中的一個成員上。鑒於
套用層 對全球範圍內的任播的需求,所以促成了對
網路層 全球任播機制的研究。