CN114205867A - 一种数据包传输方法、装置、终端设备和存储介质 - Google Patents
一种数据包传输方法、装置、终端设备和存储介质 Download PDFInfo
- Publication number
- CN114205867A CN114205867A CN202111339805.5A CN202111339805A CN114205867A CN 114205867 A CN114205867 A CN 114205867A CN 202111339805 A CN202111339805 A CN 202111339805A CN 114205867 A CN114205867 A CN 114205867A
- Authority
- CN
- China
- Prior art keywords
- data packet
- sending
- moment
- byte number
- time
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0231—Traffic management, e.g. flow control or congestion control based on communication conditions
- H04W28/0236—Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/10—Flow control between communication endpoints
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/16—Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
- H04W28/18—Negotiating wireless communication parameters
- H04W28/22—Negotiating communication rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明实施例提供了一种数据包传输方法、装置、终端设备和存储介质,所述方法包括:发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种数据包传输方法、装置、终端设备和存储介质。
背景技术
在网间连续媒体数据传输过程中,需要通过网络链路进行传输,例如采用互联网、3G、4G、5G等进行数据传输,由于网络信号会产生波动,会出现链路拥塞堵塞的问题,对于该问题,现有技术采用自时钟码率平滑模型来解决链路拥塞堵塞的问题,即每个预设时间间隔发送数据包,这样可以做到部分平滑,但是没有考虑到可用带宽,数据传输效率不高;基于此,在自适应时钟码率平滑模型的基础上,增加了往返时间来检测网络链路的拥堵情况,但是通过往返时间来发送数据包,又会出现时间滞后的问题,由于网络链路的不确定性,也会出现数据链路拥塞或空置的问题。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据包传输方法、装置、终端设备和存储介质。
第一个方面,本发明实施例提供一种数据包传输方法,所述方法包括:
获取第一时刻对应的目标码率;
根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略;
根据所述发送策略,在所述第二时刻将待发送数据包发送至接收端设备。
可选地,所述获取第一时刻对应的目标码率,包括:
接收所述接收端设备在第一时刻发送的目标码率,所述目标码率由所述接收端设备根据第一时刻获取的往返时间确定。
可选地,所述根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻需发送的预测字节数,包括:
在上一个发送周期发送数据包没有结余字节数的情况下,根据所述第一时刻和所述发送数据包的第二时刻,计算时间差;
根据所述时间差和所述目标码率,确定第二时刻的预测字节数。
可选地,所述根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻需发送的预测字节数,包括:
在上一个发送周期发送数据包有结余字节数的情况下,则根据上一个发送周期内的结余字节数和当前周期内的目标字节数,确定第二时刻的预测字节数,其中,所述当前周期内的目标字节数是根据所述第一时刻和所述第二时刻的时间差以及所述目标码率的乘积计算得到的。
可选地,所述根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略,包括:
比较预测字节数和所述链路数据阈值的大小;
根据比较结果,确定所述第二时刻发送数据包的发送策略,其中,所述发送策略至少包括发送与所述链路数据阈值相同字节数的数据包、发送预设字节数的数据包或不发送数据包中的一种。
可选地,所述根据比较结果,确定所述第二时刻发送数据包的发送策略,包括:
若所述预测字节数大于等于所述链路数据阈值,则确定在第二时刻发送与所述链路数据阈值相同字节数的数据包。
可选地,所述根据比较结果,确定所述第二时刻发送数据包的发送策略,包括:
若所述预测字节数小于所述链路数据阈值,则在第二时刻不发送数据包;
或
若所述预测字节数小于所述链路数据阈值,则在第二时刻发送与所述预测字节数相同的数据包。
第二个方面,本发明实施例提供一种数据包传输装置,所述装置包括:
接收模块,用于获取第一时刻对应的目标码率;
计算模块,用于根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
确定模块,用于根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略;
发送模块,用于根据所述发送策略,在所述第二时刻将待发送数据包发送至接收端设备。
可选地,所述获取模块用于:
接收所述接收端设备在第一时刻发送的目标码率,所述目标码率由所述接收端设备根据第一时刻获取的往返时间确定。
可选地,所述计算模块用于:
在上一个发送周期发送数据包没有结余字节数的情况下,根据所述第一时刻和所述发送数据包的第二时刻,计算时间差;
根据所述时间差和所述目标码率,确定第二时刻的预测字节数。
可选地,所述计算模块用于:在上一个发送周期发送数据包有结余字节数的情况下,则根据上一个发送周期内的结余字节数和当前周期内的目标字节数,确定第二时刻的预测字节数,其中,所述当前周期内的目标字节数是根据所述第一时刻和所述第二时刻的时间差以及所述目标码率的乘积计算得到的。
可选地,所述确定模块用于:
比较预测字节数和所述链路数据阈值的大小;
根据比较结果,确定所述第二时刻发送数据包的发送策略,其中,所述发送策略至少包括发送与所述链路数据阈值相同字节数的数据包、发送预设字节数的数据包或不发送数据包中的一种。
可选地,所述确定模块具体用于:
若所述预测字节数大于等于所述链路数据阈值,则确定在第二时刻发送与所述链路数据阈值相同字节数的数据包。
可选地,所述确定模块具体用于:
若所述预测字节数小于所述链路数据阈值,则在第二时刻不发送数据包;
或
若所述预测字节数小于所述链路数据阈值,则在第二时刻发送与所述预测字节数相同的数据包。
第三个方面,本发明实施例提供一种终端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的数据包传输方法。
第四个方面,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的数据包传输方法。
本发明实施例包括以下优点:
本发明实施例提供的数据包传输方法、装置、终端设备和存储介质,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
附图说明
图1是本发明实施例提供的一种数据包传输方法的步骤流程图;
图2是本发明实施例提供的另一种数据包传输方法的步骤流程图;
图3是本发明实施例的数据包传输示意图;
图4是本发明实施例提供的一种数据包传输装置的结构框图;
图5是本发明的一种终端设备的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明一实施例提供一种数据包传输方法,本实施例的执行主体为数据包传输装置,设置在终端设备上,其中,终端设备可以为计算机,平板电脑和手机终端等。
参照图1,示出了本发明的一种数据包传输方法实施例的步骤流程图,该方法具体可以包括如下步骤:
S101、获取第一时刻对应的目标码率;
具体地,在发送端设备和接收端设备进行数据传输的过程中,可用带宽是一个限制发送量的制约因素,饱和式发送很容易导致链路拥塞阻塞,时常出现波峰现象。如果保守发送,会增大待服务数据包的排队时延成本、链路转发节点的空置时间成本,这样代价成本会越来越高。尤其在4G网间传输过程中,网络信号波动较大,可用带宽一直处于一个波动状态中,窗口范围较大,波谷值相对于有线网络会更低。
对于该问题,本发明实时提供一种数据包传输方法,该数据包传输方法可以实现平滑地传输数据,具体地,若接收端设备的网络状态有波动,则接收端设备获取发送数据包的往返时间,并根据该往返时间计算出目标码率,该目标码率用于表征之前一段时间接收端设备接收数据包的情况,也用于发送端设备根据目标码率来调整后续发送数据包,接收端设备将该目标码率和第一时刻发送至发送端设备,发送端设备根据该目标码率发送数据包,其中,第一时刻是接收端设备向发送端设备发送目标码率的时刻。
在发送端设备的发送周期内,发送端设备可以接收到任意个目标码率,其中包括在一个发送周期内,没有接收到目标码率,则以上一个目标码率进行发送。
其中,该发送端设备和接收端设备可以是多网卡聚合终端,该多网卡聚合终端是可采用多个网卡链路同时传输数据的终端产品,发送端设备和接收端设备可以是不同运营商的设备,这样也会构成不同带宽的传输链路。
S102、根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
具体的,发送端设备在接收到目标码率之后,在该目标码率所在的发送周期内,在该发送周期的第二时刻需要向接收端设备发送数据包,这时,发送端设备根据接收目标码率的第一时刻和发出数据包的第二时刻计算时间差,并根据该时间差和目标码率计算出在第二时刻可以发送的预测字节数。
S103、根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;
进一步地,在数据包的传输过程中,传输的都是一个个封装好的RTP(Real-timeTransport Protocol,实时传输协议)包,一般RTP包大小固定。因此,本发明实施例中的链路数据阈值就是RTP包的字节数。由于MTU中包含IP头和UDP头,RTP包是指定小于一个MTU大小(Maximum Transmission Unit,最大传输单元MTU)因此,在发送RTP包的时候要么发送,要么不发送。
在本发明实施例中,发送端设备将计算得到的预测字节数和链路数据阈值进行比较,确定在当前发送周期的第二时刻发送数据包的发送策略,其中,该发送策略包括发送或者不发送,要是发送,怎么进行发送,其中,链路数据阈值为在每一个发送时刻最大发送数据包的字节数,由于发送端设备和接收端设备可以是不同运营商,因此,该链路数据阈值可以根据不同需求设置不同的数值。
S104、根据发送策略,在第二时刻将待发送数据包发送至接收端设备。
具体地,发送端设备在确定发送策略后,将待发送的数据包按照该发送策略发送至接收端设备,其中,待发送的数据包可以是发送端设备通过摄像头采集的数据。
本发明实施例提供的数据包传输方法,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本发明又一实施例对上述实施例提供的数据包传输方法做进一步补充说明。
如图2所示,示出了本发明的另一种数据包传输方法实施例的步骤流程图,该数据包传输方法包括:
S201、接收接收端设备在第一时刻发送的目标码率,目标码率由接收端设备根据第一时刻获取的往返时间确定;
其中,目标码率是接收端设备在第一时刻获取的往返时间确定的。
作为另一种可选地实施方式,该目标码率还可以是第三方设备来确定的,也就说是第三方设备监控接收端设备收发数据包的情况来确定目标码率,然后第三方设备将目标码率发送至发送端设备。
S202、在上一个发送周期发送数据包没有结余字节数的情况下,根据第一时刻和发送数据包的第二时刻,计算时间差;
S203、根据时间差和目标码率,确定第二时刻的预测字节数。
具体地,在上一个发送周期内没有剩余的数据包,则发送端设备在接收到目标码率的当前发送周期内,发送端设备根据接收目标码率的第一时刻和发出数据包的第二时刻计算时间差,并根据该时间差和目标码率计算出在第二时刻可以发送的预测字节数。
S204、在上一个发送周期发送数据包有结余字节数的情况下,则根据上一个发送周期内的结余字节数和当前周期内的目标字节数,确定第二时刻的预测字节数,其中,当前周期内的目标字节数是根据第一时刻和第二时刻的时间差以及目标码率的乘积计算得到的。
具体地,发送端设备在上一个发送周期有数据包的结余字节数未发送,则需要在当前发送周期内进行发送,也就是说在当前发送周期的第二时刻,需要发送的包括上一个发送周期内的数据包的结余字节数和当前周期内的目标字节数,一起构成了预测字节数,这样,通过对上个发送周期的数据包的补充,减少了发送数据包的累计误差。
S205、比较预测字节数和链路数据阈值的大小;
S206、根据比较结果,确定第二时刻发送数据包的发送策略,其中,发送策略至少包括发送与链路数据阈值相同字节数的数据包、发送预设字节数的数据包或不发送数据包中的一种。
具体地,发送端设备在得到预测数据包后,根据预测数据包和链路数据阈值,来确定发送策略。
作为一种可选地实施方式,若预测字节数大于等于链路数据阈值,则确定在第二时刻发送与链路数据阈值相同字节数的数据包,这样就会产生结余量的数据包,然后根据该结余量对结余量数据包进行更新。
示例性地,若链路数据阈值为100M,则预测字节数为180M,则说明在当前发送周期的第二时刻只能发送与链路数据阈值相同的数据包,即发送100M的字节数的数据包,剩余180-100=80M的结余量。
并根据80M的结余量对上一个周期的结余量数据包进行更新。
作为另一种可选的实施方式,若预测字节数等于链路数据阈值,则将预测字节数确定为在第二时刻发送的目标字节数。
示例性地,若链路数据阈值为100M,则预测字节数也为100M,则说明在当前发送周期的第二时刻发送与链路数据阈值相同的数据包,即发送100M的字节数的数据包,即就是说一次性将所有字节数的数据包都发送完成。
作为另一种可选地实施方式,若预测字节数小于链路数据阈值,则在第二时刻不发送数据包。
示例性地,若链路数据阈值为100M,则预测字节数为70M,则在当前发送周期的第二时刻不发送数据包,并将该70M字节数的数据包在下一个发送周期的发出时刻进行发送,减少数据包发送过程中的累计误差。
作为再一种可选地实施方式,若预测字节数小于链路数据阈值,则在第二时刻发送与预测字节数相同的数据包。
例性地,若链路数据阈值为100M,则预测字节数为70M,则在当前发送周期的第二时刻直接将该70M字节数的数据包进行发送,减少数据包发送过程中的累计误差。
S207、根据发送策略,在第二时刻将待发送数据包发送至接收端设备。
具体地,发送端设备在确定发送策略后,将待发送的数据包按照该发送策略发送至接收端设备,其中,待发送的数据包可以是发送端设备通过摄像头采集的数据。
接收端设备在检测到网络有波动的情况下,根据某一时刻(第一时刻)的往返时间RTT计算目标码率,并将第一时刻和目标码率发送至发送端设备,在本次发送周期时间间隔T(index)内按A(index)码率发送,在下一个发送周期T(index+1)中可能收到T(index+1)和计算对应目标码率A(index+1),在Δt=T(index+1)-T(index)间隔内有数据补差,应在当前发送周期内的发送时间节点T(index+2)把这个数据补差弥补上,防止累计误差,每一个发送周期T都进行校准。
在Δt=T(index+1)-T(index)时间间隔内计算数据差值,具体包括:根据时间间隔Δt和当前目标码率A来计算当前发送周期的发送数据包的第二时刻理应发送的字节数B;
示例性地,如当前目标码率A是100 000bps,Δt是20ms,则当前发送周期的发送数据包的第二时刻理应发送的字节数B是100bits per ms*20ms=2000bits=250bytes。
但在实际中所需发送的数据包是一个个封装好的RTP包,一般RTP包大小固定。RTP包是指定小于一个MTU(Maximum Transmission Unit,最大传输单元)。因此由于MTU还包括IP头和UDP头,不可能在一次中实际发送B字节。要么发送一个RTP包,要么不发送。但在一个发送周期中,有时接收端设备会收到一个或多个目标码率,即能够更新当前的目标码率A,此时在一个发送周期间隔中,无法对发送数据量进行修改,只能把因前后目标码率A不同造成的误差,在后一个发送周期中弥补,以减少累计误差。
具体包括:
1、发送端设备线程周期性地向接收端设备发送采集的数据包,其中,数据包是通过发送端设备上的摄像头采集的数据;
示例性地,每个10ms向接收端设备发送数据包。
2、发送端设备接收接收端设备第一时刻发送的目标码率,记录第一时刻和目标码率。
3、发送端设备根据最近得到的目标码率A(index+i)和时间周期[T(index+i)-T(index+i-1)],得到当前发送周期内需发送的数据包的第二字节数S即理应发送的字节数;
4、发送端设备计算因目标码率发生变化,在当前发送周期内发送的数据包的字节数发生的变化,即计算结余变量b的变化值。在本发明实施例中引用结余变量b来标识在上个发送周期内是否有结余。该结余变量可以是正值也可以是负值,若结余变量为负值,表示上个发送周期实际发送的字节数比理应发送的数据量多,在当前发送周期内应该停止发送;若结余变量其值为正值,表示上个发送周期实际发送的字节数比理应发送的数据量多,还有结余量。
5、发送端设备对理应发送字节数S与结余变量b与当前要发送RTP包大小M进行比较,如S+b大于等于M,则在当前发送周期内,发送端设备发送与M个字节数对应的RTP包;如S+b小于M,则在当前发送周期内不应发送。
6、在S+b大于M的情况下,在发送完与M个字节数对应的数据包后,还有结余量,则需要更新结余变量b,即b=S+b-M;
若在当前发送周期内不发送,则b=b+S,结余变量b用于下个发送周期进行发包比较。
图3是本发明实施例的数据包传输示意图,如图3所示,在T1、T3、T5、T6、T9分别是接收端设备向发送端设备发送目标码率的时刻,T2、T4、T7、T8为发送端设备周期性地向接收端设备发送待发送的数据包的第二时刻;
在一个发送周期内,发送端设备可能没有接收到接收端设备发送的目标码率,也可能接收到一个目标码率,也可能接收到两个及两个以上目标码率。
在T2-T4发送周期内,发送端设备在T3时刻接收到接收端设备发送的目标码率T3a,发送端设备计算T4时刻需发送的预测字节数,具体为根据目标码率、第一时刻T3和发送数据包的第二时刻T4,确定第二时刻需发送的预测字节数;即预测字节数S=(T3-T4)*目标码率+b;
根据预测字节数S和链路数据阈值M,确定第二时刻发送数据包的发送策略;
在上一个发送周期没有结余量的情况即b=0下,若S大于等于M,则发送待发送的数据包,若S小于M,则当前发送周期内不发送数据包;
在上一个发送周期有结余量的情况下即b=0,若S大于等于M,则在T4时刻发送待发送的数据包,并产生S-M的结余量,若S小于M,则当前发送周期内不发送数据包;
在T4-T7发送周期内,发送端设备在T5时刻接收到接收端设备发送的目标码率T5a,在T6时刻接收到接收端设备发送的目标码率T6a,发送端设备计算T7时刻需发送的预测字节数,具体为根据目标码率T5a、目标码率T6a、第一时刻T5、第一时刻T6和发送数据包的第二时刻T7,确定第二时刻T7需发送的预测字节数;
即T5时刻需要发送的字节数为(T5a-T3a)*(T6-T5);
T6时刻需要发送的字节数为(T6a-T3a)*(T7-T6);
即预测字节数S=(T5a-T3a)*(T6-T5)+(T6a-T3a)*(T7-T6)+b;
根据预测字节数S和链路数据阈值M,确定第二时刻发送数据包的发送策略;
在上一个发送周期没有结余量的情况即b=0下,若S大于等于M,则发送待发送的数据包,若S小于M,则当前发送周期内不发送数据包;
在上一个发送周期有结余量的情况下即b=0,若S大于等于M,则在T4时刻发送待发送的数据包,并产生S-M的结余量,若S小于M,则当前发送周期内不发送数据包;
在T7-T8发送周期内,发送端设备没有接收到接收端设备发送的目标码率,则在T8时刻以T6时刻的目标码率发送数据包。
本发明实施例针对采集的数据按一定时间间隔发送,保证间隔均匀平滑,不会因为突然性A帧、B帧、C帧视频帧发送造成波峰拥塞。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本发明实施例提供的数据包传输方法,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本发明另一实施例提供一种数据包传输装置,用于执行上述实施例提供的数据包传输方法。
参照图4,示出了本发明的一种数据包传输装置实施例的结构框图,该装置具体可以包括如下模块:接收模块401、计算模块402、确定模块403和发送模块404,其中:
接收模块401用于获取第一时刻对应的目标码率;
计算模块402用于根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
确定模块403用于根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;
发送模块404用于根据发送策略,在第二时刻将待发送数据包发送至接收端设备。
本发明实施例提供的数据包传输装置,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本发明又一实施例对上述实施例提供的数据包传输装置做进一步补充说明。
可选地,获取模块用于:
接收接收端设备在第一时刻发送的目标码率,目标码率由接收端设备根据第一时刻获取的往返时间确定。
可选地,计算模块用于:
在上一个发送周期发送数据包没有结余字节数的情况下,根据第一时刻和发送数据包的第二时刻,计算时间差;
根据时间差和目标码率,确定第二时刻的预测字节数。
可选地,计算模块用于:
在上一个发送周期发送数据包有结余字节数的情况下,则根据上一个发送周期内的结余字节数和当前周期内的目标字节数,确定第二时刻的预测字节数,其中,当前周期内的目标字节数是根据第一时刻和第二时刻的时间差以及目标码率的乘积计算得到的。
可选地,确定模块用于:
比较预测字节数和链路数据阈值的大小;
根据比较结果,确定第二时刻发送数据包的发送策略,其中,发送策略至少包括发送与链路数据阈值相同字节数的数据包、发送预设字节数的数据包或不发送数据包中的一种。
可选地,确定模块具体用于:
若预测字节数大于等于链路数据阈值,则确定在第二时刻发送与链路数据阈值相同字节数的数据包。
可选地,确定模块具体用于:
若预测字节数小于链路数据阈值,则在第二时刻不发送数据包;
或
若预测字节数小于链路数据阈值,则在第二时刻发送与预测字节数相同的数据包。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例提供的数据包传输装置,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本发明再一实施例提供一种终端设备,用于执行上述实施例提供的数据包传输方法。
图5是本发明的一种终端设备的结构示意图,如图5所示,该终端设备包括:至少一个处理器501和存储器502;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的数据包传输方法。
本实施例提供的终端设备,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本申请又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的数据包传输方法。
根据本实施例的计算机可读存储介质,通过发送端设备获取第一时刻对应的目标码率;根据目标码率、第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;根据预测字节数和链路数据阈值,确定第二时刻发送数据包的发送策略;根据发送策略,在第二时刻将待发送数据包发送至接收端设备,本发明实施例中,发送端设备接收到接收端设备反馈的目标码率,然后根据该目标码率预测下一个发送时刻可以发送数据包的字节数,并根据该字节数和数据链路中最大能发送的字节阈值,确定下一个发送时刻的数据包的发送策略,这样,可以对每个发送时刻的数据包进行调节,从而提高发送数据包的平滑度,避免出现数据链路拥塞或空置的问题。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、电子设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据包处理电子设备的处理器以产生一个机器,使得通过计算机或其他可编程数据包处理电子设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据包处理电子设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据包处理电子设备上,使得在计算机或其他可编程电子设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程电子设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者电子设备中还存在另外的相同要素。
以上对本发明所提供的一种数据包传输方法和一种数据包传输装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种数据包传输方法,其特征在于,所述方法包括:
获取第一时刻对应的目标码率;
根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略;
根据所述发送策略,在所述第二时刻将待发送数据包发送至接收端设备。
2.根据权利要求1所述的数据包传输方法,其特征在于,所述获取第一时刻对应的目标码率,包括:
接收所述接收端设备在第一时刻发送的目标码率,所述目标码率由所述接收端设备根据第一时刻获取的往返时间确定。
3.根据权利要求1所述的数据包传输方法,其特征在于,所述根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻需发送的预测字节数,包括:
在上一个发送周期发送数据包没有结余字节数的情况下,根据所述第一时刻和所述发送数据包的第二时刻,计算时间差;
根据所述时间差和所述目标码率,确定第二时刻的预测字节数。
4.根据权利要求1所述的数据包传输方法,其特征在于,所述根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数,包括:
在上一个发送周期发送数据包有结余字节数的情况下,则根据上一个发送周期内的结余字节数和当前周期内的目标字节数,确定第二时刻的预测字节数,其中,所述当前周期内的目标字节数是根据所述第一时刻和所述第二时刻的时间差以及所述目标码率的乘积计算得到的。
5.根据权利要求1或2所述的数据包传输方法,其特征在于,所述根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略,包括:
比较预测字节数和所述链路数据阈值的大小;
根据比较结果,确定所述第二时刻发送数据包的发送策略,其中,所述发送策略至少包括发送与所述链路数据阈值相同字节数的数据包、发送预设字节数的数据包或不发送数据包中的一种。
6.根据权利要求5所述的数据包传输方法,其特征在于,所述根据比较结果,确定所述第二时刻发送数据包的发送策略,包括:
若所述预测字节数大于等于所述链路数据阈值,则确定在第二时刻发送与所述链路数据阈值相同字节数的数据包。
7.根据权利要求5所述的数据包传输方法,其特征在于,所述根据比较结果,确定所述第二时刻发送数据包的发送策略,包括:
若所述预测字节数小于所述链路数据阈值,则在第二时刻不发送数据包;
或
若所述预测字节数小于所述链路数据阈值,则在第二时刻发送与所述预测字节数相同的数据包。
8.一种数据包传输装置,其特征在于,所述装置包括:
接收模块,用于获取第一时刻对应的目标码率;
计算模块,用于根据所述目标码率、所述第一时刻和发送数据包的第二时刻,确定第二时刻的预测字节数;
确定模块,用于根据所述预测字节数和链路数据阈值,确定所述第二时刻发送数据包的发送策略;
发送模块,用于根据所述发送策略,在所述第二时刻将待发送数据包发送至接收端设备。
9.一种终端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-7任一项所述的数据包传输方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-7中任一项所述的数据包传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111339805.5A CN114205867A (zh) | 2021-11-12 | 2021-11-12 | 一种数据包传输方法、装置、终端设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111339805.5A CN114205867A (zh) | 2021-11-12 | 2021-11-12 | 一种数据包传输方法、装置、终端设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114205867A true CN114205867A (zh) | 2022-03-18 |
Family
ID=80647417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111339805.5A Pending CN114205867A (zh) | 2021-11-12 | 2021-11-12 | 一种数据包传输方法、装置、终端设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114205867A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319158A (zh) * | 2023-05-23 | 2023-06-23 | 南京芯驰半导体科技有限公司 | 基于菊花链网络的节点数据处理方法、装置、设备及介质 |
-
2021
- 2021-11-12 CN CN202111339805.5A patent/CN114205867A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319158A (zh) * | 2023-05-23 | 2023-06-23 | 南京芯驰半导体科技有限公司 | 基于菊花链网络的节点数据处理方法、装置、设备及介质 |
CN116319158B (zh) * | 2023-05-23 | 2023-08-29 | 南京芯驰半导体科技有限公司 | 基于菊花链网络的节点数据处理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102385762B1 (ko) | 속도 최적화된 정체 관리 | |
US8422367B2 (en) | Method of estimating congestion | |
US9191297B2 (en) | Providing feedback to media senders over real time transport protocol (RTP) | |
US20230171301A1 (en) | Monitoring Network Conditions | |
WO2017000719A1 (zh) | 一种基于队列时延的拥塞控制方法及装置 | |
CN106301684B (zh) | 一种媒体数据传输方法及装置 | |
CN106331717B (zh) | 视频码率自适应调整方法及发送端设备 | |
US10327171B2 (en) | Methods and apparatuses for recovering data packet flow control against radio base station buffer run away | |
RU2450468C2 (ru) | Система и способ адаптации к перегрузке сети | |
CN102318312B (zh) | 控制带宽共享 | |
CN102292943A (zh) | 分组通信系统中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法 | |
CN104581422A (zh) | 一种用于处理网络数据传输的方法和装置 | |
CN104618258A (zh) | 一种数据传输速率的控制方法 | |
EP3560152B1 (en) | Determining the bandwidth of a communication link | |
CN110191060A (zh) | 一种调整数据包发送码率的方法、装置、设备及系统 | |
CN110620939B (zh) | 一种网络状态确定方法、装置、电子设备及存储介质 | |
WO2016100890A1 (en) | Smooth bandwidth-delay product variation inside wireless networks | |
CN105450441A (zh) | 一种基于tcp协议的弱网加速方法和装置 | |
CN114205867A (zh) | 一种数据包传输方法、装置、终端设备和存储介质 | |
CN104767591B (zh) | 一种数据发送方法及装置 | |
EP2002609B1 (en) | Method and termination node for bundling multiple messages into a packet | |
CN104579582A (zh) | 一种基于通信网络的高质量语音传输方法 | |
Irawan et al. | Performance evaluation of queue algorithms for video-on-demand application | |
Carlucci et al. | Making Google Congestion Control robust over Wi-Fi networks using packet grouping | |
CN113542215A (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 |