一種新的IPv6任播地址解析協(xié)議及應(yīng)用

王建 李方偉

  摘要:任播技術(shù)是一種新的網(wǎng)絡(luò)應(yīng)用。任播通信是支持導向服務(wù)地址的,但是目前IPv6中它的很多定義是模糊的,并且在控制路由方面沒有達成一致的協(xié)議標準,因此節(jié)點間任播通信仍然無法實現(xiàn)。在本文中首先說明了基于IPv6的任播通信,及目前在該領(lǐng)域中存在許多可能的應(yīng)用,并指出一些問題和與之對應(yīng)的解決辦法,隨后介紹了一種使用特殊任播地址來建立TCP連接的任播地址解析協(xié)議(AARP),使得任播地址在適應(yīng)已經(jīng)存在的應(yīng)用和高層協(xié)議時,不需要修改或者擴展的情況下更加有效。

  關(guān)鍵詞:IPv6, 任播通信,任播地址,解析,網(wǎng)絡(luò)應(yīng)用

1 IPv6地址類型的概述

  IPv6地址長度為128比特,地址按照其傳輸類型分為三種,即單播地址(Unicast Address)、多播地址(Multicast Address)和任播地址(Anycast Address)。單播和多播地址在IPv4中已經(jīng)存在,任播地址是IPv6中新的成員,RFC 2723將IPv6地址結(jié)構(gòu)中的的任播地址定義為一系列網(wǎng)絡(luò)接口(通常屬于不同的節(jié)點)的標識,其特點是:發(fā)往一個任播地址的分組將被轉(zhuǎn)發(fā)到由該地址標識的“最近”的一個網(wǎng)絡(luò)接口(“最近”的定義是基于路由協(xié)議中的距離度量)。

  單播地址是每個網(wǎng)絡(luò)接口的唯一的標識符,多個接口不能分配相同的單播地址,帶有同樣目的地地址的數(shù)據(jù)包被發(fā)往同一個節(jié)點;另一方面,多播地址被分配給一組節(jié)點,組中所有成員擁有同樣的組播地址,而帶有同樣地址的數(shù)據(jù)包同時發(fā)給所有成員;類似于多播地址,單一的任播地址被分配給多個節(jié)點(任播成員),但和多播機制不同的是:每次僅有一個分配任播地址的成員與發(fā)送端通信。一般與任播地址相關(guān)的有三個節(jié)點,當源節(jié)點發(fā)送一個目的地地址為任播地址地數(shù)據(jù)包時,數(shù)據(jù)包被發(fā)送給三個節(jié)點中的一個,而不是所有的主機。任播機制的優(yōu)勢在于源節(jié)點不需要了解服務(wù)節(jié)點或目前網(wǎng)絡(luò)的情況,而可以接收特定服務(wù),當一個節(jié)點無法工作時,帶有任播地址的數(shù)據(jù)包又被發(fā)往其他兩個主機節(jié)點,從任播成員中選擇合適的目的地節(jié)點取決于任播路由協(xié)議。

2 IPv6任播技術(shù)的分析

  任播技術(shù)是一種新的網(wǎng)絡(luò)應(yīng)用,它能夠支持把同樣的地址可以分配給多個節(jié)點去提供特定服務(wù)的以服務(wù)導向的地址,而帶有任播目的地地址的數(shù)據(jù)報能夠使用相同的任播地址并被傳給眾多節(jié)點中的任意一個。因特網(wǎng)研究任務(wù)組(IRTF)在1993年到RFC 1546中已經(jīng)定義了任播技術(shù)的作用:“主機向一個任播地址發(fā)送數(shù)據(jù)報,網(wǎng)絡(luò)負責盡力將數(shù)據(jù)報傳遞到至少一個,最好也是一個,按任播地址接收數(shù)據(jù)的服務(wù)器上。"采用任播機制的初衷是徹底去簡化在互聯(lián)網(wǎng)中尋找合適服務(wù)器的任務(wù);任播通信的基本概念是從物理主機設(shè)備中分離出的邏輯服務(wù)標識符,任播地址可以根據(jù)服務(wù)類型來分配,使得網(wǎng)絡(luò)服務(wù)擔當一個邏輯主機的角色。

  雖然目前任播技術(shù)的定義不是十分清楚,但是終端主機通過路由器是被基于包交換所決定。任播技術(shù)的概念并不局限于網(wǎng)絡(luò)層,它也可以在其他層實現(xiàn)(例如:應(yīng)用層),網(wǎng)絡(luò)層和應(yīng)用層的任播技術(shù)均有優(yōu)點和缺點。

3 IPv6任播技術(shù)的應(yīng)用

  適合于任播通信的應(yīng)用有很多,其中比較重要的一個應(yīng)用是服務(wù)器位置。發(fā)送端的主機可以在眾多同樣功能的主機中選擇其中一個,如果合理地利用任播路由方法去將任播需求均勻的分配到主機上,任播主機之中的負載分配目標可以達到。在任播主機中使用簡便的隨即選擇方法在網(wǎng)絡(luò)層任播技術(shù)中卻不會奏效,例如:CPU的負載,因為很難知道每個服務(wù)器的資源使用狀態(tài),而應(yīng)用層任播技術(shù)使用該方法卻是實用的。

  另一個重要應(yīng)用是服務(wù)位置,發(fā)送端主機可以通過說明任播地址去從多個任播主機中選擇與最佳的、最小時延的、最大輸出量的主機進行通信,例如:在諸如移動ad hoc網(wǎng)絡(luò)這類動態(tài)改變環(huán)境下運用該方法特別適用。通過網(wǎng)絡(luò)層的任播技術(shù),節(jié)點可以和合適的或是最近的服務(wù)器進行通信,并通過應(yīng)用層任播技術(shù)獲得該類服務(wù)。

  網(wǎng)絡(luò)層任播技術(shù)的優(yōu)勢在于可以提供令源節(jié)點在無須借助服務(wù)節(jié)點和網(wǎng)絡(luò)的情況下,能夠接收到特定服務(wù)機制的簡便方法。

4 IPv6任播技術(shù)的問題和解決方法

  IPv6任播技術(shù)仍然存在許多問題。首先是任播技術(shù)的使用場合和應(yīng)用任播技術(shù)的優(yōu)點,其次是基于IPv6的任播技術(shù)是一個路由協(xié)議并沒有被包括IPv6的規(guī)范說明中,而這正是使得任播技術(shù)應(yīng)用更廣泛不可獲缺的條件,路由器應(yīng)該在決定目的地網(wǎng)絡(luò)讓任播包可以合適的傳送地過程中起到主動作用。目前的任務(wù)是需要設(shè)計和應(yīng)用合適的任播路由協(xié)議到任播應(yīng)用場合之中,并讓互聯(lián)網(wǎng)能夠逐步去支持任播技術(shù)。例如:任播路由即使在因特網(wǎng)中只有少量的節(jié)點或路由器支持任播技術(shù)時也能夠恰當?shù)墓ぷ。所有基于TCP和一些基于UDP的協(xié)議在互聯(lián)網(wǎng)應(yīng)用中已經(jīng)說明了,端主機之間建立通信過程,并在交換信息過程中認為它們是一致的。

4.1 主機向任播成員通告參與的問題

  節(jié)點申明除了針對任播地址的公開路由信息以外,它們可以接受的數(shù)據(jù)報,而在IPv6的技術(shù)說明中節(jié)點必須是一個路由器。一個主機準備加入成為任播成員或離開時,它必須有不同的能力去向“最近”的任播路由器通告它目前的狀態(tài)(加入或離開)。

4.2 支持高層申明協(xié)議的問題

  因為任播技術(shù)擁有無狀態(tài)的特性,它不能確保屬于相同的任播地址的所有數(shù)據(jù)報會傳到同一個目的地節(jié)點,然而這將會導致的是諸如TCP這類的全狀態(tài)協(xié)議不被支持這一嚴重的問題。當主機向任播地址發(fā)起TCP連接時,接收端主機為了確認信息包,它將不能設(shè)置自己的任播地址作為源地址。IPv6技術(shù)說明中不允許任播地址來源于在包頭設(shè)置的源地址,這主要是由于IPv6任播地址沒有定義單獨的源節(jié)點。如果協(xié)議允許任播地址被設(shè)置到包頭的源地址,接受端主機在通信過程中將不能確信所有發(fā)送的數(shù)據(jù)包來自于同一個主機,也就是說主機的任播地址不能接收到包確認。

4.3 實現(xiàn)任播路由的問題

  目前現(xiàn)存任播技術(shù)的標準定義路由協(xié)議都很不清楚,因此在設(shè)計IPv6任播路由協(xié)議時還存在一些相關(guān)的技術(shù)問題。

 。╝)可量測性問題。由于任播成員不管它們實際的前綴時位置是分散的,所以針對任播地址的路由條目無法被聚集。因此針對任播地址的路由條目必須分別被存儲在路由器中,當任播地址得到廣泛應(yīng)用時,路由表會變得十分擁擠。

  (b)安全問題。維持任播成員關(guān)系特別重要,對主機獲得成員資格最簡單的方式是它只需廣播針對相關(guān)任播地址進入路由器的路由條目。但是這種方法有時會導致嚴重的安全問題,即任播主機可以自由的在路由表中添加或刪除路由條目。

 。╟)選擇任播成員資格的標準。不同的應(yīng)用需要不同的標準,如果應(yīng)用中需要快速響應(yīng),在源節(jié)點和任播節(jié)點之間的傳播時延就相當重要,任播成員資格的最近節(jié)點應(yīng)該作出選擇。任播路由機制的標準的選擇對于任播通信容量能力影響極大。

  任播地址重要的一個特點是任播地址必須從同一個地址空間分配作為一個單播地址,因而從單播地址中無法加以區(qū)別。RFC1546原來推薦的是分配任播機制本身的地址空間,為了希望極大地降低由于應(yīng)用中錯誤而無法辨識出任播地址的風險。當任播路由器配置時,互聯(lián)網(wǎng)中的一些路由器不可能處理任播地址,這些地址如果被分配在單播地址空間中,對于繼承的路由器針對通信去配置特殊的操作變得沒有必要。任播路由器去判斷接收包的目的地地址是否是任播地址或是單播地址是很困難的,設(shè)計路由協(xié)議也會存在問題的。

5 新的任播地址解析協(xié)議及應(yīng)用

  任播地址解析協(xié)議(AARP)可以滿足IPv6任播和高層協(xié)議(諸如:沒有必要去修改應(yīng)用和協(xié)議的TCP和UDP)。更明確的說,實行AARP的目的是為了解決專門用于通信單播地址的任播地址的問題。AARP用來作為一種寫在原始應(yīng)用編程接口(API)之上的動態(tài)鏈接庫(DLL),這種庫實際上是能夠提供一套與原始IPv6的API插槽相同的API插槽,并用來解決任播地址的AARP庫,它可以在呼叫原始API之前將任播地址轉(zhuǎn)換成相應(yīng)的通信單播地址。任播地址僅僅用于應(yīng)用層和AARP庫層,而在AARP庫層以下的層并不采用任播地址,只是處理轉(zhuǎn)換后的單播地址。

5.1 AARP的地址解析過程

  假設(shè)主機C想和任播地址為AA的另一個主機建立任播通信,任播地址解析過程如下:(1)主機C呼叫帶有參數(shù)的任播地址的socket API模塊(譬如:TCP中的connect( ) ),AARP庫的API替代API的套接層面而被呼叫。(2)AARP庫在被叫者的功能中將任播地址轉(zhuǎn)換成單播地址。(3)轉(zhuǎn)換后,AARP庫通過單播地址呼叫原來的socket API。(4)當通信被建立以后,從主機C發(fā)出的所有信息包的目的地地址都給被賦以單播地址,并傳輸給主機S。

5.2 AARP的地址轉(zhuǎn)換方法

  由IPv6的協(xié)議規(guī)范得知當不能自身確定任播地址時,連接任播地址的主機通信應(yīng)該至少從目的地主機接收到一個數(shù)據(jù)包。地址轉(zhuǎn)換有以下兩種方法:

5.2.1探測數(shù)據(jù)包法(由客戶端發(fā)起)

  主機在進行通信之前首先發(fā)送一個探測數(shù)據(jù)包給任播地址,它可以從返回數(shù)據(jù)包的源地址中得到目的地主機的單播地址。

5.2.2捎帶確認法(由服務(wù)器端發(fā)起)

  捎帶確認法指的是經(jīng)全雙工(雙向同時)數(shù)據(jù)鏈路,不用專門(確認)報文返回確認信息所用的技術(shù)。與一個方向的報文流有關(guān)的確認信息鉗在反方向正常攜帶數(shù)據(jù)的報文流中,當數(shù)據(jù)包從通信對端返傳回來時,任播主機將任播地址附加到數(shù)據(jù)包。通過檢查附加在數(shù)據(jù)包上的信息,可以確認數(shù)據(jù)包是從與任播地址相聯(lián)系的主機上發(fā)送出的。

  探測包方法中需要提供給探測數(shù)據(jù)包額外的網(wǎng)絡(luò)帶寬,這將會浪費網(wǎng)絡(luò)資源。與之相對的,捎帶確認方法需要修改應(yīng)用使得任播地址可以捎帶到數(shù)據(jù)包上。由于實際應(yīng)用中應(yīng)當避免應(yīng)用的任何修改,必須在AARP中包括單播地址來使用探測包法。

5.3 AARP的應(yīng)用

  為了解析任播地址到它相應(yīng)的單播地址,可以使用ICMPv6 ECHO REQUEST/REPLY包。由于任播地址不能設(shè)置到數(shù)據(jù)包頭的源地址,任播成員主機在ICMP包源地址區(qū)域上設(shè)置通信單播地址來代替任播地址。因此,接收發(fā)送到任播地址的ICMPv6 ECHO REQUEST/REPLY包的主機會附帶使用它的單播地址來發(fā)送這個數(shù)據(jù)包。如果AARP無法使用ICMPv6機制,從呼叫者主機需要配置特殊的軟件來相應(yīng)探測數(shù)據(jù)包。

  AARP庫也會提供一張高速緩沖存儲器表用來解析任播地址,當任播地址不能在表上隱藏時,AARP可以發(fā)送探測數(shù)據(jù)包去解析任播地址。解析后的單播地址和定時器一起存儲在高速緩沖存儲器表上,當超時后會被刪除。對客戶端而言,向任播地址的數(shù)據(jù)包被傳遞到同一個任播服務(wù)器,直到高速緩沖存儲器失效,與之相反,AARP從高速緩沖存儲器表返回解析后的單播地址,針對任播地址的條目在高速緩沖存儲器表失效后,探測數(shù)據(jù)包才會被發(fā)送。使用ICMP包的方法雖然簡便,但是不能解決安全的問題。即使惡意用戶捕獲ICMP ECHO REQUEST包并發(fā)送它,客戶端也只是用數(shù)據(jù)包的源地址。

6 結(jié)論

  目前,IPv6任播機制在實際通信中的應(yīng)用依然存在許多問題。為了解決這些問題,在本文中介紹了一種新的IPv6地址解析協(xié)議(AARP)將任播地址轉(zhuǎn)換為相應(yīng)的通信單播地址,并在轉(zhuǎn)換后可以直接用于實際的通信中,使得任播通信在不改變現(xiàn)有應(yīng)用設(shè)置協(xié)議的基礎(chǔ)上得以實現(xiàn)。

摘自 世界電信


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息