一種無線多媒體傳感器網絡接入ip網絡的方法
【專利摘要】本發(fā)明涉及一種無線多媒體傳感器網絡接入IP網絡的方法,其特征在于采用虛擬網關的方式實現(xiàn)無線多媒體傳感器網絡接入IP網絡;所述的虛擬網關遵從SOCKET網絡編程規(guī)范的應用程序便可以訪問該無線多媒體傳感網絡;所述的虛擬網關在不同的操作平臺上能動態(tài)加載,完成IP數(shù)據(jù)和多媒體傳感器網絡協(xié)議數(shù)據(jù)的轉換,是對應操作系統(tǒng)的網絡驅動程序。本發(fā)明開發(fā)的虛擬網關中間件,解決了無線多媒體傳感器網絡IP網絡數(shù)據(jù)透明傳輸?shù)膯栴}和無線多媒體傳感器網絡應用程序移植性、通用性差的問題。
【專利說明】-種無線多媒體傳感器網絡接入IP網絡的方法
【技術領域】
[0001] 本發(fā)明涉及無線多媒體傳感器網絡接入其他網絡如IP網絡的問題,可用于運行 私有協(xié)議的無線多媒體傳感器網絡系統(tǒng),屬于信息【技術領域】。
【背景技術】
[0002] 隨著無線傳感器網絡技術的發(fā)展,在網絡中傳輸?shù)臄?shù)據(jù)包類型從比較單一的數(shù)據(jù) 包逐漸發(fā)展到了多媒體類型的數(shù)據(jù)包,應用程序對數(shù)據(jù)的需求也逐漸變大,已有網絡應用 程序直接訪問無線網卡數(shù)據(jù)的形式已經不能滿足開發(fā)的需要,如何使得IP數(shù)據(jù)包"透傳" 無線多媒體傳感器網絡,如何增加應用的移植性,如何明顯的減輕開發(fā)人員的負擔,成為無 線多媒體傳感器網絡中需要解決的問題。
[0003] 網絡領域IP化的趨勢,同樣影響到了無線多媒體傳感器網絡,但是由于無線多媒 體傳感器網絡多業(yè)務的特點,需要傳輸視頻、圖像、語音、數(shù)據(jù)等不同業(yè)務類型的數(shù)據(jù),考慮 到無線信道的環(huán)境,相應的網絡協(xié)議也要適應于無線多媒體傳感器網絡的特點,一般的IP 網絡協(xié)議是不適合于無線多媒體傳感器網絡的,但是,無線多媒體傳感器網絡也需要接入 到IP網絡,因此,就需要提供一種方法和機制來完成此項功能。
[0004] 無線多媒體傳感器網絡存在自身的網絡訪問API,但是,在普通的網絡編程中,一 般都是采用SOCKET規(guī)范編程方法來訪問網絡,為了增加應用程序的可移植性和標準化,應 用程序不用修改即可以訪問網絡資源,也為了降低應用程序的開發(fā)難度,更好的完成無線 傳感器網絡接入到IP網絡,所以,需要一套標準化的方法來實現(xiàn)上述功能。
[0005] 在已有技術中,IP網絡數(shù)據(jù)包不能直接到達無線多媒體傳感器節(jié)點,無線多媒體 傳感器網絡實現(xiàn)IP化的方法可以是直接在無線網卡上構建IP網絡協(xié)議棧,這樣,一個無線 網卡便是一個IP網絡節(jié)點,但是,無線多媒體傳感器網絡的特點使得其采用這種方式并 不合適,無線多媒體傳感器網絡節(jié)點通信運行了不同于IP網絡的協(xié)議,IP格式的數(shù)據(jù)包不 能被無線多媒體傳感器網絡所識別,因此,影響了網絡的兼容性,不能和應用最為廣泛的IP 網絡實現(xiàn)互聯(lián)互通,這成為了無線多媒體傳感器網絡的一個缺陷;另外一種實現(xiàn)無線多媒 體傳感器網絡接入IP網絡的方法是采用網關設備[CN. 200910033224. 1,孫力娟等"無線多 媒體傳感器網絡與無線局域網因特網的互聯(lián)方法"。],在原有的基礎上開發(fā)協(xié)議轉換功能, 實現(xiàn)IP數(shù)據(jù)到達無線多媒體傳感器網絡節(jié)點,但這種方式需要增加額外的硬件設備,需要 專門為該網關設備開發(fā)不同于無線多媒體傳感器網絡節(jié)點的程序,增加時間和成本上的投 入。原有的無線多媒體傳感器網絡實現(xiàn)IP化存在以上所述的問題。
[0006] 在應用程序開發(fā)過程中,原有的技術采用無線傳感器網絡特有的API進行網絡訪 問,這樣就給開發(fā)過程中的并行開發(fā)帶來了困難,應用程序開發(fā)人員必須等待無線網卡固 件開發(fā)人員完成協(xié)議棧的構建以后才能進行網絡部分的開發(fā),同時網絡訪問API函數(shù)的非 標準化,給應用程序的移植性和通用性帶來了困難,當網絡形式發(fā)生變化時,應用程序也便 失效了,應用程序開發(fā)人員針對新的網絡形式進行新的開發(fā),降低了工作效率,重復勞動, 因此,這也成為了無線多媒體傳感器網絡不能與SOCKET網絡編程規(guī)范兼容的一個不足之 處。
[0007] 為了克服已有技術上的不足,因此,本申請擬開發(fā)一種基于虛擬網關的無線多媒 體傳感器網絡接入IP網絡中間件,實現(xiàn)了協(xié)議轉換,使得無線多媒體傳感器網絡接入到了 IP網絡中。
【發(fā)明內容】
[0008] 本發(fā)明的目的在于提供一種無線多媒體傳感器網絡接入IP網絡的方法,本發(fā)明 是基于無線多媒體傳感器網絡形式,構建一種基于操作系統(tǒng)平臺的虛擬網關,所述的虛擬 網關可以在軟件層面使IP數(shù)據(jù)包"透傳"無線多媒體傳感器網絡,整個方案的網絡拓撲結 構圖可以如圖1描述。
[0009] 在圖1中,多媒體數(shù)據(jù)包括視頻、圖像、語音、數(shù)據(jù)在由無線網卡構成的無線多媒 體傳感器網絡中進行傳輸,其網絡拓撲結構可以是多種形式的,例如星型、網型、樹形等。 PC機和手持設備運行IP網絡協(xié)議棧,操作系統(tǒng)內部傳遞的是IP數(shù)據(jù)包的形式,在無線網 卡中傳輸?shù)臄?shù)據(jù)格式是無線多媒體傳感器網絡的協(xié)議包格式,為了實現(xiàn)IP數(shù)據(jù)包能夠"透 傳"無線多媒體傳感器網絡,使應用程序的開發(fā)具有通用性,需要在PC機和手持設備上構建 虛擬網關,用來完成協(xié)議的轉換。該虛擬網關所處的層次結構圖如圖2所示:
[0010] 虛擬網關主要存在于PC機與手持設備上,應用程序位于最上層,應用程序的編寫 遵從SOCKET規(guī)范,也就是說,有了虛擬網關,遵從SOCKET網絡編程規(guī)范的應用程序便可以 訪問該無線多媒體傳感器網絡。應用程序實現(xiàn)網絡應用,具有很好的移植性,當更換網絡形 式時,應用程序幾乎不需要做出改變就可以繼續(xù)使用,提高了應用程序的通用性和跨平臺 特性。
[0011] 操作系統(tǒng)層面負責應用程序與操作系統(tǒng)之間的接口,即為應用程序提供操作系統(tǒng) API,包括SOCKET API,操作系統(tǒng)內部維護一個IP協(xié)議棧,在涉及到具體的網絡形式時,便 通過網絡驅動程序的形式向下進行數(shù)據(jù)交互,虛擬網關在這里對操作系統(tǒng)來說可以看成是 對應操作系統(tǒng)的網絡驅動程序。
[0012] 虛擬網關具體是在軟件層面實現(xiàn)的,當數(shù)據(jù)從應用程序經操作系統(tǒng)到達虛擬網關 時,其具體的是IP數(shù)據(jù)包的格式,為了讓無線多媒體傳感器網絡節(jié)點識別IP數(shù)據(jù)包,需要 對IP數(shù)據(jù)包頭進行分析,轉換成對應于無線多媒體傳感器網絡中的數(shù)據(jù)包格式,其數(shù)據(jù)包 頭具有相同的意義。當IP數(shù)據(jù)包的長度很長時,虛擬網關也要完成數(shù)據(jù)包的分片操作,同 時,數(shù)據(jù)負載也被拷貝進入了新的數(shù)據(jù)包,這樣,就完成了 IP數(shù)據(jù)包從上到下無線多媒體 傳感器網絡數(shù)據(jù)包的轉化,實現(xiàn)了 IP數(shù)據(jù)包的透傳;當數(shù)據(jù)從下往上從無線網卡驅動傳送 到虛擬網關時,虛擬網關負責把無線多媒體傳感器網絡中的數(shù)據(jù)包格式轉換為能夠被IP 網絡識別的標準IP數(shù)據(jù)包,同時,根據(jù)無線多媒體傳感器網絡包頭中的標志位,判斷是否 進行組包操作,最后,虛擬網關把得到的IP數(shù)據(jù)包向上傳遞給操作系統(tǒng),進而傳遞給應用 程序。
[0013] 無線網卡驅動程序具體負責驅動無線網卡,主要是對硬件的操作,跟無線網卡進 行數(shù)據(jù)交互,無線網卡具體負責收發(fā)在空中的無線多媒體傳感器網絡數(shù)據(jù),完成數(shù)據(jù)傳輸。
[0014] 虛擬網關的具體實現(xiàn)架構如圖3所示,虛擬網關的向下鏈路為首先從操作系統(tǒng) 下發(fā)IP格式的數(shù)據(jù),數(shù)據(jù)會存入操作系統(tǒng)下發(fā)數(shù)據(jù)接收隊列,在隊列上,會存在一個接收 事件或者信號量,來標志該隊列存在數(shù)據(jù),數(shù)據(jù)循環(huán)派發(fā)線程1等待該事件,當該事件發(fā)生 時,即隊列中存在數(shù)據(jù)時,該數(shù)據(jù)循環(huán)派發(fā)線程1開始運行,并把操作系統(tǒng)下發(fā)數(shù)據(jù)接收隊 列中的數(shù)據(jù)搬運到無線網卡驅動數(shù)據(jù)發(fā)送隊列中,并在這個過程中完成分片的操作,分片 與否是根據(jù)兩個不同網絡中的MTU決定的,在此處,無線傳感器網絡MTU局限于物理條件的 限制,IP包的MTU要大于無線多媒體傳感器網絡中的MTU值,因此,需要檢查IP包的數(shù)據(jù) 長度,如果IP包長度大于無線多媒體傳感器網絡MTU,則進行分片;如果小于,則不進行任 何操作,直接搬運到無線網卡驅動數(shù)據(jù)發(fā)送隊列即可。分片后的數(shù)據(jù)分片后存入無線網卡 驅動數(shù)據(jù)發(fā)送隊列。無線網卡驅動數(shù)據(jù)發(fā)送隊列同樣存在事件監(jiān)聽機制,當數(shù)據(jù)到來時,循 環(huán)派發(fā)線程2運行,把數(shù)據(jù)從無線網卡驅動數(shù)據(jù)發(fā)送隊列取出,通過無線網卡驅動把數(shù)據(jù) 發(fā)送到無線網卡,進而通過天線發(fā)送出去。
[0015] 虛擬網關的向上鏈路為從無線網卡驅動接收到數(shù)據(jù)后,該數(shù)據(jù)便是無線多媒體傳 感器網絡格式的數(shù)據(jù),接收監(jiān)聽線程1負責把數(shù)據(jù)從無線網卡搬運到無線網卡驅動數(shù)據(jù)接 收隊列中,相應的隊列上同樣存在事件或者信號量,內部數(shù)據(jù)緩存入隊線程開始工作,它首 先根據(jù)包頭中的標志位進行分片與否的判斷,如果沒有分片,則直接存入IP數(shù)據(jù)接收隊 列,如果是分片數(shù)據(jù),則存入內部數(shù)據(jù)緩存隊列,每到達一個分片,則存入分片對應的緩存 結構,當所有的分片到達后,檢查線程會檢測到所有分片已經接收完畢,在這一階段,完成 無線多媒體傳感器網絡格式的數(shù)據(jù)包轉換為IP格式數(shù)據(jù)包的過程,完成組包后,設置相應 的事件用來啟動接收監(jiān)聽線程2,把數(shù)據(jù)存入IP數(shù)據(jù)接收隊列;如果因為無線多媒體傳感 器網絡信道的原因或者其他原因造成丟包,使得分片數(shù)據(jù)不能全部收到,數(shù)據(jù)會一直堆放 在緩存隊列中,如果信道很壞的情況下,會造成緩存隊列滿的情況,這時,會存在一個超時 檢查線程,設置相應的超時時限,當緩存隊列中相應包的時間超過時限后還沒有全部收到 分片,則超時線程會清理緩存隊列相應的數(shù)據(jù)結構,數(shù)據(jù)傳輸?shù)目煽啃杂缮蠈觼砭S護。當IP 數(shù)據(jù)接收隊列接收到數(shù)據(jù)后,通過設置接收事件或者信號量,啟動等待此事件或者信號量 的遞交操作系統(tǒng)數(shù)據(jù)線程,用來完成IP數(shù)據(jù)從IP數(shù)據(jù)接收隊列向操作系統(tǒng)的遞交。
[0016] 綜上所述,在一般的自主開發(fā)無線多媒體傳感器網絡中,由于無線多媒體傳感器 網絡協(xié)議的私有性,使得IP網絡數(shù)據(jù)包不能直接到達無線傳感器網絡節(jié)點,無線多媒體傳 感器網絡接入不進IP化的網絡。本發(fā)明提供一種無線多媒體傳感器網絡接入IP網絡的方 法。
[0017] 在已有情況下,無線多媒體傳感器網絡節(jié)點之間運行私有協(xié)議,IP網絡數(shù)據(jù)包不 能直接到達無線多媒體傳感器節(jié)點;在IP網絡中普遍使用的SOCKET編程規(guī)范在此處不再 適用,應用程序要想訪問網絡,需要自行開發(fā)網絡接口 API,這樣不僅給無線網卡固件開發(fā) 者增加了負擔,同時也給應用程序開發(fā)人員增加了負擔,在實際情況下,因為網絡接口 API 的私有性,不兼容IP網絡,應用程序不具有很好的移植性。本發(fā)明是在已有技術的基礎上, 通過開發(fā)虛擬網關中間件,使得IP網絡中的數(shù)據(jù)包能夠到達無線多媒體傳感器網絡節(jié)點; 應用程序可以直接通過SOCKET編程規(guī)范訪問網絡節(jié)點,從而減輕了應用程序開發(fā)人員的 負擔,是一種運行私有網絡協(xié)議的無線多媒體傳感器網絡接入IP網絡的方法。
[0018] 本發(fā)明是在已有技術的基礎上,開發(fā)虛擬網關中間件,解決了無線多媒體傳感器 網絡IP網絡數(shù)據(jù)透明傳輸?shù)膯栴}和無線多媒體傳感器網絡應用程序移植性、通用性差的 問題,主要具有以下優(yōu)點:
[0019] ①無線多媒體傳感器網絡接入IP網絡采用虛擬網關的方式,即采用軟件而非硬 件的方式來實現(xiàn)。該虛擬網關在不同的操作系統(tǒng)平臺上能夠動態(tài)加載,完成IP數(shù)據(jù)和無線 多媒體傳感器網絡協(xié)議數(shù)據(jù)的轉換;
[0020] ②通過虛擬網關的形式,使得采用SOCKET編程規(guī)范的應用程序不需要改動便可 以訪問無線多媒體傳感器網絡,使應用程序具有通用性和移植性;
[0021] ③通過虛擬網關,IP網絡數(shù)據(jù)可以透明傳輸無線多媒體傳感器網絡,可以直接通 過IP地址訪問無線多媒體傳感器網絡節(jié)點;
[0022] ④不需要增加額外的網關硬件設備,只需要通過虛擬的動態(tài)加載網關中間件,便 可以實現(xiàn)不同網絡之間協(xié)議的轉換;
[0023] ⑤不需要額外的硬件設備和在資源有限的無線傳感器網絡節(jié)點上構建復雜的IP 協(xié)議棧,使得IP網絡中的數(shù)據(jù)包能夠到達無線多媒體傳感器網絡節(jié)點;
[0024] ⑥應用程序可以通過SOCKET編程規(guī)范訪問無線傳感器網絡節(jié)點,避免開發(fā)私有 網絡協(xié)議的無線多媒體傳感器網絡訪問API,減輕了應用程序開發(fā)人員的負擔,增加了程序 開發(fā)的標準性和移植性。
【專利附圖】
【附圖說明】
[0025] 圖1整個方案的網絡拓撲結構圖;
[0026] 圖2虛擬網關所在層次結構圖;
[0027] 圖3虛擬網關的實現(xiàn)架構;
[0028] 圖4Window體系下虛擬網關層次結構圖;
[0029] 圖5分包過程;
[0030] 圖6組包過程相關數(shù)據(jù)結構示意圖;
[0031] 圖7組包過程。
【具體實施方式】
[0032] 下面,通過【具體實施方式】進一步闡述本發(fā)明的實質性特點和顯著的進步。但本發(fā) 明決非僅局限于介紹的【具體實施方式】。
[0033] 在具體實施中,平臺主要為PC機和手持設備,以PC機運行Windows操作系統(tǒng)、手 持設備運行Windows CE為例,對具體實施例進行詳細的說明。其具體的層次架構圖如圖4 所示。
[0034] 遵從SOCKET規(guī)范的應用程序調用Windows API,數(shù)據(jù)從APP進入操作系統(tǒng), Windows操作系統(tǒng)維護一個IP協(xié)議棧,并對外提供NDIS接口,以用來適配不同網絡形式的 物理網卡,在這里,虛擬網關構建于NDIS下層,用來獲得從操作系統(tǒng)傳送下來的IP數(shù)據(jù)包, 在虛擬網關,IP數(shù)據(jù)包完成了分包過程并轉化為無線多媒體傳感器網絡格式的數(shù)據(jù),從無 線網卡得到的無線多媒體傳感器網絡數(shù)據(jù)在這里完成了組包過程并把該數(shù)據(jù)包格式轉換 為IP網絡數(shù)據(jù)包的格式,完成了協(xié)議的轉換。無線網卡流驅動程序用來驅動無線網卡,即 傳輸無線多媒體傳感器網絡數(shù)據(jù)的無線通信板,在Windows體系結構下一般采用流驅動的 方法進行開發(fā)。
[0035] 在Windows開發(fā)體系的應用程序層面,主要是開發(fā)符合SOCKET網絡程序規(guī)范的應 用程序,其開發(fā)語言可以采用C/C++、java等不同的開發(fā)語言進行開發(fā),這些應用程序最終 都是通過調用Window操作系統(tǒng)API來實現(xiàn)應用程序與操作系統(tǒng)的交互,Windows和Wince 操作系統(tǒng)雖然在操作系統(tǒng)內核方面實現(xiàn)不相同,但是其提供給應用程序的操作系統(tǒng)接口基 本是相同的,SOCKET網絡規(guī)范在Windows操作系統(tǒng)的表現(xiàn)形式為一組網絡API,這樣,應用 程序和操作系統(tǒng)便可以完成數(shù)據(jù)的交互,應用程序可以把數(shù)據(jù)傳遞給Windows操作系統(tǒng), Windows操作系統(tǒng)也可以把數(shù)據(jù)傳遞給應用程序。
[0036] Windows、Wince操作系統(tǒng)維護一個IP協(xié)議棧,例如在傳輸層層面實現(xiàn)了 TCP狀態(tài) 機,實現(xiàn)了 UDP、IP等協(xié)議,提供給外部一個NDIS的網絡驅動程序接口,用來適配于不同的 通信網卡,在操作系統(tǒng)層面實現(xiàn)了一個統(tǒng)一的結構,根據(jù)設置的不同,數(shù)據(jù)最終流向不同的 物理網卡,在這里,數(shù)據(jù)通過操作系統(tǒng)提供的NDIS接口流向了運行私有協(xié)議的無線傳感器 網絡無線通信網卡。
[0037] NDIS接口提供虛擬網卡注冊、卸載等函數(shù),能夠保證虛擬網關被操作系統(tǒng)所識別, NDIS起到了承上啟下的功能,對上作為操作系統(tǒng)的接口,對下可以跟虛擬網關進行數(shù)據(jù)交 互,NDIS接口也是操作系統(tǒng)提供的接口,在這里虛擬網關中通過調用NDIS接口函數(shù),可以 從操作系統(tǒng)中拷貝數(shù)據(jù)進入到虛擬網關,也可以從虛擬網關中拷貝數(shù)據(jù)到操作系統(tǒng),從而 完成了數(shù)據(jù)交互與流動。
[0038] 在虛擬網關中,其具體實現(xiàn)架構如圖3所示,在Windows操作系統(tǒng)體系,采用C語 言開發(fā),在Wince環(huán)境下可以是BSP包中進行編譯,也可以在APP SDK中進行編譯,編譯的 選項要進行仔細的設置才能夠實現(xiàn)。虛擬網關每個隊列都存在相應的事件和線程,事件用 來標標識是否有數(shù)據(jù)進入到隊列,線程等待事件的發(fā)生并執(zhí)行,最終完成數(shù)據(jù)在不同層次 的層層遞交。
[0039] 在虛擬網關實現(xiàn)中,需要完成IP數(shù)據(jù)包分包和組包的過程,分包的具體過程如 [0040] 圖5所示,分包的過程中,IP包頭中的信息被轉換為無線多媒體傳感器網絡中的 包頭信息,在這個過程中,進行了包頭壓縮,但是不喪失有效信息。數(shù)據(jù)負載則被分入了各 個分片包中,數(shù)據(jù)僅僅是做簡單的拷貝。分包的過程中,首先,在無線多媒體傳感器網絡包 頭中設置不分片、分片首包、分片中間包、分片末包包標志位,在包頭中設置分片偏移量, 設置包標識符(ID),設置所承載的IP包包類型標識。然后,設置無線多媒體傳感器網絡包 中承載的IP包頭信息,包括IP目標地址、原地址和IP頭中的其他信息,如果在同一個網 段,則可以使用短地址形式,是否在同一個網段的標志可以設置在無線多媒體傳感器網絡 包頭中的IP包包類型標識中。IP頭中的其他信息在無線多媒體傳感器網絡包格式中可以 進行壓縮。壓縮的目的是為了增大有用數(shù)據(jù)傳輸?shù)谋壤?,減少資源的浪費。最后,設置UDP、 TCP、ICMP包在無線多媒體傳感器網絡包中字段,包括端口信息等。數(shù)據(jù)域的負載則需要詳 細的計算好需要分割的位置,對數(shù)據(jù)負載進行分割,填充到首包、中間包和末包中,當然,如 果長度不太大,數(shù)據(jù)分割只分為兩片,則最終只會存在首包和末包,長度足夠長,則會有多 個中間包出現(xiàn),數(shù)據(jù)分割的長度也不僅僅只是為兩片了。
[0041] 組包過程如圖7所示,在組包過程中,其數(shù)據(jù)結構如圖6所示,直觀來看,是一個二 維鏈表,從橫向看,其構成了一個鏈表,每個分包管理數(shù)據(jù)結構代表能夠處理一個IP包,鏈 表的長度代表了其正在處理的IP包的個數(shù)。每一個IP數(shù)據(jù)包都會存在一個數(shù)據(jù)包ID用來 標識不同的IP數(shù)據(jù)包,如圖6中分包管理結構,其內部存在數(shù)據(jù)包ID記錄,用來代表一個 IP包,此數(shù)據(jù)結構存儲有IP包的相應信息,它的填充由不斷收到的無線多媒體傳感器網絡 數(shù)據(jù)分片包頭來填充,具體是首個包的包頭來填充,其下面掛載的鏈表便代表了所有此IP 包所拆分成的無線多媒體傳感器網絡分片,隨著數(shù)據(jù)的不斷到來,相應的分片根據(jù)其偏移 量找到在此鏈表中的位置并插入進去,等所有的分包被接收完成以后,便會啟動類似于圖3 中的接收監(jiān)聽線程2,完成分包的組合過程,整個過程中,檢查線程不斷檢查是否完成,以用 來確保組包過程的啟動。超時檢查依據(jù)分包管理結構中的超時標志,用來判斷在一定時間 范圍內一個IP包的所有分片數(shù)據(jù)是否全部收到,如果沒有,則會清理掉,釋放掉其所占用 的資源,避免出現(xiàn)某一個不完整的IP包一直占用資源的情況,如果丟包現(xiàn)象嚴重,則會消 耗掉接收機大量的資源,超時檢查即是完成此項功能。
[0042] 在一個IP數(shù)據(jù)包分片鏈表中,存在著內存管理結構,其中的標志位可以用來區(qū)分 是首包、中間包還是末包,這些標志位在判斷數(shù)據(jù)是否完整即檢查是否完成方面起著重要 的作用。如圖中所示,數(shù)據(jù)分片是順序的,整個鏈表是動態(tài)構建的,考慮到在發(fā)送的過程中, 分片數(shù)據(jù)可能不是順序發(fā)送,即默認為是亂序,數(shù)據(jù)分片到來以后,根據(jù)包頭中的標志位, 判斷首包、末包和偏移量,從而找到該分片在此鏈表中位置,保證了分片數(shù)據(jù)順序的正確 性,減少了組包過程中的負擔。該內存管理結構指向負載數(shù)據(jù),這些數(shù)據(jù)的合并組成IP數(shù) 據(jù)包的數(shù)據(jù)域。
[0043] 組包過程如圖7所示,組包過程為根據(jù)首個包的包頭內容來填充IP包頭,無線多 媒體傳感器網絡分片首包提供了 IP數(shù)據(jù)包的有效信息,在這個過程中,壓縮的信息要還原 出來,完成IP包頭的填充。還原的過程為分包過程的逆過程,根據(jù)分包過程中不同網絡協(xié) 議形成的對應關系,在組包的過程中還原出來。IP包中的數(shù)據(jù)域由各個分片數(shù)據(jù)進行合并 拷貝,其在合并拷貝的過程中需要不斷計算IP包數(shù)據(jù)域拷貝目標地址,防止數(shù)據(jù)組裝的出 錯,最終完成數(shù)據(jù)域的組裝,完成組包過程。
[0044] 虛擬網關完成以后,需要開發(fā)無線網卡驅動程序,用來驅動無線多媒體傳感器網 絡網卡,在Windows操作系統(tǒng)體系,可以采用SPI總線進行處理器和無線多媒體傳感器網絡 網卡的通信,因此,驅動程序可以采用Windows流驅動進行開發(fā),虛擬網關通過該驅動,把 無線多媒體傳感器網絡包發(fā)送給無線多媒體傳感器網絡網卡,進而把數(shù)據(jù)通過無線電發(fā)送 出去,同樣的,無線多媒體傳感器網絡網卡收到數(shù)據(jù)后,通過該驅動交付給虛擬網關,實現(xiàn) 數(shù)據(jù)的交互以及信息的傳輸。
[0045] 最后,本申請文件中涉及的英文縮寫的全稱及中文譯名匯總于下面,以免引起歧 義。
[0046] IP Internet Protocol 因特網協(xié)議
[0047] API Application Programming Interface 應用程序接口
[0048] MTU Maximum Transmission Unit 最大傳輸單兀
[0049] PC Personal Computer 個人計算機
[0050] NDIS Network Driver Interface Specification 網絡驅動程序接 口規(guī)范
[0051] Wince Windows CE 微軟嵌入式操作系統(tǒng)
[0052] TCP Transmission Control Protocol 傳輸控制協(xié)議
[0053] UDP User Datagram Protocol 用戶數(shù)據(jù)報協(xié)議
[0054] BSP Board Support Package 板級支持包
[0055] APP Application 應用程序
[0056] SDK Software Development Kit 軟件開發(fā)工具包
[0057] ID Identity 標識
[0058] SPI Serial Peripheral Interface 串行外設接口
[0059] Windows 微軟視窗操作系統(tǒng)
[0060] Window CE Windows Embedded Compact 微軟公司嵌入式操作系統(tǒng)
[0061] Socket 孔/插座套接字,用于描述IP地址和端口
[0062] c/C++ java 編程語目。
【權利要求】
1. 一種無線多媒體傳感器網絡接入IP網絡的方法,其特征在于采用虛擬網關的方式 實現(xiàn)無線多媒體傳感器網絡接入IP網絡; ① 所述的虛擬網關遵從SOCKET網絡編程規(guī)范的應用程序便可以訪問該無線多媒體傳 感網絡; ② 所述的虛擬網關在不同的操作平臺上能動態(tài)加載,完成IP數(shù)據(jù)和多媒體傳感器網 絡協(xié)議數(shù)據(jù)的轉換,是對應操作系統(tǒng)的網絡驅動程序。
2. 按權利要求1所述的方法,其特征在于所述的虛擬網關存在于PC機與手持設備上, 應用程序位于最上層,應用程序的編寫遵從SOCKET規(guī)范;應用程序提供操作系統(tǒng)API。
3. 按權利要求1所述的方法,其特征在于所述的虛擬網關具體是在軟件層面實現(xiàn)的; 當數(shù)據(jù)從應用程序經操作系統(tǒng)到達虛擬網關時,是以IP數(shù)據(jù)包的格式,為使無線多媒體傳 感器網絡節(jié)點識別IP數(shù)據(jù)包,需要對IP數(shù)據(jù)包頭進行分析,轉換成對應于無線多媒體傳感 器網絡中的數(shù)據(jù)包格式,兩個數(shù)據(jù)包頭具有相同的意義;當IP數(shù)據(jù)包的長度很長時,虛擬 網關要完成數(shù)據(jù)包的分片操作,同時,數(shù)據(jù)負載也被拷貝進入了新的數(shù)據(jù)包,這樣,就完成 了 IP數(shù)據(jù)包從上到下無線多媒體傳感器網絡數(shù)據(jù)包的轉化,實現(xiàn)了 IP數(shù)據(jù)包的透傳;當數(shù) 據(jù)從下往上從無線網卡驅動傳送到虛擬網關時,虛擬網關負責把無線多媒體傳感器網絡中 的數(shù)據(jù)包格式轉換為能夠被IP網絡識別的標準IP數(shù)據(jù)包,同時,根據(jù)無線多媒體傳感器網 絡包頭中的標志位,判斷是否進行組包操作,最后,虛擬網關把得到的IP數(shù)據(jù)包向上傳遞 給操作系統(tǒng),進而傳遞給應用程序; 無線網卡驅動程序具體負責驅動無線網卡,是對硬件的操作,跟無線網卡進行數(shù)據(jù)交 互,無線網卡具體負責收發(fā)在空中的無線多媒體傳感器網絡數(shù)據(jù),完成數(shù)據(jù)傳輸。
4. 按權利要求1-3任一項所述的方法,其特征在于: A、 所述的虛擬網關的向下鏈路為首先從操作系統(tǒng)下發(fā)IP格式的數(shù)據(jù),數(shù)據(jù)會存入操 作系統(tǒng)下發(fā)數(shù)據(jù)接收隊列,在隊列上,會存在一個接收事件或者信號量,來標志該隊列存在 數(shù)據(jù),數(shù)據(jù)循環(huán)派發(fā)線程1等待該事件,當該事件發(fā)生時,即隊列中存在數(shù)據(jù)時,數(shù)據(jù)循環(huán) 派發(fā)線程1開始運行,并把操作系統(tǒng)下發(fā)數(shù)據(jù)接收隊列中的數(shù)據(jù)搬運到無線網卡驅動數(shù)據(jù) 發(fā)送隊列中,并在這個過程中完成分片的操作,分片與否是根據(jù)兩個不同網絡中的MTU決 定的,IP包的MTU要大于無線多媒體傳感器網絡中的MTU值,如果IP包長度大于無線多媒 體傳感器網絡MTU,則進行分片;如果小于,則不進行任何操作,直接搬運到無線網卡驅動 數(shù)據(jù)發(fā)送隊列即可,分片后的數(shù)據(jù)分片后存入無線網卡驅動數(shù)據(jù)發(fā)送隊列。無線網卡驅動 數(shù)據(jù)發(fā)送隊列同樣存在事件監(jiān)聽機制,當數(shù)據(jù)到來時,循環(huán)派發(fā)線程2運行,把數(shù)據(jù)從無線 網卡驅動數(shù)據(jù)發(fā)送隊列取出,通過無線網卡驅動把數(shù)據(jù)發(fā)送到無線網卡,進而通過天線發(fā) 送出去; B、 虛擬網關的向上鏈路為從無線網卡驅動接收到數(shù)據(jù)后,該數(shù)據(jù)便是無線多媒體傳感 器網絡格式的數(shù)據(jù),接收監(jiān)聽線程1負責把數(shù)據(jù)從無線網卡搬運到無線網卡驅動數(shù)據(jù)接收 隊列中,相應的隊列上同樣存在事件或者信號量,內部數(shù)據(jù)緩存入隊線程開始工作,它首先 根據(jù)包頭中的標志位進行分片與否的判斷,如果沒有分片,則直接存入IP數(shù)據(jù)接收隊列, 如果是分片數(shù)據(jù),則存入內部數(shù)據(jù)緩存隊列,每到達一個分片,則存入分片對應的緩存結 構,當所有的分片到達后,檢查線程會檢測到所有分片已經接收完畢,在這一階段,完成無 線多媒體傳感器網絡格式的數(shù)據(jù)包轉換為IP格式數(shù)據(jù)包的過程,完成組包后,設置相應的 事件用來啟動接收監(jiān)聽線程2,把數(shù)據(jù)存入IP數(shù)據(jù)接收隊列;如果因為無線多媒體傳感器 網絡信道的原因或者其他原因造成丟包,使得分片數(shù)據(jù)不能全部收到,數(shù)據(jù)會一直堆放在 緩存隊列中,如果信道很壞的情況下,會造成緩存隊列滿的情況,存在一個超時檢查線程, 設置相應的超時時限,當緩存隊列中相應包的時間超過時限后還沒有全部收到分片,則超 時線程會清理緩存隊列相應的數(shù)據(jù)結構,數(shù)據(jù)傳輸?shù)目煽啃杂缮蠈觼砭S護;當IP數(shù)據(jù)接收 隊列接收到數(shù)據(jù)后,通過設置接收事件或者信號量,啟動等待此事件或者信號量的遞交操 作系統(tǒng)數(shù)據(jù)線程,用來完成IP數(shù)據(jù)從IP數(shù)據(jù)接收隊列向操作系統(tǒng)的遞交。
5. 按權利要求4所述的方法,其特征在于A中所述的無線傳感器網絡MTU局限于物理 條件的限制。
6. 按權利要求2所述的方法,其特征在于PC機運行的Windows操作系統(tǒng)時虛擬網塊的 運行層次是: ① 遵從SOCKET規(guī)范的應用程序調用Windows API,數(shù)據(jù)從APP進入操作系統(tǒng),Windows 操作系統(tǒng)維護一個IP協(xié)議棧,并對外提供NDIS接口,以用來適配不同網絡形式的物理網 卡; ② 虛擬網關構建于NDIS下層,用來獲得從操作系統(tǒng)傳送下來的IP數(shù)據(jù)包,在虛擬網 關,IP數(shù)據(jù)包完成了分包過程并轉化為無線多媒體傳感器網絡格式的數(shù)據(jù),從無線網卡得 到的無線多媒體傳感器網絡數(shù)據(jù)在這里完成了組包過程并把該數(shù)據(jù)包格式轉換為IP網絡 數(shù)據(jù)包的格式,完成了協(xié)議的轉換; ③ 無線網卡流驅動程序用來驅動無線網卡,即傳輸無線多媒體傳感器網絡數(shù)據(jù)的無線 通信板,在Windows體系結構下采用流驅動的方法進行開發(fā); 其中,a)在Windows開發(fā)體系的應用程序層面開發(fā)符合SOCKET網絡程序規(guī)范的應用 程序,開發(fā)的應用程序最終均是通過調用Window操作系統(tǒng)API來實現(xiàn)應用程序與操作系統(tǒng) 的交互,SOCKET網絡規(guī)范在Windows操作系統(tǒng)的表現(xiàn)形式為一組網絡API,應用程序和操作 系統(tǒng)便可以完成數(shù)據(jù)的交互; b) Wind〇WS、WinCe操作系統(tǒng)維護一個IP協(xié)議棧,例如在傳輸層層面實現(xiàn)了 TCP狀態(tài)機, 實現(xiàn)了 UDP和IP協(xié)議,提供給外部一個NDIS的網絡驅動程序接口,來適配于不同的通信網 卡,在操作系統(tǒng)層面實現(xiàn)了一個統(tǒng)一的結構,根據(jù)設置的不同,數(shù)據(jù)最終流向不同的物理網 卡,數(shù)據(jù)通過操作系統(tǒng)提供的NDIS接口流向了運行私有協(xié)議的無線傳感器網絡無線通信 網卡; c) NDIS接口提供虛擬網卡注冊、卸載函數(shù),保證虛擬網關被操作系統(tǒng)所識別,NDIS起 到了承上啟下的功能,對上作為操作系統(tǒng)的接口,對下可以跟虛擬網關進行數(shù)據(jù)交互,NDIS 接口也是操作系統(tǒng)提供的接口,虛擬網關中通過調用NDIS接口函數(shù),從操作系統(tǒng)中拷貝數(shù) 據(jù)進入到虛擬網關或從虛擬網關中拷貝數(shù)據(jù)到操作系統(tǒng),從而完成了數(shù)據(jù)交互與流動。
7. 按權利要求6所述的方法,其特征在于: a) 所述的開發(fā)符合SOCKET網絡程序規(guī)范的應用程序時使用C/C++或Java編程語言; b) Windows和Wince雖然在操作系統(tǒng)內核方面實現(xiàn)不相同,但提供給應用程序的操作 系統(tǒng)接口是相同的;應用程序可把數(shù)據(jù)傳遞給Windows操作系統(tǒng),相反Windows操作系統(tǒng)也 可把數(shù)據(jù)傳遞給應用程序。
8. 按權利要求7所述的方法,其特征在于在Windows操作系統(tǒng)體系,采用C語言開發(fā), 在Wince環(huán)境下是在BSP包中進行編譯,或在APP SDK中進行編譯,編譯的選項要進行仔細 的設置才能夠實現(xiàn);虛擬網關每個隊列都存在相應的事件和線程,事件用來標標識是否有 數(shù)據(jù)進入到隊列,線程等待事件的發(fā)生并執(zhí)行,最終完成數(shù)據(jù)在不同層次的層層遞交。
9. 按權利要求4所述的方法,其特征在于: A、 分包 分包的過程中,IP包頭中的信息被轉換為無線多媒體傳感器網絡中的包頭信息,在不 喪失有效信息前提下進行了包頭壓縮,數(shù)據(jù)負載則被分入了各個分片包中,數(shù)據(jù)僅僅是做 簡單的拷貝; a) 分包的過程中,首先,在無線多媒體傳感器網絡包頭中設置不分片、分片首包、分片 中間包、分片末包包標志位,在包頭中設置分片偏移量,設置包標識符(ID),設置所承載的 IP包包類型標識; b) 然后,設置無線多媒體傳感器網絡包中承載的IP包頭信息,包括IP目標地址、原地 址和IP頭中的其他信息,如果在同一個網段,則可以使用短地址形式,是否在同一個網段 的標志可以設置在無線多媒體傳感器網絡包頭中的IP包包類型標識中。IP頭中的其他信 息在無線多媒體傳感器網絡包格式中可以進行壓縮。壓縮的目的是為了增大有用數(shù)據(jù)傳輸 的比例,減少資源的浪費; C)最后,設置UDP、TCP、ICMP包在無線多媒體傳感器網絡包中字段,包括端口信息;數(shù) 據(jù)域的負載則需要詳細的計算好需要分割的位置,對數(shù)據(jù)負載進行分割,填充到首包、中間 包和末包中; B、 組包 組包過程為根據(jù)首個包的包頭內容來填充IP包頭,無線多媒體傳感器網絡分片首包 提供了 IP數(shù)據(jù)包的有效信息,在這個過程中,壓縮的信息要還原出來,完成IP包頭的填 充;還原的過程為分包過程的逆過程,根據(jù)分包過程中不同網絡協(xié)議形成的對應關系,在組 包的過程中還原出來;IP包中的數(shù)據(jù)域由各個分片數(shù)據(jù)進行合并拷貝,其在合并拷貝的過 程中需要不斷計算IP包數(shù)據(jù)域拷貝目標地址,防止數(shù)據(jù)組裝的出錯,最終完成數(shù)據(jù)域的組 裝,完成組包過程。
10. 按權利要求6所述的方法,其特征在于虛擬網關運行層次③中涉及無線網卡的驅 動程序是: 在Windows操作系統(tǒng)體系,采用SPI總線進行處理器和無線多媒體傳感器網絡網卡的 通信;驅動程序可以采用Windows流驅動進行開發(fā),虛擬網關通過該驅動,把無線多媒體傳 感器網絡包發(fā)送給無線多媒體傳感器網絡網卡,進而把數(shù)據(jù)通過無線電發(fā)送出去;同樣的, 無線多媒體傳感器網絡網卡收到數(shù)據(jù)后,通過該驅動交付給虛擬網關,實現(xiàn)數(shù)據(jù)的交互以 及信息的傳輸。
【文檔編號】H04L29/06GK104219247SQ201410486749
【公開日】2014年12月17日 申請日期:2014年9月22日 優(yōu)先權日:2014年9月22日
【發(fā)明者】程勇博, 肖世良, 錢漢望, 陳昕鞾, 潘樂炳, 劉建坡, 袁曉兵 申請人:中國科學院上海微系統(tǒng)與信息技術研究所