全球专业中文经管百科,由121,994位网友共同编写而成,共计436,031个条目

任播

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

任播(anycast)

目錄

什麼是任播

  任播又被稱為泛播、選播、聯播,是一種網路定址和路由的策略,使得資料可以根據路由拓樸來決定送到“最近”或“最好”的目的地。

任播形式图
放大
任播形式圖

  它被認為在負載均衡、提高服務的可用性和容錯性、對抗D0S/DDOS攻擊等方面有重要的作用,從IPv4,PIP,SIPP到IPv6,任播技術都被提到,目前涉及到任播的RFC約有5O多個,但除了在DNS根伺服器和AS-112伺服器上被使用外,任播一直沒有出現大規模全局性應用。對於目前的IPv6技術而言,任播技術遲遲沒有突破性的進展,除了和IPv6發展緩慢一直不能有大規模的應用有關外,也和任播自身存在很多尚未解決的技術難題有關。

任播的由來

  任播最初是在RFC1546中被提出來的,它被定義為:主機向一個任播地址發送數據包,網路負責儘力將數據包交付(delivery)到至少一個,最好也是一個伺服器,這些伺服器由這個任播地址標識。在RFC3513(廢棄了RFC2373)E。]中,進一步對任播進行了定義:任播地址被分配給兩個以上的介面(一般指不同IP地址的節點),而發送到這個地址上的分組被路由到“最近”的介面。這裡“最近”可以是指路由器跳數、伺服器負載、伺服器吞吐量、客戶和伺服器之間的往返時間(RTT,round trip time)、鏈路的可用帶寬等特征值(metric)。任播通信的基本概念是從物理主機設備中分離出的邏輯服務標識符,任播地址可以根據服務類型來分配,使得網路服務擔當一個邏輯主機的角色。

  任播、單播和多播都是IP通信的模式,它們之間的區別可以從表1中看出。

表1:三种通信模型
放大
表1:三種通信模型

任播通信的基本過程

  任播的基本通信過程(如圖1所示)包含了四個方面:編址、路由、組管理、鏈路地址解析,下文將對這四個方面詳細講述。

图1:任播通信过程图
放大
圖1:任播通信過程圖

  1.編址

  在IPv4中,為任播專門分配一個地址空間,這樣很容易就能從地址格式中分辨出任播服務。在IPv6中,任播地址取自單播地址空間,和單播地址在語法上沒有什麼區別,單從地址格式上無法分辨出是單播還是任播。

  對於單播而言,通過層次化地址分配方式,採用地址匯聚等手段來縮減路由表的大小,如CIDR。多播和任播不符合層次匯聚的模型。對於多播可以採用基於組的聚合來有效地縮減路由表的大小。而任播技術卻一直沒有好的解決方法。如何有效地減小路由表的尺寸,提高網路端到端的可用性,一直是任播領域里的難點。

  雖然,IPv6技術採用更加嚴格的分層地址結構以及對應的地址分配方式,使得地址聚合更加容易。但IPv6下的任播仍會破壞地址聚合性。從任播的語義來看,標識任播組的符號可以是任何的符合語法特征的1P地址甚至其它標識符,這個地址不一定要像單播IP地址一樣包含地理位置信息,但為了能夠提高任播的聚合性,在任播的地址結構中引人了P首碼段。按照RFC3513的定義,對於任何已分配的任播地址,有一個最長的地址首碼P,P指定了一個拓撲區域,所有的任播節點都屬於該區域。在P標識的區域內,任播地址必須在路由表中以獨立路由條目的形式出現,在區域之外,任播地址應該匯聚成一個P首碼路由條目。

图2:IPv6任播地址结构
放大
圖2:IPv6任播地址結構

  P首碼給任播地址賦予了地理位置信息,強迫任播組限定在某個特定的拓撲區域內並共用首碼,從而達到一定的路由聚合的目的(每個任播組以單個路由條目的形式在單播路由體系中發佈)。雖然P首碼一定程度上緩解了任播在全局性和可擴展性的問題,但沒有根本解決。0當p=O時這種問題完全暴露出來,在這種情況下,任播組可能沒有拓撲位置,任播地址在整個Internet中,必須被告知作為一個獨立的路由實體。

  2.路由

  任播路由和單播路由一樣,都是要解決如何讓數據包到達目的網路的問題,只是任播中的目的網路具有某種不確定性。在單播路由中,協議把具有相同首碼的路由作為一個路由表項呈現給外界從而匯聚了路由。單播的分層匯聚思想的路由協議和地址結構以及分配方式可以很好的配合使用。由於任播違反了分層匯聚模型,單播路由不能直接用於任播通信。目前任播路由的主要研究方向有三個:

  (1)基於單播路由協議,對其進行部分修改。比如IPv6的OSPFv3在設計的時候沒有考慮支持任播的,所以要對其進行改動。

  (2)基於多播的路由協議,對其進行部分修改。由於多播和任播有很多的相似特征,可以對現有的多播路由協議進行修改,如對DVMRP,MOSPF,PIM—SM 修改得到任播路由協議:DVARP,AOSPF,PIA-SM 。

  (3)設計一個全新的任播路由協議。但這並不是說要拋開現有的路由系統,因為任播和多播通信模型的基礎仍然是單播,或者說任播網路和多播網路只是單播通信模型之上的邏輯重疊網。(如圖3所示)單播網路是實際存在的網路,它基於單播地址轉發數據包。而任播網路中的節點並不是物理連接的,它們通過隧道等端到端技術來建立邏輯連接。新的任播路由協議如Dina Katabi等人提出的G1A[引,北京大學提出的吸收協議,還有基於遺傳演算法的並行搜索,群體尋優的特點設計的有時延路由演算法 。

图3:任播重叠网络
放大
圖3:任播重疊網路

  3.組管理

  在任播通信中提出組管理的概念基於以下兩個問題:

  (1)如果任意一個實體都可以通告自己為任播伺服器,那麼一臺惡意主機就可以通過廣播虛假伺服器地址,使路由到合法任播主機的請求到達一臺不能應答的欺騙主機。所以必須有一種機制控制任播組成員關係。

  (2)由於擔心主機參與任播服務的安全性以及可能會加劇路由表膨脹問題,所以RFC限制任播地址只能分配給路由器,要想讓主機參與到任播服務中,就需要一種機制把主機成員的任播身份通告給路由系統,並且掌握各任播成員是否可用的信息

  在IPv4和IPv6中,多播分別採用IGMP和多播偵聽者發現協議(MLD)作為組管理協議。但對於任播,卻一直沒有很好的組管理協議。Haberman提出的Host—based Anycast using MLE/引,通過對MLD協議進行擴展,來增加對任播的支持。但事實上,這種對現有協議的修改不能提供可擴展的、穩定的任播組管理解決方案。Vasaki等人提出的任播組管理協議AGMP~ ,該協議基於SLINA體繫結構模型,並且假設已經存在一個理想的任播路由協議。Judge提出的安全多播和任播的組訪問控制結構 。Castelluci提出的加密產生組地址的IPv6安全組管理 ,其中任播地址的組標識由該組擁有者的公鑰加密產生。

  4.鏈路地址解析

  任播鏈路層地址解析是指當任播數據包到達任播成員所在的區域網中時,怎樣把數據包交付給任播成員,這是任播通信的最後一站。當IPv4的ARP和IPv6的鄰居發現協議用於任播鏈路層地址解析時,鄰居發現協議保留最先應答的任播成員的鏈路地址,而忽略後來的其他成員的應答。在發現當前其它鏈路地址對應的主機當機時,才重新查詢並使用其它伺服器的鏈路地址。所以,在當前任播成員工作良好的情況下,即使存在多個伺服器,也始終只有一個可達。ARP協議也類似,而且因為多個伺服器應答ARP請求時間的不同導致ARP前後兩次獲得的鏈路地址不同而破壞有狀態的連接。這兩個協議的區別在於鄰居發現協議可以較快發現當前正在使用的鏈路地址的主機當機,而ARP則必須等到超時才能發現。由於這兩個協議都只能將一個任播地址解析成一個鏈路地址,所以並不適合任播通信。一種解決方案是更改ARP和鄰接點發現協議,使它們能夠保留同一個IP地址的多個不同鏈路地址然後每次通信時用某種方式在這些地址中選出一個使用,另外一種解決方案是把任播成員的單播地址作為對應任播地址的最後一跳,當任播數據包到達伺服器所在的區域網時,需要解析的最後一個地址是伺服器的單播地址而不是任播地址。由路由系統通過現有的地址解析協議變相完成地址解析,這種方法不需要更改現有的地址解析協議

  5.兩個限制

  在RFC3513中,對IPv6下任播的使用給出了兩個限制:(1)主機不能作為任播成員參與到任播服務中,任播地址只能分配給路由器。(2)任播地址不能作為源地址。

  這兩個限制主要是為了防止在IPv6任播大規模應用之後,可能會帶來的一些不可預料的破壞性而提出的,它們也成為了限制任播全局性使用的阻礙。文檔同時還指出,“直到我們獲得更多的經驗並且達成一致的解決方案”這兩個限制才可能被取消。限制主機參與任播服務是出於安全性和控制路由表大小的考慮。由於任播地址的聚合性差,針對任播地址的路由條目必須分別被存儲在路由器中,當任播地址得到廣泛應用時,路由表會變得十分擁擠。而且若主機能夠加人任播組,則路由表的大小很容易受到主機的控制,這會造成安全隱患。所以對於主機全局任播,如果沒有其他新的路由技術或者組管理協議的保障很難實現。主機站點本地的局部任播,雖然也會遇到以上相同的問題,但由於網路規模對路由表的影響不會太大,所以是可行的。而如果只有路由器參與任播服務,則任播數據包的路由就會相對簡單,擁有任播地址的路由器在交換路由信息時可以主動將路由需要的任播信息發送出去,其它路由器根據這些信息修改路由表,我們就只需跟蹤路由表的條目。最終找到擁有該任播地址的路由器。

  任播地址不能作為源地址是出於以下原因:(1)具有同樣目的地址的,來自同一任播組的不同成員的IP分片。有可能具有相同的分片ID並且在幾乎相同的時間到達目的主機,這樣,來自不同發送者的,有相同的源/目的地址和相同的分片ID的IP分片,將會給目標機分片的重組帶來不可預料的錯誤。(2)由於源地址是任播地址,有可能使差錯響應報文被髮回到同組的其它成員。如ICMP的packet toobig making path MTU discovery impossible報文就可能產生這樣的錯誤。

本條目對我有幫助9
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

Mis铭,方小莉,寒曦.

評論(共0條)

提示:評論內容為網友針對條目"任播"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号