專(zhuān)利名稱(chēng):基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種網(wǎng)絡(luò)地址分配方法,特別涉及一種基于關(guān)鍵字和優(yōu)先級(jí)的層次 性IPv6網(wǎng)絡(luò)地址分配方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅速發(fā)展,IPv4定義的有限地址空間將被耗盡,地址空間的不足 必將影響互聯(lián)網(wǎng)的進(jìn)一步發(fā)展。為了解決這一問(wèn)題,提出了 IPv6網(wǎng)絡(luò)協(xié)議。不同于 IPv4網(wǎng)絡(luò)協(xié)議,IPv6網(wǎng)絡(luò)協(xié)議的地址長(zhǎng)度有128位,為用戶提供了巨大的地址空間。 IPv6的地址結(jié)構(gòu)和地址分配采用嚴(yán)格的層次結(jié)構(gòu),以便于進(jìn)行地址聚合,從而減小 路由器中路由表的規(guī)模。IETF (互聯(lián)網(wǎng)工程任務(wù)組)對(duì)IPv6協(xié)議和地址類(lèi)型及其分 配做出了相關(guān)規(guī)定,在RFC3513, RFC3587和RFC3177有對(duì)相關(guān)規(guī)定的描述。RFC3513規(guī)定,在IANA(國(guó)際互聯(lián)網(wǎng)代理成員管理局)有權(quán)分配的地址空間中, 前三個(gè)比特是固定的(以二進(jìn)制001開(kāi)頭),29比特地址空間分配給各LIR(區(qū)互聯(lián) 網(wǎng)注冊(cè)機(jī)構(gòu)),LIR可將后面的32比特地址空間分配給客戶站點(diǎn)。根據(jù)以上原則, Cernet2 (新一代中國(guó)教育網(wǎng))分配到了前綴為2001 :da8: :/32的IPv6網(wǎng)絡(luò)地址空 間。RFC3177建議在分配子網(wǎng)地址時(shí),前綴長(zhǎng)度一般為48或64位,對(duì)于非常巨大 的子網(wǎng)可以考慮為其分配幾個(gè)連續(xù)的48位地址前綴,即前綴為47、 46……。因此, 如果客戶站點(diǎn)前綴為48比特,其就具有16比特的子網(wǎng)劃分空間,即使客戶站點(diǎn)前 綴為64位,它也可以打破后64位地址段進(jìn)行子網(wǎng)的規(guī)劃和分配。特別的,子網(wǎng)地 址的分配需要最大限度得滿足IPv6地址聚合的原則。因此對(duì)于分配了 32位地址前綴的LIR或較大ISP,其IPv6地址空間內(nèi)需要對(duì) 2"16至2'64的子網(wǎng)地址進(jìn)行規(guī)劃和分配,即使在前綴為64位的子網(wǎng)內(nèi)也存在地址 段規(guī)劃和分配的問(wèn)題。在現(xiàn)階段地址空間充足的前提下,IPv6網(wǎng)絡(luò)地址分配方法主 要采用人工的經(jīng)驗(yàn)性的方法,這會(huì)導(dǎo)致地址空間在動(dòng)態(tài)增長(zhǎng)的情況下,對(duì)地址空間
的規(guī)劃卻停留在初始階段,使得對(duì)地址空間的規(guī)劃落后于地址空間的實(shí)際變化。對(duì)IPv6網(wǎng)絡(luò)地址的通用分配方法請(qǐng)見(jiàn)參考文獻(xiàn)1:《A Growth-Based Address Allocation Scheme for IPv6》,在該文獻(xiàn)中包括了對(duì)IPv6地址空間二分法的介紹。發(fā)明內(nèi)容本發(fā)明的目的克服現(xiàn)有的IPv6網(wǎng)絡(luò)地址分配方法無(wú)法對(duì)IPv6地址進(jìn)行有效分 配的缺陷,從而提出一種可以合理地規(guī)范IPv6網(wǎng)絡(luò)地址分配并顯著地提高IPv6網(wǎng) 絡(luò)的地址聚合度的分配方法。為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng) 絡(luò)地址分配方法,包括以下步驟步驟1)、根據(jù)用戶的設(shè)定初始化地址空間,為地址空間按關(guān)鍵字層次分配序號(hào);步驟2)、用Keys表示輸入的關(guān)鍵字串,用SpaceCur表示當(dāng)前地址空間,用deep 表示當(dāng)前所處關(guān)鍵字串位置,用KeyNum表示當(dāng)前地址空間后關(guān)鍵字串的長(zhǎng)度,判 斷KeyNum否為l,若為1,執(zhí)行步驟4),若不為1,執(zhí)行下一步;步驟3)、基于關(guān)鍵字分配地址空間;步驟4)、基于優(yōu)先級(jí)分配地址空間;步驟5)、在地址空間發(fā)生沖突時(shí),進(jìn)行沖突處理。上述技術(shù)方案中,所述的步驟l)具體包括以下步驟步驟l-l)、用戶設(shè)定地址空間前綴、最小地址單位前綴、最大關(guān)鍵字長(zhǎng)度、對(duì)應(yīng)關(guān)鍵字序號(hào)數(shù)量四個(gè)值;步驟1-2)、根據(jù)IPv6地址前綴和最小地址單位前綴給所有子網(wǎng)地址編號(hào); 步驟l-3)、按照關(guān)鍵字地址空間數(shù)量均勻地分割整個(gè)地址空間,并給予相應(yīng)序號(hào)。在所述的步驟1)中,完成地址空間的初始化操作后,還可對(duì)關(guān)鍵字層次進(jìn)行 修改,包括從用戶輸入得到指定關(guān)鍵字串(為空則等于整個(gè)地址空間)和相關(guān)修改 屬性;然后判斷已分配地址連續(xù)是否經(jīng)修改后不被割裂,如果是,返回用戶操作失 敗,否則修改相關(guān)地址塊信息。上述技術(shù)方案中,所述的步驟3)具體包括以下步驟步驟3-1 )、判斷第de印個(gè)關(guān)鍵字在SpaceCur地址空間內(nèi)是否已分配對(duì)應(yīng)序號(hào); 若是,則執(zhí)行下一步;否則執(zhí)行步驟3-3);步驟3-2)、將de印的值加一,SpaceCur加上第de印關(guān)鍵字后,執(zhí)行步驟3-8);步驟3-3)、判斷SpaceCur地址空間內(nèi)的序號(hào)是否用盡,若已用盡,則執(zhí)行步 驟3-5);若沒(méi)有用盡則執(zhí)行下一步;步驟3-4)、按關(guān)鍵字地址空間選擇原則在選定序號(hào)的地址空間開(kāi)始處分配,地 址分配結(jié)束;步驟3-5)、在SpaceCur地址空間內(nèi)査找能分配最大空間的關(guān)鍵字地址空間的 相應(yīng)序號(hào));步驟3-6)、在選定序號(hào)內(nèi),判斷最大分配空間是否能符合序號(hào)最低空間要求; 若滿足,則執(zhí)行下一步;若不滿足,則表示地址空間沖突,執(zhí)行步驟5);步驟3-7)、在選定的地址空間中,査找未使用地址中編號(hào)為2的n次方的倍數(shù), n最高者,從其開(kāi)始分配新地址空間,地址分配結(jié)束。步驟3-8)、 SpaceCur的KeyNum為1則執(zhí)行步驟4);否則執(zhí)行步驟3-1 )。在所述的步驟3-4)中,所述的關(guān)鍵字地址空間選擇原則包括(a) 、在相應(yīng)關(guān)鍵字地址空間中,序號(hào)為0最先使用;(b) 、序號(hào)為2的n次方的倍數(shù),n越大越先使用;(c) 、 n相同則比較序號(hào)較小并己分配地址空間的使用時(shí)間,使用時(shí)間越短越先使用。上述技術(shù)方案中,在所述的步驟4)中,具體包括以下步驟步驟4-l)、在SpaceCur地址空間內(nèi),判斷Keys是否存在;若存在,則執(zhí)行下 一步;否則執(zhí)行步驟4-4);步驟4-2)、判斷地址空間是否用盡,若已用盡,則執(zhí)行步驟5);否則執(zhí)行下一步;步驟4-3)、在Keys對(duì)應(yīng)的己用地址后分配新地址空間,地址分配結(jié)束; 步驟4-4)、按照地址空間優(yōu)先級(jí),在SpaceCur內(nèi)查找地址空間優(yōu)先級(jí)最低的地 址空間,如果優(yōu)先級(jí)相同,按照用戶設(shè)置偏好進(jìn)行選擇;步驟4-5)、判斷地址空間是否用盡,若己用盡則執(zhí)行步驟5),否則執(zhí)行下一步; 步驟4-6)、在選定地址空間中編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分配新地址空間,結(jié)束地址分配過(guò)程。在所述的步驟4-4)中,所述的地址空間優(yōu)先級(jí)計(jì)算公式為 地址空間優(yōu)先級(jí)=Prior + f(MaxGlobal, MaxLocal) + p(NumUsed); 其中,Prior為用戶設(shè)定的優(yōu)先級(jí);MaxGlobal為指定關(guān)鍵字空間中最大能分配 到的新地址空間;MaxLocal為特定地址塊內(nèi)能分配到的新地址空間;NumUsed是 指定地址空間內(nèi)已分配的地址空間數(shù)量;f(MaxGlobal, MaxLocal)是關(guān)于MaxGlobal 和MaxLocal的函數(shù),它的值與MaxGlobal成正比,與MaxLocal成反比;p(NumUsed) 是關(guān)于NumUsed的函數(shù),它的值與NumUsed成正比。上述技術(shù)方案中,在所述的步驟5)中,具體包括以下步驟-歩驟5-l)、判斷在SpaceCur地址空間后是否存在相鄰序號(hào)未分配,并且連續(xù) 地址空間大小大于或等于SpaceCur現(xiàn)有大小的情況;若存在則執(zhí)行下一步,否則執(zhí)行5-4);步驟5-2)、 SpaceCur擴(kuò)充一倍地址空間;步驟5-3)、在第de印個(gè)關(guān)鍵字前加上"ex", SpaceCur為全局地址空間,de印 為1,重新執(zhí)行步驟2);步驟5-4)、告知用戶無(wú)法進(jìn)行地址空間分配,由用戶選擇是否繼續(xù)自動(dòng)分配過(guò) 程,若是,則執(zhí)行下一步,否則結(jié)束地址分配過(guò)程;步驟5-5)、將關(guān)鍵字Keys重新設(shè)置為"ex"加上Keys, SpaceCur為全局地 址空間,de印為l,然后重新執(zhí)行步驟2)。在所述的步驟5-2)中,對(duì)所述的SpaceCur擴(kuò)充一倍地址空間的具體實(shí)現(xiàn)步驟包括步驟5-2-1)、從用戶輸入得到指定關(guān)鍵字串和序號(hào)列表;步驟5-2-2)、判斷合并地址空間是否符合合并要求,如果不符合,則返回用戶 操作失敗,如果符合則執(zhí)行下一步;步驟5-2-3)、將相關(guān)序號(hào)標(biāo)記為已分配,并表示其合并的相關(guān)屬性;步驟5-2-4)、合并地址空間對(duì)應(yīng)關(guān)鍵字長(zhǎng)度為KeyNum-l,則合并結(jié)束;否則, 按照最小序號(hào)地址空間分割方法對(duì)余下空間進(jìn)行分割并增加序號(hào)大小。本發(fā)明的優(yōu)點(diǎn)在于1、本發(fā)明的方法與關(guān)鍵字對(duì)應(yīng),根據(jù)用戶設(shè)定預(yù)先分配大地址空間,并規(guī)定了 關(guān)鍵字地址空間選擇原則,避免在開(kāi)始階段對(duì)先到者分配過(guò)大的地址空間并充分利 用先分配序號(hào)有更大地址空間增長(zhǎng)需求這一實(shí)際規(guī)律,保證了對(duì)應(yīng)關(guān)鍵字序號(hào)未用 完情況下未來(lái)地址空間的增長(zhǎng)并保證序號(hào)全部用完的情況下分配到最大可用地址空 間,充分保證了地址空間分配的合理性,提高了IPv6地址聚合。 2、 本發(fā)明的方法在存在相符關(guān)鍵字的情況下,分配操作在關(guān)鍵字對(duì)應(yīng)大地址空 間內(nèi)完成;可以根據(jù)實(shí)際需要將分配地址空間時(shí)需要考量的匹配因素考慮進(jìn)來(lái),比 如地理信息、路由信息等等。3、 本發(fā)明的方法在關(guān)鍵字空間相應(yīng)序號(hào)用盡情況下,從能分配最大地址空間的 已分配地址塊中得到新的地址空間;搶奪能分配最大地址空間的已分配地址塊本質(zhì) 上是搶奪利用率不高地址空間,從而保證了地址空間分配的合理性,提高了 IPv6 地址聚合。4本發(fā)明以現(xiàn)有地址空間的優(yōu)先級(jí)作為分配依據(jù),其考量包括了人為經(jīng)驗(yàn)判定 成分,可增長(zhǎng)的地址空間和其未來(lái)的增長(zhǎng)趨勢(shì),可以使對(duì)應(yīng)地址空間根據(jù)當(dāng)前系統(tǒng) 分配狀況擁有相應(yīng)的動(dòng)態(tài)優(yōu)先級(jí),確保過(guò)多或不當(dāng)?shù)牡刂贩峙淝闆r,從而進(jìn)一步保 證了地址空間分配的合理性,提高了IPv6地址聚合。
圖1為本發(fā)明的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方法在做序號(hào) 初始化操作時(shí)的示意圖;圖2為在地址空間初始化后對(duì)關(guān)鍵字層次做修改后的示意圖;圖3為本發(fā)明的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方法中編號(hào)初 始化的示意圖;圖4為關(guān)鍵字序號(hào)選擇順序的示意圖;圖5為地址空間擴(kuò)展的示意圖;圖6為一個(gè)實(shí)施例中利用本發(fā)明的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址 分配方法按關(guān)鍵字分配的示意圖;圖7為一個(gè)實(shí)施例中利用本發(fā)明的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址 分配方法按優(yōu)先級(jí)分配的示意圖;圖8為在一個(gè)實(shí)施例中實(shí)現(xiàn)地址空間合并的示意圖;圖9為本發(fā)明方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步的說(shuō)明。在結(jié)合實(shí)施例,對(duì)本發(fā)明的方法進(jìn)行說(shuō)明前,首先對(duì)本發(fā)明中所涉及到的幾個(gè)
概念進(jìn)行說(shuō)明。
地址編號(hào)給予地址空間中最小地址單位的序號(hào)(如果地址空間前綴為32,管 理的最小地址前綴為48,那么最小地址單位的編號(hào)將依次從0到2A16-1),以下稱(chēng)
為編號(hào)。
關(guān)鍵字長(zhǎng)度用于表示關(guān)鍵字后關(guān)鍵字串的長(zhǎng)度,以下用KeyNum代替;例如 "北京,海淀,中關(guān)村","北京"的關(guān)鍵字長(zhǎng)度為2,"海淀"的關(guān)鍵字長(zhǎng)度為1, "中關(guān)村"的關(guān)鍵字長(zhǎng)度為0;特別需要指出,同層關(guān)鍵字對(duì)應(yīng)的關(guān)鍵字長(zhǎng)度可能 不同。
關(guān)鍵字對(duì)應(yīng)較大地址空間序號(hào)在"指定"的地址空間范圍內(nèi),將地址空間均 勻分割后所給予的編號(hào),以下稱(chēng)為序號(hào);如圖1所示,其中第一個(gè)關(guān)鍵字對(duì)應(yīng)的序 號(hào)為0-3,第二個(gè)關(guān)鍵字對(duì)應(yīng)的序號(hào)為0-7;特別需要指出,不同的關(guān)鍵字對(duì)應(yīng)的序
號(hào)數(shù)量可能不相同。
關(guān)鍵字地址空間選擇原則
(1) 、在相應(yīng)關(guān)鍵字地址空間中,序號(hào)為O最先使用;
(2) 、序號(hào)為2的n次方的倍數(shù),n越大越先使用;
(3) 、 n相同,比較小于并最接近與此序號(hào)的已分配的地址空間的使用時(shí)間, 該地址空間的使用時(shí)間越短,則當(dāng)前選擇的關(guān)鍵字地址空間越先使用。以圖4為例, 對(duì)上述三個(gè)選擇原則進(jìn)行說(shuō)明。在圖4中,可分配的地址空間的序號(hào)為0-15,根據(jù) 原則(1),在第一次請(qǐng)求地址空間時(shí),選擇序號(hào)為O的地址空間;在第二次請(qǐng)求地 址空間時(shí),由于8為2的三次方,根據(jù)原則(2),分配序號(hào)為8的地址空間;在第 三次請(qǐng)求地址空間時(shí),序號(hào)為4和12的地址空間為可能分配的地址空間(都是2 的二次方的倍數(shù)),根據(jù)原則(3),選用序號(hào)為12的地址空間;然后在第四次請(qǐng)求 地址空間時(shí),選用序號(hào)為4的地址空間;在第五次請(qǐng)求地址空間時(shí),可選擇序號(hào)為 2、 6、 10、 14的地址空間(都為2的一次方的倍數(shù)),基于原則(3),選擇序號(hào)為6 的地址空間。與上述分配過(guò)程相類(lèi)似,對(duì)圖4中的其他地址空間可依照上述的三個(gè) 原則進(jìn)行分配。
地址空間優(yōu)先級(jí)的計(jì)算方式
地址空間優(yōu)先級(jí)=Prior + f(MaxGlobal, MaxLocal) + p(NumUsed); 其中,MaxGlobal指所有地址空間中最大能分配到的新地址空間;MaxLocal是 指定地址空間內(nèi)最大能分配到的新地址空間;NumUsed是指定地址空間內(nèi)己分配的
地址空間數(shù)量;f(MaxGlobal, MaxLocal)是關(guān)于MaxGlobal和MaxLocal的函數(shù),它 的值與MaxGlobal成正比,與MaxLocal成反比;p(NumUsed)是關(guān)于NumUsed的函 數(shù),它的值與NumUsed成正比。 實(shí)施例h
下面在一個(gè)具體的實(shí)例中,對(duì)IPv6網(wǎng)絡(luò)地址的分配進(jìn)行說(shuō)明。首先做如下假設(shè) 地址空間前綴為"2001:da8::/32";
用戶設(shè)定得到關(guān)鍵字長(zhǎng)度2和對(duì)應(yīng)大地址空間數(shù)量為32;
地址空間優(yōu)先級(jí)計(jì)算公式為-
Prior+3 *Log2(MaxGlobal/MaxLocal)+2*NumUsed 。
如圖9所示,利用本發(fā)明的方法對(duì)IPv6網(wǎng)絡(luò)地址進(jìn)行分配的具體實(shí)現(xiàn)步驟如下 步驟10、用戶設(shè)定地址空間前綴、最小地址單位前綴、最大關(guān)鍵字長(zhǎng)度 (KeyNum)、對(duì)應(yīng)關(guān)鍵字序號(hào)數(shù)量四個(gè)值。在本實(shí)施例中,假設(shè)地址空間前綴為 "2001:da8::/32",最小地址單位前綴為48,最大關(guān)鍵字長(zhǎng)度為2,第一個(gè)關(guān)鍵字序 號(hào)數(shù)量為32。
步驟20、根據(jù)步驟10中設(shè)定的地址空間前綴和最小地址單位前綴給所有子網(wǎng) 地址編號(hào)。由于地址空間前綴為32位,而最小地址單位前綴為48位,因此子網(wǎng)地 址共有"2的十六次方"個(gè)(65536),因此在本實(shí)施例中,編號(hào)從0-65535。
步驟30、在各關(guān)鍵字對(duì)應(yīng)的地址空間中,按照其對(duì)應(yīng)序號(hào)數(shù)量均勻分割地址空 間,并給予相應(yīng)序號(hào)。在本實(shí)施例中,整個(gè)地址空間可分割為32個(gè)大地址空間,因 此它們的序號(hào)為從0-31。例如,在圖3中,2001:da8::/37序號(hào)為0, 2001:da8:4800::/37 序號(hào)為8, 2001:da8:8800::/37序號(hào)為16, 2001:da8:f800::/37序號(hào)為31 。地址空間分 割完成后,將全局地址空間的關(guān)鍵字長(zhǎng)度修改為最長(zhǎng)關(guān)鍵字長(zhǎng)度的值加1。
上述的步驟10至步驟30為對(duì)地址空間的初始化過(guò)程,在初始化結(jié)束后,還可 對(duì)地址空間的關(guān)鍵字層次進(jìn)行修改。如圖2所示,對(duì)關(guān)鍵字層次的修改包括從用戶 輸入得到指定關(guān)鍵字串(為空則等于整個(gè)地址空間)和相關(guān)修改屬性;然后判斷已 分配地址連續(xù)是否經(jīng)修改后不被割裂,如果是,返回用戶操作失敗,否則修改相關(guān) 地址塊信息。
步驟40、接收分配地址空間的第一次請(qǐng)求,從該請(qǐng)求中得到關(guān)鍵字串(Keys) 和優(yōu)先級(jí)(Prior),并設(shè)置當(dāng)前地址空間(SpaceCur)為全局地址空間,設(shè)置當(dāng)前所
處關(guān)鍵字串位置(deep)為1。在本實(shí)施例中,如圖6所示,第一次請(qǐng)求的關(guān)鍵字
串為Keys-"骨干,",該請(qǐng)求的優(yōu)先級(jí)PrioF4。
步驟50、請(qǐng)求的關(guān)鍵字長(zhǎng)度為2,第deep (deep=l)個(gè)關(guān)鍵字對(duì)應(yīng)序號(hào)未用完, 根據(jù)關(guān)鍵字地址空間選擇原則(1)在序號(hào)為0的地址空間開(kāi)始處分配地址空間給第 一次請(qǐng)求,結(jié)束此次地址空間分配。
步驟60、接收到第二次請(qǐng)求Keys="北京,節(jié)點(diǎn)",Prio產(chǎn)4;其中,請(qǐng)求中的 優(yōu)先級(jí)Prio產(chǎn)4由用戶設(shè)定。由于關(guān)鍵字"北京"不存在,根據(jù)關(guān)鍵字地址空間選 擇原則(2),在序號(hào)為16的地址空間處分配地址地址空間;結(jié)束此次地址空間分配。
步驟70、接收到第三次請(qǐng)求Keys="上海,節(jié)點(diǎn)",Prio產(chǎn)4;由于關(guān)鍵字"上 海"不存在,根據(jù)關(guān)鍵字地址空間選擇原則,在序號(hào)為24的地址空間處分配地址地 址空間;結(jié)束此次地址空間分配。
步驟80、接收到第四次請(qǐng)求Keys-"北京,總部",Prior^l2;由于關(guān)鍵字"北 京"已經(jīng)分配了序號(hào)為16的大地址空間,并且KeyNum為2,因此在與"北京"關(guān) 聯(lián)的序號(hào)16地址空間中進(jìn)一步分配地址空間,此時(shí)SpaceCur為"北京",deep為1。
步驟90、在SpaceCur ("北京")地址空間內(nèi),Keys "北京,總部"不存在;則 在SpaceCur地址空間內(nèi)査找地址空間優(yōu)先級(jí)最小的地址塊,在查找過(guò)程中要利用前 述的優(yōu)先級(jí)計(jì)算公式對(duì)當(dāng)前地址空間內(nèi)的地址塊做優(yōu)先級(jí)計(jì)算。如圖7所示,根據(jù) 計(jì)算結(jié)果可知關(guān)鍵字為"北京,節(jié)點(diǎn)"地址空間優(yōu)先級(jí)為4,最小,選擇該關(guān)鍵字 所在的地址空間。
步驟IOO、在"北京,節(jié)點(diǎn)"地址內(nèi),編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi) 始分配新地址空間;結(jié)束第四次地址空間分配。
步驟IIO、接收到第五次請(qǐng)求Keys-"北京,海淀",Prior=4,并要求4個(gè)地址 單位;在SpaceCur ("北京")地址空間內(nèi)Keys"北京,海淀"不存在;則在SpaceCur 地址空間內(nèi)査找地址空間優(yōu)先級(jí)最小的地址塊,此時(shí)為"北京,節(jié)點(diǎn)",地址空間優(yōu) 先級(jí)為4;在"北京,節(jié)點(diǎn)"地址內(nèi),編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分 配新地址空間;結(jié)束第五次地址空間分配。
步驟120、接收到第六次請(qǐng)求Keys-"北京,豐臺(tái)",Prior=8;在SpaceCur ("北 京")地址空間內(nèi)Keys"北京,豐臺(tái)"不存在;則在SpaceCur地址空間內(nèi)查找地址 空間優(yōu)先級(jí)最小的地址塊,此時(shí)為"北京,節(jié)點(diǎn)",地址空間優(yōu)先級(jí)為7;在"北京, 節(jié)點(diǎn)"地址內(nèi),編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分配新地址空間;結(jié)束 此次地址空間分配。
步驟130、接收到第七次請(qǐng)求Keys-"北京,昌平",Prio產(chǎn)4;在SpaceCur("北 京")地址空間內(nèi)Keys "北京,昌平"不存在;則在SpaceCur ("北京")地址空間 內(nèi)査找地址空間優(yōu)先級(jí)最小的地址塊,此時(shí)為"北京,節(jié)點(diǎn)",地址空間優(yōu)先級(jí)為 10;在"北京,節(jié)點(diǎn)"地址內(nèi),編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分配新 地址空間;結(jié)束此次地址空間分配。
步驟140、接收到第八次請(qǐng)求Keys-"北京,海淀",Prior=4,并要求4個(gè)地址 單位;在SpaceCur ("北京")地址空間內(nèi)Keys "北京,海淀"存在;在"北京,海 淀"對(duì)應(yīng)的已用地址后分配新空間;結(jié)束此次地址空間分配。
步驟150、接收到第九次請(qǐng)求Keys二"北京,朝陽(yáng)",Prior=8;在SpaceCur("北 京")地址空間內(nèi)Keys"北京,朝陽(yáng)"不存在;則在SpaceCur地址空間內(nèi)査找地址 空間優(yōu)先級(jí)最小的地址塊,此時(shí)為"北京,總部",地址空間優(yōu)先級(jí)為12;在"北 京,總部"地址內(nèi),編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分配新地址空間; 結(jié)束此次地址空間分配。
步驟160、完成第十次到第九十九次地址空間分配。
步驟170、接收到第一百次請(qǐng)求Keys="北京,海淀",Prior=4,并要求32個(gè) 地址單位;此時(shí)在序號(hào)16的地址空間中,關(guān)鍵字"北京,海淀"己經(jīng)沒(méi)過(guò)如此大的 剩余地址空間;此時(shí)SpaceCur為"北京"。
步驟180、在SpaceCur地址空間后有相鄰序號(hào)未分配,并且連續(xù)地址空間大小 大于等于其現(xiàn)使用空間;擴(kuò)充SpaceCur地址空間,如圖5所示,即將序號(hào)為16,
17的地址合并。
步驟190、 Keys從"北京,海淀"變?yōu)?北京,ex海淀",deep為1。 步驟200、在合并地址空間中,重新分配"北京,ex海淀",此時(shí)根據(jù)以上原則
和流程,在原序號(hào)為17的地址空間二分之一處分配新地址空間。
步驟210、第一百零一次到第一百四十九次地址空間分配和以上過(guò)程類(lèi)似。 步驟220、接收到第一百五十次請(qǐng)求Key^"武漢,節(jié)點(diǎn)",Prio產(chǎn)4;關(guān)鍵字"武
漢"不存在,根據(jù)關(guān)鍵字地址空間選擇原則在序號(hào)18的地址空間處分配地址地址空
間;結(jié)束此次地址空間分配。
步驟230、第一百五十一次到第四百九十九次地址空間分配和以上過(guò)程類(lèi)似。 步驟240、接收到第七百次請(qǐng)求Keys-"北京,新聞",Prio產(chǎn)4;此時(shí)在"北京"
空間內(nèi),地址空間用盡,并且關(guān)鍵字"北京"之后序號(hào)為18的地址空間己分配給關(guān)
鍵字"武漢",導(dǎo)致擴(kuò)展地址空間失敗。步驟250、告知用戶無(wú)法進(jìn)行地址空間分配,是否繼續(xù)自動(dòng)分配過(guò)程。 步驟260、用戶選擇繼續(xù)。步驟270、 Keys從"北京,新聞"變?yōu)?ex北京,新聞",SpaceCur為全局 地址空間,deep為l;重新開(kāi)始地址分配過(guò)程。步驟280、在SpaceCur (全局)地址空間內(nèi)Keys "ex北京"不存在并且關(guān)鍵字 "北京"以后的序號(hào)已使用,則在SpaceCur (全局)地址空間內(nèi)查找能分配最大空 間的關(guān)鍵字地址空間,此實(shí)例為"西北"。步驟290、在關(guān)鍵字"西北"對(duì)應(yīng)地址空間中,查找未使用地址中編號(hào)為2的 n次方的倍數(shù),n最高者從其開(kāi)始分配新地址空間,此次地址分配結(jié)束。
權(quán)利要求
1. 一種基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方法,包括以下步驟步驟1)、根據(jù)用戶的設(shè)定初始化地址空間,為地址空間按關(guān)鍵字層次分配序號(hào);步驟2)、用Keys表示輸入的關(guān)鍵字串,用SpaceCur表示當(dāng)前地址空間,用deep表示當(dāng)前所處關(guān)鍵字串位置,用KeyNum表示當(dāng)前地址空間后關(guān)鍵字串的長(zhǎng)度,判斷KeyNum否為1,若為1,執(zhí)行步驟4),若不為1,執(zhí)行下一步;步驟3)、基于關(guān)鍵字分配地址空間;步驟4)、基于優(yōu)先級(jí)分配地址空間;步驟5)、在地址空間發(fā)生沖突時(shí),進(jìn)行沖突處理。
2、 根據(jù)權(quán)利要求1所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,所述的步驟l)具體包括以下步驟-步驟l-l)、用戶設(shè)定地址空間前綴、最小地址單位前綴、最大關(guān)鍵字長(zhǎng)度、對(duì)應(yīng)關(guān)鍵字序號(hào)數(shù)量四個(gè)值;步驟1-2)、根據(jù)IPv6地址前綴和最小地址單位前綴給所有子網(wǎng)地址編號(hào); 步驟l-3)、在各關(guān)鍵字對(duì)應(yīng)的地址空間中,按照其對(duì)應(yīng)序號(hào)數(shù)量均勻分割地址空間,并給予相應(yīng)序號(hào)。
3、 根據(jù)權(quán)利要求2所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟1)中,完成地址空間的初始化操作后,還可對(duì)關(guān) 鍵字層次進(jìn)行修改,包括從用戶輸入得到指定關(guān)鍵字串(為空則等于整個(gè)地址空 間)和相關(guān)修改屬性;然后判斷巳分配地址連續(xù)是否經(jīng)修改后不被割裂,如果是, 返回用戶操作失敗,否則修改相關(guān)地址塊信息。
4、 根據(jù)權(quán)利要求1所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,所述的步驟3)具體包括以下步驟步驟3-1 )、判斷第de印個(gè)關(guān)鍵字在SpaceCur地址空間內(nèi)是否已分配對(duì)應(yīng)序號(hào); 若是,則執(zhí)行下一步;否則執(zhí)行步驟3-3);步驟3-2)、將de印的值加一,SpaceCur加上第deep關(guān)鍵字后,執(zhí)行步驟3-8);步驟3-3)、判斷SpaceCur地址空間內(nèi)的序號(hào)是否用盡,若已用盡,則執(zhí)行步 驟3-5);若沒(méi)有用盡則執(zhí)行下一步;步驟3-4)、按關(guān)鍵字地址空間選擇原則在選定序號(hào)的地址空間開(kāi)始處分配,地 址分配結(jié)束;步驟3-5)、在SpaceCur地址空間內(nèi)査找能分配最大空間的關(guān)鍵字地址空間的 相應(yīng)序號(hào));步驟3-6)、在選定序號(hào)內(nèi),判斷最大分配空間是否能符合序號(hào)最低空間要求; 若滿足,則執(zhí)行下一步;若不滿足,則表示地址空間沖突,執(zhí)行步驟5);步驟3-7)、在選定的地址空間中,査找未使用地址中編號(hào)為2的n次方的倍數(shù), n最高者,從其開(kāi)始分配新地址空間,地址分配結(jié)束。步驟3-8)、 SpaceCur的KeyNum為1則執(zhí)行步驟4);否則執(zhí)行步驟3-1 )。
5、 根據(jù)權(quán)利要求4所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟3-4)中,所述的關(guān)鍵字地址空間選擇原則包括(a) 、在相應(yīng)關(guān)鍵字地址空間中,序號(hào)為0最先使用;(b) 、序號(hào)為2的n次方的倍數(shù),n越大越先使用;(c) 、 n相同則比較序號(hào)較小并己分配地址空間的使用時(shí)間,使用時(shí)間越短越 先使用。
6、 根據(jù)權(quán)利要求1所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟4)中,具體包括以下步驟步驟4-l)、在SpaceCur地址空間內(nèi),判斷Keys是否存在;若存在,則執(zhí)行下 一步;否則執(zhí)行步驟4-4);步驟4-2)、判斷地址空間是否用盡,若已用盡,則執(zhí)行步驟5);否則執(zhí)行下一步;步驟4-3)、在Keys對(duì)應(yīng)的已用地址后分配新地址空間,地址分配結(jié)束; 步驟4-4)、按照地址空間優(yōu)先級(jí),在SpaceCur內(nèi)査找地址空間優(yōu)先級(jí)最低的地址空間,如果優(yōu)先級(jí)相同,按照用戶設(shè)置偏好進(jìn)行選擇;步驟4-5)、判斷地址空間是否用盡,若已用盡則執(zhí)行步驟5),否則執(zhí)行下一步; 步驟4-6)、在選定地址空間中編號(hào)為2的n次方的倍數(shù),n最高者處開(kāi)始分配新地址空間,結(jié)束地址分配過(guò)程。
7、 根據(jù)權(quán)利要求6所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟4-4)中,所述的地址空間優(yōu)先級(jí)計(jì)算公式為地址空間優(yōu)先級(jí)=Prior + f(MaxGlobal, MaxLocal) + p(NumUsed);其中,Prior為用戶設(shè)定的優(yōu)先級(jí);MaxGlobal為指定關(guān)鍵字空間中最大能分配 到的新地址空間;MaxLocal為特定地址塊內(nèi)能分配到的新地址空間;NumUsed是 指定地址空間內(nèi)已分配的地址空間數(shù)量;f(MaxGlobal, MaxLocal)是關(guān)于MaxGlobal 和MaxLocal的函數(shù),它的值與MaxGlobal成正比,與MaxLocal成反比;p(NumUsed) 是關(guān)于NumUsed的函數(shù),它的值與NumUsed成正比。
8、 根據(jù)權(quán)利要求1所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟5)中,具體包括以下步驟步驟5-l)、判斷在SpaceCur地址空間后是否存在相鄰序號(hào)未分配,并且連續(xù) 地址空間大小大于或等于SpaceCur現(xiàn)有大小的情況;若存在則執(zhí)行下一步,否則執(zhí)行5-4);步驟5-2)、 SpaceCur擴(kuò)充一倍地址空間;步驟5-3)、在第de印個(gè)關(guān)鍵字前加上"ex", SpaceCur為全局地址空間,de印 為1,重新執(zhí)行步驟2);步驟5-4)、告知用戶無(wú)法進(jìn)行地址空間分配,由用戶選擇是否繼續(xù)自動(dòng)分配過(guò) 程,若是,則執(zhí)行下一步,否則結(jié)束地址分配過(guò)程;步驟5-5)、將關(guān)鍵字Keys重新設(shè)置為"ex"加上Keys, SpaceCur為全局地 址空間,de印為l,然后重新執(zhí)行步驟2)。
9、 根據(jù)權(quán)利要求8所述的基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方 法,其特征在于,在所述的步驟5-2)中,對(duì)所述的SpaceCur擴(kuò)充一倍地址空間的 具體實(shí)現(xiàn)步驟包括步驟5-2-1)、從用戶輸入得到指定關(guān)鍵字串和序號(hào)列表;步驟5-2-2)、判斷合并地址空間是否符合合并要求,如果不符合,則返回用戶 操作失敗,如果符合則執(zhí)行下一步;步驟5-2-3)、將相關(guān)序號(hào)標(biāo)記為已分配,并表示其合并的相關(guān)屬性;步驟5-2-4)、合并地址空間對(duì)應(yīng)關(guān)鍵字長(zhǎng)度為KeyNum-l,則合并結(jié)束;否則, 按照最小序號(hào)地址空間分割方法對(duì)余下空間進(jìn)行分割并增加序號(hào)大小。
全文摘要
本發(fā)明公開(kāi)了一種基于關(guān)鍵字和優(yōu)先級(jí)的層次性IPv6網(wǎng)絡(luò)地址分配方法,包括步驟1)根據(jù)用戶的設(shè)定初始化地址空間,為地址空間按關(guān)鍵字層次分配序號(hào);步驟2)用Keys表示輸入的關(guān)鍵字串,用SpaceCur表示當(dāng)前地址空間,用deep表示當(dāng)前所處關(guān)鍵字串位置,用KeyNum表示當(dāng)前地址空間后關(guān)鍵字串的長(zhǎng)度,判斷KeyNum是否為1,若為1,執(zhí)行步驟4),若不為1,執(zhí)行下一步;步驟3)基于關(guān)鍵字分配地址空間;步驟4)基于優(yōu)先級(jí)分配地址空間;步驟5)在地址空間發(fā)生沖突時(shí),進(jìn)行沖突處理。本發(fā)明充分保證了地址空間分配的合理性,提高了IPv6地址聚合。
文檔編號(hào)H04L29/12GK101212494SQ200610171650
公開(kāi)日2008年7月2日 申請(qǐng)日期2006年12月31日 優(yōu)先權(quán)日2006年12月31日
發(fā)明者張國(guó)清, 陳韓林 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所