CN104410587A - 一种接收缓冲区容量控制方法及装置 - Google Patents
一种接收缓冲区容量控制方法及装置 Download PDFInfo
- Publication number
- CN104410587A CN104410587A CN201410643257.9A CN201410643257A CN104410587A CN 104410587 A CN104410587 A CN 104410587A CN 201410643257 A CN201410643257 A CN 201410643257A CN 104410587 A CN104410587 A CN 104410587A
- Authority
- CN
- China
- Prior art keywords
- packet
- capacity
- current
- sent
- transmission
- 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.)
- Pending
Links
Abstract
本发明公开了一种接收缓冲区容量控制方法及装置,主要技术方案包括:接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。采用该技术方案,自适应的调整接收缓冲区的容量,降低了数据包在传输过程中的丢包率。
Description
技术领域
本发明涉及计算机通信技术领域,更具体的涉及一种接收缓冲区容量控制方法及装置。
背景技术
IP(internet protocol,网络协议)网络作为下一代网络应用业务的主要支撑平台,IP技术本身存在一些待解决的问题,其中最主要的是服务质量和安全问题。目前,衡量服务质量的主要参数包括:
●时延:一个数据包在两个参考点之间传输的时间间隔;
●时延抖动:是网络时延的变化量;
●吞吐量:经过一个网络或网络设备的数据包的速率,可以用峰值速率或平均速率表示;
●丢包率:一个网络丢弃数据包的最大概率。
IP网络中的服务质量问题主要与IP网络的传输方式有关,由于IP网络的业务繁忙状态是不断变化的,不同业务类型的数据包经过的传输路径也是不同的,因此数据包从发送端到接收端的时延就不可能固定不变,即产生时延抖动,而且这种时延抖动随着当前网络业务流量的变化和所选择的路由不同而有很多的差异,这就导致了在接收端收到的数据包可能与发送端发送的数据包不一致的情况。
综上所述,现有技术中IP网络存在因为抖动而导致数据包在传输过程中容易发生丢弃数据包的现象。
发明内容
本发明实施例提供一种接收缓冲区容量控制方法及装置,用以解决现有技术中存在因为抖动而导致数据包在传输过程中容易发生丢弃数据包的现象。
本发明实施例提供一种接收缓冲区容量控制方法,包括:
接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
较佳地,所述根据调整判决的结果,对所述接收缓冲区的容量进行控制,包括:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
较佳地,所述根据当前接收缓冲区的容量与该缓冲区内的数据包数量的关系,确定是否调整当前接收缓冲区的容量,包括:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
较佳地,所述接收数据包并将所述数据包缓存到接收缓冲区,包括:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
较佳地,根据所述数据包的传输时延确定所述数据包的时延抖动值,包括:
根据下列公式确定所述数据包的时延抖动值:
其中,J′i=|Ti-Di|
其中,Ji为处理后的第i数据包的时延抖动值,J′i为处理前的第i数据包的时延抖动值,Δt为数据包的发送间隔,i为数据包的序号,Ti为第i数据包的传输时延,Di为调整周期内第i数据包之前的所有数据包的传输时延平均值。
本发明实施例提供一种数据传输控制方法,包括:
根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
较佳地,还包括:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
较佳地,还包括:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
本发明实施例提供一种实现数据传输控制方法,包括:
根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
较佳地,还包括:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
较佳地,还包括:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
较佳地,若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,还包括:
判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
本发明实施例提供一种接收缓冲区容量控制装置,包括:
时延抖动值确定单元:用于接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
缓冲区容量控制单元:用于当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
较佳地,所述缓冲区容量控制单元具体用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
较佳地,所述缓冲区容量控制单元还用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
较佳地,所述时延抖动值确定单元具体用于:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
较佳地,所述时延抖动值确定单元具体用于:
根据下列公式确定所述数据包的时延抖动值:
其中,J′i=|Ti-Di|
其中,Ji为处理后的第i数据包的时延抖动值,J′i为处理前的第i数据包的时延抖动值,Δt为数据包的发送间隔,i为数据包的序号,Ti为第i数据包的传输时延,Di为调整周期内第i数据包之前的所有数据包的传输时延平均值。
本发明实施例提供一种实现的数据传输控制装置,包括:
设定单元:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
判断单元:用于在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
较佳地,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
较佳地,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
本发明实施例提供一种实现数据传输控制装置,包括:
确定单元:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
判断单元:用于在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
较佳地,所述判断单元还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
较佳地,所述判断单元还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
较佳地,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
本发明实施例中,接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。由于该方法中根据前一周期内接收数据包的时延抖动值与当前接收缓冲区的容量进行调整判决,根据调整判决结果,对当前接收缓冲区的容量进行控制,可以明显的抵御因网络流量急剧变化而引起的大的数据包时延抖动值,大大的降低了由于时延抖动引起的丢包率。
附图说明
图1为本发明实施例提供一种接收缓冲区容量控制方法流程图;
图2为本发明实施例提供一种数据传输控制方法流程图;
图3为本发明实施例提供另一种数据传输控制方法流程图;
图4为本发明实施例提供一种接收缓冲区容量控制装置示意图;
图5为本发明实施例提供一种数据传输控制装置示意图;
图6为本发明实施例提供另一种数据传输控制装置示意图。
具体实施方式
本发明实施例中,接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。由于该方法中根据前一周期内接收数据包的时延抖动值与当前接收缓冲区的容量进行调整判决,根据调整判决结果,对当前接收缓冲区的容量进行控制,可以明显的抵御因网络流量急剧变化而引起的大的数据包时延抖动值,大大的降低了由于时延抖动引起的丢包率。
本发明实施例中,当通信业务建立成功后,将为该通信业务构建一个接收缓冲区,并且该接收缓冲区的初始容量采用默认值,进一步地,接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,在本发明实施例中,接收缓冲区的容量以ms为单位。
实施例一
本发明实施例一提供一种接收缓冲区容量控制方法,具体如图1所述,包括下列步骤:
步骤101,接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
步骤102,当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
在步骤101中,当缓冲区接收都数据包时,需要计算该数据包的传输时延,当缓冲区中接收到多个数据后,需要计算数据包的传输时延抖动值,其中,多个数据包至少为2个数据包。
当缓冲区接收一个数据包后,需要根据发送端发送数据包的时间与接收端接收数据包的时间,计算接收到的每一个数据包的传输时延,具体按照公式(1)计算:
Ti=Tarrival,i-Ttransmit,i (1)
公式中,i为接收端接收的数据包序号;Ti为接收端接收的数据包的传输时延;Tarrival,i为接收端接收数据包时的时间;Ttransmit,i为发送端发送数据包时的时间。
根据缓冲区接收的每一个数据包的传输时延,确定所述接收的数据包未处理的时延抖动值,具体按照公式(2)计算:
J′i=|Ti-Di| (2)
公式中,J′i为处理前的第i数据包的时延抖动值,i为数据包的序号,Ti为第i数据包的传输时延,Di为第i数据包之前周期内的所有数据包的传输时延平均值。
其中,所述接收的数据包i之前的所有数据包的传输时延平均值按照公式(3)获得:
公式中,为平滑系数,i为数据包的序号,i-1为前一次收到的数据包的序号,Ti-1为第i-1个数据包的传输时延,Di-1为第i-1数据包之前周期内的所有数据包的传输时延平均值。
在本发明实施例中,可以结合不同的网络情况进行调整,取值范围为0-1。
进一步的,根据下列公式(4)确定所述接收的数据包的时延抖动值:
其中,Ji为处理后的第i数据包的时延抖动值,Δt为所述接收的数据包的发送间隔,符号为向上取整。
比如,某个数据包的未处理的时延抖动值为190ms,该数据包的在发送端的发送间隔时间为20ms,根据公式(4)可以知道,为的比值向上取整后为10,最后可以确定该数据包的时延抖动值为200ms。
进一步地,所述接收数据包并将所述数据包缓存到接收缓冲区,包括:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
比如,接收缓冲区的容量最多可以容纳的数据包总共为5个,若接收缓冲区在时间t1之前都已经容纳了5个数据包,当时间t1之后该接收缓冲区还需要再接收新的数据包,由于该接收缓冲区在时间t1之前都已经被5个数据包完全占有,若不增加该接收缓冲区的容量,则接收缓冲区在时间t1之后需要再接收的数据包都会被丢包,在本发明实施例中,采用对接收缓冲区的容量增加一个数据包的长度,当接收缓冲区在增加一个数据包的长度之后,该接收缓冲区可以在在时间t1之后再接收新的数据包,并且将接收的新的数据包缓冲到接收缓冲区内。
在步骤102中,当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
在本发明实施例中,缓冲区的调整周期的时间长度是可以根据实际应用环境设置的。缓冲区调整周期的时间长度的设定是该缓冲区内数据包的发送间隔的整数倍,其中,整数倍可以是1倍,也可以是10倍、50倍,本发明实施例对于缓冲区调整周期的时间长度的设定不做限定。
若缓冲区的调整周期到达,则首先需要确定前一个周期内缓冲区接收的所有数据包的时延抖动值,然后需要确定当前接收缓冲区的容量。在本发明实施例中,缓冲区的容量为最多可容纳的数据包的传输间隔总时长。比如,缓冲区内最多可以容纳5个数据包,其中,5个数据包的传输间隔总时长为100ms,则认为该缓冲区的容量为100ms。
进一步地,所述根据调整判决的结果,对所述接收缓冲区的容量进行控制,包括下列方式:
方式一:若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度。
比如,前一个周期内缓冲区接收的所有的数据包总共有5个,数据包1的时延抖动值为20ms,数据包2的时延抖动值为120ms,数据包3的时延抖动值为60ms,数据包4的时延抖动值为40ms,数据包5的时延抖动值为20ms。在本发明实施例中,若是第一次对接收缓冲区的容量进行控制,则认为该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长是预设值,其中,预设该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms。
前一周期内缓冲区接收的所有数据包的时延抖动值中,数据包2的时延抖动值最大,为120ms,而当前缓冲区的容量为100ms。由于当前接收缓冲区的容量小于前一个周期内数据包2的时延抖动值,所以,需要的增加当前接收缓冲区的容量,当前接收缓冲区增加后的容量为前一周期内数据包的时延抖动值内最多可接收的数据包的总长度,即当前接收缓冲区的容量由包括5数据包对应的时间长度总和增加到包括6个数据包对应的时间长度总和。
方式二:若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变。
比如,前一个周期内缓冲区接收的所有的数据包总共有5个,数据包1的时延抖动值为20ms,数据包2的时延抖动值为20ms,数据包3的时延抖动值为60ms,数据包4的时延抖动值为40ms,数据包5的时延抖动值为100ms。在本发明实施例中,若是第一次对接收缓冲区的容量进行控制,则认为该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长是预设值,其中,预设该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms。前一周期内缓冲区接收的所有数据包的时延抖动值中,数据包5的时延抖动值最大,为100ms,而当前接收缓冲区的容量为100ms。由于当前接收缓冲区的容量等于前一个周期内数据包5的时延抖动值,所以,当前接收缓冲区的容量保持不变,即当前接收缓冲区的容量仍然为包括5数据包对应的传输间隔总时长。
方式三:若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
在方式三中,所述根据所述缓冲区的容量与所述缓冲区内包括的数据包个数的关系,确定是否调整所述缓冲区的容量包括至少一种方法:
方法一,若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变。
比如,前一个周期内缓冲区接收的所有的数据包总共有5个,数据包1的时延抖动值为20ms,数据包2的时延抖动值为20ms,数据包3的时延抖动值为60ms,数据包4的时延抖动值为40ms,数据包5的时延抖动值为20ms。在本发明实施例中,若是第一次对接收缓冲区的容量进行控制,则认为该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长是预设值,其中,预设该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms。
前一周期内缓冲区接收的所有数据包的时延抖动值中,数据包3的时延抖动值最大,为60ms,而当前接收缓冲区的容量为100ms,若该缓冲区内包括的数据包个数为5个,相应的该缓冲区内包括的5个数据包的传输时长总和为100ms。则将该缓冲区的容量设定为该缓冲区内包括的5个数据包的传输间隔时长总和。
方法二,若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
比如,比如,前一个周期内缓冲区接收的所有的数据包总共有5个,数据包1的时延抖动值为20ms,数据包2的时延抖动值为20ms,数据包3的时延抖动值为60ms,数据包4的时延抖动值为40ms,数据包5的时延抖动值为20ms。在本发明实施例中,若是第一次对接收缓冲区的容量进行控制,则认为该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长是预设值,其中,预设该接收缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms。
前一周期内缓冲区接收的所有数据包的时延抖动值中,数据包3的时延抖动值最大,为60ms,而当前缓冲区的容量为100ms,若该缓冲区内包括的数据包个数为2个,相应的该缓冲区内包括的2个数据包的传输时长总和为40ms。则将该缓冲区的容量设定为该缓冲区内包括的2个数据包的传输间隔总时长。
在本发明实施例中,当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,其中,判决方法还包括:根据前一个周期内接收的所有数据包的时延抖动值的平均值与当前接收缓冲区的容量最多可容纳的所有数据包的传输时长,对当前接收缓冲区的容量进行调整判决。本发明实施例中,对当前接收缓冲区的容量进行调整判决时,是采用前一周期内接收的所有数据包的时延抖动值中的最大时延抖动值;是采用前一周期内接收的所有数据包的时延抖动值的平均值;还是采用前一周期内接收的所有数据包的时延抖动值中的其它值不做限定。
本发明实施例中,接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。由于该方法中根据前一周期内接收数据包的时延抖动值与当前接收缓冲区的容量进行调整判决,根据调整判决结果,对当前接收缓冲区的容量进行控制,可以明显的抵御因网络流量急剧变化而引起的大的数据包时延抖动值,大大的降低了由于时延抖动引起的丢包率。
实施例二
本发明实施例二提供一种数据传输控制方法,对应的是增加接收缓冲区容量的方法,在本发明实施例中,为了体现接收缓冲区容量控制方法对接收缓冲区内数据包的发送效果,接收缓冲区内的数据包发送方法具体如图2所示,包括如下步骤:
步骤201,根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
步骤202,在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
在步骤201中,在发送端设置数据包发送定时器,其中数据包发送定时器可以根据实际应用环境设置,一般情况下设置为20ms,本发明实施例对数据包发送定时器具体设定的时间长度不做限定。比如,若发送缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms,其中,该发送缓冲区的容量最多可容纳的数据包的个数为5个,可以知道,发送缓冲区内每个数据包的发送时间间隔为20ms,当数据包发送定时器开始计时后,恰好到20ms时,发送缓冲区内第1个数据包发送,并且备份第1个数据包;相应的,数据包发送定时器重新开始计时,若数据包发送定时器超过20ms,则发送缓冲区内的第2个数据包没有发送,相应的,数据包发送定时器中断。
本发明实施例中,对接收缓冲区的容量控制方法是增加接收缓冲区容量,将接收缓冲需要增加的容量设置为等待发送定时器的时长。比如,若当前接收缓冲区的容量为5个数据包对应的传输时间间隔总时长,而需要对该接收缓冲区的容量增加到包括6个数据包对应的传输时间间隔总时长,则将该接收缓冲区容量增加的部分(一个数据包对应的时间长度)设定为等待发送定时器的时长,若该接收缓冲区容量内数据包对应的传输时间间隔总时长为20ms,则将等待发送定时器的时长设定为20ms。
等待发送定时器的设定,满足了发送缓冲区容量的增加,只有当等待发送定时器中断后,才能进行数据包的发送。
在步骤202中,在发送数据包时刻到达后,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,数据包发送定时器的时间为20ms,而且等待发送定时器的时间也为20ms。当数据包发送定时器开始计时后,恰好到20ms时,发送缓冲区内第1个数据包发送,并且备份第1个数据包;相应的,数据包发送定时器重新开始计时,若数据包发送定时器超过20ms,则发送缓冲区内的第2个数据包没有发送,相应的,数据包发送定时器中断,等待发送定时器开始计时,若等待发送定时器的计时时间长度大于等待发送定时器设定的时间长度,则将当前待发送的第2个数据包之前发送的第1个数据包的备份重新发送。
进一步地,若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
比如,若当前发送缓冲区内等待发送的是第2个数据包,当数据包发送定时器超过设定的时间长度后,数据包发送定时器中断,等待发送定时器开始计时,若等待定时器计时的时间长度不大于等待发送定时器设定的时间长度,且当前发送缓冲区内等待发送的第2个数据包存在,则将当前发送缓冲区内等待发送的第2个数据包发送,并且备份第2个数据包。
进一步地,若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
比如,若当前发送缓冲区内等待发送的是第2个数据包,当数据包发送定时器超过设定的时间长度后,数据包发送定时器中断,等待发送定时器开始计时,若等待定时器计时的时间长度不大于等待发送定时器设定的时间长度,但是当前发送缓冲区内等待发送的第2个数据包不存在,则将当前待发送的第2个数据包之前发送的第1个数据包的备份重新发送。
本发明实施例中,根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输时长;在发送数据包时刻到达后,若所述等待发送定时器的计时时长大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。根据接收缓冲区需要增大的容量,调整了接收缓冲区内的数据包的发送方法,采用该方法,增加了接收缓冲区内数据包的发送时长,有效了抵御了因为网络流量急剧变化而造成数据包顺序混乱的问题。
实施例三
本发明实施例三提供一种数据传输控制方法,对应的是减少接收缓冲区容量的方法,在本发明实施例中,为了体现接收缓冲区容量控制方法对接收缓冲区内数据包的发送效果,接收缓冲区内的数据包发送方法具体如图3所示,包括如下步骤:
步骤301,根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
步骤302,在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
在步骤301中,在发送端设置等待数据包发送定时器,其中等待数据包发送定时器可以根据实际应用环境设置,一般情况下设置为20ms,本发明实施例对等待数据包发送定时器具体设定的时间长度不做限定。比如,若发送缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms,其中,该发送缓冲区的容量最多可容纳的数据包的个数为5个,可以知道,发送缓冲区内每个数据包的发送时间间隔为20ms,当等待数据包发送定时器开始计时后,恰好到20ms时,发送缓冲区内第1个数据包发送,并且备份第1个数据包;相应的,等待数据包发送定时器重新开始计时,若等待数据包发送定时器超过20ms,则发送缓冲区内的第2个数据包没有发送,相应的,等待数据包发送定时器中断。
本发明实施例中,根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,比如,若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长为100ms,而需要对该接收缓冲区的容量减小最多可容纳的数据包的传输间隔总时长为80ms,其中,当前接收缓冲区的容量最多可容纳的数据包个数为5个数据包,而需要将该接收缓冲区的容量减小到最多可容纳的数据包个数为4个数据包,则将该接收缓冲区容量减小的部分(一个数据包对应的时间长度)设定为等待数据包的数量(1个数据包对应的时间长度)。
在步骤320中,在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,等待数据包发送定时器的时间为20ms,发送缓冲区中待发送的数据包个数为4个,而等待数据包的数量为1。当等待数据包发送定时器开始计时后,恰好达到20ms时,发送缓冲区的第2个数据包对应的序号不存在,由于等待数据包的数量为1,所以,需要将当前待发送的第2个数据包对应的序号的下一个数据包第3数据包发送,并且备份第3个数据包。
进一步地,若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,等待数据包发送定时器的时间为20ms,发送缓冲区中待发送的数据包个数为5个,而等待数据包的数量为0。当等待数据包发送定时器开始计时后,恰好达到20ms时,发送缓冲区的第2个数据包对应的序号不存在,由于等待数据包的数量为0,所以,需要将当前待发送的第2个数据包的前一个已经发送的第1个数据包的备份数据包重新发送。
进一步地,若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,等待数据包发送定时器的时间为20ms,发送缓冲区中待发送的数据包个数为5个,而等待数据包的数量为0。当等待数据包发送定时器开始计时后,恰好达到20ms时,发送缓冲区的第2个数据包对应的序号存在,则将发送缓冲区内待发送的第2个数据包发送,并且备份该第2个数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,等待数据包发送定时器的时间为20ms,发送缓冲区中待发送的数据包个数为3个,而等待数据包的数量为2。当等待数据包发送定时器开始计时后,恰好达到20ms时,发送缓冲区的第2个数据包对应的序号存在,则将发送缓冲区内待发送的第2个数据包发送,并且备份该第2个数据包。
进一步地,若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,还包括:
判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
比如,发送缓冲区内每个数据包的发送时间间隔为20ms,等待数据包发送定时器的时间为20ms,发送缓冲区中待发送的数据包个数为4个,而等待数据包的数量为1。当等待数据包发送定时器开始计时后,恰好达到20ms时,发送缓冲区的第2个数据包对应的序号不存在,由于等待数据包的数量为1,需要判断发送缓冲区的第2个数据包是否为空,若发送缓冲区的第2个数据包不为空,则需要将当前待发送的第2个数据包的前一个已经发送的第1个数据包的备份数据包重新发送。
本发明实施例中,根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,
则发送所述当前待发送的数据包对应序号的下一个数据包。根据接收缓冲区需要减少的容量,在发送数据包的时候,可以根据待发送数据包是否存在和接收缓冲区需要减少的容量,直接发送待发送数据包的下一个数据包,采用该方法,有效的调整了接收缓冲区内数据包的发送时长,有效了抵御了因为网络流量急剧变化而造成数据包顺序混乱的问题。
针对上述方法流程,本发明实施例还提供一种接收缓冲区容量控制装置,这些装置的具体内容可以参照上述方法实施,在此不再赘述。
实施例四
本发明实施例提供一种接收缓冲区容量控制装置,如图4所示,包括:时延抖动值确定单元21和缓冲区容量控制单元22。
时延抖动值确定单元21:用于接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
缓冲区容量控制单元22:用于当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
进一步地,所述缓冲区容量控制单元22具体用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
进一步地,所述缓冲区容量控制单元22还用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
进一步地,所述时延抖动值确定单元21具体用于:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
进一步地,所述时延抖动值确定单元21具体用于:
根据下列公式确定所述数据包的时延抖动值:
其中,J′i=|Ti-Di|
其中,Ji为处理后的第i数据包的时延抖动值,J′i为处理前的第i数据包的时延抖动值,Δt为数据包的发送间隔,i为数据包的序号,Ti为第i数据包的传输时延,Di为调整周期内第i数据包之前的所有数据包的传输时延平均值。
在本发明实施例中,时延抖动值确定单元用于接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;缓冲区容量控制单元用于当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。缓冲区容量控制单元根据时延抖动值确定单元确定的前一周期内所有数据包的时延抖动值与当前接收缓冲区的容量的关系,对当前接收缓冲区的容量进行控制,采用该方法,可以明显的抵御因网络流量急剧变化而引起的大的数据包时延抖动值,大大的降低了由于时延抖动引起的丢包率。
实施例五
本发明实施例提供一种实现的数据传输控制装置,如图5所示,包括:设定单元31和判断单元32。
设定单元31:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
判断单元32:用于在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
进一步地,所述判断单元32还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
进一步地,所述判断单元32还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
实施例六
本发明实施例提供一种实现数据传输控制装置,如图6所示,包括:确定单元41和判断单元42。
确定单元41:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
判断单元42:用于在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
进一步地,所述判断单元42还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
进一步地,所述判断单元42还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
进一步地,所述判断单元42还用于:
若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
对于本实施例的一种接收缓冲区容量控制装置,包括的时延抖动值确定单元和缓冲区容量控制单元。其中,上述单元可以设置在同一个实体装置内,也可以是多个独立设置的实体设备,本发明实施例不做具体的限定。
对于本发明实施例提供一种实现数据传输控制装置,包括的设定单元和判断单元。其中,上述单元可以设置在同一个实体装置内,也可以是多个独立设置的实体设备,本发明实施例不做具体的限定。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (24)
1.一种接收缓冲区容量控制方法,其特征在于,包括:
接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
2.如权利要求1所述方法,其特征在于,所述根据调整判决的结果,对所述接收缓冲区的容量进行控制,包括:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
3.如权利要求2所述方法,其特征在于,所述根据当前接收缓冲区的容量与该缓冲区内的数据包数量的关系,确定是否调整当前接收缓冲区的容量,包括:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
4.如权利要求1所述方法,其特征在于,所述接收数据包并将所述数据包缓存到接收缓冲区,包括:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
5.如权利要求1所述方法,其特征在于,根据所述数据包的传输时延确定所述数据包的时延抖动值,包括:
根据下列公式确定所述数据包的时延抖动值:
其中,J'i=|Ti-Di|
其中,Ji为处理后的第i数据包的时延抖动值,J'i为处理前的第i数据包的时延抖动值,Δt为数据包的发送间隔,i为数据包的序号,Ti为第i数据包的传输时延,Di为调整周期内第i数据包之前的所有数据包的传输时延平均值。
6.一种基于权利要求1-5任一方法实现的数据传输控制方法,其特征在于,包括:
根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
7.如权利要求6所述方法,其特征在于,还包括:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
8.如权利要求6所述方法,其特征在于,还包括:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
9.一种基于权利要求1-5任一方法实现数据传输控制方法,其特征在于,包括:
根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
10.如权利要求9所述方法,其特征在于,还包括:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
11.如权利要求9所述方法,其特征在于,还包括:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
12.如权利要求9所述方法,其特征在于,若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,还包括:
判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
13.一种接收缓冲区容量控制装置,其特征在于,包括:
时延抖动值确定单元:用于接收数据包并将所述数据包缓存到接收缓冲区,确定所述数据包的传输时延,根据所述数据包的传输时延确定所述数据包的时延抖动值;
缓冲区容量控制单元:用于当缓冲区调整周期到达时,根据前一个周期内接收的所有数据包的时延抖动值以及当前接收缓冲区的容量,对当前接收缓冲区的容量进行调整判决,并根据调整判决的结果,对当前接收缓冲区的容量进行控制。
14.如权利要求13所述装置,其特征在于,所述缓冲区容量控制单元具体用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,小于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据所述最大时延抖动值增加当前接收缓冲区的容量,增加后的容量为所述最大时延抖动值的时长内最多可接收的数据包的总长度;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,等于所述前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于前一个周期内接收的所有数据包的时延抖动值中的最大时延抖动值,则根据当前接收缓冲区的容量与该缓冲区内的数据包的数量之间的关系,确定是否调整当前接收缓冲区的容量。
15.如权利要求14所述装置,其特征在于,所述缓冲区容量控制单元还用于:
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,与传输该缓冲区内当前的所有数据包所用的时长相等,则保持当前接收缓冲区的容量不变;或者
若当前接收缓冲区的容量最多可容纳的数据包的传输间隔总时长,大于传输该缓冲区内当前的所有数据包所用的时长,则根据当前接收缓冲区内的数据包的数量减小该缓冲区的容量,减小后的容量最多可容纳的所有数据包的传输时长不小于传输该缓冲区内当前的所有数据包所有的时长。
16.如权利要求15所述装置,其特征在于,所述时延抖动值确定单元具体用于:
若所述接收缓冲区在接收数据包之前已满,则将所述接收缓冲区的容量增加一个数据包的长度后,将当前接收到的数据包缓存到接收缓冲区。
17.如权利要求13所述装置,其特征在于,所述时延抖动值确定单元具体用于:
根据下列公式确定所述数据包的时延抖动值:
其中,J'i=|Ti-Di|
其中,Ji为处理后的第i数据包的时延抖动值,J'i为为处理前的第i数据包的时延抖动值,Δt为数据包的发送间隔,i为数据包的序号,Ti为第i数据包的传输时延,Di为调整周期内第i数据包之前的所有数据包的传输时延平均值。
18.一种基于权利要求1-5任一方法实现的数据传输控制装置,其特征在于,包括:
设定单元:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要增大的容量,设置等待发送定时器的时长,所述等待发送定时器的时长等于所述接收缓冲区需要增大的容量所对应的数据包传输间隔总时长;
判断单元:用于在发送数据包时刻到达时,若所述等待发送定时器的计时时长大于所述等待发送定时器设定的计时时长,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
19.如权利要求18所述装置,其特征在于,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号存在,则发送当前待发送的数据包,且备份所述数据包。
20.如权利要求18所述装置,其特征在于,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待发送定时器的计时时长不大于所述等待发送定时器设定的计时时长,且当前待发送的数据包对应的序号不存在,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
21.一种基于权利要求1-5任一方法实现数据传输控制装置,其特征在于,包括:
确定单元:用于根据对接收缓冲区的容量进行调整判决所确定出的接收缓冲区需要减小的容量,确定等待数据包的数量,所述等待数据包的数量等于所述缓冲区需要减少的容量所能容纳的数据包的数量;
判断单元:用于在发送数据包时刻到达时,若当前待发送的数据包对应的序号不存在,且所述等待数据包数量大于零,则发送所述当前待发送的数据包对应序号的下一个数据包。
22.如权利要求21所述装置,其特征在于,所述判断单元还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号不存在,且所述等待数据包的数量不大于零,则发送当前待发送数据包的前一个已发送数据包的备份数据包。
23.如权利要求21所述装置,其特征在于,所述判断单元还用于:
若在发送数据包时刻到达时,当前待发送的数据包对应的序号存在,则发送当前待发送的数据包且备份所述数据包。
24.如权利要求21所述装置,其特征在于,所述判断单元还用于:
若在发送数据包时刻到达时,所述等待数据包的数量大于零,则在发送所述当前待发送的数据包对应序号的下一个数据包之前,判断当前待发送的数据包是否为空,若当前待发送的数据包不为空,则发送当前待发送的数据包,且备份所述数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410643257.9A CN104410587A (zh) | 2014-11-13 | 2014-11-13 | 一种接收缓冲区容量控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410643257.9A CN104410587A (zh) | 2014-11-13 | 2014-11-13 | 一种接收缓冲区容量控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104410587A true CN104410587A (zh) | 2015-03-11 |
Family
ID=52648185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410643257.9A Pending CN104410587A (zh) | 2014-11-13 | 2014-11-13 | 一种接收缓冲区容量控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104410587A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024936A (zh) * | 2015-06-02 | 2015-11-04 | 贵阳语玩科技有限公司 | 一种数据处理方法及装置 |
CN105072485A (zh) * | 2015-08-26 | 2015-11-18 | 小米科技有限责任公司 | 时延控制方法及装置 |
CN107450534A (zh) * | 2017-07-28 | 2017-12-08 | 珞石(山东)智能科技有限公司 | 用于处理机器人网络通信抖动的鲁棒规划系统 |
CN108989138A (zh) * | 2017-05-31 | 2018-12-11 | 中兴通讯股份有限公司 | 数据传输方法、装置、系统及网关 |
CN110011967A (zh) * | 2019-02-27 | 2019-07-12 | 新奥特(北京)视频技术有限公司 | 一种用于数据传输的方法和系统 |
CN110300429A (zh) * | 2018-03-23 | 2019-10-01 | 中国移动通信集团广东有限公司 | 调整缓存长度的方法、装置、电子设备和存储介质 |
CN110971942A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 数据传输方法和装置 |
CN111586154A (zh) * | 2020-04-30 | 2020-08-25 | 北京百度网讯科技有限公司 | 基于传输信道的数据存储方法、装置、设备和存储介质 |
CN113365089A (zh) * | 2021-05-31 | 2021-09-07 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置、存储介质及电子装置 |
CN114598653A (zh) * | 2022-05-09 | 2022-06-07 | 上海飞旗网络技术股份有限公司 | 一种基于时延管理模型的数据流加速方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691634A (zh) * | 2004-04-19 | 2005-11-02 | 腾讯科技(深圳)有限公司 | 一种解决网络抖动的方法 |
US20060045138A1 (en) * | 2004-08-30 | 2006-03-02 | Black Peter J | Method and apparatus for an adaptive de-jitter buffer |
CN101615987A (zh) * | 2008-06-27 | 2009-12-30 | 北京信威通信技术股份有限公司 | 一种无线通信系统中可靠传输实时业务的方法及装置 |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
-
2014
- 2014-11-13 CN CN201410643257.9A patent/CN104410587A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1691634A (zh) * | 2004-04-19 | 2005-11-02 | 腾讯科技(深圳)有限公司 | 一种解决网络抖动的方法 |
US20060045138A1 (en) * | 2004-08-30 | 2006-03-02 | Black Peter J | Method and apparatus for an adaptive de-jitter buffer |
CN101615987A (zh) * | 2008-06-27 | 2009-12-30 | 北京信威通信技术股份有限公司 | 一种无线通信系统中可靠传输实时业务的方法及装置 |
CN103533451A (zh) * | 2013-09-30 | 2014-01-22 | 广州华多网络科技有限公司 | 抖动缓存调节方法及其系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105024936A (zh) * | 2015-06-02 | 2015-11-04 | 贵阳语玩科技有限公司 | 一种数据处理方法及装置 |
CN105024936B (zh) * | 2015-06-02 | 2018-10-26 | 贵阳语玩科技有限公司 | 一种数据处理方法及装置 |
CN105072485A (zh) * | 2015-08-26 | 2015-11-18 | 小米科技有限责任公司 | 时延控制方法及装置 |
CN108989138A (zh) * | 2017-05-31 | 2018-12-11 | 中兴通讯股份有限公司 | 数据传输方法、装置、系统及网关 |
CN107450534A (zh) * | 2017-07-28 | 2017-12-08 | 珞石(山东)智能科技有限公司 | 用于处理机器人网络通信抖动的鲁棒规划系统 |
CN110300429A (zh) * | 2018-03-23 | 2019-10-01 | 中国移动通信集团广东有限公司 | 调整缓存长度的方法、装置、电子设备和存储介质 |
CN110971942A (zh) * | 2018-09-28 | 2020-04-07 | 杭州海康威视数字技术股份有限公司 | 数据传输方法和装置 |
CN110971942B (zh) * | 2018-09-28 | 2021-08-17 | 杭州海康威视数字技术股份有限公司 | 数据传输方法和装置 |
US11589101B2 (en) | 2018-09-28 | 2023-02-21 | Hangzhou Hikvision Digital Technology Co., Ltd. | Data transmission method and apparatus |
CN110011967A (zh) * | 2019-02-27 | 2019-07-12 | 新奥特(北京)视频技术有限公司 | 一种用于数据传输的方法和系统 |
CN111586154A (zh) * | 2020-04-30 | 2020-08-25 | 北京百度网讯科技有限公司 | 基于传输信道的数据存储方法、装置、设备和存储介质 |
CN111586154B (zh) * | 2020-04-30 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于传输信道的数据存储方法、装置、设备和存储介质 |
CN113365089A (zh) * | 2021-05-31 | 2021-09-07 | 浙江大华技术股份有限公司 | 一种数据传输方法、装置、存储介质及电子装置 |
CN114598653A (zh) * | 2022-05-09 | 2022-06-07 | 上海飞旗网络技术股份有限公司 | 一种基于时延管理模型的数据流加速方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104410587A (zh) | 一种接收缓冲区容量控制方法及装置 | |
CN103647722B (zh) | 一种基于信誉的链路拥塞控制方法 | |
CN103905328A (zh) | 一种数据传输控制系统、方法及相关装置 | |
CN104137495B (zh) | 确认包的处理方法、设备及系统 | |
CN104125159B (zh) | 一种拥塞带宽检测方法、装置及系统 | |
CN105379342B (zh) | 一种数据重传的方法和装置 | |
CN102420684B (zh) | Tcp数据流的处理方法以及通信设备 | |
US20110305240A1 (en) | Call admission and preemption for multiple bit-rate applications | |
CN103560971A (zh) | 网络流量均衡控制方法和装置 | |
CN110366202A (zh) | 空口链路拥塞反馈方法、装置及设备、存储介质 | |
EP3471458B1 (en) | Method and apparatus for controlling data transmission speed in wireless communication system | |
US9900258B2 (en) | Multi-trunk data flow regulation system and method | |
CN102780621B (zh) | 一种上行数据包发送方法、装置及网络设备 | |
CN105450441A (zh) | 一种基于tcp协议的弱网加速方法和装置 | |
CN105471763A (zh) | 控制报文传输方法及装置 | |
CN104837162B (zh) | 一种处理数据倒换超时的方法及装置 | |
CN106789700B (zh) | 一种流量整形方法及网络设备 | |
CA3061005C (en) | Single-stream aggregation protocol | |
CN105517058B (zh) | 移动终端数据传输控制方法及装置 | |
JP2006504290A (ja) | Nackプロトコルの方法および装置 | |
EP3403436B1 (en) | Method and network node for handling signals transmitted from wireless devices | |
CN105472655A (zh) | 一种拥塞窗口的调整方法、相关装置和系统 | |
WO2017101875A1 (zh) | 一种基于iSCSI协议的传输速率控制方法和装置 | |
CN107734550A (zh) | 一种信息传输方法、装置、系统和相关设备 | |
CN105637790B (zh) | 一种重传数据的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150311 |
|
RJ01 | Rejection of invention patent application after publication |