本发明涉及通信技术和内容分发网络领域,尤其涉及一种节点自组网中基于覆盖率动态调整的内容分发方法。
背景技术:
随着p2p网络的迅速扩展,用户之间进行资源共享是一种很好的缓解服务器压力的模式。因此,在传统的cdn下构建p2p网络,在保证用户的服务质量的同时可以缓解服务器的压力。因为用户节点存储能力的限制,节点只能存储有限数量的内容。因此,针对部分热度极高、用户访问概率极大的内容,边缘服务器或内容源节点可以按照一定的局部覆盖率,将该内容分发至整个网络,使得网络中的所有节点均满足覆盖率要求。当用户希望访问该内容时,能够从本地或邻居节点中快速获取内容,既保证了服务的质量,又减小了边缘服务器的压力。
现有的内容分发方法多数研究的是如何将文件从单个节点分发至网络中的所有节点,因此如何根据指定的覆盖率将热门的内容从内容源节点快速、高效地分发到整个网络中具有重要的研究价值。在节点只能从一跳邻居上获取文件内容的条件下,在文件默认覆盖率较低且分发过程中维持不变时,部分节点的邻居中已缓存的副本数过少,少部分节点的分发较慢将影响整个网络分发完成的时间。实质上,在节点规模较大时,每个节点的邻居节点都很多,充分利用自组网中距离内容源节点较近的节点资源可以有效的辅助内容的分发。距离内容源节点较近的节点的覆盖率进行部分提高,利用初始部分节点完成默认覆盖率要求后存在的空闲时段,增加文件的副本数,辅助整个分发后期的部分节点的分发,提高整个网络的分发速率。因此,有必要提议节点自组网中基于覆盖率动态调整的内容快速分发方法,使得节点能够利用已知的局部的连接信息和自身在自组网中与内容源节点的跳数,充分利用自身的资源,动态调整覆盖率,将内容从源节点按照一定的覆盖率快速的扩散到整个网络。
技术实现要素:
本发明目的在于克服利用覆盖率进行内容分发时存在的上述缺陷,提出了一种节点自组网中基于覆盖率动态调整的内容分发方法,该方法利用节点已知的局部的连接信息和自身在自组网中与内容源节点的跳数,充分利用自身的资源,动态调整覆盖率,利用初始部分节点完成默认覆盖率要求后存在的空闲时段,增加文件的副本数,辅助整个分发后期的部分节点的分发,提高整个网络的分发速率。将内容从单个源节点以一定的覆盖率快速、高效地分发到整个网络中,使得网络中的所有节点的对该内容的覆盖率均满足默认要求。
为了实现上述目的,本发明公开了一种节点自组网中基于覆盖率动态调整的内容分发方法,所述方法包括:
内容源节点在通过网络状态构建的节点自组网内进行一定覆盖率需求的内容分发时,网络中其余节点根据内容源节点的广播信息确定与内容源节点的最小距离;节点根据最小距离动态调整自身对该内容的覆盖率要求,增加与内容源节点较近的节点关于内容的覆盖率要求以利用更多节点的闲置资源促进分发;分发过程中节点的覆盖率不满足需求要选择邻居节点时,综合考虑向邻居节点的传输增益和该邻居节点可利用的上传带宽,选择综合指标最大的节点进行分发;通过不断的邻居节点的扩散,将内容分发至整个网络,最终使得网络中每个节点对该内容的覆盖率均满足要求。
作为上述方法的一种改进,所述方法具体包括:
步骤1)节点通过选择与本节点网络状态较好的节点构建邻居关系,组成节点自组网;
步骤2)内容源节点将分发内容的消息通过节点自组网进行广播,节点确定与内容源节点最小跳数,内容源节点确定与网络中所有节点的最小跳数的最大值后开始进行分发;
步骤3)每个节点根据本节点与内容源节点的最小跳数与网络中的最小跳数的最大值,动态调整节点关于该内容的覆盖率;
步骤4)拥有内容或收到扩散指令的节点计算当前对于该内容的覆盖率,判断当前覆盖率是否满足动态调整后的覆盖率要求;若覆盖率满足要求,向所有邻居节点发送扩散指令,否则,转入步骤5);
步骤5)每个未缓存该内容的邻居节点计算缓存该内容对网络带来的缓存增益;
步骤6)内容源节点根据收到的未缓存该内容的邻居节点的缓存增益,同时考虑内容源节点与该节点间的传输代价和邻居节点可参与分发的上传带宽,选择具有最大综合指标的节点进行分发;
步骤7)分发完成后继续计算当前的内容覆盖率,跳至步骤4),直到节点对该内容的覆盖率满足动态调整后的覆盖率要求。
作为上述方法的一种改进,所述步骤2)具体包括:
步骤201)内容源节点将需要分发的内容消息通过节点自组网进行广播;
步骤202)节点根据收到的内容消息的最小转发次数确定本节点与内容源节点的最小跳数,节点在更新最小跳数后向邻居节点转发信息;
步骤203)节点确认与内容源节点的最短距离后,向内容源节点发送距离信息;
步骤204)内容源节点在通过收到的距离信息确定网络中与自身节点距离最大的节点跳数后开始分发内容。
作为上述方法的一种改进,所述步骤3)中动态调整节点关于该内容的覆盖率为采用指数衰减函数对覆盖率进行动态调整,覆盖率的调整公式为:
上式中,ni表示节点i,fj表示内容j,covdr(ni,fj)表示节点i对内容j动态调整后的覆盖率,covd(fj)表示内容j的默认覆盖率,li表示节点i在自组网中与内容源节点的最短距离,α表示衰减因子,即网络中与内容源节点相距最大的节点的跳数。
作为上述方法的一种改进,所述步骤4)中,所述覆盖率为节点和节点所有的邻居节点中该内容的副本数量占包含该节点在内的邻居节点的数量的百分比。
作为上述方法的一种改进,所述步骤5)的缓存增益为该节点缓存该内容后对本地节点和邻居节点满足覆盖率要求带来的变化,其中包括本地缓存增益和邻居缓存增益;
计算公式为:
其中,
本地缓存增益的计算公式为:
其中,cov(nm,fj)表示节点m当前对内容j的覆盖率,covs(nm,fj)表示节点m缓存内容j后的覆盖率;
邻居缓存增益的计算公式为:
其中,
作为上述方法的一种改进,所述步骤6)具体包括:
步骤601)源节点收集所有未缓存该内容的邻居节点的缓存增益和上传带宽;
步骤602)源节点计算将内容传输到邻居节点的传输代价:
其中,
步骤603)源节点根据收到的缓存增益和计算得到的传输代价,计算出未缓存该内容的每个邻居节点对应的传输增益:
其中,
步骤604)源节点将计算出的邻居节点的传输增益和上传带宽进行归一化后计算综合指标:
其中,
步骤605)源节点选择具有最大综合指标的未缓存该内容的邻居节点进行分发:
本发明的优点在于:
1、本发明提出了的方法能够使网络中的节点利用已知的局部信息,根据自身在自组网中与内容源节点的最短距离,动态调整覆盖率来充分利用自身的资源,不断选择综合指标最大的节点分发内容,实现将文件从内容源节点按照一定的覆盖率快速、高效地扩散至整个网络;
2、本发明的方法在内容的覆盖率要求较低的场合效果更佳。
附图说明
图1是本发明的节点自组网中基于覆盖率动态调整的内容分发方法的流程图。
具体实施方式
下面结合附图对本发明的技术方案进行详细说明。
如图1所示,一种节点自组网中基于覆盖率动态调整的内容分发方法,所述方法包括:
步骤1)节点通过选择与本节点网络状态较好的节点构建邻居关系,组成节点自组网;
步骤2)内容源节点将分发消息通过自组网进行广播,节点确定与内容源节点最小跳数。内容源节点确定与网络中节点的最大跳数后开始进行分发;
所述步骤2)进一步包括:
步骤201)拥有内容的节点作为内容源节点,将需要分发的内容消息通过自组网进行广播;
步骤202)节点根据收到的内容消息的最小转发次数确定本节点与内容源节点的最小跳数,为避免广播信息在网络中无限循环形成风暴,节点只有在更新了最小跳数后才会向邻居节点转发信息;
步骤203)节点最终确认与内容源节点的最短距离后,在最短距离较大的情况下向内容源节点发送距离信息;
步骤204)内容源节点在通过收到的距离信息确定网络中与本节点距离最大的节点跳数后开始分发内容。
内容源节点通过自组网广播分发内容的信息。节点通过收到的最少转发次数的消息确定自身与内容源节点的最小跳数。为避免广播信息在网络中无限循环形成风暴,节点只有在更新了最小跳数后才会向邻居节点转发信息。
步骤3)每个节点根据本节点与内容源节点的最小跳数与网络中的最小跳数的最大值,动态调整节点关于该内容的覆盖率。
动态调整方法是指数衰减函数对覆盖率进行动态调整。
具体的衰减公式为:
上式中ni表示节点i,fj表示内容j,covdr(ni,fj)表示节点i对内容j动态调整后的覆盖率,covd(fj)表示内容j的默认覆盖率,li表示节点i在自组网中与内容源节点的最短距离,α表示衰减因子,此处即网络中与内容源节点相距最大的节点的跳数。
步骤4)拥有内容或收到扩散指令的节点计算当前对于该内容的覆盖率,判断当前覆盖率是否满足动态调整后的覆盖率要求。
步骤中的覆盖率是指邻居中存储了所需影片的邻居数目(包括自己在内)占总的邻居数目的比例,记为cov,取值范围为0≤cov≤1。
步骤5)若覆盖率满足要求,向所有邻居节点发送扩散指令。若覆盖率不满足要求,每个未缓存该内容的邻居节点计算缓存该内容对网络带来的增益。
所述步骤5)进一步包括:
步骤501)当前覆盖率不满足动态调整后的覆盖率要求时,该节点的未缓存该内容的邻居节点计算当前缓存该内容的缓存增益;
步骤502)缓存增益包含本地缓存增益和邻居缓存增益,具体的计算方式为:
其中
本地缓存增益的计算公式为:
其中cov(nm,fj)表示节点m当前对内容j的覆盖率,covs(nm,fj)表示节点m缓存内容j后的覆盖率。
邻居缓存增益的计算公式为:
其中
步骤6)源节点根据收到的未缓存该内容的邻居节点的缓存增益,同时考虑源节点与该节点间的传输代价和邻居节点的上传带宽,贪婪的选择具有最大综合指标的节点进行分发;
步骤6)进一步包括:
步骤601)源节点收集所有未缓存该内容的邻居节点的缓存增益,上传带宽;
步骤602)源节点计算将内容传输到邻居节点的传输代价,具体的计算公式为:
其中
步骤603)源节点根据收到的缓存增益和计算得到的传输代价,计算出未缓存该内容的每个邻居节点对应的传输增益。传输增益的计算公式如下:
其中
步骤604)节点将计算出的邻居节点的传输增益和上传带宽进行相应的归一化后进行综合得到增益与带宽的综合指标。
其中
步骤605)节点选择具有最大综合指标的未缓存该内容的邻居节点进行分发;
数学表示如下:
步骤7)分发完成后继续计算当前的文件覆盖率,跳至步骤4),直到节点对该内容的覆盖率满足动态调整后的覆盖率要求。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。