涂繼輝 (長江大學電子信息學院,湖北 荊州434023)
湯元斌 (四川文理學院現(xiàn)代教育技術中心,四川 達州635000)
鄒學玉 (長江大學電子信息學院,湖北 荊州434023)
以太網(wǎng)無源光網(wǎng)絡 (Passive Optical Network,EPON)是將以太網(wǎng)技術與無源光網(wǎng)絡 (Passive Optical Network,PON)技術結合,其目標是用最簡單的方式實現(xiàn)一點到多點拓撲結構的千兆以太網(wǎng)光纖接入網(wǎng)絡。隨著EPON技術的普及和推廣,EPON已經(jīng)大規(guī)模應用于電信運營城市和農(nóng)村的寬帶接入,因此EPON網(wǎng)絡終端設備開通和維護的綜合測試儀表對于EPON網(wǎng)絡的維護具有重要的實用價值。
目前能夠進行網(wǎng)絡的測速軟件較多,歸納起來分為2類:一類是網(wǎng)絡命令附帶具有網(wǎng)絡測速功能,如ping命令等,此類軟件雖具有測速功能,但是測速效果不佳,并且還不具備良好的操作界面、實時顯示和統(tǒng)計結果的功能;另一類是基于Windows下的網(wǎng)絡測速軟件,該類軟件雖然具有良好的操作界面和基本的速度實時顯示統(tǒng)計功能,但一般很難脫離Windows的環(huán)境集成在專門的網(wǎng)絡維護儀表上。為此,筆者提出了一種利用FTP協(xié)議測試網(wǎng)絡速度的軟件。
網(wǎng)速[1]是衡量計算機網(wǎng)絡性能很重要的指標之一,是指網(wǎng)絡通信線路所能傳輸數(shù)據(jù)的能力,也就是熟稱的帶寬。圖1為網(wǎng)絡中t時間傳輸數(shù)據(jù)包P的曲線圖,瞬時網(wǎng)絡速度表現(xiàn)為曲線上某時間點切線的斜率值,可以用公式表示,網(wǎng)絡在某一時段的平均速率可以用公式表示。筆者采取的是采用近似的方法計算瞬時速率,即計算實際速率值在極短時間內(nèi)的上傳或者下載數(shù)據(jù)包變化量,用數(shù)據(jù)包的變化量除以所經(jīng)歷的時間,其結果就為網(wǎng)絡在該時刻的實時速率;用一段時間里數(shù)據(jù)包上傳或者下載的總量除以所需要的時間就是網(wǎng)絡的平均速率。
圖1 網(wǎng)絡數(shù)據(jù)包和傳輸時間關系圖
文件傳輸協(xié)議 (File Transfer Protocol,F(xiàn)TP)是TCP/IP協(xié)議組中的協(xié)議之一,工作在網(wǎng)絡的應用層,是常用的網(wǎng)絡文件傳輸協(xié)議,用戶可以通過該協(xié)議把文件上傳到遠程計算機上,或者把文件從遠程計算機上下載到本地計算機。測速軟件利用FTP協(xié)議傳輸文件的過程中,通過獲取在某個較小的時間傳輸文件變化量,計算出網(wǎng)絡的實時速率;通過獲取整個文件傳輸所需要的總時間,計算出網(wǎng)絡的平均速率。
該軟件所在的硬件平臺配置是Marvell 88f6560芯片/內(nèi)存256M/Flash128M/天馬4.3寸液晶屏。
筆者設計的軟件是嵌入在EPON測試儀表中,通過連接要測試鏈路中的FTP服務器,然后進行文件的上傳和下載來得到測試鏈路的網(wǎng)絡速度。整個軟件總體結構如圖2所示,主要由FTP連接模塊、網(wǎng)速計算模塊、數(shù)據(jù)實時顯示模塊和統(tǒng)計模塊4個部分組成。整個軟件通過消息事件進行控制和管理,在傳輸文件過程中,利用定時器每隔一定的時間向前臺顯示模塊通報實時傳輸文件的大小和速率,前臺通過曲線和進度條實時顯示。筆者設計的軟件是基于嵌入式Linux平臺,開發(fā)工具為Qt4.7[2]。
圖2 系統(tǒng)總體結構圖
FTP在進行文件傳輸之前首先要與FTP服務端之間建立連接,建立一條文件傳輸邏輯通道。FTP連接[5]建立又分為控制連接建立與數(shù)據(jù)連接建立2個階段:第1階段建立的連接是控制連接,控制連接用于發(fā)送FTP命令,接受FTP Server的應答。在控制連接建立之后,第2階段將進入建立數(shù)據(jù)傳輸連接階段,在數(shù)據(jù)傳輸連接建立之后,F(xiàn)TP客戶端就可以與FTP服務端進行文件的傳輸了。FTP支持主動模式 (Active模式)和被動模式 (Passive模式)2種工作模式。
該軟件的設計是利用了Qt下的QFtp類來進行FTP服務器的連接,如圖3所示。首先與FTP服務器連接,然后發(fā)送登陸服務器的用戶名和密碼,等待服務確認,當確認成功,客戶端就和服務器之間鏈路建立完成。
圖3 FTP建立連接的流程圖
網(wǎng)速計算模塊[6-7]是軟件的核心模塊,流程如圖4所示。它主要需要檢測文件傳輸過程中的實時網(wǎng)速、最大網(wǎng)速、最小網(wǎng)速和平均網(wǎng)速。在極短時間內(nèi)得到文件上傳或者下載的大小,就可以近似計算出網(wǎng)速。筆者利用Qt中的定時器來設置一個時間作為極短時間,當定時時間到了,就得到該段時間內(nèi)上傳或者下載文件的大小,利用此改變的大小除以定時器的時間,就得到該時刻的實時網(wǎng)速,同時用該網(wǎng)速與上一個時刻的最大網(wǎng)速和最小網(wǎng)速比較,來更新該時刻網(wǎng)絡的最大網(wǎng)速和最小網(wǎng)速。該軟件采用500ms作為一次速率計算的統(tǒng)計時間段。
Qt程序主要通過事件進行驅動,該軟件通過繪屏事件進行屏幕的顯示。每當產(chǎn)生一個新的實時速率,就觸發(fā)paintEvent事件函數(shù)進行實時顯示網(wǎng)絡速度。如果采用一般的實時繪圖方式,即繪制一次,刷新一次屏幕的方式,會引起整個圖像的閃爍。因此在用Qt繪制圖像時應該采用雙緩沖技術,即在內(nèi)存中創(chuàng)建一個與屏幕繪圖區(qū)域一致的對象,先將圖形繪制到內(nèi)存中的這個對象上,再一次性將這個對象上的圖形拷貝到屏幕上,這樣能大大加快繪圖的速度,并且避免圖像的閃爍。
統(tǒng)計模塊主要是當上傳下載結束后,統(tǒng)計出鏈路的最高網(wǎng)速、最低網(wǎng)速和平均網(wǎng)速。最高網(wǎng)速和最低網(wǎng)速數(shù)據(jù)傳輸?shù)倪^程中已經(jīng)實時統(tǒng)計出來,平均網(wǎng)速根據(jù)上文的公式利用傳輸?shù)臄?shù)據(jù)包總數(shù)除以傳輸時間即可得到,通過一個對話框在數(shù)據(jù)傳輸結束時顯示出統(tǒng)計的速度。
由于軟件需要在EPON的網(wǎng)絡測試儀上運行,因此在PC開發(fā)應用程序需要移植到EPON的網(wǎng)絡測試儀的開發(fā)板上。移植的步驟如下[3-4]:建立目標機交叉編譯器的編譯環(huán)境;交叉編譯Qt4.7并設置Qt4.7的環(huán)境變量;交叉編譯的Qt4.7環(huán)境下編譯網(wǎng)絡測速軟件;通過串口將編譯成功的網(wǎng)絡測速軟件燒錄在EPON測試儀的開發(fā)板上。
圖4 網(wǎng)速計算流程圖
測試是在局域網(wǎng)中進行,網(wǎng)絡結構如圖5所示。FTP服務器IP為192.168.1.100,端口默認為21。FTP測速軟件集成在EPON儀表中,啟動界面如圖6所示。筆者在另外一臺PC上安裝了FlashFXP軟件,和筆者設計的FTP測速軟件進行對比,起到驗證速率準確性的作用。測試分為2步進行:首先進行下載測試,然后進行上傳測試。
圖5 測試網(wǎng)絡結構圖
1)上傳測試 選擇的文件是ceshiwenjian2.rmvb, 文 件 大小為247.4Mb。圖7為FTP測速軟件和FlashFXP軟件上傳同一個文件時的實時上傳速度和上傳速率波形圖。圖8為FTP測速軟件和FlashFXP上傳完成后的文件信息、平均速度以及耗時。
圖6 FTP測速軟件的界面圖
圖7 上傳實時速度和速率波形圖
2)下載測試 ceshiwenjian.rmvb,文件大小為599Mb。圖9為FTP測速軟件和FlashFXP同時下載同一個文件時的實時下載速率和速率波形圖;圖10為FTP測速軟件和FlashFXP下載完成后的文件信息以及平均速度的顯示。
圖8 軟件上傳完成后的最大、最小和平均速度以及耗時
圖9 實時下載速度和速度波形圖
圖10 下載結果顯示對比圖
測試表明,該軟件具有良好的操作界面和可視化的實時顯示,與FlashFXP進行對比,軟件對網(wǎng)絡速率測試結果準確,性能穩(wěn)定。
筆者設計的EPON測試儀表下的網(wǎng)絡測速軟件不僅具有方便的操作界面和良好的可視化顯示,而且測速結果較為精確。該軟件經(jīng)過測試,表明具有穩(wěn)定的性能,對于網(wǎng)絡的維護和檢測起到了重要的實際作用。目前該集成此軟件的EPON測試儀已經(jīng)在實際中投入使用,收到了良好的效果。
[1]謝希仁 .計算機網(wǎng)絡 [M].第5版 .北京:電子工業(yè)出版社,2008.
[2]成潔,盧紫毅.Linux窗口程序設計——Qt4精彩實例分析 [M].北京:清華大學出版社,2008.
[3]任善全,呂強,錢培德,等 .一個基于Qt/Embedded的嵌入式Linux應用程序的實現(xiàn) [J].計算機應用與軟件,2006,32(2):105-107.
[4]顧怡祥,何吟,余執(zhí)鈞,等 .基于嵌入式Linux的綜合分析儀軟件設計與實現(xiàn) [J].計算機應用與軟件,2008,25(10):242-244,257.
[5]林耿仕,趙建華,鄭國梁 .支持共享的Ftp客戶端的設計 [J].計算機科學,2007,34(11):124-126,153.
[6]江浩,朱巧明,錢培德 .一種高效的FTP流量統(tǒng)計方法及應用 [J].計算機工程與科學,2007,29(1):30-32,69.
[7]顧煜炯,林慶乙,賀徙 .基于UDP與FTP協(xié)議的遠程振動監(jiān)測與故障診斷系統(tǒng)網(wǎng)絡通信方法 [J].儀器儀表學報,2006,27(6):413-415,422 .