一种基于互联网的流媒体传输方法
【专利摘要】本发明涉及一种基于互联网的流媒体传输方法,属于网络流媒体传输及应用【技术领域】。本发明方法中,控制服务器处理客户端的流媒体请求,为客户端提供流媒体服务器信息;监控客户端的流媒体服务器运行状态,定期更新全局流媒体服务器资源表。在流媒体数据包的初始传输阶段,以P2P方法进行流媒体数据包的传输,当计算出最优流媒体服务器之后,就终端其他19个数据链路,以单播方式进行数据传输。这样既可以保证初始缓冲时间比较短,同时也避免了对于互联网带宽资源造成大量浪费,提高服务质量的同时,有效地利用了带宽资源。
【专利说明】一种基于互联网的流媒体传输方法
【技术领域】
[0001]本发明涉及一种基于互联网的流媒体传输方法,属于网络流媒体传输及应用【技术领域】。
【背景技术】
[0002]互联网是一个尽力传输网络,在数据传输过程中没有质量保证,因此在互联网上提供业务,需要考虑数据传输的质量问题,尤其是流媒体传输业务。流媒体传输业务对数据传输时延要求比较高,一旦流媒体数据没有在规定的时间内传输到客户端,客户端就会出现暂停或缓冲等待的情况,影响客户的正常使用。
[0003]互联网是一种松散结构的传输网络,互联网运营商会根据骨干网络带宽的情况,动态调整互联网传输结构,因此互联网的结构处于动态调整变化过程中,每个服务端到客户端的数据传输路由可能出现变化,从而影响数据传输时延。互联网又是一种网状结构,互联网中的每个节点既可以与某一个特定节点进行数据传输,也可以同时与多个节点进行数据传输。
[0004]下面是互联网数据传输中的问题总结:互联网络结构不稳定,数据传输质量无法保证;互联网数据传输路由不固定,互联网结构的调整会引起数据传输路由的变化,从而影响数据传输时延;互联网带宽不稳定,在数据传输高峰期,数据会在某个网络节点出现拥塞现象,导致数据传输出现丢包或数据传输时延增大。
[0005]流媒体业务是一种对于传输时延要求比较严格的业务,每个流媒体数据包都带有时间信息,客户端接收到流媒体数据包后,按照每个流媒体数据包的时间信息以时间顺序进行排列,然后开始播放流媒体。当某个流媒体数据包没有及时传输到客户端,则客户端就会采取相应的措施,现在通用的措施有两种:第I种是暂停流媒体播放,等待这个流媒体数据包到达后再继续播放,如果这个流媒体数据包一直未到达,就一直等待;第2种是丢弃这个流媒体数据包,直接从下一个时间点的流媒体数据包开始播放,这样就出现了流媒体跳帧的现象。上述2种措施都会导致流媒体播放不流畅,影响流媒体的播放效果。
[0006]前面总结的互联网数据传输过程中的3个问题,就是影响了流媒体业务的服务质量的原因,本专利针对互联网数据传输中的问题,提出了一种经过优化后的流媒体数据传输方法,这种方法可以针对性地解决互联网中流媒体传输问题,提高了流媒体业务的服务质量。
[0007]目前已经存在了一些在互联网上进行流媒体传输的优化方法,其中MediaServer和P2P是典型的2种方法。
[0008]其中的MediaServer是Adobe公司开发的一种互联网流媒体传输服务。这种方法通过动态调整流媒体码流率来解决互联网带宽不稳定的问题,其实现方式是:
[0009]在服务器端预先准备多种流媒体格式,例如IM (IM为1000K,IK为1024比特)码流、512K码流、256K码流等多个流媒体格式,当服务器收到客户端的流媒体请求时,指定一台服务器作为流媒体服务的提供方,在这台服务器与客户端之间建立数据链路,服务器通过这个链路向客户端发送流媒体数据包,同时在服务器与客户端之间建立一条监控信道,客户端通过这个监控信道向服务器反馈流媒体数据接收情况,当网络情况良好时,服务器就按照原有的流媒体码流率发送流媒体数据包;例如默认标准的512K码流率。当网络情况不好时,服务器通过监控信道发现客户端无法正常接收流媒体数据,服务器停止向客户端发送512K码流的流媒体数据,改为传输256K码流的流媒体数据,然后继续监控客户端的接收情况。如果发现客户端还是无法正常接收流媒体数据时,继续降低码流;反之,当客户端能够正常接收流媒体数据时,服务器可以提高流媒体码流,用以提高服务质量。这种方法通过改变流媒体码流率的方法来适应互联网带宽的变化,通过改变流媒体质量来适应互联网的不稳定性。这种方法虽然可以保证客户端在不稳定的互联网中接收到流媒体数据,但是不能保证流媒体的质量,当客户端与服务器之间的互联网链路质量大幅下降的时候,客户端接收到的流媒体码流率也随之大幅下降,因此这种方法的缺点就是无法保证服务质量,是依靠牺牲质量为代价保证流媒体的流畅性。
[0010]另外一种优化方法是P2P方法。P2P方法就是利用互联网的网状结构,采用多点对单点进行大量重复数据传输,保证了流媒体数据按时到达客户端。
[0011]P2P全称为PEER to PEER,在P2P中具有一个管理服务器,所有存储了流媒体数据的PEER点(包括了服务器端与客户端)向管理服务器汇报本地存储的流媒体数据信息,当新的客户端请求流媒体数据时,首先客户端向管理服务器发送流媒体数据请求,管理服务器将所有存储了相同流媒体数据的PEER信息发送给这个新的客户端,这个客户端根据PEER点信息,分别向所有具有流媒体数据的PEER点发送流媒体数据请求,所有收到流媒体数据请求的PEER点同时向这个新的客户端发送流媒体数据,这个新的客户端开始接收流媒体数据。由于有多个PEER点向客户端发送相同的流媒体数据,因此会出现流媒体数据重复传输的情况,当客户端接收到某个PEER点传送来的流媒体数据后,就开始丢弃其他PEER点传送的相同的流媒体数据。当客户端接收到流媒体数据后,它就向管理服务器汇报,它拥有了哪些流媒体数据,此时这个客户端就成为了一个PEER点。在P2P方法中,由于存在多个流媒体数据传输端,因此可以保证流媒体数据的传输时延,但是这种方法中流媒体数据被重复传输多次,消耗了大量的互联网带宽,造成了带宽浪费。这种方法是通过浪费互联网带宽资源来保证流媒体的传输质量。对于互联网带宽资源的浪费是P2P方法的特点,因此P2P方法也不是一个有效可行的流媒体传输方法。由于P2P方法浪费大量的互联网带宽,互联网运营商采用了许多方法封堵P2P技术。
[0012]综上所述,MediaServer方法通过调整流媒体的传输码流来适应带宽变化,当互联网带宽出现问题时,需要降低流媒体的码流,这样就不能保证流媒体的服务质量。P2P方法通过多点对单点传输大量重复的流媒体数据包,大量地占用了互联网带宽,浪费互联网资源,这种方法的传输效率比较低。
【发明内容】
[0013]本发明的目的是提出一种基于互联网的流媒体传输方法,针对互联网数据传输不稳定、以及原有流媒体数据传输方法的缺点,采用路由优化机制和服务端优化机制的互联网流媒体传输技术,以提高流媒体数据的效率和质量。
[0014]本发明提出基于互联网的流媒体传输方法,包括以下步骤:[0015](I)采集互联网中全部流媒体服务器信息,互联网中的控制服务器将全部流媒体服务器的IP地址进行排序,形成一个流媒体服务器的资源列表,记为全局流媒体服务器资源表;
[0016](2)互联网中的请求发送流媒体的客户端,检查本地客户端流媒体服务器资源表信息,若请求发送流媒体客户端不存在本地流媒体服务器资源表,则进行步骤(3),若请求发送流媒体客户端存在本地流媒体服务器资源表,则进行步骤(5);
[0017](3)请求发送流媒体的客户端向控制服务器发送一个流媒体传输请求,该请求中包含请求发送流媒体客户端的IP地址,控制服务器接收到请求后,按照请求中的请求发送流媒体客户端的IP地址,检索到与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,将流媒体服务器资源表中从该位置开始的20个流媒体服务器的IP地址,组成一张本地流媒体服务器资源表,并将该本地流媒体服务器资源表发送给请求发送流媒体客户端;
[0018](4)请求发送流媒体客户端接收到控制服务器发送来的本地流媒体服务器资源表后,将该资源表存储在请求发送流媒体客户端,作为请求发送流媒体客户端的本地流媒体服务器资源表;
[0019](5)请求发送流媒体客户端向本地流媒体服务器资源表中的20个流媒体服务器发送流媒体传输请求,在请求发送流媒体客户端分别建立20个设定时间长度t的缓冲区,时间长度的取值为5-10秒,设定时间长度后,请求发送流媒体客户端分别计算20个缓冲区的流媒体数据接收率,并按照20个流媒体接收率从大到小依次排序,得到一张更新的本地流媒体服务器资源表,请求发送流媒体客户端利用更新的本地流媒体服务器资源表,请求发送流媒体客户端从更新的本地流媒体服务器资源表中排列在第I位的流媒体服务器接收流媒体传输数据,同时中断请求发送流媒体客户端与另外19个流媒体服务器的流媒体传输链路;
[0020](6)请求发送流媒体客户端每隔设定时间长度T,计算一次步骤(5)的缓冲区中流媒体数据接收率,定时间长度T的取值范围为5-10分钟,当流媒体数据接收率小于85%时,请求发送流媒体客户端向更新的本地流媒体服务器资源表中的其他19个流媒体服务器发送流媒体数据传输请求,重新建立19个缓冲区,请求发送流媒体客户端分别计算该19个缓冲区以及正在接收流媒体数据缓冲区的流媒体数据包接收率,若所有流媒体数据接收率都小于85%,则请求发送流媒体客户端向控制服务器发送流媒体服务器更新请求,该更新请求中包含请求发送流媒体客户端的IP地址和更新的本地流媒体服务器资源表,进行步骤
(7),若存在流媒体数据接收率大于85%的流媒体服务器,则请求发送流媒体客户端与接收率最大的流媒体服务器建立流媒体传输链路,并再次更新本地流媒体服务器资源表,进行步骤(6);
[0021 ] (7)控制服务器接收到请求发送流媒体客户端的更新请求后,从步骤(I)的全局流媒体服务器资源表中,检索与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,检索过程中,跳过已包含在请求发送流媒体客户端提供的更新本地流媒体服务器资源表中的IP地址,形成由20个流媒体服务器的IP地址组成的再次更新的本地流媒体服务器资源表;
[0022]( 8 )控制服务器将再次更新的本地流媒体服务器资源表发送给在请求发送流媒体客户端,返回步骤(4)。
[0023]本发明提出的基于互联网的流媒体传输方法,其优点是:
[0024]1、本发明的基于互联网的流媒体传输方法,首先通过IPv4的地址分段信息,将流媒体服务器按照网段进行划分,保证了客户端与流媒体服务器在相同的网段区域中,实现了区域化数据传输,保证了路由最短。
[0025]2、本方法通过监控流媒体服务器的性能数值,平均分配了流媒体服务器资源,实现了负载均衡,优化了服务端的性能,充分利用了服务器资源。
[0026]3、本方法通过监控流媒体数据包的传输质量,当传输质量差时,后台自动调整流媒体服务器,利用缓冲机制,实现了流媒体服务器的平滑转移,对于流媒体播放没有造成任何影响,保证了播放的流畅性。
[0027]4、本方法中采用了部分P2P传输方法,在流媒体数据包的初始传输阶段,以P2P方法进行流媒体数据包的传输,当计算出最优流媒体服务器之后,就终端其他19个数据链路,以单播方式进行数据传输。这样既可以保证初始缓冲时间比较短,同时也避免了对于互联网带宽资源造成大量浪费,提高服务质量的同时,有效地利用了带宽资源。
【专利附图】
【附图说明】
[0028]图1是本发明方法的流程框图。
【具体实施方式】
[0029]本发明方法中涉及控制服务器、流媒体服务器以及客户端在互联网中的网络结构。流媒体服务器按照网络结构分布在互联网的各个区域中,控制服务器收集所有流媒体服务器的信息,并对流媒体服务器进行管理。
[0030]本发明提出的基于互联网的流媒体传输方法,其流程框图如图1所示,其中的控制服务器用于处理客户端的流媒体请求,为客户端提供流媒体服务器信息;监控客户端的流媒体服务器运行状态,定期更新全局流媒体服务器资源表。上述控制服务器采集互联网中全部流媒体服务器信息,互联网中的控制服务器将全部流媒体服务器的IP地址进行排序,形成一个流媒体服务器的资源列表,记为全局流媒体服务器资源表。IP为InternetProtocol的英文缩写,翻译为互联网协议。目前通用的互联网协议是第四版,简称为IPv4。IPv4中的IP地址分为AB⑶4个段,每个段的数字可以从O至255,总计有42亿个IP地址。
[0031]本发明方法包括以下步骤:
[0032](I)采集互联网中全部流媒体服务器信息,互联网中的控制服务器将全部流媒体服务器的IP地址进行排序,形成一个流媒体服务器的资源列表,记为全局流媒体服务器资源表;本方法的一个实施例中,以IPv4的分段方式进行划分,IPv4分为4段A.B.C.D。首先按照A段进行排列,在A段的基础上再按照B段的IP地址进行排序,最后再按照C段的IP地址进行排序。在ABC三段排列的基础上,再按照CPU利用率、内存使用率和磁盘吞吐使用率定义流媒体服务器的性能数值从小到大顺序排列。例如,流媒体服务器CPU利用率为70%,内存使用率为40%,磁盘吞吐使用率为40%,则流媒体服务器的性能数值=(0.7+0.4+0.4)/3=0.5,流媒体服务器的性能数值越小,则性能越好。由此形成了全局流媒体服务器的资源表,这个资源表按照5个字段进行排序,第I个字段是A段IP地址,第2个字段是B段IP地址,第3个字段是C段IP地址,第四个字段是流媒体服务器的性能数值,这个性能数值按照从小到大顺序排列,第5个字段为流媒体服务器的D段IP地址。
[0033](2)互联网中的请求发送流媒体的客户端,检查本地客户端流媒体服务器资源表信息,若请求发送流媒体客户端不存在本地流媒体服务器资源表,则进行步骤(3),若请求发送流媒体客户端存在本地流媒体服务器资源表,则进行步骤(5);
[0034](3)请求发送流媒体的客户端向控制服务器发送一个流媒体传输请求,该请求中包含请求发送流媒体客户端的IP地址,控制服务器接收到请求后,按照请求中的请求发送流媒体客户端的IP地址,检索到与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,将流媒体服务器资源表中从该位置开始的20个流媒体服务器的IP地址,组成一张本地流媒体服务器资源表,并将该本地流媒体服务器资源表发送给请求发送流媒体客户端;
[0035](4)请求发送流媒体客户端接收到控制服务器发送来的本地流媒体服务器资源表后,将该资源表存储在请求发送流媒体客户端,作为请求发送流媒体客户端的本地流媒体服务器资源表;
[0036](5)请求发送流媒体客户端向本地流媒体服务器资源表中的20个流媒体服务器发送流媒体传输请求,在请求发送流媒体客户端分别建立20个设定时间长度t的缓冲区,时间长度的取值为5-10秒,根据流媒体传输速率而定。设定时间长度后,请求发送流媒体客户端分别计算20个缓冲区的流媒体数据接收率,并按照20个流媒体接收率从大到小依次排序,得到一张更新的本地流媒体服务器资源表,请求发送流媒体客户端利用更新的本地流媒体服务器资源表,请求发送流媒体客户端从更新的本地流媒体服务器资源表中排列在第I位的流媒体服务器接收流媒体传输数据,同时中断请求发送流媒体客户端与另外19个流媒体服务器的流媒体传输链路,以单播方式从流媒体服务器接收流媒体数据。本步骤中,流媒体数据包接收率定义为:客户端设置一定时间长度的缓冲区,例如5秒钟,这个缓冲区理论上可以放置Q个流媒体数据包。以某个时间为起点,客户端将接收到的流媒体数据包按照流媒体数据包的时间循序放置在缓冲区内,并开始计时。当计时器到达缓冲区时间长度后,客户端计算缓冲区内的流媒体数据包数量,假设数量为P,则P/Q*100%为流媒体数据包接收率。
[0037](6)请求发送流媒体客户端每隔设定时间长度T,计算一次步骤(5)的缓冲区中流媒体数据接收率,定时间长度T的取值范围为5-10分钟,根据流媒体接收质量确定。当流媒体数据接收率小于85%时,说明流媒体数据传输质量低,客户端无法及时接收流媒体数据包。请求发送流媒体客户端向更新的本地流媒体服务器资源表中的其他19个流媒体服务器发送流媒体数据传输请求,重新建立19个缓冲区,缓冲区时间长度为5秒。新建立的19个缓冲区加上原来的I个缓冲区,总共20个缓冲区。5秒钟之后,请求发送流媒体客户端分别计算该19个缓冲区以及正在接收流媒体数据缓冲区的流媒体数据包接收率,若所有流媒体数据接收率都小于85%,则请求发送流媒体客户端向控制服务器发送流媒体服务器更新请求,该更新请求中包含请求发送流媒体客户端的IP地址和更新的本地流媒体服务器资源表,进行步骤(7),若存在流媒体数据接收率大于85%的流媒体服务器,则请求发送流媒体客户端与接收率最大的流媒体服务器建立流媒体传输链路,并再次更新本地流媒体服务器资源表,进行步骤(6);[0038]( 7 )控制服务器接收到请求发送流媒体客户端的更新请求后,说明更新请求中的所有流媒体服务器都无法向客户端提供具有服务质量保证的流媒体数据传输,从步骤(I)的全局流媒体服务器资源表中,检索与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,检索过程中,跳过已包含在请求发送流媒体客户端提供的更新本地流媒体服务器资源表中的IP地址,形成由20个流媒体服务器的IP地址组成的再次更新的本地流媒体服务器资源表;
[0039]( 8 )控制服务器将再次更新的本地流媒体服务器资源表发送给在请求发送流媒体客户端,返回步骤(4)。
【权利要求】
1.一种基于互联网的流媒体传输方法,其特征在于该方法包括以下步骤: (1)采集互联网中全部流媒体服务器信息,互联网中的控制服务器将全部流媒体服务器的IP地址进行排序,形成一个流媒体服务器的资源列表,记为全局流媒体服务器资源表; (2)互联网中的请求发送流媒体的客户端,检查本地客户端流媒体服务器资源表信息,若请求发送流媒体客户端不存在本地流媒体服务器资源表,则进行步骤(3),若请求发送流媒体客户端存在本地流媒体服务器资源表,则进行步骤(5 ); (3)请求发送流媒体的客户端向控制服务器发送一个流媒体传输请求,该请求中包含请求发送流媒体客户端的IP地址,控制服务器接收到请求后,按照请求中的请求发送流媒体客户端的IP地址,检索到与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,将流媒体服务器资源表中从该位置开始的20个流媒体服务器的IP地址,组成一张本地流媒体服务器资源表,并将该本地流媒体服务器资源表发送给请求发送流媒体客户端; (4)请求发送流媒体客户端接收到控制服务器发送来的本地流媒体服务器资源表后,将该资源表存储在请求发送流媒体客户端,作为请求发送流媒体客户端的本地流媒体服务器资源表; (5)请求发送流媒体客户端向本地流媒体服务器资源表中的20个流媒体服务器发送流媒体传输请求,在请求发送流媒体客户端分别建立20个设定时间长度t的缓冲区,时间长度的取值为5-10秒,设定时间长度后,请求发送流媒体客户端分别计算20个缓冲区的流媒体数据接收率,并按照20个流媒体接收率从大到小依次排序,得到一张更新的本地流媒体服务器资源表,请求发送流媒体客户端利用更新的本地流媒体服务器资源表,请求发送流媒体客户端从更新的本地流媒体服务器资源表中排列在第I位的流媒体服务器接收流媒体传输数据,同时中断请求发送流媒体客户端与另外19个流媒体服务器的流媒体传输链路; (6)请求发送流媒体客户端每隔设定时间长度T,计算一次步骤(5)的缓冲区中流媒体数据接收率,定时间长度T的取值范围为5-10分钟,当流媒体数据接收率小于85%时,请求发送流媒体客户端向更新的本地流媒体服务器资源表中的其他19个流媒体服务器发送流媒体数据传输请求,重新建立19个缓冲区,请求发送流媒体客户端分别计算该19个缓冲区以及正在接收流媒体数据缓冲区的流媒体数据包接收率,若所有流媒体数据接收率都小于85%,则请求发送流媒体客户端向控制服务器发送流媒体服务器更新请求,该更新请求中包含请求发送流媒体客户端的IP地址和更新的本地流媒体服务器资源表,进行步骤(7),若存在流媒体数据接收率大于85%的流媒体服务器,则请求发送流媒体客户端与接收率最大的流媒体服务器建立流媒体传输链路,并再次更新本地流媒体服务器资源表,进行步骤(6); (7 )控制服务器接收到请求发送流媒体客户端的更新请求后,从步骤(1)的全局流媒体服务器资源表中,检索与请求发送流媒体客户端的IP地址中ABC段在上述全局流媒体服务器资源表中的排列位置,检索过程中 ,跳过已包含在请求发送流媒体客户端提供的更新本地流媒体服务器资源表中的IP地址,形成由20个流媒体服务器的IP地址组成的再次更新的本地流媒体服务器资源表;(8 )控制服务器将再次 更新的本地流媒体服务器资源表发送给在请求发送流媒体客户端,返回步骤(4)。
【文档编号】H04L29/06GK103905458SQ201410145655
【公开日】2014年7月2日 申请日期:2014年4月11日 优先权日:2014年4月11日
【发明者】王建松 申请人:北京云视天创网络科技有限公司