CN101247197B - 一种混合网络直播系统中无线组播代理方法 - Google Patents
一种混合网络直播系统中无线组播代理方法 Download PDFInfo
- Publication number
- CN101247197B CN101247197B CN2008100469729A CN200810046972A CN101247197B CN 101247197 B CN101247197 B CN 101247197B CN 2008100469729 A CN2008100469729 A CN 2008100469729A CN 200810046972 A CN200810046972 A CN 200810046972A CN 101247197 B CN101247197 B CN 101247197B
- Authority
- CN
- China
- Prior art keywords
- node
- wireless
- multicast
- network
- data
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种混合网络直播系统中无线组播代理方法,步骤为:①节点加入到频道的组播地址,若没收到无线组播代理的心跳包就初始化为组播代理,否则竞争决定新的组播代理。②无线组播代理与广播源及有线节点交互传输,将收到的缓冲数据组播给本无线网络中的一般无线节点,响应其数据请求;③一般无线节点根据组播代理发出的心跳包初始化缓冲区,并根据缓冲区填充情况向代理请求数据。④一般无线节点如果漫游进入新网络,若新网络中存在组播代理则仍可接受服务,否则自身转为组播代理。⑤如果无线组播代理漫游出原网络,则原网络所有一般无线节点竞争选出新的组播代理,新网络若存在组播代理,则竞争确定新的组播代理,否则保持作为组播代理。
Description
技术领域
本发明属于计算机应用领域,具体涉及一种混合网络直播系统中无线组播代理方法WiAM(Wireless Multicast Agent Mechanism),该方法特别适合于网络带宽和客户端计算能力有限的无线环境。
背景技术
近年来,无线通信技术的快速发展使得基于高速2.5G/2.75G/3G网络或者地面数字电视广播方式的移动电视和手机电视的热门应用方兴未艾,手机电视和移动电视是通过广播方式向移动终端传输电视节目,主要依托的是移动通信网络或者广电网络,依靠的是复杂的网络和繁多的中继设备完成覆盖移动用户和提供可靠的服务质量。虽然实施和部署系统的难度很大,且与现有的互联网缺少互动,属于专网内的应用,同时在用户交互和控制管理方面也存在一定的缺陷,但是这种无线电视业务也已经得到了快速发展,而且具有很大的发展前景。
现在已经有一些移动直播系统了。GGTV采用基于自有知识产权的视频压缩与传输技术,通过2.5G及3G网络,为移动终端用户提供移动流媒体服务。Funinhand试运营的系统支持CDMA1X和GPRS网络,支持在线直播和点播等不同应用。MobiTV在美国运营商Sprint PCS和Idetic的1900MHz蜂窝网络上实现了实时影像发送服务,并在最近宣布对多播技术和WiMAX技术的支持,将使用这些技术部署新网络。
而相比以话音业务为主的移动通信网络,IEEE标准802.11x协议族无线局域网(Wireless LAN,WLAN)主要面向数据业务,依托无线局域网的移动直播点播应用前景广阔。目前无线局域网技术(特别是802.11b协议即WiFi)虽然在积极推广之中,无线热点和无线网卡的数量大大增加,但是由于带宽和移动性等问题,无线局域网中部署移动流媒体直播或者移动电视的系统并不多见,还局限于一些较基本的应用,如Web,Email等等。WiFi的衍生技术WiMAX更是以更高的带宽和更远的中继距离成为无线通信4G国际标准的强有力竞争者。因此,这种无线网络也是一种适合于负载无线网络直播的一种很好的载体。
同时,在无线网络和移动电视高速发展的同时,在互联网内随着Peer-to-Peer Network和Overlay Network等技术的提出,出现了应用层组播(ALM,Application Layer Multicast)这一概念。它的主要思想是:保持Internet原有的“单播,尽力发送”模型,尽量不改变原来网络的体系结构,而主要通过增加端系统的功能来实现组播的功能。由于对原有网络的改变很少,应用层组播具有很好的灵活性。当然应用层组播中很多技术细节还在研究当中。这些问题的存在也为应用层组播的研究提供了广阔的空间。媒体编码技术,Peer-to-Peer(P2P)和Overlay Network等技术的发展对应用层组播的研究也有很大的促进作用。
现在国内外也已经研究出部分应用层组播技术和相关的P2P流媒体直播系统。以ESM和ALMI算法为代表的小规模多源组播方案,他们将组播组的成员组织成一个网或者树,再以每个数据源为根各构造一个生成树。以NICE和ZigZag为代表的大规模单源组播方案,他们为了解决如何在只有一个组播源的情况下构造大规模的组播树的问题,使用了分层和分群的思路。以CoopNet和SplitStream为代表的基于多树的应用层组播方案,它们的主要思路是,在组成员之间同时维护多个组播树,利用MDC算法把媒体编码成N个媒体流,同时沿多个组播树传播。以Yoid和Host Multicast为代表的应用层组播和IP组播结合的方案,主要思想是:在局部,小规模并且支持IP组播的网络中使用IP组播,而在IP组播构成的“小岛”或者没有IP组播支持的主机之间使用应用层的方式连接。PeerCast则通过限定每个节点所能服务节点的个数来优化节点间的传输延迟,为了减少拓扑结构的动态变化对播放质量的影响,它采用了冗余连接的方式。Coolstreaming和DONet是近年来所提出的基于网状结构应用层多播的典型例子,该方法的主要思想是利用轻量级的Gossip协议来构建一个应用层的覆盖多播网,每个节点既是数据的接收者,也是数据的提供者。
但是,具体来说,在无线局域网中部署流媒体直播系统主要存在两个问题:网络带宽和节点移动性。
首先,无线局域网802.11b/g的理论带宽仅为11M/54Mbps,考虑到无线网络易受干扰,带宽不稳定且网络传输出错的可能性远大于有线网络等特点,如果采用原有的P2P网络架构,节点之间通过可靠传输TCP连接来交换数据,即使是播放较小码流的媒体文件(<=300kbps),当有多个节点同时在线时,在同一局域网内也最多只能同时观看一两个频道。带宽消耗在节点之间请求数据时出错重传的代价和多个节点观看同一频道的多个冗余数据流。而带宽是网络最宝贵的资源,应该尽量减少不必要的带宽消耗。重复的数据连接不但造成带宽的极大浪费,而且容易造成网络的拥塞,消耗有限的无线网络资源,流媒体服务的使用环境进一步恶化。
其次,无线节点的移动性可以保证节点自由的在各个网络中漫游切换,特别是出现节点在多个无线网络信号范围之内,信号强弱的些许变化导致节点在不同的网络中切换。节点频繁加入和退出某一网络,会给网络拓扑结构带来比较频繁的变化,造成网络的不稳定性,同时影响了无线节点间的数据交互。
针对以上两个问题,提出无线组播代理机制可以很好地实现在无线局域网部署直播系统的任务,使系统能够稳定高效地工作在有线与无线并存的混合网络下,提供高质量的流媒体服务。
发明内容
本发明的目的在于提供一种混合网络直播系统中无线组播代理方法,该方法可以解决无线局域网中流媒体直播系统的网络带宽和节点移动性问题。
本发明提供的混合网络直播系统中无线组播代理方法,包括以下步骤:
(1)无线节点加入到频道对应的组播地址,然后通过基于节点信号强弱的竞争,竞争成功的无线节点初始化为无线组播代理节点,转入步骤(3);竞争失败的无线节点初始化为一般无线节点,进入步骤(2);
(2)一般无线节点根据无线组播代理节点定期发出的心跳包初始化自己的缓冲区,接收无线组播代理节点组播的媒体数据,并根据自己的缓冲区填充情况,向无线组播代理节点请求数据;同时一般无线节点维护无线组播代理节点在P2P网络中的邻居节点列表;如果某个时刻节点离开旧的无线网络,移动到新的无线网络中,则转入步骤(4);
(3)无线组播代理节点负责帮助新加入组播的一般无线节点完成缓冲区的初始化,还负责将从广播源和其它有线节点中获取的数据在组播地址中组播,响应一般无线节点的独立的请求,在组播地址内进行分发数据的调度;在这过程中如果无线组播代理节点离开原无线网络,移动到新的无线网络中,则转入步骤(5);
(4)一般无线节点在移动过程中如果漫游出原先所在的网络,进入新的网络中,此时如果新的网络中存在无线组播代理节点,则仍可以接受服务,回到步骤(2);如果新的网络中不存在无线组播代理节点,则自身转换为无线组播代理节点,转到步骤(3);
(5)无线组播代理节点漫游出原先网络,进入新的网络;在原先网络中,所有的一般无线节点开始相互发送竞争权值数据包,通过竞争选出原无线网络的新的无线组播代理节点;在新的网络中,如果存在无线组播代理节点,则该节点与其他无线节点进行竞争,竞争成功则依然作为无线组播代理节点,进入步骤(3),否则变为一般无线节点,进入步骤(2);在新的网络中,如果不存在无线组播代理节点,则该节点保持原有状态,仍然作为无线组播代理节点,等待新的无线节点加入,进入步骤(3)。
本发明混合网络直播系统中无线组播代理方法具有以下特点:
(1)采用推拉结合的双重数据组播策略:兼顾无线节点的快速初始化和缓冲稳定后的连续播放,提高缓冲的效率和速度。
(2)基于紧急区域优先调度:这样一般无线节点按照自己的缓冲区紧急区域划分,先调度紧急数据,然后调度非紧急数据。
(3)基于截止时间和节点请求数的优先调度:这个策略与优先调度策略相结合,一般无线节点优先请求紧急数据,无线组播代理节点优先响应截止时间即将到期、请求节点较多的数据,保证有限的带宽用于传输最需要的数据。
(4)防止过度请求和控制重发次数的机制:同时设置请求和响应周期的最大数据量,调度标志以及超时重发队列,减少数据重复请求和响应,减小网络负载,降低造成网络拥塞的可能性,保证系统的稳定连续的缓冲与播放。
(5)代理心跳机制:无线组播代理节点定期组播心跳包,帮助新加入组播的无线节点快速初始化缓冲区,同时可以帮助无线节点发现无线组播代理节点,在无线组播代理节点突然离开网络的时候也可以保证无线节点快速进入代理竞争过程选出新的无线组播代理节点。
附图说明
图1为本发明方法的主流程框图;
图2为一般无线节点加入组播时缓冲管理调度示意图;
图3为一般无线节点缓冲区示意图;
图4为一般无线节点缓冲维护的管理调度示意图;
图5为无线组播代理节点缓冲管理调度与调度功能示意图;
图6为推拉结合的双重数据组播示意图;
图7为组播补丁方式Multicast Pull调度流程图;
图8为组播和非组播方式下无线节点带宽占用示意图。
具体实施方式
本发明根据有线环境下流媒体系统的机制进行改进,移植到无线环境下,成为一种代理组播的方法,从而达到减少带宽消耗和降低客户端开销的目的,从而更好的适应无线环境下网络带宽和节点移动性的特点。下面结合附图和实例对本发明作详细的说明。
如图1所示,本发明混合网络直播系统中无线组播代理方法包括以下步骤:
(1)无线节点加入到频道对应的组播地址,然后通过基于节点信号强弱的竞争,竞争成功的无线节点初始化为无线组播代理节点,转入步骤(3);竞争失败的无线节点初始化为一般无线节点,进入步骤(2)。具体步骤如下:
(1.1)无线节点从服务器获得的频道列表中任意选择一个频道,加入这个频道对应的组播地址,并监听无线组播代理节点定期发出的心跳包。
(1.2)如果没有收到心跳包,说明该无线节点所在网络中不存在无线组播代理节点,该无线节点自身就初始化为无线组播代理节点,然后就转到步骤(3);
(1.3)如果收到了心跳包,说明该无线网络中已经存在无线组播代理节点,然后就发送竞争权值包,竞争权值包的内容包括了四项信息:该节点的全局唯一标识GUID,该节点自身的能力权值W,该节点当前缓冲区起始槽位FSN和自身是否为无线组播代理节点的标志位IsAgent。其中的竞争权值是根据节点自身接收的信号强度和网络状况来确定的。然后通过竞争的算法来决定新的无线组播代理节点,该竞争算法是节点将其自身的竞争权值W与其他节点的竞争权值W进行多轮的比较;比较后权值最大的无线节点就初始化为无线组播代理节点,然后转到步骤(3);其余无线节点就初始化为一般无线节点,然后转到步骤(2)。
(2)一般无线节点根据无线组播代理节点定期发出的心跳包初始化自己的缓冲区,接收无线组播代理节点组播的媒体数据,并根据自己的缓冲区填充情况,向无线组播代理节点请求数据;同时一般无线节点还将维护无线组播代理节点在P2P网络中的邻居节点列表(Partner List),以备在重新竞争成为无线组播代理节点后能够快速地建立与有线外网的连接,尽早交互和传输数据,减少切换和缓冲等待的时间。如果某个时刻节点离开旧的无线网络,移动到新的无线网络中,则转入步骤(4)。
如图2所示,具体步骤如下:
(2.1)当一般无线节点刚加入组播时,开始还不能播放,根据无线组播代理节点的心跳包将缓冲区进行初始化操作,初始化数据请求。
然而实际上此时缓冲区仍全部处于空白的待请求状态,这时节点请求的数据范围是从起始槽位开始依次到长度为缓冲初始化请求长度(RequestInit Buffer Length)的这部分数据;该长度的大小要略大于初次播放所需的最大连续缓冲块大小,因为无线组播代理节点的缓冲区随时间滚动删除最早数据,若请求初始化缓冲小于或等于最大连续缓冲块大小,可能会使节点接收不到足以开始播放的连续缓冲。
(2.2)一般无线节点根据自己的缓冲区空缺情况来进行调度,向本无线网络中的无线组播代理节点发送数据请求。
图3给出了无线节点缓冲区内部结构示意图。在删除指针和播放指针之间是播放过的旧数据,这些旧数据仅在一般无线节点转变为无线组播代理节点时,为其它无线节点分发数据;在播放指针和调度指针之间是准备播放的数据,是本次缓冲维护周期内要播放的数据;在调度指针之前的这两块数据都不再请求。在调度指针之后有一段紧急数据区,它是下一个缓冲区维护周期将要送去播放的缓冲数据,这一段数据是无线节点最急需的数据,因此优先级是最高的。
另外一方面,为了防止出现多个无线节点在一段时间间隔内反复请求相同的时间槽造成无线组播代理节点过度重发,增加网络负荷,在一般无线节点中设置请求周期与最大数量。一般无线节点请求数据后将对应请求的时间槽的调度标志置位,在请求超时之前不再请求该时间槽,保证尽可能少发同样的请求数据,以免无线组播代理节点重复响应相同的数据,加重无线组播代理节点的负担和无线网络通信量。
具体来说分来两个小步骤:
(2.2.1)一般无线节点从缓冲区的调度指针所指的地方开始,选取N个没有充满的时间槽,N为一个固定值,可以根据无线组播代理节点的能力来设定,一般设定为40至50,然后将要请求的时间槽号按照紧急程度依次加入请求列表中,这样保证在有限的数据请求中能够优先调度最紧急的数据。总的来说,就是按照节点自身的缓冲区紧急区域划分,先调度紧急数据,然后调度非紧急数据。
(2.2.2)将本次调度的时间槽做上相应的标记,即使下次没有收到这个时间槽的数据,在请求超时之前也不会再次请求。
(2.3)一般无线节点在无线网络中接收组播数据,根据自己的缓冲区空缺情况向自己的缓冲区填充相应的数据包,如果收到的数据包是自己缓冲区没有的,就填入缓冲区中,如果收到的数据包在缓冲区中已经存在,就丢弃该数据包。
(2.4)检查是否超过最大初始化缓冲等待时间(Max Init BufferTimeout),这个时间可以根据缓冲区长度滚动完所需要的时间来设定,这个时间一般可以设置为25秒左右。若超时仍未接收到初始化所需要的数据,再根据当前无线组播代理节点的心跳包中的缓冲区第一个时间槽号FSN(First Slot Num)所表示的时间,删除自己缓冲区内比该时间更早的时间槽,然后返回步骤(2)执行,重新初始化。若没有超时则继续执行。
(2.5)判断是否缓冲到足够的数据可以进行播放。如果缓冲不足够则继续循环执行步骤(2.2)~(2.5),继续缓冲;如果缓冲到足够的数据,则进入步骤(2.6)。
(2.6)缓冲区开始滚动,送数据到播放器进行播放,并不断维护缓冲区。
如图4所示,一般无线节点缓冲维护分(2.6.1)和(2.6.2)两个步骤同时执行,这相当时两个线程同时执行。
(2.6.1)这是一个不断接收数据的过程,具体步骤如下所示。
①从无线网络中接收无线组播代理节点发送的组播数据。
②判断该组播数据在自身的缓冲区中是否已经存在,是的话返回上一步①,否则继续执行步骤③。
③将数据包加入到数据包队列里面。
④将数据包队列里面的数据包添加到自身的缓冲区里面,然后回去步骤①执行。
(2.6.2)这是一个定时请求数据的过程,具体步骤如下所示。
(i)等待一个请求周期再继续执行,这个周期一般设为4秒左右。
在这里,设置组播补丁请求周期,是保证无线组播代理节点尽可能为每个一般无线节点提供可靠的服务,而不至于把有限的能力服务少数的几个节点。在保证网络中每个一般无线节点可以收到足够播放的缓冲数据的前提下,控制每个请求周期的数据量,使负载在时间上均匀地分布,而不至于出现突发的请求过度导致网络拥塞或者无线组播代理节点忙于响应少数请求,忽略了其它节点造成缓冲耗尽停止播放的情况。
(ii)缓冲区向前滚动,删除过期的数据包。
(iii)从紧急区域开始最多选取M个时间槽,选取的时间槽最多以缓冲区结束为止,M可以和步骤(2.2.1)的N取值相同,选取的时间槽组成组播补丁请求数据包发送,并对相应时间槽号设置标志位。然后回去步骤(i)执行。
一般无线节点并不能贪婪的向无线组播代理节点请求过多的数据。为了平衡缓冲数据请求量和网络负荷之间的矛盾,为一般无线节点设置一个时间槽请求数量的最大值(Max Mobile Request Length),这个长度略大于紧急调度数据区域的长度。在总请求时间槽数不超过最大值的前提下,节点从调度指针所指位置开始检查时间槽是否为空,一旦发现有空的时间槽,立即检查自身保存的无线组播代理节点的心跳包中所存的缓冲区快照,如果无线组播代理节点对应的时间槽也为空,则取消请求;如果无线组播代理节点有该数据,则记录下时间槽号,最后打包成请求数据包,发送到组播地址上。
一般无线节点在请求数据后,对所请求数据对应的时间槽的已请求调度的这项标志位设置为已请求,在调度超时之前不得再次请求,这样可以减少多次请求重复数据,同时方便无线组播代理节点计算每个时间槽的节点请求数,以避免重复计算。
(3)无线组播代理节点负责帮助新加入组播的一般无线节点完成缓冲区的初始化,还负责将从广播源和其它有线节点中获取的数据在组播地址中组播,响应一般无线节点的独立的请求,在组播地址内进行分发数据的调度。在这过程中如果无线组播代理节点离开原无线网络,移动到新的无线网络中,则转入步骤(5)。
如图5所示,无线组播代理节点在无线网络中的主要工作由以下3个线程来完成,其中线程1是负责帮助新加入组播的一般无线节点完成缓冲区的初始化。线程2就是和有线节点在直播系统构造的对等网络中交互缓冲和控制信息,此外还负责将从广播源和其它有线节点中获取的数据在组播地址中组播。线程3负责响应一般无线节点的独立的请求,在组播地址内进行分发数据的调度。
线程1、2和3同时执行,分别对应下述(A)、(B)和(C)三个步骤:
(A)无线组播代理节点在无线网络中定时组播心跳包,这个心跳包含自身的缓冲区第一个时间槽号FSN和自身的缓冲区快照,用于一般无线节点初始化。
这种代理心跳机制是为了帮助新加入组播的无线节点快速初始化缓冲区,以尽快开始请求缓冲数据。同时,代理心跳机制可以帮助无线节点发现代理节点,在无线组播代理节点突然离开网络的时候,代理心跳机制可以保证无线节点快速进入代理竞争过程,选出新的无线组播代理节点,保证系统的正常运行。
(B)维护缓冲区数据,定期滚动缓冲区删除旧数据,完成P2P媒体交互以获得媒体数据,并组播推送收到的数据。具体的步骤如下:
(B1)刚启动时,向节目源或者有线网络中的有线节点请求初始化信息,根据返回的初始化信息将缓冲区进行初始化操作。
(B2)根据自身的缓冲区空缺情况来进行调度,向P2P网络中的有线节点发送数据请求,这个步骤与(2.2)基本一样,就是最后的请求目标不一样,一般无线节点是向无线组播代理节点请求,而无线组播代理节点则是向P2P网络中的有线节点请求。具体分为以下两步:
(B21)按照自身的缓冲区紧急区域划分,先调度紧急数据,然后调度非紧急数据,向有线P2P网络发送数据请求。
(B22)本次调度数据的时间槽要做上相应的标记,即使下次没有收到这个时间槽的数据,在请求超时之前也不会再次请求。
(B3)无线组播代理节点在网络中接收数据,根据自身的缓冲区情况向缓冲区填充相应的数据包。
(B4)检查是否超过最大初始化缓冲等待时间,若超时仍未接收到初始化所需要的数据,则返回步骤(B1)执行,重新初始化;若没有超时则继续执行。
(B5)判断是否缓冲到足够的数据可以进行播放。如果缓冲不足够则返回步骤(B2)执行,继续缓冲;如果缓冲到足够的数据,则进入步骤(B6)。
(B6)然后缓冲区开始滚动,送数据到播放器进行播放,并且不断维护缓冲区。该步骤具体分(B61)和(B62)两个子步骤同时执行:
(B61)这是一个不断接收数据的过程,具体步骤如下所示。
(a)从广播源或有线节点接收缓冲数据。
(b)判断该数据在自身的缓冲区中是否已经存在,是的话返回上一步(b),否则继续执行步骤(c)。
(c)将数据包加入到数据包队列里面。
(d)将数据包队列里面的数据包添加到自身的缓冲区里面,然后回去步骤(a)执行。
(B62)这是一个定时请求数据的过程,具体步骤如下所示。
(I)等待一个请求周期再继续执行,这个周期一般设为4秒左右。
(II)缓冲区向前滚动,删除过期的数据包。
(III)从紧急区域开始最多选取P个时间槽,选取的时间槽最多以缓冲区结束为止,P可以和步骤(2.2.1)的N取值相同,选取的时间槽组成组播补丁请求数据包发送,并对相应时间槽号设置标志位。然后回去步骤(I)执行。
(C)响应一般无线节点的组播补丁数据请求,按照截止时间和节点请求数调度并发送数据。
在此无线组播代理方法中,无线节点的缓冲调度策略主要关系到整个无线网络的直播系统的性能,因此为此方法的关键,本发明最主要的特点就是采用了一种推拉结合的双重数据组播的方式,以提高无线网络环境下的数据传输效率。
组播推送和组播补丁方式的数据缓冲过程如图6所示。采用“推”“拉”结合的双重数据组播策略,以组播推送(Multicast Push)方式为主,以组播补丁(Multicast Patch)方式为辅。组播推送方式主要在稳定播放时为无线节点提供主要的数据来源,而组播补丁方式在无线节点初始化过程中起着主要作用,同时为无线节点丢包数据提供可靠的重发保障。
在无线节点加入直播时,初始化缓冲区后立即收到无线组播代理节点组播推送的数据,这部分数据主要位于无线组播代理节点缓冲区的尾部,同样也是一般无线节点缓冲区中靠后的部分。而一般无线节点从初始槽号开始向无线组播代理节点请求组播补丁数据。这样组播补丁和组播推送方式一前一后填充一般无线节点的缓冲区。等到一般无线节点缓冲足够播放的媒体数据开始播放,节点仍继续请求组播补丁数据,直到组播补丁请求到达组播推送数据的顶部。此时缓冲区基本缓冲稳定,主要靠组播推送方式提供缓冲区滚动后需要填充的空缺时间槽,而组播补丁方式负责补充推送方式中出现丢包的个别媒体数据。
如图7所示,这里分(C1)和(C2)两个步骤同时执行,这相当时两个线程同时执行。
(C1)这是一个不断接收数据请求和发送数据的过程,具体包括如下步骤。
(C11)在无线网络中收取一般无线节点的组播补丁数据请求包,并从中提取请求的时间槽列表。
(C12)将请求添加到数据请求列表,将对应时间槽的节点请求数加1,并更新其截止时间。
(C13)等待时间间隔,即等待组播补丁发送周期,这个时间周期一般设为1秒。
在这里,设置一个组播补丁发送队列,它的作用是无线组播代理节点发送组播补丁数据后将发送的数据包信息记录到组播补丁发送队列,在重发超时之前不再发送该数据包。并定期清除里面超时的数据包,使一般无线节点可以重新请求该数据包。
(C14)检查组播补丁发送队列中每个时间槽的发送时间,设置一个无线组播代理节点的服务周期,倘若当前时间与发送时间之差大于这个周期,则调度超时,删除调度超时的数据,这样可以允许因丢包等原因没有收到该时间槽数据的一般无线节点再次请求。然后回步骤(C11)。
(C2)这是一个定时分析请求的过程,具体包括如下步骤。
(C21)等待一个时间间隔,即无线组播代理节点服务周期,由于要负责无线网络中所有一般无线节点的请求,所以这个时间一般设为一秒。
(C22)根据数据请求列表分析待请求的时间槽号。
(C23)根据截止时间和节点请求数来决定是否响应请求,并且在最大响应数量限制之内,得出要响应的时间槽。
无线组播代理节点处理一般无线节点的请求时间槽列表,记录了该节点的起始槽位FSN和所请求的时间槽号,然后更新该时间槽的节点请求数。如果该时间槽已经有其他节点请求过,则比较截止时间的大小,记录更短的截止时间。然后通过基于截止时间和节点请求数的优先调度,截止时间在紧急区域之内的按照截止时间升序排序,截止时间在紧急区域之外的按照节点请求数降序排序,生成需要组播补丁的时间槽列表。
这里的调度策略是,先按照截止时间长短升序排列,对于截止时间小于紧急调度周期的优先调度;大于紧急调度周期的再按照节点请求数升序排列,请求数越多的优先调度。从而有效的节约有限的带宽来传输较为紧急和稀缺的数据。
(C24)分析组播补丁发送列表,判断将要响应的槽是否已经在发送列表里面。如果不在,则组播媒体数据包,并将槽号加到发送队列的尾部。然后返回步骤(C21)。
(4)一般无线节点在移动过程中漫游出原先所在的网络,进入新的网络中,此时如果新的网络中存在组播代理,则仍可以接受服务,回到步骤
(2);如果新的网络中不存在无线组播代理节点,则自身转换为无线组播代理节点,转到步骤(3)。
(5)无线组播代理节点漫游出原先网络,进入新的网络。在原先网络中,所有的一般无线节点开始相互发送竞争权值数据包,通过竞争选出原无线网络的新的无线组播代理节点。在新的网络中,如果存在无线组播代理节点,则该节点与其他无线节点进行竞争,竞争成功则依然作为无线组播代理节点,进入步骤(3);否则变为一般无线节点,进入步骤(2)。在新的网络中,如果不存在无线组播代理节点,则该节点保持原有状态,仍然作为无线组播代理节点,等待新的无线节点加入,进入步骤(3)。
实例:
整个系统的配置如表1所示。
表1测试实例硬件配置
机器(数量) | CPU | 内存 | 操作系统 | 网卡 |
注册服务器(1) | PIV 2.0G | 512M | Win 2003 | 100M |
广播服务器(1) | PIV 2.0G | 512M | Win 2003 | 100M |
有线台式机(4) | Celeron 2.0G | 256M | Win XP | 100M |
无线台式机(1) | Celeron 2.0G | 256M | Win XP | 11Mbps |
无线路由器(1) | N/A | N/A | N/A | 11Mbps |
笔记本(3) | PIV 1.73G | 512M | Win XP | 11Mbps |
掌上电脑(2) | SC32442 300M | 128M/64M | WM 5.0 | 11Mbps |
采用了三种不同码流的节目源,分别如表2所示。
表2三个不同的流媒体
名称 | 分辨率 | 码流(Kbps) | 长度 |
“功夫” | 320x240 | 240 | 9∶35 |
“笑话” | 288x224 | 100 | 17∶09 |
“第一次” | 240x176 | 90 | 5∶29 |
在直播中占用的无线网络带宽使用率可以反映直播系统的稳定性和可扩展性。占用的无线带宽越低,直播发生网络拥塞影响服务质量的可能性会大大降低,可以扩展的规模会远大于占用带宽高的系统。
如图8(a)所示,为在非组播方式下观看“功夫”这个节目的无线带宽占用示意图,5个无线节点都按照普通的P2P方式去获取媒体数据。此时网络中每秒数据接收发送的峰值在4000Kbps左右,带宽占用平均为1300Kbps。而这里采用的802.11b无线局域网的理论带宽为11Mbps,而实际的有效带宽大概为5Mbps。所以,当占用的带宽接近5Mbps的时候,无线局域网的效率就会明显降低,丢包率会上升。也就是说,当再加入一个无线节点观看这个节目的话,这个频道的质量就会大大的下降。因此,在非组播方式下面紧紧支持约5个无线节点同时观看同一个节目。
而如图8(b)所示,则为在组播方式下观看“功夫”这个节目的无线带宽占用示意图,这个时候的带宽占用平均值仅仅为280Kbps,而峰值占用也仅为720Kbps。可以看出,采用组播机制之后的无线带宽占用值是大大低于非组播方式的。在节点的初始化阶段,由于需要同时采用组播的推(MulticastPull)、拉(Multicast Patch)方式来填充节点的缓冲区,因此此时的带宽消耗相对较高;但是当节点的缓冲区达到了比较稳定的状态时,则基本只需要采用组播推送(Multicast Pull)的方式来进行数据缓冲,只有很少一部分数据是通过组播补丁(Multicast Patch)的方式来获得的,因此这个时候的带宽就会相对较低了。所以说,采用组播机制之后,在无线网络下能够支持更多的节点同时观看。特别的,在这种机制下,当新增加一个节点加入同一个频道的时候,无线带宽的占用并不会显著的提高。
其他两个节目的带宽占用也是类似这样的情况,在采用无线组播代理机制之后,可以看出,的确能够明显提高这个流媒体网络直播系统的性能。具体的数据如表3所示。
表3三种节目在不同方式下的无线带宽占用情况
节目名称 | 单播(Kbps) | 组播(Kbps) |
“功夫” | 1300 | 280 |
“笑话” | 604 | 125 |
“第一次” | 497 | 103 |
综合上述结果,表明了这种无线组播代理机制能够降低无线网络传输数据的带宽和开销,提高混合网络直播系统的性能。
Claims (5)
1.一种混合网络直播系统中无线组播代理方法,包括以下步骤:
(1)无线节点加入到频道对应的组播地址,然后通过基于节点信号强弱的竞争,竞争成功的无线节点初始化为无线组播代理节点,转入步骤(3);竞争失败的无线节点初始化为一般无线节点,进入步骤(2);
(2)一般无线节点根据无线组播代理节点定期发出的心跳包初始化自己的缓冲区,接收无线组播代理节点组播的媒体数据,并根据自己的缓冲区填充情况,向无线组播代理节点请求数据;同时一般无线节点维护无线组播代理节点在P2P网络中的邻居节点列表;如果某个时刻一般无线节点离开旧的无线网络,移动到新的无线网络中,则转入步骤(4);
(3)无线组播代理节点负责帮助新加入组播的一般无线节点完成缓冲区的初始化,还负责将从广播源和其它有线节点中获取的数据在组播地址中组播,响应一般无线节点的独立的请求,在组播地址内进行分发数据的调度;在这过程中如果无线组播代理节点离开原无线网络,移动到新的无线网络中,则转入步骤(5);
(4)一般无线节点在移动过程中如果漫游出原先所在的网络,进入新的网络中,此时如果新的网络中存在无线组播代理节点,则仍可以接受服务,回到步骤(2);如果新的网络中不存在无线组播代理节点,则自身转换为无线组播代理节点,转到步骤(3);
(5)无线组播代理节点漫游出原先网络,进入新的网络;在原先网络中,所有的一般无线节点开始相互发送竞争权值数据包,通过竞争选出原无线网络的新的无线组播代理节点;在新的网络中,如果存在无线组播代理节点,则该节点与其他无线节点进行竞争,竞争成功则依然作为无线组播代理节点,进入步骤(3),否则变为一般无线节点,进入步骤(2);在新的网络中,如果不存在无线组播代理节点,则该节点保持原有状态,仍然作为无线组播代理节点,等待新的无线节点加入,进入步骤(3)。
2.根据权利要求1所述的无线组播代理方法,其特征在于,步骤(1)包括以下过程:
(1.1)无线节点从服务器获得的频道列表中任意选择一个频道,加入这个频道对应的组播地址,并监听无线组播代理节点定期发出的心跳包;
(1.2)如果没有收到心跳包,说明该无线节点所在网络中不存在无线组播代理节点,该无线节点自身就初始化为无线组播代理节点,然后就转到步骤(3);
(1.3)如果收到心跳包,则发送竞争权值包,然后节点将其自身的竞争权值与其他节点的竞争权值进行多轮的比较;比较后权值最大的无线节点就初始化为无线组播代理节点,然后转到步骤(3);其余无线节点初始化为一般无线节点,然后转到步骤(2)。
3.根据权利要求1或2所述的无线组播代理方法,其特征在于,步骤(2)包括以下过程:
(2.1)当一般无线节点刚加入组播时,根据无线组播代理节点的心跳包将缓冲区进行初始化操作,初始化数据请求;
(2.2)一般无线节点根据自己的缓冲区空缺情况来进行调度,向本无线网络中的无线组播代理节点发送数据请求;
(2.3)一般无线节点在无线网络中接收组播数据,根据自己的缓冲区空缺情况向自己的缓冲区填充相应的数据包,如果收到的数据包是自己缓冲区没有的,就填入缓冲区中,如果收到的数据包在缓冲区中已经存在,就丢弃该数据包;
(2.4)检查是否超过最大初始化缓冲等待时间,若超时仍未接收到初始化所需要的数据,再根据当前无线组播代理节点的心跳包中的缓冲区第一个时间槽所表示的时间,删除自己缓冲区内比该时间更早的时间槽,然后返回步骤(2),重新初始化;若没有超时则进入步骤(2.5);
(2.5)判断是否缓冲到足够的数据可以进行播放;如果缓冲不足够则继续循环执行步骤(2.2)~(2.5),继续缓冲;如果缓冲到足够的数据,则进入步骤(2.6);
(2.6)缓冲区开始滚动,送数据到播放器进行播放,并不断维护缓冲区。
4.根据权利要求3所述的无线组播代理方法,其特征在于,步骤(2.2)按照下述过程进行进行调度:
(2.2.1)一般无线节点从缓冲区的调度指针所指的地方开始,选取若干个没有充满的时间槽,然后将要请求的时间槽号按照紧急程度依次加入到请求列表中;
(2.2.2)将本次调度的时间槽做上相应的标记,即使下次没有收到这个时间槽的数据,在请求超时之前也不会再次请求。
5.根据权利要求3所述的无线组播代理方法,其特征在于,步骤(2.6)中,一般无线节点同时进行下述步骤(2.6.1)和(2.6.2),对缓冲区进行维护:
(2.6.1)按照下述过程不断接收数据:
①从无线网络中接收无线组播代理节点发送的组播数据;
②判断该组播数据在自身的缓冲区中是否已经存在,是的话返回上一步①,否则继续执行步骤③;
③将数据包加入到数据包队列里面;
④将数据包队列里面的数据包添加到自身的缓冲区里面,然后回去步骤①执行;
(2.6.2)按照下述过程定时请求数据:
(i)等待一个请求周期再继续执行;
(ii)缓冲区向前滚动,删除过期的数据包;
(iii)从紧急数据区开始选取若干个时间槽,选取的时间槽组成组播补丁请求数据包发送,并对相应时间槽号设置标志位;然后回去步骤(i)执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100469729A CN101247197B (zh) | 2008-02-29 | 2008-02-29 | 一种混合网络直播系统中无线组播代理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008100469729A CN101247197B (zh) | 2008-02-29 | 2008-02-29 | 一种混合网络直播系统中无线组播代理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101247197A CN101247197A (zh) | 2008-08-20 |
CN101247197B true CN101247197B (zh) | 2010-06-09 |
Family
ID=39947435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100469729A Expired - Fee Related CN101247197B (zh) | 2008-02-29 | 2008-02-29 | 一种混合网络直播系统中无线组播代理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101247197B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118310B (zh) * | 2011-01-19 | 2013-07-03 | 华中科技大学 | 基于网络编码分级流媒体多播的资源调度方法 |
CN112417760B (zh) * | 2020-11-20 | 2023-01-17 | 哈尔滨工程大学 | 基于竞争混合网络的舰船控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1071296A1 (en) * | 1999-07-22 | 2001-01-24 | Alcatel | Method to multi-cast data packets to mobile stations, and related gateway, service and routing nodes |
EP1536652A1 (en) * | 2003-11-28 | 2005-06-01 | Alcatel | System, method and network elements for transmitting multicast information via a Radio Network Controller not supporting multicast transmission |
CN101094433A (zh) * | 2006-06-23 | 2007-12-26 | 上海贝尔阿尔卡特股份有限公司 | 无线接入网中为多播组播业务进行资源调度的方法和设备 |
-
2008
- 2008-02-29 CN CN2008100469729A patent/CN101247197B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1071296A1 (en) * | 1999-07-22 | 2001-01-24 | Alcatel | Method to multi-cast data packets to mobile stations, and related gateway, service and routing nodes |
EP1536652A1 (en) * | 2003-11-28 | 2005-06-01 | Alcatel | System, method and network elements for transmitting multicast information via a Radio Network Controller not supporting multicast transmission |
CN101094433A (zh) * | 2006-06-23 | 2007-12-26 | 上海贝尔阿尔卡特股份有限公司 | 无线接入网中为多播组播业务进行资源调度的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101247197A (zh) | 2008-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109962760B (zh) | 一种适于无线tdma自组网的业务调度方法 | |
CN101193294A (zh) | 一种视频内容服务系统和服务方法 | |
CN1835482A (zh) | 一种无线流媒体服务解决的方法 | |
CN108347622A (zh) | 多媒体数据推送方法、装置、存储介质及设备 | |
CN104320672A (zh) | Cdn-p2p混合架构下的直播流媒体系统资源调度方法 | |
CN101267541A (zh) | 一种适合在线点播或直播的流媒体分发服务器 | |
CN104735726A (zh) | 一种基于多种无线接入网络的业务分流传输的方法及装置 | |
CN114071168A (zh) | 混流直播流调度方法及装置 | |
Stiemerling et al. | Cooperative p2p video streaming for mobile peers | |
Taleb et al. | Neighbors-buffering-based video-on-demand architecture | |
CN102307216B (zh) | 多媒体电话p2p流媒体广播方法及系统 | |
Stiemerling et al. | A system for peer-to-peer video streaming in resource constrained mobile environments | |
CN101247197B (zh) | 一种混合网络直播系统中无线组播代理方法 | |
Abbasi et al. | Multimedia streaming using D2D in 5G ultra dense networks | |
KR101252947B1 (ko) | 비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치 | |
Majidi et al. | Optimized joint unicast-multicast panoramic video streaming in cellular networks | |
CN114501650B (zh) | 时隙资源分配方法、设备及存储介质 | |
US8272021B2 (en) | Method for transmitting near video on demand (NVoD) using catch and rest (CAR) and sub-channels | |
Yang et al. | High performance adaptive video streaming using NDN WLAN multicast | |
CN102970615A (zh) | 高清视频的高效传送及编解码的系统 | |
Park et al. | An efficient VoD scheme providing service continuity for mobile IPTV in heterogeneous networks | |
Quintero et al. | Performance evaluation of a broadband wireless access system subjected to heavy load | |
CN101237339B (zh) | 基于分层点对点组播网络的流媒体传输方法 | |
Febiansyah et al. | Peer-assisted adaptation in periodic broadcasting of videos for heterogeneous clients | |
CN101924793B (zh) | 基于p2p流媒体的二次编码播放方法及系统 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100609 Termination date: 20130229 |