利用Ping撥打測試實(shí)現(xiàn)數(shù)據(jù)網(wǎng)端到端的帶寬測試

摘要 提出利用數(shù)據(jù)綜合網(wǎng)管二期系統(tǒng)的Ping撥打測試模塊實(shí)現(xiàn)數(shù)據(jù)網(wǎng)端到端的帶寬測試方法,給出了依照現(xiàn)網(wǎng)數(shù)據(jù)進(jìn)行測試的結(jié)果,對目前流行的帶寬測試方法進(jìn)行了可行性探討。

隨著中國移動(dòng)各種數(shù)據(jù)業(yè)務(wù)的開展,對于端到端用戶的服務(wù)質(zhì)量保證得到了越來越多的重視。很多業(yè)務(wù)的開展都要得到足夠的端到端可用帶寬的保證,對于運(yùn)營商來說,核心運(yùn)營網(wǎng)絡(luò)優(yōu)化工作的基礎(chǔ)必然是基于端到端的帶寬測量。對現(xiàn)有實(shí)際帶寬容量的測量不僅對于評估網(wǎng)絡(luò)工程質(zhì)量有一定的意義,而且還影響到網(wǎng)絡(luò)擴(kuò)容以及資源利用率。市場上現(xiàn)有網(wǎng)管產(chǎn)品在帶寬測量上功能較單一,價(jià)格也非常昂貴,不適合集中網(wǎng)管的要求。針對這一需求,目前在中國移動(dòng)數(shù)據(jù)綜合網(wǎng)管二期項(xiàng)目中已經(jīng)部署了Ping時(shí)延撥打測試的模塊,該模塊主要用于對數(shù)據(jù)設(shè)備和業(yè)務(wù)主機(jī)是否在線進(jìn)行測試,并且獲取端到端的時(shí)延情況。

在這種情況下,山西移動(dòng)利用現(xiàn)有的網(wǎng)管模塊,提出了一種利用Ping撥打測試來實(shí)現(xiàn)數(shù)據(jù)網(wǎng)端到端帶寬測試的方法。這種方法應(yīng)用了流量工程里的可變包長探測的方法,能夠?qū)崿F(xiàn)端到端路徑上每一跳(hop)的帶寬估計(jì)。值得一提的是,只要對網(wǎng)管系統(tǒng)撥打測試模塊進(jìn)行較少改造即可實(shí)現(xiàn)這一測試方法,因此性價(jià)比十分優(yōu)越。

1、改進(jìn)探測方法

1.1 可變包長探測方法

可變包長探測方法利用了Ping測試的結(jié)果,主要是為了測試路徑上每一跳的容量帶寬。網(wǎng)絡(luò)管理員可以直接讀取路由器或者交換機(jī)的端口信息來獲取這類信息,但是對于端到端的網(wǎng)絡(luò)容量以及未在管理范圍內(nèi)的網(wǎng)絡(luò)容量就無從得知了,而且在實(shí)際網(wǎng)絡(luò)環(huán)境下,理論的端口信息與實(shí)際帶寬容量相差較大。另外,最終用戶和服務(wù)提供商只能通過帶寬估計(jì)而無法直接獲取網(wǎng)絡(luò)容量參數(shù)。對于工程上的線路質(zhì)量和網(wǎng)絡(luò)瓶頸這類問題,運(yùn)營商也只能通過帶寬估計(jì)來發(fā)現(xiàn),這在實(shí)際網(wǎng)絡(luò)環(huán)境中有很大的不便。

可變包長探測主要是從源端到路徑上的任一設(shè)備發(fā)送不同大小的包,通過計(jì)算往返時(shí)延與包大小的函數(shù)關(guān)系來獲取路徑各段帶寬容量的方法。具體來說,首先利用IP包頭的TTL域(工作原理和常用的Tracerouter工具一樣),強(qiáng)制包在一個(gè)特定的跳上超時(shí)。這一跳的路由器將丟棄該探測包,并利用Internet控制消息協(xié)議(ICMP)的超時(shí)錯(cuò)誤報(bào)文發(fā)回源設(shè)備。源設(shè)備就獲取到了路徑設(shè)備信息,然后就可以發(fā)送Ping測試包,通過接收到的ICMP報(bào)文計(jì)算出到這一跳的往返時(shí)延。

往返時(shí)延由三部分組成,第一部分是數(shù)據(jù)包被發(fā)送到線路上的時(shí)延,這部分時(shí)延和包的大小有關(guān),假如數(shù)據(jù)包的長度為L,帶寬為C,則發(fā)送時(shí)延為T=L/C;第二部分是信號的傳輸時(shí)延,在數(shù)量級上目前基本上都達(dá)到了光速級別,與包的大小無關(guān),只要不改變路徑,這部分時(shí)延就不會(huì)改變;第三部分是排隊(duì)時(shí)延,主要與路由器交換機(jī)的緩存有關(guān),由于網(wǎng)絡(luò)內(nèi)數(shù)據(jù)包的數(shù)量很多,可能會(huì)在某個(gè)路由器緩存內(nèi)排隊(duì)等待發(fā)送,這種現(xiàn)象將導(dǎo)致排隊(duì)時(shí)延。

可變包長探測方法就是從源設(shè)備端節(jié)點(diǎn)向路徑上的每一個(gè)三層設(shè)備發(fā)送大小固定的很多包,該方法假設(shè)至少有一個(gè)包可以避免排隊(duì)時(shí)延,那么該往返時(shí)延肯定是不包含排隊(duì)時(shí)延的。因此,我們可以認(rèn)為在這些包中具有最小往返時(shí)延的包只包含了發(fā)送時(shí)延和傳輸時(shí)延。我們設(shè)定發(fā)送L長度的數(shù)據(jù)包時(shí),第i跳最小的往返時(shí)延為Ti(L):

(1)

這里Ck是第k跳的容量,ɑ是與包大小無關(guān)的時(shí)延,βi是該一次函數(shù)的斜率,。因此有:

(2)

這就是可變包長探測方法的數(shù)學(xué)表達(dá),即通過求出某一跳所在兩個(gè)設(shè)備的往返時(shí)延函數(shù)的斜率,從斜率上計(jì)算出該跳的容量帶寬。

在對Ping撥打測試模塊改造的基礎(chǔ)上,我們進(jìn)行了現(xiàn)網(wǎng)測試,得到的測試結(jié)果如圖1所示。該測試是對網(wǎng)內(nèi)某臺(tái)三層交換機(jī)進(jìn)行撥打測試,包的大小從100字節(jié)增至1400字節(jié)(注意最大字節(jié)數(shù)不能超過硬件設(shè)備的最大傳輸單元,否則將導(dǎo)致硬件拆包重組),增長步長為100字節(jié),每次測試32個(gè)包,如果網(wǎng)絡(luò)較忙,一般采用128個(gè)數(shù)據(jù)包進(jìn)行統(tǒng)計(jì)。經(jīng)過測試發(fā)現(xiàn),隨著包的大小線性增加,最小往返時(shí)延也呈線性遞增狀態(tài)。

圖1 最小往返時(shí)延趨勢

將數(shù)據(jù)進(jìn)行線性擬和得到最小往返時(shí)延趨勢擬和線,即可獲得當(dāng)前的βi。通過這一系列的β值,我們可以利用公式(2)計(jì)算出路徑上各段的帶寬容量。

按照公式(2),我們在省級CMNET網(wǎng)絡(luò)和山西省某地市網(wǎng)絡(luò)進(jìn)行了測試,按照常見的網(wǎng)絡(luò)環(huán)境,可以得到表1的測試結(jié)果。將結(jié)果與現(xiàn)網(wǎng)歷史端口流量的統(tǒng)計(jì)結(jié)果進(jìn)行對比,表明了可變包長測試方法能夠測試出實(shí)際的網(wǎng)絡(luò)帶寬容量,但是由于存在某些網(wǎng)絡(luò)環(huán)境并不是完全符合理論要求,因此第3個(gè)測試結(jié)果應(yīng)該小于實(shí)際的帶寬容量。

表1 帶寬估計(jì)測試表

序號

理論帶寬

測試帶寬

網(wǎng)絡(luò)環(huán)境說明

1

100 Mbit/s

41 Mbit/s

3個(gè)信息點(diǎn)機(jī)架轉(zhuǎn)接

2

100 Mbit/s

83 Mbit/s

直接

3

100 Mbit/s

34 Mbit/s

存在2層交換機(jī)

4

2.5 Gbit/s

1 536 Mbit/s

SDH

5

1 Gbit/s

319 Mbit/s

雖然如此,通過分析端到端的各段網(wǎng)絡(luò)帶寬估計(jì)結(jié)果,我們還是可以得出網(wǎng)絡(luò)瓶頸所在,以及網(wǎng)線布放工程的質(zhì)量問題,這對于優(yōu)化數(shù)據(jù)網(wǎng)絡(luò)還是很有意義的。

1.2 可變包長探測方法的缺陷

可變包長探測方法建立在以下前提上:第一,假設(shè)路徑上所有的設(shè)備都是工作在三層的存儲(chǔ)轉(zhuǎn)發(fā)機(jī)制,并支持生存時(shí)間(TTL)機(jī)制;第二,要求路由采用單通路;第三,路徑較空閑,最小往返時(shí)延不包含排隊(duì)時(shí)延?梢钥闯,第一個(gè)前提條件對于實(shí)際網(wǎng)絡(luò)最為苛刻,第三個(gè)假設(shè)則可以通過大量采樣來實(shí)現(xiàn)。經(jīng)過多次測試,我們發(fā)現(xiàn)第一個(gè)條件之所以難以滿足主要是由于在接入端網(wǎng)絡(luò)有一些未配置IP地址的二層的設(shè)備,這些設(shè)備工作在二層,不能支持TTL機(jī)制,導(dǎo)致往返時(shí)間不能去除由于這一跳帶來的發(fā)送時(shí)延。

在現(xiàn)網(wǎng)測試環(huán)境下,我們發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備對ICMP的響應(yīng)速度也有區(qū)別。部分網(wǎng)絡(luò)設(shè)備在操作系統(tǒng)軟件的設(shè)計(jì)上,把ICMP包作為低級別的包進(jìn)行響應(yīng),因此在測試包數(shù)量較少而網(wǎng)絡(luò)負(fù)荷較高時(shí),ICMP包很有可能存在排隊(duì)時(shí)延。這時(shí)必須通過加大測試包的數(shù)量來解決該問題,但是由于數(shù)據(jù)網(wǎng)管開發(fā)商的技術(shù)水平以及投入成本問題,微秒級計(jì)時(shí)存在較大的缺陷,也影響了測試結(jié)果。

2、其他常用測試方法

目前還有其他的帶寬估計(jì)方法,下面簡單介紹三種。

2.1 PPTD(Packet Pair/Train Dispersion)

PPTD是目前比較著名的一種測試方法,該方法是測量端到端的整體帶寬容量。PPTD方法的原理是在源端發(fā)送有固定時(shí)間間隔的一對大小相同的數(shù)據(jù)包,然后在收端測量這兩個(gè)包的時(shí)間間隔,通過這個(gè)時(shí)間間隔可以推算出端到端的容量。該方法要求網(wǎng)絡(luò)中沒有其他的干擾流量,這在實(shí)際網(wǎng)絡(luò)環(huán)境中基本上不可能實(shí)現(xiàn),因此需要多次測量,將那些受到干擾的測量包過濾掉。這種方法需要兩端同時(shí)進(jìn)行測量,如果在數(shù)據(jù)網(wǎng)管中使用,其部署代價(jià)是巨大的,可以在極為關(guān)注的端到端部署(例如SP與短信網(wǎng)關(guān)的端到端質(zhì)量分析,或者SP與WAP網(wǎng)關(guān)的連接帶寬測試等)場合下應(yīng)用。

2.2 SLoPS(Self-Loading Periodic Streams)

Self-Loading Periodic Streams(SLoPS)是另一個(gè)常用帶寬估計(jì)方法,該方法是測量端到端的可用帶寬。SLoPS也是從源端發(fā)送數(shù)據(jù)包到目的端,其原理是當(dāng)測試數(shù)據(jù)流量速率大于可用帶寬時(shí),目的端包的時(shí)延將呈上升趨勢,在測試數(shù)據(jù)流量速度近似可用帶寬時(shí),時(shí)延將是較平穩(wěn)的。該方法是通過不斷發(fā)送測試數(shù)據(jù)來進(jìn)行流量估算,因此對網(wǎng)絡(luò)資源的占用較大,還會(huì)對現(xiàn)網(wǎng)的正常業(yè)務(wù)性能造成影響。

2.3 TOPP(Trains of Packet Pairs)

該方法與SLoPS方法類似,不僅可以測量端到端的可用帶寬,而且還可以估算出當(dāng)前路徑的容量帶寬,但是該方法也需要發(fā)送大量的探測包,對網(wǎng)絡(luò)的占用較大,在實(shí)際網(wǎng)絡(luò)測試中需要付出較大的代價(jià)并具有一定的危險(xiǎn)性。

3、結(jié)語

文章闡述了數(shù)據(jù)綜合網(wǎng)管系統(tǒng)如何利用Ping撥打測試來實(shí)現(xiàn)對網(wǎng)絡(luò)帶寬的估計(jì),并且給出了實(shí)際省級網(wǎng)絡(luò)的測試結(jié)果。其結(jié)果表明該方法簡單可行,對數(shù)據(jù)網(wǎng)絡(luò)優(yōu)化有積極的意義。文章最后介紹了目前較流行的一些網(wǎng)絡(luò)帶寬估算方法,對于其可行性以及可能的使用范圍進(jìn)行了分析。在后續(xù)工作上,過單向時(shí)延分析可以極大地提高網(wǎng)絡(luò)帶寬分析的準(zhǔn)確性,這在運(yùn)營商進(jìn)行網(wǎng)絡(luò)推廣更有意義。

作者:羅志明 劉丕東 來源:現(xiàn)代電信科技


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號,免費(fèi)領(lǐng)取以下5G精品資料

本周熱點(diǎn)本月熱點(diǎn)

 

  最熱通信招聘

業(yè)界最新資訊


  最新招聘信息