路由器之间内容表同步的制作方法

文档序号:7792442阅读:285来源:国知局
路由器之间内容表同步的制作方法
【专利摘要】用于在第一和第二内容路由器之间交换信息的系统及方法的实施例,使内容路由器能够通过交换最少的信息来同步它们的缓存。在一实施例中,该方法包括:使用与所述第二内容路由器共用的联合哈希函数建立所述第一内容路由器的缓存的内容的哈希;以分布式信源编码对所述第一内容路由器缓存的内容的哈希进行编码;把编码后的哈希发送给所述第二内容路由器。
【专利说明】路由器之间内容表同步

【技术领域】
[0001]本发明涉及路由器之间交换转发表信息的系统及方法。
技术背景
[0002]信息中心网络(ICNs)使内容成了组网架构的细腰。信息中心网络基于内容进行路由,而不是如互联网协议(IP)网络般基于节点地址。而且,这些ICN架构允许路由器把内容透明地存储在附属于该路由器的存储器中。
[0003]基于内容的路由以及由ICN实现的存储内容可能位置的增长,使得ICN中的路由面临更多的挑战。现在一个典型的路由器路由表中包含约400,000条前缀项,而内容路由使这个数量增长了好几个数量级。因此,这就需要新的工具及协议,以便以高效的、可扩展的方式进行路由信息的交换。


【发明内容】

[0004]根据一实施例,第一和第二内容路由器之间交换信息的方法包括:使用与所述第二内容路由器共用的联合哈希函数建立所述第一内容路由器缓存内容的哈希;以分布式信源编码对所述第一内容路由器缓存内容的哈希进行编码;把编码后的哈希发送给所述第二内容路由器。
[0005]根据另一实施例,用于在第一和第二内容路由器之间交换信息的网络组件包括:处理器及存储由所述处理器执行的程序的计算机可读存储介质,其中所述程序包括用于执行以下操作的指令:使用与所述第二内容路由器共用的联合哈希函数建立所述第一内容路由器缓存内容的哈希,以分布式信源编码对所述第一内容路由器缓存内容的哈希进行编码,把编码后的哈希发送给所述第二内容路由器。
[0006]根据另一实施例,一种内容路由器之间交换信息的方法包括:创建第一内容路由器缓存的表项的哈希;以分布式信源编码对所述表项的哈希进行编码;把编码后的哈希发送给第二内容路由器,其中所述编码后的哈希包括同时属于所述第一内容路由器及第二内容路由器的元素的陪集,以使所述第二内容路由器可以从所述编码后哈希中恢复所述陪集中不包含在所述第二内容路由器的缓存中的元素。

【专利附图】

【附图说明】
[0007]为更好的理解本发明及其优点,以下结合附图进行描述,其中,
[0008]图1为两个内容路由器之间交换信息的系统实施例的示意图;
[0009]图2是用于哈希及映射一个内容路由器的内存的表项以与其他内容路由器交换信息的系统实施例的示意图;
[0010]图3是内容路由器之间交换缓存信息的方法实施例的流程图;
[0011]图4是用于实现在此公开的设备及方法的网络单元的框图。

【具体实施方式】
[0012]以下将详细说明目前优选的实施例的制作和使用。然而,应当理解的是,本发明提供诸多可以在广泛的具体环境中实现的可应用的创新理念。所论述的具体实施仅仅是为了说明制作和使用本发明的具体方式,而不对发明范围进行限制。
[0013]以下公开了在ICN网络及其他类似网络中路由器之间交换缓存信息的系统及方法。例如,在一实施例中,该网络是一个具有层级结构的内容分发网络(CDN),其中,对低一级缓存的内容的请求如果在本地得不到相应的内容,会向上传送。在其他的实施例中,该网络可能是面向内容的网络(CON)或者是内容中心网络。因此,尽管主要是结合ICN进行说明,本领域的普通技术人员可以意识到所公开的系统及方法并不仅限于此。
[0014]在一实施例中,公开了相邻路由器之间交换信息的系统及方法。由于内容表中内容的数量可能变得很大,找到一种有效的交换缓存信息及跨表格更新内容的机制变得更为重要。在一实施例中,所述公开的系统及方法考虑到了双方的内容是紧密相关的。事实上,通过相邻缓存的流量可能会同时通过两个内容路由器,或者,如果它只经过两个中的一个,内容本身显示出一些相关性:一个缓存中的热点内容显示出与另一个缓存中的热点内容的相似性。
[0015]在一实施例中,联合哈希与分布式信源编码被用来在两个内容路由器之间交换内容。其他在两个对象之间交换与两者间差异成正比的数据的方法经常是概率性的。
[0016]在一实施例中,相邻内容路由器之间交换缓存信息的方法隔某个固定间隔对内容进行检查,其中,该间隔是由内容中的变化量触发的,并使用分布式信源编码来高效地分享内容更新。在一实施例中,假定两个相邻的内容路由器需要交换一个很大的内容表以通告各自的路由信息。该公开的系统及方法提供一种只需在两路由器之间交换实质上最少量的数据就能使它们完全重构路由表的内容的机制。
[0017]虽然交换两个内容路由器之间的缓存内容的简单方法就是交换整个内容表,但是由于这两个路由器相邻,它们获得的网络信息是相似的,而且它们之间共享的很多信息都是冗余的。
[0018]压缩该内容表是可能的。然而,内容表项中有三类内容需要考虑:1)两个表格之间共享的内容,这些内容是冗余的,并可以使用某个压缩技术把这些内容压缩掉;2)其中一个内容路由器可以感知的、但路由表中没有对应表项的内容;3)其中一个内容路由器完全不知道的内容。
[0019]以下举例说明此三类内容。在一个示例中,有些内容信息通过内容路由协议传送到了两个路由器。此内容属于类别I)。两个内容路由器都可以感知到该内容。
[0020]在类别2)中,有些内容信息是由通过网络的流量产生的。比如,在把内容转发出去之前,内容路由器可能把对象缓存在它的内容存储器中。如果该内容是由与之共享内容表的内容路由器接收的,很有可能该内容会包括在该内容路由器的路由表中。这不是100%的,因为两个路由器的缓存策略会不同,而且此信息可能会超时。但是两个路由器都能获知该信息是否还在。这属于类别2)。再者,这可以用来压缩交换信息,因为分布式信源编码有边信息的问题。
[0021]在类别3)中,另一方面,还对应于经过一个路由器并被该路由器缓存、但无法到达其相邻路由器的内容(比如,由于其中一个路由器是目的端,或者由于路由器从第三和第四路由器接收内容并将其发送给第三和第四路由器)。此信息必须被传送,而且,除了把文字符串压缩在这些表项中,没有其他交换此信息的方法。
[0022]由于分布式信源编码或斯理篇-伍夫方式不能直接应用于第3种类别,在一实施例中,一种方法控制表格中的变化量,并用来高效地交换内容路由。例如,假设两个内容表都在时间t被同步,即两个内容路由器都已经交换了它们想要交换的路由信息,并且所有的内容表项都属于类别I)。同步之后,系统进行演变直到两个触发器中最早的一个发生。触发器是:a)内容路由协议的自然周期交换机制;及《 —个路由表中的变化量(删除或添加)达到预设目标d,其中d是会触发更新的变化量。当此停止时间发生在时间tl时,新的交换机制被触发。这就意味着内容表之间的不同项在时间t和tl不能超过d项。在一实施例中,公开了一种以紧凑方式交换路由表的机制,该机制可以恢复多达d个不同项。
[0023]图1为两个内容路由器之间交互信息的系统100实施例的示意图。在一实施例中,系统100包括:两个内容路由器102、104,两个编码器106、108及两个解码器110、112。路由器102、104有相关联的业务流。内容路由器102、104用于哈希其内容转发表缓存的内容,分别使用编码器106、108对哈希进行压缩,及把编码的数据发送给另一个内容路由器102、104。另一个内容路由器102、104可以分别使用解码器110、112对编码后的数据进行解码,并从另一个内容路由器102、104请求缺失的或不同的缓存元素。
[0024]举例来说,两个内容路由器Rl和R2尝试协调它们的内容路由表。设定一个向量U,该向量对应Rl和R2可知的所有可能表项,即Rl和R2持有的表项的并集。一个表项是内容的名称及该内容的某个度量值,从而每个路由器可以决定从哪条路路由至该内容(即,对于R1,如果R2持有一个Rl所不知道的表项或一个更低度量值的表项,则R2成为Rl的内容转发表中该表项的下一跳)。可以假设,内容指针和度量值的连结形成一个标签集,U的内容是从该标签集中抽取的。Rl持有的表项的向量用Ul表示,R2持有的表项的向量用U2表不。
[0025]U1、U2的基数用nl、n2表示,U的基数用η表示,n-nl (或η-n2)的差值用dl (或d2)表示,其中,η定义为u的基数,也就是列表的大小,该列表包括任何一个路由器可知的所有项,η可以看成是向量U的长度。假设d〈dl+d2及d〈〈n,例如,d是一个小于η的数量级。
[0026]从U到{1,2,…m}中定义一个统一哈希h,其中m是一个比η更大的数,η将在稍后具体说明,u是列表U中的一项。以以下方式创建一个维度m的向量Xi(i = 1,2),其中,
[0027]如果U」中存在u使h (u) = k,则X_i (k) = I ;
[0028]否则,X_i(k)=0。
[0029]由于Ul和U2仅相差少于d个点,向量Xl和X2是两个紧密相关的序列。只要使冲突的可能性保持为低,Xl与X2就可以以快速的方式交换,以识别Ul及U2的差异。参见图2,图2是用于哈希及映射一个内容路由器的内存的表项以与其他内容路由器交换信息的系统200实施例的示意图。系统200包括:在内容路由器缓存中多个表项202,对所述表项应用哈希函数h后产生的哈希值206,及用来减少哈希中的冲突的映射204.
[0030]为了以简明的方式交换Xl及X2,一实施例使用分布式信源编码。由于斯理篇-伍夫,关键结果是Rl只需要发送H(XI |X2)比特给R2,R2就可以恢复Xl(其中H(X_1|X_2)是Xl以X2为条件的熵)。通过采用诸如S.S.普拉丹和K.朗姆钱德兰在“采用校验子的分布式信源编码(DSCTS):设计与构建”,158-167页,1999年3月,中描述的方法,其全部内容通过引用结合在本申请中,这已经在实践中实现。在没有冲突的情况下,Xl与X2之间的汉明间距小于d。Rl只需要把Xl所属的陪集发给R2,R2就可以从此陪集中取回此陪集中与X2最接近的元素(其中,陪集是空间的分区,每个陪集中的元素间的汉明间距大于d)。需要关注的是,两个相同长度的字符串之间的汉明间距是相应符号不相同的位置的数量。
[0031]恢复Xl后,R2可以识别所有的差异并从Ul中请求它没有的dl值的实际表项。同样地,Rl从R2请求表项。
[0032]再次参考图1,缓存更新协议包括两个阶段:在第一个阶段,创建哈希,使用分布式信源编码对它进行压缩,在Rl和R2之间交换陪集信息,然后进行解码,并请求获取缺失的或不同的元素。为了解码,需要对Xi到Ui的映射进行转化,其中Ui是在创建Xi时储存的。
[0033]在一实施例中,对m进行了进一步的描述,并且解决了哈希h中的冲突问题。以下对m进行了论述并对冲突处理机制进行说明。当Rl创建Xl时,它经过Ul,并把每个表项哈希到Xl的坐标,然后把Xl的坐标翻转到I。这与有单个哈希函数的布隆过滤器相似,B.H.Bloom,“有允许误差的哈希编码中的空间/时间平衡”,Commun.ACM,卷13,422-426页,1970年7月,其全部内容通过引用结合在本申请中。不过,可以进行以下修改:如果在Xl中的表项已经等于I,则翻转Xl中的下一个表项(取模m)。
[0034]由于Rl保持一个把Ul中的每个u与其键值h (U)相关联的结构,当h (U)已经被Ul中的U’要求,使得h(u) =h(u,)时,h (u)+1被保持在此结构中。映射到相同h(u)的两个表项u及u’之间也有链路。如果R2请求Xl中对应h (U)或h (U)的表项中的一个,则u和u’都应该被返回。然后R2分析出哪个(如果有的话)是它所拥有的,哪个不是它所拥有的。如果无法获取到h(u)+l,则Xl的下一个零元素被翻转。由于Xl是稀少的,所以不会存在触发一连串没有尽头的事件的风险。如果多于两个值互相冲突,则所有互相冲突的值被连接在一起,并在接收到R2对其中任意值的请求时一起返回。如果稍后在填充Xl时,另一个值V哈希到放置u的位置,则V与u冲撞,Rl中的表项与键值之间的映射被更新。
[0035]在Xl中的下一个空坐标上输入一个值很简单,这是因为在一实施例中,m被选择是因为它比η大得多,从而减少冲突的可能性并保证Xl是稀少的。比如,在一实施例中,m是一个比η大的数量级。
[0036]采用此机制,Rl和R2各自使用的哈希就没有冲突:Ui的每一个值在Xi中都恰好有一个翻转的表项。
[0037]唯一不能被解决的冲突如下:假设U1\U2中有某个元素U,在U2\U1中有V,而且它们两者冲突:h(u) =h(v)。这是因为它在Ul与U2之间的集差异中,并且不为Rl和R2所知。不过,这种冲突的几率是很低的:m足够大,可以减少冲突的几率,而且Ul与U2之间的集差异也有限,因为假设d〈〈n,例如,d是一个小于η的数量级。因此,冲突的可能性就是本来很低的哈希冲突可能性乘以互相冲突的元素同时属于集差异的可能性的乘积。
[0038]图3是内容路由器之间交换缓存信息的方法300实施例的流程图。所述方法300从的框302开始,在框302中,内容路由器为其内容表创建缓存表项的哈希。在框304中,所述内容路由器使用,例如分布式信源编码,对哈希进行压缩。在框306中,所述内容路由器与相邻内容路由器交换陪集信息。在框308中,所述内容路由器对从所述相邻内容路由器接收的陪集信息进行解码,并且在框310中,确定缺失的和/或不同的元素。在框312中,所述内容路由器从所述相邻路由器中请求所述缺失的和/或不同的元素。在框314中,所述内容路由器从所述相邻内容路由器接收所请求的元素并相应地更新其内容表的缓存。在框316中,所述内容路由器接收所述相邻内容路由器发送的获取所述相邻内容路由器的缓存中缺失的或与所述相邻内容路由器的缓存中的元素不同的元素的请求。在框318中,所述内容路由器向所述相邻内容路由器提供所述相邻内容路由器所请求的元素,至此,所述方法300结束。
[0039]图4是用于实现在此公开的设备及方法的网络单元的框图。具体的设备可以利用所有所示的组件,也可以只利用这些组件的子集;而且集成的程度根据设备的不同而不同。另外,一个设备可以包含一个组件的多个实例,比如,多个处理单兀,处理器,内存器,发送器,接收器,等等。比如,公开的特性/方法可以由硬件,固件,和/或安装的运行在硬件上的软件。网络单元400可以是任何通过网络传输帧的设备,比如交换机,路由器,网桥,服务器,等。在一实施例中,所述网络单元400包括一个或多个入端口 414或耦合到接收器(Rx) 410的单元,用来接收来自其他网络组件的信号和帧/数据。该网络装置/组件400包括:内容感知单元402,用于确定向哪个网络组件发送内容。所述内容感知单元402可以通过硬件,软件或硬件及软件来实现。所述网络单元400还包括一个或多个出端口 416或耦合到发送器(Tx)412的单元,用来向其他网络组件发送信号和帧/数据。所述接收器410,内容感知单元402及发送器412基于硬件,软件或硬件及软件,还可以用来实现所公开的方法中的至少一些方法。
[0040]所述内容感知单元402还包括可编程内容转发平面框408及一个或多个耦合到所述可编程内容转发平面框的存储器框418。所述可编程内容转发平面框408用于实现内容转发及处理功能,比如在应用层,或者叫层3,其中,内容转发可能基于内容名称,或前缀,或其他将该内容映射到网络流量的内容相关的信息。这种映射可以在所述内容感知单元402或所述网络单元400的内容表中进行维护。所述可编程内容转发平面框408用于解析用户对内容的请求并相应地,比如,基于元数据和/或内容名称,从网络或其他内容路由器获取内容,并且可以把内容,比如,临时性的,存储于所述存储器框418中。然后,所述可编程内容转发平面框408可以把缓存的内容转发给用户。所述可编程内容转发平面框408可以通过软件,硬件,或软件及硬件来实现,并且可以运行于IP层,或者叫层2,之上。所述存储器框418包括缓存404,用来临时存储内容,比如用户所请求的内容。另外,所述存储器框418包括一个长期存储器406,用来相对长期地存储内容,比如发布者提交的内容。比如,所述缓存404及所述长期存储器406可以包括动态随机存取存储器(DRAMs),固态硬盘(SSDs),硬盘,或上述任意组合。
[0041]虽然本说明已经进行了详细的描述,应该理解的是,可以进行各种修改,替换,变更,而不脱离所附权利要求所定义的本公开的精神及范围。而且,本公开的范围并不仅限于本公开描述的特定实施例。本领域的普通技术人员可以轻易地从本公开获悉到目前存在的或将被开发的流程,机器,产品,组成,方式,方法,或步骤可以实现与本公开描述的相应实施例本质上相同的功能或得到本质上相同的结果。相应地,所附权利要求范围包括这些流程,机器,产品,组成,方式,方法,及步骤。
【权利要求】
1.一种在第一和第二内容路由器之间交换信息的方法,包括: 使用与所述第二内容路由器共用的联合哈希函数建立所述第一内容路由器缓存内容的哈希; 以分布式信源编码对所述第一内容路由器缓存内容的哈希进行编码; 把编码后的哈希发送给所述第二内容路由器。
2.根据权利要求1所述的方法,进一步包括: 从所述第二内容路由器接收第二编码后的哈希; 确定所述第一内容路由器的缓存与所述第二内容路由器的缓存的区别; 向所述第二内容路由器请求所述第一内容路由器的缓存中缺失的元素或与所述第一内容路由器的缓存中的表项不同的元素。
3.根据权利要求2所述的方法,其特征在于,进一步包括:从所述第二内容路由器接收所请求的元素。
4.根据权利要求2所述的方法,其特征在于,所述第二编码后的哈希包括向量X2的陪集,其中X2(k)是k= I至m时,维度m的向量;如果U2中存在U,使得h (u) =k,则X2(k)=I ;否则,X2(k) = O ;其中h(u)是所述第二内容路由器缓存中经过哈希处理的表项u的联合哈希函数,U2是所述第二内容路由器缓存中经过哈希处理的表项的向量。
5.根据权利要求1所述的方法,其特征在于,进一步包括:从所述第二内容路由器接收对缺失的或不同的缓存元素的请求,并向所述第二内容路由器提供所请求的缺失的或不同的缓存元素。
6.根据权利要求1所述的方法,其特征在于,所述编码后的哈希包括向量Xl的陪集,其中Xl (k)是k = I至m时,维度m的向量;如果Ul中存在u,使得h(u) = k,则Xl (k)=I;否则,Xl (k) =0;其中1!(11)是所述第一内容路由器缓存中经过哈希处理的表项u的联合哈希函数,Ul是所述第一内容路由器缓存中经过哈希处理的表项的向量。
7.根据权利要求6所述的方法,其特征在于,进一步包括:维护Ul中的表项和与之关联的键值h (U)的映射。
8.根据权利要求7所述的方法,其特征在于,进一步包括:确定映射中h(u)对应的多个表项中哪个表项不包含在所述第一内容路由器中,并请求所述多个表项中所述第一内容路由器不包含的表项。
9.根据权利要求6所述的方法,其特征在于,m被选择是因为m比η大得多,其中η是所述第一内容路由器缓存中的表项的数量。
10.一种网络组件,用于在第一和第二内容路由器之间交换信息,其特征在于,包括: 处理器,及 存储由所述处理器执行的程序的计算机可读存储介质,其中所述程序包括用于执行以下操作的指令: 使用与所述第二内容路由器共用的联合哈希函数建立所述第一内容路由器缓存内容的哈希; 以分布式信源编码对所述第一内容路由器缓存内容的哈希进行编码; 把编码后的哈希发送给所述第二内容路由器。
11.根据权利要求10所述的网络组件,其特征在于,所述程序进一步包括用于执行以下操作的指令: 从所述第二内容路由器接收第二编码后的哈希;确定所述第一内容路由器的缓存与所处第二内容路由器的缓存的不同; 向所述第二内容路由器请求获取所述第一内容路由器缓存中缺失的元素或与所述第一内容路由器缓存中的表项不同的元素。
12.根据权利要求11所述的网络组件,其特征在于,所述程序进一步包括用于从所述第二内容路由器接收所请求的元素的指令。
13.根据权利要求11所述的网络组件,其特征在于,所述第二编码后的哈希包括向量X2的陪集,其中X2(k)是k = I至m时,维度m的向量;如果U2中存在U,使得h (u) = k,则X2(k) = I ;否则,X2(k) = O ;其中h(u)是所述第二内容路由器缓存中经过哈希处理的表项u的联合哈希函数,U2是所述第二内容路由器缓存中经过哈希处理的表项的向量。
14.根据权利要求10的所述网络组件,其特征在于,所述程序进一步包括用于从所述第二内容路由器接收对缺失的或不同的缓存元素的请求,并向所述第二内容路由器提供所请求的缺失的或不同的缓存元素的指令。
15.根据权利要求10所述的网络组件,其特征在于,所述编码后的哈希包括向量Xl的陪集,其中Xl (k)是k = I至m时,维度m的向量;如果Ul中存在U,使得h (u) = k,贝丨J Xl (k)=I ;否则,XKk) = O ;其中h(u)是所述第一内容路由器缓存中经过哈希处理的表项u的联合哈希函数,Ul是所述第一内容路由器缓存中经过哈希处理的表项的向量。
16.根据权利要求15所述的网络组件,其特征在于,所述程序进一步包括用于维护Ul中的表项和与之关联的键值h (U)的映射的指令。
17.根据权利要求16所述的网络组件,其特征在于,所述程序进一步包括用于确定映射中h(u)对应的多个表项中哪个不包含在所述第一内容路由器中,并请求所述多个表项中所述第一内容路由器不包含的表项的指令。
18.根据权利要求15所述的网络组件,其特征在于,m被选择是因为m比η大得多,其中η是所述第一内容路由器缓存中的表项的数量。
19.一种内容路由器之间交换信息的方法,其特征在于,包括: 建立第一内容路由器中缓存表项的哈希; 以分布式信源编码对所述表项的哈希进行编码; 将所述编码后的哈希发送给第二内容路由器,其中所述编码后的哈希包括同时属于所述第一内容路由器及所述第二内容路由器的元素的陪集,使得所述第二内容路由器可以从所述编码后的哈希中恢复所述陪集中不包含在所述第二内容路由器缓存中的元素。
20.根据权利要求19所述的方法,其特征在于,进一步包括: 从所述第二内容路由器接收第二编码后哈希; 确定包含在所述第二内容路由器的缓存、但不包含在所述第一内容路由器的缓存中的缺失元素; 向所述第二内容路由器请求所述缺失元素。
【文档编号】H04L12/28GK104380664SQ201380019605
【公开日】2015年2月25日 申请日期:2013年4月12日 优先权日:2012年4月13日
【发明者】塞德里克·韦斯特法尔 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1