CN103595637B - 基于树与哈希表的内容中心网络结点处理数据方法 - Google Patents

基于树与哈希表的内容中心网络结点处理数据方法 Download PDF

Info

Publication number
CN103595637B
CN103595637B CN201310517672.5A CN201310517672A CN103595637B CN 103595637 B CN103595637 B CN 103595637B CN 201310517672 A CN201310517672 A CN 201310517672A CN 103595637 B CN103595637 B CN 103595637B
Authority
CN
China
Prior art keywords
node
content
interest
bag
current
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.)
Expired - Fee Related
Application number
CN201310517672.5A
Other languages
English (en)
Other versions
CN103595637A (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.)
Xidian University
Original Assignee
Xidian 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 Xidian University filed Critical Xidian University
Priority to CN201310517672.5A priority Critical patent/CN103595637B/zh
Publication of CN103595637A publication Critical patent/CN103595637A/zh
Application granted granted Critical
Publication of CN103595637B publication Critical patent/CN103595637B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开一种基于树与哈希表的内容中心网络结点处理数据方法,主要解决现有技术在内容中心网络结点处理数据时,占用了大量的存储空间,而且兴趣包或数据包的处理需要到多个不同的表中查询,网络结点对数据的处理时间长的不足的问题。具体步骤包括:(1)构建哈希表:(2)接收包:(3)判断包的类型:(4)处理兴趣包:(5)处理数据包:(6)结束处理。本发明本通过采用一个哈希表来存储单个网络结点的内容缓存、待定兴趣表和转发信息表,减少网络结点中存储表的数量和空间,在内容缓存中对兴趣包内容名字实现前缀匹配,缩短网络结点对数据的处理时间。

Description

基于树与哈希表的内容中心网络结点处理数据方法
技术领域
本发明属于通信技术领域,更进一步涉及网络传输技术领域中的一种基于树与哈希表的内容中心网络结点处理数据方法。本发明可用于内容中心网络架构中结点存储内容缓存、待定兴趣表和转发信息表以及结点处理转发兴趣包和数据包。
背景技术
内容中心网络结点所储存的内容缓存、待定兴趣表、转发信息表三张表中有大量相似的内容,占用了较多的存储空间;巨大的内容名字空间也给路由可扩展性提出了挑战,无论是查找还是添加、删除操作都要求快速完成,才能支撑兴趣包与数据包的高速转发。
北京交通大学申请的专利“一种包结构、兴趣包转发、源切换和源代理选择方法”(申请号:CN201310069533.0,公开号:CN103200640A)公开了一种包结构、兴趣包转发、源切换和源代理选择方法。该方法将内容中心网络的兴趣包扩展一个位置标识和代理处理标签,数据包中扩展一个位置标识,位置标识用来表示内容的位置,代理处理标签表示该兴趣包中的位置标识由内容源代理设置。该方法存在的不足是,在这种方法下网络结点要储存并使用内容缓存、待定兴趣表和转发信息表三张表,导致该网络结点处理数据时占用了大量的存储空间,而且兴趣包或数据包的处理需要到多个不同的表中查询,网络结点对数据的处理时间长。
范·雅各布森Van Jacobson等人在其论文“Networking Named Content”(ACMCoNEXT 2009,DECEMBER 1-4,ROME,ITALY)中提出内容中心网络结点对不同类型包的处理方法。该方法的具体步骤是:第一,当一个兴趣包到达时,首先在内容缓存表中进行匹配;第二,其次在待定兴趣表中进行匹配;第三,最后在转发信息表中进行匹配。该方法存在的不足是,在这种方法下网络结点要储存并使用内容缓存、待定兴趣表和转发信息表三张表,导致该网络结点处理数据时占用了大量的存储空间,而且兴趣包或数据包的处理需要到多个不同的表中查询,网络结点对数据的处理时间长。
马特奥·瓦外勒Matteo Varvello等人在其论文“Caesar:a Content Router forHigh Speed Forwarding”(《ICN'12 Proceedings of the second edition of the ICNworkshop on Information-centric networking》ISBN978-1-4503-1479-4,2012,P73-P78)中描述了内容缓存内容缓存和转发表转发信息表的实现。该方法的具体步骤是:第一,对一个兴趣包中的内容名字,假设有x块,则将所有x个前缀在布隆过滤器中查找,得到一个0/1结果向量;第二,从高到低对结果为1的前缀查找对应哈希表,以确定该前缀是否确实在转发信息表中存在。该方法存在的不足是,关于内容缓存的查找被认为是精确匹配,而实际上当兴趣包到达时,若兴趣包的内容名字是内容缓存中的数据包的内容名字的前缀时,就是缓存命中,因此兴趣包到达时内容缓存中的查找并不是精确匹配,该方法无法实现内容缓存中对兴趣包内容名字的前缀匹配。
内容中心网络项目组的计划书“Named Data Networking(NDN)Project”(《Identification and Management of Distributed Data》ISBN:978-1-4398-7907-8,2013,P125-P134)中提到了三种内容名字查找的方法。第一种是用多个三态内容寻址存储器实现长内容名字的查找,其时间复杂度与所用三态内容寻址存储器的个数成正比,而所用三态内容寻址存储器的个数又与内容名字长度成正比。该方法存在的不足是,三态内容寻址存储器功耗大,价格高,并且使用多块三态内容寻址存储器放大了这些缺点。此外,用三态内容寻址存储器查询的方法无法实现内容缓存中对兴趣包内容名字的匹配。第二种方法是用嵌套的哈希表实现内容名字的查找,先用哈希法定位内容名字中的第一块,该位置存储指向下一级哈希表的指针,然后到下一级哈希表中查找第二块,该位置存储指向第三级哈希表的指针,如此下去。该方法的时间复杂度与内容名字中的块数成正比。该方法存在的不足是,这种方法容易造成结点维护的哈希表的数量过多,而且层次过深,浪费存储空间,查找数据包速度慢。第三种方法也是用布隆过滤器来实现内容名字的查找。先确定哪个前缀长度的前缀能查到,然后再到对应哈希表中查找,这种方法布隆过滤器实现最长前缀匹配效率较高。但该方法存在的不足是,无法实现内容缓存中对兴趣包内容名字的前缀匹配。
法国的Wei You等在“DiPIT:A Distributed Bloom-Filter Based PIT Tablefor CCN Nodes”(《Computer Communications and Networks(ICCCN),2012 21stInternational Conference on》ISBN 978-1-4673-1543-2,2012,P1-P7)提出用布隆过滤器实现分布式待定兴趣表并认为待定兴趣表中的查找都是精确查找。而实际数据包到达时在待定兴趣表中的查找为前缀匹配,不是简单的精确查找。该方法存在的不足是,无法实现内容缓存中对兴趣包内容名字的前缀匹配。
综上所述,现有内容中心网络结点处理数据的方法或者没有做前缀匹配,或者处理数据的性能不够好,或者一次只能够查询内容缓存、待定兴趣表、转发信息表中的某一张表。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提供一种基于树与哈希表的内容中心网络结点处理数据方法。本发明将结点中的转发信息表、待定兴趣表和内容缓存存储在一个哈希表中,结点根据哈希表对兴趣包和数据包进行处理,达到节省结点的存储空间和提高结点对兴趣包和数据包处理速度和效率的目的。
本发明的具体步骤包括如下:
(1)构建哈希表:
1a)用内容中心网络结点中的所有内容名字,建立内容中心网络中网络结点分段前缀树;
1b)用内容中心网络结点的分段前缀树,建立内容中心网络结点分段前缀树中结点的双向链表;
1c)将内容中心网络结点的内容缓存、待定兴趣表、转发信息表、分段前缀树以及双向链表中的所有内容名字均存储到哈希表中,完成内容中心网络中网络结点哈希表的构建;
(2)接收包:
内容中心网络结点接收与该网络结点直接相连,且处于同一网络中的其它网络结点发送到该网络结点的包;
(3)判断包的类型:
内容中心网络结点根据接收包的标识符,判断接收包的类型,若为兴趣包,则执行步骤(4),否则,执行步骤(5);
(4)处理兴趣包:
4a)采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将兴趣包的内容名字作为当前内容名字前缀;
4b)判断哈希表中是否存在兴趣包的内容名字,若不存在,则执行步骤4g),否则,执行步骤4c);
4c)当前结点的内容缓存标志位为真时,根据接收兴趣包的接口,发送当前结点对应的数据包,结束兴趣包的处理;
4d)当前结点中的双向链表不为空时,取当前结点的双向链表中第一个结点为当前结点,执行步骤4c);
4e)当前结点的待定兴趣表标志位为真时,添加待定兴趣表项,将兴趣包添加到待定兴趣表中,结束兴趣包的处理;
4f)判断当前结点的转发信息表标志位是否为真,若是,则将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从待转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理;否则,丢弃兴趣包,结束兴趣包的处理;
4g)去掉当前内容名字前缀中的最后一块,作为当前内容名字前缀;
4h)当前内容名字前缀为空时,丢弃兴趣包,结束兴趣包的处理;
4i)采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点,当前结点的转发信息表标志位为假时,执行步骤4g);
4j)当前结点的转发信息表标志位为真时,将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理;
(5)处理数据包:
5a)采用哈希算法,计算接收数据包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将数据包的内容名字作为当前内容名字前缀;
5b)当前结点的内容缓存标志位为真时,丢弃数据包,结束数据包的处理;
5c)当前结点的待定兴趣表标志位为真时,将当前结点的待定兴趣表接口添加到待转发接口列表中,删除待定兴趣表项;
5d)删除当前内容名字前缀中的最后一块,将得到的内容名字前缀作为当前内容名字前缀,采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点;
5e)判断当前内容名字前缀是否为空,若是,则在待转发接口列表中,删除接收数据包的接口,否则,执行步骤5c);
5f)判断待转发接口列表是否为空,若是,则丢弃数据包,结束数据包的处理;否则,从待转发接口列表中的接口发送数据包,清空待转发接口列表,添加内容缓存表项,同时将数据包保存在内容缓存中;
(6)结束处理:内容中心网络结点结束对包的处理。
本发明与现有技术相比较,具有以下优点:
第一,由于本发明采用一个哈希表来存储单个网络结点的内容缓存、待定兴趣表和转发信息表,克服了现有技术在网络结点处理数据时,占用了大量的存储空间,而且兴趣包或数据包的处理需要到多个不同的表中查询,网络结点对数据的处理时间长的不足,使得本发明具有减少网络结点中存储表的数量和空间,缩短网络结点对数据的处理时间的优点。
第二,本发明采用建立分段前缀树和双向链表来快速返回数据包的技术,克服了现有技术无法在内容缓存中实现对兴趣包内容名字前缀匹配和查找数据包速度慢的不足,使得本发明具有在内容缓存中对兴趣包内容名字实现前缀匹配,减少在内容缓存中查找数据包的时间的优点。
附图说明
图1是本发明的流程图;
图2是本发明中处理兴趣包的流程图;
图3是本发明中处理数据包的流程图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
参照附图1,本发明实现的具体步骤如下:
步骤1,构建哈希表。
用内容中心网络结点中的所有内容名字,建立内容中心网络中网络结点分段前缀树。
网络结点分段前缀树的建立方法如下:
第1步,以“/”符号作为分隔符,对网络结点中的内容名字进行分段,得到分段后内容名字。
第2步,去掉分段后内容名字的最后一段,得到处理后的内容名字;将处理后的内容名字作为尚未处理的内容名字的父结点。
第3步,对处理后的内容名字继续执行第2步,直至处理后的内容名字仅为一段,得到所有仅为一段的内容名字。
第4步,将所有仅为一段的内容名字的父结点设置为一个共同的空结点,合并父结点相同且该结点表示的内容名字也相同的结点,完成内容中心网络结点分段前缀树的构建。
设本发明的实施例中网络结点的内容缓存中有/CCN1.com/A/E、/CCN1.com/A/F项,待定兴趣表中有/CCN1.com/B、/CCN2.com/C、/CCN2.com/D/G、/CCN1.com/B/L项,转发信息表中有/CCN2.com、/CCN1.com/B、/CCN2.com/C、/CCN2.com/D、/CCN2.com/D/G项。将/CCN1.com/A作为/CCN1.com/A/E、/CCN1.com/A/F的父结点,将/CCN1.com/B/作为/CCN1.com/B/L的父结点,将/CCN2.com/D作为/CCN2.com/D/G的父结点,将/CCN1.com作为/CCN1.com/A、/CCN1.com/B的父结点,将/CCN2.com作为/CCN2.com/C、/CCN2.com/D的父结点,将/CCN1.com、/CCN2.com的父结点设置为同一个空结点。完成了实施例中网络结点分段前缀树的构建。
用内容中心网络结点的分段前缀树,建立内容中心网络结点分段前缀树中结点的双向链表。
结点双向链表的建立方法如下:
第1步,令分段前缀树中所有结点的双向链表为空,分段前缀树中的叶子结点在内容缓存中存在时,将该叶子结点作为当前结点。
第2步,将当前结点添加到当前结点父结点的双向链表中,将当前结点父结点作为当前结点。
第3步,判断当前结点父结点的双向链表中是否含有当前结点,若是,则执行第2步,否则,得到内容中心网络结点分段前缀树中结点的双向链表。
本发明的实施例中/CCN1.com/A/E、/CCN1.com/A/F是内容缓存项,将/CCN1.com/A/E、/CCN1.com/A/F添加到/CCN1.com/A的双向链表中,将/CCN1.com/A添加到/CCN1.com的双向链表中,得到实施例中结点双向链表。
将内容中心网络结点的内容缓存、待定兴趣表、转发信息表、分段前缀树以及双向链表中的所有内容名字均存储到哈希表中,完成内容中心网络中网络结点哈希表的构建。
网络结点哈希表的结构包括:内容缓存、待定兴趣表、转发信息表的标志位,待定兴趣表、转发信息表的接口列表,内容名字,分段前缀树中的父结点,结点在双向链表中的父结点。
将本发明的实施例中的数据添加到哈希表中,得到的初始状态如表1所示。
表1 网络结点哈希表的初始状态表
表1中,CS表示内容缓存标志位,PIT表示待定兴趣表标志位,FIB表示转发信息表标志位,PIT列表表示待定兴趣表接口列表,FIB列表表示转发信息表接口列表,CS、PIT和FIB列中的数字1表示真,0表示假。
步骤2,接收包。
内容中心网络结点接收与该网络结点直接相连,且处于同一网络中的其它网络结点发送到该网络结点的包。
步骤3,判断包的类型。
内容中心网络结点根据接收包的标识符,判断接收包的类型,若为兴趣包,则执行步骤(4),否则,执行步骤(5)。
步骤4,处理兴趣包。
参照附图2,本发明中处理兴趣包的具体步骤如下:
4a)采用哈希算法,所述的哈希算法采用消息摘要算法MD5,将数据包和兴趣包的内容名字经消息摘要算法计算后得到哈希值;所述的哈希算法采用安全哈希算法SHA-1,将数据包和兴趣包的内容名字经安全哈希算法计算后得到哈希值。计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将兴趣包的内容名字作为当前内容名字前缀。
4b)判断哈希表中是否存在兴趣包的内容名字,若不存在,则执行步骤4g),否则,执行步骤4c)。
4c)当前结点的内容缓存标志位为真时,根据接收兴趣包的接口,发送当前结点对应的数据包,结束兴趣包的处理。
4d)当前结点中的双向链表不为空时,取当前结点的双向链表中第一个结点为当前结点,执行步骤4c)。
4e)当前结点的待定兴趣表标志位为真时,添加待定兴趣表项,将兴趣包添加到待定兴趣表中,结束兴趣包的处理。
添加待定兴趣表项具体步骤如下:
第1步,采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点。
第2步,将兴趣包的内容名字添加到当前结点的内容名字中。
第3步,将当前结点的待定兴趣表标志位修改为真。
第4步,将接收兴趣包的接口添加到当前结点的待定兴趣表接口列表中,添加待定兴趣表项过程结束。
4f)判断当前结点的转发信息表标志位是否为真,若是,则将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从待转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理;否则,丢弃兴趣包,结束兴趣包的处理。
4g)去掉当前内容名字前缀中的最后一块,作为当前内容名字前缀。
4h)当前内容名字前缀为空时,丢弃兴趣包,结束兴趣包的处理。
4i)采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点,当前结点的转发信息表标志位为假时,执行步骤4g)。
4j)当前结点的转发信息表标志位为真时,将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理。
下面结合实施例对本发明中兴趣包的处理过程进行详细说明。
实施例1,内容中心网络中的结点从接口Face1接收到兴趣包,该兴趣包的内容名字为/CCN1.com/A/E,从表1的哈希表中查找到/CCN1.com/A/E的结点作为当前结点,然后在表1中结点/CCN1.com/A/E的内容缓存标志位为真,将内容缓存中内容名字为/CCN1.com/A/E的数据包沿接收到兴趣包的接口Face1发送,对该兴趣包的处理结束。
实施例2,内容中心网络中的结点从接口Face2接收到兴趣包,该兴趣包的内容名字为/CCN1.com/A,从表1的哈希表中查找到/CCN1.com/A的结点作为当前结点,然后在表1中结点/CCN1.com/A的内容缓存标志位为假,双向链表不为空,将当前结点修改为当前结点的双向链表中的第一个结点/CCN1.com/A/E,在表1中结点/CCN1.com/A/E的内容缓存标志位为真,将内容缓存中内容名字为/CCN1.com/A/E数据包沿接收到兴趣包的接口Face2发送,对兴趣包的处理结束。
实施例3,内容中心网络中的结点从接口Face3接收到兴趣包,该兴趣包的内容名字为/CCN2.com/C,从表1的哈希表中查找到/CCN1.com/C的结点作为当前结点,然后在表1中结点/CCN2.com/C的内容缓存标志位为假,双向链表为空,待定兴趣表标志位为真,将接收到兴趣包的接口Face3添加到哈希表中当前结点的待定兴趣表接口列表中,对兴趣包的处理结束。
实施例4,内容中心网络中的结点从接口Face4接收到兴趣包,该兴趣包的内容名字为/CCN2.com/D,从表1的哈希表中查找到/CCN1.com/D的结点作为当前结点,然后在表1中结点/CCN1.com/D的内容缓存标志位为假,内容缓存标志位为假,双向链表为空,待定兴趣表标志位为假,转发信息表标志位为真,将/CCN1.com/D结点的转发信息表接口列表Face4,Face5复制到待转发接口列表中,将接收到兴趣包的接口Face4从待转发接口列表中去除,从转发接口列表中的接口Face5发送兴趣包,然后清空待转发接口列表,将结点/CCN1.com/D的待定兴趣表标志位修改为1,将接收到兴趣包的接口Face4添加到当前结点的待定兴趣表列表中,对兴趣包的处理结束,得到如表2所示的处理结束后的哈希表。
表2 实施例4处理结束后的哈希表
步骤5,处理数据包:
参照附图3,本发明中处理数据包的具体步骤如下:
5a)采用哈希算法,计算接收数据包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将数据包的内容名字作为当前内容名字前缀。
5b)当前结点的内容缓存标志位为真时,丢弃数据包,结束数据包的处理。
5c)当前结点的待定兴趣表标志位为真时,将当前结点的待定兴趣表接口添加到待转发接口列表中,删除待定兴趣表项。
删除待定兴趣表项的具体步骤如下:
第1步,采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点。
第2步,将当前结点的待定兴趣表标志位修改为假。
第3步,将当前结点的待定兴趣表接口列表清空。
第4步,若当前结点的待定兴趣表、转发信息表和内容缓存标志位均为假且当前结点的双向链表为空,则删除哈希表中当前结点的内容名字,删除待定兴趣表项过程结束。
5d)删除当前内容名字前缀中的最后一块,将得到的内容名字前缀作为当前内容名字前缀,采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点。
5e)判断当前内容名字前缀是否为空,若是,则在待转发接口列表中,删除接收数据包的接口,否则,执行步骤5c)。
5f)判断待转发接口列表是否为空,若是,则丢弃数据包,结束数据包的处理;否则,从待转发接口列表中的接口发送数据包,清空待转发接口列表,添加内容缓存表项,同时将数据包保存在内容缓存中。
添加内容缓存表项的具体步骤如下:
第1步,采用哈希算法,计算接收数据包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点。
第2步,将当前结点的内容缓存标志位修改为真。
第3步,将数据包添加到内容缓存中。
第4步,将当前结点添加到当前结点父结点的双向链表中,将当前结点父结点作为当前结点。
第5步,判断当前结点父结点的双向链表中是否含有当前结点,若是,则执行第4步,否则,内容缓存项添加过程结束。
下面结合实施例对本发明中数据包的处理过程进行详细说明。
实施例5,内容中心网络中的结点从接口Face1接收到数据包,该数据包的内容名字为/CCN1.com/A/E,从表1的哈希表中查找到/CCN1.com/A/E的结点作为当前结点,然后在表1中结点/CCN1.com/A/E的内容缓存标志位为真,丢弃数据包,对数据包的处理结束。
实施例6,内容中心网络中的结点从接口Face2接收到数据包,该数据包的内容名字为/CCN1.com/B/L,当前内容名字前缀为/CCN1.com/B/L,从表1的哈希表中查找到/CCN1.com/B/L的结点作为当前结点,在表1中结点/CCN1.com/B/L的内容缓存标志位为假,待定兴趣表标志位为真,将结点/CCN1.com/B/L的待定兴趣表接口列表Face5添加到待转发接口列表中,将结点/CCN1.com/B/L的待定兴趣表标志位修改为假,并将当前结点的待定兴趣表接口列表清空,然后去掉当前内容名字前缀中的最后一块,得到/CCN1.com/B作为当前内容名字前缀,将表1的哈希表中结点内容名字为/CCN1.com/B的结点为当前结点,在表1中结点/CCN1.com/B的待定兴趣表标志位为真,将结点/CCN1.com/B的待定兴趣表接口列表Face2和Face3添加到待转发接口列表中,将结点/CCN1.com/B的待定兴趣表标志位修改为假,将当前结点的待定兴趣表接口列表清空,然后去掉当前内容名字前缀中的最后一块,得到/CCN1.com作为当前内容名字前缀,将表1的哈希表中结点内容名字为/CCN1.com的结点为当前结点,结点/CCN1.com的待定兴趣表标志位为假,然后去掉当前内容名字前缀中的最后一块,当前内容名字前缀为空,从待转发接口列表中删除接收到数据包的接口Face2,剩下的待转发接口列表中有Face3和Face5,沿待转发接口列表中的接口发送数据包,将数据包/CCN1.com/B/L保存在内容缓存中,并将数据包的内容名字插入到哈希表中,对数据包的处理结束,得到如表3所示的处理结束后的哈希表。
表3 实施例6处理结束后的哈希表
(6)结束处理:内容中心网络结点结束对包的处理。
从上述实施例的实现过程中可以发现,本发明实现了在内容缓存中对兴趣包内容名字前缀匹配的功能,具有减少在内容缓存中查找数据包的时间,减少网络结点中存储表的数量和空间,缩短网络结点对数据的处理时间的优点。

Claims (9)

1.一种基于树与哈希表的内容中心网络结点处理数据方法,包括如下步骤:
(1)构建哈希表:
1a)用内容中心网络结点中的所有内容名字,建立内容中心网络中网络结点分段前缀树;
1b)用内容中心网络结点的分段前缀树,建立内容中心网络结点分段前缀树中结点的双向链表;
1c)将内容中心网络结点的内容缓存、待定兴趣表、转发信息表、分段前缀树以及双向链表中的所有内容名字均存储到哈希表中,完成内容中心网络中网络结点哈希表的构建;
(2)接收包:
内容中心网络结点接收与该网络结点直接相连,且处于同一网络中的其它网络结点发送到该网络结点的包;
(3)判断包的类型:
内容中心网络结点根据接收包的标识符,判断接收包的类型,若为兴趣包,则执行步骤(4),否则,执行步骤(5);
(4)处理兴趣包:
4a)采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将兴趣包的内容名字作为当前内容名字前缀;
4b)判断哈希表中是否存在兴趣包的内容名字,若不存在,则执行步骤4g),否则,执行步骤4c);
4c)当前结点的内容缓存标志位为真时,根据接收兴趣包的接口,发送当前结点对应的数据包,结束兴趣包的处理;
4d)当前结点中的双向链表不为空时,取当前结点的双向链表中第一个结点为当前结点,执行步骤4c);
4e)当前结点的待定兴趣表标志位为真时,添加待定兴趣表项,将兴趣包添加到待定兴趣表中,结束兴趣包的处理;
4f)判断当前结点的转发信息表标志位是否为真,若是,则将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从待转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理;否则,丢弃兴趣包,结束兴趣包的处理;
4g)去掉当前内容名字前缀中的最后一段,作为当前内容名字前缀;
4h)当前内容名字前缀为空时,丢弃兴趣包,结束兴趣包的处理;
4i)采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点,当前结点的转发信息表标志位为假时,执行步骤4g);
4j)当前结点的转发信息表标志位为真时,将当前结点的转发信息表接口列表复制到待转发接口列表中,删除待转发接口列表中接收兴趣包的接口,从转发接口列表中的接口发送兴趣包,清空待转发接口列表,同时添加待定兴趣表项,结束兴趣包的处理;
(5)处理数据包:
5a)采用哈希算法,计算接收数据包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表的结点,将查找到的结点作为当前结点,将数据包的内容名字作为当前内容名字前缀;
5b)当前结点的内容缓存标志位为真时,丢弃数据包,结束数据包的处理;
5c)当前结点的待定兴趣表标志位为真时,将当前结点的待定兴趣表接口添加到待转发接口列表中,删除待定兴趣表项;
5d)删除当前内容名字前缀中的最后一段,将得到的内容名字前缀作为当前内容名字前缀,采用哈希算法,计算当前内容名字前缀的哈希值,将哈希值代入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点;
5e)判断当前内容名字前缀是否为空,若是,则在待转发接口列表中,删除接收数据包的接口,执行步骤5f);否则,执行步骤5c);
5f)判断待转发接口列表是否为空,若是,则丢弃数据包,结束数据包的处理;否则,从待转发接口列表中的接口发送数据包,清空待转发接口列表,添加内容缓存表项,同时将数据包保存在内容缓存中;
(6)结束处理:内容中心网络结点结束对包的处理。
2.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤1a)中所述网络结点分段前缀树的建立方法如下:
第1步,以“/”符号作为分隔符,对网络结点中的内容名字进行分段,得到分段后内容名字;
第2步,去掉分段后内容名字的最后一段,得到处理后的内容名字;将处理后的内容名字作为尚未处理的内容名字的父结点;
第3步,对处理后的内容名字继续执行第2步,直至处理后的内容名字仅为一段,得到所有仅为一段的内容名字;
第4步,将所有仅为一段的内容名字的父结点设置为一个共同的空结点,合并父结点相同且该结点表示的内容名字也相同的结点,完成内容中心网络结点分段前缀树的构建。
3.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤1b)中所述结点双向链表的建立方法如下:
第1步,令分段前缀树中所有结点的双向链表为空,分段前缀树中的叶子结点在内容缓存中存在时,将该叶子结点作为当前结点
第2步,将当前结点添加到当前结点父结点的双向链表中,将当前结点父结点作为当前结点;
第3步,判断当前结点父结点的双向链表中是否含有当前结点,若是,则执行第2步,否则,得到内容中心网络结点分段前缀树中结点的双向链表。
4.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤1c)中所述的网络结点哈希表的结构包括:内容缓存、待定兴趣表、转发信息表的标志位,待定兴趣表、转发信息表的接口列表,内容名字,分段前缀树中的父结点,结点在双向链表中的父结点。
5.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤4a)、步骤4i)、步骤5a)、步骤5d)中所述的哈希算法采用消息摘要算法MD5,将数据包和兴趣包的内容名字经消息摘要算法计算后得到哈希值。
6.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤4a)、步骤4i)、步骤5a)、步骤5d)中所述的哈希算法采用安全哈希算法SHA-1,将数据包和兴趣包的内容名字经安全哈希算法计算后得到哈希值。
7.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤4e)、步骤4f)、步骤4j)中所述添加待定兴趣表项具体步骤如下:
第1步,采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点;
第2步,将兴趣包的名字添加到当前结点的内容名字中;
第3步,将当前结点的待定兴趣表标志位修改为真;
第4步,将接收兴趣包的接口添加到当前结点的待定兴趣表接口列表中,添加待定兴趣表项过程结束。
8.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤5c)中所述的删除待定兴趣表项的具体步骤如下:
第1步,采用哈希算法,计算接收兴趣包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点;
第2步,将当前结点的待定兴趣表标志位修改为假;
第3步,将当前结点的待定兴趣表接口列表清空;
第4步,若当前结点的待定兴趣表、转发信息表和内容缓存标志位均为假且当前结点的双向链表为空,则删除哈希表中当前结点的内容名字,删除待定兴趣表项过程结束。
9.根据权利要求1所述的基于树与哈希表的内容中心网络结点处理数据方法,其特征在于,步骤5f)中所述的添加内容缓存表项的具体步骤如下:
第1步,采用哈希算法,计算接收数据包的内容名字的哈希值,将哈希值带入哈希表中查找哈希表结点,将查找到的哈希表结点作为当前结点;
第2步,将当前结点的内容缓存标志位修改为真;
第3步,将数据包添加到内容缓存中;
第4步,将当前结点添加到当前结点父结点的双向链表中,将当前结点父结点作为当前结点;
第5步,判断当前结点父结点的双向链表中是否含有当前结点,若是,则执行第4步,否则,添加内容缓存表项的过程结束。
CN201310517672.5A 2013-10-27 2013-10-27 基于树与哈希表的内容中心网络结点处理数据方法 Expired - Fee Related CN103595637B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310517672.5A CN103595637B (zh) 2013-10-27 2013-10-27 基于树与哈希表的内容中心网络结点处理数据方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310517672.5A CN103595637B (zh) 2013-10-27 2013-10-27 基于树与哈希表的内容中心网络结点处理数据方法

Publications (2)

Publication Number Publication Date
CN103595637A CN103595637A (zh) 2014-02-19
CN103595637B true CN103595637B (zh) 2017-03-29

Family

ID=50085626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310517672.5A Expired - Fee Related CN103595637B (zh) 2013-10-27 2013-10-27 基于树与哈希表的内容中心网络结点处理数据方法

Country Status (1)

Country Link
CN (1) CN103595637B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391777B2 (en) * 2014-08-15 2016-07-12 Palo Alto Research Center Incorporated System and method for performing key resolution over a content centric network
CN105515980B (zh) * 2014-09-23 2018-05-22 中国科学院声学研究所 一种内容中心网络按需距离矢量路由方法
CN104320451A (zh) * 2014-10-21 2015-01-28 北京邮电大学 支持内容中心网络的Web服务器缓存系统及处理方法
CN104579974B (zh) * 2014-12-22 2017-10-31 湖南大学 面向ndn中名字查找的哈希布鲁姆过滤器及数据转发方法
US10003520B2 (en) * 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
CN106533947B (zh) * 2015-09-11 2019-10-08 新华三技术有限公司 报文处理方法及装置
CN105635001A (zh) * 2015-12-30 2016-06-01 天津盛购科技发展有限公司 一种基于两端限定双向链表子树的快速便利算法
CN107579916B (zh) 2016-07-04 2021-03-23 新华三技术有限公司 转发表项访问方法及装置
CN107733946B (zh) * 2016-08-11 2021-05-07 中国电子科技集团公司电子科学研究院 一种ccn网络中基于主动转发的内容源移动性支持方法
CN106375410B (zh) * 2016-08-31 2019-09-20 赫里奥(苏州)科技有限公司 一种基于内容中心网络的层次拓扑组网方法
CN109428822B (zh) * 2017-09-01 2020-10-09 华为技术有限公司 一种名字查找方法和网络设备
CN108650070A (zh) * 2018-05-11 2018-10-12 全球能源互联网研究院有限公司 一种信息中心网络相量测量单元通信的系统与方法
CN110581883B (zh) * 2019-08-22 2021-05-04 北京邮电大学 内容分发方法、内容发布装置、内容请求装置及路由节点
CN110417661A (zh) * 2019-09-18 2019-11-05 北京大学深圳研究生院 一种用于命名数据网络中网络节点的转发方法、装置、系统及存储介质
CN110995592B (zh) * 2019-12-16 2021-09-07 北京信息科技大学 一种新型待定兴趣表的自维护方法及路由转发方法
CN114527929A (zh) * 2020-11-23 2022-05-24 洪文圳 基于双哈希模糊布隆滤波器云存储数据融合方法
EP4175233B1 (en) * 2021-06-25 2024-05-08 New H3C Technologies Co., Ltd. Packet matching method and apparatus, network device, and medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154228A (zh) * 2006-09-27 2008-04-02 西门子公司 一种分段模式匹配方法及其装置
CN101184021A (zh) * 2007-12-14 2008-05-21 华为技术有限公司 一种实现流媒体缓存置换的方法、设备及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102104526A (zh) * 2009-12-16 2011-06-22 华为技术有限公司 一种内容发布与获取的方法、装置和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101154228A (zh) * 2006-09-27 2008-04-02 西门子公司 一种分段模式匹配方法及其装置
CN101184021A (zh) * 2007-12-14 2008-05-21 华为技术有限公司 一种实现流媒体缓存置换的方法、设备及系统

Also Published As

Publication number Publication date
CN103595637A (zh) 2014-02-19

Similar Documents

Publication Publication Date Title
CN103595637B (zh) 基于树与哈希表的内容中心网络结点处理数据方法
CN103873371B (zh) 一种名字路由快速匹配查找方法与装置
CN104468381B (zh) 一种多域流规则匹配的实现方法
CN102484610B (zh) 路由表建立方法和装置及路由表查找方法和装置
CN104462549B (zh) 一种数据处理方法和装置
CN101345707B (zh) 一种实现IPv6报文分类的方法及设备
CN101834802B (zh) 转发数据包的方法及装置
CN103780491B (zh) 一种实现IPv6快速路由查找的方法
CN106549872B (zh) 最长前缀匹配与精确匹配结合的星载快速路由查找系统
CN103404092B (zh) 路由前缀存储方法、装置及路由地址查找方法、装置
CN101695054A (zh) 路由维护方法和装置以及路由查询方法和装置
CN103457700A (zh) Ndn/ccn网络中的数据包内容名称编码压缩方法
CN108696438A (zh) Bier报文的转发方法及装置
CN106453091B (zh) 路由器转发平面的等价路由管理方法和装置
WO2010054599A1 (zh) 存储数据的方法、装置及系统
CN104320451A (zh) 支持内容中心网络的Web服务器缓存系统及处理方法
CN110851658B (zh) 树形索引数据结构、内容存储池、路由器及树形索引方法
CN106453092B (zh) 一种路由更新方法和装置
CN109861915A (zh) 转发表操作的方法、装置、计算机设备及可读存储介质
CN101110769B (zh) 基于安全业务的包转发方法及系统
CN109495366A (zh) 一种vxlan报文处理方法、装置及存储介质
CN108566335B (zh) 一种基于NetFlow的网络拓扑生成方法
CN110417661A (zh) 一种用于命名数据网络中网络节点的转发方法、装置、系统及存储介质
CN101106529B (zh) 基于安全业务的包转发方法及系统
CN104301227B (zh) 基于tcam的高速低功耗ip路由表查找方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170329