一種基于D1HT+Chord的名址分離映射系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及名址分離映射系統(tǒng),具體涉及一種基于DIHT+Chord的名址分離映射 系統(tǒng)。
【背景技術(shù)】
[0002] 隨著當(dāng)前互聯(lián)網(wǎng)規(guī)模不斷擴(kuò)大,所面臨的挑戰(zhàn)越來越嚴(yán)峻;其中,IP語義過載導(dǎo) 致的網(wǎng)絡(luò)擴(kuò)展性問題已經(jīng)嚴(yán)重制約了互聯(lián)網(wǎng)的進(jìn)一步發(fā)展;IPv6、VPN以及多宿主技術(shù)的 發(fā)展更加劇了這一情況。為解決這一問題,IETF提出了名址分離思想,即將IP的身份標(biāo)識(shí) 和地址標(biāo)識(shí)分離,以身份標(biāo)識(shí)代表主機(jī)在全網(wǎng)中的唯一身份;以地址標(biāo)識(shí)僅用于定位節(jié)點(diǎn) 在網(wǎng)絡(luò)拓?fù)渲械奈恢谩?br>[0003] 對(duì)于名址分離機(jī)制,其核心問題是如何構(gòu)建一個(gè)高效可靠的映射系統(tǒng),以實(shí)現(xiàn) 身份標(biāo)識(shí)和地址標(biāo)識(shí)映射對(duì)的存儲(chǔ)和查詢功能。目前,基于LISP(Locator/Identifier SeparationProtocol)已提出多種映射系統(tǒng)的解決方案;這些方案的核心思想是將 EID(EndpointIdentifier)和RL0C(RouteLocater)形成鍵值對(duì)分布存儲(chǔ)在映射服務(wù)器 中,路由過程中通過身份標(biāo)識(shí)查找映射系統(tǒng)獲取對(duì)端的實(shí)際地址。但是,這些方案存在著存 儲(chǔ)信息冗余、節(jié)點(diǎn)物理位置與邏輯位置不匹配的問題;同時(shí),這些映射系統(tǒng)多為單層結(jié)構(gòu), 當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí)查詢時(shí)延較長(zhǎng),擴(kuò)展性也難以保證。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的在于提供一種基于DIHT+Chord的名址分離映射系統(tǒng),主要解決傳 統(tǒng)映射系統(tǒng)中存儲(chǔ)信息冗余、節(jié)點(diǎn)物理位置與邏輯位置不匹配的問題。
[0005] 為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:
[0006] -種基于DIHT+Chord的名址分離映射系統(tǒng),其特征在于,
[0007] 1)根據(jù)地理位置,分配EID信息,將EID前綴作為識(shí)別不同地理位置的參考,不同 的地理位置構(gòu)成多個(gè)網(wǎng)絡(luò)域;
[0008] 2)為每個(gè)域設(shè)置關(guān)鍵映射服務(wù)器和普通映射服務(wù)器,各關(guān)鍵映射服務(wù)器能相互通 信,且直接將服務(wù)器的EID值作為映射服務(wù)器節(jié)點(diǎn)的Nodeld;關(guān)鍵存表存儲(chǔ)Chord指針表 (包括順時(shí)針指針表和逆時(shí)針指針表)、全局路由表、本地資源表、前繼節(jié)點(diǎn)信息、后繼節(jié)點(diǎn) 信息、D1HT前后繼節(jié)點(diǎn)、Chord環(huán)內(nèi)前后繼節(jié)點(diǎn)以及備份節(jié)點(diǎn)信息;其中全局路由表記錄該 關(guān)鍵映射服務(wù)器到網(wǎng)絡(luò)其它關(guān)鍵映射服務(wù)器的路由信息;本地資源表中存儲(chǔ)有過交互的節(jié) 點(diǎn)映射信息和服務(wù)器信息;當(dāng)?shù)谝淮尾樵兡硞€(gè)EID,得到目的服務(wù)器返回的該EID-t〇-RL0C 的映射信息,同時(shí)也得到該目的服務(wù)器的EID,IP,port,形成新的表項(xiàng)插入本地資源表中; 而普通映射服務(wù)器中存儲(chǔ)Chord指針表(包括順時(shí)針指針表和逆時(shí)針指針表)、本地資源 表、Chord環(huán)內(nèi)前后繼節(jié)點(diǎn)以及備份節(jié)點(diǎn)信息;
[0009] 3)通信查找目的節(jié)點(diǎn)時(shí),首先在域內(nèi)(發(fā)送節(jié)點(diǎn)的EID前綴所屬網(wǎng)絡(luò)域)查找,若 不在,則通過關(guān)鍵映射服務(wù)器進(jìn)行域間查找,查找到目的節(jié)點(diǎn)所在的地域,并將通信報(bào)文發(fā) 送至該目的地域的關(guān)鍵映射服務(wù)器,進(jìn)行域內(nèi)查找;其中,域內(nèi)查找采用chord方式進(jìn)行查 找,域間查找采用D1HT方式進(jìn)行查找。
[0010] 進(jìn)一步的,所述Chord環(huán)采用順時(shí)針與逆時(shí)針指針表的雙向表,從而覆蓋整個(gè)環(huán) 上節(jié)點(diǎn)的信息;節(jié)點(diǎn)n的順時(shí)針指針表中第一項(xiàng)指針起始值為n+1,第i項(xiàng)指針起始值改為 n+2m/2+1 2,i的取值范圍為2彡i彡m/2-l,后序的m/2項(xiàng)采用均分的方式,最后一項(xiàng)起始值 為n+2mS逆時(shí)針指針表中第一項(xiàng)起始值為n-1,第i項(xiàng)指針起始值改為n-2 m/2+1 2,i的取值 范圍為2彡i彡m/2-l,后序的m/2項(xiàng)采用均分的方式,最后一項(xiàng)起始值為n-2ml;當(dāng)結(jié)果為 負(fù)數(shù)時(shí)則加上64 ;當(dāng)進(jìn)行節(jié)點(diǎn)查詢時(shí),當(dāng)查詢的key值小于n+2m \則選取順時(shí)針指針表進(jìn) 行查詢,否則選取逆時(shí)針指針表進(jìn)行查詢。
[0011] 本發(fā)明提供基于DIHT+Chord的名址分離映射系統(tǒng)通過雙層映射的方式,縮短了 平均查詢時(shí)延和查詢路徑,提升了查詢性能,增強(qiáng)了映射系統(tǒng)的可擴(kuò)展性;通過改進(jìn)Chord 環(huán),并基于該Chord環(huán)實(shí)現(xiàn)映射系統(tǒng)中映射對(duì)的分布式存儲(chǔ)和查找,解決了物理拓?fù)渑c邏 輯拓?fù)洳黄ヅ涞娜毕荨?br>【附圖說明】
[0012] 圖1為傳統(tǒng)Chord環(huán)及其指針表結(jié)構(gòu)示意圖。
[0013] 圖2為本發(fā)明中Chord環(huán)及其指針表結(jié)構(gòu)示意圖。
[0014] 圖3為本發(fā)明中DIHT+Chord映射系統(tǒng)結(jié)構(gòu)示意圖。
[0015] 圖4為本發(fā)明中關(guān)鍵映射服務(wù)器節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)示意圖。
[0016] 圖5為本發(fā)明中普通映射服務(wù)器節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0017] 下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0018] 本實(shí)施例中基于名址分離網(wǎng)絡(luò)技術(shù)和LISP-DHT結(jié)構(gòu),設(shè)計(jì)了一種D1HT與Chord 相結(jié)合的雙層映射系統(tǒng)。從原理上說明:
[0019] 該映射系統(tǒng)采用的標(biāo)識(shí)體系與LISP-致,EID可以使用IPv4或IPv6的命名空間, 使EID既具有IP地址的層次結(jié)構(gòu),同時(shí)也有利于部署,但與LISP不同的是,在邊緣網(wǎng)絡(luò)尋 址時(shí),采用間接映射的方式映射終端EID的RL0C,以便更好的支持節(jié)點(diǎn)的移動(dòng)特性。
[0020] DHT-分布式哈希表,采用hash函數(shù),將任意長(zhǎng)度的數(shù)據(jù)變成定長(zhǎng)的字符序列,且 hash函數(shù)具有單向性,給定的數(shù)據(jù)由hash變換后的字符序列不能由一個(gè)函數(shù)反向得到該 數(shù)據(jù);DHT可將資源信息hash成一個(gè)特定的字符序列,形成一張?zhí)囟ǖ纳⒘斜?,表中的每個(gè) 表項(xiàng)對(duì)應(yīng)著相應(yīng)資源的信息,如表項(xiàng)可表示為〈Key,Value〉對(duì)。Key是關(guān)鍵字,表示文件名 或文件信息的哈希值,Value是該資源的詳細(xì)信息,可以是所在主機(jī)的IP地址以及端口號(hào) 等。為保證所有通過hash后所得到的Key值的唯一性,一般DHT采用SHA-1或MD5等散列 算法產(chǎn)生序列。
[0021] Chord是一種分布式查詢算法,它給定一個(gè)對(duì)象的Key,將該關(guān)鍵字Key映射到相 應(yīng)的節(jié)點(diǎn)上,該節(jié)點(diǎn)存儲(chǔ)該對(duì)象的〈Key,Value〉對(duì)。通過使用hash函數(shù),節(jié)點(diǎn)用一個(gè)唯一 的節(jié)點(diǎn)標(biāo)識(shí)符NodelD表示,并與資源Key處于同一鍵值空間。當(dāng)NodelD大于或等于該Key 值的第一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)存儲(chǔ)該Key。需要查詢資源時(shí),通過hash該資源的信息,得到相應(yīng) 的Key值,查詢節(jié)點(diǎn),得到相應(yīng)的Value值;節(jié)點(diǎn)最終形成一個(gè)環(huán)狀的查詢結(jié)構(gòu)。
[0022] 基于DIHT+Chord的名址分離映射系統(tǒng)是在改進(jìn)后的Chord模型上按照地域位置 加入一個(gè)D1HT上層網(wǎng)絡(luò)。根據(jù)地理位置,分配EID信息,將EID的前綴作為識(shí)別不同地理 位置的參考,上層為D1HT結(jié)構(gòu),由各個(gè)地理區(qū)域的服務(wù)器(關(guān)鍵映射服務(wù)器)組成,負(fù)責(zé)該 地理區(qū)域間的EID查詢;下層為Chord結(jié)構(gòu),在各個(gè)地理區(qū)域下進(jìn)行細(xì)分,負(fù)責(zé)地理區(qū)域內(nèi) 的查詢;普通映射服務(wù)器均分配含地理區(qū)域EID前綴的EID;下面詳細(xì)介紹鍵值的分配和組 織形式:
[0023] 映射服務(wù)器節(jié)點(diǎn)的鍵值分配:
[0024] 從現(xiàn)有網(wǎng)絡(luò)可以看出,部分IP的分配與地域有一定關(guān)聯(lián),同一個(gè)地域分配一段IP 地址范圍,而代表該范圍的則是IP地址的網(wǎng)絡(luò)前綴,可以通過默認(rèn)掩碼獲得。該范圍的IP 地址根據(jù)需要可以再細(xì)分為不同的IP范圍,通過子網(wǎng)掩碼可以獲得子網(wǎng)前綴。獲得該IP 地址范圍的IP,在一定程度上是處于該地域的,保證了本地性。而LISP-DHT中,EID類似于 使用IPv4或IPv6的命名空間,從而使得服務(wù)器在DHT中具有一定的邏輯位置與物理拓?fù)?匹配的特性,對(duì)于普遍的跨域查詢(不同于本地EID前綴的查詢),仍舊會(huì)有域與域的物理 位置在邏輯位置上的匹配問題。
[0025] 采用類似于LISP-DHT中的Chord方式,服務(wù)器節(jié)點(diǎn)的NodeId并非由服務(wù)器的EID 經(jīng)過hash函數(shù)變換后的字符序列,而是直接將EID值作為服務(wù)器節(jié)點(diǎn)的Nodel