[发明专利]基于块状链表结构的6lowpan数据包重装缓存方法有效

专利信息
申请号: 201210580981.2 申请日: 2012-12-28
公开(公告)号: CN103023808A 公开(公告)日: 2013-04-03
发明(设计)人: 孙知信;骆冰清 申请(专利权)人: 南京邮电大学
主分类号: H04L12/861 分类号: H04L12/861;H04L29/06
代理公司: 南京经纬专利商标代理有限公司 32200 代理人: 朱小兵
地址: 210003 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 块状 结构 lowpan 数据包 重装 缓存 方法
【权利要求书】:

1.一种基于块状链表结构的6lowpan数据包缓存方法,其特征在于,在基于6lowpan的无线传感器网络中,根据接收节点对于接收到数据包分片时缓存的状态分为以下A、B、C三种情况处理:

A、当链表为空链表,即不存在其他已经缓存的数据包分片,此时对所接收到的数据包分片处理过程如下:

A1、读取数据包分片的首部,根据首部字段size的值判断该数据包负载的总大小,然后根据该数据包负载的总大小建立缓冲区,同时根据首部字段tag的值判断该数据包分片所属于的数据包标示信息; 

A2、为6lowpan分片数据包建立由next、scis、tag、size、Ip-len组成的五元组;其中各字段定义如下:next代表下一节点指针,在每个节点中所表示的意义相同;scis为指向所分配缓冲区的开端的指针;tag用于标示属于同一数据包的一组分片;size代表缓冲区的大小,与整个数据包大小一致;Ip-len表示已经处理过的数据包分片长度,其随着处理数据包分片的数量的增加而增加;

A3、将scis指针指向缓冲区地址;将next指针指向链表的头指针,插入五元组;

A4、继续接收其他数据包分片,返回步骤A1;

B、当链表为非空链表,即存在其他已经缓存的数据包分片,此时对所接收的数据包分片处理过程如下:

B1、读取数据包分片的首部,根据首部字段size的值判断该数据包负载的总大小,根据首部字段tag的值判断该数据包分片所属于的数据包标示信息;

B2、根据B1中所读取的tag的值,在链表中查找是否已存在相同tag值的链表节点,若存在相同tag值的链表节点,则转B3;若不存在相同tag值的链表节点,则转B4;

B3、根据所查找到的链表节点中的scis指针,将该数据包分片存储至已分配好的缓冲区;

B4、为该6lowpan分片数据包建立由next、scis、tag、size、Ip-len组成的五元组,根据size的大小建立缓冲区,scis指针指向缓冲区地址;将该节点插入到上一节点后,保存指针;

B5、返回步骤B1继续接收其他数据包分片;

C、当链表的最后一个节点已存储了正在接收的数据包分片信息,则丢弃该数据包分片。

2.一种采用权利要求1所述的基于块状链表结构的6lowpan数据包缓存方法对6lowpan数据包进行分片处理的方法,其特征在于,采用单向链表的结构对缓存进行维护与管理,包括以下步骤: 

步骤(1),首先对接收到的数据包报文首部进行解析,判断是否为数据包分片,若是完整的6lowpan数据包,则直接对数据包进行首部解压缩,将处理后的IPV6数据包直接交由Uipv6协议栈进行处理;若是数据包分片,则转步骤(2);

步骤(2),对IPV6数据包分片首部进行解析,判断该数据包分片的合法性,若合法则转步骤(3),若不合法则直接丢弃;

步骤(3),读取IPV6数据包分片首部中的tag值,遍历块状链表,查询是否已经对该数据包的其他分片进行缓存,若没有接收过该数据包的其他分片,则转步骤(4);若已经存在缓存,则转步骤(5);

步骤(4),判断该数据包分片是否为该IPV6数据包的第一个分片:

若是第一个分片,则对该IPV6数据包首部进行解压缩,根据首部字段size的值判断该数据包负载的总大小,然后根据该数据包负载的总大小建立缓冲区,并读取块状链表中的scis指针信息来定位缓存位置;将数据按缓存位置存储至缓存空间后,增加该链表节点中的IP-len的长度,进入步骤(6);

若不是第一个分片,则直接读取块状链表中的scis指针信息来定位缓存位置;将数据按缓存位置存储至缓存空间后,增加该链表节点中的IP-len的长度,进入步骤(6);

步骤(5),查询缓存空间是否已满,若缓存空间已满,则丢弃该分片;若还有剩余缓存空间,则根据该IPV6数据包首部tag值查找所对应的链表节点中的scis指针,将该分片存储至已分配好的缓冲区,增加该链表节点中的IP-len的长度,进入步骤(6);

步骤(6),判断IP-len数值是否等于size的大小,当该IP-len数值与size大小一致时,表示该缓冲区中的数据包已经重装完成,则需要释放该缓冲区空间,并删除该链表节点;具体方法是:定位到IP-len数值与size数值相等的节点,利用下一节点数据复制到该节点位置;若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。

3.根据权利要求2所述的采用基于块状链表结构的6lowpan数据包缓存方法对6lowpan数据包进行分片处理的方法,其特征在于:

在缓冲区中设置定时器,定时清空重装失败的分片数据,并删除该缓冲区所对应的链表节点;具体如下:定位到该缓存区scis指针所在的链表节点,利用下一节点数据复制到该节点位置;若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210580981.2/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top