一种实现实时流媒体节目可靠传输的方法

文档序号:7961125阅读:172来源:国知局
专利名称:一种实现实时流媒体节目可靠传输的方法
技术领域
本发明涉及一种实现流媒体节目传输的方法,尤其涉及一种实现实时流媒体节目可靠传输的方法。
背景技术
随着宽频时代的到来,与其密切相关的流媒体技术也成为人们谈论的热门话题,所述流媒体就是指通过网络传输,能够在本地终端实时回放并具有实时特征的媒体内容编码数据流。利用流媒体技术把实时节目(例如现场直播的新闻、体育节目)传送到客户端,由客户通过电脑或附加有机顶盒的电视收看是流媒体的一种重要应用。
目前,流媒体节目在服务器端和网络上的传输方式主要有两种单播和主播。单播传输时,需要在客户端与服务器之间建立一个单独的数据通道(见图1),对服务器和网络资源的要求较高,所以在多个用户同时收看同一实时节目的情况下,采用组播传输更加适宜。
组播传输时,作为发送者的组播源服务器与作为接收者的多台客户端设备之间建立起点对多点的网络连接。组播传输方式不仅提高了数据传送效率,同时也减少了骨干网络出现拥塞的可能性。随着组播传输方式的逐渐成熟,它已经被广泛的应用在网络音频/视频广播、网络视频会议、远程教育等各个领域。
虽然采用组播传输可以减轻服务器的负担,而且也减少了骨干网的网络流量,可是,组播的缺陷也是显而易见的。因为组播使用的传输层协议-用户数据报协议UDP-没有错误重传机制,当出现丢失数据包的现象时,客户端的播放质量无法得到有效保证。
为了克服组播的上述缺点,又出现了一种“可靠组播”技术,并取得了一定的进展。现有的这些“可靠组播”技术主要用于传输大容量的文件,而并不用于对实时性要求高的流媒体节目的传输。因此,如何利用组播实现实时流媒体节目的可靠传输就成为业内一个新的研究课题。

发明内容
本发明所要解决的技术问题就是提供一种实现实时流媒体节目可靠传输的方法,在不增加或尽量少增加服务器负载和减少骨干网网络流量的前提下,利用分布式系统对丢失的组播数据包进行重新发送的方法来保证流媒体的传输质量,一方面实现了流媒体实时节目的分发,另一方面又较好的解决了组播传输的服务质量得不到保证的问题。
针对上述技术问题,本发明提供一种实现实时流媒体节目可靠传输的方法,包括如下步骤(1)用户通过客户端浏览系统的内容发布服务页面,查找到所需观看的节目,点击该节目链接;(2)内容发布服务器把用户请求发送给内容资源管理服务器,内容资源管理服务器把该客户端记录在该节目所对应的内容节点资源列表中,同时根据调度策略为该客户端建立用于组播重传的组播群,及决定其应加入哪一个组播服务器,并把该节目的组播服务器地址返回给客户端;(3)客户端通过互联网组管理协议请求加入组播组,并在和组播群内其他客户端建立连接后,对从组播组接收到的用户数据报协议UDP数据包进行缓存处理,用于播放;(4)客户端在缓存区中检查节目数据包的序号,如果发现缺少某个数据包,且等待一定时间后仍然没有收到该数据包,启动组播重传机制,请求组播服务器重传该数据包;如果接收到组播服务器重新发送的数据包,该客户端就将接收到的数据包进行缓存处理,用于播放;如果在设定时间内没有接收到数据包,执行后续操作;(5)如果该客户端认为前述步骤中建立的组播群已经失效,就向内容资源管理服务器发送建立新组播群的请求,并在接收到返回信息后,重新启动组播重传机制,和新的组播服务器建立连接并发送重传请求,直至其缓存区中数据包齐全后,用于播放;(6)该客户端对接收到的完整数据包信息进行播放;(7)播放结束后,该客户端离开组播组,内容资源管理服务器在相应的内容节点资源列表中删去该客户端,整个流程结束。
本发明是一种实现实时流媒体节目可靠传输的方法,应用本发明所述方法,可以有效解决和克服组播传输使用的传输层协议-用户数据报协议UDP-没有错误的重传机制,而无法实现数据包丢失重传的缺点,提高了组播传输的可靠性和服务质量,使得客户端流媒体节目的播放质量能够得到有效的保证。


图1是现有流媒体服务系统的结构组成示意图;图2是根据本发明实施例所述的分布式流媒体服务系统结构组成示意图;图3是根据本发明实施例所述的分布式流媒体服务系统中实现可靠传输的方法流程图;图4是根据本发明实施例所述的分布式流媒体服务系统中客户端所处组播群的交叉式分布示意图;图5是根据本发明实施例所述的分布式流媒体服务系统中的客户端中两个缓存装置结构及其工作状态之间关系的示意图。
具体实施例方式
下面结合附图对本发明作进一步的详细描述参见图2,为本发明实施例所述的分布式流媒体服务系统结构组成示意图。该系统的最大特点是把客户端纳入到为用户提供服务的体系中,从而改变了现有的C/S结构模式的流媒体服务系统结构。该系统可以包括三个模块由内容发布服务器与内容资源管理服务器构成的内容控制模块,用于实现客户端和流媒体内容的管理调度;由宽带网络构成的网络传输模块,负责实现系统中各个服务器和客户端之间的控制信息和内容服务信息的传递;由多个客户端建立的组播群和组播服务器构成的内容服务模块,负责提供流媒体内容的存储和服务,并实现最终的流媒体服务。
图3为本发明实施例所述的分布式流媒体服务系统中实现可靠传输的方法流程图,具体过程如下步骤301用户通过客户端浏览系统的内容发布服务页面,查找到所需观看的节目,点击该节目链接。
步骤302内容发布服务器把用户请求发送给内容资源管理服务器,内容资源管理服务器把该客户端记录在该节目所对应的内容节点资源列表中,同时根据调度策略为该客户端建立用于组播重传的组播群,及决定其应加入哪一个组播服务器,并把该节目的组播服务器地址返回给客户端。
所述组播群是彼此建立连接关系的一组客户端,组播群的所有客户端都能接收到组播服务器发送的数据包,当然,也只有加入该组播群的客户端才能接收到发送给该组播群的数据包。建立群的目的就是为了实现组播重传当群中的一个客户端丢失某个数据包时,它将向组播服务器发送重传请求,组播服务器则为此客户端提供相应的数据包。组播群的建立由资源管理服务器统一调度,其调度策略包含地域优先和稳定性优先等原则,考虑到组播丢包的原因可能是数据网的某个设备或节点出现问题,因此群内的客户端分布地点应跨越城域网,避免因为城域内某个设备或节点出现故障而影响用户使用组播重传。另外,群的调度策略还包括采用交叉分布方式,即每个客户端应属于两个或两个以上的群,以保证实现可靠传输。参见图4,为本发明实施例所述的分布式流媒体服务系统中客户端所处组播群的交叉式分布示意图,图中的客户端A、B同时属于组播群1和组播群2。
步骤303客户端通过互联网组管理协议请求加入组播组,并在和组播群内其他客户端建立连接后,对从组播组接收到的用户数据报协议UDP数据包进行缓存处理,准备播放。
本实施例系统中的客户端都有两个缓存区,接收数据包并进行排序的接收缓存区,以及将接收缓存区中已经排序好的数据包复制过来并进行解包合成节目内容的播放缓存区。其中接收缓存区的存储空间要大于播放缓存区,该接收缓存区中存储的数据包有两种等待进入播放缓存区的数据包,以及在播放缓存区中已经播放过而要被删除的数据包。这是考虑在分布式系统中,各个客户端的时延不同,可能有别的用户需要重传该部分数据。参见图5,为本发明实施例所述的分布式流媒体服务系统中的客户端中两个缓存装置结构及其工作状态之间关系的示意图,此图展示了该两个缓存装置的结构及其工作状态之间的关系。上述步骤中的缓存处理具体操作是对接收到的数据包先不拆分,保留该数据包的序号,直接缓存在接收缓存区中,并将数据包按照序号顺序排列,以便在设定的缓存时间内将序号齐全的数据包复制到播放缓存区,解包合成图像和播放。数据包在接收缓存区和播放缓存区中的缓存时间均取决于网络状况和群内各个客户端的分布状况,例如接收缓存区缓存时间在4~12秒之间,播放缓存区的缓存时间在1~5秒之间。
步骤304客户端在缓存区中检查节目数据包的序号,可以知道是否缺失数据包,如果发现缺少某个数据包,且等待一定时间后仍然没有收到该数据包,启动组播重传机制,请求组播服务器重传该数据包;如果接收到组播服务器重新发送的数据包,该客户端就将接收到的数据包进行缓存处理,用于播放;如果在设定时间内没有接收到数据包,执行后续步骤;步骤305如果该客户端认为前述步骤中建立的组播群已经失效,就向内容资源管理服务器发送建立新组播群的请求,并在接收到返回信息后,重新启动组播重传机制,和新的组播服务器建立连接并发送重传请求,直至其缓存区中数据包齐全后,用于播放;步骤306该客户端对接收到的完整数据包信息进行播放;步骤307播放结束后,该客户端离开组播组,内容资源管理服务器在相应的内容节点资源列表中删去该客户端,结束整个流程。
本实施例所述的在分布式流媒体服务系统中,通过对丢失数据包的组播重传机制保证了流媒体节目的播放质量。该重传机制的具体过程如下(A)该客户端向组播服务器发送请求包,请求组播服务器为其发送该丢失的数据包,请求包中至少包括该丢失数据包的序号;(B)组播服务器接收到请求包后,把包括该丢失数据包包头的整个UDP数据包作为重传数据包的净荷进行传送;(C)请求重传的客户端将接收到的重传数据包放入接收缓存区的相应队列中,而没有请求重传的其他客户端将收到的重传数据包作丢弃处理。
权利要求
1.一种实现实时流媒体节目可靠传输的方法,其特征在于,包括以下步骤(1)用户通过客户端浏览系统的内容发布服务页面,查找到所需观看的节目,点击该节目链接;(2)内容发布服务器把用户请求发送给内容资源管理服务器,内容资源管理服务器把该客户端记录在该节目所对应的内容节点资源列表中,同时根据调度策略为该客户端建立用于组播重传的组播群,及决定其应加入哪一个组播服务器,并把该节目的组播服务器地址返回给客户端;(3)客户端通过互联网组管理协议请求加入组播组,并在和组播群内其他客户端建立连接后,对从组播组接收到的用户数据报协议UDP数据包进行缓存处理,用于播放;(4)客户端在缓存区中检查节目数据包的序号,如果发现缺少某个数据包,且等待一定时间后仍然没有收到该数据包,启动组播重传机制,请求组播服务器重传该数据包;如果接收到组播服务器重新发送的数据包,该客户端就将接收到的数据包进行缓存处理,用于播放;如果在设定时间内没有接收到数据包,执行后续操作;(5)如果该客户端认为前述步骤中建立的组播群已经失效,就向内容资源管理服务器发送建立新组播群的请求,并在接收到返回信息后,重新启动组播重传机制,和新的组播服务器建立连接并发送重传请求,直至其缓存区中数据包齐全后,用于播放;(6)该客户端对接收到的完整数据包信息进行播放;(7)播放结束后,该客户端离开组播组,内容资源管理服务器在相应的内容节点资源列表中删去该客户端,整个流程结束。
2.如权利要求1所述的方法,其特征在于,所述步骤(2)中组播群的建立由内容资源管理服务器统一调度,其调度策略包括地域和稳定性的优先,以及群内客户端的分布应跨越城域网。
3.如权利要求2所述的方法,其特征在于,所述组播群的调度策略进一步包括,客户端的分布采用交叉分布方式。
4.如权利要求1所述的方法,其特征在于,所述步骤(3)或(4)中客户端对接收到的数据包进行的缓存处理进一步包括对接收到的数据包进行序号保留后,直接缓存在接收缓存区中,并将数据包按照序号顺序排列,以便在设定的缓存时间内将序号齐全的数据包复制到播放缓存区,缓存后,解包合成图像并播放。
5.如权利要求4所述的方法,其特征在于,所述数据包在接收缓存区和播放缓存区中的缓存时间取决于网络状况和群内各个客户端的分布状况。
6.如权利要求4或5所述的方法,其特征在于,所述接收缓存区的存储空间大于播放缓存区,该接收缓存区中存储的数据包有两种等待进入播放缓存区的数据包,以及在播放缓存区中已经播放过而要被删除的数据包。
7.如权利要求1所述的方法,其特征在于,所述步骤(4)或(5)中启动的组播重传机制进一步包括下列步骤(A)该客户端向组播服务器发送请求包,请求组播服务器为其发送该丢失的数据包,请求包中至少包括该丢失数据包的序号;(B)组播服务器接收到请求包后,把包括该丢失数据包包头的整个UDP数据包作为重传数据包的净荷进行传送;(C)请求重传的客户端将接收到的重传数据包放入接收缓存区的相应队列中,而没有请求重传的其他客户端将收到的重传数据包作丢弃处理。
全文摘要
一种实现实时流媒体节目可靠传输的方法,在用户点击节目链接后,内容资源管理服务器把客户端记录在该节目所对应的内容节点资源列表中,并为该客户端建立用于组播重传的组播群,及决定其应加入哪一个组播服务器;客户端加入组播组并和组内其他客户端建立连接后,对接收到的数据包进行缓存处理检查节目数据包的序号,如果发现缺少某个数据包,且等待一定时间仍然没有收到,就启动组播重传机制,请求组播服务器重传该数据包,如果在设定时间内一直没有接收到该数据包,则向内容资源管理服务器请求建立新群,并重新启动组播重传机制,直至数据包齐全后,用于播放。应用本发明所述方法,实现了利用重传机制保证流媒体节目的服务质量。
文档编号H04L29/06GK101075948SQ20061008054
公开日2007年11月21日 申请日期2006年5月15日 优先权日2006年5月15日
发明者沈灿 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1