一种内容路由器的非阻塞内容缓存方法及装置与流程

文档序号:13142160阅读:141来源:国知局
本申请涉及高性能路由器设计
技术领域
:,特别是涉及一种内容路由器的非阻塞内容缓存方法及装置。
背景技术
::ccn(content-centricnetworking,内容中心网络)网络是由美国帕洛阿尔托研究中心(paloaltoresearchcenter,简称parc)提出的。不同于传统的基于ip、以主机为主的网络结构,ccn网络注重内容本身,并且能通过它直接进行寻址和路由。在ccn网络中,客户端端主机的通信凭据将是基于内容的命名而不再是ip地址,内容路由器作为网络的基础设施,用来实现对内容请求消息和内容返回消息的高速转发。由于内容路由器的具有网内可缓存内容的特点,所以可以便捷地获取被缓存的内容,不必每次从cnn路由器之外的上游路由器获取内容;所述特点使得内容请求能直接被网内的路由器响应而不再只是端主机,减小了网络拥塞,并且提高了内容分发效率。虽然这种创新的架构能够获得不错的数据分发效率,但它颠覆了经典的ip网络中的端到端原则,给予路由器的数据平面一定的存储能力,这也为其带来了一些性能负担,使得ccn网络的数据分组的转发相比于传统的ip网络变得非常复杂。因此,提高数据平面的性能在大型的ccn网络部署中起到了至关重要的作用。在一个ccn内容路由器中,主要包括三个组成部分:转发信息表fib(forwardinginformationbase)、待定请求表pit(pendinginteresttable)和内容存储器cs(contentstore),如图1所示。这三个组成部分将ccn路由器在处理数据分组时划分成了三个流水线。网络中主要有两种数据分组的类型:兴趣包(interest)和数据包(data)。用户端发送兴趣包到网络中请求内容,而返回的内容将会被封装成数据包的形式带回。内容会被存储在网络中的ccn路由器上,这样,后续相同的请求就不必转发到服务端,而直接在路由节点上就能被处理。参见图1,简介传统ccn内容路由器对数据分组的处理流程为:当兴趣包到达ccn路由器时,首先查找cs是否有其所请求的内容,如果有,则路由器会读取相应内容并将其封装成数据包直接返回,否则,兴趣包会进入pit查找是否存在相同的请求内容名字的前缀。如果存在,说明该内容之前已经向上游路由器发起了请求,就不需要再次向上游转发,而只需在pit中新增该兴趣包请求的入端口的接口信息记录,否则除了在pit中添加相关记录外,还需将兴趣包通过fib向上游继续转发。当数据包从上游路由器返回到当前路由器时,路由器首先会查找pit的记录,如果能找到之前兴趣包请求记下的入端口信息,就将数据包从这些接口转发出去到下游路由器,同时还会在cs依据一定的缓存策略进行内容的缓存操作,如果pit中找不到相应记录,则直接丢弃该数据包。由此可知,数据包总是采取与对应的兴趣包相反的路径。由上可知,传统的ccn的数据包主要存在于cs中,几乎所有兴趣包流量都将首先在cs中进行解析处理,而部分流量才会依次转发到pit、fib中处理,另外,cs的处理速度比pit、fib慢,因此势必造成cs频繁拥塞。技术实现要素:本申请实施例的目的在于提供一种内容路由器的非阻塞内容缓存方法及装置,解决cs频繁拥塞的问题。具体技术方案如下:一种内容路由器的非阻塞内容缓存方法,所述方法包括:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在;若存在,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不存在,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。进一步地,在根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中之后,所述方法还包括:利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中。进一步地,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容,包括:根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。进一步地,在根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容之前,还包括:判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,执行根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容的步骤;若不小于已设阈值,执行判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字的步骤。进一步地,利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中,包括:根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。进一步地,在解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中之后,还包括:判断所述pit中是否存在所述第二目标数据包的关键字;若为是,执行根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中的步骤;若为否,将所述第二目标数据包丢弃。一种内容路由器的非阻塞内容缓存方法,所述方法包括:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不小于已设阈值,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。进一步地,在根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中之后,所述方法还包括:利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中。进一步地,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容,包括:根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。进一步地,利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中,包括:根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。进一步地,在解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中之后,还包括:判断所述pit中是否存在所述第二目标数据包的关键字;若为是,执行根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中的步骤;若为否,将所述第二目标数据包丢弃。一种内容路由器的非阻塞内容缓存装置,所述装置包括:兴趣包请求解析模块,用于解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;布隆过滤器模块,用于利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在,若为是,触发内容搜索模块,若为否,触发第一判断模块;所述内容搜索模块,用于根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;第一判断模块,用于判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字,若为不存在,触发上游路由器模块,若为存在,触发映射关系判断模块;所述上游路由器模块,用于在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;所述映射关系记录判断模块,用于判断在pit中是否存在所述映射关系记录,若为不存在,触发第一pit模块;所述第一pit模块,用于在pit中增加所述映射关系记录;数据包接收模块,用于接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析模块,用于解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;第二pit模块,用于根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。一种内容路由器的非阻塞内容缓存装置,所述装置包括:兴趣包请求解析模块,用于解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;i/o等待队列判断模块,用于判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,触发内容搜索模块,若不小于已设阈值,触发第一判断模块;所述内容搜索模块,用于根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;所述第一判断模块,用于判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,触发上游路由器模块,若为存在,触发映射关系判断模块;所述上游路由器模块,用于在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;所述映射关系记录判断模块,用于判断在pit中是否存在所述映射关系记录;若不存在,触发第一pit模块;所述第一pit模块,用于在pit中增加所述映射关系记录;数据包接收模块,用于接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析模块,用于解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;第二pit模块,用于根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。本申请实施例提供的一种内容路由器的非阻塞内容缓存方法及装置,可以通过解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在;若为是,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器;该方法解决了cs频繁拥塞的问题,从而充分利用了pit、fib,降低了流量的排队时延,提高了内容路由器的整体性能。当然,实施本申请的任一产品或方法必不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为传统ccn内容路由器对数据分组处理的流程图;图2为本申请文件实施例提供的第一种内容路由器的非阻塞内容缓存方法流程图;图3为ccn路由器包处理数学模型示意图;图4为本申请文件实施例提供的第二种内容路由器的非阻塞内容缓存方法流程图;图5为本申请文件实施例提供的第三种内容路由器的非阻塞内容缓存方法流程图;图6为本申请文件实施例提供的第一种内容路由器的非阻塞内容缓存装置的结构示意图;图7为本申请文件实施例提供的第二种内容路由器的非阻塞内容缓存装置的结构示意图图8为本申请文件实施例提供的一种电子设备示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图2为本申请文件实施例提供的第一种内容路由器的非阻塞内容缓存方法的流程图,所述方法包括:s101,解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;其中,上述解析接收的第一目标兴趣包请求的包头可以通过接收第一目标兴趣包请求,利用状态机的包头解析模块(packetparser)解析第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字;上述状态机的包头解析模块是一个用于解析接收第一目标兴趣包请求的模块;上述兴趣包为一种数据包类型,拥有一个内容名称,同时该名称被加密签名。兴趣包也可以理解为在ccn网络中,用户通过发送兴趣包告诉网络自己的需求,网络根据这些信息来找寻用户所需要的内容包。用户请求数据时只需要注明数据名称,而不需要声明去哪获取相关资源;上述包头为数据分组的首部(packetheader),包括内容的名字前缀、偏移量;上述偏移量是指从指定位置向前或向后移动的字节数,偏移量是用来从文件中找到所用数据时用的。s102,利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在,若为否,执行s104,若为是,执行s103;其中,上述布隆过滤器(bloomfilter)是一个很长的二进制向量和一系列随机映射函数,布隆过滤器用于检索一个元素是否在一个集合中,若为是,该元素不一定在集合中;若为否,该元素一定不在集合中;也就是说,本申请文件中的布隆过滤器用于判断所述第一目标兴趣包请求的关键字对应的内容是否存在cs(contentstore)中;布隆过滤器的优点是空间效率和查询时间都远远超过一般的算法。值得一提的是,虽然布隆过滤器的查询结果不能得到内容的存放地址,但其插入和查询时间都是常数,基于此,cs可以更快地判断出请求的内容是否存在于本路由器上。另外,相比于其他索引数据结构,例如散列表和二叉树,布隆过滤器的内存占用更小。所以,在方案中设计数据分组先通过布隆过滤器的查询,如果判断结果在集合中,再进行内容存放地址的查找和异步的读取内容操作;如果不在,cs就能更快地将请求发往pit并继续后续分组的处理。布隆过滤器(bloomfilter)的设置,是为了弥补传统ccn路由器的性能存在容易拥堵的缺陷,为了更加清楚的描述本申请文件发明的目的,现具体推理如下:如图1所示,根据传统ccn内容路由器对数据分组的处理流程可知,将ccn路由器抽象为两个方向的队列流水线处理,每个方向都由若干个队列和服务台组成,如图3所示。包离开每个队列的时候能够以一定的转发概率选择接下来去哪儿,包能够被队列阻塞而排队等待,也能因为队列满载而被丢弃。作如下假设:(1)架构中的每个部分被抽象成一个先入先出(firstinputfirstoutput,fifo)的队列和一个服务台,队列负责包缓冲,服务台则是进行包处理。(2)包到达每个队列是一个泊松流。(3)包在每个服务台的服务时间服从负指数分布。(4)架构中的每个部分能被看成一个m/m/1的排队系统。(5)包在两个部分间的传输速率是平稳的,能够使用开放排队网络(jackson网络,jacksonnetwork,来源于jamesrjackson.1963.jobshop-likequeueingsystems.managementscience10,1(1963),131–142)对ccn包处理流程进行建模。上述泊松流可以理解为到达的流量按照如下条件进行输入的过程称为泊松流,则如下条件为:1)平稳性,在区间[a,a+t)内有k个数据分组到来的概率与起点a无关,只与时间的长度t有关。2)无后效性,不相交区间内到达数据分组数的概率分布是相互独立的。3)普通性,在长度为t的时间区间内至少到达两个数据分组的概率是t的高阶无穷小量。4)有限性,在任意有限区间内到达有限个数据分组的概率为1。在利用ccn包处理流程建立的模型中,cs和pit内有两个方向的队列,分别对应兴趣包和数据包的处理队列,而fib只有一个方向的队列,只处理兴趣包。模型中的一些符号定义为:λ为兴趣包平均到达率,ti为第i个队列的平均吞吐率,μi为第i个服务台的平均服务率,α为兴趣包的cs命中率,β为兴趣包的pit命中率,θ为兴趣包的fib命中率,τ为兴趣包平均离去率,λ′为数据包平均到达率,为数据包缓存率,τ′为已缓存数据包平均离去率,ρi为第i个服务台的利用率。根据jackson网络可知,对于每个队列,当系统处于平稳状态后,包的平均到达率应该等于平均离去率。假设从外部进入ccn路由器的兴趣包平均到达率为λ,有:同理,对于数据包,有:若不考虑丢包,则一个数据包总是一个兴趣包的响应,才能保证流量的平衡。所以,兴趣包的离去率τ应约等于数据包的到达率λ′,则有:τ≈λ′(3)联立式(1)、式(2)和式(3),能够计算得到系统处于稳定状态后每个队列的吞吐率:根据文献“通信网性能分析基”记载的m/m/1排队系统理论,每个服务台的利用率ρi为:显然,为了防止队列过载溢出,要求平稳状态下队列的吞吐率ti不大于服务台的服务率μi,即服务台的利用率不大于1。其中,上述吞吐率表示在单位时间内通过某个网络(或信道、接口)的数据量。上述过载溢出为队列中存放的数据量已经超过预设容量,使得后续数据不能正常存放而被丢弃。将式(4)带入式(5),能够得到以下不等式:由此可知,路由器的最大吞吐率就是第1个队列兴趣包的最大到达率,受到下列约束:由于α、β、θ和均是小于1的参数,所以由式(7)可知cs的服务率致使整个路由器的性能出现了瓶颈,除非它的服务率μ1大于其他队列的服务率。也就是说,如果服务率μ1不足够大,那么cs对兴趣包的入队列将会过载,而其他队列将频繁地处于空闲状态,使得整个路由器不够高效。另外,通常地,cs相比于pit和fib,有着更频繁的访存操作,这将导致cs的服务率很难高于pit和fib的服务率。因此,本申请文件需要提高cs的服务率,使其高于pit和fib的服务率。上述另一种实施方式:在s102之后,还包括:判断cs中的i/o等待队列是否小于已设阈值,若小于已设阈值,执行s103,若不小于已设阈值,执行s104;上述i/o等待队列是为了在当发起的i/o指令不能立即执行时,对所述i/o指令进行存放的数据结构,可以通过线性表或链表实现。需要说明的是,当一个ccn路由器需要读取内容的请求过多时,将会进行排队等待,可能造成拥塞,这往往也会使cs处理性能下降,这时候如果将一部分请求转发到负载压力不大的上游路由器处理,反而能够提高全网的处理效率。于是,设计一个i/o等待队列,当兴趣包请求的内容被布隆过滤器判断出存在于本路由器上后,将进入这个队列等待相应异步读取操作的发起。而这个队列会设置一定的长度阈值,若当前队列的长度达到阈值,就把溢出的请求发往pit,交给上游路由器处理。也就是说,虽然兴趣包在cs处能够成功命中,但由于此时cs已经满载,这些兴趣包将会溢出,而以一种尽力而为的方式被转发到其路由路径上一个负载较轻的路由器中处理。s103,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;其中,上述从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容可以理解为在cs中存有与所述第一目标兴趣包请求的关键字相匹配的内容。需要说明的是,第一目标兴趣包请求对应的服务器可以理解为用户发送第一目标兴趣包请求的服务器。具体的,根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。其中,上述cs的主线程为cs结构的程序启动时就被创建的线程。上述i/o指令可以理解为将数据输入或输出的指令。需要说明的是,因为网络中需要缓存的内容量是非常巨大的,所以不得不使用大容量的存储介质来建造cs,而对这些内容的i/o操作效率对于cs而言就变得非常重要。大多数的i/o请求是阻塞型的,这导致程序的控制权直到i/o完成后才能释放出来,进而使得cs对后续的兴趣包处理需要受到前面的i/o访问时延的影响,造成的访问时延是不必要的。很显然,在高速的网络流量处理过程当中,这种阻塞方式将会是低效的,增加了数据分组的平均排队时延。因此,为了能够立即返回控制权,提出采用异步i/o操作,所述异步i/o操作为:当主线程发起一个i/o指令后,该指令就被一个新建的子线程处理,而主线程的控制权就能立即返回去处理下一个请求。得益于此,当cs成功地发出了异步读取的指令后,接着就可以立即继续后续兴趣包的处理,而不需要阻塞等待该i/o指令操作完毕;而当cs收到异步读取操作完成的通知时,再将其封装成数据包返回即可。s104,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字,若不存在,执行s105,若存在,执行s106其中,上述判断pit中是否存在所述第一目标兴趣包请求的关键字可以理解为pit中预先可能存有与所述第一目标兴趣包请求的关键字相同的关键字。s105,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;其中,上述映射关系包括所述第一目标兴趣包请求的关键字、入端口及二者之间的对应关系;上述pit是用于记录关键字和对应入端口的映射信息的,上述入端口可以理解为每个目标兴趣包请求进入ccn路由器的端口时,所述端口均与对应的关键字具有映射关系,也就是说,每个目标兴趣包请求进入路由器的端口对应一个关键字。其中,上游路由器是路由转发过程中,根据路由表显示的下一跳路由器。上述利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发的一种实施方式可以为:利用所述第一目标兴趣包请求的关键字,从fib中搜索与向上游路由器转发所述第一目标兴趣包请求的关键字对应的ccn路由器的出端口,根据所述出端口将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发。需要说明的是,通过判断pit中存在与所述关键字相同的内容,来决定是否对所述关键字即第一目标兴趣包请求的关键字进行路由转发。也就是说,兴趣包会进入pit查找是否存在相同的请求内容名字的前缀,如果存在,说明该内容之前已经向上游路由器发起了请求,就不需要再次向上游转发,而只需在pit中新增包括入端口信息记录的所述映射关系记录,否则除了在pit中添加相关记录外,还需将兴趣包通过fib向上游继续转发。另外,通过检索可知pit中不存在与所述关键字相同的关键字,不仅需要将所述入端口信息添加到pit中,以便将搜寻到的第一目标数据包发送到所述入端口对应的服务器中;将所述第一目标兴趣包请求的关键字发送到fib,是为了利用fib将所述关键字通过上游路由器进行路由转发,以便搜寻的与所述第一目标兴趣包请求的关键字匹配的第一目标数据包。值得一提的是,在pit中增加映射关系,也就意味着增加了所述入端口信息,其目的是为了找到第一目标数据包的传送端口对应的服务器,也就是说,第一目标数据包是根据pit记录的入端口信息记录进行传送的。s106,判断在pit中是否存在所述映射关系记录;若为不存在,执行s107;其中,上述判断在pit中是否存在所述映射关系记录可以理解为pit中预先可能存有与所述第一目标兴趣包请求的关键字与入端口映射关系相同的关键字、入端口以及二者之间的映射关系。s107,在pit中增加所述映射关系记录;基于上述所述的情况,在pit中增加所述映射关系记录的目的也是为了在pit中增加为了找到第一目标数据包的传送端口对应的服务器,也就是说,第一目标数据包是根据pit记录的入端口信息记录进行传送的。s108,接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;基于上述情况,根据cs中不存在与所述第一目标兴趣包请求的关键字相匹配的内容,或是cs中i/o等待队列已经满了,都需要从上游路由器中寻求搜索,其中,第二目标数据包就是通过上游路由器获得的与所述第一目标兴趣包请求的关键字相匹配的内容。s109,解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;其中,上述解析第二目标数据包的包头可以利用状态机的包头解析模块对第二目标数据包的包头进行解析;需要说明的是,当获得由上游路由器发送的第二目标数据包时,也需要对所述第二目标数据包的包头进行解析,目的是为了将所述第二目标数据包的内容与兴趣包请求进行匹配,也是为了快速将第二目标数据包进行缓存。在s109之后,还包括:判断所述pit中是否存在所述第二目标数据包的关键字;若为是,执行s110;若为否,将所述第二目标数据包丢弃。s110,根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。其中,上述将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中的目的是为了更新布隆过滤器的数据结构,以备下一个目标兴趣包请求查询cs中是否有与之匹配的内容时用所述关键字。上述删除所述映射关系记录是为了不重复给同一个入端口再无兴趣包请求的情况下推送第二目标数据包。由此可见,该方法通过增加布隆过滤器,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。基于上述情况,在获得所述第二目标数据包的关键字后,便可以利用第二目标数据包的关键字与pit存储的关键字进行对比匹配,获得与所述第二目标数据包的关键字匹配的信息,同时快速找到发送与述第二目标数据包匹配的路由器的端口信息即第一目标兴趣包请求进入路由器的端口信息;上述的一种实施方式为:在s110之后,所述方法还可以包括:利用所述第一目标兴趣包请求的偏移量将所述第二目标数据包存储在cs中。其中,将所述第二目标数据包存储在cs中是为了下一次兴趣包请求查询时便捷,丰富cs内容。具体的,根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。由此可见,上述的实施方式在高速的网络流量处理过程当中通过采用异步i/o操作和增加布隆过滤器,降低了数据分组的平均排队时延,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。图4为实现本申请文件实施例提供的第二种内容路由器的非阻塞内容缓存方法的流程图,所述方法包括:s201,解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;s202,判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,执行s203,若不小于已设阈值,执行s204;s203,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;具体的,根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。s204,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,执行s205,若存在,执行s206;s205,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;s206,判断在pit中是否存在所述映射关系记录;若不存在,执行s207;s207,在pit中增加所述映射关系记录;s208,接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;s209,解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;在s209之后,包括:判断所述pit中是否存在所述第二目标数据包的关键字;若为是,执行根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中的步骤;若为否,将所述第二目标数据包丢弃。s210,根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。在s210之后,包括:利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中。具体的,根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。图5为本申请文件实施例提供的第二种内容路由器的非阻塞内容缓存方法的流程图,所述方法包括:s301,解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;s302,利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在,若不存在,执行s305,若存在,执行s303;s303,判断cs中的i/o等待队列是否小于已设阈值,若小于已设阈值,返回执行s304,若不小于已设阈值,执行s305;s304,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;s305,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若为不存在,执行s306,若存在,执行s307;s306,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;s307,判断在pit中是否存在所述映射关系记录;若不存在,执行s208;s308,在pit中增加所述映射关系记录;s309,接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;s310,解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;s311,判断所述pit中是否存在所述第二目标数据包的关键字;若为是,执行s312,若为否,s313;s312,根据pit记录的入端口信息和对应的关键字,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中;s313,将所述第二目标数据包丢弃。由此可见,该方法通过增加了布隆过滤器和i/o等待队列的限制,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。图6为本申请文件实施例提供的第一种内容路由器的非阻塞内容缓存装置的结构示意图,所述装置包括:兴趣包请求解析模块401,用于解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;布隆过滤器模块402,用于利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在,若为是,触发内容搜索模块403,若为否,触发第一判断模块404;所述内容搜索模块403,用于根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;所述第一判断模块404,用于判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若为不存在,触发上游路由器模块405,若为存在,触发映射关系判断模块406;所述上游路由器模块405,用于在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;所述映射关系记录判断模块406,用于判断在pit中是否存在所述映射关系记录,若为不存在,触发第一pit模块407;所述第一pit模块407,用于在pit中增加所述映射关系记录;所述数据包接收模块408,用于接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析模块409,用于解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;第二pit模块410,用于根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。所述装置还包括:存储模块,用于利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中。第二判断模块,用于判断所述pit中是否存在所述第二目标数据包的关键字;若为是,触发第二pit模块;若为否,触发丢弃模块;所述丢弃模块,用于将所述第二目标数据包丢弃。i/o等待队列判断模块,用于判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,触发内容搜索模块,若不小于已设阈值,触发第一判断模块。所述内容搜索模块403包括:第一主线程子模块,用于根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;第一子线程子模块,用于接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。所述存储模块包括:第二主线程子模块,用于根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;第二子线程子模块,用于利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。由此可见,该装置通过增加布隆过滤器、i/o等待队列的限制和异步i/o操作,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。图7为本申请文件实施例提供的第二种内容路由器的非阻塞内容缓存装置的结构示意图,所述装置包括:兴趣包请求解析模块501,用于解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;i/o等待队列判断模块502,用于判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,触发内容搜索模块503,若不小于已设阈值,触发第一判断模块504;所述内容搜索模块503,用于根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;所述第一判断模块504,用于判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,触发上游路由器模块505,若为存在,触发映射关系判断模块506;所述上游路由器模块505,用于在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;所述映射关系记录判断模块506,用于判断在pit中是否存在所述映射关系记录;若不存在,触发第一pit模块507;所述第一pit模块507,用于在pit中增加所述映射关系记录;数据包接收模块508,用于接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析模块509,用于解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;第二pit模块510,用于根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。所述装置还包括:存储模块,用于利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在cs中。第二判断模块,用于判断所述pit中是否存在所述第二目标数据包的关键字;若为是,触发第二pit模块;若为否,触发丢弃模块;所述丢弃模块,用于将所述第二目标数据包丢弃。所述内容搜索模块503包括:第一主线程子模块,用于根据所述第一目标兴趣包请求的关键字,利用cs的主线程将第一目标i/o指令传送到子线程中,其中,所述第一目标i/o指令为从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;第一子线程子模块,用于接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。所述存储模块包括:第二主线程子模块,用于根据所述第二目标数据包,利用cs的主线程将第二目标i/o指令传送到子线程中,其中,所述第二目标i/o指令为将第二目标数据包存储在cs中的指令;第二子线程子模块,用于利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。本申请实施例还提供了一种电子设备,如图8所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,存储器603,用于存放计算机程序;处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在;若存在,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不存在,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。由此可见,执行本实施例提供的电子设备能够通过增加布隆过滤器,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。上述的相关内容路由器的非阻塞内容缓存方法的实施方式与前述方法实施例部分提供的内容路由器的非阻塞内容缓存方法的测试方式相同,这里不再赘述。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器cs中是否存在;若存在,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不存在,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。由此可见,执行本实施例提供的计算机可读存储介质中存储的应用程序时,能够通过增加布隆过滤器,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。上述的相关内容路由器的非阻塞内容缓存方法的实施方式与前述方法实施例部分提供的内容路由器的非阻塞内容缓存方法的测试方式相同,这里不再赘述。本申请实施例提供的的一种电子设备,如图8所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,存储器603,用于存放计算机程序;处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不小于已设阈值,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。由此可见,执行本实施例提供的电子设备能够通过增加布隆过滤器,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。上述的相关内容路由器的非阻塞内容缓存方法的实施方式与前述方法实施例部分提供的内容路由器的非阻塞内容缓存方法的测试方式相同,这里不再赘述。一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;判断cs中的i/o等待队列是否小于已设阈值;若小于已设阈值,根据所述第一目标兴趣包请求的关键字和偏移量,从cs中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在cs中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不小于已设阈值,判断待定请求表pit中是否存在所述第一目标兴趣包请求的关键字;若不存在,在pit中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表fib中,利用fib将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在pit中是否存在所述映射关系记录;若不存在,在pit中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到pit中;根据pit中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。由此可见,执行本实施例提供的计算机可读存储介质中存储的应用程序时,能够通过增加布隆过滤器,不仅解决了cs频繁拥塞的问题,还充分地利用了pit和fib,降低了流量的排队时延,提高了内容路由器的整体性能。上述的相关内容路由器的非阻塞内容缓存方法的实施方式与前述方法实施例部分提供的内容路由器的非阻塞内容缓存方法的测试方式相同,这里不再赘述。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1