基于lldp的sdn網(wǎng)絡(luò)鏈路延遲測量方法
【專利摘要】本發(fā)明涉及基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法。利用已有的OpenFlow協(xié)議中的消息和LLDP中的自定義的數(shù)據(jù)單元,實現(xiàn)基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)中點到點之間鏈路延遲的測量方法,不僅能夠準(zhǔn)確的測量出SDN網(wǎng)絡(luò)架構(gòu)中兩點之間的鏈路延遲,而且能夠適應(yīng)網(wǎng)絡(luò)環(huán)境的變化 ,在網(wǎng)絡(luò)環(huán)境不斷變化的過程中,依然可以得出兩點之間鏈路延遲的正確結(jié)果。本發(fā)明是一種主動的網(wǎng)絡(luò)測量方式,但是并沒有向網(wǎng)絡(luò)中發(fā)送額外的探測性的數(shù)據(jù)包,沒有給網(wǎng)絡(luò)帶來任何額外的負(fù)載,利用已有的網(wǎng)絡(luò)資源為網(wǎng)絡(luò)提供更好的服務(wù)。
【專利說明】
基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及在網(wǎng)絡(luò)管理和網(wǎng)絡(luò)測量領(lǐng)域,基于軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)中的LLDP(Link Layer Discovery Protocol,鏈路層發(fā)現(xiàn)協(xié)議),來實現(xiàn)鏈路 延遲測量的技術(shù)。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)測量是釆用特定的方法和技術(shù),通過軟件或硬件工具來測試網(wǎng)絡(luò)的運行狀 態(tài)、表征網(wǎng)絡(luò)特性的一系列活動的總和。網(wǎng)絡(luò)測量對于掌握網(wǎng)絡(luò)的整體運行狀況,改善網(wǎng)絡(luò) 性能具有非常重要的作用。通過網(wǎng)絡(luò)測量得到的相關(guān)的測量結(jié)果,網(wǎng)絡(luò)管理人員能夠獲得 各種各樣的網(wǎng)絡(luò)性能參數(shù),例如時延、丟包率、帶寬等,不同的參數(shù)反映了網(wǎng)絡(luò)不同方面的 性能。這些參數(shù)對指導(dǎo)網(wǎng)絡(luò)管理人員的日常工作非常有幫助,可以幫助他們了解網(wǎng)絡(luò)行為, 發(fā)現(xiàn)網(wǎng)絡(luò)可能存在的擁塞,提高網(wǎng)絡(luò)資源利用率??傊?,網(wǎng)絡(luò)測量給從事網(wǎng)絡(luò)工作的人員、 廠商帶來了很多的好處,也正是因為網(wǎng)絡(luò)的測量和監(jiān)測的重大意義,一直以來,都是傳統(tǒng)IP 網(wǎng)絡(luò)研究中的熱門領(lǐng)域之一。
[0003] 軟件定義網(wǎng)絡(luò)(Software Defined Network,SDN)是美國斯坦福大學(xué)提出的一種 新型網(wǎng)絡(luò)架構(gòu),SDN的設(shè)計理念是將網(wǎng)絡(luò)的控制平面與數(shù)據(jù)轉(zhuǎn)發(fā)平面進(jìn)行分離,并且實現(xiàn)可 編程化的控制。SDN的網(wǎng)絡(luò)架構(gòu)分為三層,最上面是應(yīng)用層,各種不同的業(yè)務(wù)和應(yīng)用位于該 層;中間是控制層,主要負(fù)責(zé)數(shù)據(jù)平面資源的管理,維護(hù)網(wǎng)絡(luò)的拓?fù)?、狀態(tài)等信息;最下面是 基礎(chǔ)設(shè)施層,主要是基于流表的匹配結(jié)果對數(shù)據(jù)流進(jìn)行處理。
[0004] OpenFlow網(wǎng)絡(luò)是SDN的一種比較成熟的實現(xiàn)方式,它主要包括三部分:0penFlow控 制器,OpenFlow交換機(jī)以及OpenFlow協(xié)議。交換機(jī)主要由數(shù)據(jù)處理平面和控制平面組成,數(shù) 據(jù)平面是按照流表的信息對經(jīng)過的數(shù)據(jù)流進(jìn)行操作,通過與控制器進(jìn)行安全通信,控制平 面可以獲得關(guān)于流表的相關(guān)信息。根據(jù)上層的要求,控制器對全網(wǎng)交換機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā)與處 理行為進(jìn)行控制。OpenFlow協(xié)議是控制器與交換機(jī)通信所使用的協(xié)議。OpenFlow網(wǎng)絡(luò)架構(gòu) 的中心思想就是通過中央控制器維護(hù)各個交換機(jī)中的流表,從而能夠匹配任意的數(shù)據(jù)流, 并進(jìn)行控制,控制的粒度達(dá)到具體的數(shù)據(jù)流,以此達(dá)到精細(xì)控制全網(wǎng)數(shù)據(jù)的能力。
[0005] 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,接入網(wǎng)絡(luò)的設(shè)備的種類越來越多,配置越來越復(fù)雜,來自不 同設(shè)備廠商的設(shè)備也往往會增加自己特有的功能,這就導(dǎo)致在一個網(wǎng)絡(luò)中往往會有很多具 有不同特性的、來自不同廠商的設(shè)備,為了方便對這樣的網(wǎng)絡(luò)進(jìn)行管理,就需要使得不同廠 商的設(shè)備能夠在網(wǎng)絡(luò)中相互發(fā)現(xiàn)并交互各自的系統(tǒng)及配置信息。LLDP(Link Layer Discovery Protocol,鏈路層發(fā)現(xiàn)協(xié)議)就是用于這個目的的協(xié)議。LLDP定義在802. lab中, 它是一個二層協(xié)議,它提供了一種標(biāo)準(zhǔn)的鏈路層發(fā)現(xiàn)方式。LLDP協(xié)議使得接入網(wǎng)絡(luò)的一臺 設(shè)備可以將其主要的能力,管理地址,設(shè)備標(biāo)識,接口標(biāo)識等信息發(fā)送給接入同一個局域網(wǎng) 絡(luò)的其它設(shè)備。當(dāng)一個設(shè)備從網(wǎng)絡(luò)中接收到其它設(shè)備的這些信息時,它就將這些信息以MIB 的形式存儲起來。這些MIB信息可用于發(fā)現(xiàn)設(shè)備的物理拓?fù)浣Y(jié)構(gòu)以及管理配置信息。需要注 意的是LLDP僅僅被設(shè)計用于進(jìn)行信息通告,它被用于通告一個設(shè)備的信息并可以獲得其它 設(shè)備的信息,進(jìn)而得到相關(guān)的MIB信息。它不是一個配置、控制協(xié)議,無法通過該協(xié)議對遠(yuǎn)端 設(shè)備進(jìn)行配置,它只是提供了關(guān)于網(wǎng)絡(luò)拓?fù)湟约肮芾砼渲玫男畔?,這些信息可以被用于管 理、配置的目的,如何用取決于信息的使用者。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問題是,在SDN網(wǎng)絡(luò)架構(gòu)當(dāng)中,實現(xiàn)點到點鏈路之間的延遲 測量, OpenFlow網(wǎng)絡(luò)是SDN網(wǎng)絡(luò)架構(gòu)中一種比較成熟的實現(xiàn)方式,OpenFlow網(wǎng)絡(luò)的原生統(tǒng)計 信息是釆用了被動測量的方式,雖然不會像主動測量那樣,向網(wǎng)絡(luò)中注入大量的流量,但是 也面臨著一些挑戰(zhàn),當(dāng)OpenFlow網(wǎng)絡(luò)的規(guī)模比較大時,控制器為了及時獲得統(tǒng)計信息需要 頻繁的同各個交換機(jī)進(jìn)行交互,這一方面增加了控制器和交換機(jī)之間的通信負(fù)擔(dān),使得通 信能力成為測量的技術(shù)瓶頸,另一方面考驗著交換機(jī)的信息處理能力,過高的查詢頻率可 能會降低交換機(jī)處理網(wǎng)絡(luò)數(shù)據(jù)包的能力,影響OpenFlow網(wǎng)絡(luò)的正常工作,在規(guī)模較大的SDN 網(wǎng)絡(luò)中,作為核心部件的控制器會參與到許多通信的過程中,控制器和交換機(jī)會進(jìn)行頻繁 的交互,這使得兩者之間的通信能力成為整個SDN網(wǎng)絡(luò)的瓶頸,例如采用OpenFlow原生統(tǒng)計 信息進(jìn)行測量,控制器通過查詢各個交換機(jī)獲得網(wǎng)絡(luò)性能指標(biāo),如果查詢頻率過高就會影 響控制器參與其它通信的能力。
[0007] 本發(fā)明中,我們利用SDN網(wǎng)絡(luò)中控制器使用LLDP協(xié)議進(jìn)行鏈路發(fā)現(xiàn)的特點,在基于 OpenFlow協(xié)議的SDN網(wǎng)絡(luò)當(dāng)中,當(dāng)控制器在進(jìn)行鏈路發(fā)現(xiàn)的同時,把鏈路之間的延遲也間接 測量出來,作為一個鏈路的基本屬性,為網(wǎng)絡(luò)中數(shù)據(jù)傳輸提供更高質(zhì)量的服務(wù)。在SDN網(wǎng)絡(luò) 架構(gòu)中,控制器想要及時得到全局的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),就要向與其相聯(lián)的OpenFlow交換機(jī)發(fā) 送LLDP報文進(jìn)行鏈路發(fā)現(xiàn),此報文是被封裝在Packet-Out消息中發(fā)送到交換機(jī)中的,當(dāng)交 換機(jī)收到LLDP報文時,它會把這個報文通過廣播的方式發(fā)送到與其相連的所有的交換機(jī) 上,當(dāng)與之相連的另一臺交換機(jī)收到此交換機(jī)轉(zhuǎn)發(fā)的LLDP報文時,它會再把這個報文封裝 為Packet-In消息返回給控制器,控制器收到這樣的消息就知道了在這兩個交換機(jī)之間存 在鏈接,可以進(jìn)行數(shù)據(jù)的傳輸。以上只是一條鏈路的發(fā)現(xiàn)過程,整個拓?fù)浣Y(jié)構(gòu)都是利用這樣 的鏈路發(fā)現(xiàn)方式發(fā)現(xiàn)的,但是這樣的發(fā)現(xiàn)過程有一個缺點,就是控制器只知道在這兩個交 換機(jī)之間存在鏈路,并不知道這條鏈路的基本信息,比如:延遲時間,帶寬等。雖然這些信息 控制器可以通過向交換機(jī)發(fā)送相關(guān)的消息進(jìn)行請求,但在大規(guī)模的交換機(jī)集群或者數(shù)據(jù)中 心網(wǎng)絡(luò)當(dāng)中,這會大大增加控制器的負(fù)載并且也會占用安全通道的傳輸資源,為了更加有 效的利用SDN網(wǎng)絡(luò)架構(gòu)的特點和OpenFlow協(xié)議消息以及LLDP協(xié)議為網(wǎng)絡(luò)服務(wù),本發(fā)明改進(jìn) 了 LLDP協(xié)議。
[0008] 本發(fā)明的基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法, 首先,利用基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)的特點,控制器具有全局網(wǎng)絡(luò)視圖的能力,根 據(jù)網(wǎng)絡(luò)環(huán)境的變化,實時的掌握網(wǎng)絡(luò)最新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),為了實現(xiàn)控制器的全局網(wǎng)絡(luò)視 圖能力,控制器要周期性的向與其相連的交換機(jī)發(fā)送LLDP報文來進(jìn)行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的發(fā)現(xiàn) 和更新; 其次,利用OpenFlow協(xié)議中的Echo消息得到控制器到交換機(jī)之間的傳播延遲,實現(xiàn)控 制器到交換機(jī)以及交換機(jī)到控制器之間鏈路的延遲測量,運用Echo消息得到的測量結(jié)果對 通過LLDP報文得到的鏈路時間延遲進(jìn)行修正,能夠提高測量的準(zhǔn)確性; 具體過程為: 第一、在LLDP報文中增加一個TLV數(shù)據(jù)單元,其攜帶了當(dāng)前系統(tǒng)的時間戳,把含有此數(shù) 據(jù)單元的LLDP報文封裝為Packet-Out消息,在控制器進(jìn)行鏈路發(fā)現(xiàn)時,會把此消息通過 OpenFlow協(xié)議中的安全通道發(fā)送給與其相連的所有的OpenFlow交換機(jī); 第二、當(dāng)其中一個交換機(jī)Switch X收到來自控制器的LLDP報文,它就會通過廣播的方 式把此報文發(fā)送給除控制器以外的所有與之相連的設(shè)備,這樣與其相連的所有的交換機(jī)就 會收到來自此交換機(jī)Switch X的LLDP報文,以一個與Switch X相連的交換機(jī)Switch Y為例 說明,當(dāng)Switch Y收到LLDP報文之后會查找本地流表,因為OpenFlow交換機(jī)沒有可用于轉(zhuǎn) 發(fā)LLDP報文的流表項,所以Switch Y就會按照OpenFlow協(xié)議規(guī)定,將LLDP報文封裝為 Packet-In消息發(fā)送給控制器; 第三、控制器在收到此LLDP報文之后,就會知道這兩個交換機(jī)之間存在鏈路,可以進(jìn)行 數(shù)據(jù)包的傳送,同時也會提取加入的時間戳,與當(dāng)前時間一塊進(jìn)行計算,就能得到此LLDP報 文從發(fā)送到收回整個過程,在網(wǎng)絡(luò)中所經(jīng)歷的時延; 第四、為了得到更加準(zhǔn)確的測量結(jié)果,控制器還需要知道從控制器到交換機(jī)的時延,在 OpenFlow協(xié)議中有一種消息正好可以做到這樣的事情,就是Echo消息,控制器通過向交換 機(jī)發(fā)送帶有時間戳的Echo Request消息到交換機(jī),交換機(jī)在收到此消息之后會返回給控制 器一個Echo Reply消息,當(dāng)控制器收到返回來的消息之后,會根據(jù)其攜帶的時間戳和當(dāng)前 的系統(tǒng)時間進(jìn)行計算,得到此消息往返的時延,此時延的一半即為控制器到交換機(jī)的傳播 時延或者交換機(jī)到控制器的傳播時延; 第五、控制器根據(jù)三次得到的時延,一個為LLDP報文在網(wǎng)絡(luò)中的傳播時延,一個為控制 器到交換機(jī)的傳播時延和交換機(jī)到控制器的傳播時延,把得到的這些時延進(jìn)行計算,就可 以間接得到LLDP報文在兩個交換機(jī)之間的鏈路延遲。
[0009]在本發(fā)明中,我們利用LLDP協(xié)議在鏈路發(fā)現(xiàn)中的優(yōu)勢,在LLDPDIKLLDP的數(shù)據(jù)單 元,Data United)中增加一個TLV數(shù)據(jù)單元(LLDFOU是LLDP協(xié)議中TLV數(shù)據(jù)單元的集合,攜帶 的內(nèi)容為LLDP報文的有效信息),本發(fā)明增加的數(shù)據(jù)單元為名稱為:Latency-Tag,每一個 TLV有三個字段組成,分別是Type,Length和Value,Type是該字段的惟一 ID標(biāo)識,取值為0-127,每一個TLV的Type值不能重復(fù),占用7個字節(jié),在本發(fā)明中使用的Type的值為10,因為 Type值為1-9的TLV都已經(jīng)被其它功能所占用。Length字段為數(shù)據(jù)單元中所攜帶有用信息的 長度,即Value字段的值的大小,取值范圍為0-511 jalue字段的值即為此TLV數(shù)據(jù)單元所攜 帶的有用的信息,把當(dāng)前的系統(tǒng)時間精確到納秒級并轉(zhuǎn)化成字符數(shù)組存儲到Value字 段當(dāng)中,當(dāng)控制器收到LLDP報文的時,讓控制器解析出這個字段,并和當(dāng)前的系統(tǒng)時間 相比較,計算出此LLDP報文在網(wǎng)絡(luò)中的傳播時延:
再利用OpenFlow協(xié)議中的Echo消息得到控制器到交換機(jī)之間的傳播延遲,控制器會周 期性的向交換機(jī)發(fā)送Echo Request消息,把當(dāng)前的系統(tǒng)時間精確到納秒封裝在 Echo Request消息中,交換機(jī)在收到此消息后會返回給控制器一個Echo Reply消息,控制 器在收到Echo Rep 1 y消息時的時間標(biāo)記為協(xié)-jf,通過這樣的過程,控制器就可以知道 控制器到交換機(jī)的傳播時延,利用到了兩個交換機(jī),一個是接收LLDP報文的交換機(jī)Switch X,一個是把LLDP報文轉(zhuǎn)發(fā)回控制器的交換機(jī)Switch Y,所以控制器需要知道其分別到 Switch X的鏈路延遲tch Υ的鏈路延遲,相應(yīng)的時延計算公式為:
通過計算間接得到Switch X到Switch Y之間的鏈路延遲為:
即為Switch X到Switch Y的鏈路延遲。
[0010]本發(fā)明的優(yōu)點在于利用SDN網(wǎng)絡(luò)架構(gòu)的特點實現(xiàn)了在基于OpenFlow協(xié)議的SDN網(wǎng) 絡(luò)架構(gòu)中點到點之間鏈路的延遲測量,是一種主動的網(wǎng)絡(luò)測量方式,但是并沒有向網(wǎng)絡(luò)中 發(fā)送額外的探測性的數(shù)據(jù)包,沒有給網(wǎng)絡(luò)帶來任何額外的負(fù)載,利用已有的網(wǎng)絡(luò)資源為網(wǎng) 絡(luò)提供更好的服務(wù),這是本發(fā)明的優(yōu)點和創(chuàng)新點。
【附圖說明】
[0011] 圖1是本發(fā)明所使用的拓?fù)浣Y(jié)構(gòu)圖和LLDP協(xié)議鏈路發(fā)現(xiàn)的拓?fù)鋱D; 圖2是本發(fā)明所應(yīng)用的控制器獲取控制器到與其相連的交換機(jī)之間的延遲結(jié)構(gòu)圖; 圖3是本發(fā)明所添加的TLV數(shù)據(jù)單元的格式表; 圖4是本發(fā)明中所得到的兩組測量數(shù)據(jù)差值的統(tǒng)計特征值表; 圖5是本發(fā)明中所得到的兩組測量數(shù)據(jù)的比較圖; 圖6是本發(fā)明中為適應(yīng)不同的網(wǎng)絡(luò)條件所得到的結(jié)果圖。
【具體實施方式】
[0012] 以下結(jié)合附圖對本發(fā)明做進(jìn)一步詳細(xì)說明。
[0013] 如圖1所示,圖中使用了兩個交換機(jī),兩個主機(jī)和一個控制器,這里我們使用的是 Floodlight控制器,本發(fā)明的目的就是為了測量Switch X到Switch Y鏈路之間的延遲 大小,此圖也是基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)鏈路發(fā)現(xiàn)過程圖,因為本發(fā)明所利用的數(shù)據(jù)單 元是基于LLDP協(xié)議的,所以鏈路發(fā)現(xiàn)的過程也是本發(fā)明中測量鏈路延遲過程的一部分。開 始,控制器將含有時間戳的LLDP報文封裝成Packet-Out消息發(fā)送到Swithe X,Switch X收 到含有LLDP報文的Packet-Out消息之后會將其進(jìn)行廣播,發(fā)送給與其相連的所有的交換 機(jī),這里只用Switch Y表示其中一個,當(dāng)Swtich Y收到來自Switch X的LLDP報文之后會查 找本地流表進(jìn)行匹配,因為沒有可以匹配的流表項,所以Switch Y會將此LLDP報文封裝為 Packet-In消息發(fā)送給控制器,控制器在收到此LLDP報文之后就會知道網(wǎng)絡(luò)中存在一條由 Switch X到Switch Y之間的鏈路,并提取本發(fā)明所加入的時間戳為計算Switch X到Switch Y之間的鏈路的時延做準(zhǔn)備。
[0014] 圖2是本發(fā)明為了得到控制器到兩個交換機(jī)之間鏈路的延遲時間所構(gòu)建的拓?fù)?圖,控制器把攜帶時間戳的Echo Request消息分別發(fā)送到與其相連的交換機(jī),當(dāng)交換機(jī)收 到來自控制器的Echo Request消息之后,根據(jù)OpenFlow協(xié)議標(biāo)準(zhǔn),交換機(jī)會立即返回一個 Echo Reply消息給控制器,控制器根據(jù)此消息的往返時間差會得到控制器到交換機(jī)的鏈路 傳播時延,為本發(fā)明測量兩個交換機(jī)之間的鏈路時延提供數(shù)據(jù)修正,即圖1中得到的時延要 去掉控制器到Switch X和Swtihc Y到控制器的時間延遲,才能得到更加準(zhǔn)確的測量結(jié)果。
[0015] 圖3是本發(fā)明所使用的TLV數(shù)據(jù)單元的數(shù)據(jù)格式,Type,Length和Value的長度LLDP 協(xié)議已經(jīng)限制了,這個不能改變。在本發(fā)明中,我們?nèi)ype的值為10,因為0到9都已經(jīng)被別 的用途的TLV數(shù)據(jù)單元所占用,Type的取值范圍為0-127。1^即也的值即為Value值的大小, 這個值在本發(fā)明中沒在設(shè)定,而是根據(jù)Value的實際大小自己設(shè)定的。Value為即為本發(fā)明 的TLV數(shù)據(jù)單元所帶的時間戳,就是把當(dāng)前系統(tǒng)時間精確到納秒之后轉(zhuǎn)化為字符數(shù)組寫進(jìn) Value當(dāng)中,這個值是一個很長的整形數(shù)據(jù),因為要存放在字符數(shù)組當(dāng)中,所進(jìn)行了數(shù)據(jù)類 型的轉(zhuǎn)化,在java語言中這個實現(xiàn)起來也很方便。
[0016] 圖4是采取本發(fā)明進(jìn)行測量的Switch X到Switch Y之間的鏈路延遲與真實的延遲 之間的差值的數(shù)字特征,我們在相同的時間里分別得到了測量值和真實值各240個數(shù)據(jù),并 對它們的差值的數(shù)據(jù)特征進(jìn)行了計算,其中最小差值為〇. 〇 l〇9ms,平均差值為0.5903ms,標(biāo) 準(zhǔn)差為0.7393ms,方差為標(biāo)準(zhǔn)差的平方,值為0.5466,從差值的數(shù)字特征來看,本發(fā)明的測 量結(jié)果與真實結(jié)果已經(jīng)非常接近,在一定的誤差范圍內(nèi)完全可以作為真實值進(jìn)行使用。
[0017] 圖5是利用本發(fā)明得到到測量值與真實值之間的比較,其中小圓點代表真實的延 遲值,小三角形代表利用本發(fā)明測量的延遲值,橫坐標(biāo)為實驗進(jìn)行的時間,單位為分鐘,縱 坐標(biāo)為延遲時間的值,單位為毫秒,之間的連線是它們隨時間的變化趨勢,從圖中可以看 出,利用本發(fā)明得到的測量結(jié)果,不僅在數(shù)值上與真實值保持很小的誤差,而且其變化規(guī)律 也與真實延遲值的變化規(guī)律保持一致,所以利用本發(fā)明得到的測量結(jié)果不僅能夠真實的反 應(yīng)網(wǎng)絡(luò)中的鏈路延遲情況,也能很好的展示網(wǎng)絡(luò)延遲的變化規(guī)律。
[0018] 圖6是在我們在實驗中改變網(wǎng)絡(luò)條件,利用本發(fā)明得到的測量的延遲值與真實延 遲值之間的比較,網(wǎng)絡(luò)條件是動態(tài)改變的,首先是很小量的網(wǎng)絡(luò)延遲,然后我們突然增加網(wǎng) 絡(luò)流量,使網(wǎng)絡(luò)的延遲上升,然后持續(xù)一段時間再去掉網(wǎng)絡(luò)流量,如此反復(fù)。所得到的結(jié)果 如圖6所示,其中小圓點為真實的延遲值,小三角形為利用本發(fā)明測量的延遲值,連線表示 兩者隨時間的變化規(guī)律,從圖中展示的結(jié)果可以看到,本發(fā)明得到的測量結(jié)果不僅和真實 結(jié)果非常接近,而且還能適應(yīng)網(wǎng)絡(luò)環(huán)境的動態(tài)變化,即使網(wǎng)絡(luò)環(huán)境不斷變化,本發(fā)明也能得 到令人滿意的正確結(jié)果。
【主權(quán)項】
1. 基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法,使用基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)中鏈路層 發(fā)現(xiàn)協(xié)議LLDP進(jìn)行交換機(jī)之間點到點的鏈路延遲測量,其特征在于, 首先,利用基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)的特點,控制器具有全局網(wǎng)絡(luò)視圖的能力,根 據(jù)網(wǎng)絡(luò)環(huán)境的變化,實時的掌握網(wǎng)絡(luò)最新的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),為了實現(xiàn)控制器的全局網(wǎng)絡(luò)視 圖能力,控制器要周期性的向與其相連的交換機(jī)發(fā)送LLDP報文來進(jìn)行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的發(fā)現(xiàn) 和更新; 其次,利用OpenFlow協(xié)議本身的Echo消息,實現(xiàn)控制器到交換機(jī)以及交換機(jī)到控制器 之間鏈路的延遲測量,運用Echo消息得到的測量結(jié)果對通過LLDP報文得到的鏈路延遲進(jìn)行 修正,能夠提尚測量的準(zhǔn)確性; 具體過程為: 第一、在LLDP報文中增加一個TLV數(shù)據(jù)單元,其攜帶了當(dāng)前系統(tǒng)的時間戳,把含有此數(shù) 據(jù)單元的LLDP報文封裝為Packet-Out消息,在控制器進(jìn)行鏈路發(fā)現(xiàn)時,會把此消息通過 OpenFlow協(xié)議中的安全通道發(fā)送給與其相連的所有的OpenFlow交換機(jī); 第二、當(dāng)其中一個交換機(jī)Switch X收到來自控制器的LLDP報文,它就會通過廣播的方 式把此報文發(fā)送給除控制器以外的所有與之相連的設(shè)備,這樣與其相連的所有的交換機(jī)就 會收到來自此交換機(jī)Switch X的LLDP報文,以一個與Switch X相連的交換機(jī)Switch Y為例 說明,當(dāng)Switch Y收到LLDP報文之后會查找本地流表,因為OpenFlow交換機(jī)沒有可用于轉(zhuǎn) 發(fā)LLDP報文的流表項,所以Switch Y就會按照OpenFlow協(xié)議規(guī)定,將LLDP報文封裝為 Packet-In消息發(fā)送給控制器; 第三、控制器在收到此LLDP報文之后,就會知道這兩個交換機(jī)之間存在鏈路,可以進(jìn)行 數(shù)據(jù)包的傳送,同時也會提取加入的時間戳,與當(dāng)前時間一塊進(jìn)行計算,就能得到此LLDP報 文從發(fā)送到收回整個過程,在網(wǎng)絡(luò)中所經(jīng)歷的時延; 第四、為了得到更加準(zhǔn)確的測量結(jié)果,控制器還需要知道從控制器到交換機(jī)的時延,在 OpenFlow協(xié)議中有一種消息正好可以做到這樣的事情,就是Echo消息,控制器通過向交換 機(jī)發(fā)送帶有時間戳的Echo Request消息到交換機(jī),交換機(jī)在收到此消息之后會返回給控制 器一個Echo Reply消息,當(dāng)控制器收到返回來的消息之后,會根據(jù)其攜帶的時間戳和當(dāng)前 的系統(tǒng)時間進(jìn)行計算,得到此消息往返的時延,此時延的一半即為控制器到交換機(jī)的傳播 時延或者交換機(jī)到控制器的傳播時延; 第五、控制器根據(jù)三次得到的時延,一個為LLDP報文在網(wǎng)絡(luò)中的傳播時延,一個為控制 器到交換機(jī)的傳播時延和交換機(jī)到控制器的傳播時延,把得到的這些時延進(jìn)行計算,就可 以間接得到LLDP報文在兩個交換機(jī)之間的鏈路延遲。2. 根據(jù)權(quán)利要求1所述的基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法,其特征在于,所述方 法需要在LLDP報文中增加一個TLV數(shù)據(jù)單元,具體包括: LLDP報文格式中有一個LLDPDU字段,此字段為TLV數(shù)據(jù)單元的集合,包含了 LLDP中不可 缺少的TLV,可選擇的TLV以及自己定義的TLV數(shù)據(jù)單元,TLV數(shù)據(jù)單元的數(shù)據(jù)格式為:Type字 段為數(shù)據(jù)單元的標(biāo)識ID,取值為0-127,不可重復(fù),Length字段為數(shù)據(jù)單元中所攜帶有用信 息的長度,即Value字段的值的大小,取值范圍為0-511 ,Value字段的值即為此TLV數(shù)據(jù)單元 所攜帶的有用的信息, 為所增加的數(shù)據(jù)單元命名為:Latency-Tag,Type的值設(shè)定為10, Length的值根據(jù)Value 的長度自行設(shè)定,Value攜帶的有用信息為當(dāng)前系統(tǒng)時間,精確到納秒并把其數(shù)據(jù)類型轉(zhuǎn)換 為字符數(shù)組保存到Value字段當(dāng)中,將Latency-Tag數(shù)據(jù)單元增加到LLDPDU當(dāng)中,隨著LLDP 報文一起在網(wǎng)絡(luò)中傳輸, 把當(dāng)前的系統(tǒng)時間精確到納秒級并轉(zhuǎn)化成字符數(shù)組存儲到Value字段當(dāng)中,當(dāng)控制 器收到LLDP報文的時,讓控制器解析出這個字段,并和當(dāng)前的系統(tǒng)時間&^&相比較,計算 出此LLDP報文在網(wǎng)絡(luò)中的傳播時延:3. 根據(jù)權(quán)利要求1所述的基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法,其特征在于,所述利 用OpenFlow協(xié)議中的Echo消息得到控制器到交換機(jī)之間的傳播延遲,具體包括: 為了得到控制器到交換機(jī)之間的鏈路延遲,傳統(tǒng)的做法是控制器要向交換機(jī)發(fā)送一個 具有探測性質(zhì)的數(shù)據(jù)包,但是在基于OpenFlow協(xié)議的SDN網(wǎng)絡(luò)中已經(jīng)有一個可以實現(xiàn)此功 能的消息,即Echo消息,此消息的特點為是由控制器發(fā)送出去時稱為Echo Request消息, 當(dāng)交換機(jī)接收到此消息后會把此消息返回到控制器,此時返回的消息稱為Echo Reply消 息, 把當(dāng)前的系統(tǒng)時間精確到納秒并轉(zhuǎn)化為字符串?dāng)?shù)據(jù)類型寫入Echo Request消息中,控 制器會周期性發(fā)送Echo Request消息到交換機(jī)獲取交換機(jī)和鏈路的一些信息,此時攜帶時 間戳的Echo Request消息就會被發(fā)送給交換機(jī),交換機(jī)會把此消息作為Echo Reply消息返 回給控制器,這樣控制器就可以根據(jù)此消息中之前寫入的時間戳和當(dāng)前的系統(tǒng)時間計算出 控制器到交換機(jī)之間的傳播時延,然后把數(shù)據(jù)保存用以校正使用LLDP報文的傳播時延,得 到兩個交換機(jī)之間的鏈路延遲。4. 根據(jù)權(quán)利要求1所述的基于LLDP的SDN網(wǎng)絡(luò)鏈路延遲測量方法,其特征在于,所述兩 個交換機(jī)之間鏈路延遲的計算方法是,控制器寫入到Echo Request消息的時間戳為 ,控制器收到Swi tch X返回Echo Rep Iy消息時的系統(tǒng)時間為,控制 器到Switch X的鏈路延遲時間,公式表示為:同理可以得到Switch Y到控制器的時間延遲,公式表示為:最后,基于以上工作,得到Switch X到Switch Y之間的鏈路延遲為公式表示為:
【文檔編號】H04L12/26GK105933184SQ201610435286
【公開日】2016年9月7日
【申請日】2016年6月17日
【發(fā)明人】蔡志平, 李陽
【申請人】中國人民解放軍國防科學(xué)技術(shù)大學(xué)