CN115022247A - 流控制传输方法、装置、设备及介质 - Google Patents
流控制传输方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115022247A CN115022247A CN202210622888.7A CN202210622888A CN115022247A CN 115022247 A CN115022247 A CN 115022247A CN 202210622888 A CN202210622888 A CN 202210622888A CN 115022247 A CN115022247 A CN 115022247A
- Authority
- CN
- China
- Prior art keywords
- target data
- sending
- receiving end
- determining
- 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.)
- Granted
Links
Images
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/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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/22—Traffic shaping
- H04L47/225—Determination of shaping rate, e.g. using a moving window
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种流控制传输方法、装置、设备及介质,该方法包括:基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照当前时刻下的发送速率向接收端发送目标队列中的目标数据;获取当前时刻下针对目标数据的接收情况返回的响应信息;基于目标数据的发送时间信息和响应信息确定下一时刻的往返时延;通过下一时刻的往返时延和发送速率确定下一时刻的拥塞窗口数值;基于下一时刻下的拥塞窗口数值和响应信息确定是否发送目标数据;若判定发送目标数据,则按照下一时刻的发送速率向接收端发送目标数据;当响应信息表征接收端已接收目标队列中所有目标数据时,则停止向接收端发送目标数据。通过上述方案,提高流控制传输效率。
Description
技术领域
本发明涉及数据通信领域,特别涉及流控制传输方法、装置、设备及介质。
背景技术
SCTP(Stream Control Transmission Protocol,即流控制传输协议)是一种可靠的传输协议,由于其流控算法设计与TCP(Transmission Control Protocol,即传输控制协议)一样,发送窗口的增加是靠接收确认消息驱动的,因此数据的往返时延对SCTP的传输速率有直接影响,特别是在高带宽高时延网络中,发送窗口中的数据可以很快被发送出去,而响应消息却迟迟不能回来,造成发送端的长时间等待,会严重降低对带宽的利用率,进而致使传输速率降低。
由于SCTP是基于消息的协议,因此其应用普及程度远不及基于字节流的TCP,所以针对SCTP的优化方法远少于针对TCP的优化方法,但是由于两种协议的相似性,所以针对TCP的优化方法基本上可以应用到SCTP上。目前针对TCP时延的优化方法中主要有三个方面:其一增加发送端滑动窗口大小,存在因突发数据量太大而造成丢失数据的问题;其二fast open,即跳过建立连接直接向接收端发送数据,只解决了建立连接慢的问题,并且容易遭受地址欺骗攻击,安全性降低;其三RBP(Rate-based pacing)方案,只在慢启动阶段收到第一个确认消息之前采用速率受控方式,导致慢启动阶段之后传输速率的增加过程依然有负面影响。
综上可见,如何合理的提高流控制传输的传输速率是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种流控制传输方法、装置、设备及介质,能够合理的提高流控制传输的传输速率。其具体方案如下:
第一方面,本申请公开了一种流控制传输方法,应用于流控制传输协议发送端,包括:
基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据;
获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;
基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;
若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;
当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
可选的,所述基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值之前,还包括:
在与接收端建立连接的过程中,基于向所述接收端发送的INIT消息和获取所述接收端发送的INIT ACK消息之间的时间间隔确定初始的所述往返时延;
当与所述接收端建立联合成功后,确定初始的所述发送速率。
可选的,所述当与所述接收端建立联合成功后,确定初始的所述发送速率之后,还包括:
基于初始的所述往返时延和初始的所述发送速率的乘积确定初始的所述拥塞窗口数值。
可选的,所述确定初始的所述发送速率,包括:
当第一次与所述接收端建立连接时,则基于本地链路带宽确定初始的所述发送速率;
当已与所述接收端建立过连接时,则基于与所述接收端对应的历史发送速率确定初始的所述发送速率。
可选的,所述基于所述当前时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,包括:
计算出所述响应信息中所述接收端对已发送的所述目标数据未进行响应且尚未判定为丢失的在途数据量;
若所述当前时刻下的拥塞窗口数值大于所述在途数据量,则向所述接收端发送目标数据,并将所述当前时刻的发送速率确定为下一时刻的发送速率;
若所述当前时刻下的拥塞窗口数值不大于所述在途数据量,则停止发送所述目标数据,直至所述目标数据超过预设响应时间,然后将所述在途数据量设置为0,并向所述接收端重新发送超过所述预设响应时间的目标数据。
可选的,所述基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,包括:
将所述目标数据的发送时间确定为第一时刻,将接收到所述响应信息的时刻确定为第二时刻,并基于所述第一时刻和所述第二时刻之间的时间间隔确定下一时刻的往返时延。
可选的,所述基于所述当前时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,包括:
获取当前时刻下所述接收端的最大接收速率,并基于所述当前时刻下的拥塞窗口数值、所述响应信息以及所述最大接收速率确定当前时刻是否发送所述目标数据以及所述下一时刻的发送速率。
第二方面,本申请公开了一种流控制传输装置,应用于流控制传输协议发送端,包括:
第一窗口确定模块,用于基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并通过所述发送端的数据发送接口按照所述当前时刻下的发送速率向接收端发送数据集中的目标数据;
第二窗口确定模块,用于获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;
数据发送确定模块,用于基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;
数据发送模块,用于若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;
发送控制模块,用于当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
第三方面,本申请公开了一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的流控制传输方法的步骤。
第四方面,本申请公开了一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的流控制传输方法的步骤。
可见,本申请首先基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据;获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。由此可见,本申请通过当前时刻下的发送速率和往返时延确定出当前时刻下的拥塞窗口数值,因此拥塞窗口无需控制发送速率,只需控制在收到响应消息之前的在途数据量,并且拥塞窗口数值随着往返时延增加而增加,又因为基于所述目标数据的发送时间信息和响应信息确定下一时刻的往返时延,以及基于所述下一时刻的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,所以无需等待接收端对目标数据的确认消息而确定下一时刻是否发送目标数据,减少等待获取确认消息的时间,提高传输目标数据的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种流控制传输方法流程图;
图2为本申请公开的一种具体的流控制传输方法流程图;
图3为本申请公开的一种具体的流控制传输方法流程图;
图4为本申请公开的一种具体的流控制传输方法流程图;
图5为本申请公开的一种流控制传输装置结构示意图;
图6为本申请公开的一种电子设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于SCTP是基于消息的协议,因此其应用普及程度远不及基于字节流的TCP,所以针对SCTP的优化方法远少于针对TCP的优化方法,但是由于两种协议的相似性,所以针对TCP的优化方法基本上可以应用到SCTP上。目前针对TCP时延的优化方法中主要有三个方面:其一增加发送端滑动窗口大小,存在因突发数据量太大而造成丢失数据的问题;其二fast open,即跳过建立连接直接向接收端发送数据,只解决了建立连接慢的问题,并且容易遭受地址欺骗攻击,安全性降低;其三RBP方案,只在慢启动阶段收到第一个确认消息之前采用速率受控方式,导致慢启动阶段之后传输速率的增加过程依然有负面影响。
为此本申请相应地提供了一种流控制传输方案,能够合理的提高流控制传输的传输速率。
参见图1所示,本发明实施例公开了一种流控制传输方法,应用于流控制传输协议发送端,包括:
步骤S11:基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据。
本实施例中,如图2所示,接收端配置缓存窗口(reception buffer window)发送端配置一个拥塞窗口(send congestion window),确定接收端对已发送的目标数据未进行响应且尚未判定为丢失的在途数据量,需注意的是,当前在途数据量不能超过拥塞窗口数值。可以理解的是,发送端在确定在途数据量没有达到最大拥塞窗口数值之前,都应该按照当前时刻下的发送速率进行数据发送和重传。拥塞窗口不再限制发送速率,只负责限制在途数据量,并且在通常情况下根据当前可用内存的大小、用户配置、发送速率(send speed)和往返时延(Round-Trip Time,即RTT)进行确定,因此通过允许采用较大的初始的窗口数值,特别是在协商阶段就初步测试出往返时延的大小,就减少了SCTP协议在开始发送数据的第一个往返时延时间内等待响应的时间,从而允许SCTP可以在连接建立后就立即以较大的发送速率持续发送较多的目标数据,进而对较短时间的连接在大时延网络下的发送速率有明显的提高。
步骤S12:获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值。
本实施例中,通过所述下一时刻的往返时延和发送速率实现对所述下一时刻的拥塞窗口数值进行更新,其中具体过程如下面公式所示:
cwnd=rtt*sspd;
其中cwnd表示拥塞窗口数值,rtt表示往返时延,sspd表示发送速率。
步骤S13:基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据。
本实施例中,所述基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,具体包括:计算出所述响应信息中所述接收端对已发送的所述目标数据未进行响应且尚未判定为丢失的在途数据量;若所述下一时刻下的拥塞窗口数值大于在途数据量,则向所述接收端发送目标数据,并将所述当前时刻的发送速率确定为下一时刻的发送速率;若所述当前时刻下的拥塞窗口数值不大于所述在途数据量,则停止发送所述目标数据,直至所述目标数据超过预设响应时间,然后将所述在途数据量设置为0,并向所述接收端重新发送超过所述预设响应时间的目标数据。
需要注意的是,本实施例中,所述基于所述当前时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,具体包括:获取当前时刻下所述接收端的最大接收速率,并基于所述当前时刻下的拥塞窗口数值、所述响应信息以及所述最大接收速率确定当前时刻是否发送所述目标数据以及所述下一时刻的发送速率。
步骤S14:若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据。
其中可以理解的是,本申请发明将接收端向发送端通告的接收窗口的大小改为接收速率(receiving speed)的大小,以便发送端在确定发送速率时不能超过接收端通告的接收速率,并且拥塞窗口也不再受到接收端缓存的限制,而是随着RTT与发送速率的乘积增大而增大,而接收速率的初始值决定于本地接口带宽和本地策略。
步骤S15:当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
本实施例中,当接收端收到目标队列中所有的目标数据之后,发送端则停止向接收端发送目标数据,并且本申请中所有的下一时刻均为相对于当前时刻的下一时刻。
可见,本申请首先基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据;获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。由此可见,本申请通过当前时刻下的发送速率和往返时延确定出当前时刻下的拥塞窗口数值,因此拥塞窗口无需控制发送速率,只需控制在收到响应消息之前的在途数据量,并且拥塞窗口数值随着往返时延增加而增加,又因为基于所述目标数据的发送时间信息和响应信息确定下一时刻的往返时延,以及基于所述下一时刻的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,所以无需等待接收端对目标数据的确认消息而确定下一时刻是否发送目标数据,减少等待获取确认消息的时间,提高传输目标数据的效率。
参见图3所示,本发明实施例公开了一种具体的流控制传输方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
步骤S21:在与接收端建立连接的过程中,基于向所述接收端发送的INIT消息和获取所述接收端发送的INIT ACK消息之间的时间间隔确定初始的所述往返时延;当与所述接收端建立联合成功后,确定初始的所述发送速率。
本实施例中,所述确定初始的所述发送速率,包括:当第一次与所述接收端建立连接时,则基于本地链路带宽确定初始的所述发送速率;当已与所述接收端建立过连接时,则基于与所述接收端对应的历史发送速率确定初始的所述发送速率。
步骤S22:基于初始的发送速率和往返时延确定初始的拥塞窗口数值,并按照所述初始的发送速率向接收端发送目标队列中的目标数据。
本实施例中,所述基于初始的发送速率和往返时延确定初始的拥塞窗口数值,具体包括:基于初始的所述往返时延和初始的所述发送速率的乘积确定初始的所述拥塞窗口数值。
步骤S23:获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值。
步骤S24:基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据。
步骤S25:若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据。
步骤S26:当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
其中,关于上述步骤S23、S24、S25以及S26更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,本申请在与接收端建立连接过程中,确定初始的往返时延,建立联合成功后,能够确定初始的发送速率为较大的速率,跳过速率试探的最初阶段,进而节省时间;基于初始的往返时延和初始的发送速率,使之在在与接收端建立连接过程中确定出的初始的拥塞窗口数值更加合理,实现了提高流控制传输效率的目的。
参见图4所示,本发明实施例公开了一种流控制传输方法,应用于流控制传输协议发送端,包括:
步骤S31:基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据。
步骤S32:获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时刻和接收到所述响应信息的时刻之间的时间间隔确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值。
本实施例中,所述基于所述目标数据的发送时刻和接收到所述响应信息的时刻之间的时间间隔确定下一时刻的往返时延,具体包括:将所述目标数据的发送时间确定为第一时刻,将接收到所述响应信息的时刻确定为第二时刻,并基于所述第一时刻和所述第二时刻之间的时间间隔确定下一时刻的往返时延。可以理解的是,基于第一时刻和第二时刻之间的时间间隔确定出下一时刻的往返时延之后,基于所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值。
步骤S33:基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据。
本实施例中,可以利用in-flight(在途)记录当前接收端对已发送的所述目标数据未进行响应且未被判定为丢失的在途数据量,并且初始值为0,当发送端发送了目标数据时,in-flight按照发送的目标数据量相应增加,当收到接收端的数据响应消息时in-flight按照被响应的目标数据量相应减小,当判定某些目标数据丢失时in-flight按照丢失的目标数据量相应减小。
本实施例中,发送速率以尽量接近当前的网络带宽为设计目标,拥塞窗口以接近往返时延与发送速率乘积为设计目标,因此只要拥塞窗口允许且有目标数据需要发送就以当前估算的发送速率持续发送目标数据。
步骤S34:若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据。
步骤S35:当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
其中,关于上述步骤S31、S34以及S35更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,本申请基于所述目标数据的发送时间和所述接收端对所述目标数据的响应时间之间的时间间隔确定下一时刻的往返时延,实现对往返时延的实时更新,以便对拥塞窗口数值的更新,使得拥塞窗口随着往返时延增大而增大,在数据传输的全程就可以尽量减少因为等待ACK而停止发送数据的时间,因此对发送速率不产生负面影响,流控制传输更加合理化、高效化。
参见图5所示,本发明实施例公开了一种流控制传输装置,应用于流控制传输协议发送端,包括:
第一窗口确定模块11,用于基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并通过所述发送端的数据发送接口按照所述当前时刻下的发送速率向接收端发送数据集中的目标数据;
第二窗口确定模块12,用于获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;
数据发送确定模块13,用于基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;
数据发送模块14,用于若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;
发送控制模块15,用于当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
可见,本申请首先基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据;获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。由此可见,本申请通过当前时刻下的发送速率和往返时延确定出当前时刻下的拥塞窗口数值,因此拥塞窗口无需控制发送速率,只需控制在收到响应消息之前的在途数据量,并且拥塞窗口数值随着往返时延增加而增加,又因为基于所述目标数据的发送时间信息和响应信息确定下一时刻的往返时延,以及基于所述下一时刻的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,所以无需等待接收端对目标数据的确认消息而确定下一时刻是否发送目标数据,减少等待获取确认消息的时间,提高传输目标数据的效率。
图6为本申请实施例提供的一种电子设备的结构示意图。具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由计算机设备执行的流控制传输方法中的相关步骤。
本实施例中,电源23用于为计算机设备20上的各硬件设备提供工作电压;通信接口24能够为计算机设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制计算机设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由计算机设备20执行的流控制传输方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括计算机设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的由流控制传输过程中执行的方法步骤。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种流控制传输方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种流控制传输方法,其特征在于,应用于流控制传输协议发送端,包括:
基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并按照所述当前时刻下的发送速率向接收端发送目标队列中的目标数据;
获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;
基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;
若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;
当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
2.根据权利要求1所述的流控制传输方法,其特征在于,所述基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值之前,还包括:
在与接收端建立连接的过程中,基于向所述接收端发送的INIT消息和获取所述接收端发送的INIT ACK消息之间的时间间隔确定初始的所述往返时延;
当与所述接收端建立联合成功后,确定初始的所述发送速率。
3.根据权利要求2所述的流控制传输方法,其特征在于,所述当与所述接收端建立联合成功后,确定初始的所述发送速率之后,还包括:
基于初始的所述往返时延和初始的所述发送速率的乘积确定初始的所述拥塞窗口数值。
4.根据权利要求2所述的流控制传输方法,其特征在于,所述确定初始的所述发送速率,包括:
当第一次与所述接收端建立连接时,则基于本地链路带宽确定初始的所述发送速率;
当已与所述接收端建立过连接时,则基于与所述接收端对应的历史发送速率确定初始的所述发送速率。
5.根据权利要求1所述的流控制传输方法,其特征在于,所述基于所述当前时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,包括:
计算出所述响应信息中所述接收端对已发送的所述目标数据未进行响应且尚未判定为丢失的在途数据量;
若所述当前时刻下的拥塞窗口数值大于所述在途数据量,则向所述接收端发送目标数据,并将所述当前时刻的发送速率确定为下一时刻的发送速率;
若所述当前时刻下的拥塞窗口数值不大于所述在途数据量,则停止发送所述目标数据,直至所述目标数据超过预设响应时间,然后将所述在途数据量设置为0,并向所述接收端重新发送超过所述预设响应时间的目标数据。
6.根据权利要求1所述的流控制传输方法,其特征在于,所述基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,包括:
将所述目标数据的发送时间确定为第一时刻,将接收到所述响应信息的时刻确定为第二时刻,并基于所述第一时刻和所述第二时刻之间的时间间隔确定下一时刻的往返时延。
7.根据权利要求1至6任一项所述的流控制传输方法,其特征在于,所述基于所述当前时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据,包括:
获取当前时刻下所述接收端的最大接收速率,并基于所述当前时刻下的拥塞窗口数值、所述响应信息以及所述最大接收速率确定当前时刻是否发送所述目标数据以及所述下一时刻的发送速率。
8.一种流控制传输装置,其特征在于,应用于流控制传输协议发送端,包括:
第一窗口确定模块,用于基于当前时刻下的发送速率和往返时延确定当前时刻下的拥塞窗口数值,并通过所述发送端的数据发送接口按照所述当前时刻下的发送速率向接收端发送数据集中的目标数据;
第二窗口确定模块,用于获取当前时刻下针对所述目标数据的接收情况返回的响应信息,并基于所述目标数据的发送时间信息和所述响应信息确定下一时刻的往返时延,然后通过所述下一时刻的往返时延和发送速率确定所述下一时刻的拥塞窗口数值;
数据发送确定模块,用于基于所述下一时刻下的拥塞窗口数值和所述响应信息确定是否发送所述目标数据;
数据发送模块,用于若判定发送所述目标数据,则按照所述下一时刻的发送速率向所述接收端发送所述目标数据;
发送控制模块,用于当所述响应信息表征所述接收端已接收到所述目标队列中所有目标数据时,则停止向所述接收端发送所述目标数据。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的流控制传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的流控制传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210622888.7A CN115022247B (zh) | 2022-06-02 | 2022-06-02 | 流控制传输方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210622888.7A CN115022247B (zh) | 2022-06-02 | 2022-06-02 | 流控制传输方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115022247A true CN115022247A (zh) | 2022-09-06 |
CN115022247B CN115022247B (zh) | 2023-10-20 |
Family
ID=83072693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210622888.7A Active CN115022247B (zh) | 2022-06-02 | 2022-06-02 | 流控制传输方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022247B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1557072A (zh) * | 2001-09-21 | 2004-12-22 | ���˹���Ѷ��� | 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统 |
US20070121511A1 (en) * | 2005-11-30 | 2007-05-31 | Cisco Technology, Inc. | Transmission control protocol (TCP) congestion control using transmission delay components |
US7916640B1 (en) * | 2005-06-20 | 2011-03-29 | Marvell International Ltd. | Buffer overflow prevention for network devices |
CN104683259A (zh) * | 2015-02-15 | 2015-06-03 | 上海帝联信息科技股份有限公司 | Tcp拥塞控制方法及装置 |
WO2016138786A1 (zh) * | 2015-03-02 | 2016-09-09 | 华为技术有限公司 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
CN107171969A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN109863782A (zh) * | 2016-10-26 | 2019-06-07 | 瑞典爱立信有限公司 | 5g拥塞控制 |
CN111835649A (zh) * | 2019-04-15 | 2020-10-27 | 深信服科技股份有限公司 | 一种数据发送方法、装置及相关组件 |
CN111970208A (zh) * | 2020-08-27 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 网络传输方法、装置、设备及计算机可读存储介质 |
CN112118191A (zh) * | 2020-09-18 | 2020-12-22 | 首都师范大学 | 多路径传输拥塞控制方法、装置、控制设备及存储介质 |
CN112653635A (zh) * | 2020-12-23 | 2021-04-13 | 百果园技术(新加坡)有限公司 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
CN113965517A (zh) * | 2021-09-09 | 2022-01-21 | 深圳清华大学研究院 | 网络传输方法、装置、电子设备及存储介质 |
CN113992548A (zh) * | 2021-10-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 一种带宽测速方法及装置 |
-
2022
- 2022-06-02 CN CN202210622888.7A patent/CN115022247B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1557072A (zh) * | 2001-09-21 | 2004-12-22 | ���˹���Ѷ��� | 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统 |
US7916640B1 (en) * | 2005-06-20 | 2011-03-29 | Marvell International Ltd. | Buffer overflow prevention for network devices |
US20070121511A1 (en) * | 2005-11-30 | 2007-05-31 | Cisco Technology, Inc. | Transmission control protocol (TCP) congestion control using transmission delay components |
CN104683259A (zh) * | 2015-02-15 | 2015-06-03 | 上海帝联信息科技股份有限公司 | Tcp拥塞控制方法及装置 |
WO2016138786A1 (zh) * | 2015-03-02 | 2016-09-09 | 华为技术有限公司 | 传输控制协议tcp数据包的发送方法、发送装置和系统 |
CN107171969A (zh) * | 2016-03-07 | 2017-09-15 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN109863782A (zh) * | 2016-10-26 | 2019-06-07 | 瑞典爱立信有限公司 | 5g拥塞控制 |
CN111835649A (zh) * | 2019-04-15 | 2020-10-27 | 深信服科技股份有限公司 | 一种数据发送方法、装置及相关组件 |
CN111970208A (zh) * | 2020-08-27 | 2020-11-20 | 腾讯科技(深圳)有限公司 | 网络传输方法、装置、设备及计算机可读存储介质 |
CN112118191A (zh) * | 2020-09-18 | 2020-12-22 | 首都师范大学 | 多路径传输拥塞控制方法、装置、控制设备及存储介质 |
CN112653635A (zh) * | 2020-12-23 | 2021-04-13 | 百果园技术(新加坡)有限公司 | 一种拥塞控制算法的改进方法、装置、设备及存储介质 |
CN113965517A (zh) * | 2021-09-09 | 2022-01-21 | 深圳清华大学研究院 | 网络传输方法、装置、电子设备及存储介质 |
CN113992548A (zh) * | 2021-10-27 | 2022-01-28 | 北京达佳互联信息技术有限公司 | 一种带宽测速方法及装置 |
Non-Patent Citations (5)
Title |
---|
BALAJEE VAMANAN: ""Deadline-aware datacenter tcp"" * |
N TAHERKHANI: ""Centralized and localized data congestion control strategy for vehicular ad hoc networks using a machine learning clustering algorithm"", 《IEEE》 * |
YP FALLAH: ""Congestion control based on channel occupancy in vehicular broadcast networks"", 《IEEE》 * |
刘俊: ""《基于RTT自适应的无线TCP改进算法》"", 《计算机工程与设计》 * |
刘俊: ""基于RTT自适应的无线TCP改进算法"" * |
Also Published As
Publication number | Publication date |
---|---|
CN115022247B (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3742690B1 (en) | Data transmission method, computing device, network device and data transmission system | |
US10462707B2 (en) | Data transmission method and apparatus | |
US7940665B2 (en) | Transparent optimization for transmission control protocol flow control | |
JP3789120B2 (ja) | Tcpにおける受信側主体のrtt測定方法 | |
EP1771742B1 (en) | High performance tcp for systems with infrequent ack | |
EP1629656B1 (en) | Processing data for a tcp connection using an offload unit | |
US7978599B2 (en) | Method and system to identify and alleviate remote overload | |
US7133361B2 (en) | Method and system for improvement of network performance over asymmetic links | |
US7376737B2 (en) | Optimised receiver-initiated sending rate increment | |
US7787379B2 (en) | Integrated flow control | |
US8583053B1 (en) | Optimizing TCP traffic for mobile devices using TCP backoff thresholds | |
EP1701506B1 (en) | Method and system for transmission control protocol (TCP) traffic smoothing | |
JP6541697B2 (ja) | トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ | |
EP3806366B1 (en) | Method for controlling retransmission, communication interface, and electronic device | |
KR20170097129A (ko) | 데이터 전송 방법 및 장치 | |
CN114978433B (zh) | 数据传输方法、装置、设备、存储介质及计算机程序产品 | |
US20160277943A1 (en) | Network system, control method of network system, communication device, and program | |
CN115022247B (zh) | 流控制传输方法、装置、设备及介质 | |
US20120278459A1 (en) | Throttling bursty cpu utilization due to bursty tcp flows | |
EP1744495B1 (en) | Round trip time estimation | |
US11683250B2 (en) | Managing proxy throughput between paired transport layer connections | |
JP2019114947A (ja) | 通信装置、通信装置の制御方法およびプログラム | |
CN115174476B (zh) | 一种ecn控制方法、装置以及介质 | |
KR101933175B1 (ko) | 서버와 클라이언트간 통신을 중개하는 중개장치 | |
JP2006005833A (ja) | データ通信装置、データ通信方法、データ通信プログラムおよび記録媒体 |
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 |