基于果蝇算法的信息中心网络路由和缓存管理方法与流程

文档序号:12309838阅读:223来源:国知局
基于果蝇算法的信息中心网络路由和缓存管理方法与流程

本申请涉及信息网络领域,更具体地,涉及一种基于果蝇算法的信息中心网络路由和缓存管理方法。



背景技术:

信息中心网络(information-centricnetwork,icn)是一种新型网络架构,并得到了国内外学者的广泛关注与研究。icn改变了传统的以主机为中心的网络范式,将内容分散缓存在网络基础设施中,并且根据内容(诸如,用户请求对象的名称、数据特征等)进行寻址,实现了内容与内容的位置的解耦,数据独立于位置,解决了传统互联网协议(ip)网络中由于ip地址限定的诸如环路、主机迁移、ip地址不足等问题;通过网内小规模设备的分散存储,避免了高速缓存设备集中管理和维护带来的巨大能耗及污染问题;另外,用户在请求和获取响应内容的过程中,避免了爆发式增长的视频流量内容的集中存储,进而产生的骨干网的拥塞、时延等问题。

在实际的网络通信中,内容的重要性远远大于通信过程中内容的位置和内容的传递方式,用户也更加关心数据内容本身。icn使用信息名称为核心的全新网络协议栈代替传统网络中的传输控制协议/互联网协议(tcp/ip)网络协议栈,保留网络层解析信息名称、路由缓存信息数据、多播信息传递等功能,在解决传统ip网络模型的扩展性、实时性、动态性等问题的基础上,更好地满足了用户对于内容本身的需求。

icn对数据内容进行信息名称路由的特点也对网络中的路由方式提出了要求。目前的icn路由主要通过两种类型的包:包含用户请求信息的内容请求信息包和响应用户请求信息的数据内容包。内容路由器(contentrouter,cr)针对这两种类型的包维护三张表:内容存储(contentstore,cs)表、待定信息(pendinginformation,pit)表以及信息转发(forwardinginformationbase,fib)表。cs表半永久性地存储接收到的数据内容包,pit表则存储着信息包相关信息以及接收到的匹配信息的接口集,fib表中包含用户的转发路径信息。当用户发出的内容请求信息包到达cr时,cr首先在cs表中查找含有最长匹配前缀的内容,如果找到用户请求的内容,则立即通过信息转入接口返回数据内容包,并丢弃内容请求信息包,否则进一步查找pit表;pit表中包含用户先前的请求信息,诸如请求内容名称、信息包转入接口等,如果最长匹配前缀的匹配结果找到用户请求的内容,则将本次兴趣包的转入接口直接添加到已经存在的pit中,当数据内容包返回时,会自动复制数据内容包,通过多播的形式从多个转入接口分别分发给不同的用户,如果未找到用户请求的内容,则查找fib表;fib表中的转发信息决定内容请求信息包的转发方向。当含有用户请求的内容发布者或cr响应用户请求时,返回的数据内容包按照信息包的路径转发给发起请求的用户,完成请求过程。以上过程仅仅考虑了服务质量,即保证用户请求能够得到响应,但却并未深入研究数据内容传输过程中的能耗过程,势必会对icn的进一步研究及应用产生影响。

此外,与传统网络相比,icn具有网内分布式缓存。然而,icn现有的缓存策略均具有缓存效率低等缺点。例如,作为icn的默认缓存机制,lce(leavecopyeverywhere)策略在数据响应路径的每个节点都设置内容副本,这种过度缓存在提高请求命中率的同时也会带来缓存冗余,大大增加了网络能耗;lcd(leavecopydown)只在命中节点直接相邻的下一跳节点进行缓存,mcd(movecopydown)策略在需要进行缓存时,缓存内容随着用户请求情况沿请求路径逐步下移,这两种缓存策略虽然避免了大量重复内容的产生,但是缓存效率较低;prob(copywithprobability)和probcache(probabilisticcache)以一定概率在返回路径节点中缓存内容,需要对全局内容流行度进行计算访问代价,具有一定的复杂度。

因此,需要一种能够实现icn能效优化,并能够使缓存效率更高的方法。



技术实现要素:

根据本发明的示例性实施例,提供了一种基于果蝇算法的信息中心网络路由和缓存管理方法,包括:确定请求相同内容的用户请求节点之间是否连接;当确定用户请求节点之间连接时,从连接的用户请求节点中选择一个用户请求节点作为合并节点,并将用户请求节点的用户请求转发到合并节点的下一跳节点;当确定用户请求节点之间不连接时,确定用户请求节点的下一跳节点是否相同;当确定用户请求节点的下一跳节点相同时,将下一跳节点作为合并节点,并将用户请求转发到合并节点的下一跳节点;当确定用户请求节点的下一跳节点不相同时,将用户请求分别转发到下一跳节点。

每个用户请求节点可被设置标签值,标签值随着用户请求的转发可被迁移到下一跳节点,合并节点的标签值可被设置为连接的用户请求节点的标签值之和。

确定请求相同内容的用户请求节点之间是否连接的步骤可包括:确定任意两个用户请求节点之间是否连接。

从连接的用户请求节点中选择一个用户请求节点作为合并节点的步骤可包括:选择存在下一跳节点的用户请求节点作为合并节点,当至少一个用户请求节点存在下一跳节点时,选择所述至少一个用户请求节点分别与各自的下一跳节点的链路中链路负载最低的用户请求节点作为下一跳节点。

当确定用户请求节点的下一跳节点不相同时将用户请求转发到下一跳节点的步骤可包括:将用户请求通过链路负载最低的链路转发到下一跳节点。

所述基于果蝇算法的信息中心网络路由和缓存管理方法还可包括:确定下一跳节点中是否存在用户请求内容;当下一跳节点中不存在用户请求内容时,返回确定用户请求节点之间是否连接的步骤,其中,用户请求节点是当前跳用户请求节点;当下一跳节点中存在用户请求内容时,将下一跳节点中的用户请求内容发送到用户请求节点。

所述基于果蝇算法的信息中心网络路由和缓存管理方法还可包括:基于用户请求信息来计算缓存决定值,并确定缓存决定值是否大于预定值;当缓存决定值大于预定值时,缓存用户请求内容;当缓存决定值不大于预定值时,不缓存用户请求内容。

用户请求信息可包括用户数量、用户请求数量和用户请求时间间隔中的至少一个。

合并节点可被记录,其中,缓存用户请求内容的步骤可包括:基于将最先记录的合并节点作为最后缓存节点的缓存顺序来缓存用户请求内容。

将在接下来的描述中部分阐述本发明另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明的实施而得知。

附图说明

通过下面结合附图进行的详细描述,本发明的上述和其它目的和特点将会变得更加清楚,其中:

图1是示出根据本发明实施例的基于果蝇算法的信息中心网络路由和缓存管理方法的流程图;

图2是示出根据本发明实施例的节点合并选择的示图。

具体实施方式

现在,详细描述本发明的示例性实施例,其示例在附图中表示,其中,相同的标号始终表示相同的部件。

图1是示出根据本发明实施例的基于果蝇算法的信息中心网络路由和缓存管理方法的流程图。

根据本发明实施例的基于果蝇算法的信息中心网络路由和缓存管理方法针对多个用户同时请求相同内容。现有技术的方法多针对单个用户对特定内容的请求处理,实际上,由于请求的随机性并且由网络内容访问的统计规律可知,用户与访问内容之间满足幂律分布的特性,即,80%的用户仅访问网络上20%的内容,从而产生操作冗余。

如图1所示,在步骤110,确定请求相同内容的用户请求节点并设置每个用户请求节点的标签值。这里,仅作为示例,可将每个用户请求节点标签值设置为1。此外,用户请求节点可以是客户机或路由器。

在步骤120,确定用户请求节点之间是否连接。这里,如果用户请求节点是客户机,则用户请求节点之间的连接指的是与客户机连接的路由器之间是否连接;如果用户请求节点是路由器,则用户请求节点之间的连接指的是当前路由器之间是否连接。此外,仅作为示例,步骤120可确定任意两个用户请求节点之间是否连接。

如果确定用户请求节点之间连接,则在步骤130,从连接的用户请求节点中选择一个用户请求节点作为合并节点,设置合并节点的标签值,并将用户请求转发到合并节点的下一跳节点。这里,仅作为示例,合并节点的标签值可以是连接的用户请求节点的标签值之和。此外,仅作为示例,可选择存在下一跳节点的用户请求节点作为合并节点,如果至少一个用户请求节点存在下一跳节点,则可选择所述至少一个用户请求节点分别与各自的下一跳节点的链路中链路负载最低的用户请求节点作为下一跳节点。图2是示出根据本发明实施例的节点合并选择的示图。如图2中(a)所示,用户请求节点r1、r2连接,r1存在下一跳节点r3,r2不存在下一跳节点,故可选择r1作为合并节点。如图2中(b)所示,用户请求节点r1、r2连接,r1、r2均存在下一跳节点,这时可比较r1-r3、r2-r4这两条链路中链路负载的高低,并选择链路负载最低的用户请求节点r1作为下一跳节点。此外,在确定合并节点之后,还可对合并节点进行记录。

如果确定用户请求节点之间不连接,则在步骤140,确定用户请求节点的下一跳节点是否相同。

如果确定用户请求节点的下一跳节点相同,则在步骤150,将下一跳节点作为合并节点,设置合并节点的标签值,并将用户请求转发到合并节点的下一跳节点。如图2中(c)所示,用户请求节点r1、r2不连接,r1、r2的下一跳节点r3相同,故可选择r3作为合并节点。

如果确定用户请求节点的下一跳节点不相同,则在步骤160,将用户请求节点的用户请求分别通过链路负载最低的链路转发到下一跳节点,并将用户请求节点的标签分别迁移到下一跳节点,即,将下一跳节点的标签值设置为与用户请求节点相同。如图2中(d)所示,用户请求节点r1、r2不连接,r1、r2均存在下一跳节点,这时两个请求不相关,各自选择链路负载最低的链路转发到下一跳节点,即,用户请求节点r1直接将用户请求转发到下一跳节点r3,用户请求节点r2选择链路负载最低的用户请求节点r4作为下一跳节点。

在步骤170,确定下一跳节点中是否存在用户请求内容。

如果下一跳节点中不存在用户请求内容,则操作返回步骤120,这时,用户请求节点是当前跳用户请求节点。

如果下一跳节点中存在用户请求内容,则在步骤171,将下一跳节点中的用户请求内容发送到用户请求节点。

在步骤180,基于用户请求信息来计算缓存决定值,并确定缓存决定值是否大于预定值。这里,仅作为示例,用户请求信息可包括用户数量、用户请求数量和用户请求时间间隔中的至少一个,并且可通过以下等式来计算缓存决定值:

其中,pc为缓存决定值,nq为用户请求数量,n为用户数量,loop_time为用户请求时间。

如果缓存决定值大于预定值,则在步骤190,缓存用户请求内容。

如果缓存决定值不大于预定值,则在步骤191,不缓存用户请求内容。

这里,当进行缓存时,可将对用户请求的下一跳进行链路选择获得的用户请求节点的逆序作为缓存节点选择的顺序。具体说来,当所有用户在进行内容获取时,每经过一跳,都可能进行节点合并,当进行节点合并时,记录所有的合并节点,直到获取内容。也就是说,基于将最先记录的合并节点作为最后缓存节点的缓存顺序来缓存用户请求内容。

应该注意,上述缓存决策步骤可以在未存储用户请求内容的节点单独进行,也可以作为在用户进行路径选择并获取用户请求内容之后的全局决策,而非在网络中的某一个节点上进行。

根据本发明的示例性实施例,能够有效地实现网络能效优化和负载均衡,合理地部署缓存,最终实现网络节能,具体技术效果如下:

通过对网络流量进行合并,有效地减少了网络中的重复请求所带来的冗余流量,降低了链路负载;

通过根据链路负载情况进行选路,实现网络负载均衡,并在保证用户服务质量的前提下,实现网络能效优化,降低链路能耗;

通过将缓存决策与用户访问情况相结合,并同时考虑用户请求量和用户请求频率,使缓存效率更高、更全面;

通过使用合并节点作为内容缓存节点,并使缓存的部署符合网络中用户对内容的访问规律,在避免了链路盲目缓存或者多次缓存的同时,可以使缓存副本的数量最优地分布在网络内,在邻近区域内,同一内容不会多次缓存到邻近的缓存节点。

虽然已经参照特定示例性实施例示出和描述了本发明,但是本领域的技术人员将理解,在不脱离范围由权利要求及其等同物限定的本发明的精神和范围的情况下可作出形式和细节上的各种改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1