專利名稱:IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法、測(cè)量裝置及IPv6網(wǎng)絡(luò)路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)測(cè)量技術(shù),尤其涉及IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法、測(cè)量裝置及IPv6網(wǎng)絡(luò)路由器。
背景技術(shù):
網(wǎng)絡(luò)測(cè)量是獲取網(wǎng)絡(luò)動(dòng)態(tài)運(yùn)行信息的方法和手段的總稱。網(wǎng)絡(luò)測(cè)量按照測(cè)量點(diǎn)的位置可分為端到端測(cè)量、基于路由器的測(cè)量和路由器協(xié)作測(cè)量。
網(wǎng)絡(luò)提供商(Network Provider,簡(jiǎn)稱NP)通常采用基于路由器的測(cè)量監(jiān)測(cè)其網(wǎng)絡(luò)運(yùn)行狀態(tài),但NP間的非協(xié)作性導(dǎo)致信息無法共享。而路由器向網(wǎng)管中心傳遞信息需消耗大量帶寬,也增加了網(wǎng)絡(luò)負(fù)載。此外,運(yùn)營(yíng)商的網(wǎng)管系統(tǒng)無法管理客戶一側(cè)的接入設(shè)備,所以,當(dāng)客戶濫用網(wǎng)絡(luò)并導(dǎo)致其關(guān)鍵業(yè)務(wù)性能下降時(shí),運(yùn)營(yíng)商很難證明這是用戶的責(zé)任。端到端的測(cè)量使運(yùn)營(yíng)商可以在客戶方展現(xiàn)網(wǎng)絡(luò)性能,發(fā)現(xiàn)和定位問題。
網(wǎng)絡(luò)測(cè)量按照是否主動(dòng)向網(wǎng)絡(luò)中發(fā)送探測(cè)報(bào)文,分為二種主動(dòng)測(cè)量和被動(dòng)測(cè)量。主動(dòng)測(cè)量是基于往返時(shí)間(Round Trip Time,簡(jiǎn)稱RTT)測(cè)量。測(cè)量裝置主動(dòng)向網(wǎng)絡(luò)發(fā)送探測(cè)包,然后根據(jù)返回的參數(shù)來判斷網(wǎng)絡(luò)現(xiàn)有狀況,這些參數(shù)包括響應(yīng)時(shí)間和丟包率等。主動(dòng)方式可以了解整個(gè)網(wǎng)絡(luò)的行為,獲得端到端的信息,但是會(huì)增加網(wǎng)絡(luò)的負(fù)荷并引起網(wǎng)絡(luò)的擁塞。
在被動(dòng)測(cè)量方式中,測(cè)量裝置(可以是端節(jié)點(diǎn)或路由器等中間節(jié)點(diǎn))被動(dòng)地根據(jù)一定需求來監(jiān)測(cè)和采集網(wǎng)絡(luò)上特定鏈路、特定時(shí)段的流量。被動(dòng)測(cè)量很難獲得對(duì)網(wǎng)絡(luò)整體的了解,也很難對(duì)網(wǎng)絡(luò)終端到終端的性能做出準(zhǔn)確的分析,但是不會(huì)增加網(wǎng)絡(luò)的負(fù)荷。
近年出現(xiàn)的主動(dòng)網(wǎng)絡(luò)測(cè)量技術(shù)集中在(1)端到端時(shí)延(end-to-end delay)測(cè)量,主要解決時(shí)延測(cè)量中的時(shí)鐘扭曲(screw)和重置(reset)問題;(2)可用帶寬測(cè)量和瓶頸帶寬定位;(3)丟包率測(cè)量;(4)網(wǎng)絡(luò)性能拓?fù)渫茰y(cè)。
IP網(wǎng)絡(luò)狀態(tài)信息和變化過程的監(jiān)測(cè)是保障網(wǎng)絡(luò)正常運(yùn)行的基礎(chǔ),因此近些年網(wǎng)絡(luò)運(yùn)營(yíng)商越來越關(guān)注網(wǎng)絡(luò)測(cè)量技術(shù)在其IP網(wǎng)絡(luò)中的作用。通過對(duì)網(wǎng)絡(luò)進(jìn)行測(cè)量,獲得網(wǎng)絡(luò)的鏈路/路徑的時(shí)延、帶寬、丟包率、拓?fù)浞€(wěn)定性等信息,可以有效幫助運(yùn)營(yíng)商優(yōu)化網(wǎng)絡(luò),及時(shí)擴(kuò)容,也能幫運(yùn)營(yíng)商進(jìn)行網(wǎng)絡(luò)故障定位。此外,運(yùn)營(yíng)商還要關(guān)心網(wǎng)絡(luò)鏈路的利用率、路徑的長(zhǎng)期利用率、路由可達(dá)性、瓶頸帶寬和其它端到端的性能等屬性和參數(shù)。
下一代網(wǎng)絡(luò)采用IPv6協(xié)議,克服了IPv4地址短缺、安全性差、移動(dòng)性差等問題,實(shí)現(xiàn)即插即用。IPv6技術(shù)已經(jīng)實(shí)現(xiàn)了工程化和實(shí)用化,正步入大規(guī)模部署的前期。
IPv6網(wǎng)絡(luò)的測(cè)量也是IPv6網(wǎng)絡(luò)大規(guī)模部署和運(yùn)營(yíng)過程中重要的技術(shù)。然而對(duì)網(wǎng)絡(luò)端到端性能的研究大部分基于IPv4網(wǎng)絡(luò),少有直接基于IPv6體系的研究。IPv4中的端到端性能的測(cè)量方法能否適用于IPv6體系結(jié)構(gòu),仍然需要大量的工作來確定并找出合適的方法。
通過測(cè)量網(wǎng)絡(luò)的鏈路利用率,可以獲知網(wǎng)絡(luò)鏈路的負(fù)載狀況,這對(duì)于改善端到端應(yīng)用的服務(wù)質(zhì)量是一個(gè)參考依據(jù);同時(shí),通過對(duì)全網(wǎng)的鏈路利用率長(zhǎng)期監(jiān)測(cè),能夠獲知網(wǎng)絡(luò)流量的分布拓?fù)?,進(jìn)而為網(wǎng)絡(luò)規(guī)劃和優(yōu)化提供依據(jù)。
目前在IPv6網(wǎng)絡(luò)中獲取鏈路利用率的方法是通過簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,簡(jiǎn)稱SNMP)讀取網(wǎng)絡(luò)中的路由/交換設(shè)備(路由器或者交換機(jī))的管理信息庫(kù)(Management Information Base,簡(jiǎn)稱MIB)的方式。SNMP是目前最常用的網(wǎng)絡(luò)環(huán)境管理協(xié)議,是一系列協(xié)議和規(guī)范的集合,包括MIB由網(wǎng)絡(luò)管理協(xié)議訪問的管理對(duì)象數(shù)據(jù)庫(kù),它包括SNMP可以通過網(wǎng)絡(luò)設(shè)備的SNMP管理代理進(jìn)行設(shè)置的變量;管理信息結(jié)構(gòu)(Structure of Management Information,簡(jiǎn)稱SMI),用于定義通過網(wǎng)絡(luò)管理協(xié)議可訪問的對(duì)象的規(guī)則;SMI定義在MIB中使用的數(shù)據(jù)類型及網(wǎng)絡(luò)資源在MIB中的名稱或表示。SNMP的功能是取得、設(shè)置和接收SNMP代理發(fā)送的意外信息。取得指的是SNMP管理者發(fā)送請(qǐng)求,代理根據(jù)這個(gè)請(qǐng)求回送相應(yīng)的數(shù)據(jù);設(shè)置是SNMP管理者設(shè)置管理對(duì)象(也就是代理)的值,接收代理發(fā)送的意外信息是指代理可以在SNMP管理者未請(qǐng)求的狀態(tài)下向基站報(bào)告發(fā)生的意外情況。
通過SNMP獲取網(wǎng)絡(luò)鏈路利用率的方法如下 (1)以時(shí)間t為周期(t的單位為“秒”),通過SNMP協(xié)議的get原語讀取路由器/交換機(jī)MIB中的某個(gè)接口(Interface)的“ifInOctets(收到的所有字節(jié)數(shù))”或者“ifOutOctets(發(fā)出的所有字節(jié)數(shù))”項(xiàng)的值,第i次讀取的值記為Pi; (2)記鏈路的物理帶寬是B(字節(jié)/秒),記Pi的獲取時(shí)刻是Ti,則稱Ui=(Pi+1-Pi)/tB是Ti時(shí)刻開始的t時(shí)間內(nèi)的平均鏈路利用率; 當(dāng)t足夠小時(shí),就稱Ui是Ti時(shí)刻的鏈路利用率,對(duì)于全雙工的鏈路,若Pi是“ifInOctets”的值,則稱Ui是該接口入鏈路的利用率,若Pi是“ifOutOctets”的值,則稱Ui是該接口出鏈路的利用率。上述方法,對(duì)于IPv4網(wǎng)絡(luò)和IPv6網(wǎng)絡(luò)均有效。
上述方法有如下缺點(diǎn) (1)獲取如Pi的值需要通過SNMP協(xié)議直接訪問路由器存在安全隱患。SNMP協(xié)議的v1、v2、v3三個(gè)版本有不同的鑒權(quán)機(jī)制,在使用SNMP協(xié)議獲取如Pi的值之前,需要向路由器發(fā)送認(rèn)證信息,除非路由器不設(shè)置安全認(rèn)證限制。
(2)方法不夠靈活、局限性較大。由于該方法只能通過訪問路由器的MIB獲取必要的信息計(jì)算鏈路利用率,因此,必須獲取路由器的SNMP訪問權(quán)限。但目前網(wǎng)絡(luò)運(yùn)營(yíng)商的路由器均是封閉的,只有運(yùn)營(yíng)商內(nèi)部的管理人員才可能獲得受限訪問權(quán)限。對(duì)于普通用戶,則無法了解鏈路利用率信息。此外,由于網(wǎng)絡(luò)運(yùn)營(yíng)商間的非協(xié)作性導(dǎo)致運(yùn)營(yíng)商也只能了解內(nèi)部網(wǎng)絡(luò)的信息。對(duì)于跨越運(yùn)營(yíng)商的網(wǎng)絡(luò)則無法獲得想要的端到端信息。
(3)因?yàn)槭潜粍?dòng)收集信息,會(huì)受到某些方面的限制。由于通過SNMP獲取路由器信息時(shí),會(huì)給路由器帶來較大的處理負(fù)擔(dān),影響路由器的性能,因此讀取信息的周期不能過短。
現(xiàn)在有一種基于逐跳時(shí)間標(biāo)簽的IPv4網(wǎng)絡(luò)鏈路利用率測(cè)量方法,該測(cè)量方法屬于路由器協(xié)作的主動(dòng)測(cè)量,發(fā)送探測(cè)報(bào)文,通過IPv4協(xié)議中定義的時(shí)間戳選項(xiàng)記錄計(jì)算鏈路利用率。
表1 IPv4報(bào)文結(jié)構(gòu)
如表1所示,為IPv4報(bào)文結(jié)構(gòu),在32位目的IP地址之后和IP凈荷數(shù)據(jù)之前,有一段“選項(xiàng)”數(shù)據(jù)。這段“選項(xiàng)”數(shù)據(jù)可以根據(jù)實(shí)際需要來決定是否存在。
IPv4協(xié)議中已經(jīng)定義了約5種選項(xiàng)類型,其中“時(shí)間戳選項(xiàng)”的格式定義參見表2。
表2 IP報(bào)文頭部中時(shí)間戳選項(xiàng)的格式
在如表2所示的格式設(shè)置好“type”、“l(fā)ength”、“offset”、“overflw”、“flags”等字段后,這個(gè)IP報(bào)文經(jīng)過每個(gè)路由器時(shí),路由器都會(huì)依照順序把它自己的當(dāng)前時(shí)鐘值(即“時(shí)間戳”)記錄到“timestamp”中。最多可以記錄9個(gè)時(shí)間戳,詳細(xì)信息可以參考RFC781。
在測(cè)量時(shí),從端設(shè)備向網(wǎng)絡(luò)發(fā)送IP探測(cè)報(bào)文。探測(cè)報(bào)文經(jīng)過的每個(gè)路由器,都會(huì)將路由器的時(shí)鐘值記錄到探測(cè)報(bào)文中。通過這種方式,探測(cè)報(bào)文即可將它所通過的路由器的時(shí)鐘值全部記下來。通過對(duì)這些時(shí)鐘值的分析可以得到鏈路忙閑的采樣序列{Xi},進(jìn)而用滑動(dòng)窗口方法得到鏈路利用率。此方法利用了RFC781所定義的功能。通過將探測(cè)報(bào)文設(shè)置為互聯(lián)網(wǎng)控制消息協(xié)議(Internet Control Message Protocol,簡(jiǎn)稱ICMP)報(bào)文,可以實(shí)現(xiàn)單端測(cè)量,前提是目的端設(shè)備是IP設(shè)備且支持ICMP報(bào)文。通常情況下,支持IPv4協(xié)議的設(shè)備均支持ICMP報(bào)文。
上述方法中最關(guān)鍵的部分是獲取探測(cè)報(bào)文在路由器中的排隊(duì)時(shí)延。獲取路由器排隊(duì)時(shí)延的原理和方法簡(jiǎn)述如下。如圖1所示,為單跳時(shí)延模型示意圖。探測(cè)報(bào)文的端到端時(shí)延由節(jié)點(diǎn)時(shí)延和鏈路時(shí)延組成,具體分為4部分——分組在鏈路上的傳播時(shí)延Tg(propagation delay)、分組的傳輸時(shí)延Tt(transmission delay)、分組在節(jié)點(diǎn)的處理時(shí)延Tp(processing delay)、在緩沖區(qū)中的排隊(duì)時(shí)延Tq(queuing delay)。如果能夠測(cè)得某時(shí)刻的排隊(duì)時(shí)延,就可以知道該時(shí)刻路由器的忙閑狀態(tài),即可以獲得鏈路的利用率。但是,唯一可測(cè)的只是第i個(gè)報(bào)文通過兩個(gè)路由器的時(shí)間T(i),而第i個(gè)報(bào)文的排隊(duì)時(shí)延Tq(i)是無法直接得到的?;谥鹛鴷r(shí)間標(biāo)簽的IPv4網(wǎng)絡(luò)鏈路利用率測(cè)量方法應(yīng)用單跳時(shí)延-鏈路利用率算法,通過T(i)間接得到Tq(i),從而得到鏈路利用率。
用T(ik)表示第i個(gè)探測(cè)報(bào)文和第k個(gè)探測(cè)報(bào)文經(jīng)過路由器1和路由器2的時(shí)間差??紤]探測(cè)報(bào)文Pi和Pk,i,k∈[1,N],N為探測(cè)報(bào)文總數(shù),若分組長(zhǎng)度len(Pi)=len(Pk),則同一路由器對(duì)Pi和Pk的處理時(shí)延Tp、傳播時(shí)延Tg以及傳輸時(shí)延Tt相等。若探測(cè)報(bào)文Pi和Pk的發(fā)送間隔足夠短,即(τ0(i)和τ0(k)分別為探測(cè)報(bào)文Pi和Pk的發(fā)送時(shí)間,D被稱為無偏窗口)時(shí),因路由器時(shí)鐘扭曲而導(dǎo)致的偏差小于1ms,即小于時(shí)間戳的最小分辨率,可以忽略,則 若探測(cè)報(bào)文k滿足T(k)=min(T(1),...,T(N)),則通過公式(1)可以看出,由于T(ik)已知,若則Tq(i)可知。
若D期間內(nèi)的平均鏈路利用率為u,對(duì)該期間內(nèi)任一時(shí)刻t的采樣Xt有P(Xt=1)=u,N個(gè)采樣中至少存在一個(gè)采樣Xk=0的概率,即N個(gè)探測(cè)報(bào)文中至少有一個(gè)探測(cè)報(bào)文在路由器中無需排隊(duì)等待的概率為 Pidle=1-uN(2) 從式(2)可以分析為使Pidle達(dá)到某一置信度,采樣數(shù)N與鏈路平均利用率u之間的數(shù)值關(guān)系。當(dāng)采樣數(shù)達(dá)到N=100時(shí),只要D期間內(nèi)鏈路平均利用率不超過90%,則N個(gè)采樣中存在一個(gè)探測(cè)報(bào)文k使得的概率不小于99.9%。所以只要采樣數(shù)和無偏窗口設(shè)計(jì)合理,一定可以使Tq(k)為0,這樣就可以通過T(ik)得到排隊(duì)時(shí)延,間接得到鏈路利用率。
IPv4網(wǎng)絡(luò)中單跳時(shí)延-鏈路利用率算法的具體步驟如下 (1)以無偏窗口D將所有探測(cè)報(bào)文分為M段,取第j段進(jìn)行處理; (2)計(jì)算第m跳鏈路時(shí)延序列i∈[1,n],n為第j段的探測(cè)報(bào)文數(shù)目,tm+1(i)及tm(i)分別為第j段探測(cè)報(bào)文的第i個(gè)報(bào)文的第m+1個(gè)和第m個(gè)時(shí)間戳; (3)計(jì)算第m跳鏈路的時(shí)延最小值T(k)=min{T(i)},i∈[1,n]; (4)計(jì)算第m跳鏈路的排隊(duì)時(shí)延序列i∈[1,n]; (5)將排隊(duì)時(shí)延序列{Tqueue(i)},i∈[1,n]變換為鏈路狀態(tài)序列{X(i)},i∈[1,n];當(dāng)排隊(duì)時(shí)延Tqueue(i)大于一定的閾值時(shí)鏈路狀態(tài)為忙,即X(i)=1,否則,鏈路狀態(tài)為閑,即X(i)=0; (6)以W為滑動(dòng)窗口,按公式計(jì)算D期間內(nèi)第m跳鏈路的利用率; (7)重復(fù)(2)-(6),直至M段探測(cè)報(bào)文全部處理完畢。
根據(jù)前述分析,若無偏窗口設(shè)計(jì)合理,最小值T(k)中的排隊(duì)時(shí)延為0,只包含除排隊(duì)時(shí)延以外的其它時(shí)延;對(duì)于每個(gè)探測(cè)報(bào)文來講,除排隊(duì)時(shí)延以外的其它時(shí)延是相同的,因此,通過在計(jì)算可以得到各探測(cè)報(bào)文的排隊(duì)時(shí)延。若各路由器對(duì)探測(cè)報(bào)文的處理流程不同,對(duì)本方法也沒有影響。由于同一路由器對(duì)探測(cè)報(bào)文的處理流程是相同的,無論路由器的處理時(shí)延在時(shí)間戳之前還是在時(shí)間戳之后,該時(shí)延均包括在T(k)中,通過計(jì)算T(i)-T(k)可將影響消除。例如,在圖1中,t1表示路由器1在探測(cè)報(bào)文中的時(shí)間戳;t2表示路由器2在探測(cè)報(bào)文中的時(shí)間戳;Tp1表示探測(cè)報(bào)文被路由器1打上時(shí)間戳之后還需經(jīng)歷的處理時(shí)延,Tp2表示探測(cè)報(bào)文被路由器2打上時(shí)間戳之前經(jīng)歷的處理時(shí)延;對(duì)于第1跳,T(i),i∈[1,n]均包括了Tp1及Tp2,當(dāng)然,Tp1及Tp2也包含在T(k)中;由于對(duì)各探測(cè)報(bào)文來講,Tp1是相同的,Tp2也是相同的,在計(jì)算T(i)-T(k)時(shí),Tp1及Tp2會(huì)被消去。因而,路由器對(duì)探測(cè)報(bào)文的處理流程對(duì)計(jì)算排隊(duì)時(shí)延并沒有影響,從而對(duì)計(jì)算鏈路利用率也沒有影響。
IPv6是基于IPv4的,它是IPv4的演化,它們的報(bào)頭格式不同。IPv6具有固定的長(zhǎng)度的數(shù)據(jù)報(bào)頭,IPv4報(bào)頭中的大部分選項(xiàng)這里都沒有,如果需要會(huì)在基本報(bào)頭之后增加一個(gè)或多個(gè)擴(kuò)展頭??梢奍Pv6的數(shù)據(jù)報(bào)具有很大的靈活性。IPv6的包頭包括基本頭和擴(kuò)展頭兩種。
表3 IPv6基本頭格式
如表3所示,IPv6基本頭包括 Version版本號(hào),4位;IPv6協(xié)議的版本值為6。
Traffic Classes通信量等級(jí),8位;IPv6報(bào)頭中的通信量等級(jí)域使得源節(jié)點(diǎn)或進(jìn)行包轉(zhuǎn)發(fā)路由器能夠識(shí)別和區(qū)分IPv6信息包的不同等級(jí)或優(yōu)先權(quán)。
Flow Label流標(biāo)記,20位;IPv6報(bào)頭中的流標(biāo)記是為了用來標(biāo)記那些需要IPv6路由器特殊處理的信息包的順序。
Payload Length有效負(fù)載長(zhǎng)度,16位;有效負(fù)載長(zhǎng)度使用16位無符號(hào)正數(shù)表示,代表信息包中除IPv6報(bào)頭之外其余部分的長(zhǎng)度,以字節(jié)即8位計(jì)數(shù)。
Next Header下一報(bào)頭,8位;這個(gè)字段指出了IPv6頭后所跟的頭字段中的協(xié)議類型。與IPv6協(xié)議字段類似,下一報(bào)頭字段可以用來指出高層協(xié)議是傳輸控制協(xié)議(Transmission Control Protocol,簡(jiǎn)稱TCP)還是用戶數(shù)據(jù)報(bào)協(xié)議(User Datagram Protocol,簡(jiǎn)稱UDP),另外也可以用來指明IPv6擴(kuò)展頭的存在。
Hop Limit路程段限制,8位;該域用8位無符號(hào)整數(shù)表示,功能同IPv4。
Source Address(源地址,128位)和Destination Address(目的地址,128位)分別標(biāo)識(shí)了發(fā)送者和接收者。
在IPv4中可以在IP頭的尾部加入選項(xiàng),與此不同,IPv6中把選項(xiàng)加在單獨(dú)的擴(kuò)展頭中。IPv6實(shí)現(xiàn)的擴(kuò)展頭可以消滅或大量減少選項(xiàng)帶來的對(duì)通信性能的沖擊。通過把選項(xiàng)從IP頭搬到凈荷中,路由器可以像轉(zhuǎn)發(fā)無選項(xiàng)包一樣來轉(zhuǎn)發(fā)包含選項(xiàng)的包。已經(jīng)定義的IPv6擴(kuò)展報(bào)文頭包括逐跳選項(xiàng)頭、選路頭、分段頭、目的地選項(xiàng)頭、身份驗(yàn)證頭、封裝安全凈荷頭等。RFC 2460中為IPv6定義了如下選項(xiàng)擴(kuò)展 逐跳選項(xiàng)頭(Hop-by-Hop Options Header) 此擴(kuò)展頭必須緊隨在IPv6頭之后。它包含包所經(jīng)路徑上的每個(gè)節(jié)點(diǎn)都必須檢查的選項(xiàng)數(shù)據(jù)。由于它需要每個(gè)中間路由器進(jìn)行處理,逐跳選項(xiàng)只有在絕對(duì)必要的時(shí)候才會(huì)出現(xiàn)。到目前為止,已經(jīng)定義了兩個(gè)選項(xiàng)巨型凈荷選項(xiàng)和路由器提示選項(xiàng)。巨型凈荷選項(xiàng)指明包的凈荷長(zhǎng)度超過IPv6的16位凈荷長(zhǎng)度字段。只要包的凈荷超過65535字節(jié)(其中包括逐跳選項(xiàng)頭),就必須包含該選項(xiàng)。如果節(jié)點(diǎn)不能轉(zhuǎn)發(fā)該包,則必須回送一個(gè)ICMPv6出錯(cuò)報(bào)文。路由器提示選項(xiàng)用來通知路由器,IPv6數(shù)據(jù)報(bào)中的信息希望能夠得到中間路由器的查看和處理,即使這個(gè)包是發(fā)給其他某個(gè)節(jié)點(diǎn)的(例如,包含帶寬預(yù)留協(xié)議信息的控制數(shù)據(jù)報(bào))。
選路頭(Routing Header) 此擴(kuò)展頭指明包在到達(dá)目的地途中將經(jīng)過哪些節(jié)點(diǎn)。它包含包沿途經(jīng)過的各節(jié)點(diǎn)的地址列表。IPv6頭的最初目的地址是路由頭的一系列地址中的第一個(gè)地址,而不是包的最終目的地址。此地址對(duì)應(yīng)的節(jié)點(diǎn)接收到該包之后,對(duì)IPv6頭和選路頭進(jìn)行處理,并把包發(fā)送到選路頭列表中的第二個(gè)地址。如此繼續(xù),直到包到達(dá)其最終目的地。
分段頭(Fragment Header) 此擴(kuò)展頭包含一個(gè)分段偏移值、一個(gè)“更多段”標(biāo)志和一個(gè)標(biāo)識(shí)符字段,用于源節(jié)點(diǎn)對(duì)長(zhǎng)度超出源端和目的端路徑最大傳送單元(MaximumTransmission Unit,簡(jiǎn)稱MTU)的包進(jìn)行分段。
目的地選項(xiàng)頭(Destination Options Header) 此擴(kuò)展頭代替了IPv4選項(xiàng)字段。目前,唯一定義的目的地選項(xiàng)是在需要時(shí)把選項(xiàng)填充為64位的整數(shù)倍。此擴(kuò)展頭可以用來攜帶由目的地節(jié)點(diǎn)檢查的信息。
身份驗(yàn)證頭(Authentication header) 此擴(kuò)展頭提供了一種機(jī)制,對(duì)IPv6頭、擴(kuò)展頭和凈荷的某些部分進(jìn)行加密的校驗(yàn)和的計(jì)算。
封裝安全性凈荷頭(Encapsulating Security Payload header) 這是最后一個(gè)擴(kuò)展頭,不進(jìn)行加密。它指明剩余的凈荷已經(jīng)加密,并為已獲得授權(quán)的目的節(jié)點(diǎn)提供足夠的解密信息。
在沒有擴(kuò)展頭的IPv6包中,基本頭中的“NEXT HEADER”字段的值表示上一層協(xié)議。即,若IP包中含有TCP段,則IPv6基本頭中的“NEXT HEADER”字段的8位二進(jìn)制值是6(源自RFC 1700(已指派號(hào)碼));若IP包中含有UDP數(shù)據(jù)報(bào),這個(gè)值就是17。
表4 未加擴(kuò)展頭的IPv6報(bào)文結(jié)構(gòu) 如表4所示,為一個(gè)未加擴(kuò)展頭的TCP6報(bào)文結(jié)構(gòu)。它是一個(gè)IPv6基本頭加上一段TCP報(bào)文,IPv6基本頭的“NEXT HEADER”字段標(biāo)明后續(xù)數(shù)據(jù)是一個(gè)TCP報(bào)文結(jié)構(gòu)。
如果要在表4所示的報(bào)文中,增加一個(gè)路由擴(kuò)展頭,則修改后報(bào)文如表5所示。
表5 增加了“路由擴(kuò)展頭”的IPv6報(bào)文結(jié)構(gòu) 其中,IPv6基本頭的“NEXT HEADER”字段要指向路由擴(kuò)展頭,路由擴(kuò)展頭中也有一個(gè)“NEXT HEADER”字段,這個(gè)字段指向后面的TCP數(shù)據(jù)。
但是在IPv6協(xié)議中,并沒有與RFC781相關(guān)的標(biāo)準(zhǔn),因此前述的IPv4的鏈路利用率測(cè)量方法無法應(yīng)用于IPv6網(wǎng)絡(luò)。并且由于IPv4時(shí)間戳選項(xiàng)的分辨率只能到1ms,因此在測(cè)量10M以上鏈路時(shí),誤差比較大。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)所存在的缺陷,提供IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法、測(cè)量裝置及IPv6網(wǎng)絡(luò)路由器,實(shí)現(xiàn)利用帶有時(shí)間戳擴(kuò)展頭的IPv6報(bào)文,采用端到端的方式測(cè)量網(wǎng)絡(luò)的鏈路利用率。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,包括如下步驟探測(cè)源端向網(wǎng)絡(luò)發(fā)送多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文;探測(cè)報(bào)文經(jīng)過的每一跳路由器將當(dāng)前時(shí)間戳寫入探測(cè)報(bào)文;探測(cè)源端和/或目的端根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率。
探測(cè)報(bào)文經(jīng)過的每一跳路由器接收到探測(cè)報(bào)文后,從基本頭中提取下一報(bào)頭字段,若下一報(bào)頭字段的值為時(shí)間戳擴(kuò)展頭標(biāo)識(shí),并且當(dāng)時(shí)間戳可以寫入時(shí)間戳擴(kuò)展頭時(shí),將該時(shí)間戳寫入該時(shí)間戳擴(kuò)展頭。
所述的探測(cè)源端發(fā)送的探測(cè)報(bào)文可以是回顯請(qǐng)求報(bào)文或傳輸控制協(xié)議報(bào)文或用戶數(shù)據(jù)協(xié)議報(bào)文;探測(cè)目的端接收到帶有時(shí)間戳擴(kuò)展頭的回顯報(bào)文后,創(chuàng)建帶有時(shí)間戳擴(kuò)展頭的回顯報(bào)文,將所述回顯請(qǐng)求報(bào)文的內(nèi)容復(fù)制到該回顯報(bào)文中,然后將該回顯報(bào)文向探測(cè)源端發(fā)送。
在根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列計(jì)算鏈路利用率時(shí),探測(cè)源端和/或探測(cè)目的端提取多個(gè)探測(cè)報(bào)文的時(shí)間戳序列,針對(duì)每一跳鏈路,計(jì)算時(shí)延序列,提取時(shí)延序列中的最小時(shí)延,計(jì)算排隊(duì)時(shí)延序列,將排隊(duì)時(shí)延序列轉(zhuǎn)換為鏈路狀態(tài)序列,計(jì)算該跳鏈路的利用率。
在探測(cè)源端和/或探測(cè)目的端中,可預(yù)先設(shè)置排隊(duì)時(shí)延與鏈路狀態(tài)的映射關(guān)系;在將排隊(duì)時(shí)延序列轉(zhuǎn)換為鏈路狀態(tài)序列時(shí),根據(jù)排隊(duì)時(shí)延與鏈路狀態(tài)映射關(guān)系將排隊(duì)時(shí)延序列中的每一排隊(duì)時(shí)延轉(zhuǎn)換為相應(yīng)的鏈路狀態(tài),生成鏈路狀態(tài)序列。
探測(cè)源端發(fā)送探測(cè)報(bào)文的時(shí)間間隔可根據(jù)待測(cè)鏈路速率確定。
為了實(shí)現(xiàn)上述目的,本發(fā)明還提供了IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,包括探測(cè)報(bào)文生成模塊、探測(cè)報(bào)文處理模塊及探測(cè)報(bào)文回送模塊的任一個(gè)或任幾個(gè),以及網(wǎng)絡(luò)通信模塊。探測(cè)報(bào)文生成模塊用于生成帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文;探測(cè)報(bào)文處理模塊用于根據(jù)接收的探測(cè)報(bào)文的時(shí)間戳計(jì)算鏈路利用率;探測(cè)報(bào)文回送模塊用于根據(jù)回顯請(qǐng)求探測(cè)報(bào)文生成回顯探測(cè)報(bào)文。
為了實(shí)現(xiàn)上述目的,本發(fā)明又提供了一種IPv6網(wǎng)絡(luò)路由器,包括網(wǎng)絡(luò)通信模塊;擴(kuò)展頭識(shí)別模塊,用于識(shí)別接收到的IPv6報(bào)文基本頭中的下一報(bào)頭字段,在下一報(bào)頭字段值為時(shí)間戳擴(kuò)展頭標(biāo)識(shí)時(shí),發(fā)送至?xí)r間戳擴(kuò)展頭處理模塊;以及時(shí)間戳擴(kuò)展頭處理模塊,與所述擴(kuò)展識(shí)別模塊及網(wǎng)絡(luò)通信模塊連接,用于將時(shí)間戳寫入帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文,并將寫入時(shí)間戳的探測(cè)報(bào)文發(fā)送至網(wǎng)絡(luò)通信模塊。
本發(fā)明通過帶有時(shí)間戳擴(kuò)展頭的IPv6報(bào)文實(shí)現(xiàn)了鏈路利用率的端到端測(cè)量,無需通過SNMP訪問路由器,不會(huì)給路由器帶來很大的處理負(fù)擔(dān);測(cè)量精度高,并且可根據(jù)IPv6網(wǎng)絡(luò)的速率調(diào)整探測(cè)報(bào)文發(fā)送參數(shù),從而對(duì)測(cè)量精度進(jìn)行調(diào)整。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為單跳時(shí)延模型示意圖; 圖2為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法流程圖; 圖3為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法的路由器處理探測(cè)報(bào)文的流程圖; 圖4為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法實(shí)施例一的部署方案示意圖; 圖5為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法實(shí)施例二的部署方案示意圖; 圖6為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例一結(jié)構(gòu)示意圖; 圖7為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例二結(jié)構(gòu)示意圖; 圖8為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例三結(jié)構(gòu)示意圖; 圖9為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例四結(jié)構(gòu)示意圖; 圖10為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例五結(jié)構(gòu)示意圖; 圖11為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例六結(jié)構(gòu)示意圖; 圖12為支持本發(fā)明的測(cè)量方法的IPv6網(wǎng)絡(luò)路由器結(jié)構(gòu)示意圖; 圖13為本發(fā)明的IPv6網(wǎng)絡(luò)路由器的時(shí)間戳擴(kuò)展頭處理模塊結(jié)構(gòu)示意圖。
具體實(shí)施例方式 由于IPv6協(xié)議中并沒有IPv4協(xié)議的“時(shí)間戳選項(xiàng)”這種標(biāo)準(zhǔn)報(bào)文定義,因此必須定義一個(gè)時(shí)間戳擴(kuò)展頭,同時(shí)要求IPv6路由器支持對(duì)時(shí)間戳擴(kuò)展頭的處理,并需要相應(yīng)的IPv6網(wǎng)絡(luò)測(cè)試裝置能夠生成帶IPv6時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文,并能根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列計(jì)算鏈路利用率。
為了敘述方便,本發(fā)明定義了一種時(shí)間戳擴(kuò)展頭的結(jié)構(gòu),并以該時(shí)間戳擴(kuò)展頭結(jié)構(gòu)為例說明本發(fā)明的技術(shù)方案。但需要說明的是,本發(fā)明的技術(shù)方案并不限于采用該時(shí)間戳擴(kuò)展頭結(jié)構(gòu)的技術(shù)方案,時(shí)間戳擴(kuò)展頭可采用多種定義方式,根據(jù)時(shí)間戳擴(kuò)展頭字段定義的不同,路由器記錄時(shí)間戳的具體方式,以及測(cè)量裝置生成探測(cè)報(bào)文以及處理報(bào)文的具體方法,可能會(huì)有所不同。
IPv6擴(kuò)展頭通過IPv6頭的“下一報(bào)頭”字段進(jìn)行標(biāo)識(shí)。根據(jù)國(guó)際組織互聯(lián)網(wǎng)編號(hào)分配機(jī)構(gòu)(Internet Assigned Numbers Authority)所給出的協(xié)議編號(hào)(Protocol Number)列表,目前未指派的編號(hào)是138-252。可采用其中的一個(gè)編號(hào)作為時(shí)間戳擴(kuò)展頭標(biāo)識(shí),例如,使用138標(biāo)識(shí),即當(dāng)IPv6基本頭的“NEXTHEADER”字段的值為138的時(shí)候,表明基本頭之后是時(shí)間戳擴(kuò)展頭。根據(jù)RFC 2460規(guī)定的格式,時(shí)間戳擴(kuò)展頭的具體格式可如表6所示 表6時(shí)間戳擴(kuò)展頭格式
各字段含義如下 Next Header下一報(bào)頭;該字段占用1個(gè)字節(jié);所有IPv6擴(kuò)展頭都包含“Next Header”字段用于標(biāo)識(shí)下一頭字段的類型; Extension Header Length擴(kuò)展頭長(zhǎng)度;該字段占用1個(gè)字節(jié);擴(kuò)展頭長(zhǎng)度,用以標(biāo)識(shí)時(shí)間戳選項(xiàng)擴(kuò)展頭的長(zhǎng)度,該長(zhǎng)度以8字節(jié)為單位,不包含擴(kuò)展頭的第一個(gè)8字節(jié),即如果擴(kuò)展頭只有8字節(jié)長(zhǎng),該字段值即為0;該字段限制了擴(kuò)展頭最多為2048字節(jié)。
Type類型;該字段占用1個(gè)字節(jié);用于標(biāo)識(shí)時(shí)間戳選項(xiàng)頭的類型,根據(jù)RFC 2460的建議,Type字段的兩個(gè)高位值為00,表示“如果IPv6節(jié)點(diǎn)不支持該選項(xiàng)類型,則跳過本擴(kuò)展頭處理下一個(gè)擴(kuò)展頭”;因此,可規(guī)定以4表示“逐跳記錄路由器時(shí)間戳”,參見表7 表7“Type”字段的構(gòu)成 Data Pointer數(shù)據(jù)指針;該字段占用1個(gè)字節(jié);標(biāo)識(shí)當(dāng)前已經(jīng)記錄的時(shí)間戳數(shù)目,同時(shí)表明下一個(gè)時(shí)間戳存放在擴(kuò)展頭中的位置;Data Pointer的初始值是0,每當(dāng)帶有時(shí)間戳擴(kuò)展頭的IPv6報(bào)文經(jīng)過一個(gè)路由器的時(shí)候,這個(gè)路由器就在時(shí)間戳擴(kuò)展報(bào)頭的“Data”部分寫入一個(gè)時(shí)間戳,同時(shí)將DataPointer的值加一,除非Data Pointer的值已經(jīng)是255;路由器記錄時(shí)間戳的位置為從時(shí)間戳擴(kuò)展報(bào)文頭的首部算起的第8×(DataPointer+1)個(gè)字節(jié)。
PADS該字段占用4個(gè)字節(jié)(32bits);僅用于填充,使得時(shí)間戳擴(kuò)展報(bào)文頭在去除了“Data”字段后的長(zhǎng)度是8字節(jié)的倍數(shù)。
Data擴(kuò)展頭中的數(shù)據(jù),該字段記錄報(bào)文通過路由器的具體時(shí)間,即時(shí)間戳;每個(gè)時(shí)間戳占用8個(gè)字節(jié)(64 bit)。時(shí)間戳是從協(xié)調(diào)世界時(shí)間(Coordinated Universal Time,簡(jiǎn)稱UTC)午夜開始到當(dāng)前時(shí)間所經(jīng)過的微秒數(shù);多個(gè)時(shí)間戳按照被記錄到時(shí)間戳擴(kuò)展頭的順序依次排列。受到“ExtensionHeader Length”的限制,“Data”字段最多可以記錄255個(gè)時(shí)間戳。
如圖2所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法流程圖,包括如下步驟 步驟1、探測(cè)源端向網(wǎng)絡(luò)發(fā)送多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文; 步驟2、探測(cè)報(bào)文經(jīng)過的每一跳路由器將當(dāng)前時(shí)間戳寫入探測(cè)報(bào)文; 步驟3、探測(cè)源端和/或探測(cè)目的端根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率。
對(duì)不同速率的鏈路在測(cè)試過程中探測(cè)頻率的選擇主要考慮兩方面的因素首先考慮測(cè)量的精確度,如果探測(cè)報(bào)文發(fā)送過少,測(cè)量得到的精確度不足;另外要考慮探測(cè)報(bào)文對(duì)鏈路本身利用率的影響,如果探針發(fā)送的過于頻繁,會(huì)加重鏈路負(fù)載影響測(cè)試結(jié)果。發(fā)送探測(cè)報(bào)文的時(shí)間間隔可通過下表確定。
表8鏈路速率與探測(cè)頻率的關(guān)系 如圖3所示,為路由器處理探測(cè)報(bào)文的流程圖,包括如下步驟 步驟A、從探測(cè)報(bào)文中提取基本頭中的“Next Header”字段; 步驟B、判斷“Next Header”的值是否為時(shí)間戳擴(kuò)展頭標(biāo)識(shí)138,若是,執(zhí)行步驟C; 步驟C、判斷時(shí)間戳擴(kuò)展頭是否可容納更多的時(shí)間戳,若是,執(zhí)行步驟D; 可以通過時(shí)間戳擴(kuò)展頭中的“Extension Header Length”字段以及“DataPointer”字段判斷是否可容納更多的時(shí)間戳;由于“Extension Header Length”字段的值不包含擴(kuò)展頭的第一個(gè)8字節(jié),因此實(shí)際上該字段的值即為表明時(shí)間戳數(shù)目的“Data Pointer”的最大值。
路由器從時(shí)間戳擴(kuò)展頭中提取“Extension Header Length”字段以及“DataPointer”字段的值,判斷“Extension Header Length”是否大于“Data Pointer”,若是,則說明時(shí)間戳擴(kuò)展頭可容納更多地時(shí)間戳,可寫入;否則,說明時(shí)間戳擴(kuò)展頭無法容納更多的時(shí)間戳。
步驟D、將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭; 路由器在寫入時(shí)間戳?xí)r,先根據(jù)“Data Pointer”計(jì)算時(shí)間戳存放位置,然后將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭,并且更新“Data Pointer”的值,即將“DataPointer”的值加一。
根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率的方法可參照IPv4網(wǎng)絡(luò)中單跳時(shí)延-鏈路利用率算法,提取多個(gè)探測(cè)報(bào)文的時(shí)間戳序列,針對(duì)每一跳鏈路,計(jì)算時(shí)延序列,提取時(shí)延序列中的最小時(shí)延,計(jì)算排隊(duì)時(shí)延序列,將排隊(duì)時(shí)延序列轉(zhuǎn)換為鏈路狀態(tài)序列,計(jì)算該跳鏈路的利用率。
但是,對(duì)于吞吐量大,鏈路利用率變化顯著的情況,如果只是簡(jiǎn)單的通過0,1來統(tǒng)計(jì)鏈路的忙閑狀態(tài),不夠準(zhǔn)確。本發(fā)明采用利用率平滑算法,將鏈路狀態(tài)從0,1這個(gè)二階量改成多階量,從而使得到的鏈路利用率比使用0,1統(tǒng)計(jì)方法更加貼近實(shí)際鏈路利用率。
記第i個(gè)探測(cè)報(bào)文的排隊(duì)時(shí)延為Tqueue(i)設(shè)N個(gè)連續(xù)探測(cè)報(bào)文中最大的排隊(duì)時(shí)延其中i=1,2,...,N。根據(jù)探測(cè)精度的要求,可設(shè)定一個(gè)遞增數(shù)列{t}=t0,t1,...,tj,tj+1,...,tK,tK+1,(其中t0=0,tK+1=Tqmax)。數(shù)列{t}的子列{t′}=t0,t1,...,tj,tj+1,...,tK在實(shí)數(shù)域[0,1)上的映射是遞增數(shù)列{x}=x0,x1,...,xj,xj+1,...,xK(其中x0=0,xK=1)。tj與xj的映射關(guān)系可以通過線性或非線性函數(shù)定義,也可通過映射關(guān)系表定義。
第i個(gè)探測(cè)報(bào)文測(cè)得的鏈路狀態(tài)為Xi 最后對(duì)鏈路狀態(tài)通過滑動(dòng)窗口算法來處理,得到信道利用率。在采樣窗口W時(shí)間內(nèi),以頻率f對(duì)鏈路的忙閑狀態(tài)持續(xù)采樣,樣本數(shù)n=Wf,記采樣結(jié)果為Xi,i=1...n,則鏈路利用率 探測(cè)報(bào)文至少可以通過ICMP報(bào)文或TCP/UDP報(bào)文實(shí)現(xiàn),下面分別通過兩個(gè)實(shí)施例分別對(duì)采用這兩種報(bào)文的測(cè)量方法進(jìn)行說明。
方法實(shí)施例一 本實(shí)施例采用帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP回顯請(qǐng)求(Echo Request)作為探測(cè)報(bào)文。如圖4所示,為本實(shí)施例的部署方案示意圖,探測(cè)目的端是任意支持IPv6協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn),可以是路由器、計(jì)算機(jī)主機(jī)等。
表9 帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP報(bào)文 如表9所示,為帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP報(bào)文結(jié)構(gòu)。探測(cè)源端根據(jù)表9所示報(bào)文結(jié)構(gòu)生成帶有時(shí)間戳擴(kuò)展頭的ICMPv6 Echo Request報(bào)文PktX,并向探測(cè)目的端發(fā)送。中途經(jīng)過的路由器將時(shí)間戳記錄到報(bào)文PktX的時(shí)間戳擴(kuò)展頭的Data字段中。報(bào)文PktX到達(dá)探測(cè)目的端后,探測(cè)目的端創(chuàng)建ICMPv6 Echo報(bào)文PktY,將PktX的內(nèi)容拷貝到PktY中,然后將該報(bào)文發(fā)送回探測(cè)源端。在探測(cè)目的端到探測(cè)源端的路徑上,路由器同樣將時(shí)間戳依序記錄到報(bào)文PktY中。探測(cè)源收到報(bào)文PktY,提取時(shí)間戳擴(kuò)展頭的數(shù)據(jù),進(jìn)行處理,根據(jù)時(shí)間戳序列計(jì)算得到鏈路Router1->Router2、鏈路Router2->Router3、...、鏈路 RouterN-1->RouterN、鏈路RouterN->RouterN-1、...、鏈路Router2->Router1的鏈路利用率。
這種測(cè)量方式的好處是可以實(shí)現(xiàn)單端測(cè)量,即,在探測(cè)源端發(fā)送探測(cè)報(bào)文并接收探測(cè)報(bào)文,只需要探測(cè)源端支持探測(cè)報(bào)文的生成以及根據(jù)時(shí)間戳序列計(jì)算鏈路利用率。
方法實(shí)施例二 本實(shí)施例采用帶有IPv6時(shí)間戳擴(kuò)展頭的TCP/UDP報(bào)文作為探測(cè)報(bào)文。如圖5所示,為本實(shí)施例的部署方案示意圖,探測(cè)目的端可以是任意支持IPv6協(xié)議的網(wǎng)絡(luò)節(jié)點(diǎn),可以是路由器、計(jì)算機(jī)主機(jī)等,但與上一實(shí)施例不同之處在于探測(cè)目的端應(yīng)該能夠據(jù)根據(jù)時(shí)間戳序列計(jì)算鏈路利用率。
表10 帶有IPv6時(shí)間戳擴(kuò)展報(bào)文頭的TCP/UDP報(bào)文 如表10所示,為帶有IPv6時(shí)間戳擴(kuò)展頭的TCP/UDP報(bào)文。探測(cè)源端向探測(cè)目的端發(fā)送帶有時(shí)間戳擴(kuò)展頭的TCP/UDP報(bào)文PktZ。中途經(jīng)過的路由器將時(shí)間戳記錄到報(bào)文PktZ的時(shí)間戳擴(kuò)展頭的Data字段中。在探測(cè)目的端接收這些探測(cè)報(bào)文并提取時(shí)間戳數(shù)據(jù)進(jìn)行處理,根據(jù)時(shí)間戳序列計(jì)算得到鏈路Router1->Router2、鏈路Router2->Router3、...、鏈路RouterN-1->RouterN的鏈路利用率。
本實(shí)施例具有更大的靈活性,在探測(cè)從探測(cè)源端到探測(cè)目的端路徑的各個(gè)鏈路利用率時(shí),不需記錄探測(cè)目的端到探測(cè)源端路徑的時(shí)間戳;在探測(cè)從探測(cè)目的端到探測(cè)源端路徑的各個(gè)鏈路利用率時(shí),也不需記錄探測(cè)源端到探測(cè)目的端路徑的時(shí)間戳,縮短了測(cè)量的時(shí)間,并減少了因測(cè)量而給相應(yīng)路由器帶來的負(fù)擔(dān)。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例一 如圖6所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例一結(jié)構(gòu)示意圖。該裝置至少包括探測(cè)報(bào)文生成模塊以及網(wǎng)絡(luò)通信模塊。探測(cè)報(bào)文生成模塊用于生成帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文,根據(jù)測(cè)量方案的不同,探測(cè)報(bào)文可以為帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Requset,或者為帶有IPv6時(shí)間戳擴(kuò)展頭的TCP/UDP報(bào)文。網(wǎng)絡(luò)通信模塊用于發(fā)送和/或接收探測(cè)報(bào)文。在基于TCP/UDP報(bào)文的測(cè)量方法中,探測(cè)源端可采用這種結(jié)構(gòu),并且網(wǎng)絡(luò)通信模塊只支持發(fā)送探測(cè)報(bào)文即可。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例二 如圖7所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例二結(jié)構(gòu)示意圖。本實(shí)施例在實(shí)施例一的基礎(chǔ)上加入了一個(gè)探測(cè)報(bào)文處理模塊,該模塊與網(wǎng)絡(luò)通信模塊連接,用于根據(jù)接收的探測(cè)報(bào)文的時(shí)間戳序列計(jì)算鏈路利用率。在基于ICMP報(bào)文的測(cè)量方法中,探測(cè)源端可采用這種結(jié)構(gòu)。首先由探測(cè)報(bào)文生成模塊生成帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Request并通過網(wǎng)絡(luò)通信模塊發(fā)送;網(wǎng)絡(luò)通信模塊收到帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo后發(fā)送至探測(cè)報(bào)文處理模塊;探測(cè)報(bào)文處理模塊提取時(shí)間戳序列,并根據(jù)時(shí)間戳序列計(jì)算鏈路利用率。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例三 如圖8所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例三結(jié)構(gòu)示意圖。本實(shí)施例包括網(wǎng)絡(luò)通信模塊及探測(cè)報(bào)文處理模塊。網(wǎng)絡(luò)通信模塊用于發(fā)送和/或接收探測(cè)報(bào)文;探測(cè)報(bào)文處理模塊與網(wǎng)路通信模塊連接,用于根據(jù)接收的探測(cè)報(bào)文的時(shí)間戳序列計(jì)算鏈路利用率。在基于TCP/UDP報(bào)文的測(cè)量方法中,探測(cè)目的端可采用這種結(jié)構(gòu)。探測(cè)目的端的網(wǎng)絡(luò)通信模塊接收到帶有IPv6時(shí)間戳擴(kuò)展頭的TCP/UDP報(bào)文后,發(fā)送至探測(cè)報(bào)文處理模塊,由探測(cè)報(bào)文處理模塊根據(jù)時(shí)間戳序列計(jì)算鏈路利用率。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例四 如圖9所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例四結(jié)構(gòu)示意圖。本實(shí)施例包括網(wǎng)絡(luò)通信模塊及探測(cè)報(bào)文回送模塊。探測(cè)報(bào)文回送模塊與網(wǎng)絡(luò)通信模塊連接,用于根據(jù)帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Request生成帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo并向發(fā)送。在基于ICMP報(bào)文的測(cè)量方法中,測(cè)量目的端可采用這種結(jié)構(gòu)。探測(cè)目的端的網(wǎng)絡(luò)通信模塊接收到帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Request報(bào)文后,發(fā)送至探測(cè)報(bào)文回送模塊;探測(cè)報(bào)文回送模塊根據(jù)ICMP Echo Request報(bào)文生成ICMP Echo報(bào)文,即創(chuàng)建ICMP Echo報(bào)文,將ICMP Echo Request報(bào)文的內(nèi)容復(fù)制到ICMP Echo報(bào)文中,然后發(fā)送至網(wǎng)絡(luò)通信模塊,由網(wǎng)絡(luò)通信模塊將ICMP Echo報(bào)文發(fā)送回探測(cè)源端。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例五 在圖9所示的實(shí)施例中也可加入探測(cè)報(bào)文處理模塊,構(gòu)成圖10所示的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例五。探測(cè)報(bào)文處理模塊與網(wǎng)絡(luò)通信模塊連接。在基于ICMP報(bào)文的測(cè)量方法中,探測(cè)目的端可采用這種結(jié)構(gòu),網(wǎng)絡(luò)通信模塊接收到帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Request報(bào)文后,將其同時(shí)發(fā)送至探測(cè)報(bào)文處理模塊以及探測(cè)報(bào)文回送模塊;探測(cè)報(bào)文處理模塊根據(jù)時(shí)間戳序列計(jì)算探測(cè)源端到探測(cè)目的端路徑各鏈路利用率;探測(cè)報(bào)文回送模塊生成帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo報(bào)文并向探測(cè)目的端返回。這樣,探測(cè)目的端既可以響應(yīng)帶有IPv6時(shí)間戳擴(kuò)展頭的ICMP Echo Request,又可以計(jì)算鏈路利用率。
IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例六 如圖11所示,為本發(fā)明的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置實(shí)施例六結(jié)構(gòu)示意圖。本實(shí)施例包括網(wǎng)絡(luò)通信模塊,以及與網(wǎng)絡(luò)通信模塊連接的探測(cè)報(bào)文生成模塊、探測(cè)報(bào)文處理模塊及探測(cè)報(bào)文回送模塊。各模塊的功能不再贅述。本實(shí)施例可作為探測(cè)源端,也可作為探測(cè)目的端,并且即可用于基于ICMP報(bào)文的測(cè)量方法,也可應(yīng)用于基于TCP/UDP的測(cè)量方法。
IPv6網(wǎng)絡(luò)路由器實(shí)施例 如圖12所示,為支持本發(fā)明的測(cè)量方法的IPv6網(wǎng)絡(luò)路由器結(jié)構(gòu)示意圖。在現(xiàn)有路由器中加入了時(shí)間戳擴(kuò)展頭處理模塊,并對(duì)現(xiàn)有路由器的模塊進(jìn)行改進(jìn)。擴(kuò)展頭識(shí)別模塊與所述網(wǎng)絡(luò)通信模塊連接,該擴(kuò)展頭識(shí)別模塊除了能夠識(shí)別RFC2460中定義的擴(kuò)展頭之外,還要能夠識(shí)別IPv6時(shí)間戳擴(kuò)展頭標(biāo)識(shí),在“Next Header”字段值為時(shí)間戳擴(kuò)展頭標(biāo)識(shí)時(shí),發(fā)送至?xí)r間戳擴(kuò)展頭處理模塊;時(shí)間戳擴(kuò)展頭處理模塊與擴(kuò)展識(shí)別模塊連接及網(wǎng)絡(luò)通信模塊連接,用于將時(shí)間戳寫入帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文,然后交由網(wǎng)絡(luò)通信模塊發(fā)送。
如圖13所示,為上述IPv6網(wǎng)絡(luò)路由器實(shí)施例中時(shí)間戳擴(kuò)展頭處理模塊的結(jié)構(gòu)示意圖,包括容量判斷模塊,與擴(kuò)展頭識(shí)別模塊連接,用于判斷時(shí)間戳擴(kuò)展頭是否可容納更多的時(shí)間戳;位置計(jì)算模塊,與容量判斷模塊連接,用于在時(shí)間戳擴(kuò)展頭可容納更多時(shí)間戳的情況下,計(jì)算時(shí)間戳的存放位置;記錄模塊,與位置計(jì)算模塊及網(wǎng)絡(luò)通信模塊連接,用于根據(jù)時(shí)間戳存放位置將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭,然后將新寫入時(shí)間戳的時(shí)間戳擴(kuò)展頭交由網(wǎng)絡(luò)通信模塊發(fā)送。
本發(fā)明通過帶有時(shí)間戳擴(kuò)展頭的IPv6報(bào)文實(shí)現(xiàn)了鏈路利用率的端到端測(cè)量,無需通過SNMP訪問路由器,不會(huì)給路由器帶來很大的處理負(fù)擔(dān);測(cè)量精度高,并且可根據(jù)IPv6網(wǎng)絡(luò)的速率調(diào)整探測(cè)報(bào)文發(fā)送參數(shù),從而對(duì)測(cè)量精度進(jìn)行調(diào)整。
最后應(yīng)當(dāng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其限制;對(duì)本發(fā)明的具體實(shí)施方式
進(jìn)行修改或者對(duì)部分技術(shù)特征進(jìn)行等同替換,而不脫離本發(fā)明技術(shù)方案精神的,其均應(yīng)涵蓋在本發(fā)明請(qǐng)求保護(hù)的技術(shù)方案范圍當(dāng)中。
權(quán)利要求
1.一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述方法包括如下步驟
探測(cè)源端向網(wǎng)絡(luò)發(fā)送多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文;
探測(cè)報(bào)文經(jīng)過的每一跳路由器將當(dāng)前時(shí)間戳寫入探測(cè)報(bào)文;
探測(cè)源端和/或目的端根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率。
2.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述探測(cè)報(bào)文經(jīng)過的每一跳路由器將當(dāng)前時(shí)間戳寫入探測(cè)報(bào)文進(jìn)一步包括以下步驟探測(cè)報(bào)文經(jīng)過的路由器提取探測(cè)報(bào)文基本頭的下一報(bào)頭字段,若所述下一報(bào)頭字段的值為時(shí)間戳擴(kuò)展頭標(biāo)識(shí),并且當(dāng)所述時(shí)間戳可以寫入所述時(shí)間戳擴(kuò)展頭時(shí),將所述時(shí)間戳寫入所述時(shí)間戳擴(kuò)展頭。
3.根據(jù)權(quán)利要求2所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述時(shí)間戳可以寫入所述時(shí)間戳擴(kuò)展頭的條件是從所述時(shí)間戳擴(kuò)展頭中提取擴(kuò)展頭長(zhǎng)度信息及時(shí)間戳數(shù)目信息,所述擴(kuò)展頭長(zhǎng)度大于所述時(shí)間戳數(shù)目。
4.根據(jù)權(quán)利要求3所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭的步驟具體為根據(jù)所述時(shí)間戳數(shù)目計(jì)算時(shí)間戳存放位置,將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭,并且將時(shí)間戳數(shù)目加一。
5.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述探測(cè)源端向網(wǎng)絡(luò)發(fā)送的多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文為多個(gè)帶有時(shí)間戳擴(kuò)展頭的回顯請(qǐng)求報(bào)文。
6.根據(jù)權(quán)利要求5所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述方法進(jìn)一步包括以下步驟
探測(cè)目的端接收帶有時(shí)間戳擴(kuò)展頭的回顯請(qǐng)求報(bào)文;
創(chuàng)建帶有時(shí)間戳擴(kuò)展頭的回顯報(bào)文,將所述回顯請(qǐng)求報(bào)文的內(nèi)容復(fù)制到所述回顯報(bào)文中;
將所述回顯報(bào)文向探測(cè)源端發(fā)送。
7.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述探測(cè)源端向網(wǎng)絡(luò)發(fā)送的多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文為多個(gè)帶有時(shí)間戳擴(kuò)展頭的傳輸控制協(xié)議報(bào)文或用戶數(shù)據(jù)協(xié)議報(bào)文。
8.根據(jù)權(quán)利要求1所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率進(jìn)一步包括以下步驟提取多個(gè)探測(cè)報(bào)文的時(shí)間戳序列,針對(duì)每一跳鏈路,計(jì)算時(shí)延序列,提取時(shí)延序列中的最小時(shí)延,計(jì)算排隊(duì)時(shí)延序列,將排隊(duì)時(shí)延序列轉(zhuǎn)換為鏈路狀態(tài)序列,計(jì)算該跳鏈路的利用率。
9.根據(jù)權(quán)利要求8所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述方法進(jìn)一步包括以下步驟
設(shè)置排隊(duì)時(shí)延與鏈路狀態(tài)的映射關(guān)系;
根據(jù)所述排隊(duì)時(shí)延與鏈路狀態(tài)的映射關(guān)系將排隊(duì)時(shí)延序列中的每一排隊(duì)時(shí)延轉(zhuǎn)換為相應(yīng)的鏈路狀態(tài),生成鏈路狀態(tài)序列。
10.根據(jù)權(quán)利要求9所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述計(jì)算該跳鏈路的利用率的步驟具體為,計(jì)算所述鏈路狀態(tài)序列的均值。
11.根據(jù)權(quán)利要求1-10任一所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,其特征在于,所述方法還包括根據(jù)鏈路速率確定發(fā)送探測(cè)報(bào)文的時(shí)間間隔。
12.一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,其特征在于,所述裝置包括
探測(cè)報(bào)文生成模塊,用于生成帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文;
網(wǎng)絡(luò)通信模塊,用于發(fā)送和/或接收所述探測(cè)報(bào)文。
13.根據(jù)權(quán)利要求12所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,其特征在于,所述裝置還包括探測(cè)報(bào)文處理模塊,用于根據(jù)接收的探測(cè)報(bào)文的時(shí)間戳計(jì)算鏈路利用率。
14.根據(jù)權(quán)利要求12或13所述的IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,其特征在于,所述裝置還包括探測(cè)報(bào)文回送模塊,用于根據(jù)回顯請(qǐng)求探測(cè)報(bào)文生成回顯探測(cè)報(bào)文。
15.一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,其特征在于,所述裝置包括
網(wǎng)絡(luò)通信模塊,用于發(fā)送和/或接收探測(cè)報(bào)文;
探測(cè)報(bào)文處理模塊,用于根據(jù)所述探測(cè)報(bào)文的時(shí)間戳計(jì)算鏈路利用率。
16.根據(jù)權(quán)利要求15所述的IPv6網(wǎng)絡(luò)鏈路以用率測(cè)量裝置,其特征在于,所述裝置還包括探測(cè)報(bào)文回送模塊,用于根據(jù)回顯請(qǐng)求探測(cè)報(bào)文生成回顯探測(cè)報(bào)文。
17.一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置,其特征在于,所述裝置包括
網(wǎng)絡(luò)通信模塊,用于發(fā)送和/或接收探測(cè)報(bào)文;
探測(cè)報(bào)文回送模塊,用于根據(jù)回顯請(qǐng)求探測(cè)報(bào)文生成回顯探測(cè)報(bào)文。
18.一種IPv6網(wǎng)絡(luò)路由器,包括網(wǎng)絡(luò)通信模塊,其特征在于,所述路由器還包括
擴(kuò)展頭識(shí)別模塊,用于識(shí)別接收到的IPv6報(bào)文基本頭中的下一報(bào)頭字段,在下一報(bào)頭字段值為時(shí)間戳擴(kuò)展頭標(biāo)識(shí)時(shí),發(fā)送至?xí)r間戳擴(kuò)展頭處理模塊;以及
時(shí)間戳擴(kuò)展頭處理模塊,用于將時(shí)間戳寫入帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文,并將寫入時(shí)間戳的探測(cè)報(bào)文發(fā)送至網(wǎng)絡(luò)通信模塊。
19.根據(jù)權(quán)利要求18所述的路由器,其特征在于,所述時(shí)間戳擴(kuò)展頭處理模塊包括
容量判斷模塊,用于判斷時(shí)間戳擴(kuò)展頭是否可容納更多的時(shí)間戳;
位置計(jì)算模塊,用于在時(shí)間戳擴(kuò)展頭可容納更多時(shí)間戳的情況下,計(jì)算時(shí)間戳的存放位置;
記錄模塊,用于根據(jù)時(shí)間戳存放位置將時(shí)間戳寫入時(shí)間戳擴(kuò)展頭。
全文摘要
本發(fā)明提供一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量方法,包括如下步驟探測(cè)源端向網(wǎng)絡(luò)發(fā)送多個(gè)帶有時(shí)間戳擴(kuò)展頭的探測(cè)報(bào)文;探測(cè)報(bào)文經(jīng)過的每一跳路由器將當(dāng)前時(shí)間戳寫入探測(cè)報(bào)文;探測(cè)源端和/或目的端根據(jù)多個(gè)探測(cè)報(bào)文的時(shí)間戳序列得到鏈路利用率。本發(fā)明還提供一種IPv6網(wǎng)絡(luò)鏈路利用率測(cè)量裝置和一種IPv6網(wǎng)絡(luò)路由器。本發(fā)明通過帶有時(shí)間戳擴(kuò)展頭的IPv6報(bào)文實(shí)現(xiàn)了鏈路利用率的端到端測(cè)量,測(cè)量精度高,并且可根據(jù)IPv6網(wǎng)絡(luò)的速率調(diào)整探測(cè)報(bào)文發(fā)送參數(shù),從而對(duì)測(cè)量精度進(jìn)行調(diào)整。
文檔編號(hào)H04L12/24GK101192951SQ20061014420
公開日2008年6月4日 申請(qǐng)日期2006年11月29日 優(yōu)先權(quán)日2006年11月29日
發(fā)明者李智濤, 崔毅東, 莊宏成, 青 劉, 徐雅靜, 黃小紅 申請(qǐng)人:華為技術(shù)有限公司