本發(fā)明涉及無線傳感器網(wǎng)絡的領域,尤其涉及一種無線傳感器網(wǎng)絡實現(xiàn)及數(shù)據(jù)流處理方法。
背景技術:
:無線傳感器網(wǎng)絡(WirelessSensorNetwork,WSN)的自適應和多跳性使網(wǎng)絡節(jié)點能夠進行快速通信,其在結(jié)構功能上都與傳統(tǒng)網(wǎng)絡節(jié)具有較大差異,節(jié)點通常需要同時進行信息采集、信號處理及無線通信等活動。其結(jié)構的不同也導致網(wǎng)絡抽象性與可維護性較差,網(wǎng)絡策略重構及網(wǎng)絡管理困難。軟件定義網(wǎng)絡(SoftwareDefinedNetwork,SDN)最初用于增強有線網(wǎng)絡的可編程性與靈活性。作為SDN的熱門實現(xiàn)技術之一,OpenFlow提供針對不同網(wǎng)絡應用、協(xié)議與管理需求的簡單實現(xiàn)。OpenFlow通過將網(wǎng)絡設備的控制面與數(shù)據(jù)面分離,實現(xiàn)了對網(wǎng)絡流量的靈活控制,為網(wǎng)絡及應用的創(chuàng)新提供了良好的平臺。此外,OpenFlow允許用戶使用標準化的接口性網(wǎng)絡管理與策略配置。針對無線傳感器網(wǎng)絡路由協(xié)議的設計已存在較多成熟解決方案,如洪泛協(xié)議Flooding,低功耗自適應集簇分層型協(xié)議(LowEnergyAdaptiveClusteringHierarchy,LEACH),定向擴散協(xié)議(DirectedDiffusion,DD)等。Flooding協(xié)議中網(wǎng)絡節(jié)點產(chǎn)生或收到數(shù)據(jù)后向所有鄰居節(jié)點廣播,數(shù)據(jù)包直到過期或到達目的地才停止傳播;LEACH協(xié)議是一種低功耗的自適應路由算法,其基本思想是網(wǎng)絡周期性的隨機選擇簇頭節(jié)點,其它非簇頭節(jié)點以就近原則加入相應簇頭,形成虛擬簇,簇內(nèi)節(jié)點將感知數(shù)據(jù)直接發(fā)送到簇頭,由簇頭轉(zhuǎn)發(fā)至上層用戶;DD協(xié)議是一種基于查詢的路由協(xié)議,它與數(shù)據(jù)相關,節(jié)點周期性廣播請求應答數(shù)據(jù)包并在網(wǎng)絡中建立消息梯度,通過其余節(jié)點對請求應答數(shù)據(jù)包的反饋建立加強的通信路徑。為滿足不同應用的網(wǎng)絡需求(如硬件、網(wǎng)絡協(xié)議、能量限制,網(wǎng)絡帶寬限制等),傳感器網(wǎng)絡必須有符合自身特點的協(xié)議棧,并不能直接采用傳統(tǒng)無線網(wǎng)絡協(xié)議棧。協(xié)議棧是無線傳感器網(wǎng)絡的核心,然而其研究尚不成熟,許多技術也沒有形成統(tǒng)一標準,多家研究機構基于自身需要推出了各種不同的無線傳感器網(wǎng)絡協(xié)議棧,但結(jié)構都比較單一,只能針對特定協(xié)議,這就限制了更加靈活的無線傳感器網(wǎng)絡的開發(fā),降低了網(wǎng)絡的整體兼容性。技術實現(xiàn)要素:為了解決上述問題,本發(fā)明一種基于OpenFlow的無線傳感器網(wǎng)絡實現(xiàn)及數(shù)據(jù)流處理方法,有效解決了無線傳感器網(wǎng)絡中多協(xié)議網(wǎng)絡動態(tài)實現(xiàn)及管理的問題。本發(fā)明公開了一種基于OpenFlow的無線傳感器網(wǎng)絡的實現(xiàn)方法,其網(wǎng)絡協(xié)議棧包含一張以數(shù)據(jù)流為核心的數(shù)據(jù)流規(guī)則表及基本網(wǎng)絡動作庫。所述數(shù)據(jù)流規(guī)則表由匹配規(guī)則域及處理動作域組成,匹配規(guī)則域包含一組針對特定數(shù)據(jù)流的匹配策略,處理動作域包含對該數(shù)據(jù)流的處理策略;每條數(shù)據(jù)流規(guī)則表項中匹配規(guī)則域和處理動作域中均包含若干匹配規(guī)則與處理動作序列。所述數(shù)據(jù)流規(guī)則表包含一般表項及漏表項兩種類別表項,一般表項針對可預知的有效網(wǎng)絡數(shù)據(jù)流設計,完成對不同網(wǎng)絡數(shù)據(jù)流的處理;漏表項可處理如新協(xié)議格式或其他未知網(wǎng)絡數(shù)據(jù)流,其匹配規(guī)則域內(nèi)容為空,代表匹配任意數(shù)據(jù)流。所述無線傳感器網(wǎng)絡采用OpenFlow協(xié)議框架,增加無線傳感器網(wǎng)絡支持規(guī)則。所述無線傳感器網(wǎng)絡支持規(guī)則包括無線傳感器網(wǎng)絡匹配規(guī)則及無線傳感器網(wǎng)絡數(shù)據(jù)流處理策略;所述無線傳感器網(wǎng)絡匹配規(guī)則包括源節(jié)點地址、目的節(jié)點地址、數(shù)據(jù)包序號、數(shù)據(jù)流類別號、數(shù)據(jù)包TTL匹配規(guī)則及傳感器數(shù)據(jù)匹配規(guī)則;所述傳感器數(shù)據(jù)匹配規(guī)則包括溫度、濕度、信號強度等;所述無線傳感器網(wǎng)絡數(shù)據(jù)流處理策略包括數(shù)據(jù)轉(zhuǎn)發(fā)、接收、丟棄及匹配規(guī)則更新。所述數(shù)據(jù)流規(guī)則表中匹配規(guī)則,包含上限閾值與下限閾值,進行數(shù)據(jù)流匹配時,數(shù)據(jù)流對應字段將與規(guī)則中給定字段的上限閾值與下限閾值進行比較,符合閾值區(qū)間則表示匹配成功(如規(guī)則1內(nèi)容為“數(shù)據(jù)包序號大于0”,規(guī)則2內(nèi)容為“節(jié)點溫度大于0度小于70度”等)。所述數(shù)據(jù)流規(guī)則表匹配規(guī)則更新時接收來自用戶的更新指令或根據(jù)本地定義的處理動作進行操作(如更新匹配規(guī)則閾值為用戶指定的數(shù)值,或根據(jù)本地處理動作對閾值進行提高、降低或重置等操作);數(shù)據(jù)流規(guī)則表處理動作由若干處理動作序列組成,具體動作通過序號標識,更新時接收用戶指定的一組序號作為新動作序列。所述基本網(wǎng)絡動作庫,包括若干與網(wǎng)絡數(shù)據(jù)流處理無關的本地或網(wǎng)絡操作,其內(nèi)容由上層用戶進行配置,可包括網(wǎng)絡時鐘同步、網(wǎng)絡節(jié)點感知及鏈路信號質(zhì)量采集等;基本網(wǎng)絡動作可在網(wǎng)絡運行前或網(wǎng)絡運行過程中執(zhí)行,完成對無線傳感器網(wǎng)絡基本結(jié)構的管理和信息采集。所述無線傳感器網(wǎng)絡采用無線接入控制器(AccessController,AC)方式組網(wǎng),各節(jié)點協(xié)議棧均采用數(shù)據(jù)流規(guī)則表配置網(wǎng)絡策略,以代替一般OpenFlow專用控制器,除接收用戶配置命令外,各節(jié)點均支持數(shù)據(jù)流規(guī)則表自配置功能,實現(xiàn)網(wǎng)絡扁平化配置。一種基于OpenFlow的無線傳感器網(wǎng)絡的數(shù)據(jù)流處理方法,其具體實現(xiàn)方法包括:步驟1,上層用戶配置整個網(wǎng)絡或單個節(jié)點的協(xié)議棧數(shù)據(jù)流規(guī)則表,動態(tài)下發(fā)至待機狀態(tài)或正在運行的無線傳感器網(wǎng)絡;步驟2,網(wǎng)絡節(jié)點接收用戶配置指令,修改數(shù)據(jù)流規(guī)則表中匹配規(guī)則域和處理動作域內(nèi)容,根據(jù)用戶配置執(zhí)行網(wǎng)絡基本動作序列;步驟3,網(wǎng)絡節(jié)點以更新后的數(shù)據(jù)流規(guī)則表運行,對匹配到表項的數(shù)據(jù)流執(zhí)行動作域中的動作序列,對未匹配到表項的數(shù)據(jù)流執(zhí)行漏表項動作序列;步驟4,上層用戶進行新的配置時,網(wǎng)絡節(jié)點重復步驟2及3,完成網(wǎng)絡策略更新以及數(shù)據(jù)流處理。所述步驟3,可進一步推廣至全網(wǎng)對數(shù)據(jù)的處理過程,描述節(jié)點對數(shù)據(jù)包的處理過程時,可用下式表示:ActX(Pktm,FEn)→NodeY其中Pktm,F(xiàn)En及ActX表示節(jié)點當前處理的數(shù)據(jù)包、當前匹配的流表項與處理動作函數(shù)。NodeY表示處理動作函數(shù)生成結(jié)果的下一跳,可以為其他網(wǎng)絡節(jié)點或本地節(jié)點。數(shù)據(jù)包在網(wǎng)絡各流表內(nèi)的處理過程可表示為如下遞歸公式:本發(fā)明的有益效果在于,對多種傳感器網(wǎng)絡協(xié)議進行硬件無關化支持,協(xié)議??蓜討B(tài)配置,兼容不同格式網(wǎng)絡數(shù)據(jù)流,實現(xiàn)上層軟件對網(wǎng)絡的動態(tài)配置及重構。以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明,但本發(fā)明的一種基于OpenFlow的無線傳感器網(wǎng)絡的實現(xiàn)及數(shù)據(jù)流處理方法不局限于實施例。附圖說明圖1是本發(fā)明一種基于OpenFlow的無線傳感器網(wǎng)絡實現(xiàn)方法的網(wǎng)絡節(jié)點結(jié)構圖;圖2是本發(fā)明一種基于OpenFlow的無線傳感器網(wǎng)絡的數(shù)據(jù)流處理方法流程圖;圖3是本發(fā)明以實施例中多協(xié)議實現(xiàn)效果示意圖。具體實施方式下面結(jié)合附圖對本發(fā)明的方法作進一步說明。本發(fā)明一種基于OpenFlow的無線傳感器網(wǎng)絡實現(xiàn)方法的網(wǎng)絡節(jié)點結(jié)構如圖1所示。所述無線傳感器網(wǎng)絡節(jié)點包括節(jié)點硬件層、硬件抽象層、嵌入式操作系統(tǒng)及節(jié)點應用程序;所述節(jié)點硬件層進一步包括支持無線傳感器網(wǎng)絡數(shù)據(jù)采集與射頻通信的硬件設備;所述硬件抽象層進一步包括網(wǎng)絡節(jié)點基本輸入輸出接口、通信接口、傳感器驅(qū)動等;所述嵌入式操作系統(tǒng)進一步包括配置管理模塊、基本網(wǎng)絡動作模塊及數(shù)據(jù)流處理規(guī)則表;所述節(jié)點應用程序包括網(wǎng)絡部署時已下載至節(jié)點的應用程序,可由用戶自由定制。本發(fā)明一種基于OpenFlow的無線傳感器網(wǎng)絡的數(shù)據(jù)流處理方法流程如圖2所示。網(wǎng)絡實現(xiàn)包括初始化過程、用戶配置過程、網(wǎng)絡運行過程及用戶配置更新過程,其具體實現(xiàn)方法包括如下步驟:步驟S100,網(wǎng)絡節(jié)點協(xié)議棧初始化,設定網(wǎng)絡處于空閑狀態(tài);步驟S200,用戶根據(jù)應用需求配置全網(wǎng)或單個節(jié)點數(shù)據(jù)流規(guī)則表內(nèi)容及網(wǎng)絡基本動作序列,通過無線方式發(fā)送至目標網(wǎng)絡;步驟S300,網(wǎng)絡節(jié)點接收用戶配置指令,修改數(shù)據(jù)流規(guī)則表中匹配規(guī)則域和處理動作域內(nèi)容,根據(jù)用戶配置執(zhí)行網(wǎng)絡基本動作序列;步驟S400,網(wǎng)絡節(jié)點以更新后的數(shù)據(jù)流規(guī)則表運行,對匹配到表項的數(shù)據(jù)流執(zhí)行動作域中的動作序列,對未匹配到表項的數(shù)據(jù)流執(zhí)行漏表項動作序列;步驟S500,用戶更新網(wǎng)絡配置,網(wǎng)絡節(jié)點進行規(guī)則表更新操作,并返回步驟S300以新配置運行網(wǎng)絡。在具體實施過程中,用戶對數(shù)據(jù)流規(guī)則表以及網(wǎng)絡基本動作序列的配置可以分開進行;每個網(wǎng)絡節(jié)點數(shù)據(jù)流規(guī)則表一般表項數(shù)可為0,但必須有漏表項,以對無法識別的格式進行統(tǒng)一處理。其中所述步驟400進一步包括:步驟410,嘗試匹配數(shù)據(jù)流到已有一般表項,并執(zhí)行對應表項中動作序列;步驟420,當無法匹配一般表項時,自動執(zhí)行漏表項所包含動作,通常包括丟棄數(shù)據(jù)包、上傳數(shù)據(jù)包至用戶等。在一具體實施例中,本發(fā)明對多協(xié)議實現(xiàn)效果可如圖3所示。分別采用Flooding協(xié)議,LEACH協(xié)議,DD協(xié)議及DD*協(xié)議對網(wǎng)絡傳輸數(shù)據(jù)流進行測試,其中DD*協(xié)議為DD協(xié)議的一個改進情況。在圖3所示測試中,通過網(wǎng)絡傳輸效率(NetworkTransmissionEfficiency,NTE)及平均流表匹配長度(AverageMatchingNumber,AMN)評價網(wǎng)絡的有效性及靈活性。協(xié)議在運行過程中,網(wǎng)絡將產(chǎn)生除實際傳輸數(shù)據(jù)外的附加流量(包括控制信息,冗余數(shù)據(jù)包等),NTE可表示真實有效數(shù)據(jù)在總網(wǎng)絡流量中的比例:NTE值越大,表示當前協(xié)議傳輸效率越高。AMN表示數(shù)據(jù)包在處理過程中所需的流表項平均匹配個數(shù),NTE值越小則處理速度越快。同時數(shù)據(jù)流規(guī)則表長度也會影響AMN,規(guī)則表長度越長,數(shù)據(jù)流可能的匹配次數(shù)就越多。測試結(jié)果表明,所述一種基于OpenFlow的無線傳感器網(wǎng)絡的實現(xiàn)及數(shù)據(jù)流處理方法對網(wǎng)絡協(xié)議具有靈活支持能力,對數(shù)據(jù)流控制效果符合預期。用戶對網(wǎng)絡數(shù)據(jù)流策略的更新操作可以在網(wǎng)絡運行時完成,對于網(wǎng)絡數(shù)據(jù)包,表項處理一般包括接收、轉(zhuǎn)發(fā)及丟棄等操作,當數(shù)據(jù)流匹配表項成功時,節(jié)點將對該數(shù)據(jù)流執(zhí)行至少一項操作,由于網(wǎng)絡采用無線接入控制器AC(AccessController)方式,故操作可包含對數(shù)據(jù)流規(guī)則表本身修改,如:修改數(shù)據(jù)包ID匹配范圍,從而防止重復數(shù)據(jù)包。在一具體實施例中,無線傳感器網(wǎng)絡數(shù)據(jù)流規(guī)則表可如表1所示(表1僅為示意,實際的功能可能并非兩個表項即可實現(xiàn))。表1表項ID規(guī)則表匹配域規(guī)則表動作域1目的節(jié)點ID不為本地節(jié)點,且節(jié)點溫度小70度轉(zhuǎn)發(fā)數(shù)據(jù)包2目的節(jié)點為本地ID接收數(shù)據(jù)包漏表項匹配任意數(shù)據(jù)流丟棄數(shù)據(jù)包在數(shù)據(jù)流規(guī)則表中,數(shù)據(jù)流依表項ID順序進行匹配,當匹配到對應表項時,即停止匹配平執(zhí)行對應動作序列,表項順序可由用戶配置過網(wǎng)絡自行調(diào)整;漏表項處于規(guī)則表末尾,為數(shù)據(jù)流提供統(tǒng)一處理。本發(fā)明以提高無線傳感器網(wǎng)絡靈活性及協(xié)議棧通用性為出發(fā)點,通過對傳統(tǒng)單協(xié)議網(wǎng)絡架構改進,提出了一種基于OpenFlow的無線傳感器網(wǎng)絡的實現(xiàn)及數(shù)據(jù)流處理方法。通過實驗驗證,該網(wǎng)絡實現(xiàn)方法有效提高網(wǎng)絡的靈活性及通用性。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。當前第1頁1 2 3