一种内容路由器的非阻塞内容缓存方法及装置制造方法及图纸

技术编号:16761555 阅读:21 留言:0更新日期:2017-12-09 05:26
本申请实施例提供了一种内容路由器的非阻塞内容缓存方法及装置,该方法为:解析接收的第一目标兴趣包请求的包头,获取关键字和偏移量,利用布隆过滤器判断关键字对应的内容在CS中是否存在,若存在,判断CS中的I/O等待队列是否小于已设阈值,若为是,将第一目标数据包推送到发送第一目标兴趣包请求的服务器,若为否,判断待定请求表PIT中是否存在所述关键字,针对PIT中不存在关键字,将关键字发送到FIB中,利用FIB将关键字通过上游路由器进行路由转发;接收发送的第二目标数据包,根据PIT将其发送到端口对应的服务器后删除所述映射关系记录,将关键字添加到布隆过滤器的数据结构中;该方法解决了CS频繁拥塞的问题。

A non blocking content cache method and device for a content router

The embodiment of the invention provides a non blocking cache content method and device of a content router, the method for analyzing the received first target: Baotou interestpacket request, gets the keywords and offset, using Bloom filter judgment keywords corresponding whether the contents of CS in existence, if it exists, judge CS I/O in the waiting queue is less than the set threshold, if yes, will be the first target packet pushed to send the first packet to the server object of interest, if not, determine whether or not there is the keyword pending requests in table PIT, the key does not exist in the PIT, send the key to FIB, FIB will use the keyword routing through the upstream router; the second goal of sending and receiving data packets according to the PIT, send it to the port corresponding to the server after deleting the mapping record key The word is added to the data structure of the bloom filter; the method solves CS frequent congestion problem.

【技术实现步骤摘要】
一种内容路由器的非阻塞内容缓存方法及装置
本申请涉及高性能路由器设计
,特别是涉及一种内容路由器的非阻塞内容缓存方法及装置。
技术介绍
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中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。进一步地,在解析第二目标数据包的包头,获得所本文档来自技高网
...
一种内容路由器的非阻塞内容缓存方法及装置

【技术保护点】
一种内容路由器的非阻塞内容缓存方法,其特征在于,所述方法包括:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器CS中是否存在;若存在,根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不存在,判断待定请求表PIT中是否存在所述第一目标兴趣包请求的关键字;若不存在,在PIT中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表FIB中,利用FIB将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在PIT中是否存在所述映射关系记录;若不存在,在PIT中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到PIT中;根据PIT中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。...

【技术特征摘要】
1.一种内容路由器的非阻塞内容缓存方法,其特征在于,所述方法包括:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;利用布隆过滤器判断所述第一目标兴趣包请求的关键字对应的内容在内容存储器CS中是否存在;若存在,根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不存在,判断待定请求表PIT中是否存在所述第一目标兴趣包请求的关键字;若不存在,在PIT中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表FIB中,利用FIB将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在PIT中是否存在所述映射关系记录;若不存在,在PIT中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到PIT中;根据PIT中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中。2.如权利要求1所述的方法,其特征在于,在根据PIT中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中之后,所述方法还包括:利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在CS中。3.如权利要求1所述的方法,其特征在于,根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容,包括:根据所述第一目标兴趣包请求的关键字,利用CS的主线程将第一目标I/O指令传送到子线程中,其中,所述第一目标I/O指令为从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容的指令;接收子线程通过所述第一目标兴趣包请求的偏移量检索到的第一目标数据包,将所述第一目标数据包推送到发送所述第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容。4.如权利要求1所述的方法,其特征在于,在根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容之前,还包括:判断CS中的I/O等待队列是否小于已设阈值;若小于已设阈值,执行根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容的步骤;若不小于已设阈值,执行判断待定请求表PIT中是否存在所述第一目标兴趣包请求的关键字的步骤。5.如权利要求2所述的方法,其特征在于,利用所述第一目标兴趣包请求的偏移量将第二目标数据包存储在CS中,包括:根据所述第二目标数据包,利用CS的主线程将第二目标I/O指令传送到子线程中,其中,所述第二目标I/O指令为将第二目标数据包存储在CS中的指令;利用子线程通过所述第一目标兴趣包请求的偏移量对所述第二目标数据包进行存储。6.如权利要求1-5中任一项所述的方法,其特征在于,在解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到PIT中之后,还包括:判断所述PIT中是否存在所述第二目标数据包的关键字;若为是,执行根据PIT中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布隆过滤器的数据结构中的步骤;若为否,将所述第二目标数据包丢弃。7.一种内容路由器的非阻塞内容缓存方法,其特征在于,所述方法包括:解析接收的第一目标兴趣包请求的包头,获取第一目标兴趣包请求的关键字和偏移量,其中,包头包括所请求内容的内容名字的前缀和偏移量,所述前缀作为所述关键字;判断CS中的I/O等待队列是否小于已设阈值;若小于已设阈值,根据所述第一目标兴趣包请求的关键字和偏移量,从CS中搜索与所述第一目标兴趣包请求的关键字对应的内容,并将第一目标数据包推送到发送第一目标兴趣包请求的服务器,其中,第一目标数据包中包括在CS中搜索到的与所述第一目标兴趣包请求的关键字对应的内容;若不小于已设阈值,判断待定请求表PIT中是否存在所述第一目标兴趣包请求的关键字;若不存在,在PIT中增加所述第一目标兴趣包请求的关键字与入端口之间的映射关系记录,将所述第一目标兴趣包请求的关键字转发到转发信息表FIB中,利用FIB将所述第一目标兴趣包请求的关键字向上游路由器进行路由转发,其中,所述入端口为所述第一目标兴趣包请求进入路由器的端口;若存在,判断在PIT中是否存在所述映射关系记录;若不存在,在PIT中增加所述映射关系记录;接收上游路由器发送的第二目标数据包,其中,所述第二目标数据包中包括上游路由器发送的所述第一目标兴趣包请求的关键字对应的内容;解析第二目标数据包的包头,获得所述第二目标数据包的关键字,将所述第二目标数据包的关键字转发到PIT中;根据PIT中记录的所述映射关系记录,将所述第二目标数据包发送到所述入端口对应的服务器后删除所述映射关系记录,将所述第二目标数据包的关键字添加到布...

【专利技术属性】
技术研发人员:潘恬黄韬林兴晨刘江张娇杨帆谢人超刘韵洁
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1