CN102868682B - 一种流媒体资源共享的方法和装置 - Google Patents
一种流媒体资源共享的方法和装置 Download PDFInfo
- Publication number
- CN102868682B CN102868682B CN201210299891.6A CN201210299891A CN102868682B CN 102868682 B CN102868682 B CN 102868682B CN 201210299891 A CN201210299891 A CN 201210299891A CN 102868682 B CN102868682 B CN 102868682B
- Authority
- CN
- China
- Prior art keywords
- node
- resource
- streaming media
- hop
- request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种流媒体资源共享的方法和装置,属于网络通信领域。所述方法包括:发送请求消息给流媒体服务器,使流媒体服务器将请求节点加入待请求的资源对应的会话中,所述请求消息携带待请求的资源的标识、请求节点的标识和请求节点的底层拓扑信息,接收流媒体服务器返回的为请求节点提供待请求的资源的服务节点集合,所述服务节点集合是流媒体服务器根据请求节点的底层拓扑信息在所述会话中查找的,根据接收的服务节点集合,获取待请求的资源。所述装置包括:发送模块、接收模块和获取模块。本发明能够在请求节点不断增加或网络中的节点移动时,不会造成网络负载大,进而提高资源的查找效率和用户的使用体验度。
Description
技术领域
本发明涉及网络通信领域,特别涉及一种流媒体资源共享的方法和装置。
背景技术
随着网络通信技术的发展与普及,网络资源的传输变的越来越频繁,但是,由于存储容量以及带宽的限制,用户将所需要的资源下载下来需要一定的存储容量和时间,所以流媒体的应用受到了广泛关注。
目前,流媒体系统采用P2P(Peer-to-Peer,点对点)技术,将系统中空闲节点资源充分利用,提高了节点之间流媒体数据的共享程度。例如,在半结构化的Mesh网络中,流媒体服务器存储着大量的流媒体数据,当用户请求某一流媒体资源时,请求节点向流媒体服务器发送请求消息,流媒体服务器接收到请求节点发送的请求消息,并根据该请求消息查找可为请求节点提供资源的服务节点集合,流媒体服务器将查找的服务节点集合发送给请求节点,请求节点再向服务节点集合中的所有服务节点发送数据请求消息,服务节点集合中的服务节点接收到该数据请求消息并传输请求的流媒体数据给请求节点。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
用户通过现有技术请求流媒体资源时,当请求的节点不断增加或网络中的节点移动时,会造成网络负载大,延时长,且资源查找效率低,降低了用户的使用体验度。
发明内容
为了保证请求节点不断增加或网络中的节点移动时,不会造成网络负载大,提高资源的查找效率和用户的使用体验度,本发明提供了一种流媒体资源共享的方法和装置。所述技术方案如下:
一种流媒体资源共享的方法,所述方法包括:
发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入到待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
根据所述接收的服务节点集合,获取所述待请求的资源;
其中,所述请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种;
相应地,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合,包括:
使所述流媒体服务器根据所述底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级排列顺序,将所述底层拓扑信息中的节点与所述待请求的资源对应的会话中包括的节点进行匹配分析,得到为所述请求节点提供资源的服务节点集合。
其中,在所述发送请求消息给流媒体服务器之前,还包括:
选择与所述请求节点之间的物理距离小于阈值d的节点,构成所述请求节点的下一跳节点集合,所述阈值d小于或等于所述请求节点的信号覆盖范围;
分别计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量;
选择与所述请求节点之间的通信质量大于规定阈值s的下一跳节点,构成所述请求节点的邻居节点集合。
进一步地,所述分别计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量,包括:
根据所述下一跳节点集合中包括的每个节点与所述请求节点之间的RTT(Round-Trip Time,往返时延)与信号强度,按如下公式计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量,
其中,为所述请求节点与其下一跳节点之间rtt的测量值与其最大值之比,为所述请求节点与其下一跳节点之间信号强度的测量值与其最大值之比,α为的调节权重因子,β为的调节权重因子;
进一步地,所述方法还包括:
计算所述下一跳节点集合的变化率,如果所述计算的变化率大于规定阈值C,则降低对所述下一跳节点的更新时间间隔,否则,增加所述更新时间间隔;或
根据所述下一跳节点集合的节点密度调整所述阈值d;或
计算所述下一跳节点集合的变化率,如果所述计算的变化率大于规定阈值C,则降低对所述下一跳节点的更新时间间隔,否则,增加所述更新时间间隔;判断所述变化后的更新时间间隔是否大于规定阈值T,如果是,则根据所述下一跳节点集合的节点密度调整所述阈值d。
其中,所述根据所述下一跳节点集合的节点密度调整所述阈值d,包括:
根据所述请求节点与其下一跳节点之间的物理距离阈值d和更新后下一跳节点集合,计算所述下一跳节点集合的节点密度;
判断所述节点密度与系统规定最大密度的比值是否大于阈值D1,如果是,则降低与所述请求节点之间的物理距离阈值d,否则,判断所述节点密度与系统规定最大密度的比值是否小于阈值D2,如果是,则增大与所述请求节点之间的物理距离阈值d,且所述阈值D1大于所述阈值D2。
其中,所述选择与所述请求节点之间的通信质量大于规定阈值s的下一跳节点,构成所述请求节点的邻居节点集合之后,还包括:
选择网络节点集合中的任一个节点,所述节点为其邻居节点生成一个簇号,并将所述生成的簇号分配给所述邻居节点;或
将所述每个邻居节点的IP(Internet Protocol,网络互连协议)与所述选择的节点自身的IP相加取哈希值,得到所述选择的节点的唯一的簇号。
进一步地,所述方法还包括:
更新所述请求节点的下一跳节点集合和邻居节点集合,并计算所述请求节点当前所在节点簇的簇隶属度;
判断所述计算的节点当前所在节点簇的簇隶属度是否大于规定阈值P,如果是,则所述节点归并于所述节点簇,否则,所述节点独立构建一个节点簇。
其中,所述根据所述接收的服务节点集合,获取所述待请求的资源,包括:
向所述返回的服务节点集合中的所有服务节点发送数据请求消息;
在所述返回的服务节点集合中,选取RTT最小的一个服务节点,并从所述RTT最小的服务节点获取所述待请求的资源。
一种流媒体资源共享的装置,所述装置包括:
发送模块,用于发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入到待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
接收模块,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
获取模块,用于根据所述接收的服务节点集合,获取所述待请求的资源;
其中,所述请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种;
相应地,所述接收模块包括:
接收单元,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合;
匹配单元,用于使所述流媒体服务器根据所述底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级排列顺序,将所述底层拓扑信息中的节点与所述待请求的资源对应的会话中包括的节点进行匹配分析,得到为所述请求节点提供资源的服务节点集合。
在本发明实施例中,由于请求节点预先获取了其底层拓扑信息,该底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点和非邻近簇节点中的一种,由于邻居节点、同簇节点、邻近簇节点和非邻近簇节点与请求节点之间的通信质量是由高到低的顺序。所以,根据请求节点的底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级顺序查找为请求节点提供待请求的资源的服务节点集合,保证了当请求节点不断增加和网络中的节点移动时,不会造成网络负载大,延时长,进而提高了资源的查找效率和用户的使用体验度。
附图说明
图1是本发明实施例1提供的一种流媒体资源共享的方法流程图;
图2是本发明实施例2提供的一种流媒体资源共享的方法流程图;
图3是本发明实施例3提供的一种流媒体资源共享的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种流媒体资源共享的方法,包括:
步骤101:发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入到待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
步骤102:接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
步骤103:根据所述接收的服务节点集合,获取所述待请求的资源。
在本发明实施例中,由于请求节点预先获取了其底层拓扑信息,该底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点和非邻近簇节点中的一种,由于邻居节点、同簇节点、邻近簇节点和非邻近簇节点与请求节点之间的通信质量是由高到低的顺序。所以,根据请求节点的底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级顺序查找为请求节点提供待请求的资源的服务节点集合,保证了当请求节点不断增加和网络中的节点移动时,不会造成网络负载大,延时长,进而提高了资源的查找效率和用户的使用体验度。
实施例2
参见图2,本实施例提供了一种流媒体资源共享的方法,其中,在请求节点向流媒体服务器发送请求消息之前,请求节点从其下一跳节点集合中,选择与请求节点之间的通信质量大于阈值的节点,构成请求节点的邻居节点集合,并按照节点归并节点簇隶属度函数计算该请求节点的簇隶属度,选择所要加入的簇或独立生成簇,从而构成请求节点的底层拓扑信息。当请求节点需要请求流媒体资源时,需要向流媒体服务器发送请求消息,请求消息中携带待请求的资源的标识、该请求节点的标识和该请求节点的底层拓扑信息,流媒体服务器根据该请求节点待请求的资源查找当前维护的会话集合,如果存在待请求的资源对应的会话,则根据底层拓扑信息的节点优先级序列为请求节点查找可为其服务的节点集合,并将节点集合发送至请求节点,优先级序列为:邻居节点、同簇节点、邻近簇节点、非邻近簇节点。若无该会话,则流媒体服务器为其传输数据并创建该会话。
系统初始化时,请求节点首先根据网络中各个节点的位置信息,构成请求节点的邻居节点集合,具体包括如下的步骤201至步骤203。
步骤201:选择与请求节点之间物理距离小于阈值d的节点,构成下一跳节点集合,阈值d小于或等于请求节点的信号覆盖范围;
具体地,网络中的每个节点通过其自身包括的GPS模块分别对其当前所在位置进行定位,得到每个节点当前所在位置的位置信息,请求节点根据其自身的位置信息与网络中其他节点的位置信息,选择与其之间的物理距离小于阈值d的节点,构成下一跳节点集合。
其中,阈值d是小于或等于请求节点所覆盖的范围,且阈值d是由每个节点根据其当前位置所覆盖范围内节点密度动态调节的。
步骤202:分别计算下一跳节点集合中包括的每个节点与请求节点之间的通信质量;
具体地,根据下一跳节点集合中包括的每个节点与请求节点之间的RTT及信号强度,按如下公式(1)计算下一跳节点集合中包括的每个节点与请求节点之间的通信质量;
其中,在公式(1)中,为请求节点与其下一跳节点之间rtt的测量值与其最大值之比,为请求节点与其下一跳节点之间信号强度的测量值与其最大值之比,α为的调节权重因子,β为的调节权重因子。
步骤203:选取与请求节点之间的通信质量大于规定阈值s的下一跳节点,构成请求节点的邻居节点集合;
具体地,将计算得到的下一跳节点集合中的每个节点与请求节点之间的通信质量与规定的阈值s进行比较,选择与请求节点之间的通信质量大于规定阈值s的下一跳节点,构成请求节点的邻居节点集合。
为了提高节点的自适应性,需要节点分别维护自身的下一跳节点物理距离阈值及其更新下一跳节点集合的时间间隔,请求节点维护自身的下一跳节点物理距离阈值及其更新下一跳节点集合的时间间隔的具体过程包括如下的步骤204至步骤206。
步骤204:更新请求节点的下一跳节点集合;
步骤205:计算下一跳节点集合的变化率,如果计算的变化率大于规定的阈值C,则降低对下一跳节点的更新时间间隔,否则,增加对下一跳节点的更新时间间隔;
具体地,根据更新前下一跳节点集合与更新后下一跳节点集合,按如下的公式(2)计算下一跳节点的变化率;
其中,在公式(2)中,ci为下一跳节点的变化率,locLi为更新前下一跳节点集合,newlocLi为更新后新的下一跳节点集合,overlap()为计算两个集合交集中元素数量,count()为计算集合元素数量函数。
进一步地,根据规定的阈值与当前下一跳节点变化率之差和变化前对请求节点的下一跳节点的更新时间间隔,按如下公式(3)计算变化后的请求节点的下一跳节点的更新时间间隔;
ti=ti-1(1+Δ),Δ=C-ci,-1≤Δ≤1 (3)
其中,在公式(3)中,ti为变化后对请求节点的下一跳节点的更新时间间隔,ti-1为变化前对请求节点的下一跳节点的更新时间间隔,Δ为ti的增量比,是规定的阈值与当前下一跳节点变化率之差。
步骤206:判断变化后的更新时间间隔是否大于规定阈值T,如果是,则根据更新后下一跳节点集合的节点密度调整阈值d;
其中,根据更新后下一跳节点集合的节点密度调整阈值d的具体步骤如下的步骤(1)至步骤(2):
(1)、根据请求节点与其下一跳节点之间的物理距离阈值d和更新后下一跳节点集合,计算更新后下一跳节点集合的节点密度;
具体地,根据物理距离阈值d和更新后下一跳节点集合,按如下公式(4)计算更新后下一跳节点密度;
deni=count(locLi)/π*d2 (4)
其中,在公式(4)中,deni为请求节点的下一跳节点密度,locLi为更新后下一跳节点集合,count()为计算集合元素数量的函数,d为请求节点的下一跳节点与请求节点的物理距离阈值。
(2)、判断更新后下一跳节点密度与系统规定最大密度的比值是否大于阈值D1,如果是,则降低与请求节点之间的物理距离阈值d,否则,判断更新后下一跳节点密度与系统规定最大密度的比值是否小于阈值D2,如果是,则增大与请求节点之间的物理距离阈值d,且阈值D1大于阈值D2。
其中,阈值D1大于阈值D2,且更新后请求节点的下一跳节点密度deni与系统规定最大密度denmax的比值按如下公式(5)进行了定义;
其中,是更新后请求节点的下一跳节点密度与系统规定最大密度的比值,且该比值是处于0至1的范围内的。
其中,增大后的物理距离阈值d是按公式(6)进行计算的,减少后的物理距离阈值d是按公式(7)进行计算的;
其中,公式(6)和公式(7)中的do为变化前与请求节点之间的物理距离阈值,Δ为请求节点的下一跳节点的变化量。
可选地,由于节点的移动性,节点需要更新下一跳节点集合,但若下一跳节点集合中的节点变化较快时,需要实时的更新下一跳节点集合,否则会导致传输失败;如果下一跳节点集合中的节点变化较慢时,频繁的发送更新消息,会增大网络及节点的负担,所以可以通过步骤205计算更新的时间间隔,此时不调整物理距离阈值d,如此使请求节点维护自身的下一跳节点物理距离阈值及其更新下一跳节点集合的时间间隔;
可选地,如果节点密度较高,则增大了下一跳节点数据转发的压力及能量的消耗,如果节点密度较低,则增大了更新时,节点维护的负担,所以根据请求节点的下一跳节点集合的节点密度,调整与请求节点之间的物理距离阈值d,此时不调整更新时间间隔,如此使请求节点维护自身的下一跳节点物理距离阈值及其更新下一跳节点集合的时间间隔。
其中,更新时间间隔和物理距离阈值可以在更新请求节点的下一跳节点集合之前计算,根据更新的时间间隔和物理距离阈值更新下一跳节点集合;也可以在更新下一跳节点集合之后,计算更新时间间隔和物理距离阈值,根据计算的更新时间间隔和物理距离阈值,以便下次更新请求节点的下一跳节点集合,也可以在预设时间之后计算更新时间间隔和物理距离阈值,其中,该预设时间大于或等于一次的更新时间间隔。
系统初始化时,根据上述步骤构成请求节点的邻居节点集合后,网络中的每个节点与其邻居节点还将构成簇,具体如步骤207。
步骤207:选择网络节点集合中的任一个节点,该节点为其邻居节点生成一个簇号,并将该簇号分配给其邻居节点;
具体地,选择网络节点集合中的任一个节点,该节点为其邻居节点生成一个簇号,并向其邻居节点发送一个消息,该消息中携带该节点为其邻居节点分配的簇号,按照上述相同的方法,网络中的其余节点也为其邻居节点生成一个簇号,并将该簇号分配给其邻居节点。
可选地,节点的簇号还可以通过以下方式得到,具体地,将每个邻居节点的IP与选择的节点自身的IP相加取哈希值,得到选择的节点的簇号,由该方式得到的簇号是唯一的;
根据上述步骤得到更新后的下一跳节点集合之后,更新请求节点的邻居节点集合和节点簇的簇号,具体地包括如下的步骤208至步骤209。
步骤208:更新请求节点的邻居节点集合,并计算请求节点当前所在节点簇的簇隶属度;
其中,根据上述步骤得到更新后请求节点的下一跳节点之后,分别计算更新后下一跳节点集合中的每个节点与请求节点之间的通信质量,将计算得到的更新后下一跳节点集合中的每个节点与请求节点之间的通信质量与规定阈值s进行比较,选取通信质量大于规定阈值s的下一跳节点,构成更新后的邻居节点集合。
具体的,根据有相同簇号的节点子集,按公式(8)计算节点归并与簇的隶属度;
其中,为有相同簇号的节点子集,count()为计算集合中元素数量的函数,pi为节点归并与簇的隶属度。
步骤209:判断计算得到的请求节点当前所在节点簇的簇隶属度是否大于规定阈值P,如果是,则该请求节点归并与当前所在节点簇,否则,该请求节点独立创建一个节点簇;
进一步地,当请求节点的簇号变化时,请求节点向其邻居节点发送更新消息,该更新消息中携带更新后的簇号。
进一步地,选择网络节点集合中的其他节点,并根据上述步骤208至步骤209相同的方法,计算各个节点的簇隶属度,并根据各个节点的簇隶属度更新各个节点的簇号。
其中,当节点的簇号改变时,该节点更新其簇号,并将其他节点为其分配的簇号删除,若节点的簇号不改变时,直接将其他节点为其分配的簇号删除,经过系统的初始化后,每个节点均拥有一个簇号,且簇之间不存在交叉节点。
可选地,当网络中有节点退出时,该节点可不用向任何节点或服务器发送退出消息,当网络中有新加入的节点时,该节点通过其位置信息和其他节点的位置信息直接获取其下一跳节点集合和邻居节点集合,并归属到某一节点簇中。
当请求节点需要请求某个资源时,请求节点向流媒体服务器发送请求消息,具体按照如下的步骤210至步骤213的流程来实现的。
步骤210:发送请求消息给流媒体服务器,使流媒体服务器将请求节点加入待请求的资源对应的会话中,该请求消息携带待请求的资源的标识、请求节点的标识和请求节点的底层拓扑信息;
具体地,请求节点向流媒体服务器发送请求消息,该请求消息携带待请求的资源的标识、请求节点的标识和请求节点的底层拓扑信息,当流媒体服务器接收到请求节点发送的请求消息,并从已存储的资源会话集合中查找是否存在待请求的资源对应的会话,如果存在,则将该请求节点加入待请求的资源对应的会话中,否则,流媒体服务器为待请求的资源创建会话,并传输待请求的资源数据给请求节点;
其中,请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种。
其中,不同的资源对应不同的会话,且会话中包括该会话的ID、该会话对应的资源和该会话中包括的节点集合。
步骤211:接收流媒体服务器返回的为请求节点提供待请求的资源的服务节点集合,该服务节点集合是流媒体服务器根据请求节点的底层拓扑信息,在待请求的资源对应的会话中,查找为请求节点提供待请求的资源的服务节点集合;
其中,流媒体服务器根据请求节点的底层拓扑信息中邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级顺序,将底层拓扑信息中的节点与待请求的资源会话中包括的节点进行匹配分析,得到为请求节点提供资源的服务节点集合;
具体地,本步骤可以具体包括如下(1)至(7)的步骤:
(1)、流媒体服务器首先提取底层拓扑信息中的请求节点的邻居节点;
(2)、流媒体服务器将该邻居节点与待请求的资源对应的会话中包括的节点进行匹配分析;
(3)、判断待请求的资源对应的会话中是否存在请求节点的邻居节点,如果存在,则流媒体服务器将待请求的资源对应的会话中包括的邻居节点集合返回给请求节点,否则,执行步骤(4);
(4)、流媒体服务器根据(1)至(3)相同的方法,查找待请求的资源对应的会话中是否存在请求节点的同簇节点,如果存在,则将待请求的资源对应的会话中包括的同簇节点集合返回给请求节点,否则,执行步骤(5);
(5)、流媒体服务器根据(1)至(3)相同的方法,查找待请求的资源对应的会话中是否存在请求节点的邻近簇节点,如果存在,则将待请求的资源对应的会话中包括的邻近簇节点集合返回给请求节点,否则,执行步骤(6);
(6)、流媒体服务器根据(1)至(3)相同的方法,查找待请求的资源对应的会话中是否存在请求节点的非邻近簇节点,如果存在,则将待请求的资源对应的会话中包括的非邻近簇节点集合返回给请求节点,否则,执行步骤(7);
(7)、流媒体服务器将待请求的资源对应的会话中的所有节点返回给请求节点。
步骤212:请求节点向流媒体服务器返回的每个服务节点发送数据请求消息;
步骤213:请求节点从流媒体服务器返回的每个服务节点中,选择RTT最小的一个服务节点,并从该服务节点获取待请求的资源。
进一步地,当当前为请求节点提供待请求的资源的RTT最小的服务节点移动时,请求节点向流媒体服务器返回的服务节点集合中的其他节点发送数据请求消息,判断返回的服务节点集合中是否存在比当前为请求节点提供资源的服务节点的RTT小的服务节点,如果存在,则切换到该RTT最小的服务节点,使该服务节点为请求节点提供待请求的资源;如果不存在,则请求节点继续从当前为其提供资源的服务节点获取待请求的资源。
其中,当请求节点移动时,请求节点更新其底层拓扑信息,并向流媒体服务器发送请求消息,流媒体服务器将重新获取为请求节点提供资源的服务节点集合,并从该服务节点集合中选取RTT最小的服务节点,请求节点从该服务节点获取待请求的资源。
进一步地,当请求节点播放完当前收到的流媒体数据或变更当前播放的内容时,请求节点重新向流媒体服务器发送请求消息,流媒体服务器根据该请求消息,重新检索为请求节点提供服务的服务节点集合。
在本发明实施例中,由于请求节点预先获取了其底层拓扑信息,该底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点和非邻近簇节点中的一种,由于邻居节点、同簇节点、邻近簇节点和非邻近簇节点与请求节点之间的通信质量是由高到低的顺序。所以,根据请求节点的底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级顺序查找为请求节点提供待请求的资源的服务节点集合,保证了当请求节点不断增加和网络中的节点移动时,不会造成网络负载大,延时长,进而提高了资源的查找效率和用户的使用体验度。
实施例3
参见图3,本实施例提供了一种流媒体资源共享的装置,包括:
发送模块301,用于发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入到待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
接收模块302,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
获取模块303,用于根据所述接收的服务节点集合,获取所述待请求的资源。
其中,请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种;
相应地,接收模块302包括:
接收单元,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合;
匹配单元,用于使流媒体服务器根据底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级排列顺序,将底层拓扑信息中的节点与待请求的资源对应的会话中包括的节点进行匹配分析,得到为请求节点提供资源的服务节点集合;
进一步地,该方法还包括:
第一选择模块,用于选择与请求节点之间的物理距离小于阈值d的节点,构成请求节点的下一跳节点集合,阈值d小于或等于请求节点的信号覆盖范围;
第一计算模块,用于分别计算下一跳节点集合中包括的每个节点与请求节点之间的通信质量;
第二选择模块,用于选择与请求节点之间的通信质量大于规定阈值s的下一跳节点,构成请求节点的邻居节点集合。
其中,第一计算模块包括:
第一计算单元,用于根据下一跳节点集合中包括的每个节点与请求节点之间的RTT与信号强度,按如下公式计算下一跳节点集合中包括的每个节点与请求节点之间的通信质量,
其中,为请求节点与其下一跳节点之间rtt的测量值与其最大值之比,为请求节点与其下一跳节点之间信号强度的测量值与其最大值之比,α为的调节权重因子,β为的调节权重因子。
进一步地,该方法还包括:
第二计算模块,用于计算下一跳节点集合的变化率,如果计算的变化率大于规定阈值C,则降低对下一跳节点的更新时间间隔,否则,增加对下一跳节点的更新时间间隔;或
调整模块,用于根据更新后下一跳节点集合的节点密度调整所述阈值d;或
第三计算模块,用于计算下一跳节点集合的变化率,如果计算的变化率大于规定阈值C,则降低对下一跳节点的更新时间间隔,否则,增加对下一跳节点的更新时间间隔;判断变化后的更新时间间隔是否大于规定阈值T,如果是,则根据更新后下一跳节点集合的节点密度调整阈值d。
其中,调整模块包括:
第二计算单元,用于根据请求节点与其下一跳节点之间的物理距离阈值d和更新后下一跳节点集合,计算下一跳节点集合的节点密度;
判断单元,用于判断计算的节点密度与系统规定最大密度的比值是否大于阈值D1,如果是,则降低与请求节点之间的物理距离阈值d,否则,判断计算的节点密度与系统规定最大密度的比值是否小于阈值D2,如果是,则增大与请求节点之间的物理距离阈值d,且阈值D1大于阈值D2。
进一步地,该方法包括:
分配模块,选择网络节点集合中的任一个节点,选择的节点为其邻居节点生成一个簇号,并将生成的簇号分配给选择的节点的邻居节点;或
相加模块,用于将每个邻居节点的IP与选择的节点自身的IP相加取哈希值,得到选择的节点的唯一的簇号。
进一步地,该方法还包括:
更新模块,用于更新选择的节点的下一跳节点集合和邻居节点集合,并计算选择的节点当前所在节点簇的簇隶属度;
判断模块,用于判断计算的节点当前所在节点簇的簇隶属度是否大于规定阈值P,如果是,则选择的节点归并于当前所在的节点簇,否则,选择的节点独立构建一个节点簇。
其中,获取模块303包括:
发送单元,用于向返回的服务节点集合中的所有节点发送数据请求消息;
获取单元,用于在返回的服务节点集合中,选取RTT最小的一个节点,并从RTT最小的节点获取待请求的资源。
在本发明实施例中,由于请求节点预先获取了其底层拓扑信息,该底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点和非邻近簇节点中的一种,由于邻居节点、同簇节点、邻近簇节点和非邻近簇节点与请求节点之间的通信质量是由高到低的顺序。所以,根据请求节点的底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级顺序查找为请求节点提供待请求的资源的服务节点集合,保证了当请求节点不断增加和网络中的节点移动时,不会造成网络负载大,延时长,进而提高了资源的查找效率和用户的使用体验度。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种流媒体资源共享的方法,其特征在于,所述方法包括:
发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
根据所述接收的服务节点集合,获取所述待请求的资源;
其中,所述请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种;
相应地,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合,包括:
使所述流媒体服务器根据所述底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级排列顺序,将所述底层拓扑信息中的节点与所述待请求的资源对应的会话中包括的节点进行匹配分析,得到为所述请求节点提供资源的服务节点集合。
2.如权利要求1所述的方法,其特征在于,所述发送请求消息给流媒体服务器之前,还包括:
选择与所述请求节点之间的物理距离小于阈值d的节点,构成所述请求节点的下一跳节点集合,所述阈值d小于或等于所述请求节点的信号覆盖范围;
分别计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量;
选择与所述请求节点之间的通信质量大于规定阈值s的下一跳节点,构成所述请求节点的邻居节点集合。
3.如权利要求2所述的方法,其特征在于,所述分别计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量,包括:
根据所述下一跳节点集合中包括的每个节点与所述请求节点之间的往返时延RTT与信号强度,按如下公式计算所述下一跳节点集合中包括的每个节点与所述请求节点之间的通信质量,
其中为所述请求节点与其下一跳节点之间rtt的测量值与其最大值之比,为所述请求节点与其下一跳节点之间信号强度的测量值与其最大值之比,α为的调节权重因子,β为的调节权重因子。
4.如权利要求2所述的方法,其特征在于,所述方法还包括:
计算所述下一跳节点集合的变化率,如果所述计算的变化率大于规定阈值C,则降低对所述下一跳节点的更新时间间隔,否则,增加所述更新时间间隔;或
根据所述下一跳节点集合的节点密度调整所述阈值d;或
计算所述下一跳节点集合的变化率,如果所述计算的变化率大于规定阈值C,则降低对所述下一跳节点的更新时间间隔,否则,增加所述更新时间间隔;判断所述变化后的更新时间间隔是否大于规定阈值T,如果是,则根据所述下一跳节点集合的节点密度调整所述阈值d。
5.如权利要求4所述的方法,其特征在于,所述根据所述下一跳节点集合的节点密度调整所述阈值d,包括:
根据所述请求节点与其下一跳节点之间的物理距离阈值d和更新后下一跳节点集合,计算所述下一跳节点集合的节点密度;
判断所述节点密度与系统规定最大密度的比值是否大于阈值D1,如果是,则降低与所述请求节点之间的物理距离阈值d,否则,判断所述节点密度与系统规定最大密度的比值是否小于阈值D2,如果是,则增大与所述请求节点之间的物理距离阈值d,且所述阈值D1大于所述阈值D2。
6.如权利要求2至5任一项权利要求所述的方法,其特征在于,所述选择与所述请求节点之间的通信质量大于规定阈值s的下一跳节点,构成所述请求节点的邻居节点集合之后,还包括:
选择网络节点集合中的任一个节点,所述节点为其邻居节点生成一个簇号,并将所述生成的簇号分配给所述邻居节点;或
将所述每个邻居节点的网络互连协议IP与所述选择的节点自身的IP相加取哈希值,得到所述选择的节点的唯一的簇号。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
更新所述请求节点的下一跳节点集合和邻居节点集合,并计算所述请求节点当前所在节点簇的簇隶属度;
判断所述计算的节点当前所在节点簇的簇隶属度是否大于规定阈值P,如果是,则所述节点归并于所述节点簇,否则,所述节点独立构建一个节点簇。
8.如权利要求1所述的方法,其特征在于,所述根据所述接收的服务节点集合,获取所述待请求的资源,包括:
向所述返回的服务节点集合中的所有服务节点发送数据请求消息;
在所述返回的服务节点集合中,选取RTT最小的一个服务节点,并从所述RTT最小的服务节点获取所述待请求的资源。
9.一种流媒体资源共享的装置,其特征在于,所述装置包括:
发送模块,用于发送请求消息给流媒体服务器,使所述流媒体服务器将请求节点加入到待请求的资源对应的会话中,所述请求消息携带所述待请求的资源的标识、所述请求节点的标识和所述请求节点的底层拓扑信息;
接收模块,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合,所述服务节点集合是所述流媒体服务器根据所述请求节点的底层拓扑信息,在所述会话中查找为所述请求节点提供所述待请求的资源的服务节点集合;
获取模块,用于根据所述接收的服务节点集合,获取所述待请求的资源;
其中,所述请求节点的底层拓扑信息至少包括邻居节点、同簇节点、邻近簇节点、非邻近簇节点中的一种;
相应地,所述接收模块包括:
接收单元,用于接收所述流媒体服务器返回的为所述请求节点提供所述待请求的资源的服务节点集合;
匹配单元,用于使所述流媒体服务器根据所述底层拓扑信息中的邻居节点大于同簇节点,同簇节点大于邻近簇节点,邻近簇节点大于非邻近簇节点的优先级排列顺序,将所述底层拓扑信息中的节点与所述待请求的资源对应的会话中包括的节点进行匹配分析,得到为所述请求节点提供资源的服务节点集合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210299891.6A CN102868682B (zh) | 2012-08-21 | 2012-08-21 | 一种流媒体资源共享的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210299891.6A CN102868682B (zh) | 2012-08-21 | 2012-08-21 | 一种流媒体资源共享的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102868682A CN102868682A (zh) | 2013-01-09 |
CN102868682B true CN102868682B (zh) | 2015-02-25 |
Family
ID=47447273
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210299891.6A Active CN102868682B (zh) | 2012-08-21 | 2012-08-21 | 一种流媒体资源共享的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102868682B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889362B (zh) * | 2018-12-19 | 2020-05-29 | 湖北光影空间系统工程有限公司 | 数据通信和处理方法、装置及系统 |
CN111181626B (zh) * | 2019-12-31 | 2021-04-30 | 北京邮电大学 | 面向无人机自组织网络的数据传输方法及装置 |
CN114268635B (zh) * | 2021-12-02 | 2023-12-15 | 珠海迈科智能科技股份有限公司 | 一种p2p流媒体文件定位与节点选择的系统及其方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018172A (zh) * | 2007-02-09 | 2007-08-15 | 浪潮电子信息产业股份有限公司 | 一种优化城域网内p2p传输的方法 |
CN101414975A (zh) * | 2008-11-28 | 2009-04-22 | 中兴通讯股份有限公司 | 基于对等网络的服务节点选择方法及装置、索引实体 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2139205B1 (en) * | 2008-06-27 | 2012-10-31 | Alcatel Lucent | Method of redundant data storage |
-
2012
- 2012-08-21 CN CN201210299891.6A patent/CN102868682B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018172A (zh) * | 2007-02-09 | 2007-08-15 | 浪潮电子信息产业股份有限公司 | 一种优化城域网内p2p传输的方法 |
CN101414975A (zh) * | 2008-11-28 | 2009-04-22 | 中兴通讯股份有限公司 | 基于对等网络的服务节点选择方法及装置、索引实体 |
Also Published As
Publication number | Publication date |
---|---|
CN102868682A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Orchestrating massively distributed CDNs | |
US9130958B2 (en) | Terminal, seed server, and tracker server for reducing delay in streaming service | |
CN101345690B (zh) | 电信级p2p网络的内容分级存储及传送方法 | |
US20110078230A1 (en) | Method and system for providing a cdn with granular quality of service | |
CN102594926B (zh) | 异构无线p2p网络文件共享系统及加速文件传输方法 | |
CN101242432B (zh) | 一种互联网内容分发方法、系统及装置 | |
CN113453038B (zh) | 一种cdn-p2p混合架构下效用最优协同缓存管理方法 | |
CN101296152B (zh) | 对等连接网络的数据调度方法和系统 | |
CN101331739A (zh) | 对等网络内容传输方法及装置 | |
CN101710904B (zh) | P2p流量优化方法及其系统 | |
CN101567796A (zh) | 一种内容分片的多媒体网络及其业务方法 | |
Zhang et al. | An SDN-based caching decision policy for video caching in information-centric networking | |
CN109818881A (zh) | Cdn带宽调度方法、采集及调度服务器和存储介质 | |
CN102868682B (zh) | 一种流媒体资源共享的方法和装置 | |
CN104158904B (zh) | 一种云辅助移动p2p网络协同下载方法 | |
Di Maio et al. | A centralized approach for setting floating content parameters in VANETs | |
Gu et al. | A distributed caching scheme using non-cooperative game for mobile edge networks | |
CN101980505A (zh) | 一种基于3Tnet的视频点播的负载均衡方法 | |
WO2011029936A1 (en) | Distributed flow mechanism for peer-to-peer streaming | |
CN103179045B (zh) | 支持p2p流量优化的资源节点选择方法 | |
CN108768690A (zh) | 一种结构化的p2p自组织网络结构及资源搜索方法 | |
Zhou et al. | A scalable vehicular network architecture for traffic information sharing | |
US10291474B2 (en) | Method and system for distributed optimal caching of content over a network | |
Ahmadifard et al. | ISEFF: an ID-based scalable and efficient distributed file sharing technique in vehicular ad hoc networks | |
CN116249162A (zh) | 车载边缘网络中基于深度强化学习的协作缓存方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |