馬文君 王 磊
(1.解放軍91033部隊 青島 266000)(2.解放軍91049部隊 青島 266000)
隨著用戶的增加以及資源的消耗,電話網(wǎng)絡(luò)阻塞日益嚴(yán)重,遠(yuǎn)不能滿足人們的需求。基于此,通過仿真話務(wù)量模擬各局間電路的使用情況,分析網(wǎng)絡(luò)阻塞的原因并提出改進(jìn)措施已成為解決此類問題的最有效方法[1~3]。
話務(wù)量(Erl)是指單位時間(一般為1h)內(nèi)用戶的平均占線時長,實際統(tǒng)計時都是取某段時間內(nèi)用戶忙時的話務(wù)量[4~6]。
以圖1中的拓?fù)浣Y(jié)構(gòu)為例對話務(wù)量的產(chǎn)生進(jìn)行說明。
節(jié)點1為一級用戶交換機(jī),節(jié)點2為二級用戶交換機(jī),節(jié)點3,4為端局交換機(jī)。話務(wù)量假設(shè):
1)節(jié)點1承載500個用戶,向節(jié)點2的出局話務(wù)量需求每線0.15erl。
圖1 節(jié)點交換機(jī)示例拓?fù)浣Y(jié)構(gòu)
2)節(jié)點2承載500個用戶,10%的用戶向節(jié)點1的出局話務(wù)量需求每線0.11erl;90%的用戶向節(jié)點3和節(jié)點4的出局話務(wù)量需求為每線0.06erl。
3)節(jié)點3和節(jié)點4分別承載300個用戶,其中10%的用戶向節(jié)點1的出局話務(wù)量為每線0.05erl;20%的用戶向節(jié)點2的出局話務(wù)量為0.08erl;節(jié)點3->節(jié)點4,節(jié)點4->節(jié)點3的出局話務(wù)量為每線0.03erl(10%的用戶)。
根據(jù)以上需求對節(jié)點間的話務(wù)量進(jìn)行計算:
節(jié)點1->節(jié)點2:500×0.15=75erl;
節(jié)點2->節(jié)點1:500×10%×0.11=5.5erl;
節(jié)點2->節(jié)點3:500×90%×0.06×[300/(300+300)]=13.5erl;
節(jié)點2->節(jié)點4:500×90%×0.06×[300/(300+300)]=13.5erl;
節(jié)點3->節(jié)點1:300×10%×0.05=1.5erl;
節(jié)點3->節(jié)點2:300×20%×0.08=4.8erl;
節(jié)點3->節(jié)點4:300×10%×0.03=0.9erl;
節(jié)點4->節(jié)點1:300×10%×0.05=1.5erl;
節(jié)點4->節(jié)點2:300×20%×0.08=4.8erl;
節(jié)點4->節(jié)點3:300×10%×0.03=0.9erl。
因此根據(jù)話務(wù)量需求得到的局間話務(wù)量矩陣為
利用VC++模擬話務(wù)量的產(chǎn)生即根據(jù)上述方法。
2.2.1 輸入文件《demand_properties.txt》
《demand_properties.txt》中的數(shù)據(jù)含義以表 1為例進(jìn)行說明。
表1 節(jié)點3話務(wù)分布屬性
屬性說明:
1)Node_ID 3:表示此節(jié)點的編號為3;
2)Node_name一級節(jié)點:表示該節(jié)點名稱為一級節(jié)點;
3)User_number 100:表示此節(jié)點承載的用戶數(shù)目為100;
4)grade 0:grade為級別標(biāo)志,0表示此節(jié)點的級別為一級節(jié)點(本程序的grade共包括0、1、2共3個級別;其中0、1、2分別對應(yīng)一級、二級以及端局;
5)area 0:area為區(qū)域標(biāo)志,0表示此節(jié)點在一級所在地(本程序的area共包括0、1、2共3個區(qū)域;分別對應(yīng)一級所在地、二級所在地、端局所在地;
6)type行政部門:type為節(jié)點類別標(biāo)志,行政部門表示此節(jié)點屬行政類(本程序的type共包括行政部門、后勤部門、管理部門、教學(xué)部門共4個類別;
7)properties:properties為節(jié)點出局話務(wù)屬性標(biāo)志,表示后面的內(nèi)容全部屬于節(jié)點出局話務(wù)屬性部分。
8)0.3一級全網(wǎng)向下:此節(jié)點承載的用戶中有30%的用戶與二級及端局有通信需求;
9)0.2一級橫向:此節(jié)點承載的用戶中有20%的用戶與同級別節(jié)點有通信需求。
2.2.2 輸入文件《group.txt》
《group.txt》是對《demand_properties.txt》中各節(jié)點話務(wù)分布屬性的概述,即與某一節(jié)點有通信需求的其他節(jié)點的屬性集合。具體數(shù)據(jù)含義以文本1為例進(jìn)行說明。
文本1一級全網(wǎng)向下屬性集合
文本1中,如果一個節(jié)點的屬性(properties)中有“一級全網(wǎng)向下”,則表示此節(jié)點與級別(grade)為1(二級),區(qū)域(area)為1~2中的任何一個,節(jié)點類別(type)不限的節(jié)點有通信需求。圖2為利用VC++模擬局間話務(wù)量的產(chǎn)生情況。
圖2 局間話務(wù)量的產(chǎn)生
根據(jù)當(dāng)前網(wǎng)絡(luò)資源的占用情況,從業(yè)務(wù)量對應(yīng)的源宿節(jié)點對的最短路由集合中選擇路由。根據(jù)“先直達(dá)、后迂回”的原則,本文采用K-shortest算法求解路由,即為每對業(yè)務(wù)需求找k條符合實際需求的最短路,選擇最短的一條作為傳輸路徑。若最短路無法滿足需求,則選擇次短路;若次短路仍然無法滿足需求,則選擇下一次短路;以此類推,直到選到合適的路由,并分配資源。如果所有的備選路均無法滿足需求,則此業(yè)務(wù)量即此次呼叫無法連通。
采用網(wǎng)絡(luò)仿真的方法研究電話網(wǎng)性能時同樣選取K-shortest路由算法。
2.4.1 輸入文件《topology.txt》
文件《topology.txt》主要用于描述實際網(wǎng)絡(luò)拓?fù)涞幕拘畔?。具體的數(shù)據(jù)含義以文本2為例進(jìn)行說明。
文本2網(wǎng)絡(luò)拓?fù)漭斎胛募糠謹(jǐn)?shù)據(jù)
文本2中,每一行代表網(wǎng)絡(luò)中一條有向鏈路的基本信息。第一列數(shù)據(jù)的物理含義為鏈路的源節(jié)點;第二列數(shù)據(jù)表示鏈路的目的節(jié)點;第三列表示鏈路的權(quán)重(即根據(jù)權(quán)重和最小的原則選取最短路);第四列表示該鏈路的帶寬資源。這里的帶寬資源是以干線時隙為基本單位。
2.4.2 輸入《traffics.txt》
《traffics.txt》即為話務(wù)量生成程序的輸出文件(圖2所示)。圖3為基于VC++的仿真結(jié)果。
圖3 仿真結(jié)果顯示
2.4.3 仿真結(jié)果的收集
收集的仿真結(jié)果為各局間鏈路的利用率(列舉部分),如表2所示。
表2 Circuit Trunks.Utilization(%)
3.1.1 網(wǎng)絡(luò)仿真拓?fù)涞臉?gòu)建
本文所仿真的節(jié)點數(shù)共187個,對于節(jié)點數(shù)多且網(wǎng)絡(luò)分布比較復(fù)雜的情況下,手工繪制拓?fù)鋱D的做法不可取。OPNET中的拓?fù)淇焖倥渲茫≧apid Topology Configuration)功能只適用于有限種類的拓?fù)浣Y(jié)構(gòu),且生成的模型節(jié)點可能重疊。針對這種情況,OPNET提供了基于EMA文件的網(wǎng)絡(luò)拓?fù)鋵?dǎo)入功能[7~8]。
EMA(外部模型訪問)技術(shù)通過類C和C++語言使OPNET在沒有圖形編輯器的情況下實現(xiàn)網(wǎng)絡(luò)模型的讀寫控制[9],如圖4所示。
圖4 利用EMA實現(xiàn)網(wǎng)絡(luò)拓?fù)淠P偷淖x寫控制
拓?fù)錁?gòu)建的具體流程如下:
1)打開OPNET控制臺窗口,進(jìn)入EMA代碼文件(后綴名為*.em.c)所在目錄,輸入命令op_mkema-m文件名(本例為tele_circuit-EMA,不加后綴);執(zhí)行剛創(chuàng)建的可執(zhí)行文件<文件名.i0.em.x>。具體如圖5所示。
圖5 后臺運(yùn)行過程
2)點擊菜單File->Model Files->Refresh Model Directories刷新模型目錄,然后點擊Scenarios→Scenario Components→import…即可。
由以上三種拓?fù)錁?gòu)建方法可以看出,在網(wǎng)絡(luò)節(jié)點數(shù)多且分布不規(guī)律的情況下,利用EMA技術(shù)生成網(wǎng)絡(luò)節(jié)點的做法是可取的,減少了仿真前期的工作量。所生成的網(wǎng)絡(luò)拓?fù)淙鐖D6所示。
3.1.2 仿真話務(wù)量選擇
如表3所示,各級別節(jié)點的話務(wù)量大小如下:
圖6 網(wǎng)絡(luò)仿真拓?fù)?/p>
表3 話務(wù)量統(tǒng)計
1)一級局的話務(wù)量最大,其忙時話務(wù)量為0.15er;
2)二級局對上和對下的話務(wù)量差別不大,但對下的話務(wù)量一般都是通過本區(qū)域的網(wǎng)絡(luò)直達(dá)端局的節(jié)點,對其他節(jié)點和干線幾乎沒有影響,所以其忙時話務(wù)量為二級局到一級局和橫向的話務(wù)量之和,即0.06er;
3)端局對本區(qū)域內(nèi)一級和二級局的話務(wù)是最大的,但本區(qū)域的話務(wù)對其他節(jié)點和干線幾乎沒有影響,所以選擇端局的橫向話務(wù)量為0.01er。仿真時各級節(jié)點選取的單位用戶話務(wù)量大小如表4所示。
表4 各級局的出局話務(wù)量
3.1.3 仿真結(jié)果的收集
收集的仿真結(jié)果為各局間鏈路的利用率,如表5所示。
表 5 Circuit Trunks.Utilization(%)
OPNET 10.5利用離散事件仿真(DES)的機(jī)理進(jìn)行電話網(wǎng)性能研究,無論是仿真的繁瑣程度或是仿真效率都是不可取的。
雖然OPNET10.5里提供的Flow Analysis模塊[10]可以提高仿真運(yùn)行速度,但其需要首先導(dǎo)入背景流量(background traffics),而 background traffics的構(gòu)建只適用于IP-enabled類節(jié)點,且對于電路交換,只有OPNET中的promina節(jié)點模塊族支持背景流量的導(dǎo)入和Flow Analysis功能。這種缺陷使得Flow Analysis模塊的運(yùn)用受到了限制。
因此OPNET14.5做了改進(jìn),使用Flow Analysis模塊研究電話網(wǎng)性能時,不再局限于promina節(jié)點模塊族,普通的電路交換節(jié)點設(shè)備即可滿足(如圖7所示)。因此仿真的繁瑣和仿真的效率較10.5版本都有了較大的提高。
圖7 OPNET 14.5中的背景流量導(dǎo)入(黑色雙向虛箭頭)
為舉例說明,圖8為OPNET 14.5中局間鏈路2->10方向上的背景流量(話務(wù)量)導(dǎo)入界面。
圖8 背景流量設(shè)置
收集的仿真結(jié)果為各局間鏈路的利用率,如表6所示。
表 6 Circuit Trunks.Utilization(%)
由前面三種研究電話網(wǎng)性能的方法可知,三種方法所得到的結(jié)果雖然相似,但是三種方法所耗費(fèi)的時間卻是迥異的。據(jù)粗略估計,不包括前期相關(guān)模型建立和參數(shù)配置花費(fèi)的時間,其中數(shù)學(xué)分析的方法總共耗時3h才運(yùn)行出結(jié)果,基于OPNET10.5仿真平臺中的DES機(jī)制總共運(yùn)行了2分31s,而利用OPNET14.5中的Flow analysis機(jī)制總共的運(yùn)行時間僅為5s。因此基于OPNET14.5中流分析機(jī)制的話音網(wǎng)絡(luò)性能研究方法是一個不錯的選擇。