CN109818874A - 数据传输方法、设备及计算机存储介质 - Google Patents
数据传输方法、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN109818874A CN109818874A CN201711179676.1A CN201711179676A CN109818874A CN 109818874 A CN109818874 A CN 109818874A CN 201711179676 A CN201711179676 A CN 201711179676A CN 109818874 A CN109818874 A CN 109818874A
- Authority
- CN
- China
- Prior art keywords
- data
- congestion
- queue
- data queue
- frame
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了数据传输方法、设备及计算机存储介质,其中所述方法包括:将待传输的数据流进行编码和封装,从而获得待传输的数据帧;确定传输层中数据队列的拥塞指示信息,所述数据队列用于排列所述待传输的数据帧,所述拥塞指示信息至少用于指示所述数据队列是否发生数据拥塞;根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制。采用本发明实施例,能够及时发现数据拥塞,并结合数据队列的拥塞管理机制,降低发生数据拥塞时数据帧的传输时延以及重要数据的丢包率;此外,还可通过降低数据流的编码速率来减小数据队列的长度,并降低数据帧的传输速率,以减小再次数据拥塞的发生概率,从而提升了数据传输的实时性。
Description
技术领域
本发明涉及通信技术领域,尤其涉及数据传输方法、设备及计算机存储介质。
背景技术
通信过程中,由于受到终端功率、遮挡、基站部署、信号衰弱、多径干扰等因素的影响,可能会导致传输信道质量变差、传输信道的带宽波动较大甚至带宽不足等问题,此时很容易出现网络拥塞。特别是,针对目前广泛使用的移动视频通话,上行信道容易受到影响导致上行信道的带宽不足,出现视频卡顿、不流畅等问题,影响视频通话的质量。如图1,示出上行信道带宽以及数据传输随着时间的变化而变化的曲线示意图。
为解决上述问题,现有技术提出基于媒体介入控制层(Media Access Control,MAC)的数据传输控制方案。如图2,终端的调制解调器modem可先启动操作系统(OperatingSystem,OS)内核的芯片驱动,在芯片驱动成功后再检测芯片中缓冲区内的数据堆积量。当该数据堆积量超过预设阈值时可生成相应地调制解调AT命令,以上报拥塞告警,然后通过无线接口层(Radio Layer Interface,RIL)以及多媒体服务(Interactive MultimediaService,IMS)将其上报给拥塞控制模块。该拥塞控制模块接收到该拥塞告警后,可调整数据传输的速率。
然而在实践中发现,现有技术的方案存在以下几个问题。首先,终端硬件和操作系统的交互比较频繁,增加终端功耗。其次,缓冲区中数据堆积量的检测以及AT命令的上报均需芯片配合,芯片要求较高,但目前大多数厂商生产的芯片都不支持上述功能,其使用范围受到限制。最后,现有技术仅能针对数据发生拥塞后,才能对数据的输入速率进行调整,但对已发生拥塞的数据队列而言并不产生影响。
发明内容
本发明实施例公开了数据传输方法、设备及计算机存储介质,能够避免现有技术中终端功耗高、芯片要求高、使用范围受限制、已拥塞的数据队列中数据传输无调整等问题,缓解数据拥塞,实现数据传输的实时性。
第一方面,本发明实施例公开提供了一种数据传输方法,应用于数据传输场景中,所述方法包括:
终端设备将待传输的数据流进行编码和封装,从而获得待传输的数据帧;
所述终端设备确定传输层中数据队列的拥塞指示信息,所述数据队列用于排列并缓存所述待传输的数据帧,所述拥塞指示信息至少用于指示所述数据队列是否发生数据拥塞;
所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制。
在一些可能的实施例中,所述数据传输应用场景包括但不限于以下:无线UDP传输应用场景、无线TCP/IP传输应用场景、有线数据传输应用场景等等。特别的,本申请公开的方案主要使用于无线UDP数据传输场景中,由于现有技术中该场景下并不存在数据队列以及基于该数据队列的拥塞管理机制。
在一些可能的实施例中,所述拥塞指示信息包括以下中的至少一项:队列长度以及拥塞等级,所述拥塞等级用于反映所述数据队列发生数据拥塞时的拥塞程度。
在一些可能的实施例中,所述拥塞指示信息包括拥塞因子,所述拥塞因子是根据所述待传输的数据帧的类型确定的,且所述拥塞因子用于反映所述待传输的数据帧的重要程度。
在一些可能的实施例中,所述数据队列包括物理数据队列和/或虚拟数据队列,其中,
所述物理数据队列的拥塞等级是根据所述数据队列的队列长度以及所述数据流的编码速率确定的;
所述虚拟数据队列的拥塞等级是根据所述数据队列的队列长度、所述数据流的编码速率以及所述拥塞因子确定的。
在一些可能的实施例中,
其中,GP为物理数据队列的拥塞等级,Gv为物理数据队列的拥塞等级,L0为数据队列的队列长度,k为拥塞因子,Vcode为数据流的编码速率,Tdelaythreshold为预存的时延阈值,该时延阈值用于表征所述数据帧的传输时延每增加所述时延阈值,则拥塞等级增加一级。
在一些可能的实施例中,所述拥塞指示信息至少包括拥塞因子,所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制包括:
所述终端设备根据所述数据队列的拥塞指示信息,进行如下操作处理中的至少一项,以实现对所述待传输的数据帧进行传输控制:调整所述数据流的输入速率、调整所述数据流的编码速率、调整所述待传输的数据帧的传输速率以及决定是否丢弃目标帧,其中,所述目标帧为所述数据队列中所述拥塞因子用于反映重要程度低于第一阈值所对应的所述待传输的数据帧。
在一些可能的实施例中,所述数据队列包括物理数据队列以及虚拟数据队列,所述拥塞指示信息包括拥塞因子以及拥塞等级,所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制包括:
在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级小于第三阈值时,所述终端设备丢弃所述物理数据队列中的所述目标帧;
在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级大于或等于第三阈值时,所述终端设备降低所述数据流的编码速率,以减小所述数据队列的队列长度。
第二方面,本发明实施例公开提供了一种终端设备,包括用于执行上述第一方面的方法的功能单元。
第三方面,本发明实施例提供了一种终端络设备,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行上述第一方面描述的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了用于邮件传输的程序代码。所述程序代码包括用于执行上述第一方面描述的方法的指令。
第五方面,提供了一种包括指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面描述的方法。
通过实施本发明实施例,能够避免现有技术中终端功耗高、芯片要求高、使用范围受限制、已拥塞的数据队列中数据传输无调整等问题,缓解数据拥塞,实现数据传输的实时性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1是现有技术提供的带宽变化曲线示意图;
图2是现有技术提供的一种网络框架示意图;
图3是本发明实施提供的一种网络框架示意图;
图4是本发明实施例提供的一种数据传输方法的流程示意图;
图5是本发明实施例提供的又一种网络框架示意图;
图6A-图6D是本发明实施例提供的几种场景示意图;
图7A是本发明实施例提供的一种终端设备的结构示意图;
图7B是本发明实施例提供的又一种终端设备的结构示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例中的技术方案进行详细描述。
本申请的发明人在提出本申请的过程中发现:现有技术提出基于MAC层的数据传输控制方案。如图2,在数据传输过程中,可利用modem检测芯片缓冲区的数据堆积量。在该数据堆积量超过预设阈值时,可通过AT命令向拥塞控制模块上报拥塞告警。相应地,拥塞控制模块接收到拥塞告警后,对数据传输的速率进行调整。但在实践中发现至少存在以下三个问题:
第一,终端硬件和操作系统的交互比较频繁,增加终端功耗。
第二,缓冲区中数据堆积量的检测以及AT命令的上报均需芯片配合,对芯片的要求较高。但目前大多数厂商生产的芯片都不支持上述功能,其使用范围受到限制。
第三,现有技术仅能在数据发生拥塞后,才能对数据的输入速率进行调整,但对已发生拥塞的数据队列而言并不产生影响,即不对已发生拥塞的数据队列进行调整。
为解决上述问题,本申请提出如图3所示的一种网络框架示意图。如图3,该网络架构示意图包括:拥塞检测模块、操作系统内核以及无线芯片。其中,该操作系统内核中包含有芯片驱动和网络协议栈。也即是说,本申请将缓冲区中的数据堆积量设计在OS内核中的网络协议栈中,用软件形式呈现,以实现缓冲区中数据堆积量的调节和控制,缓解数据拥塞。可选地,该缓冲区的数据堆积量可采用数据队列机制呈现。
下面介绍本申请涉及的各个部件。
首先,拥塞检测模块可通过应用程序编程接口(Application ProgrammingInterface,API)获取信道质量的相关参数,进一步地可根据信道质量的好坏对所述网络协议栈中数据队列中的数据进行相应地的传输控制处理。也即是,拥塞检测模块可用于对网络协议栈中存储的数据队列中的数据进行管理和控制。具体的,当信道质量较差,此时信道带宽变小,容易发生数据拥塞。当终端设备检测到所述数据队列中的数据发生拥塞/堆积时,终端设备可对所述数据队列中的数据进行丢弃,例如丢弃一些非重要的数据,或者提高所述数据队列中的数据的传输速率,从而减轻数据拥塞。
在可选实施例中,所述信道质量的相关参数用于反映信道质量的好坏。该信道质量的相关参数可以为所述终端设备接入小区的测量参数,例如参考信号接收功率(Reference Signal Receiving Power,RSRP)、接收信号强度指示(Received SignalStrength Indicator,RSSI)、参考信号接收质量(Reference Signal Receiving Quality,RSRQ)、RS有用信号与干扰相比强度(Carrier to Interference plus Noise Ratio,RS-CINR)等,本申请并不做限定。
在可选实施例中,当终端设备检测到所述数据队列中的数据发生严重拥塞/堆积时,终端设备依靠丢弃所述数据队列中的数据已不能满足传输需求,此时所述终端可降低数据流的编码速率,以降低输入至所述数据队列的数据的输入速率(即降低所述数据队列中数据的形成速率),从而减小数据队列的队列长度。
相应地,当信道质量变好(即网络变好)时,所述数据队列中的数据并未发生拥塞,此时所述终端设备可提高数据流的编码速率,以增加所述数据队列的队列长度,加快数据传输的速率。关于如何管理和控制所述数据队列中的数据将在下文进行详细阐述。
基于图3所示的网络架构示意图,参见图4是本申请实施例提供的一种数据传输方法的流程示意图。如图4所示的方法可包括如下实施步骤:
步骤S102、终端设备将待传输的数据流进行编码和封装,从而获得待传输的数据帧。
步骤S104、所述终端设备确定传输层中数据队列的拥塞指示信息,所述数据队列用于排列并缓存所述待传输的数据帧,所述拥塞指示信息至少用于指示所述数据队列是否发生数据拥塞。
所述拥塞指示信息包括以下中的任一项或多项的组合:拥塞因子、队列长度以及拥塞等级。其中,所述队列长度是指所述数据队列的物理长度,即所述数据队列中缓存数据帧的总长度。所述拥塞因子用于反映所述数据帧的重要程度,例如数据帧对应的拥塞因子较大,则该数据帧为重要数据帧;相应地,当数据帧对应的拥塞因子较小时,则该数据帧为非重要数据帧。所述数据帧的拥塞因子可以是根据所述数据帧的类型确定而得的。
在可选实施例,所述拥塞指示信息至少包括所述拥塞因子,可选地所述拥塞指示信息还可包括所述队列长度和/或所述拥塞等级。关于所述拥塞因子和所述拥塞等级将具体在下文进行阐述。
步骤S106、所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制。
本申请中,步骤S106的实质是:根据所述数据队列的拥塞指示信息同时对所述数据队列的长度以及所述待传输的数据帧进行控制。具体的,所述对所述待传输的数据帧进行传输控制包括但不限于以下操作处理中的任一项或多项的组合:调整所述数据流的输入速率、调整所述数据流的编码速率、调整所述数据帧的传输速率以及决定是否丢弃目标帧,其中该目标帧是指所述数据队列中拥塞因子反映重要程度较低的所述待传输的数据帧。具体将在下文中进行阐述。
下面介绍本申请涉及的一些具体实施例。
步骤S102中,终端设备可利用编码器对待传输的数据流进行编码,并封装为对应的待传输的数据帧(即数据包)。然后,终端设备可将所述待传输的数据帧以队列的形式发送至网络协议栈中进行缓存,以等待发送至其他设备。具体如图5是本发明示意图的又一种网络架构示意图。
在可选实施例中,本申请并不限定所述待传输的数据流的种类或格式,也即是不限定所述数据流的业务种类,例如可以是视频流、语音流、或其他的低时延业务等。以所述数据流为视频流而言,编码器可将视频流编码后,封装为用户数据报协议(User DatagramProtocol,UDP)包。然后将该UDP包发送至网络协议栈中,以在所述网络协议栈中以数据队列的形式缓存,以等待传输。
步骤S104中,所述终端设备可根据编码输出的所述待传输的数据帧,确定所述网络协议栈中所述数据队列的拥塞指示信息。所述拥塞指示信息至少用于指示所述数据队列当前是否发生数据拥塞,可选地还可指示所述数据队列的队列长度以及所述数据队列的拥塞等级等等。所述拥塞指示信息可包括如下信息中的一项或多项的组合:所述数据帧的拥塞因子、所述数据队列的队列长度、所述数据队列的拥塞等级。下面分别进行阐述。
一种具体实施方式中,所述终端设备可根据所述待传输的数据帧的类型为所述数据帧分配对应的拥塞因子。所述拥塞因子用于反映所述数据帧是否为重要帧,或者用于反映所述数据帧的重要程度。
可选实施例中,所述数据帧的类型包括但不限于长期参考帧、短期参考帧、非参考帧等等。当所述数据帧为视频帧时,所述数据帧的类型还可包括但不限于I帧、B帧以及P帧等等,本申请不做限定。
所述终端设备在将所述数据流封装为数据帧后,即可为所述数据帧分配相应地的拥塞因子,用于标识/反映所述数据帧的重要程度或者是否为重要数据帧。
例如,所述终端设备可为非参考帧配置的拥塞因子为0,相应地为参考帧配置的拥塞因子为1,本申请并不限定。
又一种具体实施方式中,所述终端设备可实时或周期性地获知所述网络协议栈中数据队列的队列长度。该数据队列的队列长度也是指所述待传输的数据帧缓存于所述数据队列的总和或总长度。
又一种具体实施方式中,所述终端设备可根据所述数据队列的队列长度计算所述数据队列的拥塞等级。
在可选实施例中,所述数据队列可分别物理数据队列和/或虚拟数据队列。其中,所述物理数据队列是指物理上用于缓存所述待传输的数据帧的队列,每个所述待传输的数据帧各自有对应的物理缓存地址。所述虚拟数据队列是指逻辑上用于缓存所述待传输的数据帧的队列,每个所述待传输的数据帧各自有对应的索引,该索引用于标识所述虚拟数据队列中的所述数据帧。
具体的,所述终端设备可根据所述数据队列的队列长度以及信源编码速率(这里即是所述数据流的编码速率)计算获得所述物理数据队列的拥塞等级。相应地,所述终端设备可根据所述数据帧的拥塞因子、所述数据队列的队列长度以及信源编码速率计算获得所述虚拟数据队列的拥塞等级。示例性地,如下公式(1)分别给出所述物理数据队列的拥塞等级以及所述虚拟数据队列的拥塞等级的计算公式。
其中,GP为物理数据队列的拥塞等级,Gv为虚拟数据队列的拥塞等级,L0为数据队列的队列长度,k为拥塞因子,Vcode为数据流的编码速率,Tdelaythreshold为预存的时延阈值。Tdelaythreshold为用户侧或终端设备侧预先存储的数值,其用于表征所述数据帧的传输时延每增加所述时延阈值,则对应的拥塞等级增加一级。以Tdelaythreshold=100ms为例,表示所述终端设备将所述数据帧发至其他设备过程中,如果所述数据帧的传输时延每增加100ms,则拥塞等级增加一级。
在可选实施例中,每个数据帧的拥塞因子以及数据帧的长度可以相同,也可不同。当每个数据帧的拥塞因子以及数据帧的长度均不同时,则上述公式(1)中的L0=L1+L2+......+Ln;相应地,公式(1)中的L0×k也可对应替换为L1×k1+L2×k2+......+Ln×kn,其中n为正整数,且Li为第i个数据帧的长度,ki为第i个数据帧对应的拥塞因子。
步骤S106中,终端设备中的拥塞检测模块可根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制,以缓解数据拥塞,实现数据传输的实时性。
在一种具体实施方式中,当所述拥塞指示信息指示所述数据队列中的数据帧发生数据拥塞(如所述数据队列的队列长度或拥塞等级处于第一拥塞区间)时,所述拥塞检测模块可进行如下拥塞缓解操作中的任一项或多项的组合,本申请不做限定。具体例如,所述拥塞检测模块可通知所述网络协议栈丢弃所述数据队列中的目标帧,该目标帧是指所述数据队列中拥塞因子反映重要程度较低(重要程度低于第一阈值)的所述待传输的数据帧。即通过丢帧(丢包)方式来减缓数据拥塞。
可选地,所述拥塞检测模块还可控制所述数据流输入至所述编码器进行编码的输入速率,以减少编码所述数据流的数据量,从而减少所述数据队列的队列长度,达到缓解数据拥塞的目的。
可选地,所述拥塞检测模块还可通知所述网络协议栈增加所述数据队列中所述数据帧的传输速率,以加快所述数据帧的处理速率,减小所述数据队列的队列长度,避免拥塞。
可选地,当所述拥塞检测模块检测到所述数据队列发生严重拥塞(如所述数据队列的队列长度或拥塞等级处于第二拥塞区间)时,所述拥塞检测模块可向编码器发生参数调节指令,重新设置所述编码器中的编码参数,以降低编码器对所述数据流的编码速率(即降低信源编码速率)。
所述第一拥塞区间和所述第二拥塞区间不同,所述第一拥塞区间的上限阈值小于或等于所述第二拥塞区间的下限阈值,本申请并不做限定。
也即是,所述终端设备根据所述数据队列的拥塞指示信息,进行如下操作处理中的至少一项,以实现对所述待传输的数据帧进行传输控制:调整所述数据流的输入速率、调整所述数据流的编码速率、调整所述待传输的数据帧的传输速率以及决定是否丢弃目标帧。
相应地,当所述拥塞检测模块检测到所述数据队列当前已不拥塞时,可恢复或增加所述数据流的编码速率、所述数据流的输入速率等等,以快速完成数据传输。
下面以所述数据队列的拥塞指示信息为物理数据队列的拥塞等级以及虚拟数据队列的拥塞等级为例,阐述步骤S104的又一种具体实施方式。
具体的,当所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级小于第三阈值时,终端设备中的拥塞检测模块可通过丢包方式来缓解数据拥塞。即通知所述网络协议栈将所述数据队列中重要程度较低的目标帧丢弃。可选地,还可进行如上拥塞缓解操作中的任一项或多项的组合,这里不再赘述。
相应地,当所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级大于或等于第三阈值时,所述终端设备可采用降低信源编码率(即所述数据流的编码速率),来减小所述数据队列的队列长度,缓解数据拥塞。可选地,还可进行如上拥塞缓解操作中的任一项或多项的组合,这里不再赘述。
所述第二阈值和所述第三阈值为用户侧或终端设备侧自定义设置的,可以相同,也可不同,本申请并不做限定。
在可选实施例中,上面仅以所述拥塞指示信息为拥塞等级作为示例,阐述步骤S104的一种具体实施方式;类似的,当所述拥塞指示信息为队列长度时,所述终端设备进行拥塞缓解操作处理也相同,本申请不再详述。
需要说的是,本申请公开的技术方案使用于以下应用场景中的任一项或多项的组合:无线传输、有线传输、ICP/IP协议传输、UDP协议传输、无线UDP传输场景、无线TCP/IP传输场景、或者其他数据传输所使用的场景,本申请并不做限定。
下面以视频通话为例,针对实时视频网络通信要求的时延不超过200ms,则其对应的拥塞门限等级阈值threshold(即上述第二阈值和第三阈值)可为2。相应地,当终端设备采用上述公式(1)计算获知到物理数据队列以及虚拟数据队列各自的拥塞等级。进一步地,当物理数据队列的拥塞等级大于或等于threshold(2),且虚拟数据队列的拥塞等级小于threshold时,即可确定所述数据队列发生轻度拥塞,此时所述终端设备可不调整信源编码速率,采用主动丢帧的方式来缓解数据拥塞,例如主动丢失拥塞因子为0的数据帧,使得物理数据队列的拥塞等级小于threshold,从而缓解数据拥塞。
进一步地,当物理数据队列的拥塞等级大于或等于threshold(2),且虚拟数据队列的拥塞等级大于或等于threshold时,即可确定所述数据队列发生严重拥塞,此时所述终端设备可通过调整信源编码速率(具体为降低所述数据流的编码速率)来降低输入至所述数据队列中数据帧的数据量,使得虚拟数据队列的拥塞等级小于threshold,从而缓解数据拥塞。
为帮助用户更好地理解本发明实施例,下面以无线视频通话为例进行阐述。如图6A,终端设备A和终端设备B均以900kbps(千比特速率每秒)的编码和传输速率建立相互之间的无线视频通话。随着终端设备A的移动,A的传输信道的带宽或质量比较大。相应地终端设备A可采用本申请提出的方案对数据传输进行实时或周期性地监测,以缓解数据拥塞。具体分为如图6B-图6D三个场景进行详细阐述。其中,区域1表示强信号区,即小区测量参数处于强信号区间;区域2表示过渡区,即小区测量参数处于强信号至弱信号中间的过渡区间;区域3表示弱信号区,即小区测量参数处于弱信号区间。
以小区测量参数为RSSI为例,当RSSI处于第一区间(如大于-80DB,且小于-70DB)时,则认为终端设备A移动到强弱信号之间的过渡区(即交界区)。相应地,当RSSI处于第二区间(如大于-70DB),则认为该终端设备A处于强信号区。当RSSI处于第三区间(如小于-80DB),则认为该终端设备A处于弱信号区。
如图6B,终端设备A从强信号区1移动至过渡区2,该过程中信道质量波动较大。在终端设备A与终端设备B间进行视频通话时,终端设备A利用摄像头每采集一帧视频数据时,利用拥塞检测模块获取一次socket缓冲区的数据堆积量(即网络协议栈中缓存有数据帧的数据队列的队列长度),利用上述公式(1)分别计算出该缓冲区中物理数据队列的拥塞等级以及虚拟数据队列的拥塞等级。此时所述物理数据队列的拥塞等级大于或等于threshold,且所述虚拟数据队列的拥塞等级小于threshold,则对应可采用丢帧方式来减缓数据拥塞(具体的可丢弃所述数据队列中重要程度较低的数据帧,如非参考帧等),降低视频传输时延。此时还可保持信源编码速率900kbps不变,以保证网络质量波动对用户视频体验不造成影响。
如图6C,终端设备A移动至弱信号区3,终端设备A利用摄像头每采集一帧视频数据时,利用拥塞检测模块获取一次socket缓冲区的数据堆积量(即网络协议栈中缓存有数据帧的数据队列的队列长度),利用上述公式(1)分别计算出该缓冲区中物理数据队列的拥塞等级以及虚拟数据队列的拥塞等级。此时所述物理数据队列的拥塞等级大于或等于threshold,且所述虚拟数据队列的拥塞等级大于或等于threshold,则对应可采用丢帧方式来减缓数据拥塞(具体的可丢弃所述数据队列中重要程度较低的数据帧,如非参考帧等),以降低视频传输时延。同时,还可降低信源编码速率(即降低视频编码速率),如从900kbps降低至658kbps,来缓解数据拥塞,实现视频数据的实时传输。
如图6D,终端设备A移动回强信号区1,则信道质量以及信道带宽回升。相应地,终端设备A可提高信源编码速率(即提高视频编码速率),如提高至725kbps等,以实现数据的快速传输。
通过实施本发明实施例,能够对传输层缓冲区中的数据队列进行拥塞检测,及时发现数据传输是否发生拥塞,并结合队列管理机制以及信源编码速率调节,降低数据拥塞时数据传输的时延、重要数据帧的丢包率以及通过信源编码速率的调节减少再次发生数据拥塞的概率,提升了数据传输的实时性、业务流畅度。
上述主要从终端设备的角度出发对本发明实施例提供的方案进行了介绍。可以理解的是,网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。结合本发明中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的技术方案的范围。
本发明实施例可以根据上述方法示例对网络设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本发明实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图7A示出了上述实施例中所涉及的终端设备的一种可能的结构示意图。终端设备700包括:处理单元702和通信单元703。处理单元702用于对网络设备700的动作进行控制管理,例如,处理单元702用于支持终端设备700执行图4中步骤S102、步骤S104以及步骤S106,和/或用于执行本文所描述的技术的其它步骤。通信单元703用于支持终端设备700与其它设备的通信,例如,通信单元703用于支持终端设备700与其他终端设备进行业务通信,和/或用于执行本文所描述的技术的其它步骤。终端设备700还可以包括存储单元701,用于存储终端设备700的程序代码和数据。
其中,处理单元702可以是处理器或控制器,例如可以是中央处理器(英文:Central Processing Unit,CPU),通用处理器,数字信号处理器(英文:Digital SignalProcessor,DSP),专用集成电路(英文:Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(英文:Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信单元703可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如终端设备与其他设备之间的接口。存储单元701可以是存储器。
当处理单元702为处理器,通信单元703为通信接口,存储单元701为存储器时,本发明实施例所涉及的终端设备可以为图7B所示的终端设备。
参阅图7B所示,该终端设备710包括:处理器712、通信接口713、存储器77。可选地,终端设备710还可以包括总线714。其中,通信接口713、处理器712以及存储器77可以通过总线714相互连接;总线714可以是外设部件互连标准(英文:Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(英文:Extended Industry StandardArchitecture,简称EISA)总线等。所述总线714可以分为地址总线、数据总线、控制总线等。为便于表示,图7B中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
上述图7A或图7B所示的终端设备的具体实现还可以对应参照图1至图6D所示实施例的相应描述,此处不再赘述。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(英文:Random Access Memory,RAM)、闪存、只读存储器(英文:Read Only Memory,ROM)、可擦除可编程只读存储器(英文:ErasableProgrammable ROM,EPROM)、电可擦可编程只读存储器(英文:Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于终端设备中。当然,处理器和存储介质也可以作为分立组件存在于终端设备中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (16)
1.一种数据传输方法,其特征在于,所述方法包括:
终端设备将待传输的数据流进行编码和封装,从而获得待传输的数据帧;
所述终端设备确定传输层中数据队列的拥塞指示信息,所述数据队列用于排列并缓存所述待传输的数据帧,所述拥塞指示信息至少用于指示所述数据队列是否发生数据拥塞;
所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制。
2.根据权利要求1所述的方法,其特征在于,所述拥塞指示信息包括以下中的至少一项:队列长度以及拥塞等级,所述拥塞等级用于反映所述数据队列发生数据拥塞时的拥塞程度。
3.根据权利要求1或2所述的方法,其特征在于,所述拥塞指示信息包括拥塞因子,所述拥塞因子是根据所述待传输的数据帧的类型确定的,且所述拥塞因子用于反映所述待传输的数据帧的重要程度。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述数据队列包括物理数据队列和/或虚拟数据队列,其中,
所述物理数据队列的拥塞等级是根据所述数据队列的队列长度以及所述数据流的编码速率确定的;
所述虚拟数据队列的拥塞等级是根据所述数据队列的队列长度、所述数据流的编码速率以及所述拥塞因子确定的。
5.根据权利要求4所述的方法,其特征在于,
其中,GP为物理数据队列的拥塞等级,Gv为虚拟数据队列的拥塞等级,L0为数据队列的队列长度,k为拥塞因子,Vcode为数据流的编码速率,Tdelaythreshold为预存的时延阈值,该时延阈值用于表征所述数据帧的传输时延每增加所述时延阈值,则拥塞等级增加一级。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述拥塞指示信息至少包括拥塞因子,所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制包括:
所述终端设备根据所述数据队列的拥塞指示信息,进行如下操作处理中的至少一项,以实现对所述待传输的数据帧进行传输控制:调整所述数据流的输入速率、调整所述数据流的编码速率、调整所述待传输的数据帧的传输速率以及决定是否丢弃目标帧,其中,所述目标帧为所述数据队列中所述拥塞因子用于反映重要程度低于第一阈值所对应的所述待传输的数据帧。
7.根据权利要求6所述的方法,其特征在于,所述数据队列包括物理数据队列以及虚拟数据队列,所述拥塞指示信息包括拥塞因子以及拥塞等级,所述终端设备根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制包括:
在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级小于第三阈值时,所述终端设备丢弃所述物理数据队列中的所述目标帧;
在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级大于或等于第三阈值时,所述终端设备降低所述数据流的编码速率,以减小所述数据队列的队列长度。
8.一种终端设备,其特征在于,所述终端设备包括处理单元,其中,
所述处理单元用于将待传输的数据流进行编码和封装,从而获得待传输的数据帧;
所述处理单元还用于确定传输层中数据队列的拥塞指示信息,所述数据队列用于排列并缓存所述待传输的数据帧,所述拥塞指示信息至少用于指示所述数据队列是否发生数据拥塞;
所述处理单元还用于根据所述数据队列的拥塞指示信息,对所述待传输的数据帧进行传输控制。
9.根据权利要求8所述的终端设备,其特征在于,所述拥塞指示信息包括以下中的至少一项:队列长度以及拥塞等级,所述拥塞等级用于反映所述数据队列发生数据拥塞时的拥塞程度。
10.根据权利要求8或9所述的终端设备,其特征在于,所述拥塞指示信息包括拥塞因子,所述拥塞因子是根据所述待传输的数据帧的类型确定的,且所述拥塞因子用于反映所述待传输的数据帧的重要程度。
11.根据权利要求8-10中任一项所述的终端设备,其特征在于,所述数据队列包括物理数据队列和/或虚拟数据队列,其中,
所述物理数据队列的拥塞等级是根据所述数据队列的队列长度以及所述数据流的编码速率确定的;
所述虚拟数据队列的拥塞等级是根据所述数据队列的队列长度、所述数据流的编码速率以及所述拥塞因子确定的。
12.根据权利要求11所述的终端设备,其特征在于,
其中,GP为物理数据队列的拥塞等级,Gv为虚拟数据队列的拥塞等级,L0为数据队列的队列长度,k为拥塞因子,Vcode为数据流的编码速率,Tdelaythreshold为预存的时延阈值,该时延阈值用于表征所述数据帧的传输时延每增加所述时延阈值,则拥塞等级增加一级。
13.根据权利要求8-12中任一项所述的终端设备,其特征在于,所述拥塞指示信息至少包括拥塞因子,
所述处理单元用于根据所述数据队列的拥塞指示信息,进行如下操作处理中的至少一项,以实现对所述待传输的数据帧进行传输控制:调整所述数据流的输入速率、调整所述数据流的编码速率、调整所述待传输的数据帧的传输速率以及决定是否丢弃目标帧,其中,所述目标帧为所述数据队列中所述拥塞因子用于反映重要程度低于第一阈值所对应的所述待传输的数据帧。
14.根据权利要求13所述的终端设备,其特征在于,所述数据队列包括物理数据队列以及虚拟数据队列,所述拥塞指示信息包括拥塞因子以及拥塞等级,
所述处理单元用于在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级小于第三阈值时,丢弃所述物理数据队列中的所述目标帧;
所述处理单元还用于在所述物理数据队列的拥塞等级大于或等于第二阈值,且所述虚拟数据队列的拥塞等级大于或等于第三阈值时,降低所述数据流的编码速率,以减小所述数据队列的队列长度。
15.一种终端设备,其特征在于,包括存储器、通信接口及与所述存储器和通信接口耦合的处理器;所述存储器用于存储指令,所述处理器用于执行所述指令,所述通信接口用于在所述处理器的控制下与其他设备进行通信;其中,所述处理器执行所述指令时执行如上权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711179676.1A CN109818874B (zh) | 2017-11-21 | 2017-11-21 | 数据传输方法、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711179676.1A CN109818874B (zh) | 2017-11-21 | 2017-11-21 | 数据传输方法、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109818874A true CN109818874A (zh) | 2019-05-28 |
CN109818874B CN109818874B (zh) | 2022-06-28 |
Family
ID=66601429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711179676.1A Active CN109818874B (zh) | 2017-11-21 | 2017-11-21 | 数据传输方法、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109818874B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111447263A (zh) * | 2020-03-24 | 2020-07-24 | 中国建设银行股份有限公司 | 一种消息通信系统 |
CN112399215A (zh) * | 2020-10-26 | 2021-02-23 | 努比亚技术有限公司 | 一种投屏参数调控方法、设备及计算机可读存储介质 |
CN112737971A (zh) * | 2019-10-28 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及网络设备 |
CN112866745A (zh) * | 2020-12-31 | 2021-05-28 | 广州穗能通能源科技有限责任公司 | 流媒体视频数据处理方法、装置、计算机设备和存储介质 |
CN112995542A (zh) * | 2021-05-11 | 2021-06-18 | 苏州华兴源创科技股份有限公司 | 数据传输方法、装置、电子设备及计算机可读存储介质 |
CN114245131A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种基于缓冲队列动态调整视频码率的优化算法 |
CN114765593A (zh) * | 2020-12-30 | 2022-07-19 | 华为技术有限公司 | 数据传输方法、通信设备及系统 |
CN115190080A (zh) * | 2021-04-02 | 2022-10-14 | 维沃移动通信有限公司 | 拥塞控制方法、装置及通信设备 |
WO2023010254A1 (zh) * | 2021-08-02 | 2023-02-09 | Oppo广东移动通信有限公司 | 数据传输方法、装置、设备及存储介质 |
CN116233024A (zh) * | 2022-12-22 | 2023-06-06 | 中国联合网络通信集团有限公司 | 数据包确定方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101232455A (zh) * | 2008-02-04 | 2008-07-30 | 中兴通讯股份有限公司 | 一种拥塞控制方法及装置 |
CN101796777A (zh) * | 2007-07-06 | 2010-08-04 | Lm爱立信电话有限公司 | 传输节点中的拥塞控制 |
CN101990271A (zh) * | 2009-08-05 | 2011-03-23 | 北京大学 | 一种基站与终端间的通信方法及一种无线通信基站、系统 |
CN102104538A (zh) * | 2010-12-08 | 2011-06-22 | 浙江工业大学 | 一种映射参数动态自适应的无线流媒体传输控制方法 |
CN103986548A (zh) * | 2013-02-07 | 2014-08-13 | 华为技术有限公司 | 一种确定丢包原因的方法和终端 |
US20150055478A1 (en) * | 2013-08-23 | 2015-02-26 | Broadcom Corporation | Congestion detection and management at congestion-tree roots |
-
2017
- 2017-11-21 CN CN201711179676.1A patent/CN109818874B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101796777A (zh) * | 2007-07-06 | 2010-08-04 | Lm爱立信电话有限公司 | 传输节点中的拥塞控制 |
CN101232455A (zh) * | 2008-02-04 | 2008-07-30 | 中兴通讯股份有限公司 | 一种拥塞控制方法及装置 |
CN101990271A (zh) * | 2009-08-05 | 2011-03-23 | 北京大学 | 一种基站与终端间的通信方法及一种无线通信基站、系统 |
CN102104538A (zh) * | 2010-12-08 | 2011-06-22 | 浙江工业大学 | 一种映射参数动态自适应的无线流媒体传输控制方法 |
CN103986548A (zh) * | 2013-02-07 | 2014-08-13 | 华为技术有限公司 | 一种确定丢包原因的方法和终端 |
US20150055478A1 (en) * | 2013-08-23 | 2015-02-26 | Broadcom Corporation | Congestion detection and management at congestion-tree roots |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112737971A (zh) * | 2019-10-28 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及网络设备 |
CN112737971B (zh) * | 2019-10-28 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、存储介质及网络设备 |
CN111447263A (zh) * | 2020-03-24 | 2020-07-24 | 中国建设银行股份有限公司 | 一种消息通信系统 |
CN112399215A (zh) * | 2020-10-26 | 2021-02-23 | 努比亚技术有限公司 | 一种投屏参数调控方法、设备及计算机可读存储介质 |
CN114765593A (zh) * | 2020-12-30 | 2022-07-19 | 华为技术有限公司 | 数据传输方法、通信设备及系统 |
CN112866745A (zh) * | 2020-12-31 | 2021-05-28 | 广州穗能通能源科技有限责任公司 | 流媒体视频数据处理方法、装置、计算机设备和存储介质 |
CN115190080A (zh) * | 2021-04-02 | 2022-10-14 | 维沃移动通信有限公司 | 拥塞控制方法、装置及通信设备 |
CN112995542A (zh) * | 2021-05-11 | 2021-06-18 | 苏州华兴源创科技股份有限公司 | 数据传输方法、装置、电子设备及计算机可读存储介质 |
WO2023010254A1 (zh) * | 2021-08-02 | 2023-02-09 | Oppo广东移动通信有限公司 | 数据传输方法、装置、设备及存储介质 |
CN114245131A (zh) * | 2021-12-18 | 2022-03-25 | 杭州视洞科技有限公司 | 一种基于缓冲队列动态调整视频码率的优化算法 |
CN116233024A (zh) * | 2022-12-22 | 2023-06-06 | 中国联合网络通信集团有限公司 | 数据包确定方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109818874B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109818874A (zh) | 数据传输方法、设备及计算机存储介质 | |
CN100446466C (zh) | 用于流式数据的反应性带宽控制 | |
CN104702968B (zh) | 一种视频帧丢帧方法及视频发送装置 | |
CN112492118B (zh) | 数据传输控制方法、信息发送端、接收端及飞行器图传系统 | |
US9398488B2 (en) | Video service buffer management in a mobile rate control enabled network | |
CN102325274B (zh) | 一种自适应网络带宽的视频流传输控制方法 | |
CN103118241B (zh) | 基于3g网络的移动视频监控流媒体传输自适应调整方法 | |
US20180176325A1 (en) | Data pre-fetching in mobile networks | |
CN110622506A (zh) | 发送虚拟现实(vr)内容的方法和系统 | |
CN103916367A (zh) | 一种传输多媒体数据的方法及装置 | |
CN113037697B (zh) | 一种视频帧处理方法、装置和电子设备及可读存储介质 | |
CN106331717A (zh) | 视频码率自适应调整方法及发送端设备 | |
CN104009819A (zh) | 基于分层编码的抗丢包实时通信方法、系统及相关设备 | |
CN112995048B (zh) | 数据中心网络的阻塞控制与调度融合方法及终端设备 | |
CN105659541A (zh) | 无线接入网络中主动式拥塞检测的系统和方法 | |
CN107333143B (zh) | 5g多接入并发传输控制系统及方法 | |
WO2023015807A1 (zh) | 数字视网膜数据传输方法、装置、电子设备及存储介质 | |
US11871265B2 (en) | Method and an electronic device for dynamically controlling TCP congestion window | |
CN103763216A (zh) | 一种数据传输的调整系统及方法 | |
CN108401128A (zh) | 一种视频通话中的拥塞控制方法 | |
CN106488176A (zh) | 一种视频传输装置 | |
Ngo et al. | Optimality of threshold policies for transmission scheduling in correlated fading channels | |
WO2023155747A1 (zh) | 数据编码码率自适应调节方法、装置、设备和存储介质 | |
CN109525858A (zh) | 视频编码电路以及无线视频传输装置与方法 | |
CN104580006B (zh) | 一种移动网络发送速率控制方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |