CN103023808A - 基于块状链表结构的6lowpan数据包重装缓存方法 - Google Patents

基于块状链表结构的6lowpan数据包重装缓存方法 Download PDF

Info

Publication number
CN103023808A
CN103023808A CN2012105809812A CN201210580981A CN103023808A CN 103023808 A CN103023808 A CN 103023808A CN 2012105809812 A CN2012105809812 A CN 2012105809812A CN 201210580981 A CN201210580981 A CN 201210580981A CN 103023808 A CN103023808 A CN 103023808A
Authority
CN
China
Prior art keywords
packet
node
burst
chained list
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012105809812A
Other languages
English (en)
Other versions
CN103023808B (zh
Inventor
孙知信
骆冰清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Nanjing University of Posts and Telecommunications
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201210580981.2A priority Critical patent/CN103023808B/zh
Publication of CN103023808A publication Critical patent/CN103023808A/zh
Application granted granted Critical
Publication of CN103023808B publication Critical patent/CN103023808B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于块状链表结构的6lowpan数据包重装缓存方法,针对sk-buff结构的存储方式,考虑到轻量级的IPV6网络数据包应用环境与存储内容的不同,采用块状链表结构实现其缓存机制,利用数组与链表相结合的方式对6lowpan数据包分片进行存储与重装。包括基于块状链表结构的数据缓存方法,以及采用基于块状链表结构的数据缓存方法对6lowpan数据包进行分片处理的方法。本发明解决6lowpan实现过程中,对于多节点并发发送数据包时,由于单一缓存机制的限制导致的数据包丢包情况,且块状链表由于数组大小固定,且存储顺序不受限制,不会因数据问题而导致链表退化。

Description

基于块状链表结构的6lowpan数据包重装缓存方法
技术领域
本发明涉及一种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、当链表为空链表,即不存在其他已经缓存的数据包分片,此时对所接收到的数据包分片处理过程如下:
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、当链表的最后一个节点已存储了正在接收的数据包分片信息,则丢弃该数据包分片。
本发明还提出一种采用基于块状链表结构的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数值相等的节点,利用下一节点数据复制到该节点位置;若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。
作为本发明的对6lowpan数据包进行分片处理的方法进一步的优化方案,在缓冲区中设置定时器,定时清空重装失败的分片数据,并删除该缓冲区所对应的链表节点;具体如下:定位到该缓存区scis指针所在的链表节点,利用下一节点数据复制到该节点位置;若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1、块状链表由于数组大小固定,且存储顺序不受限制,不会因数据问题而导致链表退化。
2、解决6lowpan实现过程中,对于多节点并发发送数据包时,由于单一缓存机制的限制导致的数据包丢包情况。
3、本发明所提出的利用块状链表结构对多个缓存区进行维护与管理,并没有改变6lowpan实现过程中的重装机制,包括偏移量,位图信息,首部信息,只是对这些信息加以利用,其实现可行性较高。
4、考虑到无线传感网络的应用环境,为提高内存利用率,提出对比已处理分片长度与数据长度对比测试方法,及时释放缓冲区。
附图说明
图1是基于本发明的6lowpan分片数据包设计的五元组结构图。
图2是后续分片首部示意图。
图3是第一分片首部示意图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
目前,对于6lowpan分片与重装的整个过程中,涉及三个缓存区:
一个是packet-buf,其大小与一个802.15.4数据包的大小相同,用来存储需要802.15.4 MAC层解析的数据包。
一个是重装缓存,用来存储已经经过802.15.4 MAC层解析过的6lowpan数据包分片(若解析后不是6lowpan分片而是一个完整的6lowpan数据包,则不需要重组,而是直接由6lowpan解析后交由IPV6层),其大小是一个完整6lowpan数据包的大小(可以从第一个分片的首部得知)。
另一个缓存区是uipbuf,用于存储重装后的IPV6数据包。由于目前的contiki系统中,重装缓存只有一个,并发的6lowpan分片在协议中的处理方法是,当6lowpan层接收到不是正在重装的数据包分片时,将该分片丢弃。这是多个传感节点同时给sink节点发送数据时出现丢包的主要原因。
因此,本发明提出一个6lowpan协议中基于块状链表的缓存方法,采用块状链表结构维护重装缓存,并在此重装缓存机制的基础上,提出了对并发数据包分片接收的处理方法,改善6lowpan实现过程中,多节点并发发送数据包的丢包现象。
(一)基于块状链表的缓存方法:
如图1所示,本发明提出的块状链表,它将数组和链表的优点结合起来,各种操作的时间复杂度均为O(sqrt(n))。从整体上看,块状链表是一个链表,而在链表的每个节点上,以数组的形式存储一组元素。在本发明中,为6lowpan分片数据包设计了五元组,其中各字段定义如下:
Next:在每个结点中所表示的意义相同,代表下一结点指针;
Scis:是一个指针,指向所分配缓冲区的开端;
Tag:标示了一组属于同一数据包的分片;
Size:是该缓冲区的大小,与整个数据包大小一致;
ip-len:表示已经处理过的分片长度,它会随着处理分片的数量增加而增加。
对于智能物件来说,其数据速率通常低于通用计算机的数据速率,缓存管理策略也不必为满足高吞吐量而优化,相反,内存是稀有资源,所以缓存管理机制必须能够在少量内存的情况下高效地工作。因此,在本发明中,采用单向链表的结构对缓存进行维护与管理。
在基于6lowpan的无线传感器网络中,感知节点(智能物件)与sink(基站节点)或者网关节点接收到数据包分片时缓存的状态有以下三种:(链表内存已经申请)
A、链表为空链表,不存在其他已经缓存的数据包分片,此时对所接收到的数据包分片处理过程如下:
A1、读取数据包分片首部,判断该数据包负载的总大小,以及数据包分片的tag标示等信息。
A2、建立next,scis,tag,size,F的五元组,根据size大小建立缓冲区,scis指针指向缓冲区地址。
A3、由于链表为空链表,将next指针指向链表的头指针,插入五元组。
A4、继续接收其他分片。
B、链表为非空链表,对所接收的数据包分片处理过程如下:
B1、读取数据包分片首部,判断该数据包负载的总大小,以及数据包分片的tag标示等信息。
B2、根据所读取的tag值,在链表中查找是否已存在相同tag值的链表节点,若存在相同tag值的链表节点,则转B3;若不存在相同tag值的链表节点,则转B4。
B3、根据所查找到的链表节点中的scis指针,将该分片存储至已分配好的缓冲区。
B4、建立next,scis,tag,size,F的五元组,根据size大小建立缓冲区,scis指针指向缓冲区地址。将该节点插入到上一节点后,保存指针。
B5、继续接收其他分片。
C、由于内存大小限制,链表的最后一个节点已存储了正在接收的数据包分片信息,则若再接收到新的数据包分片,而该分片的tag标示不存在在链表中,则丢弃该分片。
在数据包分片接收过程中,所创建的数据缓存以及重装过程与原单一缓存重装机制保持一致,即数据包分片根据位图排列,待接收到所有数据包分片后(缓存区满),缓存区中的数据(IPV6数据包)交由UIPv6协议栈的IP层处理。
在本发明中,为了能及时的释放缓存,在五元组中设置了已经处理的IP分片长度ip-len,即在该链表节点所代表的缓冲区中的分片正处于接收状态时,它会随着处理分片数量的增加而增加ip-len的数值,当该ip-len数值与size大小一致时,表示该缓冲区中的数据包已经重装完成,则需要释放该缓冲区空间,并删除该链表节点。具体方法是定位到ip-len数值与size数值相等的节点,利用下一节点数据复制到该节点位置。若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。
在6lowpan重装过程中会出现重装失败的情况,比如分片包丢失,偏移位重叠等。因此为保证资源利用率与重装效率,在缓存中设置定时器,定时清空重装失败的分片数据,并删除该缓冲区所对应的链表节点。方法是定位到该缓存区指针所在的链表节点,利用下一节点数据复制到该节点位置。若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。
(二)基于块状链表缓存的6lowpan数据包分片处理方法:
在Contiki OS中实现6lowpan协议的无线传感器网络,对数据包分片的处理机制如下:当6lowpan适配层接收到来自MAC层的数据包时,首先对报文首部进行解析,判断该数据包是否为数据包分片;若为数据包分片,则通过分片首部判断该分片是否为数据包的第一个分片;若为数据包的第一个分片,则对Ipv6首部进行解压缩,若不是第一个分片,则读取分片首部信息,对分片进行缓存。当6lowpan适配层正在处理某一数据的数据包分片时,若接收到来自其他数据的数据包分片时,则直接丢弃该分片。其原因是,在Contiki OS中实现6lowpan协议时只使用了单一独立的缓存机制,因此无法同时处理并发的数据包分片。
图2为除了第一片以外的后续链路分片首部。第一字节(dispatch类型)表明了该首部的类型为分片首部(11100nnn)。后3位分配给分片datagram_size标识,从而节省首部空间。
Datagram_size:11位字段。主要表示在链路层分片前的整个IP数据包大小(IPv6 首部+IPv6 载荷)。同一数据包的所有分片的datagram_size值应相同。将这一字段写入所有分片首部中,无论哪个分片先到达接收节点,接收节点均可迅速的凭此字段分配出相应大小的接收缓存。11位的长度使得重装单元可达2047个字节,满足网络层MTU1280字节的要求。
Datagram_tag:16位数据包标志,同样,同一数据包的所有分片的此标志相同。结合初始节点和最终目的节点的链路层地址以及datagram_size,可以有效的区分不同的待重装的数据包。发送节点每成功分片一个数据包,datagram_tag加1,直到65535时清0。
Datagram_offset:该标志表示了各分片在重装后的IPv6数据包中所处的位置。以8字节为单位,所以8位就能表示整个2047个字节。第一个分片的偏移值为0,出于最优化考虑,在第一分片首部中将这一字段省去,同时dispatch字节改为11000nnn。如图3所示。
本发明提出了基于块状链表的数据包分片缓存方法,支持6lowpan适配层同时处理来自不同数据的数据包分片的重装。其处理过程如下:
(1)首先对接收到的数据包报文首部进行解析,判断是否为数据包分片,若是完整的6lowpan数据包,则直接对数据包进行首部解压缩,将处理后的IPV6数据包直接交由Uipv6协议栈进行处理;若是数据包分片,则转(2)。
(2)对数据包分片首部进行解析,判断该数据包分片的合法性,合法转(3),不合法则直接丢弃。
(3)读取分片首部中的tag值,遍历块状链表,查询是否已经对该数据其他分片进行缓存,若已经存在缓存,则转(5),若没有接收过该数据的其他分片,则转(4)。
(4)判断该数据包分片是否为第一个分片,若是,则对IPV6首部进行解压缩,并定位块状链表中的缓存位置,读取指针信息,存储数据,增加IP-len长度,判断IP-len是否等于size(用于释放缓存空间);若不是第一个分片,则直接定位块状链表中的缓存位置,读取指针信息,存储数据,增加IP-len长度,判断IP-len是否等于size(用于释放缓存空间)。
(5)查询缓存空间是否已满,若块状链表中的节点均已经存在正在接收的数据包分片,则丢弃该分片;若还有剩余缓存空间,则依据上述块状链表的缓存方法的非空链表插入方法进行缓存。
本发明所提出的是一种对并发数据包分片同时缓存与处理的方法,对于单一的缓存机制以及位图的存储与利用,重装的过程,本发明对原6lowpan中的实现方法不做改动。

Claims (3)

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指针所在的链表节点,利用下一节点数据复制到该节点位置;若该节点位置正好是尾节点,则需要遍历整个链表,找到该节点的上一节点,连接上一节点指针至尾节点。
CN201210580981.2A 2012-12-28 2012-12-28 基于块状链表结构的6lowpan数据包重装缓存方法 Active CN103023808B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210580981.2A CN103023808B (zh) 2012-12-28 2012-12-28 基于块状链表结构的6lowpan数据包重装缓存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210580981.2A CN103023808B (zh) 2012-12-28 2012-12-28 基于块状链表结构的6lowpan数据包重装缓存方法

Publications (2)

Publication Number Publication Date
CN103023808A true CN103023808A (zh) 2013-04-03
CN103023808B CN103023808B (zh) 2015-06-03

Family

ID=47971951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210580981.2A Active CN103023808B (zh) 2012-12-28 2012-12-28 基于块状链表结构的6lowpan数据包重装缓存方法

Country Status (1)

Country Link
CN (1) CN103023808B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202268A (zh) * 2014-09-16 2014-12-10 桂林电子科技大学 无线传感器网络IPv6路由协议报文分片重组的方法
CN104639511A (zh) * 2013-11-13 2015-05-20 安凯(广州)微电子技术有限公司 一种节省内存的实现方法及装置
CN104639214A (zh) * 2013-11-14 2015-05-20 安凯(广州)微电子技术有限公司 一种实现内存优化的方法及装置
CN105262689A (zh) * 2015-09-14 2016-01-20 中国电力科学研究院 一种智能采集路由器及采集路由方法
CN106339431A (zh) * 2016-08-18 2017-01-18 佛山智能装备技术研究院 基于文本块的机器人程序文件处理方法和系统
CN106961425A (zh) * 2017-03-08 2017-07-18 南京龙渊微电子科技有限公司 一种6lowpan数据报的压缩重组系统和方法
CN108183893A (zh) * 2017-12-25 2018-06-19 东软集团股份有限公司 一种分片包检测方法、检测装置、存储介质和电子设备
CN108848531A (zh) * 2018-06-04 2018-11-20 河南科技大学 一种IPv6网络与ZigBee网络的通信方法
CN110221911A (zh) * 2018-03-02 2019-09-10 大唐移动通信设备有限公司 一种以太网数据保护方法和装置
CN110417514A (zh) * 2019-07-22 2019-11-05 北京地平线机器人技术研发有限公司 数据发送方法和装置、数据接收方法和装置
CN111104401A (zh) * 2018-10-26 2020-05-05 塔塔咨询服务有限公司 在基于数组和链表的集成结构中存储数据的系统和方法
CN111695885A (zh) * 2019-03-14 2020-09-22 中国科学技术大学 基于减小交易输入的数字凭证区块链压缩方法
CN113569300A (zh) * 2021-09-27 2021-10-29 环球数科集团有限公司 一种基于云计算的区块链数据处理系统
CN115086001A (zh) * 2022-06-10 2022-09-20 杭州安恒信息技术股份有限公司 采样数据缓存方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1941732A (zh) * 2005-09-28 2007-04-04 北京大学 一种无需ip分片重组实现动态流分类的装置和方法
CN101316232A (zh) * 2008-07-09 2008-12-03 南京邮电大学 基于网络协议版本6的分片重组方法
CN101645851A (zh) * 2009-09-03 2010-02-10 中兴通讯股份有限公司 一种ip分片报文的重组方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1941732A (zh) * 2005-09-28 2007-04-04 北京大学 一种无需ip分片重组实现动态流分类的装置和方法
CN101316232A (zh) * 2008-07-09 2008-12-03 南京邮电大学 基于网络协议版本6的分片重组方法
CN101645851A (zh) * 2009-09-03 2010-02-10 中兴通讯股份有限公司 一种ip分片报文的重组方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
林绍太等: "IP分片重组算法(RFC815)的实现及其改进", 《计算机工程与设计》 *
荣锋等: "IP分片算法研究及其在嵌入式系统中的应用", 《计算机工程》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104639511B (zh) * 2013-11-13 2018-08-03 安凯(广州)微电子技术有限公司 一种节省内存的实现方法及装置
CN104639511A (zh) * 2013-11-13 2015-05-20 安凯(广州)微电子技术有限公司 一种节省内存的实现方法及装置
CN104639214A (zh) * 2013-11-14 2015-05-20 安凯(广州)微电子技术有限公司 一种实现内存优化的方法及装置
CN104639214B (zh) * 2013-11-14 2017-05-03 安凯(广州)微电子技术有限公司 一种实现内存优化的方法及装置
CN104202268A (zh) * 2014-09-16 2014-12-10 桂林电子科技大学 无线传感器网络IPv6路由协议报文分片重组的方法
CN105262689A (zh) * 2015-09-14 2016-01-20 中国电力科学研究院 一种智能采集路由器及采集路由方法
CN106339431A (zh) * 2016-08-18 2017-01-18 佛山智能装备技术研究院 基于文本块的机器人程序文件处理方法和系统
CN106961425B (zh) * 2017-03-08 2018-12-11 南京龙渊微电子科技有限公司 一种6lowpan数据报的压缩重组系统和方法
CN106961425A (zh) * 2017-03-08 2017-07-18 南京龙渊微电子科技有限公司 一种6lowpan数据报的压缩重组系统和方法
CN108183893A (zh) * 2017-12-25 2018-06-19 东软集团股份有限公司 一种分片包检测方法、检测装置、存储介质和电子设备
CN110221911A (zh) * 2018-03-02 2019-09-10 大唐移动通信设备有限公司 一种以太网数据保护方法和装置
CN108848531A (zh) * 2018-06-04 2018-11-20 河南科技大学 一种IPv6网络与ZigBee网络的通信方法
CN111104401B (zh) * 2018-10-26 2023-09-22 塔塔咨询服务有限公司 在基于数组和链表的集成结构中存储数据的系统和方法
CN111104401A (zh) * 2018-10-26 2020-05-05 塔塔咨询服务有限公司 在基于数组和链表的集成结构中存储数据的系统和方法
CN111695885A (zh) * 2019-03-14 2020-09-22 中国科学技术大学 基于减小交易输入的数字凭证区块链压缩方法
CN111695885B (zh) * 2019-03-14 2023-08-29 中国科学技术大学 基于减小交易输入的数字凭证区块链压缩方法
CN110417514B (zh) * 2019-07-22 2022-02-01 北京地平线机器人技术研发有限公司 数据发送方法和装置、数据接收方法和装置
CN110417514A (zh) * 2019-07-22 2019-11-05 北京地平线机器人技术研发有限公司 数据发送方法和装置、数据接收方法和装置
CN113569300A (zh) * 2021-09-27 2021-10-29 环球数科集团有限公司 一种基于云计算的区块链数据处理系统
CN115086001A (zh) * 2022-06-10 2022-09-20 杭州安恒信息技术股份有限公司 采样数据缓存方法、装置及存储介质
CN115086001B (zh) * 2022-06-10 2024-04-09 杭州安恒信息技术股份有限公司 采样数据缓存方法、装置及存储介质

Also Published As

Publication number Publication date
CN103023808B (zh) 2015-06-03

Similar Documents

Publication Publication Date Title
CN103023808B (zh) 基于块状链表结构的6lowpan数据包重装缓存方法
CN102106125B (zh) 一种多路径网络
CN101562861B (zh) 无线传感器网络中基于跳数和能量的跨层双向路由方法
CN100421417C (zh) Tcp卸载的系统和方法
CN103945456B (zh) 一种基于Linux系统的LTE基站用户面高效UDP数据发送优化方法
CN101841545B (zh) 一种tcp流重组拼包方法和装置
CN101572670B (zh) 一种基于流表的数据包处理方法、装置和网络系统
CN102769869B (zh) 无线接入点的控制和配置报文快速转发系统
CN101286945B (zh) 数据分片处理方法及装置
CN101515841B (zh) 一种基于RapidIO协议的数据包传输的方法、设备和系统
CN100512223C (zh) 移动通信系统中同时传输多种类型数据的方法
CN101426010A (zh) 信息处理装置及信息处理系统
CN101630992A (zh) 共享内存管理方法
CN101145976A (zh) 引入节点重要性的对等网络超级节点选择和资源搜索方法
CN101197773B (zh) 基于多链路的报文压缩发送和接收解压缩方法及系统
CN107295619A (zh) 一种边缘缓存网络中基于用户连接矩阵的基站休眠方法
CN103220747A (zh) 一种认知无线Mesh网络的路由设计方法
CN103327027A (zh) 内容中心网络底层实现方法、内容中心网络以及通信方法
CN103781115A (zh) 一种蜂窝网络中基于传输代价的分布式基站缓存替换方法
CN102857989A (zh) 一种面向移动传感网的自适应路由方法
CN103298057A (zh) 基于ZigBee技术的并发多径路由方法
US8549216B2 (en) Memory management using packet segmenting and forwarding
CN104301237A (zh) 一种适用于容迟容断网络的数据订阅分发方法
CN100512231C (zh) 一种路由方法
CN101964751B (zh) 数据包的传输方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130403

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000221

Denomination of invention: Block link list structure based 6lowpan data packet repackaging buffering method

Granted publication date: 20150603

License type: Common License

Record date: 20161129

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: 2016320000221

Date of cancellation: 20180116

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130403

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: Nanjing Post & Telecommunication Univ.

Contract record no.: X2019980001266

Denomination of invention: Block link list structure based 6lowpan data packet repackaging buffering method

Granted publication date: 20150603

License type: Common License

Record date: 20191224

EC01 Cancellation of recordation of patent licensing contract
EC01 Cancellation of recordation of patent licensing contract

Assignee: Jiangsu Nanyou IOT Technology Park Ltd.

Assignor: NANJING University OF POSTS AND TELECOMMUNICATIONS

Contract record no.: X2019980001266

Date of cancellation: 20220304