在p2p流媒体系统中查找活动节点的方法、系统及设备的制作方法

文档序号:7700852阅读:89来源:国知局
专利名称:在p2p流媒体系统中查找活动节点的方法、系统及设备的制作方法
技术领域
本发明涉及P2P技术,尤其涉及一种在P2P流媒体系统中查找活动节点的方法、系 统及设备。
背景技术
点对点(Peer-to-Peer,P2P)系统以其良好的可扩展性、健壮性,成为开展流媒体 业务的理想平台。在基于追踪设备的P2P (Tracker-based P2P)系统中存在大量的追踪设 备(Tracker),针对不同的播放频道,每个Tracker缓存与对应的数据相关的节点的IP地 址、端口等节点信息,新加入P2P流媒体系统的节点也需要向Tracker上报自身的IP地址、 端口等节点信息。已加入P2P流媒体系统的节点可以向Tracker发送节点列表请求 (Peerlistrequest),表示希望从其他节点中下载数据。发送Peerlist请求的节点称之为 请求节点,为该请求节点提供下载数据的节点称之为活动节点。在现有的Tracker-based P2P系统中,请求节点查找活动节点的过程如图1所示,主要包括如下步骤第一步请求节点(Peer_l)向Tracker发送Peerlist请求,Tracker根据已缓存 的节点信息选择多个节点,并将选择的多个节点的节点信息写入Peerlist列表后,返回给 请求节点。在本步骤中,Tracker可以根据已缓存的节点信息确定对应的节点,并从中随机选 择一定数量的节点,也可以根据地理位置接近的原则,选择与请求节点位置比较接近的节 点。例如,如果根据请求节点的IP地址确定请求节点归属区域为北京地区,则Tracker可 以根据已缓存的IP地址选择归属区域是北京地区的节点,如图1中选择Peer_2、Peer_3, Peer_4 禾口 Peer_5。第二步请求节点接收到Peerlist列表后,向Peerlist列表中的节点发送探测信 息,以确定活动节点。在P2P流媒体系统中,一个播放文件被划分为若干个子块,播放文件以子块为单 元在节点之间传输,节点通过比特图(bitmap)来表示自身缓存子块的情况。bitmap中的每 一个bit都与一个子块对应,如果节点缓存了某个子块,那么bitmap中与该子块对应的bit 位被置为“1”;反之,该bit位置为“0”。在本步骤中,请求节点首先向Peerlist列表中的某 一节点发送探测信息,如Peer_l向Peer_2发送探测信息,查询Peer_2的连接能力,以及在 Peer_2有能力作为Peer_l的活动节点时,Peer_l与Peer_2间交换自身的bitmap,获知对 方缓存子块的情况。Peer_2根据接收到的bitmap判断自身缓存的子块能否提供给Peer_l, 如果可以,则向Peer_l发送成功响应信息,成为请求节点的活动节点;否则,向Peer_l发送 失败响应信息。另外,请求节点与Peerlist列表中的节点还可以相互交换Peerlist列表,用于扩 大活动节点的搜索范围。通过以上两步,请求节点完成了对活动节点的查找过程,进而可以执行第三步请求节点Peer_l从活动节点Peer_2处下载数据,准备播放视频。在现有的Tracker-based P2P系统中查找活动节点的方式下,由于Tracker仅仅 知晓可选的各节点中,每个节点的IP地址、端口等节点信息,因此,PeerliSt列表中节点 可能是缓存的可用子块较少的节点,导致请求节点需要分别向列表中每个节点发送探测信 息,导致请求节点可能需要占用大量通信资源查找合适的活动节点,浪费通信资源。

发明内容
本发明实施例提供一种在P2P流媒体系统中查找活动节点的方法、系统、Tracker 设备以及节点设备,以解决在查找活动节点的过程中,由于Tracker选择的节点可能是缓 存的可用子块较少的节点,导致请求节点需要向Peerlist列表中各节点发送探测信息以 查找合适的活动节点,导致通信资源浪费的问题。一种在P2P流媒体系统中查找活动节点的方法,由可选节点向追踪设备Tracker 上报缓存的连续子块的个数以及所述连续子块中第一个子块的序号;所述查找活动节点的方法包括Tracker接收请求节点发送的节点列表请求后,根据节点列表请求中包含的请求 节点待下载数据的起始子块序号,选择多个可选节点作为候选节点,其中,候选节点中缓存 了所述待下载数据的起始子块;Tracker将候选节点的节点信息通过节点列表返回给请求节点,指示所述请求节 点根据节点列表中的节点信息确定至少一个候选节点作为活动节点。一种在P2P流媒体系统中查找活动节点的系统,所述系统包括请求节点、可选节 点禾口 Tracker,其中可选节点,用于向Tracker上报缓存的连续子块的个数以及所述连续子块中第一 个子块的序号;请求节点,用于向Tracker发送节点列表请求,并根据Tracker返回的节点列表中 的节点信息,确定至少一个候选节点作为活动节点;Tracker,用于在接收到节点列表请求后,根据节点列表请求中包含的请求节点待 下载数据的起始子块序号,选择多个可选节点作为候选节点,其中,候选节点中缓存了所述 待下载数据的起始子块,并将选择的候选节点的节点信息通过节点列表返回给请求节点。一种追踪设备,应用于P2P流媒体系统中,所述追踪设备包括请求接收模块,用于接收节点列表请求,所述节点列表请求中包含的请求节点待 下载数据的起始子块序号;信息接收模块,用于接收可选节点上报的缓存的连续子块的个数以及所述连续子 块中第一个子块的序号;第一选择模块,用于根据待下载数据的起始子块序号,选择多个可选节点作为候 选节点,其中,候选节点中缓存了所述待下载数据的起始子块;列表发送模块,用于将选择的候选节点的节点信息通过节点列表返回给请求节
点ο一种节点设备,所述节点设备包括信息上报模块,用于向Tracker上报缓存的连续子块的个数以及所述连续子块中第一个子块的序号;数据输出模块,用于根据其他节点设备的请求向其他节点设备上载数据。由于本发明方案中,Tracker预先接收到可选节点缓存的连续子块的个数以及所 述连续子块中第一个子块的序号,使得Tracker通过接收占用少量字节的信息就能够获知 可选节点的可用子块信息,进而在根据请求节点请求的待下载数据的起始子块序号选择候 选节点时,保证选择的候选节点中缓存待下载数据的起始子块,因此,请求节点在从候选节 点中确定活动节点时,无需向每个候选节点探测是否具有待下载数据的起始子块序号,避 免了通信资源的浪费,减少了带宽消耗。


图1为现有的查找活动节点示意图;图2为本发明实施例一中P2P流媒体系统中查找活动节点的方法示意图;图3为本发明实施例中节点bitmap示意图;图4为本发明实施例五中P2P流媒体系统中查找活动节点的系统示意图;图5为本发明实施例六中追踪设备示意图;图6为本发明实施例七中节点设备示意图。
具体实施例方式为了实现本发明目的,本发明对系统中的可选节点和Tracker进行了改造,使可 选节点向Tracker上报自身缓存子块的可用性信息,Tracker在接收到请求节点发送的 节点列表请求后,并不是盲目地将系统中的可选节点作为请求节点备选的活动节点,而是 根据可选节点缓存子块的可用性信息对可选节点进行选择,保证选择出的节点缓存请求 节点最急需的子块,从而消除了请求节点通过向Peerlist中的节点发送探测消息来确定 Peerlist中的节点是否具有最急需的子块的过程,避免了通信资源的浪费,减少了带宽消
^^ ο本发明实施例中涉及的Tracker可以是在现有Tracker的基础上改造后的设备, 也可以是具有本发明实施例需要的相关功能的设备。下面结合说明书附图对本发明实施例进行详细描述。如图2所示,为本发明实施例一中查找活动节点的方法步骤示意图,所述方法包 括以下步骤步骤101 可选节点向Tracker上报自身缓存的连续子块的个数以及所述连续子 块中第一个子块的序号。当前接入Tracker的节点可以作为可选节点。P2P系统中的可选节点需要周期性地或实时地向Tracker上报自身缓存子块的 相关信息,如上报自身缓存的各子块的位置,也就是上报在哪些时刻子块对应的bit位置 为“ 1 ”,在哪些时刻子块对应的bit位置为“0”。但是,考虑到将bit位的全部信息上报给 Tracker时需要占用大量的字节,消耗过多的资源,因此,本发明实施例一中,可选节点将自 身缓存的连续子块的个数以及所述连续子块中第一个子块的序号上报给Tracker。如图3所示,分别为本发明实施例中请求节点和某一个可选节点的bitmap示意图,假设两幅bitmap示意图是针对同一播放文件的同一时间段而言的。从图3中可以看出,可选节点存在一段连续子块,其个数记为Coimterjtae,数量 为10,第一个子块的序号用0ffset_0ne表示,在图3中的序号是tl时刻。如果可选子块 Bitmap的offset占用4个字节,Counter_0ne占用2个字节,则只需要6字节就可以向 Tracker上报自身的连续子块信息。步骤102 请求节点接入Tracker,并向Tracker发送节点列表请求。本实施例中的请求节点可以是当前接入Tracker的节点,也可以需要重新确定活 动节点的节点。节点列表请求中包含请求节点最急需的子块,所述最急需的子块可以是请求节点 中缓存的未播放数据中,第一个bit位置为0的子块。由于bit位置为0表示该子块未缓 存,因此,最急需的子块可以看作是待下载数据的起始子块。待下载数据的起始子块的序号 可以用Offset_Zero表示。同时,请求节点还可以向Tracker上报自身缓存子块的信息,如自身缓存的连续 子块的个数以及所述连续子块中第一个子块的序号。由于Tracker中保存了各可选节点缓存子块的信息,因此,后续可以选择缓存的 子块信息满足需求的可选子块作为请求节点选择活动节点时的候选节点。步骤103 =Tracker从可选节点中选择满足选择条件的多个候选节点。选择条件包括候选节点中缓存了所述待下载数据的起始子块。本步骤的具体选择方式可以为首先,Tracker根据已知的连续子块的个数以及所述连续子块中第一个子块的序 号,确定可选节点中的哪些bit位置为“1”。接着,将可选节点中缓存的子块与待下载数据的起始子块进行比较,判断哪些可 选节点中缓存了待下载数据的起始子块。最后,Tracker根据比较结果查找出缓存了所述待下载数据的起始子块的可选节 点作为候选节点。仍以图3为例,在请求节点缓存的数据中,第一个bit位置为0的子块是子块t3, 表示请求节点缺少的第一个子块是序号为t3的子块,因此,Tracker确定图3中可选节点 缓存了 t3时刻的子块,因此该可选节点可以作为候选节点,此时,选择出的候选能够向请 求节点提供需要的子块。为了保证Tracker选择的候选节点个数合理,既能够使请求节点根据Peerlist正 确地确定出活动节点,又不至于因为候选节点个数过多造成带宽消耗过大,因此,可以根据 当前带宽的实际条件或者经验值确定候选节点个数的最大值。如果Tracker按照选择条件 选择的候选节点个数大于最大值,则对选择的候选节点进一步挑选,保证进一步挑选出的 候选节点个数不大于最大值,例如可以使进一步筛选出的候选节点个数等于最大值。步骤104 =Tracker将选择的候选节点的节点信息通过节点列表返回给请求节点。步骤105 请求节点接收到所述节点列表后,根据节点列表中的节点信息确定至 少一个候选节点作为活动节点。由于在步骤103中,已经按照“候选节点中缓存所述待下载数据的起始子块”为条 件对候选子块进行了选择,因此,请求节点可以确认所有的候选节点都能够提供需要的子块,减少了活动节点确定过程中的信息交互,减少了资源浪费。在本实施例中,请求节点可以根据Peerlist中的节点信息确定多个活动节点,这 样做的目的是为了提高系统的可靠性,使得当为请求节点提供数据的某一个活动节点出现 问题而无法继续为请求节点提供服务时,请求节点可以快速地与确定的其他活动节点建立 数据传输的连接。由于在短时间内,其他活动节点的网络状态变化可能较小,因此,在一个 活动节点出现问题而由其他活动节点作为备份活动节点为请求节点提供数据成为可能。但 是,如果其他活动节点的网络状态已发生了变化,则不再适合作为请求节点的活动节点,请 求节点需要再次执行本发明实施例一的步骤,重新选择活动节点。通过本发明实施例一的方案,由于Tracker按照缓存请求节点最急需的子块为条 件进行了选择,使选择出的候选节点能够向请求节点提供需要的子块,也就是说选择出的 候选节点可以作为请求节点的活动节点,请求节点节点接收到Peerlist后,可以从中确定 至少一个节点作为活动节点。减少了请求节点与Peerlist中节点信息对应的节点进行的 信息交互,简化了节点侧的繁琐操作。实施例二 为了使确定的活动节点能够在一定时间内持续为请求节点提供用于下载的数据, 实施例二在实施例一的基础上,将步骤103中的选择条件设置为候选节点中缓存了所述 待下载数据的起始子块,并且保存的待下载数据的连续子块的个数大于第一阈值。这里的 候选节点中保存待下载数据的连续子块为待下载数据的起始子块之后且与起始子块相邻 的连续子块。具体的选择过程如下首先,按照步骤103的方式选择出候选节点;接着,Tracker根据待下载数据的起始子块在候选节点中的位置,确定待下载数据 的起始子块之后且与起始子块相邻的连续子块的个数。然后,Tracker将确定的待下载数据的连续子块的个数与第一阈值进行比较,判断 待下载数据的连续子块的个数是否大于第一阈值。这里的第一阈值可以是根据需要候选节点连续地向请求节点上载子块的个数确 定的。例如要求候选节点至少能够连续地向请求节点上载3个子块,则第一阈值可以设置 为3。最后,Tracker选择出下载数据的连续子块的个数大于第一阈值的候选节点。仍以图3为例,Tracker确定待下载数据的起始子块为t3子块,则查询可选节点中 是否存在包含t3子块的连续子块,在图3中,可选节点存在一段连续子块中包含t3子块, 并且在同一连续子块中,t3之后还存在7个连续子块。假设本实施例二中设定的第一阈值 为3,则图3所示的可选节点能够满足实施例二的选择条件。如果确定满足本实施例二选择条件的候选节点个数较多,如大于最大值,则可以 从中选择部分节点作为写入Peerlist的节点,具体的选择部分节点的过程如下首先按照待下载数据的连续子块的个数由大到小的顺序,对选择的候选节点进行 排序,然后选择排在前N个的候选节点,所述N为正整数且不大于最大值。使得选择出的候 选节点的下载数据的连续子块多于未选择的,保证能够为请求节点提供尽可能多的数据。在本实施例二的方案中,由于待下载数据的起始子块是候选节点中一段连续子块中的一个,并且在连续子块中,在待下载数据的起始子块之后的子块个数较多,使得在请求 节点确定的活动节点还能够在一段时间持续为请求节点提供下载的数据,提高了系统的稳 定性,避免了请求节点查找出的活动节点能够提供的数据有限,导致请求节点频繁地查找 活动节点的问题,有效地缓解了通信压力。实施例三本发明实施例三可以在实施例一或实施例二的基础上,进一步地提出要求最终 选择的候选节点中保存待下载数据的子块总个数大于第二阈值。本发明实施例三的方法包括以下步骤第一步可选节点向Tracker上报自身缓存的子块总个数信息。在本实施例中,P2P系统中的可选节点需要周期性地或实时地向Tracker上报自 身缓存子块总个数,这里的总个数信息可以是实际缓存的子块数量,也可以是待下载数据 的起始子块之后的所有子块数量。本步骤和实施例一中的步骤101可以同时执行,即可选节点向Tracker上报自身 缓存的连续子块信息和子块总数信息,也可以只向Tracker上报其中的部分信息,或者是 在不同的时刻分别上报上述信息。第二步请求节点接入Tracker,并向Tracker发送节点请求列表,所述节点列表 请求中包括请求节点待下载数据的起始子块标识。本步骤与实施例一中步骤102相同。第三步=Tracker从可选节点中选择满足选择条件的多个候选节点。选择条件至少包括候选节点中缓存了待下载数据的起始子块;待下载数据的起 始子块之后且相邻的连续子块个数大于第一阈值;候选节点中保存待下载数据的子块总个 数大于第二阈值。这里的第二阈值可以根据需要候选节点向请求节点上载子块的个数确定的,第二 阈值设置越大,表示能够向请求节点上载子块的个数越多。具体的选择方式是首先,按照实施例一和/或实施例二的方案初步确定候选节点。然后,Tracker根据待下载数据的起始子块在初步确定的候选节点中的位置,确定 待下载数据的起始子块之后的所有子块的个数。最后,Tracker将确定的所有子块的个数与第二阈值进行比较,选择出子块的个数 大于第二阈值的候选节点。仍以图3为例,在可选节点中,t3子块之后还缓存有11个子块,如果第二阈值为 10,则该可选节点能够满足本实施例四的选择条件,可以成为候选节点。本实施例中以F表 示可选节点中缓存的子块总个数,如果F占用2个字节,则可选节点只需要向Tracker上报 F信息即可以告知自身缓存子块的信息。第三步中可以通过以下两个公式完成利用实施例三的选择条件的选择候选节点 过程0ffset_0ne ^ Offset_Zero ^ 0ffset_0ne+Counter_0ne (1)V = Counter_0ne-(0ffset_Zero-0ffset_0ne)(2)其中公式(1)表示请求节点最急需的子块位于可选节点的一段连续的子块中,公式(2)表示可选节点能够为请求节点连续提供的子块数量为V,其中,V等于或大于设定 的第一阈值。如果以上公式(1)成立,Tracker可以从上述两个公式确定的候选节点中进一步 选择F大于第二阈值的可选节点;如果公式(1)不成立,Tracker可以直接选择F大于第二 阈值的可选节点。第四步=Tracker将通过第三步中的选择条件选择出的候选节点的节点信息通过 Peerlist发送给请求节点。第五步请求节点可以根据接收到的Peerlist确定至少一个活动节点。如果确定满足本实施例三选择条件的候选节点个数较多,大于最大值,则可以从 中选择部分节点作为写入Peerlist的节点,具体的选择部分节点的过程如下首先按照待下载数据的子块总个数由大到小的顺序,对选择的候选节点进行排 序,然后选择排在前M个候选节点,所述M为正整数且不大于最大值。选择出的候选节点的 下载数据的子块总个数多于未选择的,保证能够为请求节点提供尽可能多的数据。在本实施例三的方案中,由于最终选择出的候选节点缓存的待下载数据的子块总 个数较多,可以在实施例三的基础上,进一步确定选择出的候选节点能够为请求节点提供 尽可能多的数据,尽量减少请求节点查询活动节点的次数。实施例四可选节点向Tracker上报的信息中,还可以包括连接节点个数是否饱和的相关信 息,则Tracker可以在实施例一至实施例三任一实施例的基础上,选择连接节点个数未饱 和的候选节点。实施例四的方案如下第一步可选节点向Tracker上报自身连接节点个数是否饱和的信息。本步骤可以与实施例一的步骤101和实施例三的第一步可以执行,也可以分别执 行。所述连接节点个数是指从可选节点处获取数据的其他节点个数。也就是说,计算 可选节点的连接节点个数时,只考虑候可节点作为活动节点时连接的其他节点个数是否饱 和,不考虑可选节点从其他节点处下载数据时连接的其他节点个数。在本发明实施例四的方案中,可选节点在登录Tracker后可以周期性的通知自身 的连接节点个数是否饱和,具体的通知方式包括但不限于以下两种方式第一种方式可选节点可以周期性地向Tracker上报自身的连接标志,记为 CormectioruFlag,所述连接标志表示该可选节点是否还可以向其它节点提供数据,也就是 连接节点个数是否饱和。如果某一可选节点的连接节点个数已经达到能够连接的最大节点个数,就将 Connection_Flag置为“down”,表示该可选节点的连接节点个数已经饱和,不能再向其它 节点提供数据下载;否则,将CormectioruFlag置为“up”,表示该可选节点的连接节点个数 未饱和,还可以向其它节点提供数据。通过本方式使Tracker确定可选节点连接节点个数 是否饱和时,节点与Tracker之间只需要传输一个字节的CormectioruFlag,因此,占用的 网络资源较少。第二种方式可选节点在接入Tracker时,通知Tracker自身能够连接的最大节点个数。在后续过程中,可选节点周期性地向Tracker上报自身已经连接的节点个数。 Tracker判断可选节点当前已经连接的节点个数是否小于可选节点能够连接的最大节点个 数,若是,则表示可选节点的连接节点个数未饱和;否则,表示可选节点的连接节点个数已 饱和。第二步请求节点接入Tracker,并向Tracker发送节点列表请求,所述节点列表 请求中包括请求节点待下载数据的起始子块标识。本步骤与步骤102相同。第三步=Tracker从确定的节点中选择满足选择条件的多个候选节点。选择条件可以在实施例一至实施例三中任意实施例的基础上再增加候选节点的 连接节点个数未饱和。第四步=Tracker将选择的候选节点的节点信息通过节点列表返回给请求节点。由于第三步中,Tracker对接入的节点按照连接节点个数是否饱和的条件进行了 筛选,因此,在本步骤中,节点列表中的节点信息对应的候选节点都具有与请求节点连接的 能力。如果Tracker按照第三步的选择条件选择的候选节点个数大于最大值,则对选择 的候选节点进一步筛选,保证进一步筛选出的候选节点个数不大于最大值,例如可以使进 一步筛选出的候选节点个数等于最大值。第五步请求节点接收到所述节点列表后,根据节点列表中的节点信息确定至少 一个候选节点作为活动节点。在本步骤中,请求节点不必向节点列表中的各候选节点发送用于确定是否具有连 接能力的探测信息就能够确定至少一个能够提供请求节点需要的数据的活动节点。通过本发明实施例四的方案,由于Tracker对系统中的可选节点按照连接节点个 数是否饱和的条件进行了筛选,使选择出的候选节点具有连接其他节点能力,因此提高了 Tracker的利用率,为请求节点提供了准确性更高的Peerlist列表;同时,由于请求节点无 需再向候选节点查询是否具有连接其他节点能力,因此,减少了请求节点与候选节点之间 的信息交互数量,降低了网络带宽消耗。通过本发明实施例的方案,由于Tracker不仅对系统中的可选节点按照候选节点 的连接节点个数不饱和的条件进行了筛选,使选择出的候选节点能够与请求节点连接;同 时由于在实施例一至实施例三任意实施例的方案中,要求候选节点缓存了请求节点最急需 的子块,因此候选节点都可以作为请求节点的活动节点,省略了请求节点与Peerlist中节 点信息对应的节点进行信息交互、通过交换bitmap确定活动节点的步骤,极大地减少了信 息传输数量,使现有的两步确定活动节点的方式变为一步确定,简化了节点侧的繁琐操作。在本发明实施例一至四的方案中,每一个可选节点可以周期性地向Tracker上报 自身对bitmap精简、进行加工后的信息,这些信息包括但不限于以下信息中的一种或多种 组合Connection—Flag、Bitmap 的 offset—one、Counter—One 以及 Bitmap 中 bit 位标识为 “1”的个数F。Tracker根据接收到的信息确定各可选节点中缓存的子块状态,进而根据实 施例一至实施例四中涉及的选择条件选择合适的候选节点。本发明并不限定这些信息占用的字节数,例如可以设定CormectioruFlag占用1 个字节,Bitmap的offset占用4个字节,Counter_0ne占用2个字节,F占用2个字节。
在本发明各实施例分别涉及了以下四种选择候选节点的选择条件1、候选节点的连接节点个数未饱和,所述连接节点个数是从候选节点处获取数据 的其他节点个数。2、候选节点中缓存了所述节点列表请求中包含的待下载数据的起始子块。3、候选节点中保存待下载数据的连续子块的个数大于第一阈值。特殊地,在候选节点中缓存了所述节点列表请求中包含的待下载数据的起始子块 时,候选节点中保存待下载数据的连续子块为待下载数据的起始子块之后且与起始子块 相邻的连续子块。4、候选节点中保存待下载数据的子块总个数大于第二阈值。特殊地,在候选节点中缓存了所述节点列表请求中包含的待下载数据的起始子块 时,候选节点中保存待下载数据的子块为待下载数据的起始子块之后的子块。实施例一按照第2个选择条件选择候选节点;实施例二按照第2个和第3个选择 条件选择候选节点;实施例三按照第2个、第3个和第4个选择条件选择候选节点;实施例 四按照第1个、第2个第3个和第4个选择条件选择候选节点。除了本发明实施例一至四 记载的方案之外,本发明也不限于仅按照第3个选择条件选择候选节点、仅按照第4个选择 条件选择候选节点或仅按照第1个选择条件选择候选节点,以及其他将上述4个选择条件 组合的方式选择候选节点。 例如按照第1个和第3个选择条件选择候选节点=Tracker从满足第1个选择条 件的候选节点中进一步选择出至少一个满足第3个选择条件的候选节点,其中满足第3个 选择条件是候选节点中保存待下载数据的连续子块的个数大于第一阈值。在这里,候选节 点中保存待下载数据的连续子块可以包含待下载数据的起始子块,也可以不包含待下载数 据的起始子块。按照第1个和第4个选择条件选择候选节点=Tracker从满足第1个选择条件的 候选节点中进一步选择出至少一个满足第4个选择条件的候选节点,其中满足第4个选择 条件是候选节点中保存待下载数据的子块总个数大于第二阈值。在这里,候选节点中保存 待下载数据的子块可以包含待下载数据的起始子块(也就是实施例二、三或四的方案),也 可以不包含待下载数据的起始子块,如果不包含待下载数据的起始子块,则这里的候选节 点中保存待下载数据的子块是指候选节点的总子块,并不特指待下载数据的起始子块之后 的子块。按照第1个、第2个和第4个选择条件选择候选节点在满足第1个和第2个选择 条件的候选节点个数为多个时,Tracker从中进一步选择出至少一个满足第4个选择条件 的候选节点,其中满足第4个选择条件是候选节点中保存待下载数据的子块总个数大于 第二阈值。特殊地,候选节点中保存待下载数据的子块为待下载数据的起始子块之后的子 块。按照第1个、第3个和第4个选择条件选择候选节点在满足第1个和第3个选择 条件的候选节点个数为多个时,Tracker从中进一步选择至少一个满足第4个选择条件的 候选节点,其中满足第4个选择条件是候选节点中保存待下载数据的子块总个数大于第 二阈值。候选节点中保存待下载数据的子块可以包含待下载数据的起始子块(也就是实施 例四的方案),也可以不包含待下载数据的起始子块,如果不包含待下载数据的起始子块,
13则这里的候选节点中保存待下载数据的子块是指候选节点的总子块,并不特指待下载数据 的起始子块之后的子块。在请求节点确定活动节点之后,可以从活动节点出下载需要的数据。当确定的活 动节点失效后,请求节点将重新向Tracker发送节点列表请求,以获取新的活动节点列表。在本发明实施例中,Tracker在收到请求节点发送的节点列表请求后,可以预先按 照节点的IP地址,选择出物理地址与请求节点接近的节点(如同省或同一国家,或者是地 理位置差别小于固定值的节点)后,再利用本发明实施例的选择条件进一步从中选择候选 节点。与本发明方法实施例属于同一发明构思下的,本发明实施例五还提供一种在P2P 流媒体系统中查找活动节点的系统,如图4所示,所述系统包括请求节点11、可选节点12和 Tracker 13,其中请求节点11用于向Trackerl3发送节点列表请求,并根据Trackerl3返回的节点 列表中的节点信息,确定至少一个候选节点作为活动节点;可选节点12用于向Trackers 上报缓存的连续子块的个数以及所述连续子块中第一个子块的序号;Tracker^用于在接 收到节点列表请求后,根据节点列表请求中包含的请求节点待下载数据的起始子块序号, 选择多个可选节点12作为候选节点,其中,候选节点中缓存了所述待下载数据的起始子 块,并将选择的候选节点的节点信息通过节点列表返回给请求节点11。Trackers还用于从候选节点中进一步筛选出缓存的连续子块的个数大于第一 阈值的候选节点,并将进一步筛选出的候选节点的节点信息通过节点列表返回给请求节点 11,所述连续子块是指所述待下载数据的起始子块之后且与起始子块相邻的连续子块。所述可选节点12还用于向Trackerl3上报缓存的子块总个数信息;则Trackerl3 还用于从候选节点中进一步筛选出缓存的子块总个数大于第二阈值的候选节点,并将进一 步筛选出的候选节点的节点信息通过节点列表返回给请求节点11,所述进一步筛选出的候 选节点中缓存的子块是指待下载数据的起始子块之后的所有子块。所述可选节点11还用于向Trackers上报连接节点个数是否饱和的信息,或已连 接的节点个数及能够连接的最大节点个数,所述连接节点个数是指从可选节点处获取数 据的其他节点个数;则Trackers还用于从候选节点中进一步筛选出连接节点个数未饱和 的候选节点,并将进一步筛选出的候选节点的节点信息通过节点列表返回给请求节点11。Tracker^还用于在候选节点个数大于最大值时,对选择的候选节点再次进行挑 选,并将再次挑选后的候选节点的节点信息通过节点列表返回给请求节点11,所述再次挑 选后的候选节点个数不大于最大值。在选择条件包括缓存的连续子块的个数大于第一阈值时,Trackerl3还用于在 进一步筛选出的候选节点个数大于最大值时,按照待下载数据的连续子块的个数由大到小 的顺序,对候选节点进行排序,再次挑选前N个候选节点,并将再次挑选的N个候选节点的 节点信息通过节点列表返回给请求节点11,所述N为正整数且不大于最大值。在选择条件还包括候选节点中保存待下载数据的子块总个数大于第二阈值时, Trackers还用于在选择的候选节点个数大于最大值时,按照待下载数据的子块总个数由 大到小的顺序,对选择的候选节点进行排序,再次挑选前M个候选节点,并将再次挑选的M 个候选节点的节点信息通过节点列表返回给请求节点11,所述M为正整数且不大于最大
14
本发明实施例六还提供一种追踪设备,应用于P2P流媒体系统中,如图5所示,所 述追踪设备包括请求接收模块21、信息接收模块22、第一选择模块23和列表发送模块24, 其中请求接收模块21用于接收节点列表请求,所述节点列表请求中包含的请求节点待下 载数据的起始子块序号;信息接收模块22用于接收可选节点上报的缓存的连续子块的个 数以及所述连续子块中第一个子块的序号;第一选择模块23用于根据待下载数据的起始 子块序号,选择多个可选节点作为候选节点,其中,候选节点中缓存了所述待下载数据的起 始子块;列表发送模块24用于将选择的候选节点的节点信息通过节点列表返回给请求节 点ο所述第一选择模块23还可以用于从候选节点中进一步筛选出缓存的连续子块的 个数大于第一阈值的候选节点,所述连续子块是指所述待下载数据的起始子块之后且与 起始子块相邻的连续子块。所述信息接收模块22还用于接收可选节点上报的缓存的子块总个数信息;则所 述第一选择模块23还用于从候选节点中进一步筛选出缓存的子块总个数大于第二阈值的 候选节点,所述进一步筛选出的候选节点中缓存的子块是指待下载数据的起始子块之后 的所有子块。所述信息接收模块22还用于接收可选节点上报的连接节点个数是否饱和的信 息,或已连接的节点个数及能够连接的最大节点个数,所述连接节点个数是指从可选节点 处获取数据的其他节点个数;则所述第一选择模块23还用于从候选节点中进一步筛选出 连接节点个数未饱和的候选节点。所述追踪设备还包括第二选择模块25,在选择条件不同时,第二选择模块25的功 能也不同。在选择条件为候选节点的连接节点个数未饱和或缓存待下载数据的起始子块时, 第二选择模块25用于在第一选择模块23选择的候选节点个数大于最大值时,对选择的候 选节点再次进行挑选,并将再次挑选的候选节点对应的节点信息发送给列表发送模块24, 其中再次挑选的候选节点个数不大于最大值。在选择条件至少包括候选节点中保存待下载数据的连续子块的个数大于第一阈 值时,第二选择模块25用于在第一选择模块23选择的候选节点个数大于最大值时,按照缓 存的连续子块的个数由大到小的顺序,对选择的候选节点进行排序,再次挑选前N个候选 节点,并将再次挑选的N个候选节点对应的节点信息发送给列表发送模块24,所述N为正整 数且不大于最大值。这里的待下载数据的连续子块是指待下载数据的起始子块之后且与 起始子块相邻的连续子块。在选择条件至少包括候选节点中保存待下载数据的子块总个数大于第二阈值时, 第二选择模块25用于在第一选择模块23选择的候选节点个数大于最大值时,按照待下载 数据的子块总个数由大到小的顺序,对选择的候选节点进行排序,再次挑选前M个候选节 点,并将再次挑选的M个候选节点对应的节点信息发送给列表发送模块24,所述M为正整数 且不大于最大值。候选节点中保存待下载数据的子块为待下载数据的起始子块之后的子 块。本发明实施例七还提供一种节点设备,该节点设备在能够向其他节点设备上载数据时,可以作为是上述各实施例中涉及的可选节点;同时,该节点设备也可以是上述各实施 例中涉及的请求节点。如图6所示,本实施例七中的节点设备包括信息上报模块31和数据输出模块32, 其中信息上报模块31用于向Tracker上报缓存的连续子块的个数以及所述连续子块中第 一个子块的序号;数据输出模块32用于根据其他节点设备的请求向其他节点设备上载数 据。进一步地,所述信息上报模块31还用于向Tracker上报以下信息中的一种或多种 的组合节点设备连接节点个数是否饱和;节点设备缓存的子块总个数信息。当本实施例中的节点设备作为请求节点时,还可以包括一个请求模块,用于向 Tracker上报节点列表请求,并在接收到Tracker返回的节点列表时,向列表中的其他节点 设备请求下载数据。通过本发明实施例提供的方法、系统及设备,各可选节点向Tracker精简、高效地 上报自身的子块信息,如缓存的连续子块的个数、所述连续子块中第一个子块的序号以及 缓存的子块总个数信息等,使Tracker能够实时确认各可选节点当前缓存子块和连接其他 节点个数的状态,当有请求节点请求获得节点列表时,Tracker可以根据实际需要,按照缓 存子块和连接节点个数为条件,从可选节点中选择满足条件的节点作为候选节点,保证选 择的候选节点能够正确地为请求节点上载数据,则请求节点在确定活动节点时,将原来的 两步查找活动节点的过程变为一步查找,消除了请求节点通过Peerlist查找活动节点时 产生的报文,减轻网络的压力,减少带宽消耗;假设在现有技术方案中每个节点平均查询 10个节点就可以找到活动节点,那么,在一个拥有100万个节点的P2P系统中,由此增加的 报文条数为1000万条。而本发明方案取消了这部分报文的发送,明显减轻网络的带宽压 力。另外,各节点上报的节点信息由Tracker统一处理,提高了 Tracker的利用率。利用本 发明方案后,请求节点只需向tracker发送一个节点列表请求就可以找到活动节点,缩短 了播放启动时间。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精 神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围 之内,则本发明也意图包含这些改动和变型在内。
权利要求
一种在P2P流媒体系统中查找活动节点的方法,其特征在于,可选节点向追踪设备Tracker上报缓存的连续子块的个数以及所述连续子块中第一个子块的序号;所述查找活动节点的方法包括Tracker接收请求节点发送的节点列表请求后,根据节点列表请求中包含的请求节点待下载数据的起始子块序号,选择多个可选节点作为候选节点,其中,候选节点中缓存了所述待下载数据的起始子块;Tracker将候选节点的节点信息通过节点列表返回给请求节点,指示所述请求节点根据节点列表中的节点信息确定至少一个候选节点作为活动节点。
2.如权利要求1所述的方法,其特征在于,Tracker选择候选节点之后,并且将节点列 表返回给请求节点之前,所述方法还包括Tracker从所述候选节点中进一步筛选出缓存的连续子块的个数大于第一阈值的候 选节点,所述连续子块是指所述待下载数据的起始子块之后且与起始子块相邻的连续子 块;Tracker将节点列表返回给请求节点包括Tracker将进一步筛选出的候选节点的节点信息通过节点列表返回给请求节点。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括 可选节点向Tracker上报缓存的子块总个数信息;Tracker选择候选节点之后,并且将节点列表返回给请求节点之前,所述方法还包括 Tracker从所述候选节点中进一步筛选出缓存的子块总个数大于第二阈值的候选节占.Tracker将节点列表返回给请求节点包括Tracker将进一步筛选出的候选节点的节点信息通过节点列表返回给请求节点。
4.如权利要求3所述的方法,其特征在于,所述进一步筛选出的候选节点中缓存的子块是指待下载数据的起始子块之后的所有 子块。
5.如权利要求1、2或3所述的方法,其特征在于,所述方法还包括可选节点向Tracker上报连接节点个数是否饱和的信息,或已连接的节点个数及能够 连接的最大节点个数,所述连接节点个数是指从可选节点处获取数据的其他节点个数; Tracker选择候选节点之后,并且将节点列表返回给请求节点之前,所述方法还包括 Tracker从所述候选节点中进一步筛选出连接节点个数未饱和的候选节点; Tracker将节点列表返回给请求节点包括Tracker将进一步筛选出的候选节点的节点信息通过节点列表返回给请求节点。
6.如权利要求1或5所述的方法,其特征在于,选择出候选节点之后,将节点列表返回 给请求节点之前,所述方法还包括当候选节点个数大于最大值时,Tracker对候选节点再次进行挑选,再次挑选后的候选 节点个数不大于所述最大值;Tracker将节点列表返回给请求节点包括Tracker将再次挑选后的候选节点的节点信息通过节点列表返回给请求节点。
7.如权利要求2所述的方法,其特征在于,选择出候选节点之后,将节点列表返回给请求节点之前,所述方法还包括当候选节点个数大于最大值时,Tracker按照缓存的连续子块的个数由大到小的顺序 对候选节点进行排序,再次挑选前N个候选节点,所述N为正整数且不大于最大值; Tracker将节点列表返回给请求节点包括Tracker将再次挑选的N个候选节点的节点信息通过节点列表返回给请求节点。
8.如权利要求4所述的方法,其特征在于,进一步筛选出候选节点之后,将节点列表返 回给请求节点之前,所述方法还包括在进一步筛选出的候选节点个数大于最大值时,Tracker按照待下载数据的子块总个 数由大到小的顺序对候选节点进行排序,再次挑选前M个候选节点,所述M为正整数且不大 于最大值;Tracker将节点列表返回给请求节点包括Tracker将再次挑选的M个候选节点的节点信息通过节点列表返回给请求节点。
9.一种在P2P流媒体系统中查找活动节点的系统,其特征在于,所述系统包括请求节 点、可选节点和Tracker,其中可选节点,用于向Tracker上报缓存的连续子块的个数以及所述连续子块中第一个子 块的序号;请求节点,用于向Tracker发送节点列表请求,并根据Tracker返回的节点列表中的节 点信息,确定至少一个候选节点作为活动节点;Tracker,用于在接收到节点列表请求后,根据节点列表请求中包含的请求节点待下载 数据的起始子块序号,选择多个可选节点作为候选节点,其中,候选节点中缓存了所述待下 载数据的起始子块,并将选择的候选节点的节点信息通过节点列表返回给请求节点。
10.如权利要求9所述的系统,其特征在于,所述可选节点,还用于向Tracker上报以下信息中的一种或多种的组合 可选节点连接节点个数是否饱和; 可选节点缓存的子块总个数信息。
11.如权利要求9所述的系统,其特征在于,Tracker,还用于按照下列条件中的一种或多种选择候选节点 候选节点连接节点个数未饱,所述连接节点个数是从候选节点处获取数据的其他节点 个数;候选节点中缓存的连续子块的个数大于第一阈值; 候选节点中缓存的子块总个数大于第二阈值。
12.—种追踪设备,应用于P2P流媒体系统中,其特征在于,所述追踪设备包括请求接收模块,用于接收节点列表请求,所述节点列表请求中包含的请求节点待下载 数据的起始子块序号;信息接收模块,用于接收可选节点上报的缓存的连续子块的个数以及所述连续子块中 第一个子块的序号;第一选择模块,用于根据待下载数据的起始子块序号,选择多个可选节点作为候选节 点,其中,候选节点中缓存了所述待下载数据的起始子块;列表发送模块,用于将选择的候选节点的节点信息通过节点列表返回给请求节点。
13.如权利要求12所述的追踪设备,其特征在于,所述第一选择模块,还用于从候选节点中进一步筛选出缓存的连续子块的个数大于第 一阈值的候选节点,所述连续子块是指所述待下载数据的起始子块之后且与起始子块相 邻的连续子块。
14.如权利要求12或13所述的追踪设备,其特征在于,所述信息接收模块,还用于接收可选节点上报的缓存的子块总个数信息;所述第一选择模块,还用于从候选节点中进一步筛选出缓存的子块总个数大于第二阈 值的候选节点,所述进一步筛选出的候选节点中缓存的子块是指待下载数据的起始子块 之后的所有子块。
15.如权利要求12、13或14所述的追踪设备,其特征在于,所述信息接收模块,还用于接收可选节点上报的连接节点个数是否饱和的信息,或已 连接的节点个数及能够连接的最大节点个数,所述连接节点个数是指从可选节点处获取 数据的其他节点个数;所述第一选择模块,还用于从候选节点中进一步筛选出连接节点个数未饱和的候选节点ο
16.如权利要求12或15所述的追踪设备,其特征在于,所述追踪设备还包括第二选择模块,用于在第一选择模块选择的候选节点个数大于最大值时,对选择的候 选节点再次进行挑选,并将再次挑选的候选节点的节点信息发送给列表发送模块,其中再 次挑选的候选节点个数不大于最大值。
17.如权利要求13所述的追踪设备,其特征在于,所述追踪设备还包括第二选择模块,用于在第一选择模块选择的候选节点个数大于最大值时,按照缓存的 连续子块的个数由大到小的顺序,对选择的候选节点进行排序,再次挑选前N个候选节点, 并将再次挑选的N个候选节点的节点信息发送给列表发送模块,所述N为正整数且不大于 最大值。
18.如权利要求14所述的追踪设备,其特征在于,所述追踪设备还包括第二选择模块,用于在第一选择模块选择的候选节点个数大于最大值时,按照待下载 数据的子块总个数由大到小的顺序,对选择的候选节点进行排序,再次挑选前M个候选节 点,并将再次挑选的M个候选节点的节点信息发送给列表发送模块,所述M为正整数且不大 于最大值。
19.一种节点设备,其特征在于,所述节点设备包括信息上报模块,用于向Tracker上报缓存的连续子块的个数以及所述连续子块中第一 个子块的序号;数据输出模块,用于根据其他节点设备的请求向其他节点设备上载数据。
20.如权利要求19所述的节点设备,其特征在于,所述信息上报模块,还用于向Tracker上报以下信息中的一种或多种的组合节点设备连接节点个数是否饱和;节点设备缓存的子块总个数信息。
全文摘要
本发明公开了一种在P2P流媒体系统中查找活动节点的方法,由可选节点精简、高效地向追踪设备上报自身的子块信息,如缓存的连续子块的个数、所述连续子块中第一个子块的序号以及缓存的子块总个数信息等,追踪设备在为请求节点选择合适的候选节点时,利用可选节点的子块信息,选择满足设定条件的候选节点,指示请求节点从候选节点中确定至少一个候选节点作为活动节点。通过本发明,可选节点可以通过较少的字节向追踪设备上报完备的子块信息进而选择出合适的候选节点,使得请求节点不需要向候选节点发送大量的探测就能够确定活动节点,避免了通信资源的浪费,减少了带宽消耗。本发明还公开了一种P2P流媒体系统中查找活动节点的系统及设备。
文档编号H04L29/06GK101924777SQ20091008667
公开日2010年12月22日 申请日期2009年6月17日 优先权日2009年6月17日
发明者张云飞, 彭晋, 段晓东, 邓光青, 魏冰 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1