[發明專利]基于塊狀鏈表結構的6lowpan數據包重裝緩存方法有效
| 申請號: | 201210580981.2 | 申請日: | 2012-12-28 |
| 公開(公告)號: | CN103023808A | 公開(公告)日: | 2013-04-03 |
| 發明(設計)人: | 孫知信;駱冰清 | 申請(專利權)人: | 南京郵電大學 |
| 主分類號: | H04L12/861 | 分類號: | H04L12/861;H04L29/06 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 朱小兵 |
| 地址: | 210003 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 塊狀 結構 lowpan 數據包 重裝 緩存 方法 | ||
技術領域
本發明涉及一種6lowpan數據重裝緩存方法,屬于無線傳感網絡的應用技術領域。
背景技術
6lowpan協議的發展促使基于IP的無線傳感網絡應用的發展。目前,Contiki?OS是其中主流的實現輕量級IP協議的操作系統。
Contiki?OS通過6lowpan協議實現Ipv6數據包基于IEEE802.15.4?協議的傳輸,操作系統中所搭載的協議棧為輕量級的IPV6協議棧——UIPv6協議棧(Uip)。
Uip有很低的內存需求。在默認配置中它僅需要大約1KB的RAM?和幾KB?ROM。在Uip協議棧中,Uip通過將待重組的數據包存入單獨的緩存區來實現IP分片的重組,將該緩沖區與用于Uip測試的數據包緩沖區相互隔離可以有效的防止IP分片遭到改寫。當所有的IP分片都被重組完畢時,生成的IP數據包傳遞給傳輸層。由于Uip僅為重組的分片分配一個單獨的緩沖區,所以Uip不支持多個數據包同時重組。采用這個設計的原因是:在當今網絡中,IP分片相對而言不太普遍。
然而,在6lowpan協議實現過程中,6lowpan適配層會對從IP層傳輸下來的數據包進行檢測與處理,如果IPV6的數據包載荷超過了802.15.4數據包的MTU值,則6lowpan適配層會對IPV6數據包進行分片;同理當6lowpan適配層接收到通信設備驅動器發來的802.15.4數據包時,6lowpan協議會檢測該數據包是否為數據包分片,若是數據包分片,則需要接收到所有分片后對數據包進行重組后,形成完整的IPV6數據再傳輸給上層協議。因此,利用Uip協議棧中原先的重裝緩存設計將導致基于6lowpan的智能應用中,無法接收多個智能物件并發發送的數據包分片。經仿真實驗表明,當一個sink節點接收來自2個以上的感知節點發來的數據時,將導致丟包的狀況。
對IP網絡而言,在一些已公開的專利與論文中有一些針對IP數據包分片的緩存方法。
對于IPV6數據包分片,在《基于網絡協議版本6的分片重組方法》專利中提出一種分片樹的數據結構,從根節點往下,第一層是地址不同,第二層是地址相同,端口不同,第三層(葉節點)是地址相同,端口相同,標示不同。具體數據都存儲在葉節點上,當系統接收到數據包時,根據分片樹查找分片信息,并對分片進行存儲與重裝。該存儲方式的優點在于能夠快速有效的查找與建立新的數據分片節點。但是此方法消耗大量的內存空間,不適用于無線傳感器網絡。而在UIPv6協議棧中,也考慮到了IPV6數據包分片的可能性,但基于IP數據包分片的發生幾率較小,UIPv6協議棧只為IP數據包的分片設計了一個單獨的緩沖區,并且當同時接收到其他數據包分片時,將丟棄不是正在處理過程中的IP數據包分片。
但是對6lowpan數據包而言,由于要適配802.15.4數據包的最大傳輸單元,分片與重組功能的實現是6lowpan適配層的主要任務之一。6lowpan適配層接收到數據包分片的情況較為普遍,因此單一緩存將不能滿足6lowpan協議的應用需求。
在linux系統的網絡技術開發中,套接字緩沖區sk-buff結構,存儲了已接收或正要傳輸的數據的報頭。內核在一個雙向鏈表中維護所有的sk-buff結構,結構中包含了指向緩沖區的指針以及很多其他維護信息字段。該結構采用結構體做為鏈表節點,能夠靈活的存儲不同套接字信息。但是該結構由巨大的變量堆組成,試圖滿足所有人的所有需求,比較繁瑣。
因此,如何針對輕量級的IPV6網絡數據包,提出新的6lowpan數據重裝緩存機制,將其運用于基于6lowpan的無線傳感器網絡環境中,不受限于無線傳感器的硬件條件,目前還沒有相關的技術報道。
發明內容
本發明所要解決的技術問題是針對sk-buff結構的存儲方式,考慮到輕量級的IPV6網絡數據包應用環境與存儲內容的不同,采用塊狀鏈表結構實現其緩存機制,利用數組與鏈表相結合的方式對6lowpan數據包分片進行存儲與重裝。
本發明為解決上述技術問題采用以下技術方案:
一種基于塊狀鏈表結構的6lowpan數據包緩存方法,在基于6lowpan的無線傳感器網絡中,根據接收節點對于接收到數據包分片時緩存的狀態分為以下A、B、C三種情況處理:
A、當鏈表為空鏈表,即不存在其他已經緩存的數據包分片,此時對所接收到的數據包分片處理過程如下:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京郵電大學,未經南京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210580981.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:模擬RGB信號的控制顯示方法和系統
- 下一篇:多路靜電釋放保護器件的加工方法





