馬文君 王 磊
(1.解放軍91033部隊 青島 266000)(2.解放軍91049部隊 青島 266000)
隨著用戶的增加以及資源的消耗,電話網絡阻塞日益嚴重,遠不能滿足人們的需求。基于此,通過仿真話務量模擬各局間電路的使用情況,分析網絡阻塞的原因并提出改進措施已成為解決此類問題的最有效方法[1~3]。
話務量(Erl)是指單位時間(一般為1h)內用戶的平均占線時長,實際統計時都是取某段時間內用戶忙時的話務量[4~6]。
以圖1中的拓撲結構為例對話務量的產生進行說明。
節點1為一級用戶交換機,節點2為二級用戶交換機,節點3,4為端局交換機。話務量假設:
1)節點1承載500個用戶,向節點2的出局話務量需求每線0.15erl。

圖1 節點交換機示例拓撲結構
2)節點2承載500個用戶,10%的用戶向節點1的出局話務量需求每線0.11erl;90%的用戶向節點3和節點4的出局話務量需求為每線0.06erl。
3)節點3和節點4分別承載300個用戶,其中10%的用戶向節點1的出局話務量為每線0.05erl;20%的用戶向節點2的出局話務量為0.08erl;節點3->節點4,節點4->節點3的出局話務量為每線0.03erl(10%的用戶)。
根據以上需求對節點間的話務量進行計算:
節點1->節點2:500×0.15=75erl;
節點2->節點1:500×10%×0.11=5.5erl;
節點2->節點3:500×90%×0.06×[300/(300+300)]=13.5erl;
節點2->節點4:500×90%×0.06×[300/(300+300)]=13.5erl;
節點3->節點1:300×10%×0.05=1.5erl;
節點3->節點2:300×20%×0.08=4.8erl;
節點3->節點4:300×10%×0.03=0.9erl;
節點4->節點1:300×10%×0.05=1.5erl;
節點4->節點2:300×20%×0.08=4.8erl;
節點4->節點3:300×10%×0.03=0.9erl。
因此根據話務量需求得到的局間話務量矩陣為

利用VC++模擬話務量的產生即根據上述方法。
2.2.1 輸入文件《demand_properties.txt》
《demand_properties.txt》中的數據含義以表 1為例進行說明。

表1 節點3話務分布屬性
屬性說明:
1)Node_ID 3:表示此節點的編號為3;
2)Node_name一級節點:表示該節點名稱為一級節點;
3)User_number 100:表示此節點承載的用戶數目為100;
4)grade 0:grade為級別標志,0表示此節點的級別為一級節點(本程序的grade共包括0、1、2共3個級別;其中0、1、2分別對應一級、二級以及端局;
5)area 0:area為區域標志,0表示此節點在一級所在地(本程序的area共包括0、1、2共3個區域;分別對應一級所在地、二級所在地、端局所在地;
6)type行政部門:type為節點類別標志,行政部門表示此節點屬行政類(本程序的type共包括行政部門、后勤部門、管理部門、教學部門共4個類別;
7)properties:properties為節點出局話務屬性標志,表示后面的內容全部屬于節點出局話務屬性部分。
8)0.3一級全網向下:此節點承載的用戶中有30%的用戶與二級及端局有通信需求;
9)0.2一級橫向:此節點承載的用戶中有20%的用戶與同級別節點有通信需求。
2.2.2 輸入文件《group.txt》
《group.txt》是對《demand_properties.txt》中各節點話務分布屬性的概述,即與某一節點有通信需求的其他節點的屬性集合。具體數據含義以文本1為例進行說明。
文本1一級全網向下屬性集合

文本1中,如果一個節點的屬性(properties)中有“一級全網向下”,則表示此節點與級別(grade)為1(二級),區域(area)為1~2中的任何一個,節點類別(type)不限的節點有通信需求。圖2為利用VC++模擬局間話務量的產生情況。

圖2 局間話務量的產生
根據當前網絡資源的占用情況,從業務量對應的源宿節點對的最短路由集合中選擇路由。根據“先直達、后迂回”的原則,本文采用K-shortest算法求解路由,即為每對業務需求找k條符合實際需求的最短路,選擇最短的一條作為傳輸路徑。若最短路無法滿足需求,則選擇次短路;若次短路仍然無法滿足需求,則選擇下一次短路;以此類推,直到選到合適的路由,并分配資源。如果所有的備選路均無法滿足需求,則此業務量即此次呼叫無法連通。
采用網絡仿真的方法研究電話網性能時同樣選取K-shortest路由算法。
2.4.1 輸入文件《topology.txt》
文件《topology.txt》主要用于描述實際網絡拓撲的基本信息。具體的數據含義以文本2為例進行說明。
文本2網絡拓撲輸入文件部分數據

文本2中,每一行代表網絡中一條有向鏈路的基本信息。第一列數據的物理含義為鏈路的源節點;第二列數據表示鏈路的目的節點;第三列表示鏈路的權重(即根據權重和最小的原則選取最短路);第四列表示該鏈路的帶寬資源。這里的帶寬資源是以干線時隙為基本單位。
2.4.2 輸入《traffics.txt》
《traffics.txt》即為話務量生成程序的輸出文件(圖2所示)。圖3為基于VC++的仿真結果。

圖3 仿真結果顯示
2.4.3 仿真結果的收集
收集的仿真結果為各局間鏈路的利用率(列舉部分),如表2所示。

表2 Circuit Trunks.Utilization(%)
3.1.1 網絡仿真拓撲的構建
本文所仿真的節點數共187個,對于節點數多且網絡分布比較復雜的情況下,手工繪制拓撲圖的做法不可取。OPNET中的拓撲快速配置(Rapid Topology Configuration)功能只適用于有限種類的拓撲結構,且生成的模型節點可能重疊。針對這種情況,OPNET提供了基于EMA文件的網絡拓撲導入功能[7~8]。
EMA(外部模型訪問)技術通過類C和C++語言使OPNET在沒有圖形編輯器的情況下實現網絡模型的讀寫控制[9],如圖4所示。

圖4 利用EMA實現網絡拓撲模型的讀寫控制
拓撲構建的具體流程如下:
1)打開OPNET控制臺窗口,進入EMA代碼文件(后綴名為*.em.c)所在目錄,輸入命令op_mkema-m文件名(本例為tele_circuit-EMA,不加后綴);執行剛創建的可執行文件<文件名.i0.em.x>。具體如圖5所示。

圖5 后臺運行過程
2)點擊菜單File->Model Files->Refresh Model Directories刷新模型目錄,然后點擊Scenarios→Scenario Components→import…即可。
由以上三種拓撲構建方法可以看出,在網絡節點數多且分布不規律的情況下,利用EMA技術生成網絡節點的做法是可取的,減少了仿真前期的工作量。所生成的網絡拓撲如圖6所示。
3.1.2 仿真話務量選擇
如表3所示,各級別節點的話務量大小如下:

圖6 網絡仿真拓撲

表3 話務量統計
1)一級局的話務量最大,其忙時話務量為0.15er;
2)二級局對上和對下的話務量差別不大,但對下的話務量一般都是通過本區域的網絡直達端局的節點,對其他節點和干線幾乎沒有影響,所以其忙時話務量為二級局到一級局和橫向的話務量之和,即0.06er;
3)端局對本區域內一級和二級局的話務是最大的,但本區域的話務對其他節點和干線幾乎沒有影響,所以選擇端局的橫向話務量為0.01er。仿真時各級節點選取的單位用戶話務量大小如表4所示。

表4 各級局的出局話務量
3.1.3 仿真結果的收集
收集的仿真結果為各局間鏈路的利用率,如表5所示。

表 5 Circuit Trunks.Utilization(%)
OPNET 10.5利用離散事件仿真(DES)的機理進行電話網性能研究,無論是仿真的繁瑣程度或是仿真效率都是不可取的。
雖然OPNET10.5里提供的Flow Analysis模塊[10]可以提高仿真運行速度,但其需要首先導入背景流量(background traffics),而 background traffics的構建只適用于IP-enabled類節點,且對于電路交換,只有OPNET中的promina節點模塊族支持背景流量的導入和Flow Analysis功能。這種缺陷使得Flow Analysis模塊的運用受到了限制。
因此OPNET14.5做了改進,使用Flow Analysis模塊研究電話網性能時,不再局限于promina節點模塊族,普通的電路交換節點設備即可滿足(如圖7所示)。因此仿真的繁瑣和仿真的效率較10.5版本都有了較大的提高。

圖7 OPNET 14.5中的背景流量導入(黑色雙向虛箭頭)
為舉例說明,圖8為OPNET 14.5中局間鏈路2->10方向上的背景流量(話務量)導入界面。

圖8 背景流量設置
收集的仿真結果為各局間鏈路的利用率,如表6所示。

表 6 Circuit Trunks.Utilization(%)
由前面三種研究電話網性能的方法可知,三種方法所得到的結果雖然相似,但是三種方法所耗費的時間卻是迥異的。據粗略估計,不包括前期相關模型建立和參數配置花費的時間,其中數學分析的方法總共耗時3h才運行出結果,基于OPNET10.5仿真平臺中的DES機制總共運行了2分31s,而利用OPNET14.5中的Flow analysis機制總共的運行時間僅為5s。因此基于OPNET14.5中流分析機制的話音網絡性能研究方法是一個不錯的選擇。