摘要 提出利用數(shù)據(jù)綜合網(wǎng)管二期系統(tǒng)的Ping撥打測試模塊實現(xiàn)數(shù)據(jù)網(wǎng)端到端的帶寬測試方法,給出了依照現(xiàn)網(wǎng)數(shù)據(jù)進行測試的結果,對目前流行的帶寬測試方法進行了可行性探討。
隨著中國移動各種數(shù)據(jù)業(yè)務的開展,對于端到端用戶的服務質(zhì)量保證得到了越來越多的重視。很多業(yè)務的開展都要得到足夠的端到端可用帶寬的保證,對于運營商來說,核心運營網(wǎng)絡優(yōu)化工作的基礎必然是基于端到端的帶寬測量。對現(xiàn)有實際帶寬容量的測量不僅對于評估網(wǎng)絡工程質(zhì)量有一定的意義,而且還影響到網(wǎng)絡擴容以及資源利用率。市場上現(xiàn)有網(wǎng)管產(chǎn)品在帶寬測量上功能較單一,價格也非常昂貴,不適合集中網(wǎng)管的要求。針對這一需求,目前在中國移動數(shù)據(jù)綜合網(wǎng)管二期項目中已經(jīng)部署了Ping時延撥打測試的模塊,該模塊主要用于對數(shù)據(jù)設備和業(yè)務主機是否在線進行測試,并且獲取端到端的時延情況。
在這種情況下,山西移動利用現(xiàn)有的網(wǎng)管模塊,提出了一種利用Ping撥打測試來實現(xiàn)數(shù)據(jù)網(wǎng)端到端帶寬測試的方法。這種方法應用了流量工程里的可變包長探測的方法,能夠?qū)崿F(xiàn)端到端路徑上每一跳(hop)的帶寬估計。值得一提的是,只要對網(wǎng)管系統(tǒng)撥打測試模塊進行較少改造即可實現(xiàn)這一測試方法,因此性價比十分優(yōu)越。
1、改進探測方法
1.1 可變包長探測方法
可變包長探測方法利用了Ping測試的結果,主要是為了測試路徑上每一跳的容量帶寬。網(wǎng)絡管理員可以直接讀取路由器或者交換機的端口信息來獲取這類信息,但是對于端到端的網(wǎng)絡容量以及未在管理范圍內(nèi)的網(wǎng)絡容量就無從得知了,而且在實際網(wǎng)絡環(huán)境下,理論的端口信息與實際帶寬容量相差較大。另外,最終用戶和服務提供商只能通過帶寬估計而無法直接獲取網(wǎng)絡容量參數(shù)。對于工程上的線路質(zhì)量和網(wǎng)絡瓶頸這類問題,運營商也只能通過帶寬估計來發(fā)現(xiàn),這在實際網(wǎng)絡環(huán)境中有很大的不便。
可變包長探測主要是從源端到路徑上的任一設備發(fā)送不同大小的包,通過計算往返時延與包大小的函數(shù)關系來獲取路徑各段帶寬容量的方法。具體來說,首先利用IP包頭的TTL域(工作原理和常用的Tracerouter工具一樣),強制包在一個特定的跳上超時。這一跳的路由器將丟棄該探測包,并利用Internet控制消息協(xié)議(ICMP)的超時錯誤報文發(fā)回源設備。源設備就獲取到了路徑設備信息,然后就可以發(fā)送Ping測試包,通過接收到的ICMP報文計算出到這一跳的往返時延。
往返時延由三部分組成,第一部分是數(shù)據(jù)包被發(fā)送到線路上的時延,這部分時延和包的大小有關,假如數(shù)據(jù)包的長度為L,帶寬為C,則發(fā)送時延為T=L/C;第二部分是信號的傳輸時延,在數(shù)量級上目前基本上都達到了光速級別,與包的大小無關,只要不改變路徑,這部分時延就不會改變;第三部分是排隊時延,主要與路由器交換機的緩存有關,由于網(wǎng)絡內(nèi)數(shù)據(jù)包的數(shù)量很多,可能會在某個路由器緩存內(nèi)排隊等待發(fā)送,這種現(xiàn)象將導致排隊時延。
可變包長探測方法就是從源設備端節(jié)點向路徑上的每一個三層設備發(fā)送大小固定的很多包,該方法假設至少有一個包可以避免排隊時延,那么該往返時延肯定是不包含排隊時延的。因此,我們可以認為在這些包中具有最小往返時延的包只包含了發(fā)送時延和傳輸時延。我們設定發(fā)送L長度的數(shù)據(jù)包時,第i跳最小的往返時延為Ti(L):
(1)
這里Ck是第k跳的容量,ɑ是與包大小無關的時延,βi是該一次函數(shù)的斜率,。因此有:
(2)
這就是可變包長探測方法的數(shù)學表達,即通過求出某一跳所在兩個設備的往返時延函數(shù)的斜率,從斜率上計算出該跳的容量帶寬。
在對Ping撥打測試模塊改造的基礎上,我們進行了現(xiàn)網(wǎng)測試,得到的測試結果如圖1所示。該測試是對網(wǎng)內(nèi)某臺三層交換機進行撥打測試,包的大小從100字節(jié)增至1400字節(jié)(注意最大字節(jié)數(shù)不能超過硬件設備的最大傳輸單元,否則將導致硬件拆包重組),增長步長為100字節(jié),每次測試32個包,如果網(wǎng)絡較忙,一般采用128個數(shù)據(jù)包進行統(tǒng)計。經(jīng)過測試發(fā)現(xiàn),隨著包的大小線性增加,最小往返時延也呈線性遞增狀態(tài)。
圖1 最小往返時延趨勢
將數(shù)據(jù)進行線性擬和得到最小往返時延趨勢擬和線,即可獲得當前的βi。通過這一系列的β值,我們可以利用公式(2)計算出路徑上各段的帶寬容量。
按照公式(2),我們在省級CMNET網(wǎng)絡和山西省某地市網(wǎng)絡進行了測試,按照常見的網(wǎng)絡環(huán)境,可以得到表1的測試結果。將結果與現(xiàn)網(wǎng)歷史端口流量的統(tǒng)計結果進行對比,表明了可變包長測試方法能夠測試出實際的網(wǎng)絡帶寬容量,但是由于存在某些網(wǎng)絡環(huán)境并不是完全符合理論要求,因此第3個測試結果應該小于實際的帶寬容量。
表1 帶寬估計測試表
序號
理論帶寬
測試帶寬
網(wǎng)絡環(huán)境說明
1
100 Mbit/s
41 Mbit/s
3個信息點機架轉(zhuǎn)接
2
100 Mbit/s
83 Mbit/s
直接
3
100 Mbit/s
34 Mbit/s
存在2層交換機
4
2.5 Gbit/s
1 536 Mbit/s
SDH
5
1 Gbit/s
319 Mbit/s
—
雖然如此,通過分析端到端的各段網(wǎng)絡帶寬估計結果,我們還是可以得出網(wǎng)絡瓶頸所在,以及網(wǎng)線布放工程的質(zhì)量問題,這對于優(yōu)化數(shù)據(jù)網(wǎng)絡還是很有意義的。
1.2 可變包長探測方法的缺陷
可變包長探測方法建立在以下前提上:第一,假設路徑上所有的設備都是工作在三層的存儲轉(zhuǎn)發(fā)機制,并支持生存時間(TTL)機制;第二,要求路由采用單通路;第三,路徑較空閑,最小往返時延不包含排隊時延?梢钥闯觯谝粋前提條件對于實際網(wǎng)絡最為苛刻,第三個假設則可以通過大量采樣來實現(xiàn)。經(jīng)過多次測試,我們發(fā)現(xiàn)第一個條件之所以難以滿足主要是由于在接入端網(wǎng)絡有一些未配置IP地址的二層的設備,這些設備工作在二層,不能支持TTL機制,導致往返時間不能去除由于這一跳帶來的發(fā)送時延。
在現(xiàn)網(wǎng)測試環(huán)境下,我們發(fā)現(xiàn)網(wǎng)絡設備對ICMP的響應速度也有區(qū)別。部分網(wǎng)絡設備在操作系統(tǒng)軟件的設計上,把ICMP包作為低級別的包進行響應,因此在測試包數(shù)量較少而網(wǎng)絡負荷較高時,ICMP包很有可能存在排隊時延。這時必須通過加大測試包的數(shù)量來解決該問題,但是由于數(shù)據(jù)網(wǎng)管開發(fā)商的技術水平以及投入成本問題,微秒級計時存在較大的缺陷,也影響了測試結果。
2、其他常用測試方法
目前還有其他的帶寬估計方法,下面簡單介紹三種。
2.1 PPTD(Packet Pair/Train Dispersion)
PPTD是目前比較著名的一種測試方法,該方法是測量端到端的整體帶寬容量。PPTD方法的原理是在源端發(fā)送有固定時間間隔的一對大小相同的數(shù)據(jù)包,然后在收端測量這兩個包的時間間隔,通過這個時間間隔可以推算出端到端的容量。該方法要求網(wǎng)絡中沒有其他的干擾流量,這在實際網(wǎng)絡環(huán)境中基本上不可能實現(xiàn),因此需要多次測量,將那些受到干擾的測量包過濾掉。這種方法需要兩端同時進行測量,如果在數(shù)據(jù)網(wǎng)管中使用,其部署代價是巨大的,可以在極為關注的端到端部署(例如SP與短信網(wǎng)關的端到端質(zhì)量分析,或者SP與WAP網(wǎng)關的連接帶寬測試等)場合下應用。
2.2 SLoPS(Self-Loading Periodic Streams)
Self-Loading Periodic Streams(SLoPS)是另一個常用帶寬估計方法,該方法是測量端到端的可用帶寬。SLoPS也是從源端發(fā)送數(shù)據(jù)包到目的端,其原理是當測試數(shù)據(jù)流量速率大于可用帶寬時,目的端包的時延將呈上升趨勢,在測試數(shù)據(jù)流量速度近似可用帶寬時,時延將是較平穩(wěn)的。該方法是通過不斷發(fā)送測試數(shù)據(jù)來進行流量估算,因此對網(wǎng)絡資源的占用較大,還會對現(xiàn)網(wǎng)的正常業(yè)務性能造成影響。
2.3 TOPP(Trains of Packet Pairs)
該方法與SLoPS方法類似,不僅可以測量端到端的可用帶寬,而且還可以估算出當前路徑的容量帶寬,但是該方法也需要發(fā)送大量的探測包,對網(wǎng)絡的占用較大,在實際網(wǎng)絡測試中需要付出較大的代價并具有一定的危險性。
3、結語
文章闡述了數(shù)據(jù)綜合網(wǎng)管系統(tǒng)如何利用Ping撥打測試來實現(xiàn)對網(wǎng)絡帶寬的估計,并且給出了實際省級網(wǎng)絡的測試結果。其結果表明該方法簡單可行,對數(shù)據(jù)網(wǎng)絡優(yōu)化有積極的意義。文章最后介紹了目前較流行的一些網(wǎng)絡帶寬估算方法,對于其可行性以及可能的使用范圍進行了分析。在后續(xù)工作上,過單向時延分析可以極大地提高網(wǎng)絡帶寬分析的準確性,這在運營商進行網(wǎng)絡推廣更有意義。
作者:羅志明 劉丕東 來源:現(xiàn)代電信科技