首页> 中国专利> 一种P2P视频直播系统数据调度中的链路选择方法

一种P2P视频直播系统数据调度中的链路选择方法

摘要

本发明公开一种P2P视频直播系统数据调度的链路选择方法,包括:数据请求节点向登录服务器注册,所述登录服务器向所述请求节点分配邻居节点;请求节点与所述分配的邻居节点建立连接,根据链路代价对所述邻居节点划分优先级;请求节点按照所述邻居节点的优先级,根据所述邻居节点的数据内容的信息和数据传输能力,从所述邻居节点获取请求数据。在同样的数据调度顺序下,本方法可以更好的利用网络资源,显著降低穿越NAT的流量以及跨越自治系统、因特网服务提供商的骨干网流量。

著录项

  • 公开/公告号CN101272404A

    专利类型发明专利

  • 公开/公告日2008-09-24

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN200810111656.5

  • 发明设计人 周志勇;张国清;李彦君;傅川;

    申请日2008-05-15

  • 分类号H04L29/08(20060101);H04L12/54(20060101);

  • 代理机构11280 北京泛华伟业知识产权代理有限公司;

  • 代理人王勇

  • 地址 100190 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-14

    专利权的转移 IPC(主分类):H04L29/08 登记生效日:20200624 变更前: 变更后: 申请日:20080515

    专利申请权、专利权的转移

  • 2020-07-14

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L29/08 变更前: 变更后: 申请日:20080515

    专利权人的姓名或者名称、地址的变更

  • 2012-11-21

    专利权的转移 IPC(主分类):H04L29/08 变更前: 变更后: 登记生效日:20121023 申请日:20080515

    专利申请权、专利权的转移

  • 2011-10-19

    授权

    授权

  • 2008-11-19

    实质审查的生效

    实质审查的生效

  • 2008-09-24

    公开

    公开

查看全部

说明书

技术领域

本发明涉及网络流媒体技术领域,更具体地,本发明涉及一种P2P视频直播系统数据调度中的链路选择方法。

背景技术

近年来,基于P2P的视频直播技术受到越来越多的关注,各种各样的P2P视频直播软件也走进了人们的生活。

P2P技术是采用点对点的方式进行数据传输,与传统的客户端/服务器(C/S)模式不同,在P2P系统中,节点既要从邻居节点下载数据,同时也要为邻居节点服务,上传数据给邻居节点。

图1为现有P2P视频直播系统的结构图,如图1所示,P2P视频直播系统中,主要有2种角色,登录服务器(Tracker)和节点。Tracker的作用是为新加入的节点分配邻居节点以及维护当前在线节点的信息,节点向邻居节点请求数据,同时响应邻居节点的数据请求。

P2P视频直播系统中,每个节点都有一块内存缓冲区,该缓冲区中存储当前播放的数据,随着播放的进行,缓冲区窗口不断向前移动,同时,节点会去向邻居节点请求新的视频数据。节点在节目播放过程中,定期向邻居节点发送缓冲区快照(BufferMap)消息,BufferMap消息是本节点缓冲区信息的一个快照,从BufferMap中可以看到节点当前所拥有的数据,每个节点根据邻居节点的BufferMap和带宽情况,进行数据请求调度。

现有技术中,P2P点播系统的工作过程如下:节点向Tracker发送加入频道请求,Tracker为该节点分配邻居节点,该节点与分配的邻居节点建立连接,连接成功后,节点之间进行P2P数据传输。

P2P技术的应用解决了传统C/S模式下随着节点的增加服务器带宽和处理能力成为系统瓶颈的问题,但是,人们发现,P2P应用占用了大量的宝贵的骨干网流量,限制了网络的传输能力。

发明内容

为克服现有P2P视频直播系统数据调度中未考虑节点链路代价和传输能力造成的网络传输能力受限的缺陷,本发明提出一种P2P视频直播系统数据调度的链路选择方法。

根据本发明的一个方面,提出了一种P2P视频直播系统数据调度中的链路选择方法,包括:

步骤10)、数据请求节点向登录服务器注册,所述登录服务器获取所述请求节点的网络拓扑信息;所述登录服务器根据所述请求节点的网络拓扑信息更新节点列表,向所述请求节点分配邻居节点;

步骤20)、所述请求节点与所述分配的邻居节点建立连接,根据链路代价对所述邻居节点划分优先级,所述邻居节点即时向所述请求节点广播其所包含数据内容的信息;

步骤30)、所述请求节点计算、更新所述邻居节点的传输能力;

步骤40)、所述请求节点按照所述邻居节点的优先级,根据所述邻居节点的数据内容的信息和数据传输能力,从所述邻居节点获取请求数据。

其中,步骤10)中,所述登录服务器根据所述请求节点的IP地址获取所述请求节点的AS号和ISP号。

其中,步骤10)中,所述登录服务器按照节点的ISP号、AS号和IP地址大小的顺序,将所述请求节点存储在所述节点列表中。

其中,步骤10)中,所述登录服务器为所述请求节点分配若干个具有相同IP网段的邻居节点和/或若干个具有相同ISP号的邻居节点和/或若干个具有相同AS号的邻居节点。

其中,步骤20)进一步包括:所述请求节点将其邻居节点列表按照链路代价来排序,将链路代价小的邻居节点作为优先请求节点。

其中,步骤20)中,将其邻居节点列表按照链路代价来排序进一步包括:

步骤210)、如果请求节点位于内网,则位于内网的邻居节点的链路代价较小;如有多个这样的邻居节点,则具有较多公共前缀的邻居节点代价较小;

步骤220)、如果请求节点不位于内网,则与所述请求节点具有同一AS号的邻居节点代价较小;如有多个这样的邻居节点,则具有较多公共前缀的邻居节点代价较小;

步骤230)、如果请求节点不位于内网,且不存在与请求节点AS号相同的邻居节点,则与请求节点具有同一ISP号的邻居节点代价较小;如有多个这样的邻居节点,则具有较多公共前缀的邻居节点代价较小。

其中,步骤30)中,所述邻居节点的传输能力可以是所述请求节点两次数据请求之间,所述邻居节点可以向所述请求节点发送的数据量的最大值。

其中,步骤30)进一步包括:

步骤310)、所述请求节点记录第N次向某个邻居节点请求的数据总量,所述数据总量小于或等于某个邻居节点的传输能力;

步骤320)、当所述请求节点收到所述邻居节点发送的数据包时,将接收到的邻居节点的数据总量增加;

步骤330)、在所述请求节点进行第N+1次调度时,计算第N次和第N+1次调度之间请求节点从邻居节点接收到的数据总量;

步骤340)、如果请求节点接收到的数据总量小于向邻居节点请求的数据总量,则降低邻居节点的传输能力为所述接收到的数据总量数;如果接收到的数据总量大于等于所述传输能力,则在一定范围内增加邻居节点的传输能力。

其中,步骤40)进一步包括:如果某个邻居节点包含所述请求节点请求的数据,并且所述邻居节点的传输能力大于或者等于所述请求节点本次向所述邻居节点请求的数据总量,将所述数据放入所述邻居节点的数据请求队列;所述请求节点向所述邻居节点发送请求并获取数据。

其中,步骤40)进一步包括:在多个邻居节点可以提供所需同一数据的情况下,所述请求节点优先向链路代价低的邻居节点发送请求。

在同样的数据调度顺序下,本方法可以更好的利用网络资源,显著降低穿越NAT的流量以及跨越自治系统(AS)、因特网服务提供商(ISP)的骨干网流量,可以在保证QOS的同时,使P2P视频直播系统的数据传输流量优化,降低网络传输代价。

附图说明

图1为现有技术中的P2P视频直播系统结构图;

图2为节点IP到AS、ISP的查询树结构示意图;

图3为IP到AS、ISP的查询流程图;

图4为根据本发明的一个实施例的链路代价比较流程图。

具体实施方式

下面结合附图和具体实施例对本发明提供的一种P2P视频直播系统数据调度中的链路选择方法进行详细描述。

现有的P2P技术的应用解决了传统C/S模式下随着节点的增加服务器带宽和处理能力成为系统瓶颈的问题,但P2P的应用占用大量的宝贵的骨干网流量,现有的方法只考虑P2P拓扑结构对跨域流量的影响,并没有考虑数据调度方法对跨域流量的效果。对P2P的拓扑结构进行优化,可以降低P2P应用占用的骨干网流量,在此基础上,应用优化的数据调度方法,可以进一步的降低P2P应用占用的骨干网流量。

在P2P视频直播系统中,节点需要下载某个数据块时,可能几个邻居节点都拥有该数据块。根据本发明的实施例,在这种情况下,如何使下载数据的网络代价最低:节点将邻居节点按照网络链路的代价进行排序,在进行数据下载时,优先从邻居节点列表中排在前面的邻居节点下载符合其传输能力的数据,即优先从链路代价较低的节点下载数据,所下载的数据小于等于邻居节点的最大传输能力。

数据请求节点首先向Tracker进行注册,Tracker根据请求节点的IP地址获取其AS和ISP的网络拓扑信息;Tracker根据请求节点的AS和ISP信息更新节点列表,随后向请求节点分配邻居节点;请求节点与邻居节点建立连接,对邻居节点划分优先级,邻居节点即时向请求节点广播其数据内容的信息,请求节点计算、更新并记录邻居节点的传输能力;请求节点按照邻居节点的优先级,根据邻居节点的数据内容的信息和数据传输能力,分别从邻居节点获取请求数据。

节点自身拓扑信息的获取

节点向Tracker发送加入频道请求后,Tracker根据该节点的IP地址信息获得该节点所在AS号、ISP号等拓扑信息,并将所述拓扑信息与为该节点分配的备选邻居节点信息一起发送给该节点,Tracker在实现上必须具有根据节点的IP地址查询节点所在AS和ISP的功能,可以把已经获取的全局AS拓扑信息存储在一个文件里,Tracker在启动时,读取该文件获取全局AS拓扑信息。

全局AS拓扑信息的存储文件是IP对应AS和ISP的记录表,该记录表可以如下所示:

  IP地址  IP前缀长度  所在AS  所在ISP

Tracker在读取该文件后,将记录以树的结构形式进行存储,如图2所示。图2中最上层是一个数组,数组的每一个元素都是一棵树的指针,分别指向节点IP地址的前8个bit是从1到223的IP到AS、ISP的查询子树。每棵查询子树是一棵2叉树。如图2和3所示,查询过程如下:首先得到IP地址的前8个bit,然后在相应的子树下进行查询,如IP地址是6.1.2.3,则进入第6棵子树进行查询,然后查看IP地址的第9个bit,由于第9个bit是0,则向左子树遍历,然后去查询第10个bit,依次类推,直到遇到叶子节点为止,获取节点的AS号和所在的ISP号。

Tracker根据相关的邻居节点选择方法为节点分配邻居。为节点分配一个或者若干个具有相同IP网段的邻居节点,和/或一个或者若干个具有相同ISP号的邻居节点,和/或一个或者若干个具有相同AS号的邻居节点。然后向节点发送消息。消息中包括了节点的邻居节点信息以及节点自身的格式,如下表所示:

 频道相关UUID(宇宙唯一标识)  节点所在的AS 节点所在的ISP  分配的邻居数目  邻居的IP、PORT(端口)

邻居节点链路代价比较方法

在P2P视频直播系统中,每个节点都有一个邻居节点列表,本实施例中,为节点的邻居节点列表按照链路代价来排序,将链路代价小的节点排在前面。图4示出根据本发明的一个实施例的链路代价比较流程图,如图4所示,对于本节点(数据请求节点),给定两个邻居节点,进行链路代价比较的方法如下,假设2个邻居节点A和B:

步骤S1、如果本节点是内网节点,则进入步骤S2,否则,进入步骤S3;

步骤S2、如果A是与本节点在同一内网中的节点而B不是,则A的链路代价较小,结束比较;如果B是与本节点在同一内网的节点而A不是,则B的链路代价较小;如果节点A和节点B都是与本节点在同一个内网中的节点,则进入步骤S5;

步骤S3、根据AS域比较,如果A跟本节点在同一个AS域中而B不是,则A的链路代价较低,结束比较;如果B跟本节点在同一个AS域中而A不是,则B的链路代价较低,结束比较;如果两者与本节点都不在同一个AS域中,则进入步骤S4,如果两者都与本节点在同一个AS域中,则进入步骤S5;

步骤S4、根据ISP比较,如果A跟本节点在同一个ISP中而B不是,则A的链路代价较低,结束比较;如果B跟本节点在同一个AS中而A不是,则B的链路代价较低,结束比较,如果两者都与本节点在同一个ISP中,则进入步骤S5;

步骤S5、如果A跟本节点的公共前缀位数多,则A的链路代价较低,否则,B的链路代价较低,结束比较。

邻居节点列表的管理

邻居节点列表增加邻居节点的情况有2种,一种是本节点向其他节点发送邻居连接请求,并收到了该节点的肯定答复;另一种是本节点接收到了其他节点发送的连接请求,并同意与该节点成为邻居。无论是节点向其他节点发送邻居连接请求消息,还是向其他节点发送响应邻居连接请求消息,消息中都应该包含本节点的拓扑信息,包括本节点是否是内网节点、本节点所在的AS号、ISP号。这样,节点就可以知道邻居节点的拓扑信息,根据上述提邻居节点链路代价比较方法对邻居节点的链路代价进行比较。

当有一个新的节点加入到本节点的邻居节点列表时,该新节点与本节点的邻居节点列表中的第i(i从1开始)个节点比较链路代价,如果新节点链路代价比邻居节点列表中第i节点的链路代价低,则将该节点插入到邻居节点列表中第i个节点的前面;如果高,则与邻居节点列表中的第i+1个节点进行上述比较过程,直到找到该新节点应该插入的位置。

上述比较方法,可以保证邻居节点列表中的节点是按照链度代价的从小到大排列。

邻居节点传输能力的定义与计算方法

在P2P视频直播系统中,每个节点都有若干个邻居节点。节点根据自己和邻居节点缓冲区中数据的情况,定期向邻居节点请求数据。不同的邻居节点由于物理位置、处理能力、节点度数的不同,与本节点传输数据的带宽也不同。

为了实现发明目的,将邻居节点对本节点的传输能力(Capability)的定义为:在本节点两次数据请求之间,邻居节点可以向本节点发送的数据量的最大值。具体的计算方法如下:

1、节点记录第N次请求向每个邻居节点请求的数据总量为RequestNum,RequstNum小于或等于Capability;

2、当节点收到邻居节点发送的数据包时,将接收到的邻居节点的数据总量增加;

3、在节点进行第N+1次调度时,计算2次调度之间节点从邻居节点处接收到的数据总量ReceiveNum;

4、如果节点接收到的数据量小于向邻居节点请求的数据量,则降低邻居节点的能力为ReceiveNum;如果ReceiveNum大于等于Capability,则在一定范围内增加邻居节点的Capability。

P2P视频直播系统的数据调度过程

节点按照一定的数据请求优先级计算方法,得到本次应该请求的数据块集合;按照邻居节点传输能力的计算方法,更新所有邻居节点的能力;对于每个本次应该请求的数据块,进行如下操作:对于每一个邻居节点,如果第i个邻居节点含有该数据块,并且能力大于当前本节点本次调度向该邻居节点请求的数据总量,则将该数据块放入第i个邻居节点的数据请求队列;随后节点向每个邻居节点发送数据请求。

上述调度过程可以保证,节点在代价低的邻居节点有能力提供所需的数据的情况下,优先向代价低的邻居节点进行请求,而在代价低的邻居节点没有能力提供本节点所需的数据的情况下,才向代价高的邻居节点进行请求;这样,可以使流量尽量分布在代价较低的传输链路上。

最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号