发明内容
本发明实施例的目的是提供一种传输控制方法、装置及电子设备,以减少因业务数据传输时延不断加剧而引起系统不可用的可能性。
为解决上述技术问题,本发明实施例提供方案如下:
本发明实施例提供一种应用业务的传输控制方法,用于第一设备,所述第一设备与第二设备之间建立有传输层连接,所述第一设备分配有传输资源,所述传输资源用于将所述第一设备交付的所述应用业务的业务数据通过所述传输层连接传输给所述第二设备,所述传输控制方法包括:
判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动;
当所述业务数据通过所述传输层连接的传输发生了网络抖动时,降低所述业务数据到所述传输资源的交付速率。
优选地,所述判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动包括:
获取所述传输层连接的当前传输速率;
判断所述当前传输速率是否低于参考传输速率,其中,所述传输层连接的传输速率为所述参考传输速率以上时,交付到所述传输资源的所述业务数据在下一次交付的所述业务数据交付之前完成传输;
当所述当前传输速率低于所述参考传输速率时,判定所述业务数据通过所述传输层连接的传输发生了网络抖动。
优选地,所述降低所述业务数据到所述传输资源的交付速率包括:
将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源;或者,
丢弃待交付给所述传输资源的所述业务数据;或者,
丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据。
优选地,所述应用业务包括流媒体业务,所述业务数据包括所述流媒体业务的音频数据帧;
所述将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源包括:
将待交付给所述传输资源的所述音频数据帧的音频质量降低后交付给所述传输资源;
或者,所述丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据包括:
丢弃待交付给所述传输资源的所述音频数据帧中的静音数据帧。
优选地,所述应用业务包括流媒体业务,所述业务数据包括所述流媒体业务的音频数据帧,所述第一设备为所述流媒体业务的源设备,所述降低所述业务数据到所述传输资源的交付速率包括:
提升声音采集设备的声音提取阀值,使得所述音频数据帧的生成速率降低。
本发明实施例还提供一种应用业务的传输控制装置,用于第一设备,所述第一设备与第二设备之间建立有传输层连接,所述第一设备分配有传输资源,所述传输资源用于将所述第一设备交付的所述应用业务的业务数据通过所述传输层连接传输给所述第二设备,所述传输控制装置包括:
判断模块,用于判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动;
处理模块,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,降低所述业务数据到所述传输资源的交付速率。
优选地,所述判断模块包括:
获取单元,用于获取所述传输层连接的当前传输速率;
判断单元,用于判断所述当前传输速率是否低于参考传输速率,其中,所述传输层连接的传输速率为所述参考传输速率以上时,交付到所述传输资源的所述业务数据在下一次交付的所述业务数据交付之前完成传输;当所述当前传输速率低于所述参考传输速率时,判定所述业务数据通过所述传输层连接的传输发生了网络抖动。
优选地,所述处理模块包括:
压缩单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源;或者,
第一丢弃单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,丢弃待交付给所述传输资源的所述业务数据;或者,
第二丢弃单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据。
优选地,所述应用业务包括流媒体业务,所述业务数据包括所述流媒体业务的音频数据帧;
所述压缩单元包括:
交付子单元,用于将待交付给所述传输资源的所述音频数据帧的音频质量降低后交付给所述传输资源;
或者,所述第二丢弃单元包括:
丢弃子单元,用于丢弃待交付给所述传输资源的所述音频数据帧中的静音数据帧。
优选地,所述应用业务包括流媒体业务,所述业务数据包括所述流媒体业务的音频数据帧,所述第一设备为所述流媒体业务的源设备,所述处理模块包括:
提升单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,提升声音采集设备的声音提取阀值,使得所述音频数据帧的生成速率降低。
本发明实施例还提供一种包括以上所述的应用业务的传输控制装置的电子设备。
从以上所述可以看出,本发明实施例至少具有如下有益效果:
当所述业务数据通过所述传输层连接的传输发生了网络抖动时,所述业务数据到所述传输资源的交付速率也会下降,从而减少了新交付的业务数据因为原交付的业务数据没有完成传输而积压到所述传输资源的可能性,从而也就减少了因业务数据传输时延不断加剧而引起系统不可用的可能性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明实施例进行详细描述。
图1表示本发明实施例提供的一种应用业务的传输控制方法的步骤流程图,参照图1,本发明实施例提供一种应用业务的传输控制方法,所述第一设备与第二设备之间建立有传输层连接,所述第一设备分配有传输资源,所述传输资源用于将所述第一设备交付的所述应用业务的业务数据通过所述传输层连接传输给所述第二设备,所述传输控制方法包括如下步骤:
步骤101,判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动;
步骤102,当所述业务数据通过所述传输层连接的传输发生了网络抖动时,降低所述业务数据到所述传输资源的交付速率。
所述传输控制方法用于第一设备。
可见,通过上述方式,当所述业务数据通过所述传输层连接的传输发生网络抖动时,所述业务数据到所述传输资源的交付速率也会下降,从而减少了了新交付的业务数据因为原交付的业务数据没有完成传输而积压到所述传输资源的可能性,从而也就减少了因业务数据传输时延不断加剧而引起系统不可用的可能性。
其中,所述传输层连接例如:传输控制协议(TransmissionControlProtocol,TCP)连接。
所述应用业务例如:流媒体业务。
所述业务数据例如:流媒体业务的音频数据帧。
所述第一设备例如:彼此之间通过互联网交互的电脑(PC)和RTMP-IMS-GW中的任一个。其中,所述第一设备为电脑时,所述第二设备可以为RTMP-IMS-GW;所述第一设备为RTMP-IMS-GW时,所述第二设备可以为电脑。IMS英文全称为IPMultimediaSubsystem,中文名称为IP多媒体子系统。GW的中文名称为网关。其中,PC和RTMP-IMS-GW之间采用RTMP进行流媒体业务数据的传输,该流媒体业务为PC与手机之间的业务,手机与RTMP-IMS-GW之间通过IMS连接。
本发明实施例中,所述判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动可包括:
获取所述传输层连接的当前传输速率;
判断所述当前传输速率是否低于参考传输速率,其中,所述传输层连接的传输速率为所述参考传输速率以上时,交付到所述传输资源的所述业务数据在下一次交付的所述业务数据交付之前完成传输;
当所述当前传输速率低于所述参考传输速率时,判定所述业务数据通过所述传输层连接的传输发生了网络抖动。
本发明实施例中,所述降低所述业务数据到所述传输资源的交付速率可以有多种方式,列举如下:
<方式一>
所述降低所述业务数据到所述传输资源的交付速率包括:
将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源。
<方式二>
所述降低所述业务数据到所述传输资源的交付速率包括:
丢弃待交付给所述传输资源的所述业务数据。
<方式三>
所述降低所述业务数据到所述传输资源的交付速率包括:
丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据。
具体地,所述应用业务可包括流媒体业务,所述业务数据可包括所述流媒体业务的音频数据帧,相应地,考虑到音频数据在压缩后接收方用户仍然能够听到,则所述将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源可包括:
将待交付给所述传输资源的所述音频数据帧的音频质量降低后交付给所述传输资源。
这样,既减少了传输时延不断加剧的可能性,又保证了通话的正常进行。
或者,考虑到一般约有一半的音频数据帧为静音数据帧,则所述丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据可包括:
丢弃待交付给所述传输资源的所述音频数据帧中的静音数据帧。
这样,也是既减少了传输时延不断加剧的可能性,又保证了通话的保真。
此外,本发明实施例中,对于所述应用业务包括流媒体业务,所述业务数据包括所述流媒体业务的音频数据帧的情况,所述第一设备可以为所述流媒体业务的源设备,为了从源头上降低交付速率,则可以有:
所述降低所述业务数据到所述传输资源的交付速率包括:
提升声音采集设备的声音提取阀值,使得所述音频数据帧的生成速率降低。
为将本发明实施例阐述得更加清楚明白,下面提供本发明实施例的较佳实施方式。
本较佳实施方式提供一种基于RTMP协议承载的流媒体流控及拥塞控制方法。
本较佳实施方式涉及数据业务、流媒体技术领域。
流媒体流控技术由来已久,但是在RTMP协议之上的应用系统的流控并没有相关的专利及文献进行完整有效的描述,本提案的方法是简单可行(RTMP协议是Adobe公司开源的FLASH插件与服务器之间的协议,RTMP协议自身的改进及优化若Adobe公司不采纳则意味着不可行)且实用效果显著的。
本较佳实施方式提出的方法可以很好的解决网络抖动造成的时延不断加剧而造成的系统不可用。当采用TCP来承载实时流媒体时,需要有相应的技术手段来进行流控,以应对网络抖动造成的语音质量抖动。
本较佳实施方式需要解决如下技术问题:
1、如何判断出现了网络抖动;
2、出现网络抖动后如何解决TCP重传带来的时延叠加效应。
本较佳实施方式提供的技术方案的详细阐述:
总体思路方面,本较佳实施方式针对的系统是使用RTMP协议进行实时的流媒体传输。现网涉及的网络抖动主要体现了如下几个方面:
方面一,网络设备瞬间性能抖动造成瞬间丢包。如交换机、路由器或者热点设备瞬间丢包;
方面二,操作系统TCP多连接之间的调度。部分TCP应用优先级高;
方面三、UDP及TCP应用的优先级。如系统进行RTMP传输的同时又进行UDP的P2P应用将会造成TCP应用的瞬间阻塞。
本较佳实施方式涉及的方向是语音通话,语音通话应用的特点是类半双工模式,即一方发言的时候另外一方是在收听。而传输的流媒体方式在静音的时候也在以固定的码率传输媒体流,造成了带宽的占用。
本较佳实施方式的核心思路是当系统检测到网络抖动的时候,主动放弃一段周期的媒体流传输,当系统已经将TCP协议固有的重传完成后才开始后续的流媒体传输。
图2表示本发明实施例的较佳实施方式的应用场景示意图,如图2所示,PC与手机之间经由互联网、RTMP-IMS-GW和IMS进行流媒体业务的交互。
图3表示本发明实施例的较佳实施方式的时间间隔统计示意图,参照图3,网络抖动的检测方法为RTMP-IMS-GW通过RTMP协议的invoke封装一个ping调用包,当客户端收到ping请求后通过RTMP协议的invoke封装的pong请求,服务器及客户端都在统计N个ping和pong之间的时间间隔。服务器中保有一张时间间隔经验表,通过查表可以判定网络处于优、良、尚可、差等档次,分别进行不同级别的流控。
当检测到某个方向媒体流为静音时,停止固定码率的流媒体传输,降低网络带宽的占用。
实施细节方面,如图2所示。在上述的系统中,电脑(PC)和RTMP-IMS-GW之间采用RTMP进行流媒体传输。流媒体分成PC到GW及GW到PC两个方向。本较佳实施方式引入了PC及GW之间的例行网络测速功能,当N个周期的网速出现偏离中位线较大的偏差时,则判定为网络抖动,出现网络抖动时,PC侧主动并将麦克风的声音提取阀值提升,非用户发言的情况将不产生数据包,降低PC至GW方向的网络压力。当测速模块判定网速平稳后,PC至GW方向开始正常的传输。
GW与PC双向进行静音检测,降低某一方发言时反方向的媒体流传输。GW往IMS启动舒适噪音功能。
客户端计算乒乓(ping-pong)的时间间隔算法如下:服务器主动发出ping信号,客户端收到ping信号后使用pong信号回应,服务器收到pong信号后马上发出ping信号。客户端计算时间间隔,当客户端收到第一个ping后开始周期计时开始,收到第N个ping后作为周期计时结束。
服务端计时ping-pong的时间间隔算法如下:
服务器发出第一个ping后马上启动周期计时开始,当服务器收到客户端pong回应后会马上发出ping,这两个时间差就是1个ping-pong的时间间隔,以此类推,N个ping-pong的时间间隔。
统计的时间间隔直接反映出网络的情况。比如说20毫秒以下代表网络优质,20到100毫秒表示网络情况良好,100毫秒以上表示网络情况差,等等。
通过查表判定网络档次例如:将网络分成优、良、可接受、差4个档次,流控的级别与这4个档次分别对应。分成4个级别:不流控、控制发送的音频数据质量在某个阈值以下、取消发送静音包和取消发送所有音频数据。需要说明的是,音频数据质量对于数据量有很大影响,例如CD音质优于电台广播音质,而CD的数据量也大于电台广播数据的数据量。与上述“取消发送静音包”级别对应,当检测到某个方向媒体流为静音时,停止固定码率的流媒体传输,降低网络带宽的占用。其中,停止固定码率的流媒体传输是指,当客户端检测到用户没有说话,也就是静音了,那就把原先准备用静音包发送的数据停止发送,取而代之的是用命令的方式通知网关,客户静音了,由网关用算法产生静音数据发给电话网络。用户A与用户B对话的时候,正常情况有一半的时间一方是静音的,因为静音的一方的用户在听对方用户说。使用这种机制会降低近一半的数据量。
在正常网络抖动小的情况下,N次计算的结果不应该偏差太大。因此我们可以用前10次计算的结果作为中位线,也就是参考线,如果后续计算的结果优于此结果,说明网络变优;如果低于此结果,说明网络往差的方向发展,如果不进行干预,只会让网络更差,干预的手段就是减少数据量,让网络恢复,不出现雪崩效应。减少数据量就是少发静音数据,那就是降低静音判断的门槛,静音判断依靠音量分贝来判定。
GW与PC双向进行静音检测,降低某一方发言时反方向的媒体流传输。其中,双向静音检测是指客户端也就是PC在发送数据前进行静音检测,服务端也就是GW,也在向PC发送数据前进行静音检测。由于GW是中间桥接设备,一方面和电话IMS网络连接,一方面和客户端FLASH连接。客户端FLASH进行静音检测的方法是使用Adobe公司提供的FLASH的应用程序编程接口(ApplicationProgrammingInterface,API)。GW进行静音检测的方法是使用算法分析IMS发往GW的音频数据。
GW进行静音检测的方法是使用算法分析IMS发往GW的音频数据。因为每一个音频数据包都可以通过波形来分析出能量值,也就是音量值,还有频率等,通过频率可以分析出是环境杂音还是人的声音。通过这两个数据可以分析出是不是静音了。如果是静音了,在静音的过程中,如果需要流控的话,那么就无需转发这些静音数据。
GW具有根据音频流检测出是否静音的能力,同时根据流控的级别来做成停止转发静音数据或者连同正常的语音数据都停止转发的动作。
本较佳实施方式的关键点是在互联网与电信运营商IMS网边界设备上,使用基于中位线预判算法检测网络抖动或拥塞发生,并使用提升静音检测阈值的方式来动态控制数据量方法有效的提升了系统的鲁棒性。使用此方法可以减少由于TCP协议自身原理限制带来的承载音视频数据的缺陷,同时发挥TCP协议的可靠性优势。
本较佳实施方式涉及的RTMP-IMS-GW,包括但不限于实现RTMP服务端协议模块、实现媒体流的编解码模块、实现通信IMS网络的ua模块。
本较佳实施方式通过网速测量及历史网速中位线偏离方式进行网络抖动判断。
当出现网络抖动时通过减少传输量的方式将系统进行使能恢复。
系统使用双向静音检测的方式来降低静音时的网络占用。
本较佳实施方式的优点是实现方便,静音检测是Adobe公司FLASH的基础API。在实现方便的基础上效果明显。
图4表示本发明实施例提供的一种应用业务的传输控制装置的结构框图,参照图4,本发明实施例还提供一种应用业务的传输控制装置,所述第一设备与第二设备之间建立有传输层连接,所述第一设备分配有传输资源,所述传输资源用于将所述第一设备交付的所述应用业务的业务数据通过所述传输层连接传输给所述第二设备,所述传输控制装置包括:
判断模块401,用于判断所述业务数据通过所述传输层连接的传输是否发生了网络抖动;
处理模块402,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,降低所述业务数据到所述传输资源的交付速率。
所述传输控制装置用于第一设备。
可见,通过上述方式,当所述业务数据通过所述传输层连接的传输发生了网络抖动时,所述业务数据到所述传输资源的交付速率也会下降,从而减少了新交付的业务数据因为原交付的业务数据没有完成传输而积压到所述传输资源的可能性,从而也就减少了因业务数据传输时延不断加剧而引起系统不可用的可能性。
本发明实施例中,所述判断模块401可包括:
获取单元,用于获取所述传输层连接的当前传输速率;
判断单元,用于判断所述当前传输速率是否低于参考传输速率,其中,所述传输层连接的传输速率为所述参考传输速率以上时,交付到所述传输资源的所述业务数据在下一次交付的所述业务数据交付之前完成传输;当所述当前传输速率低于所述参考传输速率时,判定所述业务数据通过所述传输层连接的传输发生了网络抖动。
本发明实施例中,所述处理模块402可包括:
压缩单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,将待交付给所述传输资源的所述业务数据按照设定方式压缩后交付给所述传输资源;或者,
第一丢弃单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,丢弃待交付给所述传输资源的所述业务数据;或者,
第二丢弃单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,丢弃待交付给所述传输资源的所述业务数据中满足设定条件的数据。
其中,所述应用业务可包括流媒体业务,所述业务数据可包括所述流媒体业务的音频数据帧;
所述压缩单元可包括:
交付子单元,用于将待交付给所述传输资源的所述音频数据帧的音频质量降低后交付给所述传输资源;
或者,所述第二丢弃单元可包括:
丢弃子单元,用于丢弃待交付给所述传输资源的所述音频数据帧中的静音数据帧。
本发明实施例中,所述应用业务可包括流媒体业务,所述业务数据可包括所述流媒体业务的音频数据帧,所述第一设备可以为所述流媒体业务的源设备,所述处理模块可包括:
提升单元,用于当所述业务数据通过所述传输层连接的传输发生了网络抖动时,提升声音采集设备的声音提取阀值,使得所述音频数据帧的生成速率降低。
本发明实施例还提供一种电子设备,所述电子设备包括以上所述的应用业务的传输控制装置。所述电子设备例如电脑或RTMP-IMS-GW。
以上所述仅是本发明实施例的实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明实施例原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明实施例的保护范围。