穆晏如,江凌云
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
信息技術(shù)飛速發(fā)展的20年間,網(wǎng)絡(luò)技術(shù)和應(yīng)用的更新迭代影響著現(xiàn)代信息社會(huì)。其中,互聯(lián)網(wǎng)以其開(kāi)放透明、資源共享等特性分布最廣,是現(xiàn)代通信網(wǎng)絡(luò)的重要組成部分,以其分層結(jié)構(gòu)為藍(lán)本的新型網(wǎng)絡(luò)也在各領(lǐng)域發(fā)揮著重要的作用。但隨著互聯(lián)網(wǎng)與人類社會(huì)生活的深度融合,傳輸和存儲(chǔ)的成本降低,信息爆炸式的增長(zhǎng),互聯(lián)網(wǎng)應(yīng)用層出不窮,人們對(duì)于互聯(lián)網(wǎng)的使用需求已不僅僅是“盡力而為”的端到端傳輸。傳統(tǒng)的互聯(lián)網(wǎng)在應(yīng)對(duì)高移動(dòng)等新型應(yīng)用場(chǎng)景時(shí)暴露出許多不足,引發(fā)了未來(lái)網(wǎng)絡(luò)體系及其核心技術(shù)的研究熱潮。
IP地址既標(biāo)識(shí)網(wǎng)絡(luò)實(shí)體的身份,也標(biāo)識(shí)其在網(wǎng)絡(luò)中的位置,這樣的設(shè)計(jì)為早期的互聯(lián)網(wǎng)“會(huì)話”提供了極大的便利。但隨著互聯(lián)網(wǎng)用戶激增、大量移動(dòng)設(shè)備接入,IP地址的雙重身份導(dǎo)致核心路由器路由表項(xiàng)急劇擴(kuò)張,傳統(tǒng)的移動(dòng)解決方案Mobile IP流量繞行和切換延時(shí)的弊端凸顯。為了解決這些問(wèn)題,Cisco提出了名址分離的思想[1]。通過(guò)對(duì)可尋址網(wǎng)絡(luò)元素的實(shí)體(例如網(wǎng)絡(luò)設(shè)備、內(nèi)容、服務(wù))進(jìn)行統(tǒng)一的身份標(biāo)識(shí),在IP層之上替代IP地址成為“瘦腰”部分來(lái)更好地支持網(wǎng)絡(luò)的移動(dòng)性。將網(wǎng)絡(luò)實(shí)體的身份與位置解耦后,網(wǎng)絡(luò)實(shí)體的身份不會(huì)隨著位置的變化而改變,名稱與地址不再是一一對(duì)應(yīng)的關(guān)系,而是可注冊(cè)、可更改、可查詢的靈活綁定,所以需要設(shè)計(jì)一個(gè)映射系統(tǒng)來(lái)管理名稱和地址的綁定,為網(wǎng)絡(luò)提供解析服務(wù)。
地址采用層次化的編址方式能夠有效地實(shí)現(xiàn)路由表項(xiàng)的聚合,大多數(shù)的研究中仍然沿用IP地址。身份標(biāo)識(shí)采用扁平化的名稱空間可以實(shí)現(xiàn)自認(rèn)證,同時(shí)可以避免名稱空間的內(nèi)部結(jié)構(gòu)對(duì)移動(dòng)性的限制。DNS利用域名的層級(jí)組成樹(shù)狀目錄結(jié)構(gòu),來(lái)完成域名到IP地址的解析查找,所以不適用于扁平化標(biāo)識(shí)與地址的映射。此外,DNS主要通過(guò)大量的緩存來(lái)提高解析性能,在移動(dòng)場(chǎng)景下,名稱與地址的綁定緩存失效過(guò)快,而DNS的更新傳播需要一天或更長(zhǎng)時(shí)間,這樣會(huì)導(dǎo)致服務(wù)器的負(fù)載增加,查詢的時(shí)延提高。所以無(wú)法沿用DNS構(gòu)建名稱與地址的映射系統(tǒng)。
該文提出了一種基于位置關(guān)聯(lián)Chord的名址分離映射系統(tǒng),將映射綁定信息分級(jí)管理,最大限度地減少更新流量對(duì)網(wǎng)絡(luò)的影響,同時(shí)在Chord算法中嵌入位置信息便于快速查找,解決Chord物理網(wǎng)絡(luò)和邏輯網(wǎng)絡(luò)的失配問(wèn)題。
映射解析服務(wù)的理想狀態(tài)是能夠在任何時(shí)間任何地點(diǎn)快速準(zhǔn)確地獲得用戶查找的網(wǎng)絡(luò)實(shí)體的位置信息,為實(shí)現(xiàn)這一目標(biāo),主流的研究思路是將標(biāo)識(shí)與地址的綁定信息復(fù)制后尋找合適的位置托管。這種思路存在兩個(gè)技術(shù)難點(diǎn),一是綁定信息的副本越多,用戶越能夠在就近的位置查詢到服務(wù)的位置,但是副本過(guò)多,綁定信息的更新流量將占用大量的網(wǎng)絡(luò)帶寬,且不易同步,導(dǎo)致較高的誤查詢率。二是什么位置適合托管綁定信息?;谠撍悸?,許多研究組織進(jìn)行了很多的嘗試和實(shí)踐。
主流的方案分為兩大類,一類是非結(jié)構(gòu)化副本放置方案,包括隨機(jī)定位副本放置的DMap[2],關(guān)注需求的動(dòng)態(tài)副本放置方案Auspice[3],以及地理感知分層聚合的GMap[4]。這類方案復(fù)雜度較高,容易占用大量的網(wǎng)絡(luò)資源,而且需要借助緩存策略和搜索方法。另一類是結(jié)構(gòu)化副本放置方案,主要是借助于分布式哈希表(distributed hash table,DHT)的思想,按照一定的規(guī)則分割映射表,每個(gè)存儲(chǔ)節(jié)點(diǎn)維護(hù)一部分的數(shù)據(jù)和鄰居信息。其中,LISP—DHT[5]就是利用DHT的組織和查詢功能實(shí)現(xiàn)映射信息管理和解析的分布式系統(tǒng),基于可聚合的層次ID,將含ID前綴的最大值作為一個(gè)域的標(biāo)識(shí),每個(gè)域選取一個(gè)權(quán)威服務(wù)器組建Chord[6]環(huán),借助Chord協(xié)議來(lái)實(shí)現(xiàn)域間的查找。
Chord協(xié)議是一種經(jīng)典的P2P協(xié)議,只執(zhí)行一個(gè)操作:給對(duì)象分配一個(gè)Chord ID,將其映射到一個(gè)哈希環(huán)上。在映射系統(tǒng)中,對(duì)象分為兩類,服務(wù)器節(jié)點(diǎn)和需要存儲(chǔ)的名稱和地址綁定條目。將名稱的ID映射到哈希環(huán)上后,順時(shí)針找到最近的服務(wù)器節(jié)點(diǎn),將自己的綁定條目存儲(chǔ)到該服務(wù)器上。每個(gè)節(jié)點(diǎn)會(huì)維護(hù)一個(gè)Finger表,相當(dāng)于哈希環(huán)上的路由表,其中記錄了鄰近節(jié)點(diǎn)的信息便于查詢和路由。Chord可以實(shí)現(xiàn)負(fù)載均衡,在節(jié)點(diǎn)離開(kāi)和新節(jié)點(diǎn)加入時(shí)能保持系統(tǒng)穩(wěn)定性。但由于Chord是基于ID的哈希值來(lái)構(gòu)建環(huán)結(jié)構(gòu),與底層的物理網(wǎng)絡(luò)脫離,會(huì)導(dǎo)致出現(xiàn)物理上的最短距離和邏輯上的最短距離不一致的現(xiàn)象[7]。基于這個(gè)問(wèn)題,該文提出的方案結(jié)合兩級(jí)映射的思路,在Finger表中添加網(wǎng)絡(luò)號(hào),將物理位置信息嵌入邏輯網(wǎng)絡(luò)中,同時(shí)改進(jìn)了搜索方法,能夠有效降低查找時(shí)延。
基于位置關(guān)聯(lián)Chord的映射系統(tǒng)修改了LISP—DHT系統(tǒng),讓域內(nèi)的所有解析服務(wù)器都映射到Chord環(huán)上,而不是只有一個(gè)權(quán)威解析服務(wù)器,這樣可以降低單點(diǎn)失效的風(fēng)險(xiǎn)。如圖1所示,下層是以地理區(qū)域劃分的物理網(wǎng)絡(luò),上層為Chord結(jié)構(gòu)。名址分離映射系統(tǒng)與域名解析系統(tǒng)最大的不同就是,域名與IP地址的綁定關(guān)系相對(duì)固定,少有變動(dòng),而名稱與地址的綁定關(guān)系正好相反。
圖1 映射系統(tǒng)架構(gòu)
在實(shí)際的移動(dòng)應(yīng)用場(chǎng)景中,局域移動(dòng)仍然占據(jù)了很高的比例[8]。由于區(qū)域網(wǎng)絡(luò)劃分之后網(wǎng)絡(luò)地址(network address,NA)固定不變,所以采用域內(nèi)
名址分離映射系統(tǒng)設(shè)置副本是為了增加查詢時(shí)鄰近命中的概率,增加副本的個(gè)數(shù)必然可以增大命中的概率,但是設(shè)備移動(dòng)帶來(lái)的綁定條目的更新會(huì)反過(guò)來(lái)限制查詢的效率。當(dāng)移動(dòng)大多發(fā)生在地理區(qū)域內(nèi)部時(shí),如果區(qū)域內(nèi)部映射服務(wù)器數(shù)量有限,可以采用泛洪的方式將
當(dāng)
DHT中物理網(wǎng)絡(luò)與邏輯網(wǎng)絡(luò)的“失配”問(wèn)題會(huì)造成查詢時(shí)“繞遠(yuǎn)路”[9],例如圖1中N4與N23在同一個(gè)地理區(qū)域網(wǎng)絡(luò)內(nèi),彼此只相隔一跳的距離,但是在Chord環(huán)上需要沿順時(shí)針進(jìn)行遞歸查找。為了解決這個(gè)問(wèn)題,對(duì)Chord節(jié)點(diǎn)的finger表進(jìn)行了修改,如表1所示。
表1 Chord節(jié)點(diǎn)路由表結(jié)構(gòu)
由于映射服務(wù)器所屬的網(wǎng)絡(luò)地址是固定不變的,所以通過(guò)在節(jié)點(diǎn)路由表項(xiàng)中增加后繼節(jié)點(diǎn)的網(wǎng)絡(luò)地址,來(lái)聚合Chord節(jié)點(diǎn)路由表,同時(shí)跳出邏輯網(wǎng)絡(luò)的遞歸搜索來(lái)避免“繞遠(yuǎn)路”的問(wèn)題。
(1)注冊(cè):設(shè)備新入網(wǎng)時(shí),需要向最近的映射服務(wù)器注冊(cè)自己的名稱地址綁定信息,服務(wù)器收到后,向網(wǎng)絡(luò)中部署副本,過(guò)程如圖2所示。①終端連接區(qū)域內(nèi)路由器,得到分配的IP地址,成功入網(wǎng)。②該路由器向最近的映射服務(wù)器發(fā)送分組消息,注冊(cè)
圖2 映射系統(tǒng)注冊(cè)過(guò)程
(2)查詢解析:當(dāng)一臺(tái)設(shè)備初次連接該ID標(biāo)識(shí)的設(shè)備時(shí),需要向鄰近的映射服務(wù)器發(fā)起解析請(qǐng)求,映射服務(wù)器接收到請(qǐng)求后查找本地緩存,如果存有ID的條目則返回IP,如果沒(méi)有,開(kāi)始查詢,流程如圖3所示。
圖3 映射解析流程
步驟1:該映射服務(wù)器向本域內(nèi)的其他映射服務(wù)器發(fā)起查詢請(qǐng)求,如果存有
步驟2:計(jì)算hash(ID),得到K10,在本域內(nèi)查找邏輯網(wǎng)絡(luò)中距離K10最近的服務(wù)器節(jié)點(diǎn),本例中為N5,轉(zhuǎn)步驟3;
步驟3:遍歷N5的Chord節(jié)點(diǎn)路由表,逐條搜索,如果命中(即如果存在N10,則K10應(yīng)當(dāng)存儲(chǔ)在N10上),則返回
步驟4:從NA中獲取
(3)移動(dòng)更新:當(dāng)設(shè)備在區(qū)域內(nèi)移動(dòng)時(shí),
(4)域間緩存:設(shè)置綁定信息副本的目的是為了提高鄰近命中的幾率,當(dāng)大量的域間解析請(qǐng)求到達(dá)N17查詢K10時(shí),說(shuō)明域外對(duì)于此ID的連接需求較大,N17可以沿Chord環(huán)順時(shí)針傳送
(1)
設(shè)映射服務(wù)器節(jié)點(diǎn)數(shù)為N,邏輯網(wǎng)絡(luò)為L(zhǎng)={l1,l2,…,li,…,lN},1≤i≤N。其中l(wèi)i代表Chord環(huán)上的節(jié)點(diǎn),且l1≤l2≤…≤li≤…≤lN,即l2是l1的后繼節(jié)點(diǎn),lN是l1的前驅(qū)節(jié)點(diǎn),其他關(guān)系類似。設(shè)物理區(qū)域網(wǎng)絡(luò)的個(gè)數(shù)為M,M≤N,物理網(wǎng)絡(luò)為G={g1,g2,…,gj,…,gM},1≤j≤M。其中g(shù)j表示一個(gè)網(wǎng)絡(luò)的網(wǎng)絡(luò)地址NA。由于哈希函數(shù)是隨機(jī)映射關(guān)系,所以不失一般性,假設(shè)服務(wù)器節(jié)點(diǎn)均勻地分布在各區(qū)域網(wǎng)絡(luò)中,每個(gè)區(qū)域網(wǎng)絡(luò)中有n個(gè)服務(wù)器節(jié)點(diǎn),其中n=N/M。在不考慮域間緩存的情況下,假設(shè)lj1(1≤j1≤N)查找存儲(chǔ)Kα映射綁定條目的服務(wù)器節(jié)點(diǎn),lj1在物理區(qū)域pj上,其中pj上的邏輯網(wǎng)絡(luò)節(jié)點(diǎn)集合為{lj1,lj2,…,ljn}?L,lj1≤lj2≤…≤ljn。根據(jù)查詢解析流程可得,如果Kα在pj中沒(méi)有命中托管服務(wù)器節(jié)點(diǎn),則會(huì)搜索ljn的Chord路由表,查找與Kα最鄰近的節(jié)點(diǎn)所在的物理網(wǎng)絡(luò),并重復(fù)以上流程。Chord算法中指出,一個(gè)節(jié)點(diǎn)對(duì)順時(shí)針?lè)较蛏显娇拷约何恢玫腃hord區(qū)域,了解的節(jié)點(diǎn)數(shù)目越多[10]。所以可得,整個(gè)查找Kα的過(guò)程中,物理區(qū)域網(wǎng)絡(luò)上的路徑是單向的[11],而且是可以收斂的,從這個(gè)方面來(lái)說(shuō),位置關(guān)聯(lián)Chord優(yōu)于原始Chord。
(2)
該文采用OMNET++[13]進(jìn)行仿真實(shí)驗(yàn),包括在該環(huán)境下開(kāi)發(fā)的INET框架[14]和Oversim框架[15],使用C++語(yǔ)言編寫(xiě)。OMNET++是一個(gè)離散時(shí)間仿真環(huán)境,主要應(yīng)用于模擬通信網(wǎng)絡(luò)領(lǐng)域,是廣泛普及的網(wǎng)絡(luò)仿真平臺(tái)[13],因其擁有豐富的GUI能夠清楚地顯示網(wǎng)絡(luò)拓?fù)浜瓦B接信息而被廣泛使用。OMNET++提供了用于描述實(shí)際系統(tǒng)結(jié)構(gòu)的工具,包括分層次嵌入式模塊、靈活的模塊參數(shù)等。模塊可以復(fù)用、可以嵌套,嵌套的深度沒(méi)有限制,這些都可以通過(guò)NED[13]語(yǔ)言描述。INET框架是一個(gè)開(kāi)源的通信網(wǎng)絡(luò)仿真包,由密歇根大學(xué)開(kāi)發(fā)的一個(gè)AS級(jí)拓?fù)洚a(chǎn)生器,該框架包括從物理層到應(yīng)用層的網(wǎng)絡(luò)協(xié)議,主要用于互聯(lián)網(wǎng)的仿真[15]。Oversim是建立在INET框架上的P2P協(xié)議仿真框架,包含了Chord、Pastry協(xié)議的實(shí)現(xiàn),具有靈活性、可擴(kuò)展性、不同的路由模式等特點(diǎn)[15]。
設(shè)置區(qū)域個(gè)數(shù)為20,依次增加映射服務(wù)器節(jié)點(diǎn)規(guī)模,可得平均查詢路徑長(zhǎng)與平均查詢時(shí)延,如圖4、圖5所示。與理論分析結(jié)果一致,隨著N的增加,平均查詢路徑長(zhǎng)逐漸增大,而且查詢時(shí)延與查詢的跳數(shù)相關(guān),也呈增長(zhǎng)趨勢(shì)。由于位置關(guān)聯(lián)Chord在邏輯節(jié)點(diǎn)的路由表中增加了物理拓?fù)涞男畔?,域間的查詢是單向的,提高了查詢效率。從圖4中可以看出,實(shí)際的位置關(guān)聯(lián)Chord的查詢路徑長(zhǎng)與理論值存在一定的差距,這是由于在理論分析時(shí),默認(rèn)域內(nèi)的服務(wù)器節(jié)點(diǎn)均勻地分布在Chord環(huán)上,這在實(shí)際的應(yīng)用環(huán)境中是比較難達(dá)到的理想狀態(tài)。
圖4 M=20平均查詢路徑長(zhǎng)測(cè)試
圖5 M=20平均查詢時(shí)延測(cè)試
設(shè)定系統(tǒng)中映射服務(wù)器節(jié)點(diǎn)個(gè)數(shù)為2 000,逐漸增加區(qū)域的個(gè)數(shù),可得映射解析性能,如圖6、圖7所示。從圖中可以看出,LISP-DHT方案隨著區(qū)域個(gè)數(shù)的增加,查詢路徑長(zhǎng)沒(méi)有太大的變化,但查詢會(huì)有更大的概率跨域進(jìn)行,域間的傳輸時(shí)延比域內(nèi)的傳輸時(shí)延大40 ms,所以查詢時(shí)延有增加的趨勢(shì)。位置關(guān)聯(lián)Chord方案隨著區(qū)域個(gè)數(shù)的增加,每個(gè)節(jié)點(diǎn)路由表中保存的區(qū)域相關(guān)信息更多,更加能夠快速地命中映射條目,提高系統(tǒng)查詢解析的性能。
圖6 平均查詢路徑長(zhǎng)測(cè)試
圖7 平均查詢時(shí)延測(cè)試
設(shè)計(jì)了一個(gè)基于位置關(guān)聯(lián)Chord的名址分離映射系統(tǒng),通過(guò)在邏輯網(wǎng)絡(luò)中節(jié)點(diǎn)的路由表內(nèi)添加物理網(wǎng)絡(luò)的拓?fù)湫畔?,改變了Chord環(huán)的遞歸查找過(guò)程,在查詢時(shí)一個(gè)物理網(wǎng)絡(luò)只經(jīng)過(guò)一次,有效地避免了邏輯網(wǎng)絡(luò)與物理網(wǎng)絡(luò)失配導(dǎo)致的“繞遠(yuǎn)路”問(wèn)題。此外,名稱與地址的綁定關(guān)系分域內(nèi)域外兩級(jí)管理,域內(nèi)直接綁定IP地址,域外更換綁定信息為名稱與網(wǎng)絡(luò)地址,通過(guò)增加一跳的查詢將綁定信息更新范圍盡可能地縮小在域內(nèi)。采用查詢率與更新率的比值動(dòng)態(tài)調(diào)控緩存?zhèn)€數(shù),維持在一定更新成本下的查詢效率。并且通過(guò)理論分析和仿真實(shí)驗(yàn)證明了此映射系統(tǒng)的性能優(yōu)于LISP-DHT。提高的查詢性能是通過(guò)增加路由表信息換來(lái)的,表項(xiàng)可以聚合,不會(huì)對(duì)存儲(chǔ)造成壓力,但是會(huì)對(duì)系統(tǒng)的可擴(kuò)展性造成一定的影響,希望后續(xù)的研究工作能夠盡量地解決這一問(wèn)題。