CN111970208B - 网络传输方法、装置、设备及计算机可读存储介质 - Google Patents
网络传输方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111970208B CN111970208B CN202010877826.1A CN202010877826A CN111970208B CN 111970208 B CN111970208 B CN 111970208B CN 202010877826 A CN202010877826 A CN 202010877826A CN 111970208 B CN111970208 B CN 111970208B
- Authority
- CN
- China
- Prior art keywords
- time
- transmission
- data packets
- determining
- received
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 265
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000012790 confirmation Methods 0.000 claims abstract description 34
- 238000004891 communication Methods 0.000 claims abstract description 28
- 230000015654 memory Effects 0.000 claims description 32
- 208000025779 tropical pancreatitis Diseases 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种网络传输方法、装置、设备及计算机可读存储介质,其中,该方法包括:在第一时刻利用预设通信链路发送至少两个数据包;获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息,其中,该第二时刻为接收到该至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数;按照该第一传输参数进行网络传输。通过本申请,一个回合即可到达理想的稳定传输状态,从而能够有效降低网络传输启动阶段的延迟。
Description
技术领域
本申请实施例涉及网络传输技术领域,涉及但不限于一种网络传输方法、装置、设备及计算机可读存储介质。
背景技术
网络传输诸如传输控制协议(TCP,Transmission Control Protocol),都是分组传输回合制发送方案,每回合发送相应数量的数据包,如果没有丢包就增加速度;如果出现丢包就减少速度,每回合调整速度、调整下回合该发送的数据包量,以此达到一种高效利用网络带宽的状态,不会造成数据包丢包无效重传的代价,也不会造成发送速度上不去的情况。无论是经典的TCP,还是近几年的新协议—快速UDP网络连接协议(QUIC,Quick UDPInternet Connection),都有一个慢启动的阶段,它源于一开始不知道最大可用带宽是多少,然后从一个较小的初始速度开始发送,然后确认没有丢包后,发送速度倍增,直至产生丢包或者到达拥塞避免的阈值。
慢启动,以倍增的速度去增加速度,去逼近阈值,其增长率看似并不慢,然而实际上也花费(log2ssthresh)个回合时间,至少也得100ms甚至1s才能进入稳定速度发送状态。然而,这在对时延要求比较高的领域是不能忍受的。
发明内容
本申请实施例提供一种网络传输方法、装置、设备及计算机可读存储介质,通过一个回合即可到达理想的稳定传输状态,能够有效降低网络传输启动阶段的延迟。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种网络传输方法,包括:
在第一时刻利用预设通信链路发送至少两个数据包;
获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息,其中,该第二时刻为接收到该至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;
基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数;
按照该第一传输参数进行网络传输。
本申请实施例提供一种网络传输装置,包括:
第一发送模块,用于在第一时刻利用预设通信链路发送至少两个数据包;
第一获取模块,用于获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息,其中,该第二时刻为接收到该至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;
第一确定模块,用于基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数;
第一传输模块,用于按照该第一传输参数进行网络传输。
在一些实施例中,该装置还包括:
控制模块,用于在第一预设时长内不发送数据包,以得到预设通信链路。
在一些实施例中,该至少两个数据包具有相同的第一标识,确认消息具有与对应数据包相同的标识,对应地,该装置还包括:
第二确定模块,用于当接收到具有第一标识的第N个确认消息时,确定接收到满足回合结束条件的确认消息,其中,N为该至少两个数据包的数据包总数;或者,
第三确定模块,用于当接收到具有第一标识的第M个确认消息后,且第二预设时长内没有再接收到具有第一标识的确认消息时,将接收到第M个确认消息时,确定为接收到满足回合结束条件的确认消息,其中M为小于N的整数。
在一些实施例中,该第一确定模块还用于:
将该第二时刻和第一时刻的差值确定为最小往返时延;
基于该第二时刻、第三时刻和第一数据包信息,确定最大传输速度;
基于该最小往返时延和该最大传输速度确定第一传输参数。
在一些实施例中,该装置还包括:
确定截止到该第三时刻接收到的具有第一标识的确认消息总数;
第四确定模块,用于将该确认消息总数减1得到第二时刻与第三时刻之间传输的第一数据包个数;
第二获取模块,用于获取各个数据包的数据包大小;
第五确定模块,用于将该第一数据包个数和数据包大小确定为第一数据包信息。
在一些实施例中,该装置还包括:
第六确定模块,用于当在满足回合结束条件时接收到M个具有第一标识的确认消息时,确定丢包原因;
第七确定模块,用于当该丢包原因为按照预设丢包机制丢包时,将N-1确定为第二时刻与第三时刻之间传输的第二数据包个数;
第三获取模块,用于获取各个数据包的数据包大小;
第八确定模块,用于将该第二数据包个数和数据包大小确定为第一数据包信息。
在一些实施例中,该第一确定模块还用于:
将该第三时刻和该第二时刻的差值确定为传输时间间隔;
基于该第一数据包信息确定该传输时间间隔内的传输数据总量;
将该传输数据总量和该传输时间间隔的商值,确定为最大传输速度。
在一些实施例中,该第一传输模块,还用于:
基于该第一传输参数确定下一回合发送的数据包个数P;
在第四时刻发送P个数据包,该P个数据包具有相同的第二标识。
在一些实施例中,该装置还包括:
第四获取模块,用于获取第五时刻、第六时刻和该第五时刻与该第六时刻所传输数据包的第二数据包信息,其中,该第五时刻为接收到第一个具有第二标识的确认消息的时刻,第六时刻为接收到满足回合结束条件的确认消息的时刻;
第九确定模块,用于基于该第四时刻、第五时刻、第六时刻和该第二数据包信息确定第二传输参数;
第二传输模块,用于按照该第二传输参数进行网络传输。
本申请实施例提供一种网络传输设备,包括:
存储器,用于存储可执行指令;处理器,用于执行该存储器中存储的可执行指令时,实现上述的方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
本申请实施例具有以下有益效果:
在第一时刻,也即进行网络传输的第一个回合,利用预设通信链路发送至少两个数据包,然后再基于接收到第一个确认消息的第二时刻、接收到满足回合结束条件的确认消息的第三时刻以及该第二时刻与该第三时刻之间所传输数据包的第一数据包信息,确定出第一传输参数,并按照该第一传输参数进行网络传输,在本申请实施例中,第一传输参数可以是带宽时延积,也可以是每次发送的数据包个数,这样通过一个回合即可确定出进行网络传输的第一网络参数,从而能够有效降低网络传输启动阶段的延迟,提高网络传输效率。
附图说明
图1是相关技术中网络传输方法的慢启动时RTT和拥塞窗口的对应关系示意图;
图2是本申请实施例提供的网络传输系统的网络架构示意图;
图3是本申请实施例提供的网络传输设备(发送端设备)的结构示意图;
图4是本申请实施例提供的网络传输方法的一种实现流程示意图;
图5是本申请实施例提供的确定第一传输参数的实现流程示意图;
图6是本申请实施例提供的网络传输方法的再一种流程示意图;
图7是本申请实施例进行网络传输时快启动的原理示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)TCP,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
2)QUIC,是谷歌制定的一种基于UDP的低时延的互联网传输层协议,融合了包括TCP,TLS,HTTP/2等协议的特性,但基于UDP传输。
3)慢启动,TCP传输的第一阶段,因不知道网络链路容量,不能贸然发送大量数据,所以采用一个初始速度,然后倍增的方法,去接近最优发送速度。
4)拥塞窗口(cwnd,congestion window),也即TCP传输中下一回合的发送窗口。
5)往返时延(RTT,Round-Trip Time),在计算机网络中的一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
6)BBR,QUIC中的核心传输算法,也是一种新型拥塞控制算法,目的是要尽量跑满带宽,并且尽量不要有排队的情况,充分利用带宽并降低延迟,起到加速效果,可以使Linux服务器显著地提高吞吐量和减少TCP连接的延迟。
7)最大带宽,即最大传输速度。
8)ssthresh:慢启动阶段的速度倍增到该阈值时,慢启动结束,进入拥塞避免阶段。
9)带宽时延积(BDP,Bandwidth Delay Product),其值等于最大带宽乘以最小RTT,意思是每回合只发送这么多数据,是最优的。
为了更好地理解本申请实施例中提供的网络传输方法,首先对相关技术中的网络传输方法进行说明:
无论是经典的TCP传输,还是最近几年兴起的QUIC,都免不了有一个慢启动的阶段。这是因为当前的网络传输都是回合制的,而一开始无法预知网络连接链路层能有多大容量,所以只能从一个小的速度开始发送,然后一回合一回合地加倍发送速度,直至发送速度达到ssthresh阈值或者产生丢包。
网络传输的启动阶段,不存在除了慢启动的其他机制。而在应用领域,有很多单边加速的做法,但不改动慢启动的根基,也是在慢启动的基础上,只是改动初始速度、加速度等参数而已。
为了更好的理解相关技术中的网络传输方案,首先对网络传输的慢启动过程进行说明。
以TCP为例,TCP是个滑动窗口协议,每回合都有数据包发送和数据包ACK,cwnd代表着拥塞窗口,而TCP的慢启动通过以下步骤实现:
第一步,设置cwnd=1,开始发送;
第二步,每回合发送cwnd个数据包;
第三步,每收到一个包的ACK,就更新cwnd=cwnd+1;
第四步,直至cwnd到达ssthresh阈值,或则产生丢包时,结束慢启动。
通过以上方式,TCP实现了慢启动阶段发送速度倍增的机制,以下举例说明:
第一回合,cwnd=1,发送1个数据包,发送速度为1/rtt;
第二回合,随着第一回合的包被ACK,cwnd=cwnd+1=2,发送2个数据包,发送包速度为2/rtt;
第三回合,随着第二回合的包先后被ACK,cwnd=cwnd+2=4,发送4个数据包,发送包速度为4/rtt;
第四回合,随着第三回合的包先后被ACK,cwnd=cwnd+4=8,发送8个数据包,发送速率为8/rtt;
…
直至cwnd超过ssthresh阈值或者产生丢包,结束慢启动阶段。
TCP传输的其他算法,并未对慢启动有根本的优化。在实际应用领域,存在不少单边加速的优化,其本质上是对一些参数直接进行修改,或者采用算法比如AI,帮助发送速度加速达到最优发送速度,尽快结束慢启动。能修改的参数有:
1.初始速度:比如上例中初始速度是1,若是将初始速度优化成40的话,便能极大地缩减慢启动的时长;
2.cwnd增益:比如上例中,cwnd在每次ACK时加1,可以优化成加2,变成4倍速;
3.不再使用指数增长cwnd,变为使用其他曲线或者直线以期望能更快逼近到最优速度;
相关技术中的网络传输的启动方法存在以下缺点:
第一、通过图1,可以发现慢启动即便是指数增长cwnd,也很慢,因为基数太小,要增长好几个回合才能到达稳定发送状态。尤其是现在家庭宽带都逐渐突破100M的网络环境,到达稳定发送状态的cwnd很大,需要更多的回合,因此浪费了很多时间。
第二、通过修改初始速度的方法进行优化,看似很理想,现实情况则要复杂的多。比如初始速度设置成40,并不具备普适性,在一些网络差的设备上,就是一启动即丢包,造成多余的网络负载。
第三、通过修改cwnd增益的方式,比如将2倍速改为4倍速,一样要经过很多个回合才能达到稳定发送状态。另外在最后一次增速的时候,4倍速比2倍速更容易造成网络超载,且超载很多,这样主动造成的拥塞,需要相当长一段时间才能恢复,可能得不偿失。
以上的优化方法,即便可能会达到很好的效果,但是都普适性不足,而且没有从本质上消灭慢启动阶段,或多或少还是得经过几个回合,才能度过慢启动阶段。
基于此,本申请实施例提供一种网络传输的启动方法,有效地将慢启动压缩在1个回合内,几乎消灭慢启动,相比于现有优化方案,有着根本上的性能提升。
下面说明本申请实施例提供的网络传输设备的示例性应用,本申请实施例提供的网络传输设备可以实施为终端,也可以实施为服务器。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
参见图2,图2是本申请实施例提供的网络传输系统的网络架构示意图。如图2所示,该网络传输系统20中包括网络传输设备100和网络200,其中在图2中示例性地示出了两个网络传输设备,分别为网络传输设备100-1和网络传输设备100-2,网络传输设备100-1和网络传输设备100-2均可以作为发送方,也可以作为接收方。并且在图2中,网络传输设备100-1作为发送方以用户终端的形式示出,网络传输设备100-2作为接收方以服务器的形式示出,在实际实现时,网络传输设备100-1和网络传输设备100-2可以是一个为用户终端(客户端),一个为服务器,还可以是两个均为用户终端,还可以是两个均为服务器。
作为发送方的网络传输设备100-1在一定时长内不向接收方发送数据,从而得到空的通信链路,然后在第一回合发送N个数据包,作为接收方的网络传输设备100-2在接收到数据包后立即返回ACK,网络传输设备100-1基于接收到第一个ACK的时刻,以及接收到最后一个ACK的时刻和传输的N个数据包的信息确定传输参数,并基于该传输参数进行后续的网络传输,这样通过一个回合即可确定出相对准确的传输参数,降低网络传输在启动阶段的时延,提高传输效率。
参见图3,图3是本申请实施例提供的网络传输设备100的结构示意图,图3所示的网络传输设备100包括:至少一个处理器110、存储器150、至少一个网络接口120和用户接口130。网络传输设备100中的各个组件通过总线系统140耦合在一起。可理解,总线系统140用于实现这些组件之间的连接通信。总线系统140除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统140。
处理器110可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口130包括使得能够呈现媒体内容的一个或多个输出装置131,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口130还包括一个或多个输入装置132,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器150可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器150可选地包括在物理位置上远离处理器110的一个或多个存储设备。
存储器150包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器150旨在包括任意适合类型的存储器。
在一些实施例中,存储器150能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统151,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块152,用于经由一个或多个(有线或无线)网络接口120到达其他计算设备,示例性的网络接口120包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块153,用于对一个或多个来自一个或多个输入装置132之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器150中的一种网络传输装置154,该网络传输装置154可以是网络传输设备100中的网络传输装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一发送模块1541、第一获取模块1542、第一确定模块1543和第一传输模块1544,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的图像处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的网络传输设备100的示例性应用和实施,说明本申请实施例提供的网络传输方法。参见图4,图4是本申请实施例提供的网络传输方法的一个可选的流程示意图,将结合图4示出的步骤进行说明。
步骤S101,在第一时刻利用预设通信链路发送至少两个数据包。
这里,预设通信链路可以是没有负载,或者说是空载的通信链路,在实际实现时,可以在第一预设时长内不发送数据包,以得到空载的预设通信链路。
步骤S101在实现时,可以是在第一时刻利用预设通信链路基于突发机制发送至少两个数据包,突发机制也即是在一瞬间同时发出至少两个数据包,例如可以是一瞬间同时发出10个数据包,或者是一瞬间同时发出8个数据包等。
在一些实施例中,在发出该至少两个数据包之前,会为该至少两个数据包增加相同的标识,该标识用来表征回合数,例如可以为该至少两个数据包增加相同的回合标识1,以表征该至少两个数据包为第一回合所发送的数据包。
步骤S102,获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息。
这里,该第二时刻为在第一时刻之后接收到第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻。进一步地,第二时刻为接收到至少两个数据包对应的第一个确认消息的时刻,也即第二时刻为接收到第一个针对该至少两个数据包中的其中一个数据包的确认消息的时刻。
在一些实施例中,接收方在接收到数据包并返回确认消息,并且返回的确认消息中同样携带有与对应数据包的回合标识,例如,步骤S101中所发送的数据包携带有回合标识1,那么接收方在返回确认消息时,确认消息中也携带有回合标识1,那么在步骤S102中第二时刻为接收到第一个携带有回合标识1的确认消息的时刻。
在本申请实施例中,可以是接收到当前回合中所有数据包的确认消息时,认为接收到满足回合结束条件的确认消息,在一些实施例中,还可以是在一定时长内没有接收到所有数据包的确认消息时,将接收到的最后一个当前回合的确认消息时,确定接收到满足回合结束条件的确认消息。
第一数据包信息至少包括数据包个数,还可以包括数据包大小。
步骤S103,基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数。
这里,第一传输参数可以是带宽时延积。步骤S103在实现时,可以基于第一时刻和第二时刻确定出最小往返时延,并基于第二时刻、第三时刻和第一数据包信息确定最大传输速度,进而再基于最小往返时延和最大传输速度确定带宽时延积,也即确定在该通信链路中进行网络传输的最大传输量。
步骤S104,按照该第一传输参数进行网络传输。
这里,步骤S104在实现时,可以是在之后的各个网络传输回合中,按照第一传输参数进行网络传输,也可以是在第二个网络传输回合中按照第一传输参数进行网络传输,并且在第二网络传输回合中再次计算下一回合的第二传输参数,并在下一回合中按照第二传输参数进行网络传输。
也就是说,步骤S104在实现时,可以是先基于该第一传输参数确定下一回合发送的数据包个数P;然后在第四时刻(也就是第二回合的开始时刻)发送P个数据包,该P个数据包具有相同的第二标识,并且在后续的第三回合、第四回合都每次发送P个数据包。
在一些实施例中,步骤S104在实现时,还可以是先基于该第一传输参数确定下一回合发送的数据包个数P;然后在第四时刻(也就是第二回合的开始时刻)发送P个数据包,然后在第二回合的网络传输过程中,再次计算出第二网络传输参数,再基于第二传输参数确定下一回合,也即第三回合发送的数据包个数Q,在第三回合发送Q个数据包,以此类推,直至,连续几个回合发送的数据包个数相差不大时,不再重复计算下一回合的网络传输参数。
在本申请实施例提供的网络传输方法中,在第一时刻,也即进行网络传输的第一个回合,利用预设通信链路发送至少两个数据包,然后再基于接收到第一个确认消息的第二时刻、接收到满足回合结束条件的确认消息的第三时刻以及该第二时刻与该第三时刻之间所传输数据包的第一数据包信息,确定出第一传输参数,并按照该第一传输参数进行网络传输,在本申请实施例中,第一传输参数可以是带宽时延积,也可以是每次发送的数据包个数,这样通过一个回合即可确定出进行网络传输的第一网络参数,从而能够有效降低网络传输启动阶段的延迟,提高网络传输效率。
在一些实施例中,该至少两个数据包具有相同的第一标识,确认消息具有与对应数据包相同的标识,对应地,在步骤S102之前,还需要确定是否接收到满足回合结束条件的应答消息,在实际实现时,可以通过至少以下两种方式确定接收到满足结果条件的应答消息:
第一种方式、当接收到具有第一标识的第N个确认消息时,确定接收到满足回合结束条件的确认消息。
这里,N为该至少两个数据包的数据包总数。也就是说,在第一回合发送出N个数据包之后,当接收到这N个数据包的所有确定消息,也即接收到N个ACK之后,确定接收到满足回合结束条件的确认消息。
第二种方式、当接收到具有第一标识的第M个确认消息后,且第二预设时长内没有再接收到具有第一标识的确认消息时,将接收到第M个确认消息时,确定为接收到满足回合结束条件的确认消息。
其中,M为小于N的整数。也就是说,虽然没有接收到第一回合中所发送的N个数据包对应的N个ACK时,如果在等待一定时长仍没有接收到第一回合的全部ACK时,可以将接收到最后一个第一回合的ACK消息时确定接收到满足回合结束条件的确认消息。
在一些实施例中,还可以是在接收到具有第一标识的第M个ACK后,如果后续没有接收到具有第一标识的ACK消息,而是接收到第二回合的ACK消息后,将接收到最后一个第一回合的ACK消息时确定接收到满足回合结束条件的确认消息。
在本申请实施例中,如果可以接收到第一回合所发送的N个数据包对应的N个ACK消息,即可认为该回合结束,此时可以根据该回合中发送数据包、接收到的数据包对应的ACK消息的各个时刻以及数据包信息确定出进行网络传输的传输参数;如果在一定时长内没有接收到第一回合所发送的N个数据包对应的N个ACK消息,而是接收到M个ACK消息后,不再能接收到第一回合的ACK消息时,同样认为第一回合结束,并进行网络参数的计算,而不需要一定等到接收到第一回合全部的ACK消息再进行网络参数的计算,保证计算效率。
在一些实施例中,图4所示的步骤S103可以通过图5所示的步骤S1031至步骤S1033实现,以下结合图5对各步骤进行说明。
步骤S1031,将该第二时刻和第一时刻的差值确定为最小往返时延。
在本申请实施例中,由于在第一时刻发送至少两个数据包时,可以认为该至少两个数据包是在空载链路上传输的,因此传输速度无限大,那么即可以将第二时刻和第一时刻的差值确定为最小往返时延。
步骤S1032,基于该第二时刻、第三时刻和第一数据包信息,确定最大传输速度。
这里,最大传输速度也即为最大带宽。
在一些实施例中,步骤S1032在实现时,可以将该第三时刻和该第二时刻的差值确定为传输时间间隔;再基于该第一数据包信息确定该传输时间间隔内的传输数据总量;并将该传输数据总量和该传输时间间隔的商值,确定为最大传输速度。
步骤S1033,基于该最小往返时延和该最大传输速度确定第一传输参数。
这里,第一传输参数可以是带宽时延积,用于表示在一个数据传输回合中所能发送的最大数据量。步骤S1033在实现时,可以将最小往返时延和最大传输速度的乘积确定为第一传输参数。
在一些实施例中,在步骤S103之前,需要确定第一数据包信息,在实现时,可以至少通过以下两种方式确定第一数据包信息:
第一种方式可以通过以下步骤实现:
步骤S01A,确定截止到该第三时刻接收到的具有第一标识的确认消息总数。
这里,如果是以上述的第一种方式确定接收到满足回合结束条件的确认消息,也即接收到所有的N个ACK时,在步骤S01A中确定的确认消息总数即为N;如果是以上述的第二种方式确定接收到满足回合结束条件的确认消息,也即接收到M个第一回合的ACK时,此时在该步骤中确定的确认消息总数即为M。
步骤S02A,将该确认消息总数减1得到第二时刻与第三时刻之间传输的第一数据包个数。
这里,由于第二时刻为接收到第一个第一回合的ACK的时刻,也就是说在第二时刻已经接收到第一个ACK,那么在第二时刻与第三时刻之间接收到的ACK数,也即第二时刻与第三时刻之间传输的第一数据包个数,为确认消息总数减1。
步骤S03A,获取各个数据包的数据包大小。
在本申请实施例中,各个数据包的数据包大小可以是相同的,这样在步骤S03A中获取其中一个数据包的数据包大小即可;当然,在一些实施例中,各个数据包的数据包大小也可以是不同的。
步骤S04A,将该第一数据包个数和数据包大小确定为第一数据包信息。
这里,在步骤S04A,将第一数据包个数和数据包大小确定为第一数据包信息;如果当各个数据包的数据包大小相同时,第一数据包信息中可以仅包括第一数据包个数。
第二种方式可以通过以下步骤实现:
步骤S01B,当在满足回合结束条件时接收到M个具有第一标识的确认消息时,确定丢包原因。
这里,当在满足回合结束条件时接收到M个具有第一标识的确认消息,而没有接收到全部的N个具有第一标识的确认消息时,说明发生了丢包,此时需要确定丢包原因。
步骤S02B,当该丢包原因为按照预设丢包机制丢包时,将N-1确定为第二时刻与第三时刻之间传输的第二数据包个数。
这里,丢包原因可能是因为预设了丢包机制,而进行自动丢包;还可以是由于网络信道原因导致的丢包;如果在步骤S02B中确定出丢包原因为按照预设丢包机制丢包时,说明不是由于网络原因导致的丢包,此时可以将N-1确定为第二时刻与第三时刻之间传输的第二数据包个数。
步骤S03B,获取各个数据包的数据包大小。
在实际实现过程中,该步骤的实现方式可以参考步骤S03A。
步骤S04B,将该第二数据包个数和数据包大小确定为第一数据包信息。
这里,与步骤S04A类似,将第一数据包个数和数据包大小确定为第一数据包信息;如果当各个数据包的数据包大小相同时,第一数据包信息中可以仅包括第一数据包个数。
基于前述的实施例,本申请实施例再提供一种网络传输方法,应用于图2所示的网络架构,图6为本申请实施例提供的网络传输方法的实现流程示意图,如图6所示,该流程包括:
步骤S201,发送方在第一预设时长内不发送数据包,以得到预设通信链路。
这里,发送方通过在一定时长内不发送数据包,从而能够得到理论上是空的通信链路,从而保证能够相对准确地计算出最小时延和最大传输速度。
步骤S202,发送方在第一时刻利用预设通信链路向接收方发送至少两个数据包。
这里,第一时刻为发送方不发送数据包的时刻加上第一预设时长之后得到的时刻。例如,发送方从15:00开始不发送数据包,第一预设时长为2分钟,那么第一时刻为15:02。
步骤S202在实现时,可以是发送方在第一时刻通过突发机制利用预设链路向接收方发送N个数据包,其中N为大于或者等于2的整数,例如N可以为10,并且该N个数据包具有相同的第一标识,该第一标识可以为回合标识,例如在第一回合中第一标识为1。
步骤S203,接收方在接收到发送方发送的数据包后,依次返回针对各个数据包的确认消息。
这里,接收方在接收到发送方在第一回合发送的具有第一标识的数据包之后,依次返回针对各个数据包的确认消息,并且该确认消息具有相同的回合标识,也即第一标识。
步骤S204,发送方在接收到针对各个数据包的确认消息后,获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息。
这里,第二时刻为接收到至少两个数据包对应的第一个确认消息的时刻,由于至少两个数据包据具有相同的第一标识,那么第二时刻也即为接收到第一个具有第一标识的确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻。
在本申请实施例中,当在一定时长内接收到第一回合所发送的全部数据包的确认消息时,即可认为接收到满足回合结束条件的确认消息;在本申请实施中,在没有计算出第一传输参数之前,可以预设一个最小往返时延,并且在达到预设的最小往返时延时,也可以发送第二回合的数据包,因此当在一定时长内没有接收到第一回合所发送的全部数据包的确认消息,但是接收到了针对第二回合的数据包的确认消息时,也可以在接收到的最后一个针对第一回合的数据包的确认消息时,确认为接收到满足回合结束条件的确认消息。
步骤S205,发送方基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数。
这里,步骤S205在实现时,可以首先将该第二时刻和第一时刻的差值确定为最小往返时延;然后再基于该第二时刻、第三时刻和第一数据包信息,确定最大传输速度;最后基于该最小往返时延和该最大传输速度确定第一传输参数;进一步地,可以将最小往返时延和最大传输速度的乘积确定为第一传输参数。
步骤S206,发送方基于该第一传输参数确定下一回合发送的数据包个数P。
这里,第一传输参数也即在下一回合传输的最大数据量,步骤S206在实现时,可以是将第一传输参数除以预设的数据包大小,从而得到下一回合发送的数据包个数P,P为大于2的整数,一般情况下P是大于N的。
步骤S207,发送方在第四时刻发送P个数据包。
这里,P个数据包具有相同的第二标识。发送方在第四时刻基于突发机制发送P个数据包,也即在第四时刻同时发送P个数据包。
步骤S208,接收方在接收到第二回合的数据包后,依次返回针对第二回合数据包的确认消息。
这里,步骤S208中返回的确认消息中具有第二标识。
步骤S209,发送方获取第五时刻、第六时刻和该第五时刻与该第六时刻所传输数据包的第二数据包信息。
其中,该第五时刻为接收到第一个具有第二标识的确认消息的时刻,第六时刻为接收到满足回合结束条件的具有第二标识的确认消息的时刻。
步骤S210,发送方基于该第四时刻、第五时刻、第六时刻和该第二数据包信息确定第二传输参数。
这里,与步骤S205类似,发送方将第五时刻和第四时刻的差值确定为最小往返时延,并基于第五时刻、第六时刻和第二数据包信息,确定最大传输速度;最后基于该步骤计算出的最小往返时延和最大传输速度确定第二传输参数;进一步地,可以将最小往返时延和最大传输速度的乘积确定为第二传输参数。
步骤S211,发送方按照该第二传输参数进行网络传输。
这里,步骤S211在实现时,可以是发送方基于该第二传输参数确定下一回合发送的数据包个数Q,然后在第七时刻发送Q个数据包。
步骤S212,发送方确定第一传输参数和第二传输参数之间的误差值。
这里,步骤S212在实现时,可以是确定第一传输参数对应的数据包个数P和第二传输参数对应的数据包个数Q之间的数据包差值的绝对值,并将该数据包差值的绝对值确定为该误差值。例如P为20,Q为22,那么误差值为2。
步骤S213,发送方判断该误差值是否小于预设的误差阈值。
这里,当该误差值小于误差阈值时,进入步骤S214;当该误差值大于或者等于该误差阈值时,进入步骤S215。
步骤S214,发送方在后续回合中按照第二传输参数进行网络传输。
这里,当两个相邻回合的传输参数之间的误差值小于预设的误差阈值时,可以认为得到了相对准确的传输参数,那么在后续回合中即可按照第二传输参数进行网络传输。
步骤S215,发送方在后续回合中继续计算传输参数,直至当前传输参数与上一回合的传输参数的误差值小于该误差阈值。
这里,当两个相邻回合的传输参数之间的误差值大于或者等于预设的误差阈值时,表明传输参数的误差还比较大,需要继续进行计算,以得到准确的传输参数。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的网络传输的启动方法,在BDP概念的基础上,将其扩展到网络传输的启动阶段。BDP的两个关键因子为:最小RTT和最大带宽,只要能尽快确定出这两个因子就可以完成网络传输的启动过程。
本申请实施例提供的网络传输的启动方法,包括以下步骤:
步骤S601,确定最小RTT。
在本申请实施例中,利用一小段时间内,先排空数据链路管道(通过几个回合不发包即可),然后将发送第一个包到第一个包的ACK到达的时间,确定为最小RTT。因为刚开始发送时,从来没发送过任何数据,可以认为链路是空的(这种情况下,即便有其他应用在使用这同一条链路,依然能将其看成在剩余的链路上是空的),因此,首包的RTT一定是最小RTT,能够在1回合后即得到。
步骤S602,确定最大带宽。
这里,步骤S602可以通过以下步骤实现:
步骤S6021,在第一回合发送10个包,然后这些包采用突发的机制,即一瞬间发送出去,这样是为了让发送瞬时速度无限大。
步骤S6022,将这10个包标记为一个同一个回合内,方便程序识别。
步骤S6023,接收方每次收包都立刻反馈ACK,接受方也是尽自己最大努力收包。
步骤S6024,发送端得到这10个包的第一个包被ACK的时间是t1,最后一个包被ACK时所消耗的时间t2,最大包速度即为9/(t2-t1)。
因为链路可以认为是空载的,同时发送速度无限大,那么收到ACK也是最快的,收到10个包的ACK后,即能够在1个回合后就可大概算出最大带宽。
需要说明的是,S6024是不考虑丢包的理想情况,若出现丢包则需要根据实际情况确定相应的策略,对最大包速度的计算方式进行校正,校正方式可以参照其他实施例提供的实现方式。
图7为本申请实施例进行网络传输时快启动的原理示意图,如图7所示,在T1时刻,发送端701使用突发的方式,同时发送多个数据包,然后这些数据包在链路上排队努力发送,最大程度地发挥链路速度传输,并且接收端702也尽最大努力收包,其中每两个包的ACK间隔T用于发送一个包,即可达到最大带宽。
利用本申请实施例提供的网络传输的启动方法,一回合后即确定出合理的最小RTT和最大带宽,第二回合便能够度过启动阶段,采用这两个因子算出的带宽时延积进行数据发送,进入到稳定发送阶段,大大缩减了启动时间,从而消灭了慢启动。
在本申请实施例中,以在第一回合发送10个包为例进行说明,也可以是在第一回合发送其他合适数量的数据包。理论上发送2个包即可确定出最大带宽,但是因为网络抖动会导致误差大,为了消除误差干扰,多发送几个数据包。
在一些实施例中,或许第一回合探测的不准,因此可以配合第二回合、第三回合持续如此探测,便能一直校正,从而保证传输参数的正确性。
利用本申请实施例提供的网络传输方法,能够有效解决直播P2P分享数据的延迟问题,同时利用到首帧传输上,极大地优化了秒开效果。
下面继续说明本申请实施例提供的网络传输装置154实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器150的网络传输装置154中的软件模块可以是网络传输设备100中的网络传输装置,包括:
第一发送模块1541,用于在第一时刻利用预设通信链路发送至少两个数据包;
第一获取模块1542,用于获取第二时刻、第三时刻和该第二时刻与该第三时刻所传输数据包的第一数据包信息,其中,该第二时刻为接收到该至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;
第一确定模块1543,用于基于该第一时刻、第二时刻、第三时刻和第一数据包信息确定第一传输参数;
第一传输模块1544,用于按照该第一传输参数进行网络传输。
在一些实施例中,该装置还包括:
控制模块,用于在第一预设时长内不发送数据包,以得到预设通信链路。
在一些实施例中,该至少两个数据包具有相同的第一标识,确认消息具有与对应数据包相同的标识,对应地,该装置还包括:
第二确定模块,用于当接收到具有第一标识的第N个确认消息时,确定接收到满足回合结束条件的确认消息,其中,N为该至少两个数据包的数据包总数;或者,
第三确定模块,用于当接收到具有第一标识的第M个确认消息后,且第二预设时长内没有再接收到具有第一标识的确认消息时,将接收到第M个确认消息时,确定为接收到满足回合结束条件的确认消息,其中M为小于N的整数。
在一些实施例中,该第一确定模块还用于:
将该第二时刻和第一时刻的差值确定为最小往返时延;
基于该第二时刻、第三时刻和第一数据包信息,确定最大传输速度;
基于该最小往返时延和该最大传输速度确定第一传输参数。
在一些实施例中,该装置还包括:
确定截止到该第三时刻接收到的具有第一标识的确认消息总数;
第四确定模块,用于将该确认消息总数减1得到第二时刻与第三时刻之间传输的第一数据包个数;
第二获取模块,用于获取各个数据包的数据包大小;
第五确定模块,用于将该第一数据包个数和数据包大小确定为第一数据包信息。
在一些实施例中,该装置还包括:
第六确定模块,用于当在满足回合结束条件时接收到M个具有第一标识的确认消息时,确定丢包原因;
第七确定模块,用于当该丢包原因为按照预设丢包机制丢包时,将N-1确定为第二时刻与第三时刻之间传输的第二数据包个数;
第三获取模块,用于获取各个数据包的数据包大小;
第八确定模块,用于将该第二数据包个数和数据包大小确定为第一数据包信息。
在一些实施例中,该第一确定模块还用于:
将该第三时刻和该第二时刻的差值确定为传输时间间隔;
基于该第一数据包信息确定该传输时间间隔内的传输数据总量;
将该传输数据总量和该传输时间间隔的商值,确定为最大传输速度。
在一些实施例中,该第一传输模块,还用于:
基于该第一传输参数确定下一回合发送的数据包个数P;
在第四时刻发送P个数据包,该P个数据包具有相同的第二标识。
在一些实施例中,该装置还包括:
第四获取模块,用于获取第五时刻、第六时刻和该第五时刻与该第六时刻所传输数据包的第二数据包信息,其中,该第五时刻为接收到第一个具有第二标识的确认消息的时刻,第六时刻为接收到满足回合结束条件的确认消息的时刻;
第九确定模块,用于基于该第四时刻、第五时刻、第六时刻和该第二数据包信息确定第二传输参数;
第二传输模块,用于按照该第二传输参数进行网络传输。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种网络传输方法,其特征在于,包括:
在第一时刻利用预设通信链路发送至少两个数据包;
获取第二时刻、第三时刻和所述第二时刻与所述第三时刻所传输数据包的第一数据包信息,其中,所述第二时刻为接收到所述至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;
将所述第二时刻和第一时刻的差值确定为最小往返时延;将所述第三时刻和所述第二时刻的差值确定为传输时间间隔;基于所述第一数据包信息确定所述传输时间间隔内的传输数据总量;将所述传输数据总量和所述传输时间间隔的商值,确定为最大传输速度;基于所述最小往返时延和所述最大传输速度确定第一传输参数;
按照所述第一传输参数进行网络传输。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在第一预设时长内不发送数据包,以得到预设通信链路。
3.根据权利要求1所述的方法,其特征在于,所述至少两个数据包具有相同的第一标识,确认消息具有与对应数据包相同的第一标识,
所述方法还包括:
当接收到具有第一标识的第N个确认消息时,确定接收到满足回合结束条件的确认消息,其中,N为所述至少两个数据包的数据包总数;或者,
当接收到具有第一标识的第M个确认消息后,且第二预设时长内没有再接收到具有第一标识的确认消息时,将接收到的第M个确认消息,确定为接收到满足回合结束条件的确认消息,其中M为小于N的整数。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定截止到所述第三时刻接收到的具有第一标识的确认消息总数;
将所述确认消息总数减1得到第二时刻与第三时刻之间传输的第一数据包个数;
获取各个数据包的数据包大小;
将所述第一数据包个数和数据包大小确定为第一数据包信息。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当在满足回合结束条件时接收到M个具有第一标识的确认消息时,确定丢包原因;
当所述丢包原因为按照预设丢包机制丢包时,将N-1确定为第二时刻与第三时刻之间传输的第二数据包个数;
获取各个数据包的数据包大小;
将所述第二数据包个数和数据包大小确定为第一数据包信息。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述按照所述第一传输参数进行网络传输,包括:
基于所述第一传输参数确定下一回合发送的数据包个数P;
在第四时刻发送P个数据包,所述P个数据包具有相同的第二标识。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取第五时刻、第六时刻和所述第五时刻与所述第六时刻所传输数据包的第二数据包信息,其中,所述第五时刻为接收到第一个具有第二标识的确认消息的时刻,第六时刻为接收到满足回合结束条件的确认消息的时刻;
基于所述第四时刻、第五时刻、第六时刻和所述第二数据包信息确定第二传输参数;
按照所述第二传输参数进行网络传输。
8.一种网络传输装置,其特征在于,包括:
第一发送模块,用于在第一时刻利用预设通信链路发送至少两个数据包;
第一获取模块,用于获取第二时刻、第三时刻和所述第二时刻与所述第三时刻所传输数据包的第一数据包信息,其中,所述第二时刻为接收到所述至少两个数据包对应的第一个确认消息的时刻,第三时刻为接收到满足回合结束条件的确认消息的时刻;
第一确定模块,用于将所述第二时刻和第一时刻的差值确定为最小往返时延;将所述第三时刻和所述第二时刻的差值确定为传输时间间隔;基于所述第一数据包信息确定所述传输时间间隔内的传输数据总量;将所述传输数据总量和所述传输时间间隔的商值,确定为最大传输速度;基于所述最小往返时延和所述最大传输速度确定第一传输参数;
第一传输模块,用于按照所述第一传输参数进行网络传输。
9.一种网络传输设备,其特征在于,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010877826.1A CN111970208B (zh) | 2020-08-27 | 2020-08-27 | 网络传输方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010877826.1A CN111970208B (zh) | 2020-08-27 | 2020-08-27 | 网络传输方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111970208A CN111970208A (zh) | 2020-11-20 |
CN111970208B true CN111970208B (zh) | 2024-03-05 |
Family
ID=73399460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010877826.1A Active CN111970208B (zh) | 2020-08-27 | 2020-08-27 | 网络传输方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111970208B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113839830B (zh) * | 2021-07-15 | 2023-10-24 | 腾讯科技(深圳)有限公司 | 数据包多发参数的预测方法、装置与存储介质 |
CN114095437B (zh) * | 2021-11-18 | 2024-04-09 | 北京达佳互联信息技术有限公司 | 发送数据包的方法、装置、电子设备和存储介质 |
CN114339294B (zh) * | 2022-01-04 | 2023-02-10 | 腾讯科技(深圳)有限公司 | 网络抖动的确认方法、装置、设备及存储介质 |
CN115022247B (zh) * | 2022-06-02 | 2023-10-20 | 成都卫士通信息产业股份有限公司 | 流控制传输方法、装置、设备及介质 |
CN115396370B (zh) * | 2022-07-04 | 2023-08-18 | 北京百度网讯科技有限公司 | 退出判别方式获取及慢启动退出方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102548011A (zh) * | 2011-01-04 | 2012-07-04 | 中国移动通信集团公司 | 中继接入链路的半持续调度、接收方法、系统及装置 |
CN108024383A (zh) * | 2016-11-04 | 2018-05-11 | 中兴通讯股份有限公司 | 数据发送、接收方法及装置、电子设备 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
CN110519175A (zh) * | 2019-08-22 | 2019-11-29 | 咪咕视讯科技有限公司 | 一种信息处理方法、设备及计算机可读存储介质 |
CN110620738A (zh) * | 2019-10-15 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 带宽分配方法、装置、设备及存储介质 |
CN110875915A (zh) * | 2018-09-04 | 2020-03-10 | 华为技术有限公司 | 数据传输方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011780B (zh) * | 2017-12-01 | 2019-01-22 | 北京百度网讯科技有限公司 | 一种数据传输速率测量方法、装置、设备和计算机可读介质 |
-
2020
- 2020-08-27 CN CN202010877826.1A patent/CN111970208B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102548011A (zh) * | 2011-01-04 | 2012-07-04 | 中国移动通信集团公司 | 中继接入链路的半持续调度、接收方法、系统及装置 |
CN108024383A (zh) * | 2016-11-04 | 2018-05-11 | 中兴通讯股份有限公司 | 数据发送、接收方法及装置、电子设备 |
CN110875915A (zh) * | 2018-09-04 | 2020-03-10 | 华为技术有限公司 | 数据传输方法及装置 |
CN109639340A (zh) * | 2018-12-11 | 2019-04-16 | 成都天奥信息科技有限公司 | 一种适用于卫星链路的tcp加速方法 |
CN110519175A (zh) * | 2019-08-22 | 2019-11-29 | 咪咕视讯科技有限公司 | 一种信息处理方法、设备及计算机可读存储介质 |
CN110620738A (zh) * | 2019-10-15 | 2019-12-27 | 腾讯科技(深圳)有限公司 | 带宽分配方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
T. Li ; K. Zheng ; R. Jadhav ; J. Kang ; Huawei Technologies ; .Optimizing ACK mechanism for QUICdraft-li-quic-optimizing-ack-in-wlan-00.IETF .2020,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111970208A (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111970208B (zh) | 网络传输方法、装置、设备及计算机可读存储介质 | |
JP7454662B2 (ja) | 情報送信方法、装置、読み取り可能な記憶媒体及び電子装置 | |
US10462707B2 (en) | Data transmission method and apparatus | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
CN112910967B (zh) | 在不稳定网络环境中的大文件的网络传输 | |
US10645145B2 (en) | Method and apparatus for accelerating data transmission in a network communication system | |
CN110677221B (zh) | 重传控制方法、通信接口和电子设备 | |
US20210266265A1 (en) | Modifying the congestion control algorithm applied to a connection based on request characteristics | |
US11212368B2 (en) | Fire-and-forget offload mechanism for network-based services | |
WO2023093879A1 (zh) | 数据传输方法、装置、设备和介质 | |
CN113014499B (zh) | 一种数据传输方法、装置、电子设备及存储介质 | |
US11444882B2 (en) | Methods for dynamically controlling transmission control protocol push functionality and devices thereof | |
CN111917525B (zh) | 一种数据传输方法、装置、设备和可读存储介质 | |
CN114390054A (zh) | 一种核心网网络加速方法、电子设备及计算机存储介质 | |
US20080077704A1 (en) | Variable Electronic Communication Ping Time System and Method | |
CN114338574B (zh) | 一种即时通讯方法、管理节点及系统 | |
CN113726817B (zh) | 一种流媒体数据的传输方法、装置及介质 | |
CN110971535A (zh) | 一种通信拥塞控制方法及装置、设备和存储介质 | |
TWI839155B (zh) | 電腦裝置以及應用於電腦裝置的傳輸控制協定封包處理方法 | |
CN113141319A (zh) | 消息处理方法、装置、电子设备及存储介质 | |
CN117714341A (zh) | 一种信息处理方法、装置、设备和存储介质 | |
CN118381839A (zh) | 计算机装置及其传输控制协议报文处理方法 | |
EP3547647A1 (en) | Method and client terminal for retrieving a resource stored on a network equipment | |
CN118041998A (zh) | 数据处理方法、装置、设备以及介质 | |
WO2016177055A1 (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 |