IPv6任播技術(shù)及其任播地址解析協(xié)議概述

王建 李方偉

摘要:

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

1 IPv6地址類型的概述

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

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

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

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

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

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

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

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

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

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

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

4.1 主機(jī)向任播成員通告參與的問題

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

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

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

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

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

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

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

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

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

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

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

5.1 AARP的地址解析過程

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

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

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

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

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

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

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

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

5.3 AARP的應(yīng)用

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

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

6 結(jié)論

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

摘自 世界電信


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

     

      最熱通信招聘

      最新招聘信息