CN104320451A - 支持内容中心网络的Web服务器缓存系统及处理方法 - Google Patents

支持内容中心网络的Web服务器缓存系统及处理方法 Download PDF

Info

Publication number
CN104320451A
CN104320451A CN201410561982.1A CN201410561982A CN104320451A CN 104320451 A CN104320451 A CN 104320451A CN 201410561982 A CN201410561982 A CN 201410561982A CN 104320451 A CN104320451 A CN 104320451A
Authority
CN
China
Prior art keywords
ccn
servlet
packet
name
prefix
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.)
Pending
Application number
CN201410561982.1A
Other languages
English (en)
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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN201410561982.1A priority Critical patent/CN104320451A/zh
Publication of CN104320451A publication Critical patent/CN104320451A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了支持内容中心网络的Web服务器缓存系统及处理方法,缓存系统包括:查询预判断单元,用于当CCN动态请求向CCN内容缓存请求CCN数据包时,从CCN内容缓存中查询是否存在与CCN动态请求相应的CCN数据包;匹配单元,用于当从CCN内容缓存中查询到与CCN动态请求相应的CCN数据包时,以CCN动态请求的前缀中Servlet名之前的部分为关键词中进行查询与关键字所映射的地址;变长度参数查询单元,用于变长Servlet名及参数的存储和查询;数据包存储单元,用于存储Servlet响应所产生的数据包。可以减少大量CCN动态请求对于CCN内容缓存造成的访问压力,从而实现快速查询以及快速缓存。

Description

支持内容中心网络的Web服务器缓存系统及处理方法
技术领域
本发明涉及网络技术领域,特别涉及一种支持内容中心网络的Web服务器缓存系统及处理方法。
背景技术
内容中心网络(Content-Centric Network,简称为CCN)是一种全新的网络架构,CCN与传统的TCP/IP基于地址的网络架构完全不同,CCN基于内容名字进行数据的共享和交互,而不需要关心通信双方的物理地址和主机。CCN中包含两类数据包,即兴趣包Interest Packet和数据包Content Packet,用户发送CCN兴趣包向网络请求CCN数据包。
CCN网络协议的原型系统为CCNx(CCN协议栈也称为CCNx),CCNx包括CCN路由器,该原型系统提供了开发CCN应用程序的接口。CCN路由器具有网内缓存的功能,CCN路由器有三个关键的组件:数据缓存(Content Store,简称为CS),请求待定表(Pending InterestTable,简称为PIT),请求转发表(Forwarding Information Base,简称为FIB)。
由于CCN数据包基于数据包的前缀名标识,而前缀名为可变长度的字符串,所以CCN数据包缓存中高效的匹配问题非常关键。现有技术中,CCN路由器的数据缓存CS主要由跳跃链表组成,当有CCN兴趣包到达时,如果该CCN兴趣包在PIT中没有记录,则直接查询CS,所以每次新的CCN兴趣包到达时都需要多次的内存访问,无论CCN路由器的CS中是否存在相应的数据包,由于CCN兴趣包的请求数量巨大,这种缓存的实现方式效率低下。
发明内容
为了解决现有技术无法实现快速缓存的技术问题,一方面,
本发明提供了一种支持内容中心网络的Web服务器缓存系统,包括:查询预判断单元、匹配单元、变长度参数查询单元和数据包存储单元;
所述查询预判断单元用于当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从所述CCN内容缓存中查询是否存在与所述CCN动态请求相应的CCN数据包;
所述匹配单元用于当从所述CCN内容缓存中查询到与所述CCN动态请求相应的CCN数据包时,以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查询与所述关键字所映射的地址;
所述变长度参数查询单元用于变长Servlet名及参数的存储和查询;
所述数据包存储单元用于存储Servlet响应所产生的数据包。
可选的,所述查询预判断单元为计数布隆过滤器,所述计数布隆过滤器用于存储CCN数据包前缀,并按照所述CCN数据包前缀的名字组件长度进行分类,所述CCN内容缓存中包括多个计数布隆过滤器。
可选的,所述匹配单元为哈希表,所述变长度参数查询单元为Servlet字典树,所述数据包存储单元为跳跃链表;
所述哈希表用于存储所述CCN数据包前缀和Servlet字典树根地址的映射关系,所述哈希表的关键字为所述CCN数据包前缀;
所述Servlet字典树的节点用于存储所述跳跃链表的首地址。
另一方面,
本发明还提供了一种支持内容中心网络的Web服务器缓存的处理方法,包括:
S10、当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从所述CCN内容缓存中查询是否存在与所述CCN动态请求相应的CCN数据包;
S20、当从所述CCN内容缓存中查询到与所述CCN动态请求相应的CCN数据包时,以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查询所述关键字所映射的地址;
S30、根据变长Servlet名及参数结合查询到的关键字映射的地址进行存储和查询;
S40、存储Servlet响应所产生的数据包。
可选的,所述Web服务器缓存执行CCN数据包查询算法包括:
A1、查询线程计算所述CCN动态请求的名字前缀长度,并将所述CCN动态请求的名字前缀发送给计数布隆过滤器,并根据所述CCN动态请求的名字前缀长度查询相应的计数布隆过滤器,如果查询到则所述CCN内容缓存中存在所述CCN数据包;
A2、所述查询线程以所述CCN动态请求的前缀中Servlet名之前的部分为关键词,在哈希表中查询与所述关键词映射的地址,则查询结果为Servlet字典树的首地址;
A3、根据Servlet的名称和参数查询Servlet字典树中存储的跳跃链表的首地址;
A4、根据所述CCN请求的包序号查询相应的CCN数据包。
可选的,所述Web服务器缓存执行CCN数据包插入算法:
B1、插入线程计算待插入CCN数据包的名字前缀的长度,在所述计数布隆过滤器中以待插入CCN数据包的名字为关键字进行映射,如果所述计数布隆过滤器中有映射结果,则所述插入线程中止插入;
B2、如果所述计数布隆过滤器中没有映射结果,则所述查询线程在所述哈希表中以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址;
B3、如果找到Servlet字典树根节点的地址,则所述插入线程根据所述Servlet字典树根节点的地址继续在所述Servlet字典树中以所述CCN动态请求的前缀中Servlet名之后的部分为关键字进行查询,查询结果为所述跳跃链表的首地址;
B4、所述插入线程将所述CCN数据包插入到所述跳跃链表中。
可选的,步骤B2在以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址的过程中,如果没有找到Servlet字典树根节点的地址,则根据所述CCN动态请求的前缀中Servlet名之后的部分创建新的Servlet字典树,并将所述CCN动态请求的前缀中Servlet名之前的部分作为关键字插入到所述哈希表中,对应的值为所述新的Servlet字典树根节点的地址。
可选的,所述Web服务器缓存执行CCN数据包删除算法时,包括:
当所述获取单元获取到与所述CCN动态请求相应的CCN数据包之后,从所述CCN内容缓存中将所述CCN数据包删除。
可选的,所述Web服务器缓存执行CCN数据包删除算法时,还包括:
所有CCN数据包都写入到所述CCN缓存之后,触发针对Servlet产生的响应数据所对应的CCN数据包的计数器开始计数,当计数达到预设值时,删除所述Servlet产生的响应数据产生的所有剩余CCN数据包。
本发明提供的Web服务器缓存系统,首先查询CCN内容缓存中是否存在该CCN数据包,如果CCN内容缓存中缺失不存在CCN数据包,则只需要进行一次内存访问,可以减少CCN网络中大量CCN动态请求对于CCN内容缓存造成的访问压力,从而实现快速查询以及快速缓存。
附图说明
图1为本发明提供的一种支持内容中心网络的Web服务器缓存系统的组成示意图;
图2为本发明提供的一种支持内容中心网络的Web服务器缓存的处理方法的步骤流程图;
图3为本发明Web服务器缓存执行CCN数据包查询算法的步骤流程图;
图4为本发明Web服务器缓存执行CCN数据包插入算法的步骤流程图;
图5为本发明实施例一提供的一种基于CCN Web服务器的CCN内容缓存的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
CCN的原型系统CCNx协议栈,包括CCN路由器,并提供了开发CCN应用程序的接口。CCN路由器具有网内缓存的功能,CCN路由器有三个关键的组件:数据缓存(Content Store,简称为CS),请求待定表(Pending Interest Table,简称为PIT),请求转发表(ForwardingInformation Base,简称为FIB)。
本发明提供了本发明提供了一种支持内容中心网络的Web服务器缓存系统,组成示意图如图1所示,包括:
查询预判断单元10、匹配单元20、变长度参数查询单元30和数据包存储单元40;
查询预判断单元10用于当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从CCN内容缓存中查询是否存在与CCN动态请求相应的CCN数据包;
匹配单元20用于当从所述CCN内容缓存中查询到与CCN动态请求相应的CCN数据包时,以CCN动态请求的前缀中Servlet名之前的部分为关键词查询与该关键字所映射的地址;
变长度参数查询单元30用于变长Servlet名及参数的存储和查询;
数据包存储单元40用于存储Servlet响应所产生的数据包。
可选的,本发明中查询预判断单元10为计数布隆过滤器,计数布隆过滤器用于存储CCN数据包前缀,并按照CCN数据包前缀的名字组件长度进行分类,CCN内容缓存中包括多个计数布隆过滤器。
可选的,匹配单元20为哈希表,哈希表用于存储所述CCN数据包前缀和Servlet字典树根地址的映射关系,哈希表的关键字为CCN数据包前缀。变长度参数查询单元30为Servlet字典树。数据包存储单元为跳跃链表,Servlet字典树的节点用于存储跳跃链表的首地址。
另一方面,
本发明还提供了一种支持内容中心网络的Web服务器缓存的处理方法,步骤流程图如图2所示,包括以下步骤:
步骤S10、当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从CCN内容缓存中查询是否存在与CCN动态请求相应的CCN数据包。
步骤S20、当从CCN内容缓存中查询到与CCN动态请求相应的CCN数据包时,以CCN动态请求的前缀中Servlet名之前的部分为关键词查询关键字所映射的地址。
步骤S30、根据变长Servlet名及参数结合查询到的关键字映射的地址进行存储和查询。
步骤S40、存储Servlet响应所产生的数据包。
可选的,Web服务器缓存执行CCN数据包查询算法的步骤流程图如图3所示,包括以下步骤:
步骤A1、查询线程计算CCN动态请求的名字前缀长度,并将CCN动态请求的名字前缀发送给计数布隆过滤器,并根据CCN动态请求的名字前缀长度查询相应的计数布隆过滤器,如果查询到则CCN内容缓存中存在CCN数据包。
步骤A2、查询线程以CCN动态请求的前缀中Servlet名之前的部分为关键词,在哈希表中查询与关键词映射的地址,则查询结果为Servlet字典树的首地址。
步骤A3、根据Servlet的名称和参数查询。Servlet字典树中存储的跳跃链表的首地址。
步骤A4、根据CCN请求的包序号查询相应的CCN数据包。
可选的,Web服务器缓存执行CCN数据包插入算法的步骤流程图如图4所示,包括以下步骤:
步骤B1、插入线程计算待插入CCN数据包的名字前缀的长度,在计数布隆过滤器中以待插入CCN数据包的名字为关键字进行映射,如果计数布隆过滤器中有映射结果,则插入线程中止插入。
步骤B2、如果计数布隆过滤器中没有映射结果,则查询线程在哈希表中以CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址。
步骤B3、如果找到Servlet字典树根节点的地址,则插入线程根据Servlet字典树根节点的地址继续在Servlet字典树中以CCN动态请求的前缀中Servlet名之后的部分为关键字进行查询,查询结果为跳跃链表的首地址。
步骤B4、插入线程将CCN数据包插入到跳跃链表中。
可选的,步骤B2在以CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址的过程中,如果没有找到Servlet字典树根节点的地址,则根据CCN动态请求的前缀中Servlet名之后的部分创建新的Servlet字典树,并将CCN动态请求的前缀中Servlet名之前的部分作为关键字插入到哈希表中,对应的值为所述新的Servlet字典树根节点的地址。
可选的,Web服务器缓存执行CCN数据包删除算法,包括以下步骤:
当获取单元获取到与CCN动态请求相应的CCN数据包之后,从CCN内容缓存中将CCN数据包删除。
可选的,Web服务器缓存执行CCN数据包删除算法除了上述方法,还可以是:
所有CCN数据包都写入到CCN缓存之后,触发针对Servlet产生的响应数据所对应的CCN数据包的计数器开始计数,当计数达到预设值时,删除Servlet产生的响应数据产生的所有剩余CCN数据包。
本发明提供的Web服务器缓存系统及其缓存方法,首先查询CCN内容缓存中是否存在该CCN数据包,如果CCN内容缓存中缺失不存在CCN数据包,则只需要进行一次内存访问,可以减少CCN网络中大量CCN动态请求对于CCN内容缓存造成的访问压力,从而实现快速查询以及快速缓存。
实施例一
结合Web服务器,本实施例提供了一种基于CCN Web服务器的CCN内容缓存,示意图如图5所示,CCN内容缓存包括计数布隆过滤器501、哈希表502、Servlet字典树503、跳跃链表504以及CCN内容缓存管理线程(图5中未示出)。
计数布隆过滤器501用于判断CCN数据包是否在内容缓存中,这样对于不在CCN内容缓存中的CCN数据包,只需要一次内存访问,以减少CCN网络中海量CCN请求对于CCN内容缓存的访问压力。如请求的CCN数据包在CCN内容缓存中的情况下,再继续在哈希表502中进行匹配查找,CCN内容缓存包含多个计数布隆过滤器501,的多个计数布隆过滤器501分别存储名字组件长度为1、2、3…m的CCN数据包前缀,各计数布隆过滤器501按CCN数据包的名字组件长度进行分类,以减少计数布隆过滤器501存在的误识别问题,计数布隆过滤器501进行预先判断的时间复杂度为O(1)。
哈希表502用于CCN数据包的前缀和Servlet字典树503的根地址映射,哈希表502的关键字为CCN数据包的前缀,CCN数据包的前缀散列地址对应的值为Servlet字典树503的根地址,哈希表502的时间复杂度为O(1)。
Servlet字典树503用于变长Servlet名及参数的存储和查询,Servlet字典树503的每个节点都可能存储跳跃链表504的首地址,Servlet字典树503利用字符串的公共前缀来减少查询时间,对于长度为L的字符串,其时间复杂度为O(L)。
跳跃链表504用于存储Servlet响应所产生的数据包,跳跃链表的时间复杂度为O(logkN),其中N为跳跃链表中节点的数量,K的取值为2。
CCN内容管理模块用于执行CCN数据包的时间计数、以及CCN数据包的过期管理。
实施例二
结合Web服务器,本实施例提供了一种基于CCN WEB服务器的CCN内容缓存算法,包括CCN数据包查询算法、CCN数据包获取算法、CCN数据包插入算法和CCN数据包删除算法。
1、CCN数据包查询算法的应用场景为:当CCN动态请求会向CCN内容缓存请求CCN数据包时,首先会查询CCN内容缓存中是否存在该CCN数据包,从而执行CCN数据包查询算法。
第一步:查询线程计算出CCN请求名字前缀长度(以”/”,”?”,”&”为间隔符的组件数量计算),然后将CCN请求的名字前缀发送给计数布隆过滤器501,并根据名字前缀的长度查询相应的计数布隆过滤器501,如果计数布隆过滤器501命中,则表示该CCN数据包在CCN内容缓存中存在,那么查询线程继续在哈希表502中查询,如果计数布隆过滤器501没有命中,则表示该数据包不在CCN内容缓存中,查询线程中止查询该CCN数据包。
比如当计数布隆过滤器组501收到前缀名为/bupt/edu/cn/student/score_query?name=Jane&No=20130112/=00CA的请求时,由于该名字前缀长度为8,则查询线程调用存储名字长度为8的计数布隆过滤器来查询。
第二步:如果计数布隆过滤器501命中,则查询线程以前缀名除去参数的部分为哈希表502的关键字,在哈希表502中查找该关键字所映射的地址,则查询结果为Servlet字典树503的首地址,例如,关键字为/bupt/edu/cn/student/score_query,在哈希表502中查询到的值为Servlet字典树503的地址root1。
第三步:当查询线程在哈希表502中获得CCN请求对应的Servlet字典树503的首地址时,查询线程会根据Servlet的名称和参数的名称在Servlet字典树503中查询其存储的值,该值为跳跃链表504的首地址。例如,前缀名为/bupt/edu/cn/student/score_query?name=Jane&No=20130112/=00CA的请求,其Servlet名称为score_query,其参数为name=Jane&No=20130112/=00CA,查询线程会在Servlet字典树503中对/score_query/name=Jane/No=20130112进行查询。
第四步:当查询线程在Servlet字典树503中查询到跳跃链表504的首地址后,会根据CCN请求的包序号查询相应的CCN数据包,比如前缀名为/bupt/edu/cn/student/score_query?name=Jane&No=20130112/=00CA的请求,其请求的CCN数据包的后缀为/=00CA,查询线程会在跳跃链表504中查询该序号的数据包。
2、CCN数据包获取算法的应用场景为:CCN动态请求会向CCN内容缓存中查询到所要请求的CCN数据包,如果该CCN数据包存在,则CCN内容缓存将CCN数据包返回给请求者。
根据CCN数据包查询算法从跳跃链表504中查询并获取CCN数据包,返回给请求者,然后在跳跃链表504中删除该CCN数据包。例如,当查询算法在跳跃链表504中查询到/bupt/edu/cn/student/score_query?name=Jane&No=20130112/=00CA的地址后,会将该CCN数据包返回给请求者
3、CCN数据包插入算法的应用场景为:Servlet产生的响应数据按CCN格式编码成多个CCN数据包后,插入线程会将这些CCN数据包插入到CCN内容缓存中,
第一步:插入线程计算出待插入的CCN数据包的名字前缀的长度(以”/”,”?”,”&”为间隔符的组件数量计算),然后在计数布隆过滤器501中以名字为关键字进行映射,如果计数布隆过滤器501命中,则表示该CCN数据包在CCN内容缓存中存在,那么插入线程中止插入,如果计数布隆过滤器501没有命中,则表示该CCN数据包不在CCN内容缓存中,插入线程将继续访问哈希表502。例如,插入线程向CCN内容缓存中插入前缀名为/bupt/edu/cn/student/score_query/name=Jane/No=20130112/=00CA的CCN数据包,则插入线程首先计算出前缀名为/bupt/edu/cn/student/score_query/name=Jane/No=20130112/=00CA的名字长度为8,然后在名字长度为8的计数布隆过滤器501中以该前缀为关键字进行判断,如果前缀名在布隆过滤器501中命中,则表示该CCN数据包在CCN内容缓存中存在,无需再次插入,如果前缀名在计数布隆过滤器501中没有命中,则表示该CCN数据包在CCN内容缓存中不存才,可以继续访问哈希表502进行插入。
第二步:如果所要插入的CCN数据包不在CCN内容缓存中,则插入线程首先将请求的CCN数据包的前缀字符串分割成两部分,分别为固定长度的前缀部分和可变长度的参数及包序号部分,查询线程在哈希表502中以固定长度的前缀部分为关键字是查找Servlet字典树503根节点的地址。例如,插入线程将请求的CCN数据包的名字字符串/bupt/edu/cn/student/score_query/name=Jane/No=20130112/=00CA分割为/bupt/edu/cn/student/score_query和/name=Jane/No=20130112/=00CA两部分,以第一部分字符串为关键字在哈希表502中进行匹配查找,如果查找成功,则插入线程根据查找到Servlet字典树的503根节点的地址,继续在Servlet字典树503中根据/name=Jane/No=20130112/=00CA进行查找,如果查找失败,则插入线程根据会将根据/name=Jane/No=20130112/=00CA创建Servlet字典树503,并将/bupt/edu/cn/student/score_query作为关键字插入哈希表502中,其值为新创建的Servet字典树根节点的地址。
第三步:插入线程以CCN数据包插入算法第二步产生的固定长度的前缀部分为关键字,在哈希表502中查询到Servlet字典树503的根节点的地址后,会将CCN数据包名字中可变长度的参数及包序号部分进一步分割为参数部分和包序列部分,并以参数部分为关键字在字典树503中进行查询,查询到的结果为跳跃链表504的首地址。例如,插入线程将第二步中产生/name=Jane/No=20130112/=00CA参数部分和包序列部分,进一步分割为/name=Jane/No=20130112和/=00CA,并根据/name=Jane/No=20130112在Servlet字典树503中查询跳跃链表504的首地址。
第四步:插入线程根据CCN数据包插入算法第三步产生的包序号,将CCN数据包插入到跳跃链表504中。
4、CCN数据包删除算法的应用场景为:
场景1:每个CCN WEB动态请求对应的完整响应数据都会保存在CCN Web服务器一个临时的缓存中,这些在临时缓存中保存的数据会被编码成CCN数据包,最后会被全部插入在CCN内容缓存中,这些编码生成的CCN数据包的包序号是连续的,当最后一个CCN数据包写入CCN内容缓存中后,CCN内容管理缓存触发针对该Servlet响应所对应CCN数据包的计数器,当计数器到期后删除该Servlet产生的所有剩余CCN数据包。
场景2:当CCN请求兴趣包从CCN内容缓存中获取到CCN数据包后,删除该CCN数据包。
CCN数据包删除算法在场景1中的执步骤为:当某Servlet响应产生的CCN数据包对应的计数器到期后,如果该Servlet响应所产生的CCN数据包还没有完全被获取,则CCN内容管理模块会自动删除该Servlet响应产生的所有剩余CCN数据包。例如,对于Servlet名为score_query,参数为name=Jane&No=20130112的Web请求响应数据,如果其前不带包序号的缀名为/bupt/edu/cn/student/score_query/name=Jane/No=20130112,对于最大的包序号为/=00CC,如果包序号/=00CA及之前的所有CCN数据包都已经请求,但是包序号为/==00CB,/==OOCC的CCN数据包在计数器的超期时间内一直没有被请求,当计数器超期后,这两个CCN数据包会被CCN管理线程删除。
CCN数据包删除算法在场景2中的执行步骤可以参考CCN数据包获取算法的介绍,此处不再赘述。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (9)

1.一种支持内容中心网络的Web服务器缓存系统,其特征在于,包括:查询预判断单元、匹配单元、变长度参数查询单元和数据包存储单元;
所述查询预判断单元用于当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从所述CCN内容缓存中查询是否存在与所述CCN动态请求相应的CCN数据包;
所述匹配单元用于当从所述CCN内容缓存中查询到与所述CCN动态请求相应的CCN数据包时,以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查询与所述关键字所映射的地址;
所述变长度参数查询单元用于变长Servlet名及参数的存储和查询;
所述数据包存储单元用于存储Servlet响应所产生的数据包。
2.根据权利要求1所述的Web服务器缓存系统,其特征在于,所述查询预判断单元为计数布隆过滤器,所述计数布隆过滤器用于存储CCN数据包前缀,并按照所述CCN数据包前缀的名字组件长度进行分类,所述CCN内容缓存中包括多个计数布隆过滤器。
3.根据权利要求2所述的Web服务器缓存系统,其特征在于,所述匹配单元为哈希表,所述变长度参数查询单元为Servlet字典树,所述数据包存储单元为跳跃链表;
所述哈希表用于存储所述CCN数据包前缀和Servlet字典树根地址的映射关系,所述哈希表的关键字为所述CCN数据包前缀;
所述Servlet字典树的节点用于存储所述跳跃链表的首地址。
4.一种支持内容中心网络的Web服务器缓存的处理方法,其特征在于,包括:
S10、当内容中心网络CCN动态请求向CCN内容缓存请求CCN数据包时,从所述CCN内容缓存中查询是否存在与所述CCN动态请求相应的CCN数据包;
S20、当从所述CCN内容缓存中查询到与所述CCN动态请求相应的CCN数据包时,以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查询所述关键字所映射的地址;
S30、根据变长Servlet名及参数结合查询到的关键字映射的地址进行存储和查询;
S40、存储Servlet响应所产生的数据包。
5.根据权利要求4所述的Web服务器缓存的处理方法,其特征在于,所述Web服务器缓存执行CCN数据包查询算法包括:
A1、查询线程计算所述CCN动态请求的名字前缀长度,并将所述CCN动态请求的名字前缀发送给计数布隆过滤器,并根据所述CCN动态请求的名字前缀长度查询相应的计数布隆过滤器,如果查询到,则所述CCN内容缓存中存在所述CCN数据包;
A2、所述查询线程以所述CCN动态请求的前缀中Servlet名之前的部分为关键词,在哈希表中查询与所述关键词映射的地址,则查询结果为Servlet字典树的首地址;
A3、根据Servlet的名称和参数查询Servlet字典树中存储的跳跃链表的首地址;
A4、根据所述CCN请求的包序号查询相应的CCN数据包。
6.根据权利要求5所述的Web服务器缓存的处理方法,其特征在于,所述Web服务器缓存执行CCN数据包插入算法包括:
B1、插入线程计算待插入CCN数据包的名字前缀的长度,在所述计数布隆过滤器中以待插入CCN数据包的名字为关键字进行映射,如果所述计数布隆过滤器中有映射结果,则所述插入线程中止插入;
B2、如果所述计数布隆过滤器中没有映射结果,则所述查询线程在所述哈希表中以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址;
B3、如果找到Servlet字典树根节点的地址,则所述插入线程根据所述Servlet字典树根节点的地址继续在所述Servlet字典树中以所述CCN动态请求的前缀中Servlet名之后的部分为关键字进行查询,查询结果为所述跳跃链表的首地址;
B4、所述插入线程将所述CCN数据包插入到所述跳跃链表中。
7.根据权利要求6所述的Web服务器缓存的处理方法,其特征在于,
步骤B2在以所述CCN动态请求的前缀中Servlet名之前的部分为关键词查找Servlet字典树根节点的地址的过程中,如果没有找到Servlet字典树根节点的地址,则根据所述CCN动态请求的前缀中Servlet名之后的部分创建新的Servlet字典树,并将所述CCN动态请求的前缀中Servlet名之前的部分作为关键字插入到所述哈希表中,对应的值为所述新的Servlet字典树根节点的地址。
8.根据权利要求5-7中任一项所述的Web服务器缓存的处理方法,其特征在于,所述Web服务器缓存执行CCN数据包删除算法时,包括:
当所述获取单元获取到与所述CCN动态请求相应的CCN数据包之后,从所述CCN内容缓存中将所述CCN数据包删除。
9.根据权利要求8所述的Web服务器缓存的处理方法,其特征在于,所述Web服务器缓存执行CCN数据包删除算法时,还包括:
所有CCN数据包都写入到所述CCN缓存之后,触发针对Servlet产生的响应数据所对应的CCN数据包的计数器开始计数,当计数达到预设值时,删除所述Servlet产生的响应数据产生的所有剩余CCN数据包。
CN201410561982.1A 2014-10-21 2014-10-21 支持内容中心网络的Web服务器缓存系统及处理方法 Pending CN104320451A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410561982.1A CN104320451A (zh) 2014-10-21 2014-10-21 支持内容中心网络的Web服务器缓存系统及处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410561982.1A CN104320451A (zh) 2014-10-21 2014-10-21 支持内容中心网络的Web服务器缓存系统及处理方法

Publications (1)

Publication Number Publication Date
CN104320451A true CN104320451A (zh) 2015-01-28

Family

ID=52375620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410561982.1A Pending CN104320451A (zh) 2014-10-21 2014-10-21 支持内容中心网络的Web服务器缓存系统及处理方法

Country Status (1)

Country Link
CN (1) CN104320451A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454142A (zh) * 2017-06-29 2017-12-08 北京邮电大学 一种内容路由器的非阻塞内容缓存方法及装置
CN107870925A (zh) * 2016-09-26 2018-04-03 华为技术有限公司 一种字符串过滤方法和相关装置
CN109165096A (zh) * 2018-08-20 2019-01-08 四川长虹电器股份有限公司 web集群的缓存利用系统及方法
CN109495525A (zh) * 2017-09-12 2019-03-19 华为技术有限公司 网络组件、解析内容标识的方法和计算机可读存储介质
CN113656794A (zh) * 2021-08-19 2021-11-16 建信金融科技有限责任公司 识别Android应用引用的第三方SDK的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1089564A1 (en) * 1999-09-29 2001-04-04 Actv, Inc. Enhanced video programming system and method utilizing user-profile information
CN103595637A (zh) * 2013-10-27 2014-02-19 西安电子科技大学 基于树与哈希表的内容中心网络结点处理数据方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1089564A1 (en) * 1999-09-29 2001-04-04 Actv, Inc. Enhanced video programming system and method utilizing user-profile information
CN103595637A (zh) * 2013-10-27 2014-02-19 西安电子科技大学 基于树与哈希表的内容中心网络结点处理数据方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WEI QUAN等: "Scalable Name Lookup with Adaptive Prefix Bloom Filter for Named Data Networking", 《IEEE COMMUNICATIONS LETTERS》 *
XIUQUAN QIAO等: "CCNxTomcat: An extended web server for Content-Centric Networking", 《COMPUTER NETWORKS》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870925A (zh) * 2016-09-26 2018-04-03 华为技术有限公司 一种字符串过滤方法和相关装置
CN107454142A (zh) * 2017-06-29 2017-12-08 北京邮电大学 一种内容路由器的非阻塞内容缓存方法及装置
CN107454142B (zh) * 2017-06-29 2019-06-07 北京邮电大学 一种内容路由器的非阻塞内容缓存方法及装置
CN109495525A (zh) * 2017-09-12 2019-03-19 华为技术有限公司 网络组件、解析内容标识的方法和计算机可读存储介质
CN109165096A (zh) * 2018-08-20 2019-01-08 四川长虹电器股份有限公司 web集群的缓存利用系统及方法
CN109165096B (zh) * 2018-08-20 2021-10-15 四川长虹电器股份有限公司 web集群的缓存利用系统及方法
CN113656794A (zh) * 2021-08-19 2021-11-16 建信金融科技有限责任公司 识别Android应用引用的第三方SDK的方法及装置

Similar Documents

Publication Publication Date Title
CN104320451A (zh) 支持内容中心网络的Web服务器缓存系统及处理方法
CN103428093B (zh) 一种基于名字路由前缀存储、匹配及更新方法与装置
CN110808910B (zh) 一种支持QoS的OpenFlow流表节能存储架构及其方法
US8005869B2 (en) System for defining data mappings between data structures
US6751627B2 (en) Method and apparatus to facilitate accessing data in network management protocol tables
CN103488704B (zh) 一种数据存储方法及装置
CN103595637B (zh) 基于树与哈希表的内容中心网络结点处理数据方法
Warkhede et al. Multiway range trees: scalable IP lookup with fast updates
US20170063695A1 (en) Full flow retrieval optimized packet capture
JP6997297B2 (ja) パケット分類決定木の確立
CN103873371A (zh) 一种名字路由快速匹配查找方法与装置
CN103501315A (zh) 一种面向内容网络中基于相关内容聚集的缓存方法
CN103617007B (zh) 多级智能存储实现方法和系统
US7187676B2 (en) Apparatus and method for steering a communication to an open stream
US20170366502A1 (en) IP Route Caching with Two Search Stages on Prefix Length
RU2005124131A (ru) Устройство обработки информации, способ управления содержанием, способ управления информацией содержания и компьютерная программа
CN103873602A (zh) 一种网络资源命名方法与生成装置
CN103957282B (zh) 一种域内终端用户域名解析加速系统及其方法
Xiao et al. Using parallel bloom filters for multiattribute representation on network services
US10893067B1 (en) Systems and methods for rapidly generating security ratings
CN103905538A (zh) 内容中心网络中邻居协作缓存替换方法
WO2020181820A1 (zh) 数据缓存方法、装置、计算机设备和存储介质
CN107248939B (zh) 基于hash存储器的网络流高速关联方法
CN117435912A (zh) 基于网络数据包属性值长短特征的数据包索引与检索方法
CN108566335B (zh) 一种基于NetFlow的网络拓扑生成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150128

RJ01 Rejection of invention patent application after publication