首页> 中国专利> 一种内容中心网络中传输内容冗余的消除方法

一种内容中心网络中传输内容冗余的消除方法

摘要

本发明提供了一种内容中心网络中传输内容冗余的消除方法,内容分块报文传输路径上的上游节点和下游节点CCN路由器通过内容请求报文中记录的冗余信息摘要集字段来达到缓存内容信息同步的目的,然后根据内容请求报文里的冗余信息摘要集字段或PIT表项里的下游冗余信息摘要集项的信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行编码,根据内容分块报文中的编码信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行解码,有效地消除内容中心网络中传输的冗余信息,达到整个网络范围内传输内容冗余的消除,减小内容中心网络传输流量的目的。

著录项

  • 公开/公告号CN103401795A

    专利类型发明专利

  • 公开/公告日2013-11-20

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201310339883.4

  • 发明设计人 王雄;冉孟超;

    申请日2013-08-07

  • 分类号

  • 代理机构成都行之专利代理事务所(普通合伙);

  • 代理人温利平

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2024-02-19 21:14:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-24

    未缴年费专利权终止 IPC(主分类):H04L12/801 授权公告日:20160323 终止日期:20190807 申请日:20130807

    专利权的终止

  • 2016-03-23

    授权

    授权

  • 2013-12-18

    实质审查的生效 IPC(主分类):H04L12/801 申请日:20130807

    实质审查的生效

  • 2013-11-20

    公开

    公开

说明书

技术领域

本发明属于内容中心网络技术领域,更为具体地讲,涉及一种内容中心网络中传输内容冗余的消除方法。

背景技术

当前互联网络的通信模式是以“IP地址为中心”的主机到主机的方式,这样的通信模式已经不能满足当前互联网络不断扩大的规模和迅速增长的内容传输需求,暴露出了安全性差、信息分发效率低、移动性差、扩展性差等方面的问题。为了解决当前互联网络暴露出来的问题,目前研究界的主流思路之一是建立以“命名内容为中心”的下一代互联网络。

内容中心网络(Content Centric Network,简称CCN)是命名内容网络(NameData Networking,简称NDN)项目中提出的一种下一代互联网络架构。内容中心网络的基本通信模式是以命名内容(Named Data)为中心,用户请求命名内容、内容发布者(服务器)发布和传输命名内容、CCN路由器缓存和传输命名内容。

在内容中心网络中,每个命名内容都被分成多个内容分块(Data Chunk),每个内容分块都有一个独有的具有层次化结构的名字。在内容中心网络中,通过带有内容分块名字的内容请求报文(Interest Packet)来请求一个内容分块。当收到一个内容请求报文时,内容中心网络路由器(CCN Router)会查找内容缓存表(Content Store),判断请求的内容分块是否在缓存中。如果在缓存中,相应的内容分块会返回给请求者,如果缓存中没有,那么内容中心网络路由器会查看内容请求表(Pending Interest Table,简称PIT)表,PIT表是用来记录已经向上游发送的内容请求,作用是聚合内容请求报文避免重复向上游发送相同内容请求,同时记录接收端口号用以在将来转发对应的内容分块报文。如果内容中心网络路由器发现PIT表中还没有记录过这个内容请求,那么这个内容请求就会按照转发信息库(Forwarding Information Base,简称FIB)表转发,同时在PIT表里新增一个记录这个内容请求的表项,表项中含有内容分块名称字段。当多个用户向同一个路由器请求同一个内容分块时,内容中心网络路由器只会向上游发送一个请求,PIT表里具有该内容分块名称的内容请求表项会记录下所有收到该内容请求的端口号,当收到上游返回的该内容分块报文时,内容中心网络路由器会向该PIT表项里记录的端口都转发收到的内容分块,因此,内容分块报文是按照内容请求报文的反向路径传输的。

内容中心网络路由器由3个主要部分组成:内容缓存,PIT表和FIB表。网络级的内容缓存能力是CCN架构的关键特征之一,充分利用和发挥CCN的内容缓存能力可以节约投资和提高网络的内容分发能力。

当前的CCN路由器的缓存节点都是将经过它的内容分块缓存下来,当有后续内容请求到达时,缓存节点首先搜索本地缓存中是否存在请求的内容分块,如果有则直接返回内容分块,否则将内容请求向内容分块的源端转发,这种方式可以利用缓存来减少网络中传输的内容分块数目,从而达到减小网络流量的目的。但是,在内容分块总数目大且缓存容量较小的情况下,这种方式缓存有请求的内容分块的可能性较小,对网络流量的影响不明显。

研究发现,当前互联网中传输的不同的数据包中包含大量相同的字符串,这些重复的字符串就是冗余内容。通过在传输的数据包中对这些重复的字符串进行编码即在传输过程中用较短的字符串去唯一标识并替换这些较长的重复字符串,并在必要的时候进行解码即在编码的数据包中还原出原始字符串,可以减小传输数据包的大小,避免这些冗余内容在网络中的重复传输,这样就减小了网络的传输流量,这就是传输内容冗余消除方法的思路。

对于内容中心网络,传输内容冗余消除基本原理是在内容分块传输路径的上游节点对内容分块的内容负载中的部分字符串进行编码,使得传输的内容分块长度减小在内容分块传输路径的下游节点对接收到的内容分块进行解码,从而达到减小网络流量的目的。因此,传输内容冗余消除方法的前提是上游节点和下游节点要缓存有相同的内容分块或缓存有某些具有相同字符串的内容分块。

目前关于传输内容冗余的消除方法的研究是通过对比指纹的方法来加速不同内容分块中的字符串匹配过程。网络中传输的内容分块的一个指纹(FP:fingerprint)由该内容分块包含的某个字符串的哈希值,以及该字符串在该内容分块中的偏移量两个部分组成,指纹采集方法主要采用Rabin-Hash方式。

现有的传输内容冗余的消除方法消除可以大大减少网络流量,但从上面描述的过程不难看出,内容分块传输路径上的上游缓存节点需要确切的知道下游节点上缓存的信息,即上游编码节点和下游解码节点的缓存状态要同步。然而要在整个网络范围内实现所有节点的缓存状态同步是非常困难的,现有的研究只是将内容冗余消除用到了连接两个域的路由器,用于减小域间流量。虽然也有研究尝试将其在网络范围内进行了扩展,但是缓存同步开销非常大,其实现的可能性很小。。

发明内容

本发明的目的在于克服现有技术的不足,提供一种内容中心网络中传输内容冗余的消除方法,以实现整个网络范围内传输内容冗余的消除。

为实现以上目的,本发明内容中心网络中传输内容冗余的消除方法,其特征在于,包括以下步骤:

(1)、对内容中心网络中的内容请求报文在内容分块名称字段的基础上增加冗余信息摘要集字段;冗余信息摘要集字段或为空或包括一个或多个冗余信息摘要,每个冗余信息摘要包括冗余信息对应的指纹在内容分块指纹集中的编号、下游缓存有此冗余信息的节点编号以及下游节点缓存的包含此冗余信息的内容分块名称;

对CCN路由器PIT表(Pending Interest Table,即内容请求表)中的表项在内容分块名称项的基础上增加内容分块指纹集指针、编码端口、普通端口以及下游冗余信息摘要集项;

在CCN路由器中增加指纹存储表(FP store),指纹存储表的表项包括指纹和缓存内容分块指针,缓存内容分块指针指向缓存(Content Store)中包含此指纹的内容分块;

在CCN路由器中增加内容分块指纹收集表,内容分块指纹收集表的表项包括内容分块名称和该内容分块的指纹集;

对内容中心网络中的内容分块报文在内容分块名称、内容负载字段的基础上,增加下一个内容分块的指纹集、编码信息字段;

(2)、CCN路由器对收到用户或下游CCN路由器发送的内容请求报文后进行处理:

2.1)、通过内容分块名称查找缓存中是否缓存有请求的内容分块;如果有,则查看内容请求报文中冗余信息摘要集字段是否为空,如果为空,则将内容分块名称、内容负载填入相应的字段,生成内容分块报文,将内容分块返回,结束处理,如果不为空,则对内容分块进行编码,并生成内容分块报文,将内容分块返回,结束处理;如果没有,则进行步骤2.2);

2.2)、查看PIT表里是否存有请求内容分块名称的表项,如果有,进行步骤2.3);如果没有,在PIT表里添加记录请求内容分块名称的表项,在该PIT表项的内容分块指纹集指针项里,填入指向内容分块指纹收集表中记录的请求内容分块指纹集的指针,进行步骤2.4);

2.3)、查看该PIT表项的编码端口项是否为空:

2.3.1)、如果编码端口项为空,查看内容请求报文里的冗余信息摘要集字段是否为空;如果不为空,将内容请求报文里的冗余信息摘要集字段内容复制到该PIT表项里的下游冗余信息摘要集项中,将收到内容分块请求的端口号填入该PIT表项的编码端口项中,结束处理;如果为空,将收到内容分块请求的端口号填入该PIT表项里的普通端口项中,结束处理;

2.3.2)、如果编码端口项不为空,查看该PIT表项的普通端口项是否为空;如果普通端口项为空,将收到内容分块请求的端口号填入该PIT表项里的普通端口项中,将内容请求报文里的冗余信息摘要集字段清空,按FIB(ForwardingInformation Base,即转发信息库)表转发,结束处理;如果普通端口项不为空,将收到内容请求的端口号填入PIT表项里的普通端口项中,结束处理;

2.4)、查看内容请求报文里的冗余信息摘要集字段是否为空;如果不为空,将内容请求报文里的冗余信息摘要集字段复制到新添加的PIT表项里的下游冗余信息摘要集项中,将收到内容请求的端口号填入该PIT表项的编码端口项中,进行步骤(2.5),如果为空,收到内容请求的端口号填入该PIT表项的普通端口项中,进行步骤2.6);

2.5)、通过填入的请求内容分块指纹集的指针,在内容分块指纹收集表中查找出请求内容分块的指纹集的指纹信息,查看内容请求报文里的冗余信息摘要集字段是否为请求的内容分块的每个指纹都记录了冗余信息,如果不是都记录了,进行步骤2.6);如果都记录了,此时冗余信息摘要集字段中冗余信息摘要的数目应等于请求内容分块的指纹数,进行步骤2.7);

2.6),在指纹存储表中依次查找请求的内容分块指纹集中还没有记录冗余信息摘要的指纹,对于其中的某个指纹,如果指纹存储表中缓存有该指纹,该指纹在请求内容分块指纹集中的编号为i,在本CCN路由器的节点号为n,指纹存储表中该指纹指向的所有内容分块中缓存时间最近的内容分块名为c,将此冗余信息摘要以(i,n,c)的形式加入到内容请求报文的冗余信息摘要字段里进行步骤2.7);

2.7)、按FIB表转发,结束处理;

(3)、内容发布者(服务器)收到内容请求报文后,则查看内容请求报文中冗余信息摘要集字段是否为空;如果为空,则将内容分块名称、下一个内容分块的指纹集、内容负载填入相应的字段,生成内容分块报文,将内容分块返回,如果不为空,则对内容分块进行编码,并将内容分块名称、下一个内容分块的指纹集、编码信息、内容负载填入相应的字段生成内容分块报文,将内容分块返回;

(4)、CCN路由器收到内容发布者(服务器)或上游CCN路由器发送的内容分块报文后进行处理:

4.1)、将内容分块报文中的下一内容分块指纹集字段信息提取出来;如果CCN路由器的内容分块指纹收集表里已经有记录下一内容分块名称的表项,则用下一内容分块指纹集更新该表项里的内容分块指纹集,如果内容分块指纹收集表里没有记录下一内容分块名称的表项,则在内容分块指纹收集表里添加表项记录下一内容分块名称和下一内容分块指纹集;

查看内容分块报文的编码信息字段是否为空,如果不为空,说明编过码,进行步骤4.2);如果为空,说明没有编过码,将收到的内容分块即内容负载和内容分块名称用于更新CCN路由器缓存,进行步骤4.3);

4.2)、依次查看编码信息字段中每个编码信息,如果其中的下游解码节点都不是本节点,进行步骤4.3);如果有下游解码节点是本节点,则进行解码,对所有下游解码节点是本节点的编码信息都解码完毕后,进行步骤4.3);

4.3),查看记录收到内容分块名称的PIT表项里的下游冗余信息摘要集项是否为空;

如果为空,说明没有继续编码的可能,进行步骤4.4);如果不为空,则进一步判断内容分块报文的编码信息字段是否为空:如果为空,则说明此内容分块报文已经完全解完码,首先向普通端口项里记录的端口都转发内容分块报文,删除相应的转发端口号,然后进行编码,按记录收到内容分块名称的PIT表项里记录的编码端口号转发,删除该编码端口号,删除下游冗余信息摘要集项里的内容,进行步骤4.5),如果不为空,则进行编码,按记录收到内容分块名称的PIT表项里记录的编码端口号转发,然后删除该编码端口号,删除下游冗余信息摘要集项里的内容,进行步骤4.5);

4.4)、向记录收到内容分块名称的PIT表项里的普通端口都转发收到的内容分块报文,删除相应的转发端口号,进行步骤(4.5);

4.5)、如果记录收到内容分块名称的PIT表项的编码端口项和普通端口项都为空,删除该PIT表项;

结束处理;

其中,所述的编码为:

e1、如果是步骤2.1)中所述的缓存有请求内容分块的CCN路由器或步骤(3)所述的内容发布者(服务器)收到内容请求报文后对内容分块进行编码,查看内容请求报文中的冗余信息摘要集字段,进行步骤e2;如果是步骤4.3)中间CCN路由器收到内容分块报文后,对内容分块进行编码,查看PIT表里记录该请求内容分块名称的表项中的下游冗余信息摘要集项,进行步骤e2;

e2,对于冗余信息摘要集字段或下游冗余信息摘要集里的一个冗余信息摘要,按照冗余信息对应的指纹在内容分块指纹集中的编号,在内容分块指纹收集表中记录该内容分块指纹集的表项中或在内容发布者(服务器)该内容分块指纹集中找到该指纹的具体信息,然后查找CCN路由器或内容发布者(服务器)的指纹存储表,如果指纹存储表中存储有该冗余信息对应的指纹,此时,该指纹在此内容分块指纹集中的编号为i,冗余信息中记录的下游节点CCN路由器缓存的包含此冗余信息的内容分块为c,冗余信息中的下游节点CCN路由器缓存有此冗余信息的节点编号即下游解码节点为n;

如果CCN路由器的缓存中或内容发布者(服务器)中存有内容分块c,则在该内容分块即请求内容分块和内容分块c的冗余信息对应的指纹处左右展开,按最大匹配长度去掉此内容分块中的匹配字符串,匹配区间为[a,b],a代表匹配字符串在内容负载中的起点,b代表匹配字符串在内容负载中的终点,a、b都为整数,将编码信息以(i,n,c,[a,b])的形式加入到内容分块报文的编码信息字段中;如果CCN路由器的缓存中或内容发布者(服务器)没有内容分块c,则将此内容分块中指纹所表示的字符串去掉,将编码信息以(i,n,空,空)的形式加入到内容分块报文的编码信息字段中;

当对同一个内容分块的多个冗余信息摘要进行编码时,编码的字符串区间不能有覆盖,否则无法解码;

所述的解码为:

d1)、对于内容分块报文编码信息字段中的一个编码信息,查看编码信息中的内容分块名称字段是不是为空,如果为空,进行步骤d2),如果不为空,进行步骤d3);

d2)、按照编码信息中的指纹在内容分块中的编号,在内容分块指纹收集表记录该内容分块指纹集的表项中找到该指纹,然后在指纹存储表中从该指纹指向的任意内容分块中取出该指纹代表的字符串,还原内容分块负载中该编码信息所代表的字符串,删除编码信息字段里的该编码信息,对该编码信息的解码结束;

d3)、按照编码信息中的指纹在内容分块中的编号,在内容分块指纹收集表记录该内容分块指纹集的表项中找到该指纹,在指纹存储表中查找到该指纹,从指纹存储表中该指纹指向的所有内容分块中,找出编码信息中记录的下游节点中用于解码的内容分块,然后按照编码区间,从缓存的用于解码的内容分块中取出该区间代表的字符串,还原内容分块负载中该编码信息所代表的字符串,删除编码信息字段里的该编码信息,对该编码信息的解码结束。

本发明的目的是这样实现的:

本发明内容中心网络中传输内容冗余的消除方法,内容分块报文传输路径上的上游节点和下游节点CCN路由器通过内容请求报文中记录的冗余信息摘要集字段来达到缓存内容信息同步的目的,然后根据内容请求报文里的冗余信息摘由集字段或PIT表项里的下游冗余信息摘要集项的信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行编码,根据内容分块报文中的编码信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行解码,有效地消除内容中心网络中传输的冗余信息,达到整个网络范围内传输内容冗余的消除,减小内容中心网络传输流量的目的。

附图说明

图1是本发明内容中心网络中传输内容冗余的消除方法一种具体实施方式的流程图;

图2是CCN内容请求报文格式图

图3是指纹格式图;

图4是CCN内容分块报文格式图;

图5是CCN路由器的PIT表格式图;

图6是指纹存储表格式图;

图7是内容分块指纹收集表格式图;

图8是图1所示CCN路由器对内容请求报文进行处理的流程图;

图9是图1所示内容发布者(服务器)生成内容分块报文的流程图;

图10是图1所示CCN路由器对内容分块报文进行处理的流程图;

图11是应用本发明的网络拓扑和报文传输示意图;

图12是图11中用户1和用户3发送的内容分块C1的内容请求报文格式图;

图13是图11中CCN路由器R1收到用户1发送的内容分块C1的内容请求报文后增加的PIT表项;

图14是图11中经CCN路由器R1修改后的内容分块C1的内容请求报文格式图;

图15是图11中CCN路由器R1收到用户3发送的内容分块C1的内容请求报文后修改的PIT表项;

图16是图11中CCN路由器R2收到路由器R1发送的内容分块C1的内容请求报文以及CCN路由器R3收到路由器R2发送的内容分块C1的内容请求报文后增加的PIT表项;

图17是图11中服务器发送的内容分块C1的报文格式;

图18是编码后的内容分块C1的报文格式;

图19是图11中用户2发送的内容分块C3的内容请求报文格式;

图20是图11中CCN路由器R4收到用户2发送的内容分块C3的内容请求报文后增加的PIT表项;

图21是图11中CCN路由器R4修改后内容分块C3的内容请求报文格式;

图22是图11中CCN路由器R2收到CCN路由器R4发送的内容分块C3的内容请求报文以及CCN路由器R3收到CCN路由器R2发送的内容分块C3的内容请求报文后,增加的PIT表项;

图23是图11中服务器发送的内容分块C3报文格式;

图24是编码后的内容分块C3的报文格式。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

图1是本发明内容中心网络中传输内容冗余的消除方法一种具体实施方式的流程图。

在本实施例中,如图1所示,本发明内容中心网络中传输内容冗余的消除方法包括四个步骤即:

ST1:对报文及CCN路由器存储器结构进行扩展;

ST2:CCN路由器对内容请求报文进行处理;

ST3:内容发布者(服务器)生成内容分块报文;

ST4:CCN路由器对内容分块报文进行处理。

下面对这四个步骤进行详细描述。

1、报文及CCN路由器存储器结构进行扩展

1.1、CCN内容请求报文格式

扩展后的CCN内容请求报文格式如图2所示,CCN内容请求报文中的信息包括请求内容名称、冗余信息摘要集以及其他字段。

这里首先需要说明的是,在本实施例中的内容分块的一个指纹(FP:fingerprint)包括该内容分块包含的某个字符串的哈希值以及该字符串在内容分块中的偏移量两个部分,如图3所示。其中哈希值为用前文背景技术中提到的Rabin-Hash方法计算出来的一个整数。

内容分块指纹的作用是快速判断两个内容分块是否包含相同字符串。在本实施例中,一个内容分块指纹集里的指纹是按照其所代表的字符串在内容分块中的偏移量递增的顺序排列的,按照这个递增的顺序对每个内容分块指纹集里的指纹从1到N进行编号,N等于该内容分块指纹集的指纹数目。因此,可以通过某个指纹在某内容分块指纹集里的编号来标识一个指纹,需要知道内容分块的这个指纹的具体信息时,就按照指纹编号查找内容分块指纹集里对应的指纹。

内容请求报文中的冗余信息摘要集字段的作用是内容分块报文将来要经过的下游节点缓存的内容分块中是否与内容分块报文中内容负载包含有相同的字符串。如图2所示,冗余信息摘要集可由若干个冗余信息摘要组成,一个冗余信息摘要包括冗余信息对应的指纹在内容分块指纹集中的编号,缓存有这个冗余信息的下游节点编号,下游节点缓存的包含此冗余信息的内容分块名称。其中下游节点缓存的包含此冗余信息的内容分块名称字段可为空,如果这个字段为空,就单纯的编码指纹,如果不为空,就可以在编码时在指纹处左右展开,按最长匹配长度编码。

为了避免内容请求报文记录的冗余信息摘要太多,使内容请求报文变得很大,导致传输数据量过大,在本实施例中,内容分块的每个指纹最多保存一个冗余信息摘要,所以一个内容请求报文中冗余信息摘要的数目不超过该请求内容分块的指纹数目。

1.2、CCN内容分块报文格式

在本实施例中,如图4所示,CCN内容分块报文中的信息包括内容分块名称、下一个内容分块的指纹集、编码信息和内容负载。

内容分块报文格式中的下一个内容分块指纹集的作用是记录本内容的下一个内容分块的指纹集,内容分块报文所经过的CCN路由器都会记录这个指纹集,用于更新或添加到内容分块指纹收集表。

内容分块报文格式中的编码信息字段的作用是记录内容负载中已经被编码的字符串信息,编码信息字段可能由若干个编码信息组成,一个编码信息包括编码信息包含的指纹在内容分块指纹集中的编号,对这个编码信息进行解码的下游节点编号,上游节点缓存的用于编码的内容分块名称也就是下游节点缓存的用于解码的内容分块名称以及编码区间。其中编码区间字段由两个整数组成,分别代表编码字符串在内容负载中的起点和终点。下游节点缓存的用于解码的内容分块名称字段可为空,如果这个字段为空,相应的编码区间字段也为空,就单纯的编解码指纹,如果不为空,就可以在编码时尝试在指纹处左右展开,按最长匹配长度编码,将匹配字符串在内容分块负载中的起点和终点数值填入编码区间字段。

1.3、CCN路由器的PIT表

在本实施例中,如图5所示,CCN路由器的PIT表的一个表项包括内容分块名称、内容分块指纹集指针、编码端口、普通端口以及下游冗余信息摘要集项。其中内容分块指纹集指针指向内容分块指纹收集表中记录的该内容分块的指纹集。编码端口字段最多会记录一个端口号,CCN路由器准许对将来转发给这个端口的内容分块进行编码。普通端口字段,会记录除编码端口记录的端口号以外的所有收到该内容请求的端口号。下游冗余信息摘要集记录下游节点对此内容分块的冗余信息摘要,其格式与内容请求报文里的冗余信息摘要集字段相同,记录目的是为了以后对内容分块进行编码。

1.4、CCN路由器的指纹存储表

在本实施例中,如图6所示指纹存储表(FP store)的一个表项包括指纹和缓存内容分块指针,缓存内容分块指针指向缓存(Content Store)中所有包含此指纹的内容分块,由于多个不同内容分块可能包含同一个指纹,所以每个表项里的缓存内容分块指针也可能有多个。当一个指纹的缓存内容分块指针项为空时,说明缓存中已经没有包含此指纹的内容分块了,应从指纹存储表中删除记录该指纹的表项。

1.5、CCN路由器的内容分块指纹收集表

在本实施例中,如图7所示内容分块指纹收集表的一个表项包括内容分块名和该内容分块的指纹集。每个节点都会将经过本节点的内容分块报文里的下一内容分块指纹集字段提取出来,更新或添加到路由器的内容分块指纹集表里,为以后的冗余消除处理做准备。当处理后续内容请求报文和内容分块报文时,如果需要知道某个内容分块的指纹集的具体信息,就从本地路由器的内容分块指纹收集表里查找相应内容分块的指纹集。由于内容分块的发布者可能定期会更改内容分块里的内容,这样内容分块的指纹也会相应地发生变化,因此内容分块指纹收集表里的每一个表项都会有一个有效时间,超过这个时间没有更新该表项里记录的指纹集,就从指纹收集表里删除掉该表项。

图8是图1所示CCN路由器对内容请求报文进行处理的流程图。

在本实施例中,如图8所示,步骤ST211~214对应本发明的步骤2.1),步骤ST221~222对应本发明的步骤2.2),步骤ST231~237对应本发明的步骤2.3),步骤ST241~243对应本发明的步骤2.4),步骤ST25~27对应本发明的步骤2.5)~2.7)。内容相同,在此不再赘述。需要说的是,在本实施例中,步骤2.6)中选择缓存时间最近的内容分块,原因是由于最近才缓存,所以从当前时刻开始,这个内容分块在缓存中存在的时间相对于其他内容分块可能会更长,以后将此内容分块用于编码的概率就会更大。

图9是图1所示内容发布者(服务器)生成内容分块报文的流程图。

在本实施例中,如图9所示,步骤ST31~35对应本发明的步骤3),由于内容相同,在此不再赘述。

图10是图1所示CCN路由器对内容分块报文进行处理的流程图。

在本实施例中,如图10所示,其中步骤ST411~414对应步骤4.1)、步骤ST42对应步骤4.2)、步骤ST431~434对应步骤4.3)、步骤ST44~ST45对应步骤4.4)、4.5)。内容一致,在此不再赘述。

实例

图11是应用本发明的网络拓扑和报文传输示意图。

在本实施例中,如图11所示,应用的CCN网络由6个CCN路由器、3个用户和1个服务器组成,其中,用户1和用户3向服务器请求内容分块C1,用户1的请求比用户3稍早发出,用户2向服务器请求内容分块C3。

1、用户1和用户3向服务器请求内容分块C1的内容请求报文交互及处理过程

1.1、CCN路由器R1收到用户1发送的请求内容分块C1的内容请求报文,内容请求报文格式如图12所示。

增加PIT表项,由于此时内容请求报文的冗余信息摘要集字段为空,将收到内容分块C1请求的端口号加入普通端口号中,图13所示。

发现CCN路由器R1本地缓存的内容分块C2和用户1请求的内容分块C1有相同指纹FP1,在本实施例中,指纹FP1在内容分块C1的指纹集中编号为1,因此在内容分块C1的内容请求报文的冗余信息摘要集字段中加入冗余信息摘要(1,R1,C2),然后向CCN路由器R2转发修改后的C1请求报文,修改后的内容分块C1的内容请求报文格式如图14所示。

紧接着CCN路由器R1收到用户3发送的内容分块C1的内容请求报文,内容请求报文格式如图12所示,发现已经有记录内容分块C1的PIT表项,且用户3发送的内容分块C1的内容请求报文的冗余信息摘要集字段也为空,将收到用户3发送的内容分块C1的内容请求报文请求的端口号加入PIT表项中普通端口表项中,修改后的PIT表项如图15所示。

1.2、CCN路由器R2收到内容分块C1的内容请求报文后,发现本地缓存中没有此内容分块C1的冗余信息,但是此时内容分块C1的内容请求报文的冗余信息摘要集字段不为空,增加PIT表项,将收到内容请求报文的端口号加入PIT表项中的编码端口字段,如图16所示,然后向CCN路由器R3转发内容分块C1的内容请求报文,请求报文格式如图14所示。

1.3)CCN路由器R3收到内容分块C1的内容请求报文,也发现本地缓存没有此内容分块的冗余信息,处理过程和CCN路由器R2收到内容分块C1的内容请求报文,CCN路由器R3也增加PIT表项,如图16所示,然后向服务器转发内容分块C1的内容请求报文,请求报文格式如图14所示。

1.4、服务器收到内容分块C1的内容请求报文后,这里假设服务器不对内容分块C1进行编码,向CCN路由器R3发送C1的内容分块报文,服务器发送的C1内容分块报文格式如图17所示。

1.5、CCN路由器R3收到C1内容分块报文,将C1内容分块报文中的下一内容分块指纹集填入内容分块指纹收集表,查看记录内容分块名称为C1的PIT表项里的下游冗余信息摘要集,PIT表项如图16所示,发现本地缓存正好有内容分块C2,然后从内容分块C1和内容分块C2的指纹FP1处左右展开,进行最大长度匹配,匹配区间为[begin,end],将匹配的最长字符串从内容分块C1的内容负载中去掉,在内容分块C1的报文编码指纹信息中加入信息项{(1,R1,C2,[begin,end])},然后按PIT表项记录的端口号向CCN路由器R2转发编码后的内容分块C1的报文,编码后内容分块C1报文的如图18所示,删除该PIT表项。

1.6、CCN路由器R2收到内容分块C1报文之后,查看内容分块C1报文的编码信息字段,发现已经编码,但是解码节点不是自己,并且本节点没有可用于编码的指纹和内容,按PIT表项记录的端口号向下游节点即CCN路由器R1转发内容分块C1报文,PIT表项如图16所示,删除该PIT表项。

1.7)CCN路由器R1收到内容分块C1报文之后,查看内容分块C1报文的编码信息字段,发现已经编码,且应解码节点是自己,解码,从本地缓存的内容分块C2中取出匹配区间代表的字符串,还原内容分块C1报文中编码的字符串。将解码后的内容分块C1报文按PIT表项里记录的端口号发送给用户1和用户3,PIT表项如图15所示,删除PIT表项。

1.8、用户1,用户3分别收到内容分块C1报文。

2、用户2向服务器请求内容分块C3的内容请求报文交互及处理过程

2.1、CCN路由器R4收到用户2发送的内容分块C3的内容请求报文,内容分块C3的内容请求报文格式如图19所示。

增加PIT表项,由于此时内容分块C3的内容请求报文的冗余信息摘要集字段为空,将收到请求的端口号加入普通端口号中,如图20所示。发现CCN路由器R4本地缓存的内容分块C4和用户2请求的内容分块C3有相同指纹FP2,指纹FP2在C3的指纹集中编号为2,因此,在内容分块C3的内容请求报文的冗余指纹信息摘要集字段中加入冗余信息摘要(2,R4,C4),然后向CCN路由器R2转发修改后的内容分块C3的内容请求报文,修改后的内容分块C3的内容请求报文如图21所示。

2.2、CCN路由器R2收到内容分块C3的内容请求报文后,发现本地缓存中没有此内容分块的冗余信息,但是此时内容分块C3的内容请求报文的冗余信息摘要集字段不为空,增加PIT表项,将收到请求的端口号加入PIT表项中的编码端口字段,如图22所示,然后向CCN路由器R3转发内容分块C3的内容请求报文。

2.3、CCN路由器R3收到内容分块C3的内容请求报文,也发现本地缓存中没有此内容分块C3的冗余信息,处理过程和CCN路由器R2收到内容分块C3的内容请求报文一样,CCN路由器R3也增加PIT表项,如图22所示,然后向服务器转发内容分块C3的内容请求报文。

2.4、服务器收到内容分块C3的内容请求报文后,服务器不对内容分块C3报文进行编码,向CCN路由器R3发送内容分块C3报文,服务器发送的内容分块C3报文格式如图23所示。

2.5、CCN路由器R3收到内容分块C3报文,查看记录内容分块名称为C3的PIT表项里的下游冗余信息,PIT表项如图22所示,发现指纹存储表中有指纹FP2,但是缓存中没有内容分块C4,因此只能对内容分块C3报文中指纹FP2所代表的字符串进行编码,在内容分块C3报文的编码指纹信息中加入信息项{2,R4,空,空},然后按PIT表项记录的端口号向CCN路由器R2转发编码后的内容分块C3报文,编码后的C3报文格式如图24所示,删除PIT表项。

2.6、CCN路由器R2收到内容分块C3报文之后,查看内容分块C3报文的编码信息字段,发现已经编码,但应解码节点不是自己,并且本节点没有可用于编码的指纹和内容,按PIT表项记录的端口号向下游CCN路由器R4转发内容分块C3报文,PIT表项如图22所示,删除PIT表项。

2.7、CCN路由器R4收到内容分块C3报文之后,查看内容分块C3报文的编码信息字段,发现已经编码,且应解码节点是自己,解码,从指纹存储表中找到指纹FP2,从缓存中包含有指纹FP2任意一个内容分块中取出指纹FP2代表的字符串,还原内容分块C3报文中编码的字符串。将解码后的内容分块C3报文按PIT表项记录的端口号送给用户2,,PIT表项如图20所示,删除PIT表项。

2.8、用户2收到内容分块报文C3。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号