发明名称 一种内容中心网络中传输内容冗余的消除方法
摘要 本发明提供了一种内容中心网络中传输内容冗余的消除方法,内容分块报文传输路径上的上游节点和下游节点CCN路由器通过内容请求报文中记录的冗余信息摘要集字段来达到缓存内容信息同步的目的,然后根据内容请求报文里的冗余信息摘要集字段或PIT表项里的下游冗余信息摘要集项的信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行编码,根据内容分块报文中的编码信息结合CCN路由器中增加的指纹存储表和内容分块指纹收集表来进行解码,有效地消除内容中心网络中传输的冗余信息,达到整个网络范围内传输内容冗余的消除,减小内容中心网络传输流量的目的。
申请公布号 CN103401795B 申请公布日期 2016.03.23
申请号 CN201310339883.4 申请日期 2013.08.07
申请人 电子科技大学 发明人 王雄;冉孟超
分类号 H04L12/801(2013.01)I;H04L29/08(2006.01)I 主分类号 H04L12/801(2013.01)I
代理机构 成都行之专利代理事务所(普通合伙) 51220 代理人 温利平
主权项 一种内容中心网络中传输内容冗余的消除方法,其特征在于,包括以下步骤:(1)、对内容中心网络中的内容请求报文在内容分块名称字段的基础上增加冗余信息摘要集字段;冗余信息摘要集字段或为空或包括一个或多个冗余信息摘要,每个冗余信息摘要包括冗余信息对应的指纹在内容分块指纹集中的编号、下游缓存有此冗余信息的节点编号以及下游节点缓存的包含此冗余信息的内容分块名称;对内容中心网络路由器PIT表(Pending Interest Table,内容请求表)中的表项在内容分块名称项的基础上增加内容分块指纹集指针、编码端口、普通端口以及下游冗余信息摘要集项;在内容中心网络路由器中增加指纹存储表(Fingerprint store),指纹存储表的表项包括指纹和缓存内容分块指针,缓存内容分块指针指向缓存(Content Store)中包含此指纹的内容分块;在内容中心网络路由器中增加内容分块指纹收集表,内容分块指纹收集表的表项包括内容分块名称和该内容分块的指纹集;对内容中心网络中的内容分块报文在内容分块名称、内容负载字段的基础上,增加下一个内容分块的指纹集、编码信息字段;(2)、内容中心网络路由器对收到用户或下游内容中心网络路由器发送的内容请求报文后进行处理: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(Forwarding Information Base,转发信息库)表转发,结束处理;如果普通端口项不为空,将收到内容请求的端口号填入PIT表项里的普通端口项中,结束处理;2.4)、查看内容请求报文里的冗余信息摘要集字段是否为空;如果不为空,将内容请求报文里的冗余信息摘要集字段复制到新添加的PIT表项里的下游冗余信息摘要集项中,将收到内容请求的端口号填入该PIT表项的编码端口项中,进行步骤(2.5),如果为空,收到内容请求的端口号填入该PIT表项的普通端口项中,进行步骤2.6);2.5)、通过填入的请求内容分块指纹集的指针,在内容分块指纹收集表中查找出请求内容分块的指纹集的指纹信息,查看内容请求报文里的冗余信息摘要集字段是否为请求的内容分块的每个指纹都记录了冗余信息,如果不是都记录了,进行步骤2.6);如果都记录了,此时冗余信息摘要集字段中冗余信息摘要的数目应等于请求内容分块的指纹数,进行步骤2.7);2.6),在指纹存储表中依次查找请求的内容分块指纹集中还没有记录冗余信息摘要的指纹,对于其中的某个指纹,如果指纹存储表中缓存有该指纹,该指纹在请求内容分块指纹集中的编号为i,在本内容中心网络路由器的节点号为n,指纹存储表中该指纹指向的所有内容分块中缓存时间最近的内容分块名为c,将此冗余信息摘要以(i,n,c)的形式加入到内容请求报文的冗余信息摘要字段里进行步骤2.7);2.7)、按FIB表转发,结束处理;(3)、内容发布者(服务器)收到内容请求报文后,则查看内容请求报文中冗余信息摘要集字段是否为空;如果为空,则将内容分块名称、下一个内容分块的指纹集、内容负载填入相应的字段,生成内容分块报文,将内容分块返回,如果不为空,则对内容分块进行编码,并将内容分块名称、下一个内容分块的指纹集、编码信息、内容负载填入相应的字段生成内容分块报文,将内容分块返回;(4)、内容中心网络路由器收到内容发布者(服务器)或上游内容中心网络路由器发送的内容分块报文后进行处理:4.1)、将内容分块报文中的下一内容分块指纹集字段信息提取出来;如果内容中心网络路由器的内容分块指纹收集表里已经有记录下一内容分块名称的表项,则用下一内容分块指纹集更新该表项里的内容分块指纹集,如果内容分块指纹收集表里没有记录下一内容分块名称的表项,则在内容分块指纹收集表里添加表项记录下一内容分块名称和下一内容分块指纹集;查看内容分块报文的编码信息字段是否为空,如果不为空,说明编过码,进行步骤4.2);如果为空,说明没有编过码,将收到的内容分块即内容负载和内容分块名称用于更新内容中心网络路由器缓存,进行步骤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)中所述的缓存有请求内容分块的内容中心网络路由器或步骤(3)所述的内容发布者(服务器)收到内容请求报文后对内容分块进行编码,查看内容请求报文中的冗余信息摘要集字段,进行步骤e2;如果是步骤4.3)中间内容中心网络路由器收到内容分块报文后,对内容分块进行编码,查看PIT表里记录该请求内容分块名称的表项中的下游冗余信息摘要集项,进行步骤e2;e2,对于冗余信息摘要集字段或下游冗余信息摘要集里的一个冗余信息摘要,按照冗余信息对应的指纹在内容分块指纹集中的编号,在内容分块指纹收集表中记录该内容分块指纹集的表项中或在内容发布者(服务器)该内容分块指纹集中找到该指纹的具体信息,然后查找内容中心网络路由器或内容发布者(服务器)的指纹存储表,如果指纹存储表中存储有该冗余信息对应的指纹,此时,该指纹在此内容分块指纹集中的编号为i,冗余信息中记录的下游节点内容中心网络路由器缓存的包含此冗余信息的内容分块为c,冗余信息中的下游节点内容中心网络路由器缓存有此冗余信息的节点编号即下游解码节点为n;如果内容中心网络路由器的缓存中或内容发布者(服务器)中存有内容分块c,则在该内容分块即请求内容分块和内容分块c的冗余信息对应的指纹处左右展开,按最大匹配长度去掉此内容分块中的匹配字符串,匹配区间为[a,b],a代表匹配字符串在内容负载中的起点,b代表匹配字符串在内容负载中的终点,a、b都为整数,将编码信息以(i,n,c,[a,b])的形式加入到内容分块报文的编码信息字段中;如果内容中心网络路由器的缓存中或内容发布者(服务器)没有内容分块c,则将此内容分块中指纹所表示的字符串去掉,将编码信息以(i,n,空,空)的形式加入到内容分块报文的编码信息字段中;当对同一个内容分块的多个冗余信息摘要进行编码时,编码的字符串区间不能有覆盖,否则无法解码;所述的解码为:d1)、对于内容分块报文编码信息字段中的一个编码信息,查看编码信息中的内容分块名称字段是不是为空,如果为空,进行步骤d2),如果不为空,进行步骤d3);d2)、按照编码信息中的指纹在内容分块中的编号,在内容分块指纹收集表记录该内容分块指纹集的表项中找到该指纹,然后在指纹存储表中从该指纹指向的任意内容分块中取出该指纹代表的字符串,还原内容分块负载中该编码信息所代表的字符串,删除编码信息字段里的该编码信息,对该编码信息的解码结束;d3)、按照编码信息中的指纹在内容分块中的编号,在内容分块指纹收集表记录该内容分块指纹集的表项中找到该指纹,在指纹存储表中查找到该指纹,从指纹存储表中该指纹指向的所有内容分块中,找出编码信息中记录的下游节点中用于解码的内容分块,然后按照编码区间,从缓存的用于解码的内容分块中取出该区间代表的字符串,还原内容分块负载中该编码信息所代表的字符串,删除编码信息字段里的该编码信息,对该编码信息的解码结束。
地址 611731 四川省成都市高新区(西区)西源大道2006号