本发明涉及通信工程技术领域,尤其涉及一种基于内容中心网络的改进k均值聚类路由方法。
背景技术:
近年来,随着通信技术的发展,互联网的使用人数大幅度增长,接入互联网的设备数量也急剧增加。数据密集型应用成为当今用户个性化和内容化需求的重要组成部分,人们对于移动性和内容高效分发及获取的要求越来越高,传统tcp/ip体系架构在可扩展性问题、安全性问题、移动性问题和可管可控性问题上逐渐显现出了它的不足。针对网络中存在的问题,许多专家和学者们对未来网络的发展方向进行了大量的研究和探索,设计了一种新型互联网架构,即内容中心网络。
内容中心网络的路由转发采用面向源服务器的方式,能够充分利用在此路径(请求节点到源服务器的路径)上存储的缓存内容,距离较近但不在此路径上的节点缓存资源却不能被很好的利用。这种盲目式的路由方式容易忽略最近存储节点的缓存内容,直接面向较远的源服务器,这会导致更长的路径传输,更大的传输时延,也会增加节点负载,浪费链路资源。因此,设计一种高效的路由方法来提高缓存资源的利用率变得很重要。
技术实现要素:
针对上述现有技术的不足,本专利申请所要解决的技术问题是:如何提供一种提高缓存资源利用率的基于内容中心网络的改进k均值聚类路由方法。
为了实现上述目的,本发明采用了如下技术方案:
一种基于内容中心网络的改进k均值聚类路由方法,包括以下步骤:
s1:对k均值聚类算法进行改进,其中改进的方面为相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定;
s2:利用步骤s1中改进后的k均值聚类算法对内容中心网络节点进行聚类;
s3:聚类完成后,将每个聚类内部节点分为边缘节点、控制节点和普通节点;
s4:设计hello包、response包、内容路径信息表和缓存路径信息表格式;
s5:不同节点收到不同种类的包,按照不同的转发方式进行转发。
优选的,步骤s1中对k均值聚类算法进行改进中,相似性度量的函数如下:
其中,
优选的,步骤s1中,使用改进k均值算法采用误差平方和为聚类准则函数,定义如下:
其中,ws(cj)表示第j个聚类的节点与聚类中心间节点关联度的平均值,其计算方法如下:
优选的,步骤s1中确定聚类数目采用elbow方法.
优选的,初始聚类中心的选取,具体包括以下步骤:
a1:选择任意一个样本节点作为第一个聚类中心,计为c1;
a2:计算其余样本节点与c1的节点关联度
a3:选择相似性程度最低即
a4:去除这两个聚类中心,计算其余样本节点到c2的节点关联度
a5:计算
a6:依照此方法计算,直到选出k个聚类中心为止。
优选的,步骤s1中,在迭代聚类中心的确定是遵循聚类中与聚类中心节点关联度均值最接近的节点为新的聚类中心的原则进行选取。
优选的,步骤s3中,对每个聚类内部节点进行分类时的分类方法为:边缘节点是与其他聚类直接相连的节点;控制节点是节点关联度最大的非边缘节点;聚类内的其他节点都是普通节点。
优选的,步骤s4中,设计的hello包包括:nodename字段表示发出此包的节点名称、packagetype字段表示此包的类型、contentname/newnodename字段表示更新的内容名称、destination字段表示该包要发往的目的节点;
response包包含:nodename字段表示发出此包的节点名称、response字段表示给对方的回复信息、road/node字段表示本聚类内部的节点信息、destination字段表示该包要发往的目的节点;
内容路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数;
缓存路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数、本聚类是否有此内容缓存。
优选的,步骤s5中,不同节点的不同转发方式中,控制节点的工作流程为:控制节点收到兴趣包后,提取兴趣包的内容名称并添加到缓存路径信息表中,若内容缓存表cs或者待定兴趣表pit与该兴趣包的内容名称匹配成功,处理过程与内容中心网络中节点处理兴趣包的一般过程相同;若内容缓存表cs和待定兴趣表pit均未匹配成功,查询缓存路径信息表,检查该节点所在的聚类内部是否存在节点缓存有该内容,若有,比较控制节点到该兴趣包所请求的内容服务器和到聚类内部缓存节点的跳数,按照跳数较少的路径转发,若无,则查询转发信息表fib,按照转发信息表fib指示的接口进行转发;
控制节点收到数据包后,若需要缓存数据,把该数据内容名称添加到缓存路径信息表中;
控制节点处理hello包时,先检查缓存路径信息表判定该包是否为本聚类内部节点所发送,若否且该包是请求加入本聚类的包,回复response包同意其加入,并给聚类内部其他节点发送一个hello包告知,若该包询问本聚类内部是否有相应内容,控制节点需查询缓存路径信息表判断聚类内部是否有该内容,并根据自己的接口状态决定返回给节点的内容。
优选的,步骤s5中,不同节点的不同转发方式中,非控制节点的工作流程为:非控制节点处理兴趣包时,首先提取内容名称并添加到缓存路径信息表中,若该兴趣包是本聚类内部节点所发送,直接按相应的接口转发,若否,按顺序查询内容缓存表cs和待定兴趣表pit,若这两者均未命中,向控制节点发送hello包查询本聚类内部是否有节点有该内容信息,若聚类内部无该内容,则再查询转发信息表fib进行转发;若控制节点返回的是到聚类内部包含该内容的节点路径,查询内容路径信息表,比较本节点到源服务器跳数和到包含该内容的节点跳数,选择跳数较少的路径进行转发;
非控制节点收到数据包之后,若缓存该数据包,向控制节点发送hello包,表明该节点缓存了某内容;
非控制节点收到hello包时,若该包是询问控制节点上是否有某内容,则提取hello包中的内容名称,与内容缓存表cs匹配,若匹配成功,传回数据并丢弃该hello包;若匹配不成功,与待定兴趣表pit匹配,若待定兴趣表pit匹配成功,在pit对应的条目中添加hello包的到达接口,丢弃该hello包,若内容缓存表cs或者待定兴趣表pit都未匹配成功,将该包转发至控制节点,当非控制节点长时间没有向控制节点报告自己的状态时,控制节点会给该节点发送hello包询问该节点是否还在正常工作,此时非控制节点须回复一个response包表明自己还在正常工作,若不回复,控制节点便认为该节点不能正常工作,在缓存路径信息表中删除该节点的信息,当聚类内部有新的节点加入时,控制节点会给全聚类内节点发送一个hello包,聚类内节点把新节点添加到内容路径信息表中;
非控制节点若收到控制节点发送而来的同意加入聚类内的response包,提取response包中包含的聚类内节点信息,非控制节点发送hello包询问控制节点上是否有某内容后,收到的response包中,若包含含有内容的节点信息,则提取,若不包含,表示聚类内无该内容。
有益效果
(1)本发明的一种内容中心网络的改进k均值聚类路由方法,将k均值聚类算法从相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定五个方面进行改进,使改进后的k均值聚类算法适用于内用中心网络这种新型的网络架构。
(2)本发明的一种内容中心网络的改进k均值聚类路由方法,将聚类的思想引入到内容中心网络的路由中,且将每个聚类内部节点分为边缘节点、控制节点和普通节点,各类节点的相互配合,可以更快的获得所需数据,提高缓存资源的利用率。
(3)本发明的一种内容中心网络的改进k均值聚类路由方法,设计了hello包、response包、内容路径信息表和缓存路径信息表格式,利于内容中心网络节点统计聚类内部的资源,方便整个网络中资源的统筹使用。
附图说明:
图1为本发明公开的基于内容中心网络的改进k均值聚类路由方法的步骤图。
图2为本发明内容中心网络中控制节点处理兴趣包流程图。
图3是本发明内容中心网络中控制节点处理hello包流程图。
图4是本发明内容中心网络中非控制节点处理兴趣包流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
参照图1-图4,一种基于内容中心网络的改进k均值聚类路由方法,包括以下步骤:
s1:对k均值聚类算法进行改进,其中改进的方面为相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定;
s2:利用步骤s1中改进后的k均值聚类算法对内容中心网络节点进行聚类;
s3:聚类完成后,将每个聚类内部节点分为边缘节点、控制节点和普通节点;
s4:设计hello包、response包、内容路径信息表和缓存路径信息表格式;
s5:不同节点收到不同种类的包,按照不同的转发方式进行转发。
优选的,步骤s1中对k均值聚类算法进行改进中,相似性度量的函数如下:
其中,
优选的,步骤s1中,使用改进k均值算法采用误差平方和为聚类准则函数,定义如下:
其中,ws(cj)表示第j个聚类的节点与聚类中心间节点关联度的平均值,其计算方法如下:
优选的,步骤s1中确定聚类数目采用elbow方法。
优选的,初始聚类中心的选取,具体包括以下步骤:
a1:选择任意一个样本节点作为第一个聚类中心,计为c1;
a2:计算其余样本节点与c1的节点关联度
a3:选择相似性程度最低即
a4:去除这两个聚类中心,计算其余样本节点到c2的节点关联度
a5:计算
a6:依照此方法计算,直到选出k个聚类中心为止。
优选的,步骤s1中,在迭代聚类中心的确定是遵循聚类中与聚类中心节点关联度均值最接近的节点为新的聚类中心的原则进行选取。
优选的,步骤s3中,对每个聚类内部节点进行分类时的分类方法为:边缘节点是与其他聚类直接相连的节点;控制节点是节点关联度最大的非边缘节点;聚类内的其他节点都是普通节点。
优选的,步骤s4中,设计的hello包包括:nodename字段表示发出此包的节点名称、packagetype字段表示此包的类型、contentname/newnodename字段表示更新的内容名称、destination字段表示该包要发往的目的节点;
response包包含:nodename字段表示发出此包的节点名称、response字段表示给对方的回复信息、road/node字段表示本聚类内部的节点信息、destination字段表示该包要发往的目的节点;
内容路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数;
缓存路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数、本聚类是否有此内容缓存。
优选的,步骤s5中,不同节点的不同转发方式中,控制节点的工作流程为:控制节点收到兴趣包后,其中,所述兴趣包为内容中心网络中的数据请求节点发出的数据请求包,提取兴趣包的内容名称并添加到缓存路径信息表中,若内容缓存表cs或者待定兴趣表pit与该兴趣包的内容名称匹配成功,处理过程与内容中心网络中节点处理兴趣包的一般过程相同;若内容缓存表cs和待定兴趣表pit均未匹配成功,查询缓存路径信息表,检查该节点所在的聚类内部是否存在节点缓存有该内容,若有,比较控制节点到该兴趣包所请求的内容服务器和到聚类内部缓存节点的跳数,按照跳数较少的路径转发,若无,则查询转发信息表fib,按照转发信息表fib指示的接口进行转发;
控制节点收到数据包后,若需要缓存数据,把该数据内容名称添加到缓存路径信息表中;
控制节点处理hello包时,先检查缓存路径信息表判定该包是否为本聚类内部节点所发送,若否且该包是请求加入本聚类的包,回复response包同意其加入,并给聚类内部其他节点发送一个hello包告知,若该包询问本聚类内部是否有相应内容,控制节点需查询缓存路径信息表判断聚类内部是否有该内容,并根据自己的接口状态决定返回给节点的内容。
优选的,步骤s5中,不同节点的不同转发方式中,非控制节点的工作流程为:非控制节点处理兴趣包时,首先提取内容名称并添加到缓存路径信息表中,若该兴趣包是本聚类内部节点所发送,直接按相应的接口转发,若否,按顺序查询内容缓存表cs和待定兴趣表pit,若这两者均未命中,向控制节点发送hello包查询本聚类内部是否有节点有该内容信息,若聚类内部无该内容,则再查询转发信息表fib进行转发;若控制节点返回的是到聚类内部包含该内容的节点路径,查询内容路径信息表,比较本节点到源服务器跳数和到包含该内容的节点跳数,选择跳数较少的路径进行转发;
非控制节点收到数据包之后,若缓存该数据包,向控制节点发送hello包,表明该节点缓存了某内容;
非控制节点收到hello包时,若该包是询问控制节点上是否有某内容,则提取hello包中的内容名称,与内容缓存表cs匹配,若匹配成功,传回数据并丢弃该hello包;若匹配不成功,与待定兴趣表pit匹配,若待定兴趣表pit匹配成功,在pit对应的条目中添加hello包的到达接口,丢弃该hello包,若内容缓存表cs或者待定兴趣表pit都未匹配成功,将该包转发至控制节点,当非控制节点长时间没有向控制节点报告自己的状态时,控制节点会给该节点发送hello包询问该节点是否还在正常工作,此时非控制节点须回复一个response包表明自己还在正常工作,若不回复,控制节点便认为该节点不能正常工作,在缓存路径信息表中删除该节点的信息,当聚类内部有新的节点加入时,控制节点会给全聚类内节点发送一个hello包,聚类内节点把新节点添加到内容路径信息表中;
非控制节点若收到控制节点发送而来的同意加入聚类内的response包,提取response包中包含的聚类内节点信息,非控制节点发送hello包询问控制节点上是否有某内容后,收到的response包中,若包含含有内容的节点信息,则提取,若不包含,表示聚类内无该内容。
有益效果
(1)本发明的一种内容中心网络的改进k均值聚类路由方法,将k均值聚类算法从相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定五个方面进行改进,使改进后的k均值聚类算法适用于内用中心网络这种新型的网络架构。
(2)本发明的一种内容中心网络的改进k均值聚类路由方法,将聚类的思想引入到内容中心网络的路由中,且将每个聚类内部节点分为边缘节点、控制节点和普通节点,各类节点的相互配合,可以更快的获得所需数据,提高缓存资源的利用率。
(3)本发明的一种内容中心网络的改进k均值聚类路由方法,设计了hello包、response包、内容路径信息表和缓存路径信息表格式,利于内容中心网络节点统计聚类内部的资源,方便整个网络中资源的统筹使用。
本发明所设计的一种内容中心网络的改进k均值聚类路由方法,针对路径外缓存资源得不到充分利用的问题,提出一种基于节点聚类的路由方法。该方法将k均值聚类算法从相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定五个方面进行改进,利用改进后的k均值聚类算法对内容中心网络节点聚类。将聚类完成的节点分为控制节点、边缘节点和普通节点,并设计hello包、response包、内容路径信息表和缓存路径信息表格式来统计聚类内各个节点的缓存资源。针对不同节点和节点收到的不同种类的包,设计的路由转发方法也不同。通过这种设计,能统筹使用整个网络的缓存资源,提高缓存资源的体用率。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
1.一种基于内容中心网络的改进k均值聚类路由方法,其特征在于:包括以下步骤:
s1:对k均值聚类算法进行改进,其中改进的方面为相似性度量的定义、聚类准则函数的确定、聚类数目的确定、初始聚类中心的选取和迭代聚类中心的确定;
s2:利用步骤s1中改进后的k均值聚类算法对内容中心网络节点进行聚类;
s3:聚类完成后,将每个聚类内部节点分为边缘节点、控制节点和普通节点;
s4:设计hello包、response包、内容路径信息表和缓存路径信息表格式;
s5:不同节点收到不同种类的包,按照不同的转发方式进行转发。
2.根据权利要求1所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s1中对k均值聚类算法进行改进中,相似性度量的函数如下:
其中,
3.根据权利要求2所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s1中,使用改进k均值算法采用误差平方和为聚类准则函数,定义如下:
其中,ws(cj)表示第j个聚类的节点与聚类中心间节点关联度的平均值,其计算方法如下:
4.根据权利要求3所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s1中确定聚类数目采用elbow方法。
5.根据权利要求4所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,初始聚类中心的选取,具体包括以下步骤:
a1:选择任意一个样本节点作为第一个聚类中心,计为c1;
a2:计算其余样本节点与c1的节点关联度
a3:选择相似性程度最低即
a4:去除这两个聚类中心,计算其余样本节点到c2的节点关联度
a5:计算
a6:依照此方法计算,直到选出k个聚类中心为止。
6.根据权利要求5所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s1中,在迭代聚类中心的确定是遵循聚类中与聚类中心节点关联度均值最接近的节点为新的聚类中心的原则进行选取。
7.根据权利要求6所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s3中,对每个聚类内部节点进行分类时的分类方法为:边缘节点是与其他聚类直接相连的节点;控制节点是节点关联度最大的非边缘节点;聚类内的其他节点都是普通节点。
8.根据权利要求7所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s4中,设计的hello包包括:nodename字段表示发出此包的节点名称、packagetype字段表示此包的类型、contentname/newnodename字段表示更新的内容名称、destination字段表示该包要发往的目的节点;
response包包含:nodename字段表示发出此包的节点名称、response字段表示给对方的回复信息、road/node字段表示本聚类内部的节点信息、destination字段表示该包要发往的目的节点;
内容路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数;
缓存路径信息表包含:内容名称、内容大小、请求次数、本节点到服务器的跳数、聚类内节点名称、转发接口、跳数、本聚类是否有此内容缓存。
9.根据权利要求8所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s5中,不同节点的不同转发方式中,控制节点的工作流程为:控制节点收到兴趣包后,提取兴趣包的内容名称并添加到缓存路径信息表中,若内容缓存表cs或者待定兴趣表pit与该兴趣包的内容名称匹配成功,处理过程与内容中心网络中节点处理兴趣包的一般过程相同;若内容缓存表cs和待定兴趣表pit均未匹配成功,查询缓存路径信息表,检查该节点所在的聚类内部是否存在节点缓存有该内容,若有,比较控制节点到该兴趣包所请求的内容服务器和到聚类内部缓存节点的跳数,按照跳数较少的路径转发,若无,则查询转发信息表fib,按照转发信息表fib指示的接口进行转发;
控制节点收到数据包后,若需要缓存数据,把该数据内容名称添加到缓存路径信息表中;
控制节点处理hello包时,先检查缓存路径信息表判定该包是否为本聚类内部节点所发送,若否且该包是请求加入本聚类的包,回复response包同意其加入,并给聚类内部其他节点发送一个hello包告知,若该包询问本聚类内部是否有相应内容,控制节点需查询缓存路径信息表判断聚类内部是否有该内容,并根据自己的接口状态决定返回给节点的内容。
10.根据权利要求9所述的一种基于内容中心网络的改进k均值聚类路由方法,其特征在于,步骤s5中,不同节点的不同转发方式中,非控制节点的工作流程为:非控制节点处理兴趣包时,首先提取内容名称并添加到缓存路径信息表中,若该兴趣包是本聚类内部节点所发送,直接按相应的接口转发,若否,按顺序查询内容缓存表cs和待定兴趣表pit,若这两者均未命中,向控制节点发送hello包查询本聚类内部是否有节点有该内容信息,若聚类内部无该内容,则再查询转发信息表fib进行转发;若控制节点返回的是到聚类内部包含该内容的节点路径,查询内容路径信息表,比较本节点到源服务器跳数和到包含该内容的节点跳数,选择跳数较少的路径进行转发;
非控制节点收到数据包之后,若缓存该数据包,向控制节点发送hello包,表明该节点缓存了某内容;
非控制节点收到hello包时,若该包是询问控制节点上是否有某内容,则提取hello包中的内容名称,与内容缓存表cs匹配,若匹配成功,传回数据并丢弃该hello包;若匹配不成功,与待定兴趣表pit匹配,若待定兴趣表pit匹配成功,在pit对应的条目中添加hello包的到达接口,丢弃该hello包,若内容缓存表cs或者待定兴趣表pit都未匹配成功,将该包转发至控制节点,当非控制节点长时间没有向控制节点报告自己的状态时,控制节点会给该节点发送hello包询问该节点是否还在正常工作,此时非控制节点须回复一个response包表明自己还在正常工作,若不回复,控制节点便认为该节点不能正常工作,在缓存路径信息表中删除该节点的信息,当聚类内部有新的节点加入时,控制节点会给全聚类内节点发送一个hello包,聚类内节点把新节点添加到内容路径信息表中;
非控制节点若收到控制节点发送而来的同意加入聚类内的response包,提取response包中包含的聚类内节点信息,非控制节点发送hello包询问控制节点上是否有某内容后,收到的response包中,若包含含有内容的节点信息,则提取,若不包含,表示聚类内无该内容。
技术总结