基于軟件定義網(wǎng)絡(luò)的端到端路徑上逐跳鏈路丟包測(cè)量方法【
技術(shù)領(lǐng)域:
】[0001]本技術(shù)涉及網(wǎng)絡(luò)性能測(cè)量
技術(shù)領(lǐng)域:
,特別是基于軟件定義網(wǎng)絡(luò)的端到端路徑上逐跳鏈路丟包測(cè)量方法?!?br>背景技術(shù):
】[0002]軟件定義網(wǎng)絡(luò)SDN通過(guò)OpenFlow協(xié)議對(duì)交換機(jī)進(jìn)行控制,交換機(jī)與控制器進(jìn)行通信,并通過(guò)OpenFlow的協(xié)議控制器管理的交換機(jī)。OpenFlow的交換機(jī)包括一個(gè)或多個(gè)流表和一組表,執(zhí)行分組查找和轉(zhuǎn)發(fā),和到一個(gè)外部控制器OpenFlow的信道。交換機(jī)收到一個(gè)新流的報(bào)文,在流表中沒(méi)有匹配項(xiàng),則發(fā)送Packet-1n消息給控制器,如果交換機(jī)緩存足夠多,報(bào)文被臨時(shí)放在緩存中,報(bào)文的部分內(nèi)容(默認(rèn)128字節(jié))和在交換機(jī)緩存中的的序號(hào)也一同發(fā)給控制器;如果交換機(jī)緩存不足以存儲(chǔ)報(bào)文,則將整個(gè)報(bào)文作為消息的附帶內(nèi)容發(fā)給控制器。交換機(jī)中的流表項(xiàng)因?yàn)槌瑫r(shí)、結(jié)束、修改等原因被刪除掉,會(huì)觸發(fā)Flow-removed消息,將流表的相關(guān)統(tǒng)計(jì)信息發(fā)送給控制器。在軟件定義網(wǎng)絡(luò)中,每個(gè)交換機(jī)在收到一個(gè)流的第一個(gè)報(bào)文時(shí),交換機(jī)會(huì)向控制器轉(zhuǎn)發(fā)第一個(gè)報(bào)文,控制器根據(jù)第一個(gè)報(bào)文的信息向交換機(jī)下發(fā)流表,這個(gè)流的后續(xù)報(bào)文就根據(jù)流表轉(zhuǎn)發(fā)到下一個(gè)交換機(jī),軟件定義網(wǎng)絡(luò)通過(guò)這種機(jī)制可以提高網(wǎng)絡(luò)流中后續(xù)報(bào)文的快速轉(zhuǎn)發(fā)效率。[0003]軟件定義網(wǎng)絡(luò)中交換機(jī)記錄每個(gè)流轉(zhuǎn)發(fā)報(bào)文的信息,在流結(jié)束的時(shí)候,交換機(jī)將流記錄信息上傳給控制器,由此根據(jù)每個(gè)交換機(jī)上傳相同網(wǎng)絡(luò)流的報(bào)文數(shù)之間的數(shù)量差可以估算出在兩個(gè)交換機(jī)之間鏈路上丟失報(bào)文數(shù)。[0004]傳統(tǒng)的丟包測(cè)量方法主要是采用從源主機(jī)發(fā)送到宿主機(jī)的ping報(bào)文,記錄源主機(jī)發(fā)送ping報(bào)文的數(shù)量和宿主機(jī)應(yīng)答ping報(bào)文的數(shù)量之間的差來(lái)估算出源宿主機(jī)端到端路徑上的丟包率。目前還沒(méi)有辦法能夠解決傳統(tǒng)網(wǎng)絡(luò)中這些丟包在每一跳鏈路上的分布情況,但是每一跳鏈路的丟包情況對(duì)網(wǎng)絡(luò)故障和瓶頸鏈路的方法非常重要,為了解決這個(gè)問(wèn)題,現(xiàn)有的解決方法有2種,一種是已經(jīng)被測(cè)量網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),測(cè)量網(wǎng)絡(luò)中多個(gè)主機(jī)端到端丟包,然后根據(jù)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立性能矩陣進(jìn)而推理出每個(gè)鏈路的丟包,這種方法存在以下幾個(gè)問(wèn)題:1.網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)本身存在不穩(wěn)定;2.為了能夠?qū)崿F(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的鏈路丟包推斷,要測(cè)量到網(wǎng)絡(luò)中大量的端到端時(shí)延丟包;3.推理出的端到端丟包誤差非常大。[0005]本發(fā)明就充分利用軟件定義網(wǎng)絡(luò)中OpenFlow協(xié)議的這兩個(gè)特點(diǎn)進(jìn)行鏈路的丟包測(cè)量,利用每個(gè)交換機(jī)轉(zhuǎn)發(fā)網(wǎng)絡(luò)流的報(bào)文數(shù)信息由此可以推斷出交換機(jī)和交換機(jī)之間每條鏈路的丟包信息。【
發(fā)明內(nèi)容】[0006]本發(fā)明目的在于提供一種基于軟件定義網(wǎng)絡(luò)的端到端路徑上逐跳鏈路丟包測(cè)量方法,可以直接采用通用目前軟件定義網(wǎng)絡(luò)的基本配置和特性,能夠?qū)崿F(xiàn)基于軟件定義網(wǎng)絡(luò)的端到端路徑上逐跳鏈路丟包測(cè)量方法。[0007]本發(fā)明的技術(shù)方案是提供基于軟件定義網(wǎng)絡(luò)的端到端路徑上逐跳鏈路丟包測(cè)量方法,其特征在于:[0008]步驟一、設(shè)置在一個(gè)軟件定義網(wǎng)絡(luò)SDN中有η個(gè)交換機(jī),分別為交換機(jī)sl,...,交換機(jī)sn,有一個(gè)網(wǎng)絡(luò)控制器c;設(shè)置接入交換機(jī)sl的測(cè)量主機(jī)mh,測(cè)量主機(jī)mh的IP地址為mhip,設(shè)置接入交換機(jī)sn的目標(biāo)主機(jī)sh,目標(biāo)主機(jī)sh的IP地址為ship,在網(wǎng)絡(luò)控制器c設(shè)置一個(gè)表格table,表格table由時(shí)刻、交換機(jī)IP地址、測(cè)量報(bào)文源IP地址和報(bào)文數(shù)4個(gè)屬性列構(gòu)成,進(jìn)入步驟二;[0009]步驟二、測(cè)量主機(jī)mh構(gòu)建一個(gè)源IP地址為mhip、宿IP地址為ship的由m個(gè)報(bào)文構(gòu)成的網(wǎng)絡(luò)流F,設(shè)定網(wǎng)絡(luò)流F中的第一個(gè)報(bào)文P的內(nèi)容標(biāo)識(shí)為Measure,測(cè)量主機(jī)mh將報(bào)文P發(fā)送給交換機(jī)sl進(jìn)入軟件定義網(wǎng)絡(luò)SDN,在軟件定義網(wǎng)絡(luò)SDN中,當(dāng)前收到報(bào)文P的交換機(jī)是交換機(jī)sl,進(jìn)入步驟二;[0010]步驟三、在軟件定義網(wǎng)絡(luò)SDN中當(dāng)前收到報(bào)文P的交換機(jī)將報(bào)文P轉(zhuǎn)發(fā)給控制器C,控制器C記錄收到報(bào)文P的時(shí)刻為tcb;控制器c為報(bào)文P生成轉(zhuǎn)發(fā)流表并下發(fā)給當(dāng)前收到報(bào)文P的交換機(jī),進(jìn)入步驟四;[0011]步驟四、網(wǎng)絡(luò)控制器c讀取測(cè)量報(bào)文P的內(nèi)容標(biāo)識(shí),如果內(nèi)容標(biāo)識(shí)不為Measure,則進(jìn)入步驟五;否則網(wǎng)絡(luò)控制c的表格table中增加一行,將網(wǎng)絡(luò)控制器c收到報(bào)文P的時(shí)刻tcb記錄在新生成行的時(shí)刻的屬性列中,將當(dāng)前收到報(bào)文P的交換機(jī)IP地址記錄在table新生成行的交換機(jī)IP地址的屬性列中,將報(bào)文P的源IP地址記錄在表格table新生成行的測(cè)量報(bào)文源IP地址的屬性列中,將表格table新生成行的報(bào)文數(shù)的屬性列設(shè)為0,進(jìn)入步驟五;[0012]步驟五、當(dāng)前收到報(bào)文P的交換機(jī)根據(jù)控制器c下發(fā)的轉(zhuǎn)發(fā)流表為網(wǎng)絡(luò)流F維護(hù)一個(gè)網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器和報(bào)文P的源IP地址,設(shè)置網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器初始值為1,并按照網(wǎng)絡(luò)流F的轉(zhuǎn)發(fā)流表將報(bào)文P發(fā)送給下一跳,如果下一跳是目標(biāo)主機(jī)sh,則目標(biāo)主機(jī)sh為網(wǎng)絡(luò)流F維護(hù)一個(gè)報(bào)文數(shù)計(jì)數(shù)器,設(shè)置初始值為1,進(jìn)入步驟六,否則下一跳是軟件定義網(wǎng)絡(luò)SDN中當(dāng)前接收?qǐng)?bào)文P的交換機(jī),回到步驟三;[0013]步驟六、測(cè)量主機(jī)mh將網(wǎng)絡(luò)流F的后續(xù)報(bào)文按照順序發(fā)送到軟件定義網(wǎng)絡(luò)SDN中,如果交換機(jī)收到網(wǎng)絡(luò)流F的后續(xù)報(bào)文,則交換機(jī)按照網(wǎng)絡(luò)流F的轉(zhuǎn)發(fā)流表將網(wǎng)絡(luò)流F的后續(xù)報(bào)文直接轉(zhuǎn)發(fā)到下一跳,并且交換機(jī)將報(bào)文數(shù)更新在網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器中;如果目標(biāo)主機(jī)sh收到網(wǎng)絡(luò)流F的后續(xù)報(bào)文,則更新目標(biāo)主機(jī)中的網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器;如果交換機(jī)和目標(biāo)主機(jī)sh收到網(wǎng)絡(luò)流F的報(bào)文發(fā)生超時(shí)進(jìn)入步驟七,否則回到步驟六;[0014]步驟七、各個(gè)交換機(jī)將交換機(jī)中的網(wǎng)絡(luò)流F的轉(zhuǎn)發(fā)流表從交換機(jī)的轉(zhuǎn)發(fā)流表中刪除,同時(shí)將網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器的值、交換機(jī)的IP地址和報(bào)文P的源IP地址發(fā)送給網(wǎng)絡(luò)控制器c,進(jìn)入步驟八;[0015]步驟八、控制器c根據(jù)收到的各個(gè)交換機(jī)的IP地址和報(bào)文P的源IP地址信息逐個(gè)與表格table中的交換機(jī)IP地址屬性列及測(cè)量報(bào)文源IP地址屬性列進(jìn)行匹配,如果在表格table中能夠找到相匹配的行,則用網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器的值更新相匹配的行的報(bào)文數(shù)屬性列,然后網(wǎng)絡(luò)控制器c將相匹配的行記錄信息發(fā)送給測(cè)量主機(jī)mh,否則不進(jìn)行更新;進(jìn)入步驟九;[0016]步驟九、目標(biāo)主機(jī)sh將目標(biāo)主機(jī)sh中的網(wǎng)絡(luò)流F的報(bào)文數(shù)計(jì)數(shù)器的值發(fā)送給測(cè)量主機(jī)mh,進(jìn)入步驟十;[0017]步驟十、測(cè)量主機(jī)mh將收到的控制器c所發(fā)送表格table的多條記錄信息按照其中的table中時(shí)刻的先后順序排序,得到測(cè)量主機(jī)mh到目標(biāo)主機(jī)sh之間的路由信息,并將每個(gè)鏈路的前一個(gè)交換機(jī)收到的報(bào)文數(shù)減去后一個(gè)交換機(jī)收到的報(bào)文數(shù)的值作為每個(gè)鏈路的丟包數(shù),將測(cè)量主機(jī)mh發(fā)送報(bào)文數(shù)減去交換機(jī)sl收到的報(bào)文數(shù)的值作為測(cè)量主機(jī)mh到交換機(jī)sl的鏈路丟包數(shù),將交換機(jī)sn收到的報(bào)文數(shù)減去目標(biāo)主機(jī)sh收到的報(bào)文數(shù)的值作為交換機(jī)sn到目標(biāo)主機(jī)sh的鏈路丟包數(shù),方法結(jié)束。[0018]與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)及有效效果:[0019](1)傳統(tǒng)端到端丟包測(cè)量方法是采用ping從源點(diǎn)發(fā)送報(bào)文到達(dá)宿點(diǎn),根據(jù)宿點(diǎn)反饋的報(bào)文數(shù)量用以估算端到端的丟包,但是網(wǎng)絡(luò)丟包在那條鏈路上是最大的、性能故障瓶頸具體在什么地方、報(bào)文通過(guò)每個(gè)交換機(jī)、鏈路的丟包當(dāng)前第1頁(yè)1 2 3 4