1.一種基于LISP的映射規(guī)模壓力測試方法,其特征在于包括以下步驟:
第一步、將壓力測試軟件部署在一臺(tái)服務(wù)器上,壓力測試軟件向被測映射系統(tǒng)發(fā)送測試注冊報(bào)文,并接收被測映射系統(tǒng)發(fā)送的注冊確認(rèn)報(bào)文;壓力測試軟件由命令解析模塊、控制模塊、測試報(bào)文生成模塊、測試報(bào)文收發(fā)模塊、統(tǒng)計(jì)模塊組成;命令解析模塊從鍵盤接收測試參數(shù)并將測試參數(shù)發(fā)送給控制模塊;控制模塊與命令解析模塊、測試報(bào)文生成模塊、測試報(bào)文收發(fā)模塊、統(tǒng)計(jì)模塊相連,接收來自命令解析模塊的測試參數(shù),根據(jù)其中參數(shù)控制測試報(bào)文生成模塊生成測試注冊報(bào)文,控制測試報(bào)文收發(fā)模塊向被測映射系統(tǒng)發(fā)送測試注冊報(bào)文并接收來自被測映射系統(tǒng)的映射確認(rèn)報(bào)文,并接收來自統(tǒng)計(jì)模塊的統(tǒng)計(jì)信息;測試報(bào)文生成模塊負(fù)責(zé)根據(jù)測試參數(shù)生成符合測試要求的測試注冊報(bào)文,將測試注冊報(bào)文發(fā)送給測試報(bào)文收發(fā)模塊;測試報(bào)文收發(fā)模塊負(fù)責(zé)將從測試報(bào)文生成模塊接收到的測試注冊報(bào)文發(fā)送給被測映射系統(tǒng)并接收其返回的注冊確認(rèn)報(bào)文,對接收到的注冊確認(rèn)報(bào)文進(jìn)行計(jì)數(shù),并將接收到的注冊確認(rèn)報(bào)文數(shù)目發(fā)送給統(tǒng)計(jì)模塊;統(tǒng)計(jì)模塊負(fù)責(zé)進(jìn)行相關(guān)量化指標(biāo)的統(tǒng)計(jì),包括實(shí)際映射規(guī)模、映射注冊速度、注冊成功率,將計(jì)算得到的實(shí)際映射規(guī)模、映射注冊速度、注冊成功率發(fā)送給控制模塊;
第二步、命令解析模塊從鍵盤獲取測試參數(shù),將測試參數(shù)傳遞給控制模塊,由控制模塊控制測試報(bào)文生成模塊生成符合測試需求的測試注冊報(bào)文,方法為:
2.1命令解析模塊一共從鍵盤接收五個(gè)測試參數(shù),分別是:測試項(xiàng)目、EID生成模式、表項(xiàng)規(guī)模或注入速度、公鑰、映射系統(tǒng)RLOC地址;“測試項(xiàng)目”指需要對被測映射系統(tǒng)進(jìn)行的測試內(nèi)容,有兩個(gè)選項(xiàng)供選擇,一個(gè)是被測試系統(tǒng)映射規(guī)模,另一個(gè)是測試映射系統(tǒng)能夠承受的映射注冊速度;“EID生成模式”指測試EID的生成方式,共有三種供選擇,分別是完全隨機(jī)生成EID模式、隨機(jī)生成32位EID模式、基于種子生成EID模式,測試EID包括EID前綴、子網(wǎng)掩碼長度、EID地址族三部分;“表項(xiàng)規(guī)?;蜃⑷胨俣取保绻皽y試項(xiàng)目”參數(shù)設(shè)置為測試映射系統(tǒng)映射規(guī)模,則該參數(shù)用于指定所需要測試的表項(xiàng)規(guī)模;如果測試項(xiàng)目”參數(shù)設(shè)置為測試映射系統(tǒng)能夠承受的映射注冊速度,則該參數(shù)用于指定測試映射表項(xiàng)注入速度;“公鑰”指事先在被測映射系統(tǒng)注冊的用于認(rèn)證xTR所轄的接入網(wǎng)身份的公鑰;“映射系統(tǒng)RLOC地址”指被測映射系統(tǒng)的RLOC地址;
2.2命令解析模塊將從鍵盤接收的所有測試參數(shù)傳遞到控制模塊;
2.3控制模塊接收到來自命令解析模塊的測試參數(shù),將EID生成模式、公鑰、映射系統(tǒng)RLOC地址這三個(gè)參數(shù)傳遞給測試報(bào)文生成模塊;
2.4測試報(bào)文生成模塊根據(jù)從控制模塊接收到的EID生成模式、公鑰、映射系統(tǒng)RLOC地址,構(gòu)造測試注冊報(bào)文,測試注冊報(bào)文與標(biāo)準(zhǔn)LISP控制平面報(bào)文格式一樣,由LISP報(bào)文頭部、UDP報(bào)文頭部、LISP消息三部分組成,方法是:
2.4.1測試報(bào)文生成模塊生成LISP映射注冊消息:LISP映射注冊消息中包括消息類型字段、需要映射確認(rèn)位即M位、nonce字段、Key ID字段、認(rèn)證數(shù)據(jù)字段,以及映射記錄,映射記錄包括測試EID及其相關(guān)屬性、與測試EID對應(yīng)的測試RLOC及其相關(guān)屬性,所述測試EID相關(guān)屬性包括記錄TTL、RLOC個(gè)數(shù)、認(rèn)證位、動(dòng)作位,所述RLOC相關(guān)屬性包括優(yōu)先級、權(quán)重、RLOC地址族;測試報(bào)文生成模塊對LISP映射注冊消息中的M位、Key ID字段、nonce字段、認(rèn)證數(shù)據(jù)字段進(jìn)行賦值,并添加映射記錄,生成LISP映射注冊消息,并將LISP映射注冊消息作為LISP消息,放到測試注冊報(bào)文中;
2.4.2測試報(bào)文生成模塊設(shè)置測試注冊報(bào)文中的LISP報(bào)文頭部;
2.4.3測試報(bào)文生成模塊設(shè)置測試注冊報(bào)文報(bào)文中的UDP頭部;
第三步、控制模塊向測試報(bào)文收發(fā)模塊發(fā)送“測試項(xiàng)目”、“注冊規(guī)模或注冊速度”兩個(gè)測試參數(shù),測試報(bào)文收發(fā)模塊把從測試報(bào)文生成模塊接收的測試注冊報(bào)文發(fā)送給被測映射系統(tǒng),方法是:
3.1測試報(bào)文收發(fā)模塊與被測映射系統(tǒng)之間建立起socket套接字;
3.2控制模塊根據(jù)命令解析模塊所傳遞的參數(shù),控制測試報(bào)文收發(fā)模塊的報(bào)文發(fā)送動(dòng)作,方法為:若命令解析模塊傳遞的“測試項(xiàng)目”參數(shù)值為“測試系統(tǒng)映射規(guī)?!?,則執(zhí)行步驟3.2.1,否則執(zhí)行步驟3.2.6;
3.2.1測試報(bào)文收發(fā)模塊將發(fā)送計(jì)數(shù)器和接收計(jì)數(shù)器均置初值為0,發(fā)送計(jì)數(shù)器用于控制所發(fā)送的測試注冊報(bào)文的規(guī)模,接收計(jì)數(shù)器用于記錄所接收的注冊確認(rèn)報(bào)文的數(shù)目;測試報(bào)文收發(fā)模塊在發(fā)送第一個(gè)測試注冊報(bào)文時(shí)記錄系統(tǒng)時(shí)間,這個(gè)系統(tǒng)時(shí)間記為“開始發(fā)送時(shí)間”;
3.2.2測試報(bào)文收發(fā)模塊通過socket套接字向被測映射系統(tǒng)發(fā)送由測試報(bào)文生成模塊生成的映射注冊報(bào)文,這表示測試報(bào)文收發(fā)模塊以最快的速度進(jìn)行映射注冊報(bào)文的發(fā)送,每發(fā)送一個(gè)測試注冊報(bào)文,發(fā)送計(jì)數(shù)器增1;
3.2.3如果命令解析模塊接收到來自鍵盤的停止測試的命令,則控制模塊中斷測試報(bào)文收發(fā)模塊的報(bào)文發(fā)送,轉(zhuǎn)第七步;如果命令解析模塊未接收到來自鍵盤的停止測試的命令,轉(zhuǎn)3.2.4;
3.2.4測試報(bào)文收發(fā)模塊接收被測映射系統(tǒng)返回的映射確認(rèn)報(bào)文,確認(rèn)此前測試報(bào)文收發(fā)模塊發(fā)送的某個(gè)測試注冊報(bào)文中的映射記錄已經(jīng)在被測系統(tǒng)中注冊成功;測試報(bào)文收發(fā)模塊每收到一個(gè)注冊確認(rèn)報(bào)文,接收計(jì)數(shù)器增1;
3.2.5若發(fā)送計(jì)數(shù)器的值等于從控制模塊中接收的“表項(xiàng)規(guī)?!?,測試報(bào)文收發(fā)模塊記錄系統(tǒng)時(shí)間,這個(gè)系統(tǒng)時(shí)間記為“結(jié)束發(fā)送時(shí)間”,轉(zhuǎn)第四步;若發(fā)送計(jì)數(shù)器的值小于從控制模塊中接收的“表項(xiàng)規(guī)?!保D(zhuǎn)3.2.2;
3.2.6控制模塊根據(jù)“注入速度”計(jì)算測試報(bào)文收發(fā)模塊發(fā)送兩個(gè)測試注冊報(bào)文之間應(yīng)該間隔的休眠時(shí)間,從而控制試報(bào)文收發(fā)模塊以指定的注入速度發(fā)送測試注冊報(bào)文;
3.2.7測試報(bào)文收發(fā)模塊將發(fā)送計(jì)數(shù)器和接收計(jì)數(shù)器均置初值為0,發(fā)送計(jì)數(shù)器用于控制所發(fā)送的測試注冊報(bào)文的規(guī)模,接收計(jì)數(shù)器用于記錄所接收的注冊確認(rèn)報(bào)文的數(shù)目;測試報(bào)文收發(fā)模塊在發(fā)送第一個(gè)測試注冊報(bào)文時(shí)記錄系統(tǒng)時(shí)間,這個(gè)系統(tǒng)時(shí)間記為“開始發(fā)送時(shí)間”;
3.2.8測試報(bào)文收發(fā)模塊向被測映射系統(tǒng)發(fā)送測試注冊報(bào)文,發(fā)送計(jì)數(shù)器增1,按照休眠時(shí)間進(jìn)行休眠;
3.2.9如果命令解析模塊接收到來自鍵盤的停止測試的命令,則控制模塊中斷測試報(bào)文收發(fā)模塊的報(bào)文發(fā)送,記錄此時(shí)系統(tǒng)時(shí)間,記為“結(jié)束發(fā)送時(shí)間”,轉(zhuǎn)第四步;如果命令解析模塊未接收到來自鍵盤的停止測試的命令,轉(zhuǎn)3.2.10;
3.2.10測試報(bào)文收發(fā)模塊接收被測映射系統(tǒng)返回的映射確認(rèn)報(bào)文,每收到一個(gè)注冊確認(rèn)報(bào)文,接收計(jì)數(shù)器遞增1;
3.2.11若休眠時(shí)間到達(dá),轉(zhuǎn)3.2.8;若休眠時(shí)間未到達(dá),轉(zhuǎn)3.2.11繼續(xù)休眠;
第四步、測試報(bào)文收發(fā)模塊將發(fā)送計(jì)數(shù)器和接收計(jì)數(shù)器的值,即所發(fā)送的測試注冊報(bào)文數(shù)目和所接收到的映射確認(rèn)報(bào)文數(shù)目傳遞給統(tǒng)計(jì)模塊;
第五步、統(tǒng)計(jì)模塊接收到來自測試報(bào)文收發(fā)模塊的測試注冊報(bào)文數(shù)目和映射確認(rèn)報(bào)文數(shù)目,計(jì)算實(shí)際映射規(guī)模、實(shí)際映射注冊速度、注冊成功率,傳遞給控制模塊,方法為:實(shí)際映射規(guī)模即為測試報(bào)文收發(fā)模塊中所接收到的映射確認(rèn)報(bào)文數(shù)目;“結(jié)束發(fā)送時(shí)間”與“開始發(fā)送時(shí)間”之差即為實(shí)際測試時(shí)間,實(shí)際映射規(guī)模除以實(shí)際測試時(shí)間即可得出實(shí)際映射注冊速度;實(shí)際映射規(guī)模除以測試注冊報(bào)文數(shù)目即可得出注冊成功率;
第六步、控制模塊接收來自統(tǒng)計(jì)模塊的實(shí)際映射規(guī)模、實(shí)際映射注冊速度、注冊成功率,顯示統(tǒng)計(jì)結(jié)果;
第七步、結(jié)束。
2.如權(quán)利要求1所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于所述完全隨機(jī)生成EID模式是指先隨機(jī)生成一個(gè)32位IPv4地址,再隨機(jī)產(chǎn)生一個(gè)n位的隨機(jī)整數(shù)作為子網(wǎng)掩碼長度,n為整數(shù),取值為0~32,EID前綴為隨機(jī)產(chǎn)生的IPv4地址的前n位,剩余的32-n位置為0的32位IP地址,EID地址族為IPv4;隨機(jī)生成32位EID模式是指EID前綴為隨機(jī)生成的32位IPv4地址,子網(wǎng)掩碼長度為32,EID地址族為IPv4;基于種子生成EID模式,是指采用基于種子的隨機(jī)方式產(chǎn)生一個(gè)32位IPv4地址,再隨機(jī)產(chǎn)生一個(gè)n位的隨機(jī)整數(shù)作為子網(wǎng)掩碼長度,EID前綴為保留隨機(jī)產(chǎn)生的IPv4地址的前n位,剩余的32-n位置為0的32位IP地址,EID地址族為IPv4。
3.如權(quán)利要求3所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于所述基于種子生成EID模式中的種子指系統(tǒng)時(shí)間。
4.如權(quán)利要求1所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于2.4.1步所述測試報(bào)文生成模塊生成LISP映射注冊消息的方法為:
2.4.1.1測試報(bào)文生成模塊將M位的值置1,表示要求被測映射系統(tǒng)在接收到測試注冊報(bào)文,并把測試注冊報(bào)文攜帶的映射記錄寫入映射數(shù)據(jù)庫后,向壓力測試軟件返回注冊確認(rèn)報(bào)文;
2.4.1.2測試報(bào)文生成模塊根據(jù)參數(shù)“EID生成模式”中指定的EID生成模式,生成相應(yīng)的測試EID;
2.4.1.3測試報(bào)文生成模塊在標(biāo)準(zhǔn)LISP映射注冊消息中添加映射記錄中的測試EID及其相關(guān)屬性,方法為:將LISP映射注冊消息的EID-Prefix字段賦值為測試EID的EID前綴,將LISP映射注冊消息的EID mask-len字段賦值為測試EID的子網(wǎng)掩碼,將LISP映射注冊消息的EID地址族字段置1,表示EID地址族為IPv4;此外,設(shè)置該測試EID所對應(yīng)的映射記錄的相關(guān)屬性,包括記錄TTL、RLOC個(gè)數(shù)、認(rèn)證位、動(dòng)作位,將TTL設(shè)為60,RLOC個(gè)數(shù)、認(rèn)證位、動(dòng)作位均置1;
2.4.1.4測試報(bào)文生成模塊向經(jīng)過2.4.1.3步處理后的標(biāo)準(zhǔn)LISP映射注冊消息中添加與測試EID對應(yīng)的測試RLOC及其相關(guān)屬性,包括具體的RLOC值、優(yōu)先級、權(quán)重、RLOC地址族;使用壓力測試軟件所在的服務(wù)器的IP地址作為測試RLOC,優(yōu)先級、權(quán)重、RLOC地址族均置1;
2.4.1.5測試報(bào)文生成模塊設(shè)置經(jīng)過2.4.1.4步處理后的標(biāo)準(zhǔn)LISP映射注冊消息的“nonce字段”,其值為隨機(jī)生成的32位無符號整數(shù);
2.4.1.6測試報(bào)文生成模塊設(shè)置經(jīng)過2.4.1.5步處理后的LISP映射注冊消息的“Key ID”字段,其值為測試消息模塊所接收到的“公鑰”參數(shù)值;
2.4.1.7測試報(bào)文生成模塊使用安全散列算法對經(jīng)過2.4.1.6步處理后的標(biāo)準(zhǔn)LISP映射注冊消息進(jìn)行運(yùn)算,并將計(jì)算得出的字符串作為認(rèn)證數(shù)據(jù)字段的值,得到LISP映射注冊消息。
5.如權(quán)利要求1所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于2.4.2步所述測試報(bào)文生成模塊設(shè)置測試注冊報(bào)文中LISP報(bào)文頭部的方法為:
2.4.2.1設(shè)置源RLOC字段和目的RLOC字段,其方法為:源RLOC字段的值為壓力測試軟件所在的服務(wù)器的IP地址,目的RLOC字段的值為“映射系統(tǒng)RLOC地址”參數(shù)值,即被測試映射系統(tǒng)的RLOC地址;
2.4.2.2LISP報(bào)文頭部的其他字段初始化為全0。
6.如權(quán)利要求1所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于2.4.3步所述測試報(bào)文生成模塊設(shè)置測試注冊報(bào)文報(bào)文中的UDP頭部的方法為:
2.4.3.1設(shè)置目的端口為4342;
2.4.3.2UDP報(bào)文頭部的其他字段初始化為全0。
7.如權(quán)利要求1所述的一種基于LISP的映射規(guī)模壓力測試方法,其特征在于所述socket套接字的目的地址為映射系統(tǒng)RLOC,目的端口為4342,源地址為壓力測試軟件所在的服務(wù)器的IP地址、源端口隨機(jī)確定。