李宏杰,徐行
(中國傳媒大學(xué) 動畫與數(shù)字藝術(shù)學(xué)院,北京 100024)
基于OPNET的CSMA/CD仿真與性能研究
李宏杰,徐行
(中國傳媒大學(xué) 動畫與數(shù)字藝術(shù)學(xué)院,北京 100024)
本文針對應(yīng)用了CSMA/CD協(xié)議的總線型局域網(wǎng)進(jìn)行仿真,研究數(shù)據(jù)包大小對網(wǎng)絡(luò)性能的影響。首先介紹了OPNET[1]仿真平臺,隨后概括說明使用CSMA/CD協(xié)議的以太網(wǎng)的碰撞窗口的計算方法,由計算公式推導(dǎo)出發(fā)送的數(shù)據(jù)包越大、使用CSMA/CD協(xié)議的以太網(wǎng)性能越高的推論,并使用 OPNET 軟件進(jìn)行了仿真實驗證明了推論。
OPNET;CSMA/CD;網(wǎng)絡(luò)仿真
CSMA/CD(Carrier Sense Multiple Access/Collision Detect),即載波監(jiān)聽多路訪問/沖突檢測方法,是一種爭用型的介質(zhì)訪問控制協(xié)議。其工作機(jī)制為:多臺計算機(jī)以多點接入的方式連接到總線上,不管是在發(fā)送前還是發(fā)送中,每個站都必須不停的檢測信道,以獲得發(fā)送權(quán)和進(jìn)行碰撞檢測。CSMA/CD采用IEEE 802.3[2]標(biāo)準(zhǔn),主要用于總線式以太網(wǎng)。
關(guān)于CSMA/CD的研究主要圍繞其在不同情景下的建模方法與性能分析進(jìn)行。為了改善以太網(wǎng)的性能,研究人員通常采用提出設(shè)想——理論分析——建立模型的理論分析方法,這樣的分析方法在面對復(fù)雜的網(wǎng)絡(luò)系統(tǒng)時會遇到一定的困難,這時使用準(zhǔn)確真實的仿真手段進(jìn)行研究就成了必選項,而國內(nèi)關(guān)于通過仿真手段對網(wǎng)絡(luò)性能的研究的資料還比較匱乏。本文給出一種通過仿真手段研究網(wǎng)絡(luò)性能的方法:采用OPNET軟件對總線型網(wǎng)絡(luò)進(jìn)行仿真,通過仿真手段對CSMA/CD的性能進(jìn)行研究,探究爭用期與網(wǎng)絡(luò)流量的關(guān)系,并對推論予以仿真實驗證明,進(jìn)而歸納出相應(yīng)結(jié)論。
隨著網(wǎng)絡(luò)的擴(kuò)充與復(fù)雜化,越來越需要一種合適的仿真技術(shù)來提高網(wǎng)絡(luò)設(shè)計的客觀性和結(jié)果的可靠性[3]。OPNET作為一個網(wǎng)絡(luò)仿真平臺,正是在這種需求下應(yīng)運而生。
1.1 OPNET產(chǎn)品
OPNET Modeler 是當(dāng)前業(yè)界領(lǐng)先的網(wǎng)絡(luò)技術(shù)開發(fā)環(huán)境,可以靈活應(yīng)用于通信網(wǎng)絡(luò)、設(shè)備、協(xié)議和應(yīng)用設(shè)計與研發(fā)。Modeler為通信網(wǎng)絡(luò)研發(fā)人員提供了建模、仿真以及分析的集成環(huán)境,大大減輕了編程以及數(shù)據(jù)分析的工作量。
Modeler 的面向?qū)ο蟮慕7椒ê蛨D形化的編輯器反映了實際網(wǎng)絡(luò)和網(wǎng)絡(luò)組件的結(jié)構(gòu),因此實際的系統(tǒng)可以直觀的映射到模型中。Modeler 支持所有通信網(wǎng)絡(luò)類型和技術(shù),可以解決復(fù)雜的網(wǎng)絡(luò)通信問題。
1.2 OPNET仿真流程
本文采用OPNET Modeler Academic Edition 17.5針對總線型網(wǎng)絡(luò)中的CSMA/CD的性能進(jìn)行仿真實驗,仿真實驗遵循一定的步驟[4,5]。歸納得出仿真流程如圖1所示。
圖1 基于OPNET的CSMA/CD性能仿真研究流程
2.1 爭用期的計算
爭用期(Contention Period),又稱為碰撞窗口(Collision Window)[6]。由于有網(wǎng)絡(luò)傳輸延遲的存在,每一個站在自己發(fā)送數(shù)據(jù)之后的一小段時間內(nèi),存在著遭遇碰撞的可能性,需要經(jīng)過至多兩倍端到端的時間并在這段時間內(nèi)沒有檢測到碰撞,才能肯定這次發(fā)送不會產(chǎn)生碰撞。因此,以太網(wǎng)的端到端的往返時間稱為爭用期。在IEEE 802.3中,對于10Mbps以太網(wǎng)規(guī)定了一個統(tǒng)一的爭用期時間標(biāo)準(zhǔn),為51.2μs。
在具體的網(wǎng)絡(luò)上,爭用期的計算如公式1所示。
w=b×c
(1)
其中,w為爭用期,b為帶寬(bandwidth),c為爭用期時間。
爭用期時間為兩倍端到端的延遲時間,計算如公式2所示。
c=2×d×l
(2)
其中,d為總線單位長度延遲(delay),l為總線長度(long)。
電磁波在1km電纜的傳播時延約為5μs,由于局域網(wǎng)上任意兩個站之間的傳播時延有長有短,因此局域網(wǎng)必須按照最壞情況設(shè)計,取總線兩端的兩個站(這兩個站距離最遠(yuǎn))之間的傳播時延為端到端傳播時延。以太網(wǎng)上最大的端到端傳輸時延必須小于爭用期的一半,由公式1和2知,以太網(wǎng)的最大端到端長度約為5km。
2.2 數(shù)據(jù)包大小與網(wǎng)絡(luò)性能
在實際應(yīng)用中,網(wǎng)絡(luò)鋪設(shè)好之后,由于總線單位長度延遲、帶寬、總線長度都已確定,由爭用期的計算公式可知爭用期也是已經(jīng)確定好的。因此,在CSMA/CD機(jī)制作用下,數(shù)據(jù)包的大小直接決定了數(shù)據(jù)包的碰撞次數(shù)和網(wǎng)絡(luò)性能。
我們作一個簡單的計算。假設(shè)現(xiàn)有兩個數(shù)據(jù)包,其大小分別為m字節(jié)和n字節(jié)(m,n∈[64,1500],m>n)。由于發(fā)送每個數(shù)據(jù)包都要進(jìn)行一次碰撞檢測,設(shè)長度為m字節(jié)和n字節(jié)的單個數(shù)據(jù)包發(fā)生碰撞的概率為pm和pn,令pm=x,則在相同的網(wǎng)絡(luò)環(huán)境下我們可以得出pn如公式3所示。
(3)
2.3 仿真網(wǎng)絡(luò)的構(gòu)建
我們在場景中建立一個總線型拓?fù)浣Y(jié)構(gòu)的以太網(wǎng),該網(wǎng)絡(luò)由30個節(jié)點通過同軸電纜連接而成,其中同軸電纜的數(shù)據(jù)傳輸速率是10Mbps。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2所示。
圖2 總線型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
在圖2所示的網(wǎng)絡(luò)上,我們構(gòu)建了四個相同的場景,四個場景中除了數(shù)據(jù)包大小不一樣以外,其它參數(shù)都是一樣的。由于以太網(wǎng)的單數(shù)據(jù)幀大小最小為64bytes,最大為 1500 bytes,為了更好的衡量網(wǎng)絡(luò)性能,我們設(shè)定數(shù)據(jù)包不會分片發(fā)送
為了保證在每個場景中鏈路利用率都能接近100%,我們需要計算出發(fā)包頻率,即發(fā)包的時間間隔。發(fā)包頻率的計算如公式4所示。
(4)
其中,M為帶寬(單位:bps),S為單個數(shù)據(jù)包大小(單位:bytes),N為連入總線型局域網(wǎng)的計算機(jī)節(jié)點數(shù),t為發(fā)包時間間隔,其倒數(shù)即為發(fā)包頻率。
由公式4可知,當(dāng)單個數(shù)據(jù)包大小越大,發(fā)包時間間隔也就越大。為了取一個恰當(dāng)?shù)陌l(fā)包時間間隔,使得四個場景中發(fā)送的數(shù)據(jù)包在沒有碰撞的理想狀況下鏈路利用率都能接近100%,令S=64 bytes,其余參數(shù)依照場景設(shè)定代入公式3,計算得出t>0.0014。因此,我們設(shè)定場景中的發(fā)包時間間隔為0.001,這樣就能保證所有場景中的鏈路利用率都能接近100%。
隨后我們按照表1所示參數(shù)配置所有場景中的網(wǎng)絡(luò)。由于表1中四個場景只有數(shù)據(jù)包的大小是不同的,因此下文的表格中將使用數(shù)據(jù)包大小來代表場景編號。
表1 網(wǎng)絡(luò)配置參數(shù)
根據(jù)表1與公式1和公式2,我們可以計算出實驗場景中的爭用期時間為1.74×10-6s,爭用期為17.4比特時間。即爭用期內(nèi)能夠發(fā)送17.4比特數(shù)據(jù),若未產(chǎn)生碰撞,則之后發(fā)送的數(shù)據(jù)一定不會產(chǎn)生沖突。
3.1 統(tǒng)計量選取
要對網(wǎng)絡(luò)性能進(jìn)行定量的研究,必須選定適當(dāng)?shù)男阅苤笜?biāo)[7]。根據(jù)前面的仿真需求,擬對下述網(wǎng)絡(luò)性能指標(biāo)統(tǒng)計量進(jìn)行收集。需要指出的是,OPNET在統(tǒng)計數(shù)據(jù)時,統(tǒng)計的時間間隔為0.15秒,OPNET對0.15秒之內(nèi)的數(shù)據(jù)量進(jìn)行統(tǒng)計,然后換算成平均每秒的數(shù)據(jù)量,并給出數(shù)據(jù)點。
發(fā)送流量:全局統(tǒng)計量,單位為bits/sec,其含義為整個網(wǎng)絡(luò)上所有節(jié)點每秒發(fā)送的流量。需要特別說明的是,這個統(tǒng)計量統(tǒng)計的是節(jié)點所發(fā)出的流量,節(jié)點發(fā)出的數(shù)據(jù)包到達(dá)MAC層(Media Access Control,媒體訪問控制,為數(shù)據(jù)鏈路層的下層)后,一旦通過CSMA/CD協(xié)議檢測到鏈路正忙,就會將該數(shù)據(jù)包丟棄。選擇該統(tǒng)計量的意義就在于確定我們發(fā)出的流量在無碰撞檢測的理想情況下鏈路利用率能接近100%。
發(fā)送數(shù)據(jù)包量:全局統(tǒng)計量,單位為packets/sec,其含義為整個網(wǎng)絡(luò)上所有節(jié)點每秒發(fā)送的數(shù)據(jù)包數(shù)量;
接收流量:全局統(tǒng)計量,單位為bits/sec,其含義為整個網(wǎng)絡(luò)上所有節(jié)點每秒接收的流量;
沖突數(shù):節(jié)點統(tǒng)計量,單位為數(shù)量,其含義為每秒所選節(jié)點發(fā)送的所有數(shù)據(jù)包中發(fā)生沖突的數(shù)量;
鏈路利用率:全局統(tǒng)計量,單位為百分比,其含義為當(dāng)前時刻鏈路的利用率。
設(shè)定仿真持續(xù)時間為15秒,其中啟動時間為5秒,并收集相應(yīng)的統(tǒng)計結(jié)果。
3.2 仿真與分析
在OPNET中分別運行四個場景,打開結(jié)果面板,選擇相應(yīng)統(tǒng)計量并導(dǎo)出數(shù)據(jù)。
首先我們對流量進(jìn)行處理,結(jié)果如表2和圖3及圖4所示。
表2 流量統(tǒng)計
圖3 接收流量統(tǒng)計
圖4 鏈路利用率統(tǒng)計
實驗所用的帶寬為10Mbps,由表3中的平均發(fā)送流量可知,四個場景的鏈路利用率都能接近100%。由每秒平均發(fā)送數(shù)據(jù)包量可知,四個場景發(fā)送的數(shù)據(jù)包量基本相同,證明了四個場景中都在以相同頻率發(fā)送數(shù)據(jù)包。
由圖3和圖4可知,在四個場景中,平均接收流量隨著單個數(shù)據(jù)包大小的增加而增加,并逐漸逼近帶寬。因此,增大數(shù)據(jù)包的大小能夠提高鏈路利用率。
接下來對沖突數(shù)進(jìn)行處理。我們隨機(jī)選取4個節(jié)點,搜集其沖突數(shù)統(tǒng)計量并計算在15s內(nèi)各節(jié)點總的沖突數(shù),結(jié)果如表3和圖5所示。
表3 節(jié)點的沖突數(shù)
圖5 節(jié)點的沖突數(shù)
由圖5可以明顯看出,單個數(shù)據(jù)包越大,沖突數(shù)就會越小。
綜合前面的分析可知,由于我們的發(fā)包間隔是固定的,因此當(dāng)單個數(shù)據(jù)包大小越小,網(wǎng)絡(luò)性能也就越差。當(dāng)單個數(shù)據(jù)包越大,產(chǎn)生的沖突也就越少,實際接收的流量也就越大,鏈路利用率也就越高。
綜上所述,在設(shè)計總線式局域網(wǎng)絡(luò)的時候,由于數(shù)據(jù)包大小是根據(jù)實際傳輸內(nèi)容而定,因此應(yīng)著力于降低爭用期。根據(jù)公式1-3可知,提高網(wǎng)絡(luò)性能的方式主要有以下幾點:
1)采用延遲更低的網(wǎng)絡(luò)傳輸介質(zhì);
2)縮短總線長度:過長的總線會導(dǎo)致較高的延遲,應(yīng)改用更短的總線進(jìn)行網(wǎng)絡(luò)傳輸;
3)采用更大的帶寬:單位時間內(nèi)能夠發(fā)送更多的數(shù)據(jù)包,能夠有效減少數(shù)據(jù)包的沖突,提高網(wǎng)絡(luò)性能。
4)在單個數(shù)據(jù)包大小小于1500bytes(即無需分幀)以及鏈路利用率比較低的情況下,可以采用比較大的數(shù)據(jù)包發(fā)送數(shù)據(jù)以減少沖突;
5)減少總線上連接的計算機(jī)節(jié)點數(shù)量。
目前在計算機(jī)網(wǎng)絡(luò)領(lǐng)域,國內(nèi)關(guān)于使用OPNET進(jìn)行網(wǎng)絡(luò)仿真的文獻(xiàn)很少,而這種仿真技術(shù)可以非常有效和簡單的評價網(wǎng)絡(luò)性能[7]。本文詳細(xì)的介紹了采用CSMA/CD的總線型網(wǎng)絡(luò)OPNET建模與仿真的整個過程,通過仿真實驗證明數(shù)據(jù)包大小越大,網(wǎng)絡(luò)性能就越好的猜想,并提出了相應(yīng)的網(wǎng)絡(luò)優(yōu)化方法。
這些優(yōu)化方法不僅可以應(yīng)用于傳統(tǒng)計算機(jī)網(wǎng)絡(luò)領(lǐng)域,還可以用于優(yōu)化工業(yè)控制系統(tǒng)中的工業(yè)局域網(wǎng)。
由于在計算機(jī)網(wǎng)絡(luò)領(lǐng)域,通過布置實際網(wǎng)絡(luò)來進(jìn)行理論驗證的方式存在著成本高、耗時長、網(wǎng)絡(luò)難以搭建的問題,更多的使用仿真手段進(jìn)行研究將成為一個趨勢。本文提出實現(xiàn)的基于OPNET進(jìn)行網(wǎng)絡(luò)仿真的研究方法能夠加深對CSMA/CD機(jī)制的理解,并能夠給其它計算機(jī)網(wǎng)絡(luò)的研究以方法上一定的啟發(fā)。
[1]OPNET,http://www.opnet.com/university_program/itguru_academic_edition/[OL].
[2]IEEE 802.3,http://www.ieee802.org/3/[OL].
[3]陳長興,高曉光,張敬偉.基于OPNET的網(wǎng)絡(luò)仿真[J].空軍工程大學(xué)學(xué)報(自然科學(xué)版),2007,8(2):86-88.
[4]石懷偉,王華,張念軍.OPNET網(wǎng)絡(luò)仿真技術(shù)及其應(yīng)用分析[J].計算機(jī)工程與設(shè)計,2006,27(17):3309-3311.
[5]伍俊洪,楊洋,李惠杰.網(wǎng)絡(luò)仿真方法和OPNET仿真技術(shù)[J].計算機(jī)工程,2004,30(5):106-108.
[6]謝希仁.計算機(jī)網(wǎng)絡(luò)(第六版)[M].電子工業(yè)出版社,2013.
[7]李笑歌,宇偉,高尚偉.基于OPNET軟件的數(shù)據(jù)網(wǎng)絡(luò)建模與仿真研究[J].系統(tǒng)仿真學(xué)報,2006,18(9):2653-2656.
(責(zé)任編輯:馬玉鳳)
Research of Ethernet Performance Based on CSMA/CD Using OPNET Simulator
LI Hong-jie,XU Xing
(School of Animation and Digital Arts,Communication University of China,Beijing 100024)
In this paper we simulated a Bus Local Area Network which is based on CSMA/CD,and investigated how different sizes of packet affect network performance.We first introduced OPNET simulation software,then explained the calculation of collision window in CSMA/CD and got the deduction that larger packet will bring better network performance.Finally,we conducted a set of experiments using OPNET simulator to prove our deduction.
OPNET;CSMA/CD;network simulation
2015-03-15
李宏杰(1991-),男(壯族),廣西南寧人,中國傳媒大學(xué)碩士研究生.E-mail:nntt19@163.com
TP393.0
A
1673-4793(2015)06-0067-05