组网方法、组网管理方法以及装置和系统的制作方法

文档序号:10666383阅读:444来源:国知局
组网方法、组网管理方法以及装置和系统的制作方法
【专利摘要】本发明公开一种组网方法、组网管理方法以及装置和系统,该方法包括:获得客户端的流量类型信息,其中,流量类型包括流量敏感类型和非流量敏感类型;以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过传播树接收数据。本发明公开的组网方法、组网管理方法以及装置和系统,客户端加入直播时,区分客户端的流量类型,根据用户的流量类型进行组网,可以在确保流畅播放的同时不对流量敏感用户造成多余的流量消耗。
【专利说明】
组网方法、组网管理方法以及装置和系统
技术领域
[0001]本发明涉及移动互联网领域,尤其涉及一种组网方法、组网管理方法以及装置和系统。
【背景技术】
[0002]网络直播是指通过互联网进行音视频的实时播放,媒体流的生成接收播放之间的延时非常短。尤其是在主持人和听众之间需要进行互动的直播环境,延时要控制在一两秒之内。
[0003]流媒体对带宽占用大,若所有用户都直接从服务器获取流媒体,则服务器要承担巨大的带宽消耗。因此,在大用户量的直播应用中,P2P (peer to peer,对等计算或对等网络)直播是必选的方案,即通过客户端中转的方式,在应用层实现点对点的流媒体传输。但是,传统的P2P直播应用不考虑用户对流量的敏感性,如果用户带宽充足则很可能会被分配大量的下行开销,用户需要为此额外付费。
[0004]因此,有必要提出一种P2P组网以降低对流量敏感用户的影响。

【发明内容】

[0005]本公开要解决的一个技术问题是如何提供一种P2P组网方法以降低对流量敏感用户的影响。
[0006]本公开提供一种组网方法,包括:
[0007]获得客户端的流量类型信息,其中,流量类型包括流量敏感类型和非流量敏感类型;
[0008]以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过传播树接收数据。
[0009]进一步地,还包括:
[0010]多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0011]进一步地,多棵传播树组成第一骨干网和第二骨干网;
[0012]设置非流量敏感类型客户端在第一骨干网具有一个父节点,在第二骨干网具有N个父节点,非流量敏感类型客户端从第一骨干网中的父节点获得完整的数据流,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数;
[0013]或
[0014]设置非流量敏感类型客户端在第二骨干网具有一个父节点,在第一骨干网具有N个父节点,非流量敏感类型客户端从第二骨干网中的父节点获得完整的数据流,从第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。
[0015]进一步地,还包括:
[0016]流量敏感类型客户端从以内容服务器作为树根的传播树中的非流量敏感类型客户端接收数据,但不作为传播树中的节点。
[0017]进一步地,还包括:
[0018]根据传播内容的带宽需求和/或实际网络带宽配置传播树;和/或传播树为二叉树。
[0019]本发明提供一种组网管理方法,包括:
[0020]接收客户端的状态报告消息;
[0021]根据状态报告消息管理传播树;
[0022]其中,传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过传播树接收数据。
[0023]进一步地,接收客户端的状态报告消息包括:
[0024]接收客户端定时发送的反映客户端最新状态的状态报告消息,状态报告消息包括连接状态信息和/或流量类型信息,流量类型包括流量敏感类型和非流量敏感类型,连接状态信息包括无连接、尝试连接或正常连接。
[0025]进一步地,还包括:接收客户端发送的加入直播请求和/或退网请求;
[0026]若接收到客户端的加入直播请求,根据客户端流量类型信息在传播树中为客户端分配父节点;和/或方法还包括:若接收客户端的退网请求,断开客户端与父节点的连接;和/或方法还包括:根据网络情况管理传播树;和/或
[0027]进一步地,还包括:
[0028]多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0029]进一步地,多棵传播树组成第一骨干网和第二骨干网,根据客户端流量类型信息在传播树中为客户端分配父节点包括:
[0030]若判断得到客户端为非流量敏感类型客户端,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近;
[0031 ] 若判断得到客户端为流量敏感类型客户端,在传播树中为客户端分配传输节点,流量敏感类型客户端从传播树中获取数据但不作为树中节点。
[0032]进一步地,接收客户端的状态报告消息之后包括:
[0033]若客户端与父节点的连接处于无连接状态,根据客户端流量类型信息为客户端分配父节点。
[0034]进一步地,根据网络情况管理传播树包括:
[0035]统计骨干网节点获得父节点的成本,成本为平均每次成功连接经历的连接尝试次数;
[0036]当成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。
[0037]本发明还提供了一种组网装置,包括:
[0038]获取模块,用于获得客户端的流量类型信息,其中,流量类型包括流量敏感类型和非流量敏感类型;
[0039]组网模块,用于以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过传播树接收数据。
[0040]进一步地,组网模块用于多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0041]进一步地,组网模块用于:设置第一骨干网和第二骨干网;
[0042]设置非流量敏感类型客户端在第一骨干网具有一个父节点,在第二骨干网具有N个父节点,非流量敏感类型客户端从第一骨干网中的父节点获得完整的数据流,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数;
[0043]或
[0044]设置非流量敏感类型客户端在第二骨干网具有一个父节点,在第一骨干网具有N个父节点,非流量敏感类型客户端从第二骨干网中的父节点获得完整的数据流,从第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。
[0045]进一步地,组网模块用于:使流量敏感类型客户端从以内容服务器作为树根的传播树中的非流量敏感类型客户端接收数据,但不将流量敏感类型客户端作为传播树中的节点。
[0046]进一步地,传播树为二叉树;
[0047]组网模块用于:根据传播内容的带宽需求和/或实际网络带宽配置传播树。
[0048]本发明还提供一种组网管理装置,包括:
[0049]接收模块,用于接收客户端的状态报告消息;
[0050]管理模块,用于根据状态报告消息管理传播树;
[0051]其中,传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过传播树接收数据。
[0052]进一步地,接收模块用于:
[0053]接收客户端定时发送的反映客户端最新状态的状态报告消息,状态报告消息包括连接状态信息和/或流量类型信息,流量类型包括流量敏感类型和非流量敏感类型,连接状态信息包括无连接、尝试连接或正常连接。
[0054]进一步地,接收模块还用于接收客户端发送的加入直播请求和/或退网请求;接收模块若接收到客户端的加入直播请求,管理模块用于根据客户端流量类型信息在传播树中为客户端分配父节点;和/或接收模块若接收客户端的退网请求,管理模块用于断开客户端与父节点的连接;和/或管理模块还用于根据网络情况管理传播树;和/或管理模块用于使多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0055]进一步地,管理模块用于:
[0056]使多棵传播树组成第一骨干网和第二骨干网,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近;若判断得到客户端为流量敏感类型客户端,在传播树中为客户端分配传输节点,流量敏感类型客户端从传播树中获取数据但不作为树中节点。
[0057]进一步地,管理模块用于:
[0058]若客户端与父节点的连接处于无连接状态,根据客户端流量类型信息为客户端分配父节点。
[0059]进一步地,管理模块用于:
[0060]统计骨干网节点获得父节点的成本,成本为平均每次成功连接经历的连接尝试次数;当成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。
[0061]本发明还提供了一种组网系统,包括:服务器,该服务器包括如上述的组网装置和/或网管理装置;以及客户端。
[0062]本公开提供的组网方法、组网管理方法以及装置和系统,客户端加入直播时,区分客户端的流量类型,根据用户的流量类型进行组网,可以在确保流畅播放的同时不对流量敏感用户造成多余的流量消耗。
【附图说明】
[0063]图1示出本发明一个实施例的组网方法的流程图
[0064]图2示出本发明一个实施例的P2P组网的结构示意图。
[0065]图3示出本发明一个实施例的组网管理方法的流程图。
[0066]图4示出本发明一个实施例的组网装置的结构示意图。
[0067]图5示出本发明一个实施例的组网管理装置的结构示意图。
【具体实施方式】
[0068]下面参照附图对本发明进行更全面的描述,其中说明本发明的示例性实施例。
[0069]图1示出本发明一个实施例的组网方法的流程图。如图1所示,该方法主要包括:
[0070]步骤100,注册服务器获得客户端的流量类型信息,其中,流量类型包括流量敏感类型和非流量敏感类型。
[0071]在一个实施例中,P2P组网方式组成的直播系统由注册服务器(RegisterServer)、内容服务器(ContentServer)和客户端(Client)组成。其中,内容服务器负责向客户端提供媒体流,内容服务器处理来自客户端的连接请求。当客户端连接上内容服务器后,内容服务器按当前进度把流媒体发送给客户端。注册服务器负责记录客户端的状态,并为客户端分配父节点,组建、维护和管理整个P2P传播网。
[0072]在一个实施例中,可以将所有客户端分成流量敏感节点和非流量敏感节点两类。流量敏感节点指不愿意消耗多余带宽的节点,流量敏感节点不希望参与媒体流向其他节点的传播。非流量敏感节点则对流量消耗不敏感,愿意贡献自身全部带宽,可以参与流媒体的传播。
[0073]步骤102,注册服务器以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过传播树接收数据。
[0074]在一个实施例中,流量敏感类型客户端从以内容服务器作为树根的传播树中的非流量敏感类型客户端接收数据,但不作为传播树中的节点。
[0075]在一个实施例中,多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。此时,传播树中某一节点可以从多个父节点获取数据,这可以为非流量敏感类型的客户端提供至少双倍的传播路由和输入流,提供双倍冗余数据的传输,可以提升了整个网络的稳定性。
[0076]在一个实施例中,骨干网由多颗传播树构成,树的根节点直接从内容服务器获取媒体流。传播树确保了节点总有一个可以追溯到根的传播路由,这样可以避免出现无源的回环。
[0077]本发明实施例的组网方法,针对移动互联网用户的特点,设计了一种P2P组网方案,客户端加入直播时,区分客户端的流量类型,根据用户的流量类型进行组网:具体利用非流量敏感用户构建传播树,承担传播任务,充分利用其上行带宽;流量敏感用户从传播树中接收数据,但不作为树中节点,无需向他人传播数据,这样,可以在确保流畅播放的同时不对流量敏感用户造成多余的流量消耗。
[0078]图2示出本发明一个实施例的P2P组网的结构示意图,如图2所示,该P2P直播组网以内容服务器200为树根,该组网包括两张由非流量敏感节点构成的骨干网即骨干网A和骨干网B,骨干网A和B负责流媒体的传播,在骨干网A中和骨干网B中包括多个节点,即节点202?节点221,骨干网中节点为非流量敏感类型客户端,各个节点可以组成一个以内容服务器为树根的传播树,非流量敏感类型客户端作为该传播树的分支点或树叶建立传播树。流量敏感客户端例如节点222、节点223、节点224不作为传播树中的节点,仅从传播树中的节点获取数据,例如节点223以非流量敏感客户端组成的节点216?节点219为父节点,通过节点216?节点219与内容服务器实现信息交互。
[0079]在一个实施例中,非流量敏感类型客户端在第一骨干网如骨干网A具有一个父节点,从第一骨干网中的父节点获得完整的数据流;非流量敏感类型客户端在第二骨干网如骨干网B网具有N个父节点,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。这样,可以非流量敏感类型的客户端提供双倍的传播路由和输入流,提尚网络的稳定性。
[0080]在一个实施例中,可以设置非流量敏感类型客户端在第二骨干网如骨干网A具有一个父节点,在第一骨干网如骨干网B具有N个父节点,非流量敏感类型客户端从第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。
[0081]骨干网A和骨干网B这两个骨干网是对等的。在非流量敏感类型客户端加入到组网时,既可以将非流量敏感类型客户端分配到骨干网A,也可以将该客户端分配到骨干网B。若判断得到客户端为非流量敏感类型客户端,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近。
[0082]在一个实施例中,骨干网中的节点可以称为骨干节点,骨干节点在它所在的骨干网只有一个父节点(树结构),但在另一张骨干网,可以有N个(N>1或者N= 1,可以由系统预先配置好)它网父节点。每个它网父节点只负责向它提供N分之一的数据,在不考虑丢包的情况下,这些数据组合起来构成完整的数据流。通过细分数据流减少对单一节点的依赖,并有利于充分利用节点的上行带宽。骨干节点同时从本网父节点获取完整的数据流。因而,骨干节点分别从两张骨干网获取完整的媒体流,它接收到的数据是双倍冗余的,降低了丢包率,提升稳定性。
[0083]流量敏感的节点不加入骨干网,但可以从骨干网获取媒体流,采用多父节点细分数据流的方式,即流量敏感节点在两张骨干网中有N个父节点,每个父节点负责向它提供N分之一的数据。
[0084]在一个实施例,非流量敏感节点比流量敏感节点有更优先的流量获取权。系统监控骨干网节点添加父节点的成本(平均尝试次数),当成本达到预设的阀值,则通知最近加入直播的一批流量敏感节点,让它们降低父节点个数,直到监控到的成本恢复到阀值以下,才允许流量敏感节点添加父节点。
[0085]本发明实施例提供的P2P直播方法和组网系统,流量敏感用户如按流量计费的用户,无需担心自己需要为多余的流量消耗付费,更加适合当前的移动互联网用户,并且能够为新加入的子节点提供双倍的输入路由和输入流。
[0086]在一个实施例中,参照图2,骨干网A和骨干网B以内容服务器为树根,其中,骨干网A和骨干网B可以由多棵树组成,例如骨干网A可以为以内容服务器为树根的多个分支组成树状网络,骨干网B可以为以内容服务器为树根的多个分支组成树状网络,可以说骨干网A和骨干网B以内容服务器为树根组成一棵传播树,也可以说该P2P组网由多棵节点组成的传播树组成,仅仅是称呼的差别,并不影响具体方案的实现。
[0087]在一个实施例中,非流量敏感类型客户端组成的传播树可以是一个r元树,r为大于等于2的正整数,即在该传播树中一个父节点有r个子节点,这样,一个父节点可以向r个子节点传输数据。
[0088]在一个实施例中,在组网时候,除内容服务器之外,骨干网中各个节点可以有两个分支,就是说该传播树是一个二叉树。考虑到节点的带宽参差不齐,选择二叉树有利于确保稳定性,在设计算法和实现方式时比较容易实现。需要明白的是,在实际应用中,可以根据传播内容的带宽需求和实际网络带宽状况设置该传播树。例如,可以将各个父节点的子节点个数固定为某一数值例如2、3、4等,即系统预先配置设置盖传播树。
[0089]在一个实施例中,在一个骨干网中,若一个父节点最多可以有2个分叉(度),新加入的客户端优先接入到靠近树根的上层父节点,当靠近树根的父节点出度达到预定值例如2的时候,再向下层节点接入。
[0090]在一个实施例中,各个分叉数可以为预先配置的固定值,在选取父节点时也可以不考虑靠近树根者优先,对父节点选择策略我们不做限定,若要实现的话,可以给所有新节点赋予一个相同的候选优先级,若出现连接失败就把优先级降一等,类似这样的动态方法。因用户退出直播是随机的,所以靠近树根者的节点未必就一直靠近树根,若它的父节点退出直播,它重新获取父节点后,有可能就变得远离树根。
[0091]本发明实施例的组网方法,为流量敏感类型的客户端提供至少双倍的传播路由和输入流的同时,增加网络传输的稳定性,减低网络的复杂度和延时,并且组网的灵活性更尚O
[0092]P2P流媒体直播系统按其组网方式可以分为树状和网状系统。其中,树状结构下数据块由父节点传递给子节点,逐层推送,组网简单,路由清晰;在网状结构下,每个节点维护一定数量的邻居节点,邻居节点间通过周期性地交换元数据来获悉其他节点上是否有自己需要的数据,再选定数据的最终来源。但是,树状结构的P2P组网对网络抖动很敏感,且存在不能充分利用网络资源的问题;网状结构的P2P组网相对复杂,延时高,稳定性也没保障。
[0093]本发明实施例的组网方法,不同于传统的树状网络和网状结构网络,对传统的树状结构网络进行了扩展,形成了一种新的树状基础网状结构网络,可以实现每个节点至少有两组独立的可以回溯到内容服务器的传播链路,一组来自它自身所在骨干网,另一组来自另一骨干网,这种冗余设计可以降低丢包率,降低对单一节点的依赖,提高稳定性,降低网络抖动对直播带来的影响;并且本发明实施例的组网结构相对比较简单,路由相对清晰,能够融合树形网络和网状结构网络的优点;并加入直播的客户端可以根据带宽优先选择带宽高的父节点加入,降低直播流的延时。相对与现有技术,若只有一个骨干网,若只有树传播,那只要父节点退网,后面所有子节点就失去数据源;若采用网状传播,就存在复杂的网络管理问题,譬如:如何避免节点间形成孤立的闭包,采用本发明实施例的组网方法的好处之一是能够简化管理、提高稳定性。
[0094]在一个实施例中,节点间通信时,媒体流按时序进行分割成可以在一个IP包中分发的数据块,并依次用整数编码数据块。父节点采用UDP协议向子节点发送数据块。父节点收到数据块后先进行去重,然后将数据块转发送给子节点。在指定的延时范围内,如果有数据块还没收到,子节点可以通知父节点重新发送该数据块;延时超过一定时限则判定为丢包,放弃重发尝试。
[0095]这样,本发明实施例提供的组网方法可以结合树状和网状结构的优点,并采用了对媒体流进行条带分割的技术,使得传播网络更加稳定。
[0096]参考图2,在一个实施例中,节点209在其所属的骨干网A具有父节点203,在它网即骨干网B中具有父节点204、205、210、211,节点209可以从骨干网A的父节点203中获得完整的数据流,可以从骨干网B的父节点204、205、210、211中获得1/4的数据流,这样,节点209可以通过两条路径获取数据,获得数据时双倍冗余的。
[0097]若节点209的父节点203因为故障或其他原因退出该P2P组网,那么由于节点209还能从它网父节点获得完整的数据流,因此不影响节点209用户的使用,也不会影响节点216以及节点217的网络直播通信。若注册服务器检测到父节点203退出直播,则重新为节点209分配父节点,可以将节点209的父节点设为内容服务器200,或将节点209的父节点设为节点208,将节点208的父节点设为内容服务器200。
[0098]若节点209在骨干网B中的父节点204、205、210、211的任一个退出网络直播,也不会影响节点209的数据传输,同上,若注册服务器检测到其节点209在它网的某一父节点退出直播,则在骨干网B中重新为节点209分配或者添加父节点。
[0099]在一个实施例中,根据传播内容的带宽需求和/或实际网络带宽配置传播树。例如,若节点209当前需要传输的直播内容清晰度高,内容大,可以在骨干网A为该节点分配带宽高的父节点,从而能够提供更高的带宽保证;可以在骨干网B为节点209多分配几个父节点如分配6、7、8个等。若节点209当前不需要直播内容或直播内容占用的带宽较小,可以将节点209分配给带宽较小的父节点,或者降低节点209它网父节点的个数等。
[0100]需要明白的是,尽管本发明实施例以骨干网A有两棵传播树,骨干网B有两个传播树为例说明P2P组网,但是本发明不限于此。本领域人员应该能够理解,骨干网A和骨干网B可以分别有多棵传播树。
[0101]图3示出本发明一个实施例的组网管理方法的流程图。如图3所示,该方法主要包括:
[0102]步骤300,注册服务器接收客户端的状态报告消息。
[0103]在一个实施例中,可以使用注册服务器负责记录客户端的状态,并为客户端分配父节点,维护整个P2P传播网。
[0104]在一个实施例中,注册服务器可以接收客户端定时发送的反映客户端最新状态的状态报告消息,该状态报告消息包括连接状态信息和/或流量类型信息,流量类型包括流量敏感类型和非流量敏感类型,连接状态信息包括无连接、尝试连接或正常连接。
[0105]在一个实施例中,客户端状态发生变化时,客户端可以向注册服务器发送状态报告消息,告知注册服务器客户端的最新状态。客户端的状态指客户端是否流量敏感以及客户端与其它客户端的连接状态。连接状态又分为无连接(UNC0NNECT)、尝试连接(CONNECTING)、正常连接(CONNECTED)三种。注册服务器在收到STATUSREP0RT消息后,根据客户端的不同状态进行不同的处理。
[0106]步骤302,注册服务器根据状态报告消息管理传播树,其中,传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过传播树接收数据。
[0107]在一个实施例中,多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0108]在一个实施例中,若多棵传播树组成第一骨干网和第二骨干网,根据客户端流量类型信息在传播树中为客户端分配父节点时,若判断得到客户端为非流量敏感类型客户端,在第一骨干网和第二骨干网中为客户端分配父节点,为非流量敏感类型客户端分配父节点时,保持第一骨干网和第二骨干网的节点数量接近;若判断得到客户端为流量敏感类型客户端,在传播树中为客户端分配传输节点,流量敏感类型客户端从传播树中获取数据但不作为树中节点。
[0109]连接状态是指一个客户端和其他客户端的连接状态,一个客户端有多个父节点和子节点,所以有多个连接,因而有多个连接状态。注册服务器根据客户端上报的各个连接的连接状态来给客户端安排父节点。在一个实施例中,若客户端与父节点的连接处于无连接状态,该无连接状态需要分配父节点,根据客户端流量类型信息为客户端分配父节点。若客户端处于尝试连接状态,说明组网系统已经为该客户端分配好父节点,只是还没连接成功。一个客户端可以有多个父节点和子节点,客户端跟它每个父节点和子节点都要有一个连接,所以一个客户端有多个连接例如连接1、连接2、……连接n,每个连接对应一个父节点或子节点。连接状态可以是针对具体的连接的而言的而不是针对客户端的。如果与父节点的连接η处于无连接状态(unconnected),此时要判断该父节点是否在线,不是判断当前节点是否在线,因为当前节点肯定是在线的,否则收不到它的状态信息。
[0110]在一个实施例中,若客户端处于正常连接状态,则通过条带分割技术将数据分割,组网中的各个节点间通信时,媒体流按时序进行分割成可以在一个IP包中分发的数据块,并依次用整数编码数据块。父节点采用UDP协议向子节点发送数据块。父节点可以从该父节点的本网父节点和它网父节点获取双倍冗余的数据,父节点收到数据块后先进行去重,然后将数据块转发送给其子节点。在指定的延时范围内,如果有数据块还没收到,子节点可以通知父节点重新发送该数据块;延时超过一定时限则判定为丢包,放弃重发尝试。
[0111]在一个实施例中,客户端在接入该组网时,可以向注册服务器发出加入直播请求。若注册服务器接收到客户端的加入直播请求,可以根据客户端流量类型信息在传播树中为客户端分配父节点。
[0112]在一个实施例中,客户端加入直播时,可以通过给注册服务器发状态报告(STATUSREP0RT)消息,告知注册服务器其要加入直播。客户端可以负责指定自己是否流量敏感。客户端可以响应服务器发送的状态响应(STATUSRESPONSE)消息,处理该STATUSRESPONSE,客户端根据该STATUSRESPONSE消息的提示,尝试与候选父节点建立连接。
[0113]在一个实施例中,客户端可以根据自身状态发送状态报告消息,该状态报告消息可以是更新状态消息,若客户端与父节点的连接失效或与候选父节点的连接尝试失效,则向注册服务器发一个反映其最新状态的STATUSREP0RT消息。
[0114]在一个实施例中,注册服务器收到来自客户端的状态报告(STATUSREP0RT)消息,如果该客户端不在其维护的在线客户端列表中,则认为该客户端是新加入的客户端,需要把它添加到在线客户端列表。
[0115]在一个实施例中,注册服务器可以为新加入组网的节点分配父节点,注册服务器在收到STATUSREP0RT消息后,根据客户端的不同状态进行不同的处理,如果客户端与某个父节点之间的连接是无连接(UNC0NNECT),一般新加入的客户端其所有连接都是UNC0NNECT,注册服务器负责为客户端分配一个候选父节点,通过状态回复消息(STATUSRESPONSE)告知客户端。
[0116]在一个实施例中,注册服务器可以对新加入的客户端进行节点分群。注册服务器要区分新加入的客户端是流量敏感节点还是非流量敏感节点,如果是非流量敏感节点,则需要进一步将该节点指派到骨干网A或骨干网B。一个指派策略是保持两个骨干网节点数量尽量接近,即把新加入的节点指派到节点数量少的骨干网上。
[0117]在一个实施例中,客户端在退出P2P组网时候,可以发出退出直播消息(QUIT),该退网请求由客户端在正常退出直播的时候发给注册服务器。若注册服务器接收客户端的退网请求,断开客户端与父节点的连接。
[0118]在一个实施例中,注册服务器若收到客户端的退出直播消息(QUIT),则把该客户端从在线客户端列表中删除。考虑到客户端有可能异常退出直播如断网或断电而退出直播,注册服务器在收到STATUSREP0RT后得知某客户端作为父节点的连接失效或无法建立连接,则注册服务器向该客户端发出心跳检测消息(HEARTBEAT),若客户端没有回复,则认为该客户端已离线,并将其从在线客户端列表中移除。
[0119]在一个实施例中,需要确保骨干节点优先获得父节点。注册服务器可以统计骨干节点获得父节点的成本,即平均每次成功连接经历的连接尝试次数。当成本达到给定的阀值例如3次、4次、5次、7次、8次等,注册服务器将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发退网消息(DROP),让它们让出部分带宽资源,直到骨干节点获得父节点的成本恢复到阀值以下。
[0120]在一个实施例中,客户端可以主动出让父节点,举例而言,若客户端原来是非流量敏感节点,但是在用户切换网络或移动终端根据网络状态切换网络后,该客户端变为流量敏感节点,则该客户端可以发送DROP消息给服务器,服务器根据DROP消息提示,可以主动断开指定父节点的连接,进而出让父节点。
[0121]在一个实施例中,客户端可以主动发出退出直播消息,退出直播前该客户端可以向注册服务器发QUIT消息。
[0122]在一个实施例中,注册服务器可以根据网络情况管理传播树。具体地,注册服务器可以统计骨干网节点获得父节点的成本,成本为平均每次成功连接经历的连接尝试次数;当成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。
[0123]图4示出本发明一个实施例的组网装置的结构示意图,如图4所示,该组网装置400包括:
[0124]获取模块402,用于获得客户端的流量类型信息,其中,流量类型包括流量敏感类型和非流量敏感类型;
[0125]组网模块404,用于以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过传播树接收数据。
[0126]在一实施例中,组网模块404用于多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0127]本发明实施例的组网装置,可以为非流量敏感类型的客户端提供双倍的传播路由和输入流,提供双倍冗余数据的传输,提升了整个网络的稳定性。
[0128]在一个实施例中,组网模块404用于:设置第一骨干网和第二骨干网;设置非流量敏感类型客户端在第一骨干网具有一个父节点,在第二骨干网具有N个父节点,非流量敏感类型客户端从第一骨干网中的父节点获得完整的数据流,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数;或,设置非流量敏感类型客户端在第二骨干网具有一个父节点,在第一骨干网具有N个父节点,非流量敏感类型客户端从第二骨干网中的父节点获得完整的数据流,从第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。这样,可以为非流量敏感类型的客户端提供双倍的传播路由和输入流。
[0129]在一个实施例中,组网模块404用于:使流量敏感类型客户端从以内容服务器作为树根的传播树中的非流量敏感类型客户端接收数据,但不将流量敏感类型客户端作为传播树中的节点。
[0130]在一个实施例中,传播树为二叉树;组网模块用于:根据传播内容的带宽需求和/或实际网络带宽配置传播树。
[0131]图5示出本发明一个实施例的组网管理装置的结构示意图,如图5所示,该组网管理装置500包括:
[0132]接收模块502,用于接收客户端的状态报告消息。
[0133]管理模块504,用于根据状态报告消息管理传播树。
[0134]其中,传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过传播树接收数据。
[0135]在一个实施例中,接收模块502用于:接收客户端定时发送的反映客户端最新状态的状态报告消息,状态报告消息包括连接状态信息和/或流量类型信息,流量类型包括流量敏感类型和非流量敏感类型,连接状态信息包括无连接、尝试连接或正常连接。
[0136]在一个实施例中,接收模块502还用于接收客户端发送的加入直播请求和/或退网请求;接收模块502若接收到客户端的加入直播请求,管理模块504用于根据客户端流量类型信息在传播树中为客户端分配父节点;接收模块502若接收客户端的退网请求,管理模块504用于断开客户端与父节点的连接。
[0137]在一个实施例中,管理模块504还用于根据网络情况管理传播树;在一个实施例中,管理模块504用于使多棵传播树组成至少两个骨干网,传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。
[0138]在一个实施例中个,管理模块504用于:使多棵传播树组成第一骨干网和第二骨干网,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近;若判断得到客户端为流量敏感类型客户端,在传播树中为客户端分配传输节点,流量敏感类型客户端从传播树中获取数据但不作为树中节点。
[0139]在一个实施例中,管理模块504用于:若客户端与父节点的连接处于无连接状态,根据客户端流量类型信息为客户端分配父节点。
[0140]在一个实施例中,管理模块504用于:统计骨干网节点获得父节点的成本,成本为平均每次成功连接经历的连接尝试次数;当成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。
[0141]本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
【主权项】
1.一种组网方法,其特征在于,包括: 获得客户端的流量类型信息,其中,所述流量类型包括流量敏感类型和非流量敏感类型; 以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过所述传播树接收数据。2.根据权利要求1所述的方法,其特征在于,还包括: 多棵所述传播树组成至少两个骨干网,所述传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。3.根据权利要求2所述的方法,其特征在于,多棵所述传播树组成第一骨干网和第二骨干网,所述方法包括: 设置所述非流量敏感类型客户端在所述第一骨干网具有一个父节点,在第二骨干网具有N个父节点,所述非流量敏感类型客户端从所述第一骨干网中的所述父节点获得完整的数据流,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数; 或 设置所述非流量敏感类型客户端在所述第二骨干网具有一个父节点,在所述第一骨干网具有N个父节点,所述非流量敏感类型客户端从所述第二骨干网中的所述父节点获得完整的数据流,从所述第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。4.根据权利要求2所述的方法,其特征在于,还包括: 所述流量敏感类型客户端从以内容服务器作为树根的所述传播树中的所述非流量敏感类型客户端接收数据,但不作为所述传播树中的节点。5.根据权利要求1所述的方法,其特征在于,还包括: 根据传播内容的带宽需求和/或实际网络带宽配置所述传播树; 和/或 所述传播树为二叉树。6.一种组网管理方法,其特征在于,包括: 接收客户端的状态报告消息; 根据所述状态报告消息管理传播树; 其中,所述传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过所述传播树接收数据。7.根据权利要求6所述的方法,其特征在于,接收客户端的状态报告消息包括: 接收客户端定时发送的反映所述客户端最新状态的状态报告消息,所述状态报告消息包括连接状态信息和/或流量类型信息,所述流量类型包括流量敏感类型和非流量敏感类型,所述连接状态信息包括无连接、尝试连接或正常连接。8.根据权利要求7所述的方法,其特征在于,还包括:接收客户端发送的加入直播请求和/或退网请求; 若接收到客户端的加入直播请求,根据所述客户端流量类型信息在所述传播树中为所述客户端分配父节点; 和/或 所述方法还包括:若接收客户端的退网请求,断开所述客户端与父节点的连接; 和/或 所述方法还包括:根据网络情况管理所述传播树; 和/或 所述方法还包括: 多棵所述传播树组成至少两个骨干网,所述传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。9.根据权利要求8所述的方法,其特征在于, 多棵所述传播树组成第一骨干网和第二骨干网,所述根据所述客户端流量类型信息在所述传播树中为所述客户端分配父节点包括: 若判断得到所述客户端为非流量敏感类型客户端,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近; 若判断得到所述客户端为流量敏感类型客户端,在所述传播树中为所述客户端分配传输节点,所述流量敏感类型客户端从所述传播树中获取数据但不作为树中节点。10.根据权利要求7所述的方法,其特征在于,接收客户端的状态报告消息之后包括: 若所述客户端与父节点的连接处于无连接状态,根据所述客户端流量类型信息为所述客户端分配父节点。11.根据权利要求9所述的方法,其特征在于,根据网络情况管理所述传播树包括: 统计骨干网节点获得父节点的成本,所述成本为平均每次成功连接经历的连接尝试次数; 当所述成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。12.一种组网装置,其特征在于,包括: 获取模块,用于获得客户端的流量类型信息,其中,所述流量类型包括流量敏感类型和非流量敏感类型; 组网模块,用于以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立传播树,流量敏感类型客户端通过所述传播树接收数据。13.根据权利要求12所述的装置,其特征在于,所述组网模块用于多棵所述传播树组成至少两个骨干网,所述传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。14.根据权利要求13所述的装置,其特征在于,所述组网模块用于:设置第一骨干网和第二骨干网; 设置所述非流量敏感类型客户端在所述第一骨干网具有一个父节点,在第二骨干网具有N个父节点,所述非流量敏感类型客户端从所述第一骨干网中的所述父节点获得完整的数据流,从第二骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数;或 设置所述非流量敏感类型客户端在所述第二骨干网具有一个父节点,在所述第一骨干网具有N个父节点,所述非流量敏感类型客户端从所述第二骨干网中的所述父节点获得完整的数据流,从所述第一骨干网中的各父节点中获取1/N的数据流,其中,N为大于等于I的正整数。15.根据权利要求13所述的装置,其特征在于,所述组网模块用于:使流量敏感类型客户端从以内容服务器作为树根的传播树中的非流量敏感类型客户端接收数据,但不将流量敏感类型客户端作为所述传播树中的节点。16.根据权利要求12所述的装置,其特征在于,所述传播树为二叉树; 所述组网模块用于:根据传播内容的带宽需求和/或实际网络带宽配置所述传播树。17.—种组网管理装置,其特征在于,包括: 接收模块,用于接收客户端的状态报告消息; 管理模块,用于根据所述状态报告消息管理传播树; 其中,所述传播树为以内容服务器为树根、以非流量敏感类型客户端作为分支点或树叶建立的传播树,流量敏感类型客户端通过所述传播树接收数据。18.根据权利要求17所述的装置,其特征在于,接收模块用于: 接收客户端定时发送的反映所述客户端最新状态的状态报告消息,所述状态报告消息包括连接状态信息和/或流量类型信息,所述流量类型包括流量敏感类型和非流量敏感类型,所述连接状态信息包括无连接、尝试连接或正常连接。19.根据权利要求18所述的装置,其特征在于,所述接收模块还用于接收客户端发送的加入直播请求和/或退网请求; 所述接收模块若接收到客户端的加入直播请求,所述管理模块用于根据所述客户端流量类型信息在所述传播树中为所述客户端分配父节点; 和/或 所述接收模块若接收客户端的退网请求,所述管理模块用于断开所述客户端与父节点的连接; 和/或 所述管理模块还用于根据网络情况管理所述传播树; 和/或 所述管理模块用于使多棵所述传播树组成至少两个骨干网,所述传播树中的节点在其所属的骨干网中具有唯一父节点,在至少另外一个骨干网中也具有父节点。20.根据权利要求19所述的装置,其特征在于,所述管理模块用于: 使多棵所述传播树组成第一骨干网和第二骨干网, 若判断得到所述客户端为非流量敏感类型客户端,选择一个骨干网将非流量敏感类型客户端加入,选择时尽量保持两个骨干网的节点数接近; 若判断得到所述客户端为流量敏感类型客户端,在所述传播树中为所述客户端分配传输节点,所述流量敏感类型客户端从所述传播树中获取数据但不作为树中节点。21.根据权利要求18所述的装置,其特征在于,所述管理模块用于: 若所述客户端与父节点的连接处于无连接状态,根据所述客户端流量类型信息为所述客户端分配父节点。22.根据权利要求20所述的装置,其特征在于,所述管理模块用于: 统计骨干网节点获得父节点的成本,所述成本为平均每次成功连接经历的连接尝试次 数; 当所述成本达到设定阀值时,将停止给流量敏感客户端分配父节点,并根据加入直播的时间从新到旧向流量敏感客户端发送退网指令,让部分流量敏感客户端让出带宽资源,直到骨干网节点获得父节点的成本恢复到设定阀值以下。23.一种组网系统,其特征在于,包括: 服务器,包括如权利要求12-16中任一所述的组网装置和/或权利要求17-22中任一所述的组网管理装置; 以及客户端。
【文档编号】H04L29/08GK106034106SQ201510103201
【公开日】2016年10月19日
【申请日】2015年3月10日
【发明人】袁立宇, 杨翊平, 蔡坚铮, 金铎
【申请人】中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1