專利名稱:一種動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于一種計算機(jī)軟件與網(wǎng)絡(luò)通信技術(shù),具體地講是一種動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng)。
背景技術(shù):
在真實的網(wǎng)絡(luò)環(huán)境中,各路由協(xié)議(或算法)所用于計算路由的狀態(tài)信息是不精確的。導(dǎo)致這種不精確性的原因主要有①鏈路存在不可忽略的傳輸延遲;②狀態(tài)信息的更新不可能太頻繁;③拓?fù)渚奂倪^程忽略了某些狀態(tài)信息。其中,鏈路的傳輸延遲不能忽略卻又客觀存在,無法消除或減少,只能通過改進(jìn)路由算法來容納這種不精確性的存在;但對于后兩者,可以通過采用相應(yīng)有效的算法或策略來減小它們的影響。真實的網(wǎng)絡(luò)環(huán)境是一個動態(tài)而復(fù)雜的系統(tǒng),決定網(wǎng)絡(luò)動態(tài)的因素是狀態(tài)信息的動態(tài)性,而狀態(tài)信息的不精確性也主要是由它的動態(tài)性決定的。動態(tài)狀態(tài)信息主要包括①網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu);②鏈路剩余帶寬的大??;③節(jié)點(diǎn)中數(shù)據(jù)隊列的長度。如何模擬這些狀態(tài)信息是設(shè)計一套動態(tài)路由仿真系統(tǒng)必須事先考慮的問題。對于拓?fù)浣Y(jié)構(gòu)變化的模擬,NS2的路由協(xié)議模型中有了現(xiàn)成的網(wǎng)絡(luò)動態(tài)模型,可以直接借用。而對于鏈路剩余帶寬的頻繁波動以及節(jié)點(diǎn)中數(shù)據(jù)隊列的長度變化,則可以通過設(shè)定數(shù)據(jù)流的類型和特性來仿真。
NS2作為DRS的開發(fā)平臺,對DRS的設(shè)計與實現(xiàn)起著至關(guān)重要的作用,網(wǎng)絡(luò)仿真軟件NS2是美國DARPA所資助的VINT項目的核心部分,主要由LBNL、CMU、UCB、USC/ISI和Xerox PARC等大學(xué)與研究機(jī)構(gòu)合作開發(fā),現(xiàn)由USC/ISI維護(hù)。其目的是構(gòu)造虛擬的網(wǎng)絡(luò)平臺,提供一套研究與開發(fā)網(wǎng)絡(luò)協(xié)議和算法的仿真工具。NS2的軟件包主要由Tcl/Tk、OTcl、Ns和TclCL組成。其中Tcl是一種開放式的腳本語言,其語法結(jié)構(gòu)與C語言類似,而且提供了與C語言編程的接口,即可以將Tcl的程序代碼嵌入到C的代碼中;這種腳本語言最明顯的特點(diǎn)就是其解釋器能夠很容易地嵌入到其它的應(yīng)用程序之中,因此,NS2將它作為自己的編程語言,實現(xiàn)網(wǎng)絡(luò)仿真。Tk是與Tcl相配套的圖形開發(fā)工具包,用于圖形界面的編程。OTcl則是Tcl面向?qū)ο蟮恼Z言擴(kuò)展,其語法結(jié)構(gòu)與C++語言相似。Ns由模擬引擎和大量的仿真部件組成,是面向?qū)ο蟮姆抡嫫鳎彩荖S2軟件包的核心;其本身由C++寫成,并帶有一個前端的OTcl解釋器,能夠同時滿足兩種語言(C++和OTcl)的編程需要;習(xí)慣上經(jīng)常把Ns也稱為NS2。在TclCL中定義了許多類,用于提供OTcl與C++的編程接口,使由C++編寫的網(wǎng)絡(luò)對象和變量能夠同時出現(xiàn)在兩種語言(C++和OTcl)中。
發(fā)明內(nèi)容
一套完整的網(wǎng)絡(luò)仿真系統(tǒng)通常應(yīng)包括模擬引擎、拓?fù)淠P?、協(xié)議模型、流量模型、跟蹤與監(jiān)視模型以及可視化后續(xù)處理工具等仿真部件,如圖1所示。其中模擬引擎是仿真系統(tǒng)的核心部件,它負(fù)責(zé)完成整個仿真系統(tǒng)的線程調(diào)度、處理器分配、事件隊列、時鐘同步設(shè)置等基本功能。拓?fù)淠P吞峁┚W(wǎng)絡(luò)拓?fù)涞幕静考?,包括各類?jié)點(diǎn)、鏈路以及拓?fù)湓偷?。協(xié)議模型模擬網(wǎng)絡(luò)協(xié)議的工作過程,對虛擬網(wǎng)絡(luò)中的動態(tài)數(shù)據(jù)流進(jìn)行相應(yīng)地操作。流量模型提供各種類型的流量發(fā)生器,模擬各類應(yīng)用程序,以產(chǎn)生虛擬網(wǎng)絡(luò)中的動態(tài)數(shù)據(jù)流。跟蹤與監(jiān)視模型是分析和評價協(xié)議(或算法)性能的基礎(chǔ),其主要功能是跟蹤、顯示和監(jiān)視仿真運(yùn)行的整個過程,采集虛擬網(wǎng)絡(luò)的性能狀態(tài)參數(shù)及輸出運(yùn)行結(jié)果??梢暬暮罄m(xù)處理工具主要用于觀察仿真運(yùn)行的過程以及顯示統(tǒng)計分析的結(jié)果。
本發(fā)明的目的是提供一種在NS2的路由協(xié)議模型中加入了有關(guān)狀態(tài)信息更新的新策略,設(shè)計出狀態(tài)更新觸發(fā)器、hold-down定時器等狀態(tài)信息的控制部件,同時對NS2的某些流量發(fā)生器作了改進(jìn),在NS2的協(xié)議模型中增加了資源預(yù)留、鏈路帶寬檢測、準(zhǔn)許接入控制以及按需路由計算等功能模塊的動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng)。
為了實現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是包括模擬引擎、拓?fù)淠P汀f(xié)議模型、流量模型、跟蹤與監(jiān)視模型以及可視化后續(xù)處理工具等仿真部件,其中協(xié)議模型主要包括QoS路由計算、資源預(yù)留和狀態(tài)信息更新三個功能模塊,其特點(diǎn)是狀態(tài)信息的更新有兩種,周期性更新和觸發(fā)式更新,周期性更新按照固定的時間間隔向網(wǎng)絡(luò)中的其它節(jié)點(diǎn)周期性地廣播更新消息;觸發(fā)式更新則通過檢測鏈路剩余帶寬的改變Δb來觸發(fā)更新消息的發(fā)送,其中Δb=|bnew(i,j)-bold(i,j)|bnew(i,j)---(1)]]>式中,bold(i,j)和bnew(i,j)分別為鏈路(i,j)狀態(tài)變化前后的剩余帶寬值。
本發(fā)明的有益效果在于(1)探索不同的狀態(tài)更新策略對狀態(tài)信息不精確性的影響規(guī)律,同時提出有效的狀態(tài)更新策略,并實現(xiàn)此功能模塊??梢詫崿F(xiàn)對狀態(tài)信息不精確性的模擬,也可以控制狀態(tài)信息的不精確性。
(2)設(shè)計出能夠模擬鏈路帶寬波動以及數(shù)據(jù)隊列長度變化的流量模型??梢阅M真實的網(wǎng)絡(luò)動態(tài)。
(3)考慮到QoS路由的需要,本發(fā)明還要設(shè)計出資源預(yù)留、準(zhǔn)許接入控制、鏈路帶寬檢測以及按需路由計算等功能模塊,作為對NS2路由協(xié)議模型的補(bǔ)充。
圖1為本發(fā)明的體系結(jié)構(gòu)框圖。
圖2為本發(fā)明的DRS的事件調(diào)度方式圖。
圖3為本發(fā)明的DRS的協(xié)議模型圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的描述。
本發(fā)明包括模擬引擎、拓?fù)淠P汀f(xié)議模型、流量模型、跟蹤與監(jiān)視模型以及可視化后續(xù)處理工具等仿真部件。
模擬引擎目前的網(wǎng)絡(luò)仿真軟件大多采用如圖1所示的體系結(jié)構(gòu),與這些仿真軟件類似,本發(fā)明的動態(tài)路由仿真軟件DRS也采用這種體系結(jié)構(gòu)進(jìn)行設(shè)計。其中模擬引擎是DRS的基礎(chǔ)仿真部件,它包括線程調(diào)度、處理器分配、事件隊列、時鐘同步設(shè)置等功能模塊。模擬引擎的設(shè)計思想具有通用性,通常采用事件驅(qū)動的方式,根據(jù)設(shè)定的時序事件隊列控制整個仿真過程的運(yùn)行,事件調(diào)度的時間單位是虛擬時鐘秒。模擬引擎的線程調(diào)度和處理器分配一般采用單線程的方式進(jìn)行,并發(fā)事件按先調(diào)度先分配(FSFD)的方式處理,不支持搶占式的處理器分配,如圖2所示。
協(xié)議模型DRS是以模擬網(wǎng)絡(luò)路由動態(tài)為主的仿真軟件,其協(xié)議模型主要包括QoS路由計算、資源預(yù)留和狀態(tài)信息更新三個功能模塊(當(dāng)然還包括大量的、NS2本身具有的或我們自己開發(fā)的輔助性模塊,如鏈路帶寬檢測、準(zhǔn)許接入控制等功能模塊),三者之間的關(guān)系如圖3所示?,F(xiàn)有的路由仿真軟件僅限于對網(wǎng)絡(luò)拓?fù)鋭討B(tài)的模擬,還不能對真實網(wǎng)絡(luò)的負(fù)載波動及其所引發(fā)的非精確狀態(tài)信息進(jìn)行有效地仿真,當(dāng)然,也缺少對QoS路由的支持。有關(guān)QoS路由算法的部分并不屬于設(shè)計仿真軟件的內(nèi)容,它屬于路由協(xié)議(或算法)開發(fā)的范疇。如前所述,網(wǎng)絡(luò)動態(tài)與非精確狀態(tài)信息的仿真主要通過對流量負(fù)載和狀態(tài)信息的更新進(jìn)行模擬來實現(xiàn)。
1.狀態(tài)信息的更新策略網(wǎng)絡(luò)狀態(tài)信息包括拓?fù)浣Y(jié)構(gòu)的連接性,鏈路的剩余帶寬、延遲和代價,以及節(jié)點(diǎn)的隊列延遲和代價。在這些狀態(tài)信息中,拓?fù)涞倪B接性、鏈路的傳輸延遲和代價以及節(jié)點(diǎn)的代價都具有相對的穩(wěn)定性,因此,最能影響路由動態(tài)的狀態(tài)信息是鏈路的剩余帶寬與節(jié)點(diǎn)的隊列延遲。需要說明的是,這里的隊列延遲與前面提到的隊列長度具有等效性。
傳統(tǒng)的路由協(xié)議(如PNNI和OSPF)只廣告拓?fù)溥B接性的信息,但在動態(tài)路由的過程中,某些動態(tài)的狀態(tài)信息(主要是指鏈路的剩余帶寬與節(jié)點(diǎn)的隊列延遲)也需要廣告到其它的節(jié)點(diǎn)中(采用flooding方式或通過生成樹廣播)。但由于鏈路的傳輸延遲以及狀態(tài)信息的頻繁波動,使得每個節(jié)點(diǎn)上有關(guān)其它節(jié)點(diǎn)與鏈路的狀態(tài)信息往往是過時的、不精確的。用δ表示狀態(tài)信息的不精確率δ=supremum{|bact(i,j)-bcal(i,j)bcal(i,j)}---(1)]]>式中,bact(i,j)表示在計算路由時鏈路(i,j)的實際剩余帶寬,bcal(i,j)表示用于路由計算的剩余帶寬。這些過時、不精確的狀態(tài)信息會嚴(yán)重地影響到QoS路由的計算,要盡量地保證這些狀態(tài)信息的及時性和精確性只能通過狀態(tài)更新來實現(xiàn)。
狀態(tài)信息的更新策略主要有兩種周期性更新和觸發(fā)式更新。周期性更新按照固定的時間間隔向網(wǎng)絡(luò)中的其它節(jié)點(diǎn)周期性地廣播更新消息;觸發(fā)式更新則通過檢測鏈路剩余帶寬的改變Δb來觸發(fā)更新消息的發(fā)送。
Δb=|bnew(i,j)-bold(i,j)|bnew(i,j)---(2)]]>式中,bold(i,j)和bnew(i,j)分別為鏈路(i,j)狀態(tài)變化前后的剩余帶寬值。周期性更新引入了一種可預(yù)測負(fù)載的狀態(tài)信息交換方式;觸發(fā)更新則可以提供更加精確的狀態(tài)信息,特別是在鏈路負(fù)載較重的情況下,觸發(fā)式更新能對很小的狀態(tài)改變產(chǎn)生反應(yīng),當(dāng)然其消息負(fù)載也較大。因此,通常將這兩種更新策略與hold-down定時器結(jié)合起來使用,hold-down定時器能對過快的狀態(tài)更新起到抑制的作用。
本發(fā)明使用一個帶有三個更新元素的混合更新模型,該模型包括一個更新觸發(fā)器(由鏈路剩余帶寬的改變來觸發(fā)狀態(tài)更新),一個hold-down定時器(用來保證狀態(tài)更新的最小時間間隔),和一個刷新周期(提供更新時間間隔的上界)。另外,在周期性更新的過程中,為了防止由于更新同步而產(chǎn)生負(fù)載峰值,對每條鏈路分配一個更新隨機(jī)數(shù),以產(chǎn)生連續(xù)、平滑的狀態(tài)更新。
2.更新參數(shù)的選擇頻繁的狀態(tài)更新可以保證狀態(tài)信息的及時性和精確性,但由此產(chǎn)生的大量更新消息會嚴(yán)重降低QoS路由的性能。我們用θ=2λhN/L表示單位時間內(nèi)每條鏈路的更新次數(shù)(式中各參數(shù)的含義請參照后面的內(nèi)容),以此來量化更新消息的負(fù)載。如何選擇狀態(tài)更新參數(shù)主要由路由阻塞率、資源預(yù)留失敗率、更新消息負(fù)載、流量負(fù)載類型以及網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)等因素來決定。
(1)刷新周期刷新周期越長,更新消息的負(fù)載及處理資源的消耗就越少,但狀態(tài)信息的不精確度也越高。大粒度(較大的刷新周期)的狀態(tài)刷新會增加連接的阻塞率(包括路由阻塞率和資源預(yù)留失敗率),尤其會增加對路由性能有顯著不利影響的資源預(yù)留失敗率;特別是在數(shù)據(jù)流的持續(xù)時間較短、拓?fù)浣Y(jié)構(gòu)比較稀疏的情況下,這種不利的影響會表現(xiàn)得更加明顯。與觸發(fā)更新和hold-down定時器結(jié)合起來使用,這里的刷新周期一般為產(chǎn)生連接請求時間間隔的30倍左右。
(2)觸發(fā)粒度大粒度的觸發(fā)可以減少處理資源的開銷和更新消息的負(fù)載。盡管連接的阻塞率幾乎與觸發(fā)粒度的大小無關(guān),但大粒度的觸發(fā)可以降低路由阻塞率,同時增加資源預(yù)留失敗率。總體來講,網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)和流量類型與觸發(fā)粒度的關(guān)系不大,在選擇觸發(fā)粒度時可以不考慮對它們的影響。根據(jù)以上的分析,通常選擇一個較大粒度的觸發(fā)器,同時選用一個較小時間的hold-down定時器來阻止過于頻繁的觸發(fā)更新。
(3)Hold-down時間增大hold-down定時器的時間會增加資源預(yù)留的失敗率,hold-down定時器的時間通常被設(shè)定得很小,一般為產(chǎn)生連接請求時間間隔的1-2倍。
流量模型在設(shè)計DRS的流量模型時本發(fā)明借用了NS2的某些動態(tài)流量發(fā)生器,同時也保留了NS2的靜態(tài)流量模型。本發(fā)明所用到的動態(tài)流量發(fā)生器主要有EXPOO發(fā)生器、POO發(fā)生器和Trace發(fā)生器,其作用是模擬應(yīng)用程序產(chǎn)生具有不同特征的數(shù)據(jù)流。在靜態(tài)流量模型中,節(jié)點(diǎn)以恒定的速率發(fā)送數(shù)據(jù),以產(chǎn)生持續(xù)不變的流量,這種流量模型主要由NS2的CBR流量發(fā)生器組成。
(1)流量類型在整個網(wǎng)絡(luò)拓?fù)渲?,本發(fā)明采用隨機(jī)的方式選擇源節(jié)點(diǎn)和目的節(jié)點(diǎn)對。每個源節(jié)點(diǎn)所產(chǎn)生的連接請求數(shù)在一個時間間隔內(nèi)滿足Poisson分布,其時間間隔為15秒,到達(dá)率為λ。源節(jié)點(diǎn)上的連接請求也可以以單一突發(fā)的方式產(chǎn)生,請求到達(dá)的時間間隔符合形狀參數(shù)為a的Weibull分布。
(2)流的特征流的特征對QoS路由計算、狀態(tài)更新以及狀態(tài)信息的不精確性都有很大的影響。為了便于在實驗中比較性能,本發(fā)明設(shè)定流的持續(xù)時間滿足兩種分布指數(shù)分布和Pareto分布,其中指數(shù)分布的平均時間為τ,Pareto分布的形狀參數(shù)α=2.5。全部流的帶寬值在區(qū)間[b-s/2,b+s/2]上均勻分布,其中b為帶寬的平均值,一般為鏈路容量的2-5%,s為帶寬的變化量,通常為鏈路容量的5-10%。
最后,本發(fā)明引入網(wǎng)絡(luò)負(fù)載系數(shù)ρ=λτbhN/L,式中,N和L分別為網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)和鏈路數(shù),h為全部源-目的節(jié)點(diǎn)對之間的平均距離(用跳數(shù)表示)。
本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
權(quán)利要求
1.一種動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng),包括模擬引擎、拓?fù)淠P?、協(xié)議模型、流量模型、跟蹤與監(jiān)視模型以及可視化后續(xù)處理工具等仿真部件,其中協(xié)議模型主要包括QoS路由計算、資源預(yù)留和狀態(tài)信息更新三個功能模塊,其特征在于狀態(tài)信息的更新有兩種,周期性更新和觸發(fā)式更新,周期性更新按照固定的時間間隔向網(wǎng)絡(luò)中的其它節(jié)點(diǎn)周期性地廣播更新消息;觸發(fā)式更新則通過檢測鏈路剩余帶寬的改變Δb來觸發(fā)更新消息的發(fā)送,其中Δb=|bnew(i,j)-bold(i,j)|bnew(i,j)---(1)]]>式中,bold(i,j)和bnew(i,j)分別為鏈路(i,j)狀態(tài)變化前后的剩余帶寬值。
2.如權(quán)利要求1所述的動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng),其特征在于流量模型借用了NS2的某些動態(tài)流量發(fā)生器,同時也保留了NS2的靜態(tài)流量模型,所用到的動態(tài)流量發(fā)生器主要有EXP00發(fā)生器、P00發(fā)生器和Trace發(fā)生器,其作用是模擬應(yīng)用程序產(chǎn)生具有不同特征的數(shù)據(jù)流,在靜態(tài)流量模型中,節(jié)點(diǎn)以恒定的速率發(fā)送數(shù)據(jù),以產(chǎn)生持續(xù)不變的流量,這種流量模型主要由NS2的CBR流量發(fā)生器組成(1)流量類型在整個網(wǎng)絡(luò)拓?fù)渲?,采用隨機(jī)的方式選擇源節(jié)點(diǎn)和目的節(jié)點(diǎn)對,每個源節(jié)點(diǎn)所產(chǎn)生的連接請求數(shù)在一個時間間隔內(nèi)滿足Poisson分布,其時間間隔為15秒,到達(dá)率為λ,源節(jié)點(diǎn)上的連接請求也可以以單一突發(fā)的方式產(chǎn)生,請求到達(dá)的時間間隔符合形狀參數(shù)為a的Weibull分布;(2)流的特征設(shè)定流的持續(xù)時間滿足兩種分布指數(shù)分布和Pareto分布,其中指數(shù)分布的平均時間為τ,Pareto分布的形狀參數(shù)α=2.5,全部流的帶寬值在區(qū)間[b-s/2,b+s/2]上均勻分布,其中b為帶寬的平均值,一般為鏈路容量的2-5%,s為帶寬的變化量,通常為鏈路容量的5-10%;引入網(wǎng)絡(luò)負(fù)載系數(shù)ρ=λτbhN/L式中,N和L分別為網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)和鏈路數(shù),h為全部源-目的節(jié)點(diǎn)對之間的平均距離。
全文摘要
本發(fā)明涉及一種動態(tài)網(wǎng)絡(luò)路由仿真系統(tǒng),包括模擬引擎、拓?fù)淠P?、協(xié)議模型、流量模型、跟蹤與監(jiān)視模型以及可視化后續(xù)處理工具等仿真部件,其中協(xié)議模型主要包括QoS路由計算、資源預(yù)留和狀態(tài)信息更新三個功能模塊,其特點(diǎn)是狀態(tài)信息的更新有兩種,周期性更新和觸發(fā)式更新,周期性更新按照固定的時間間隔向網(wǎng)絡(luò)中的其它節(jié)點(diǎn)周期性地廣播更新消息;觸發(fā)式更新則通過檢測鏈路剩余帶寬的改變Δ
文檔編號H04L29/06GK1822560SQ20061001873
公開日2006年8月23日 申請日期2006年4月10日 優(yōu)先權(quán)日2006年4月10日
發(fā)明者李臘元, 李春林, 顏昕 申請人:武漢理工大學(xué)