本发明属于在软件定义网络和内容中心网络融合架构下的缓存决策策略,涉及控制器对于数据层操作的可编程性,以及控制器根据全网感知的信息并且应用粒子群智能算法对内容进行缓存决策。
背景技术:
面对以实时音频、高清视频为主的海量互联网流量,基于tcp/ip的传统网络架构在可用性、移动性、可扩展性、安全性等方面存在巨大挑战,难以满足当前网络发展的要求。
内容中心网络(ccn)被认为是解决现有网络问题的有效途径。内容中心网络以用户驱动的模式获取内容,用户发送内容请求,网络通过内容缓存的方式实现快速响应。
高效的内容缓存机制是内容中心网络架构的重要组成部分。关于缓存策略的研究主要分为2个方面:旁路缓存和路径缓存存储策略。旁路缓存存储策略在整个网络中选择节点存储内容,以提高内容的可用性。路径缓存存储策略仅仅在转发路径上选择节点存储内容,以均衡网络流量,减少网络延时。但现有的缓存策略在存储节点和存储内容的管理上仍然是一个技术难点。
软件定义网络(sdn)是一种基于软件的网络技术,它倡导控制与数据的分离。软件定义网络架构将网络分为应用层、控制层、数据层。应用层通过北向接口向控制层提供开放的编程接口和网络视图,控制层包括控制器和网络操作系统,并通过南向接口控制数据层进行数据处理、转发和收集。控制平面与数据平面的解耦、开放的可编程接口、集中化的控制使软件定义网络技术在简化网络基础设施,提升网络管理效率方面具有独特优势。因此,学术界试图将内容中心网络和软件定义网络这两种网络架构相融合,以期创建既能高效管理,又能满足海量数据流量分发的网络架构。
将软件定义网络的设计思想引入到内容中心网络缓存策略中,通过控制层实现对网络拓扑和缓存内容的感知,对网络中的存储节点和内容进行集中控制。由于软件定义网络架构的集中控制的优势,网络管理者可以轻松实现对全网的存储资源和存储策略的统一管理。
粒子群智能算法(pso)作为一种典型的群体智能优化算法,粒子群算法的思想源于对鸟群简化社会模型的研究及行为模拟。粒子群算法具有简单,易实现,精度高,收敛速度快且具有较少的可调参数等优点,在模糊控制、系统设计、复杂网络优化等方面具有很大优势。
技术实现要素:
本发明的目的在于提供一种基于软件定义网络的内容中心网络缓存方法。
为达到上述目的,本发明采用了以下技术方案:
本发明利用软件定义网络和内容中心网络融合架构下控制器具有逻辑中心化以及对全网感知的优势,根据全局网络拓扑和网络内容的信息,对内容和缓存进行集中和整体的优化;控制器周期性的对缓存信息进行统计,并在接收到数据层缓存请求后进行缓存决策;本发明还利用节点的重要度和边缘度以及内容的流行度对节点和内容进行整体的缓存决策数学建模,并应用了粒子群智能算法进行优化。
1.相关定义
定义一:节点重要度,根据交换机在收到控制器下发的流表时,对下发的流表信息进行统计,根据交换机统计的信息可以得到每个内容的路由路径经过此交换机(即缓存节点)的次数,次数越多则交换机对于该内容的重要度越大。用bik表示节点i(i=1,...,m)对于内容k(k=1,...,n)的重要度,并将其归一化表示为
定义二:节点边缘度,控制器进行缓存决策时应用了节点边缘度的概念,将内容缓存在节点边缘度较高的节点,则用户终端请求该节点的内容时的时延更短。节点i的边缘度的定义为
定义三:内容流行度,每个节点通过对内容请求包的统计,得到每个内容的请求次数,在本发明中将一个周期内节点处内容的请求次数作为内容在节点处的流行度。用pik表示节点i处内容k的流行度,其归一化表示为
2.缓存决策过程
缓存决策策略由具有逻辑中心化和全网感知的控制器来进行,控制器周期性的对数据层的交换机下发统计缓存信息的消息,交换机收到控制器下发的统计缓存信息的消息后,将自己统计的缓存信息发送给控制器,控制器对缓存信息进行收集并做相应的先期处理(包括对各个节点的重要度、边缘度以及内容流行度进行计算)。
内容服务器根据用户请求发送相应的内容包,当数据层的交换机接收到该内容包后,首先对内容包进行判断,若内容包未进行标记,说明该内容包内的内容没有进行缓存决策,则交换机向控制器发送包含该内容的内容名的缓存决策请求,控制器收到该缓存决策请求后根据缓存信息进行缓存决策,然后将决策结果通过缓存决策消息传给请求缓存决策的交换机,交换机接收到缓存决策结果后将缓存决策结果写入内容包中,并对内容包进行标记,表明内容已进行缓存决策;若内容包已标记为已进行缓存决策,则从内容包中读取缓存决策结果,若缓存结果是自身节点(即上述交换机)则缓存该内容,若缓存结果不是自身节点则继续传输该内容包。
3.缓存决策策略数学建模
利用节点的重要度和边缘度以及内容流行度对节点和内容进行缓存决策的数学建模。将网络拓扑中节点分为三类:核心节点、边缘节点和普通节点。核心节点为节点重要度比较高的节点,相比其他节点,内容请求经过此节点的概率比其他节点大,边缘节点为节点边缘度比较高的节点,缓存在此节点的内容被请求时可以为用户提供较低的时延,将流行度较高的内容缓存在核心节点和/或边缘节点,流行度较低的内容缓存在普通节点。
内容k缓存在节点i的优化函数为
d表示为路径上节点的集合,ci表示该路径上节点i缓存的内容的集合。α越大,缓存决策结果倾向于将内容存储在节点边缘度较高的节点上;β越大,缓存决策结果倾向于将内容存储在节点重要度较高的节点上。
4.粒子群优化过程
控制器在应用粒子群算法过程中,为了降低算法的复杂度,缓存决策策略以路径为单位进行优化,控制器接收到缓存决策请求后根据内容路由路径上节点的重要度、节点的边缘度以及内容的流行度(此处内容路由路径仅是限定待优化节点的范围,而不是对节点重要度和边缘度以及内容流行度计算的限定)对缓存决策进行优化;对需要缓存的内容按照流行度进行分类(类别划分标准根据内容流行度分为两类或更多个类,需要分类的内容越多,则分类的个数也相应增加,避免某一类中包含过多内容),每个分类包含若干内容。通过以上两个措施可以减小控制器应用粒子群进行缓存决策时缓存节点数量和缓存内容单位的数量。
每次缓存决策后,能够得到部分内容的缓存决策的结果,因此当控制器收到缓存决策请求后,若内容已有缓存决策结果,则直接将结果传输给数据层,若没有则根据内容的路由路径进行缓存决策。
粒子群算法应用的具体过程如下:
1)定义编码方式
缓存策略的优化变量是内容类(根据流行度划分的类),粒子群算法根据适应度函数将路径上的节点和分类后的内容集进行匹配,粒子群算法中的每个粒子包括三个组成部分:位置、速度和适应度值。针对第s个粒子,采用整数编码,第s个粒子的位置xs以及速度vs的编码形式为:
xs={xs1,...,xsm},vs={vs1,...,vsm}
其中,xsi(i=1,...,m)表示分配给路径中第i个节点的某类内容集合的编号,vsi(i=1,...,m)表示分配给路径中第i个节点的内容集合(即内容类)编号的更新速度,m表示路径上的节点总数。适应度值是该粒子由适应函数得到的(适应度函数就是指上述优化函数)优化结果。
2)初始化粒子群
初始化时随机化所有粒子的位置和速度,根据粒子的最大速度,在速度域值内随机选择值作为粒子的初始化速度,根据内容集合编号,在内容集合编号域值内随机选择值作为粒子的初始化位置,将其作为每个粒子的最优解pbests,通过搜索粒子群得到全局最优解gbest。
3)位置、速度更新策略
根据粒子群的最优解和每个粒子的局部最优解更新每个粒子的速度,通过粒子的速度对粒子群中的每个粒子进行位置的更新从而进入下代粒子群。粒子的速度和位置更新公式如下:
vsi(t+1)=wvsi(t)+c1r1(pbestsi(t)-xsi(t))+c2r2(gbesti(t)-xsi(t))
xsi(t+1)=xsi(t)+vsi(t+1)
其中,t和t+1代表迭代次数,w代表保持原来速度的系数,c1是粒子跟踪个体最优值的权重,c2是粒子跟踪粒子群全局最优值的权重,r1和r2是[0,1]区间内均匀分布的随机数。
4)解码策略和收敛性检查
由于标准pso适用于求解连续解空间问题,可以将粒子由连续非整型变量转化为离散整型变量,方法是将非整数解码为最相近的整数值。由于pso收敛速度较快,判断收敛的方法:1)可以预先定义最大迭代次数来判断,2)判断全局最优解在一定的迭代次数之内没有变化,则收敛。
本发明的有益效果体现在:
本发明提出的基于软件定义网络的内容中心网络缓存方法,由控制层的控制器和数据层的交换机共同协作完成,充分利用了控制器具有逻辑中心化和全局控制的优势,使得缓存决策能够在多节点和多内容上进行整体的缓存优化,可以使得缓存决策在更大区域内完成多节点的协同以及节点和内容的协同,从而有效的降低路径延展率和提高缓存命中率。
附图说明
图1为缓存策略决策过程示意图;其中,1为控制器,s1~s9为交换机;
图2为控制器缓存决策示意图;
图3为交换机缓存策略过程示意图;
图4为粒子群优化处理流程图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
本发明提出了一种基于软件定义网络的内容中心网络的缓存策略,利用软件定义网络和内容中心网络融合架构下控制器具有逻辑中心化以及对全网感知的优势,根据全局网络拓扑和内容的信息,对内容进行集中和整体的缓存优化;本方法利用节点的重要度和边缘度以及内容的流行度进行整体的缓存优化数学建模,并在优化过程中应用了粒子群智能算法,加快了缓存优化收敛的速度。本发明提出的缓存决策算法能够明显的提高缓存命中率和降低路径延展率。
1.缓存流程
在软件定义网络和内容中心网络融合架构下,缓存决策由控制层的控制器完成,因此,缓存决策过程需要由控制器和交换机协作完成,交换机需要收集缓存信息、缓存内容、向控制器发送缓存相关的消息,控制器则集中处理交换机收集的缓存信息并做出缓存决策。
本发明所述基于软件定义网络的内容中心网络的缓存策略如图1所示,其缓存决策由控制层的控制器1来进行,数据层的交换机收到未标记的内容包后向控制器1询问。当回复用户内容请求的内容包进入数据层的网络后,若交换机收到未标记的内容包101,交换机向控制层的控制器发送缓存决策请求102,控制器缓存决策后向交换机返回缓存决策结果103,交换机继续内容包的传输104。
本发明所述基于软件定义网络的内容中心网络的缓存策略中,控制器的缓存决策过程如图2所示,控制层的控制器周期性的进行缓存信息的统计,并进行相应的先期处理。当控制器收到缓存决策请求后,首先判断相关内容是否有缓存结果,若没有则根据数学模型进行粒子群优化算法,得到结果后将结果下发给提出缓存决策请求的交换机,若有则直接将结果下发给提出缓存决策请求的交换机。
本发明所述基于软件定义网络的内容中心网络的缓存策略中,交换机的缓存过程如图3所示,数据层的交换机在收到内容包后,首先判断内容包是否已标记,若没有标记,向控制器发送包含内容名的缓存决策请求消息,并等待控制器的缓存决策结果,当交换机收到缓存决策结果消息后,将缓存决策结果写入该内容包,并对该内容包进行标记,以表明该内容包中的内容已经进行缓存决策,然后继续传输该内容包。若已进行过标记,则判断缓存节点是否是自身节点,若是则缓存内容,然后继续传输内容包,若不是则直接传输内容包。
2.相关定义
在网络缓存拓扑中,不同位置的缓存节点其缓存具有不同的价值,距离用户较近的缓存节点能够为用户提供低时延的服务,有效的降低缓存的路径延展率,而处于核心位置的缓存能够为更多的用户服务,因此可以有效提高缓存命中率。在网络中,根据齐普夫定律和二八原则,内容各自有不同的缓存价值,若是能够将最为常用的内容缓存在缓存价值更高的节点,则能够较大的提高缓存的效率。
本发明所述基于软件定义网络的内容中心网络的缓存策略中,节点重要度表示内容的路由路径经过交换机的次数。交换机在收到控制器下发的流表时,对下发的流表信息进行统计,根据交换机统计的信息可以得到每个内容的路由路径经过此交换机的次数,次数越多则交换机对该内容的重要度越大。如图1所示,服务器c2提供内容ct1、ct2、ct3,服务器c4提供内容ct4、ct5。用户c1、c3分别请求内容ct3时,其路由路径分别为s8→s3→s4→s5→s6→s7、s1→s2→s3→s4→s5→s6→s7,在此场景中,其中s8、s1、s2对于内容ct3的路由路径数分别为1,而s3、s4、s5、s6、s7对于内容ct3的路由路径数分别为2,因此其中s8、s1、s2对于内容ct3的节点重要度为1。
本发明所述基于软件定义网络的内容中心网络的缓存策略中,节点边缘度表示节点在内容的路由路径中离用户的距离。节点离用户终端越近,那么将内容缓存在该节点,则用户终端请求该节点的内容时的时延更短。如图1所示,对于内容ct3,s3离用户c3的距离为2,离用户c1的距离为3,根据节点边缘度的公式
本发明所述基于软件定义网络的内容中心网络的缓存策略中,每个节点通过对内容请求包的统计,得到每个内容的请求次数,在本发明中将一个周期内节点处内容的请求次数作为内容在节点处的流行度。如图1所示,在一个周期内,若用户c1发送了100次请求,其中请求内容ct3的次数为20,那么内容ct3在s1处的内容流行度为20。
3.缓存决策优化过程
控制器在应用粒子群算法过程中,为了降低算法的复杂度,缓存决策策略以路径为单位进行优化;对要缓存的内容进行分类处理,缓存对象由内容变为内容的集合,因此优化匹配的对象节点和内容数都明显降低,有效降低了算法的复杂度。如图1所示,当服务器c2回复用户c1对于内容ct3的兴趣包,将包含内容ct3的内容包发送至网络。此时当控制器收到s7的缓存决策请求后,控制器开始决策过程,此时内容ct3的路由路径为s7→s6→s5→s4→s3→s2→s1,因此决策过程优化的节点(即交换机)为s1、s2、s3、s4、s5、s6、s7,控制器在收集的缓存信息中将这些节点的信息进行归一化处理,并对内容按照流行度进行排名,按照排名顺序对内容进行分类,每类包含一定数量的内容。
内容k缓存在节点i的优化函数为
d表示为路径上节点的集合,ci表示该路径上节点i缓存的内容的集合。
4.粒子群处理过程
本发明所述基于软件定义网络的内容中心网络的缓存策略中,缓存决策的粒子群优化处理如图4所示。
首先,定义编码方式,缓存策略的优化变量是内容类,粒子群算法根据适应度函数将路径上的节点和分类后的内容集进行匹配,粒子群算法中的每个粒子包括三个组成部分:位置、速度和适应度值。针对第s个粒子,采用整数编码,其编码形式如式xs={xs1,...,xsm},vs={vs1,...,vsm},xsi(i=1,...,m)表示分配给路径中第i个节点的某类内容的集合编号,vsi(i=1,...,m)表示分配给路径中第i个节点的内容集合编号的更新速度。适应度值是该粒子由适应函数得到的优化结果。
然后,初始化粒子群,随机化所有粒子的位置和速度,根据粒子的最大速度,在速度域值内随机选择值作为粒子的初始化速度,根据内容集合编号,在内容集合编号域值内随机选择值作为粒子的初始化位置,将其作为每个粒子的最优解pbests,通过搜索粒子群得到全局最优解gbest。
第三,位置、速度更新策略,根据粒子群的最优解和每个粒子的局部最优解更新每个粒子的速度,通过粒子的速度对粒子群中的每个粒子进行位置的更新从而进入下代粒子群。粒子的速度和位置更新公式如下:
vsi(t+1)=wvsi(t)+c1r1(pbestsi(t)-xsi(t))+c2r2(gbesti(t)-xsi(t))
xsi(t+1)=xsi(t)+vsi(t+1)
其中t和t+1代表迭代次数,w代表保持原来速度的系数,c1是粒子跟踪个体最优值的权重,c2是粒子跟踪粒子群全局最优值的权重,r1和r2是[0,1]区间内均匀分布的随机数。
最后,解码策略和收敛性检查,由于标准pso适用于求解连续解空间问题,可以将粒子由连续非整型变量转化为离散整型变量,方法是将非整数解码为最相近的整数值(例如,四舍五入)。由于pso收敛速度较快,判断收敛的方法1)可以预先定义最大迭代次数来判断,2)判断全局最优解在给定的迭代次数之内没有变化则收敛。在仿真中两种判断收敛的方法都采用过,方法1)的迭代次数范围是[5,10]。
经过仿真试验,针对ccn与sdn融合网络架构,本发明的缓存策略相比基于随机缓存决策以及沿路缓存决策的缓存策略可以显著的降低路径延展率和提高缓存命中率。另外,各个交换机的缓存替换数显著下降,即便是缓存内容相对较多的交换机也不会频繁发生缓存替换。