一种调整数据包发送码率的方法、装置、设备及系统制造方法及图纸

技术编号:22005298 阅读:84 留言:0更新日期:2019-08-31 06:51
本发明专利技术实施例公开了一种调整数据包发送码率的方法、装置、设备及系统。其中,该方法可以计算数据包的平均基本时延,进一步计算队列时延、以及平均队列时延,并根据平均队列时延进行拥塞控制,解决了相关技术中存在的在网络抖动较大的情况下,基于队列时延的拥塞控制不能有效地调整数据包的发送码率,无法适应较大抖动的网络场景的问题,实现了在网络抖动较大的情况下,基于队列时延的拥塞控制可以有效地调整发送数据包的码率,更好地适应网络环境,提高了用户的体验。

A Method, Device, Equipment and System for Adjusting Code Rate of Data Packet Sending

【技术实现步骤摘要】
一种调整数据包发送码率的方法、装置、设备及系统
本专利技术涉及通信领域,具体而言,涉及一种调整数据包发送码率的方法、装置、设备及系统。
技术介绍
实时通信中,音视频媒体通常使用是用户数据报协议(UserDatagramProtocol,简称为UDP)。由于UDP是一种无连接的传输协议,是一种尽力而为的服务方式,因此网络中不可避免会发生拥塞。UDP本身没有拥塞控制机制,拥塞发生后会导致声音不连续、视频花屏停顿等现象,严重影响通话质量,因此进行网络拥塞控制是关系用户体验的一项重要技术。现有技术中,拥塞控制主要依靠丢包率、时延等参数进行。其中基于时延的拥塞控制,一种方法是依据往返时延(Round-TripTime,简称为RTT)来估计网络状态,但在实际环境中RTT受到多种因素影响,尤其在网络抖动较大时带来的估计误差较大。另一种方法是依据队列时延来判断网络是否拥塞。在同等网络环境下,队列时延越小,网络状况越好,可用带宽越大;相反,队列时延越大,网络状况越差,可用带宽越小,当队列时延超出了中间网元可承受的范围,则导致丢包。所以,在现实网络应用中,如果网络状况好,可以提高发送码率以提升用户体验;如果网络状况变差,则需降低发送码率,以防止因数据量过大导致的网络拥塞现象;根据网络状况的好坏,不断调整发送码率,以期收敛达到当前网络状况下适合的最大码率,给用户提供最好的用户体验。但是在网络抖动较大的情况下,已知的队列时延拥塞控制不能有效地调整数据包的发送码率,无法适应较大抖动的网络场景。
技术实现思路
本专利技术的实施例提供了一种调整数据包发送码率的方法及装置,以至少解决相关技术中存在的在网络抖动较大的情况下,基于队列时延的拥塞控制不能有效地调整数据包的发送码率,无法适应较大抖动的网络场景的问题。根据本专利技术实施例的一个方面,提供了一种调整数据包发送码率的方法,包括N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包,其特征在于,该方法可以包括以下步骤:获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv;获取第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1);根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay;根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg;根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,并向发送端发送所述码率R。。进一步地,根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay包括:T_queuedelay=T_recv–T_send–T_basedelay_avg(N-1)。进一步地,根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg,包括:T_queuedelay_avg=f(T_queuedelay,q),其实q为权重。进一步地,所述T_queuedelay_avg=f(T_queuedelay,q),包括:T_queuedelay_avg=w*T_queuedelay_avg+(1-w)*T_queuedelay,其中w为小于1的小数。进一步地,根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,包括:如果所述第N个数据包分组的平均队列时延T_queuedelay_avg小于或等于第一队列时延阈值,则提高发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第一队列时延阈值且小于第二队列时延阈值,则降低发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第二队列时延阈值且小于第三队列时延阈值,则进一步降低发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第三队列时延阈值,则再进一步降低发送数据包的码率R或者停止发送数据包;其中,0<第一队列时延阈值<第二队列时延阈值<第三队列时延阈值。进一步地,在获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv之后,所述方法还包括:根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv,计算所述第N个数据数据包分组的基本时延T_basedelay(N)。进一步地,根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv,计算所述第N个数据包分组的基本时延T_basedelay包括:将所述第N个数据包分组中的每一个数据包的接收时间T_recv减去所述第N个数据包分组中的每一个数据包的发送时间T_send的差值的最小值作为所述第N个数据包分组的基本时延T_basedelay(N)。进一步地,所述方法还包括:获取所述第N个数据包分组的数据包总数量S_total(N);获取N-1个历史数据包分组各自的数据包总数量S_total(N-1)以及各自的数据包分组的基本时延T_basedelay(N-1);根据所述第N个数据包分组的数据包总数量S_total(N)、所述第N个数据包分组的基本时延T_basedelay(N)和N-1个历史数据包分组各自的数据包总数量S_total(N-1)以及各自的数据包分组的基本时延T_basedelay(N-1),计算所述第N个数据包分组的平均基本时延T_basedelay_avg(N),所述第N个数据包分组的平均基本时延T_basedelay_avg(N)用于计算第N+1个数据包分组中的每一个数据包队列时延。进一步地,计算所述第N个数据包分组的平均基本时延T_basedelay_avg(N)包括:T_basedelay_avg=f(T_basedelay,S_total,w),其中所述w为权重,取值与S_total有关。进一步地,所述T_basedelay_avg=f(T_basedelay,S_total,w),包括:T_basedelay_avg=w1*T_basedelay(1)+w2*T_basedelay(2)+w3*T_basedelay(3)…+wn*T_basedelay(N),其中所述w取值与对应的数据包分组中的数据包的总数量S_total成反相关。根据本专利技术实施例的另一方面,提供了一种调整数据包发送码率的装置,包括N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包,其特征在于,该装置可以包括:第一获取模块,用于获取第N个数据包分组中本文档来自技高网...

【技术保护点】
1.一种调整数据包发送码率的方法,包括N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包,其特征在于,所述方法包括:获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv;获取第N‑1个数据包分组的平均基本时延T_basedelay_avg(N‑1);根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N‑1个数据包分组的平均基本时延T_basedelay_avg(N‑1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay;根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg;根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,并向发送端发送所述码率R。

【技术特征摘要】
1.一种调整数据包发送码率的方法,包括N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包,其特征在于,所述方法包括:获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv;获取第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1);根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay;根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg;根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,并向发送端发送所述码率R。2.根据权利要求1所述的方法,其特征在于,根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay包括:T_queuedelay=T_recv–T_send–T_basedelay_avg(N-1)。3.根据权利要求1所述的方法,其特征在于,根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg,包括:T_queuedelay_avg=f(T_queuedelay,q),其实q为权重。4.根据权利要求3所述的方法,其特征在于,所述T_queuedelay_avg=f(T_queuedelay,q),包括:T_queuedelay_avg=w*T_queuedelay_avg+(1-w)*T_queuedelay,其中w为小于1的小数。5.根据权利要求1所述的方法,其特征在于,根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,包括:如果所述第N个数据包分组的平均队列时延T_queuedelay_avg小于或等于第一队列时延阈值,则提高发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第一队列时延阈值且小于第二队列时延阈值,则降低发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第二队列时延阈值且小于第三队列时延阈值,则进一步降低发送数据包的码率R;或者,如果第N个数据包分组的平均队列时延T_queuedelay_avg大于第三队列时延阈值,则再进一步降低发送数据包的码率R或者停止发送数据包;其中,0<第一队列时延阈值<第二队列时延阈值<第三队列时延阈值。6.根据权利要求1至5任意一项所述的方法,其特征在于,在获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv之后,所述方法还包括:根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv,计算所述第N个数据数据包分组的基本时延T_basedelay(N)。7.根据权利要求6所述的方法,其特征在于,根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv,计算所述第N个数据包分组的基本时延T_basedelay包括:将所述第N个数据包分组中的每一个数据包的接收时间T_recv减去所述第N个数据包分组中的每一个数据包的发送时间T_send的差值的最小值作为所述第N个数据包分组的基本时延T_basedelay(N)。8.根据权利要求6所述的方法,其特征在于,所述方法还包括:获取所述第N个数据包分组的数据包总数量S_total(N);获取N-1个历史数据包分组各自的数据包总数量S_total(N-1)以及各自的数据包分组的基本时延T_basedelay(N-1);根据所述第N个数据包分组的数据包总数量S_total(N)、所述第N个数据包分组的基本时延T_basedelay(N)和N-1个历史数据包分组各自的数据包总数量S_total(N-1)以及各自的数据包分组的基本时延T_basedelay(N-1),计算所述第N个数据包分组的平均基本时延T_basedelay_avg(N),所述第N个数据包分组的平均基本时延T_basedelay_avg(N)用于计算第N+1个数据包分组中的每一个数据包队列时延。9.根据权利要求8所述的方法,其特征在于,计算所述第N个数据包分组的平均基本时延T_basedelay_avg(N)包括:T_basedelay_avg=f(T_basedelay,S_total,w),其中所述w为权重,取值与S_total有关。10.根据权利要求9所述的方法,其特征在于,所述T_basedelay_avg=f(T_basedelay,S_total,w),包括:T_basedelay_avg=w1*T_basedelay(1)+w2*T_basedelay(2)+w3*T_basedelay(3)…+wn*T_basedelay(N),其中所述w取值与对应的数据包分组中的数据包的总数量S_total成反相关。11.一种调整数据包发送码率的装置,包括N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包,其特征在于,所述装置包括:第一获取模块,用于获取第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv;第二获取模块,用于获取第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1);第一计算模块,用于根据所述第N个数据包分组中的每一个数据包的发送时间T_send和接收时间T_recv以及所述第N-1个数据包分组的平均基本时延T_basedelay_avg(N-1),计算所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay;第二计算模块,用于根据所述第N个数据包分组中的每一个数据包的队列时延T_queuedelay计算所述第N个数据包分组的平均队列时延T_queuedelay_avg;调整模块,用于根据所述第N个数据包分组的平均队列时延T_queuedelay_avg调整发送数据包的码率R,并向发送端发送所述码率R。12.一种调整数据包发送码率的设备,所述设备包括RTP接收模块、RTCP发送模块、宽带估计模块、音视频数据解码模块和播放模块,其特征在于包括:N+1个数据包分组,N为大于1的自然数,每一个所述数据包分组包括至少两个数据包;所述RTP接收模块,用于接收第N个数据包分组并解析所述第N个数...

【专利技术属性】
技术研发人员:曾爱明
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1