主权项 |
基于P2P技术的流媒体分发方法,其特征在于,包括以下步骤:a.节点加入的步骤:新加入的节点与数据中心通信,获取相关流的详细信息,然后新加入的节点向接入节点发送REQ—JOIN消息,请求加入网络,接入节点给新加入的节点指派一个伙伴作为代理节点,新加入的节点与代理节点通信,获取其伙伴列表进行初始化;b.缓存信息的发布与校正步骤:定义节点加入网络至收到第一块数据为启动阶段,处于启动阶段的节点每隔1s向它的伙伴广播一次BUFFER_MAP消息,之后每隔5s广播一次,消息中的剩余转发跳数值初始值为2;收到消息的节点综合决策是否转发该消息:如果消息源节点已经是自己的伙伴,接收者更新伙伴的BM信息并转发该消息,否则,根据相应决策是否添加该消息的源节点为新伙伴;如果添加消息的源节点为伙伴或者消息源节点为未能映射的内网节点,则停止该消息的转发,否则,递减消息中的剩余转发跳数值,如果递减后的剩余转发跳数值大于零,则继续转发,如果等于零,则停止转发该消息;c.伙伴的探测与淘汰步骤:节点周期性的发布PROBE_PARTNER消息,广播其在网络中的存在,并发现其他的新伙伴,所述PROBE_PART‑NER消息每隔10s广播一次,转发的目标伙伴个数为2,消息中的剩余转发跳数值初始值为4;此外,节点周期性运行统计伙伴间通信量处理流程,淘汰通信量少的伙伴;d.数据调度步骤:首先,找到合适的数据块:通过算法将资源最稀缺的数据块推送出去,越多伙伴缺少的数据块,获得分值越高,同样分值的数据块,选取较新的;然后,决策目标伙伴:随机选择一个没有该数据块的伙伴,向其发出请求,发出请求后,标记该伙伴已经拥有该数据块;e.数据推送流程:节点向目标伙伴发送REQ_PUSH_DATA消息,请求推送数据块;目标伙伴收到该消息后,执行相应算法判断是否接受该数据块,如果目标伙伴决定接收该数据块,则发送ACK_PUSH_DATA消息给请求节点,否则发送DENY_PUSH_DATA的消息来拒绝该数据块的推送。 |