??? 摘 要: 提出了一種建立在移動(dòng)IP網(wǎng)絡(luò)中的Anycast通信模型" title="通信模型">通信模型,深入分析和討論了該模型的可行性及其有效性,并論證此模型可以支持在移動(dòng)IP網(wǎng)絡(luò)中建設(shè)大規(guī)模的Anycast組。
??? 關(guān)鍵詞: IPv6? Anycast? 移動(dòng)IP? 代理
?
??? Anycast是IPv6所提供的一種特殊網(wǎng)絡(luò)服務(wù),它允許服務(wù)申請(qǐng)者訪問(wèn)共享同一Anycast 地址所標(biāo)識(shí)的一組接口中最近的一個(gè)(這里的最近是按路由協(xié)議的距離量度來(lái)計(jì)算的)。Anycast 有廣泛的應(yīng)用,它在許多應(yīng)用領(lǐng)域都發(fā)揮著重要作用。隨著網(wǎng)絡(luò)新應(yīng)用、新服務(wù)的不斷涌現(xiàn),對(duì)它的需求也在不斷增長(zhǎng)。
IPv6提供的另外一種服務(wù)就是移動(dòng)IP服務(wù),它是隨著Internet的飛速發(fā)展與移動(dòng)計(jì)算機(jī)應(yīng)用的日益廣泛隨之孕育而生的技術(shù)。因?yàn)镮Pv6可以提供龐大的地址空間,這一優(yōu)勢(shì)給移動(dòng)IP技術(shù)的應(yīng)用帶來(lái)了無(wú)限大的應(yīng)用空間?,F(xiàn)在的問(wèn)題則是客戶如何在移動(dòng)IP網(wǎng)絡(luò)中獲取高質(zhì)量的網(wǎng)絡(luò)服務(wù)。毫無(wú)疑問(wèn),在移動(dòng)IP網(wǎng)絡(luò)中采用Anycast通信模型來(lái)提供網(wǎng)絡(luò)服務(wù)是一種行之有效的解決辦法。
1 相關(guān)工作
??? 參考文獻(xiàn)[4]和[5]首先提出了在移動(dòng)IP網(wǎng)絡(luò)中實(shí)現(xiàn)Anycast通信模型的方案。但是這兩種方案的提出都是建立在Mobile IPv6協(xié)議的早期版本基礎(chǔ)之上的,而且它們僅給出了理論性的描述,并沒(méi)有給出具體的實(shí)現(xiàn)過(guò)程。
??? 在這種情況下,本文針對(duì)移動(dòng)IPv6網(wǎng)絡(luò)提出了一種Anycast通信模型,本模型具有如下優(yōu)點(diǎn)與特點(diǎn):
??? (1) 本模型提出將一個(gè)子網(wǎng)內(nèi)的所有移動(dòng)代理都作為一個(gè)Anycast組的成員,并且此Anycast組被賦予一個(gè)知名Anycast地址方案,此方案具有如下優(yōu)點(diǎn):
??? ① 當(dāng)一個(gè)主機(jī)發(fā)送一個(gè)Anycast地址轉(zhuǎn)換請(qǐng)求時(shí),此請(qǐng)求會(huì)被路由到距離自己最近的擁有Anycast移動(dòng)成員的歸屬代理上,然后此歸屬代理按照最優(yōu)原則選擇一個(gè)最優(yōu)的Anycast移動(dòng)成員提供Anycast服務(wù),這樣就可以保證所提供服務(wù)質(zhì)量最高、響應(yīng)時(shí)間" title="響應(yīng)時(shí)間">響應(yīng)時(shí)間最短。
??? ② Anycast服務(wù)代理/移動(dòng)節(jié)點(diǎn)" title="移動(dòng)節(jié)點(diǎn)">移動(dòng)節(jié)點(diǎn)無(wú)需多播或者廣播Router Advertisement/Solicitation Advertisement,而移動(dòng)節(jié)點(diǎn)則可以通過(guò)知名Anycast地址直接申請(qǐng)加入Anycast成員或者注冊(cè)操作,這樣做既解決了Router Advertisement/Solicitation Advertisement帶來(lái)的資源消耗問(wèn)題,同時(shí)也大大提高了整個(gè)通信模型的性能和效率;
??? (2)它允許移動(dòng)節(jié)點(diǎn)動(dòng)態(tài)地加入或離開(kāi)某個(gè)Anycast組,不受任何物理位置的限制,真正地提供了高質(zhì)量、響應(yīng)速度快的移動(dòng)Anycast服務(wù);
??? (3)在本模型中,Anycast距離的度量標(biāo)準(zhǔn)可以根據(jù)不同的服務(wù)進(jìn)行相應(yīng)的變化,從而增加了Anycast服務(wù)的靈活性以及高效性;
??? (4)在本模型中不同客戶端" title="客戶端">客戶端發(fā)出的服務(wù)請(qǐng)求會(huì)被不同的最優(yōu)Anycast移動(dòng)節(jié)點(diǎn)處理,這就保證了Anycast服務(wù)請(qǐng)求可以均衡地分布在Anycast移動(dòng)成員之間而得到高效處理,從而實(shí)現(xiàn)負(fù)載平衡;
??? (5) 此外,本模型中的加入消息、離開(kāi)消息的數(shù)據(jù)傳輸只需要跨越很小的物理網(wǎng)絡(luò)并且此類(lèi)消息的數(shù)據(jù)傳輸量也非常小,因此,對(duì)網(wǎng)絡(luò)性能基本沒(méi)有影響。
??? 下面對(duì)此通信模型進(jìn)行詳細(xì)的討論和分析。
2 Anycast服務(wù)在移動(dòng)IP網(wǎng)絡(luò)中的通信
2.1通信模型
??? 本模型的目的在于在移動(dòng)IP網(wǎng)絡(luò)中實(shí)現(xiàn)Anycast服務(wù)。通過(guò)上述分析可知,實(shí)現(xiàn)移動(dòng)IP技術(shù)的關(guān)鍵在于如何高效地實(shí)施上述五個(gè)主要功能,因?yàn)檫@五個(gè)功能的實(shí)現(xiàn)可能會(huì)消耗大量的資源,而成為在移動(dòng)IP網(wǎng)絡(luò)中實(shí)現(xiàn)Anycast服務(wù)模型的瓶頸。因此,本模型提出將一個(gè)子網(wǎng)內(nèi)的所有移動(dòng)代理都作為一個(gè)Anycast組的組成員,并且此Anycast組被賦予一個(gè)知名Anycast地址,記做AgentA。如圖1所示。
?
??? 在此模型中,每個(gè)移動(dòng)節(jié)點(diǎn)都可以申請(qǐng)加入一個(gè)Anycast組以提供相應(yīng)的Anycast服務(wù)。這樣,由于本模型將所有移動(dòng)代理都作為一個(gè)知名Anycast組的成員,因此,代理/移動(dòng)節(jié)點(diǎn)無(wú)需多播或者廣播Router Advertisement/Solicitation Advertisement,而移動(dòng)節(jié)點(diǎn)無(wú)論是在本地還是在外區(qū),都可以直接通過(guò)知名Anycast地址申請(qǐng)加入Anycast組或者注冊(cè)操作,這樣做既解決了傳輸Router Advertisement/Solicitation Advertisement等消息帶來(lái)的資源消耗問(wèn)題,同時(shí)也大大提高了整個(gè)通信模型的性能和效率。
2.2 Anycast組成員的加入和注銷(xiāo)
??? 在本模型中,移動(dòng)成員可以自由地申請(qǐng)加入或者離開(kāi)一個(gè)Anycast組。一個(gè)移動(dòng)節(jié)點(diǎn)申請(qǐng)加入一個(gè)Anycast組的過(guò)程可以描述如下:
??? (1) 移動(dòng)節(jié)點(diǎn)首先發(fā)送一個(gè)Join消息,此消息包括本身的Unicast地址以及申請(qǐng)加入的Anycast地址,此消息的目的地址為AgentA,這樣此消息會(huì)被路由到距離(本模型采用跳為度量單位)此移動(dòng)節(jié)點(diǎn)最近的代理上;
??? (2) 距離最近的代理接收到此Join消息之后,首先對(duì)此消息進(jìn)行身份認(rèn)證,如果認(rèn)證通過(guò),則分成如下兩種情況來(lái)處理:①如果此代理為移動(dòng)節(jié)點(diǎn)的歸屬代理,則檢查其本身是否已經(jīng)具有此Anycast地址的相關(guān)紀(jì)錄,如果有,就將此移動(dòng)節(jié)點(diǎn)的相關(guān)信息加入到該Anycast地址的相關(guān)記錄中,否則,它首先創(chuàng)建有關(guān)此Anycast地址的相關(guān)記錄,然后再將此移動(dòng)節(jié)點(diǎn)的相關(guān)信息加入到新創(chuàng)建的Anycast地址的相關(guān)記錄中去,同時(shí)它還要通知其他Anycast路由器這個(gè)新Anycast組成員的加入以便其及時(shí)更新Anycast路由信息;②如果此代理為外區(qū)代理,則它首先和此移動(dòng)節(jié)點(diǎn)的歸屬代理建立連接,在驗(yàn)證其身份之后,它會(huì)將Join消息轉(zhuǎn)發(fā)給歸屬代理進(jìn)行處理,歸屬代理的處理過(guò)程同a;
??? (3) 最后,移動(dòng)節(jié)點(diǎn)的歸屬代理會(huì)發(fā)送一個(gè)Accept消息給它,此時(shí),該移動(dòng)節(jié)點(diǎn)具有了Anycast組移動(dòng)成員的身份。
至此,一個(gè)移動(dòng)節(jié)點(diǎn)申請(qǐng)成為一個(gè)Anycast組移動(dòng)成員的過(guò)程結(jié)束。
??? 下面再討論Anycast移動(dòng)成員如何從Anycast組注銷(xiāo)。一個(gè)Anycast移動(dòng)成員從某個(gè)Anycast組注銷(xiāo)的過(guò)程可以描述如下:
??? (1) Anycast移動(dòng)成員首先發(fā)送一個(gè)Leave消息,此消息包括本身的Unicast地址以及申請(qǐng)注銷(xiāo)的Anycast地址,此消息的目的地址為AgentA,這樣此消息會(huì)被路由到距離此移動(dòng)節(jié)點(diǎn)最近的代理上;
??? (2) 距離最近的代理接收到此Leave消息之后,首先對(duì)此消息進(jìn)行身份認(rèn)證,如果認(rèn)證通過(guò),則分成如下兩種情況來(lái)處理:①如果此代理為Anycast移動(dòng)成員的歸屬代理,則檢查其本身是否已經(jīng)具有此Anycast地址的相關(guān)記錄,如果有,則從其相關(guān)記錄中刪除此Anycast移動(dòng)節(jié)點(diǎn)的相關(guān)信息,并且檢查此時(shí)Anycast地址的相關(guān)記錄是否為空,如果為空,則通知其他Anycast路由器它現(xiàn)在已經(jīng)沒(méi)有關(guān)于此Anycast組成員的相關(guān)信息,這樣,這些Anycast路由器就可以及時(shí)地更新Anycast路由信息;②如果此代理為外區(qū)代理,則它首先與此Anycast移動(dòng)成員的歸屬代理建立連接,在驗(yàn)證其身份之后,它會(huì)將Leave消息轉(zhuǎn)發(fā)給歸屬代理進(jìn)行處理,歸屬代理的處理過(guò)程同①;
??? (3) 最后,歸屬代理會(huì)發(fā)送一個(gè)OK消息給Anycast移動(dòng)成員,此時(shí),此移動(dòng)成員已經(jīng)注銷(xiāo)了Anycast組成員的身份。
??? 至此,一個(gè)Anycast移動(dòng)成員從某個(gè)Anycast組注銷(xiāo)的過(guò)程結(jié)束。
2.3 路由分析
??? 當(dāng)一個(gè)客戶端申請(qǐng)Anycast服務(wù)時(shí),它首先需要發(fā)送一個(gè)地址轉(zhuǎn)換請(qǐng)求,即將提供Anycast服務(wù)的Anycast地址轉(zhuǎn)換為某個(gè)Anycast移動(dòng)成員的Unicast地址,此地址轉(zhuǎn)換請(qǐng)求的源地址為客戶端的Unicast地址,目的地址為提供此Anycast服務(wù)的Anycast地址。此請(qǐng)求通過(guò)Anycast路由,會(huì)被距離客戶端最近的擁有此Anycast組成員的歸屬代理截獲,歸屬代理接收到此地址轉(zhuǎn)換請(qǐng)求后,首先查詢此Anycast地址的相關(guān)記錄,按照最優(yōu)原則選擇一個(gè)位于本地的Anycast移動(dòng)成員,然后將此地址轉(zhuǎn)換請(qǐng)求轉(zhuǎn)發(fā)給此最優(yōu)Anycast移動(dòng)成員,此移動(dòng)成員接收到此請(qǐng)求后,將自身的Unicast地址返回給客戶端。
??? 客戶端在接收到最優(yōu)Anycast移動(dòng)成員的Unicast地址后,利用這個(gè)Unicast地址與此移動(dòng)成員之間建立連接,其方式同正常的移動(dòng)IP通信相同,這里不再贅述。
??? 由于移動(dòng)節(jié)點(diǎn)可能在不同的網(wǎng)絡(luò)之間頻繁移動(dòng),因此,當(dāng)一個(gè)正在提供Anycast服務(wù)的Anycast移動(dòng)成員移動(dòng)到其他區(qū)域上時(shí),它會(huì)發(fā)送一個(gè)Register消息,其消息的目的地址是AgentA,這樣此Register消息會(huì)被它所在區(qū)域內(nèi)的距離最近的外區(qū)代理所截獲。此代理截獲該消息之后,它會(huì)與此移動(dòng)成員的歸屬代理建立連接,并驗(yàn)證其身份,如果身份驗(yàn)證通過(guò),它會(huì)記錄下此移動(dòng)成員的Visitor身份,同時(shí),與移動(dòng)成員的歸屬代理建立一個(gè)隧道以便傳輸發(fā)送到此移動(dòng)成員的數(shù)據(jù)包。
3 性能分析
??? 為了驗(yàn)證本通信模型的有效性以及高效性,筆者在IPv6模擬移動(dòng)網(wǎng)絡(luò)中實(shí)現(xiàn)了此模型,并將從此模型中獲取Anycast服務(wù)的TRT與隧道模式下移動(dòng)IPv6網(wǎng)絡(luò)中獲取Anycast服務(wù)的TRT進(jìn)行了比較與分析。
??? 在IPv6模擬移動(dòng)網(wǎng)絡(luò)中,將48個(gè)節(jié)點(diǎn)(IBM X Series PC機(jī))連接到百兆以太網(wǎng)上,同時(shí)利用Modelnet來(lái)模仿廣域網(wǎng)物理拓?fù)浣Y(jié)構(gòu)。在試驗(yàn)中,每個(gè)節(jié)點(diǎn)都是一個(gè)路由器,并且都與若干臺(tái)移動(dòng)主機(jī)相連,其中一個(gè)路由器要與多于6臺(tái)移動(dòng)主機(jī)相連,用于完成在本模型以及隧道模式下移動(dòng)IPv6通信模型中的Anycast服務(wù),這些移動(dòng)主機(jī)的處理能力都相同,它們可以自由地從一個(gè)網(wǎng)段移動(dòng)到另外一個(gè)網(wǎng)段。設(shè)定一個(gè)Anycast組包括6個(gè)成員,為了有效地測(cè)試網(wǎng)絡(luò)擁塞情況,設(shè)路由器(代理)之間鏈路層通信能力為10Mb/s,客戶端與路由器以及Anycast移動(dòng)組成員與路由器(代理)之間的鏈路層通信能力為5Mb/s。
??? 在上述的實(shí)驗(yàn)環(huán)境中,實(shí)現(xiàn)了本模型以及隧道模式下移動(dòng)IPv6網(wǎng)絡(luò)中的Anycast服務(wù)。在初始狀態(tài)下,這兩種移動(dòng)IPv6通信模型中的歸屬區(qū)域內(nèi)都包括6個(gè)Anycast移動(dòng)組成員,這些組成員都是彼此的鏡像,它們都可以處理客戶的服務(wù)請(qǐng)求。在隧道模式下,筆者采用跳數(shù)作為距離度量單位,即把當(dāng)前距離歸屬代理最近(即跳數(shù)最?。┑腁nycast移動(dòng)組成員作為最優(yōu)Anycast移動(dòng)組成員。
??? 本模型的性能分析" title="性能分析">性能分析是通過(guò)在IPv6模擬環(huán)境下比較客戶在本模型以及隧道模式下移動(dòng)IPv6模型中獲取同樣Anycast服務(wù)(如文件服務(wù))的TRT值來(lái)實(shí)現(xiàn)的。因?yàn)閺挠脩艚嵌葋?lái)看,所提供服務(wù)的TRT值越小,用戶認(rèn)為服務(wù)質(zhì)量越好。這樣,得到圖2所示的TRT性能分析圖(R=TRTNormal/TRT)。
?
??? 其中,R為在本模型中與隧道模式下移動(dòng)IPv6通信模型中客戶獲取同樣Anycast服務(wù)的TRT值的比值,TRTNormal為在隧道模式下移動(dòng)IPv6通信模型中客戶獲取Anycast服務(wù)的TRT值,TRT為在本模型中客戶端獲取Anycast服務(wù)的TRT值。從上圖可以看出,R的比值趨于1.125。這個(gè)試驗(yàn)結(jié)果表明,在本模型中Anycast移動(dòng)組成員提供Anycast服務(wù)的整體響應(yīng)時(shí)間優(yōu)于在隧道情況下提供Anycast服務(wù)的響應(yīng)時(shí)間。
??? Anycast與移動(dòng)IP網(wǎng)絡(luò)都是IPv6的新特性,它們可以支持許多服務(wù)。本文在IPv6的模擬環(huán)境下,提出了一種新的通信模型,用以實(shí)現(xiàn)移動(dòng)IP網(wǎng)絡(luò)中的Anycast服務(wù)。這兩種技術(shù)的結(jié)合具有廣泛的應(yīng)用前景,但是它還存在一些問(wèn)題,有待進(jìn)一步探討和研究。
參考文獻(xiàn)
[1] KATABI D, WROCLAWSKI J. A framework for scalable global IP-Anycast(GIA)[C]. Proceeding of SIGCOMM. New York: ACM Press, 2000:3-15.
[2] ?CASTRO M, DRUSCHEL P, KERMARREC A M, et al. Scalable application-level anycast for highly dynamic groups[D]. Prentice Hall, 2003.
[3] ?LI Z, WEI Y, LI Xiao Ming. Anycast——another communication model for IP[J]. Journal of Computer Research and Development, 2003,40(6):784-790(Ch).
[4] ?HABERMAN B, NORDMARK. IPv6 anycast binding using return routability[J]. Internet Draft, 2002.
[5] ?AFERGAN M, WEIN J, LAMEYER A. Experience with ??some principles for building an internet-scale reliable system[C]. In Proceeding of Second Workshop on Real, Large Distributed System, Dec. 2005.
[6] ?BALLANI H, FRANCIS P. Towards a global IP anycast Service[C]. In Proceeding of the 2005 conference on Applications, Technologies, Architectures, and protocols for ?computer communications. Aug. 2005.