[发明专利]CDN预先主动选择优质节点开展优化内容分发服务的方法有效
申请号: | 201210549447.5 | 申请日: | 2012-12-17 |
公开(公告)号: | CN102984279A | 公开(公告)日: | 2013-03-20 |
发明(设计)人: | 吕智慧;吴杰;黄翼 | 申请(专利权)人: | 复旦大学 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;盛志范 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于网络多媒体技术领域,具体为一种CDN预先主动选择优质节点开展优化内容分发服务的方法。本发明在覆盖网中加入了一个放大层;CDN服务器通过从对等节点得到的信息选择一定数量优质的节点作为放大层节点;在系统性能不好或服务能力有限的时候,CDN直接优先服务这些节点而不是盲目地服务普通节点,这些优质节点再继续服务普通节点,从而把流媒体数据进行更高效的传播。通过这种方式,CDN可以和P2P、VOD等系统进行更高效的合作。本发明经试用,运行稳定,结果表明,本发明与现有传统的CDN-P2P混合架构相比,性能至少提高了10-25%,实验比较指标包括启动延时、播放质量以及播放延时。 | ||
搜索关键词: | cdn 预先 主动 选择 优质 节点 开展 优化 内容 分发 服务 方法 | ||
【主权项】:
1.一种CDN预先主动选择优质节点开展优化内容分发服务的方法,其特征在于具体步骤为:第一步: 定义和构建放大层把一个边缘CDN服务器以及它所领导的一批对等节点看作是一个自治区,把整个系统分为多个不同的自治区,每个自治区有一个CDN节点;在每个自治区内部,CDN节点通过从其所管理的对等节点获得的信息来决定系统的问题和瓶颈,从而选出需要媒体内容数据并能力强的节点进入放大层,并为之提供服务;CDN节点使用轻量级的方法收集P2P节点的统计信息;每个对等节点不需要定期向其自治区的CDN节点汇报所有自己的信息,只要在向CDN节点请求紧急数据块的情况下汇报这些信息;每个汇报信息中都必须包括节点ID和时间戳;对于请求紧急数据的对等节点来说,提供:(1)请求块列表,(2)筛选后的邻居列表;如果一个节点被选为中介放大节点而接受CDN服务器的服务,它提供的信息有:(1)播放缓冲区情况,(2)播放点;当CDN服务器决定是否继续服务一个中介放大节点时,CDN让该对等节点提供:(1)流量上传速度,(2)播放缓冲区情况,(3)上传带宽使用率,(4)播放点; (1) 建立放大层节点的基本架构是从原有的P2P网状结构中选拔节点形成一个扩展和放大层,即有若干节点直接从服务器获取数据,获取数据的方式采用的是CDN直接Push模式;假设CDN允许直接服务N个节点,会有N个节点与CDN做邻居,其它节点均不能与CDN做邻居;(2) 放大层的初始建立机制在开始阶段,CDN节点开放N个直连通道,但没有节点与其连接,之后随着Peer节点的陆续加入,CDN开放的N个直连通道会依据某种算法被使用;所谓放大层的含义是,在放大层的节点的上传带宽必须大于支持播放的最小码流;设观看所需的最小码流大小为a,放大层中节点的最小上传带宽为b,则必须满足条件a<b,这样在它服务其他普通节点时才能起到放大传播的作用;设StreamingRate是流媒体直播中正常观看所需要的码流大小,N为放大层中节点的个数,则服务器在放大层中所消耗的流量总和为:Udirect=StreamingRate * N (公式1)设
为放大层中节点i,i∈[1,N],的上传带宽,则放大层节点在上传带宽充分利用的情况下提供的流量是:U magnification = Σ i = 1 N U peer i ]]> (公式2)显然有Umagnification≥Udirect;第二步:选择和确定进入放大层的节点每个向CDN服务器请求紧急数据块即快要播放的数据块的消息中,同时附上节点本身的一些信息,这些信息如第一步所述;CDN通过定期统计分析这些信息,找到进入放大层的节点并对其予以帮助,来提高CDN分发效率和系统总体性能;在系统中,节点向CDN请求紧急的数据块,做法是节点向CDN节点发送块请求包,请求包内包括该节点所要请求的块和该节点的邻居中能力比较强的邻居节点ID,这里,所谓能力比较强的节点指的是邻居节点中上传带宽处在前50%的节点,请求包格式如下:
每隔一段时间,CDN节点对收集到的数据进行分析,统计每个请求节点的邻居列表中的节点出现次数,并从中找出出现次数最多的若干个节点作为中介放大层节点;最终CDN边缘服务器选出k个节点作为中介放大节点,k的计算方法如下:k = min ( U CDN - U outgoing _ rate STRM _ RATE * α * β , NUM online _ nodes 10 ) ]]> (公式3)β = e ( NUM req NUM online _ nodes - 1 ) ]]> (公式4)在公式中,α是常数,分子是CDN服务器的剩余带宽乘以β,STRM_RATE*α是对CDN服务一个瓶颈节点每秒所需流量的期望值,
是预估CDN剩下的流量最多能服务多少个中介放大节点;其中NUMreq是在该时间段内向CDN服务器发出请求的节点个数,NUMonline_nodes是该边缘CDN服务器所管的节点总数;第三步:给放大层节点直接提供内容分发服务当CDN服务器从统计信息中找出k个中介放大节点,同时向这些节点发送服务启动消息,这些中介放大节点在收到服务启动消息后,返回自己的BufferMap给CDN服务器,CDN服务器根据每个节点的BufferMap情况进行相应的服务;CDN服务器服务中介放大节点采用推送的方式,推送区域是Peer节点缓存区中的整个普通区,选择该区域为服务对象的主要原因是为了降低冗余块的个数,即节点自身拉到的块与CDN服务器推来的块相互重叠;因此CDN服务器首先查看中介放大层节点的缓冲区,找出在该服务区域内的所有缺失块,并以一定码流大小将其推送至对等节点;CDN服务器根据如下公式决定在多少时间内把所有数据全部推送给对等节点:T fast = NUM lack STRM _ RATE / STRM _ PACK _ SIZE ]]> (公式5)Tslow=Tfast×2 (公式4-8)T = T slow - ( T slow - T fast ) × NUM req _ nbr NUM max _ nbr ]]> (公式6)NUMlack指的是该服务区内缺失块的个数,Tfast是把这些缺失块以播放码流的速度送出时所需要的时间,Tslow是把这些缺失块以播放码流速度的一半输出所需要的时间;NUMreq_nbr表示该节点有多少邻居向CDN服务器请求紧急块,NUMmax_nbr表示每个节点的最大邻居数,最终的时间T介于Tfast和Tslow两个值之间,相应的传输速度介于播放码流的一半和播放码流之间;第四步: 判断对放大层节点的服务是否延续当CDN节点服务了一个中介放大层节点一段时间T后,根据该节点的表现决定是否继续服务该节点,判断是否继续服务的公式如下:U average = ∫ t = start _ service t = current _ time U outgoing _ rate ( t ) dt T current _ time - T start _ service > U outgoing _ rate ( start _ service ) ]]> (公式7)其中Uoutgoing_rate(t)表示时刻t时,节点的上传速度大小,
表示从CDN服务节点开始到现在,该节点上传的流量总数,Uaverage表示服务期间瓶颈节点的平均上传流量;Uoutgoing_rate(start_service)表示被服务前中介放大节点的上传速度;满足以上不等式,CDN即可继续服务该对等节点;继续服务的缓冲区区间不变,CDN服务器会根据如下公式决定在多少时间内把所有数据全部推送给对等节点:T = T slow - ( T slow - T fast ) × Upload peer - U current Upload peer ]]> (公式8)Tfast和Tslow的意义与上节相同,Uploadpeer表示中介放大节点的上传带宽;第五步: 放大层节点的更换放大层节点需要不断更新和替换,每隔一段时间,放大层直连节点对自己的邻居进行一次扫描,找出那些能力即上传带宽比自己强,且不是直连节点的邻居节点;找到以后,该直连接节点利用一定策略,把该节点置换到放大层,而自己重新变为普通节点从放大层退出;每个节点定时触发一次该算法,只有放大层的节点才执行该算法流程;在找出的优质邻居节点符合交换条件的时候,首先判断该邻居节点的邻居数是否达到了上限,如果没有,只让该邻居与CDN节点建立连接,本节点与CDN断开连接,这样该邻居节点的邻居数增加一;否则,解除本节点与该邻居节点的邻居关系,用以腾出该邻居节点的可用邻居连接让给CDN服务器;当一个放大层节点离开系统时,它选出自己最强的邻居节点来替换自己,以保证放大层节点的扩展性和稳定性;第六步: 定时监控放大层节点为了避免放大层的节点在找邻居时会与同样在放大层的节点建立邻居关系,我们需要定时监控放大层节点的算法,对于节点来说也是间隔一段时间执行一次,即首先判断自己是不是放大层节点,不是的话直接退出操作;否则,检查自己所有的邻居,如果发现没有一个邻居是放大层节点的话就退出,否则将解除自己与该节点的邻居关系,由于解除邻居关系后本节点的邻居节点个数减少,因此要重新执行邻居查找算法对自己的邻居数进行补充;第七步: 动态调整放大层节点的数量在一段时间内有大量节点陆陆续续的加入时,需要增加放大层中的节点数目来提高系统的服务质量;具体是通过利用CDN服务器在运行时收集到的信息来动态调整放大层中的节点数量,该动态调整算法如下:其中,用node_num 表示放大层中允许的最大节点数量,urgent_outgoing表示CDN服务器用于服务peer节点紧急请求的平均上传流量, direct_outgoing表示服务放大层的平均上传流量,这两个平均上传流量定时统计一次;该算法的公式表示如下,node _ num = node _ num * θ , if urgent _ outgoing direct _ outgoing ≥ 0.4 node _ num λ , if urgent _ outgoing direct _ outgoing ≤ 0.15 ]]> (公式9)其中θ是1.3,λ是1.2。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201210549447.5/,转载请声明来源钻瓜专利网。
- 上一篇:获取无突变情形下亲缘指数的简便方法
- 下一篇:芳香族二磷酸酯的制造方法