CN111371692B - 基于tcp协议的窗口控制方法、装置和电子设备 - Google Patents
基于tcp协议的窗口控制方法、装置和电子设备 Download PDFInfo
- Publication number
- CN111371692B CN111371692B CN202010173631.9A CN202010173631A CN111371692B CN 111371692 B CN111371692 B CN 111371692B CN 202010173631 A CN202010173631 A CN 202010173631A CN 111371692 B CN111371692 B CN 111371692B
- Authority
- CN
- China
- Prior art keywords
- window
- communication connection
- size
- adjustment coefficient
- transmission window
- 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 187
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006854 communication Effects 0.000 claims abstract description 191
- 238000004891 communication Methods 0.000 claims abstract description 188
- 238000003860 storage Methods 0.000 claims description 87
- 230000015654 memory Effects 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 101150060232 Ctxn1 gene Proteins 0.000 description 3
- 230000009471 action Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/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/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明实施例涉及一种基于TCP协议的窗口控制方法、装置和电子设备,方法包括:获取通信连接的连接状态参数信息;根据所述通信连接的状态参数信息,确定所述通信连接的窗口调整系数;根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整。本发明实施例提供的窗口控制方法,解决了目前缺乏有效地对传输窗口进行控制,疏导拥塞,提高带宽利用率的方法的问题。
Description
技术领域
本发明实施例涉及互联网传输控制技术领域,具体涉及基于TCP协议的窗口控制方法、装置和电子设备。
背景技术
制约最大化利用网络资源的一个重要问题是网络拥塞。网络拥塞会导致网络传输性能下降。发生网络拥塞时,一般会出现数据丢失、时延增加、吞吐量下降等现象。网络拥塞严重时会导致拥塞崩溃。
目前,多采用Reno算法和CUBIC算法来疏导拥塞。Reno算法包含慢启动、拥塞避免和快速重传、快速恢复机制,采用AIMD(Additive Increase Multiplicative Decrease)机制,即加性增加,乘性减少。这样会导致拥塞窗口缩小后需要花费很长时间来恢复,带宽利用率不高,这种延迟对大的数据传输量影响很小,因为慢启动的时间占总时间只是很小的一部分,但是对中小数据量的影响则很大。
CUBIC算法有所改进,CUBIC算法会记录TCP数据包丢失时的拥塞窗口,在未达到记录的拥塞窗口时以近似慢启动的指数方式增加窗口,当接近记录的拥塞窗口时,大幅减小拥塞窗口的增长步幅,维持一段时间后拥塞窗口的增长步幅重新调整为近似指数的快速增长,如果仅是偶然维持了该段时间,CUBIC算法仍在该段时间后快速增长,拥塞窗口必然在再次网络拥塞时造成更多TCP数据包的丢失,造成网络状况进一步恶化。
Reno算法和CUBIC算法在进行拥塞控制时都存在以下相同缺点:都需要按照预设的固定值进行拥塞窗口增长,不能有效利用当前良好的网络带宽,可能采取与实际网络状况和该连接数据发送需求截然相反的调整策略,不能良好匹配应用对于吞吐量的需求。
因此,如何进行窗口控制,减小网络拥塞出现的几率仍然是目前亟待解决的问题。
发明内容
本发明的至少一个实施例提供了一种基于TCP协议的窗口控制方法、装置和电子设备,解决了目前缺乏有效地对传输窗口进行控制,疏导拥塞,提高带宽利用率的方法的问题。
第一方面,本发明实施例提出一种窗口控制方法,该方法包括:
获取通信连接的连接状态参数信息;
根据所述通信连接的连接状态参数信息,确定所述通信连接的窗口调整系数;
根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整。
第二方面,本发明实施例还提出一种窗口控制装置,包括
连接状态参数信息获取模块,用于获取通信连接的连接状态参数信息;
窗口调整系数确定模块,用于根据所述通信连接的状态参数信息,确定所述通信连接的窗口调整系数;
窗口大小调整模块,用于根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整。
第三方面,本发明实施例还提出一种电子设备,所述电子设备包括:现场可编程门阵列和存储器;所述现场可编程门阵列,用于执行上述方法的步骤;所述存储器用于在现场可编程门阵列的控制下存储通信过程中接收和/或发送的数据;或者,
所述电子设备包括:专用集成电路和存储器;所述专用集成电路,用于执行上述方法的步骤;所述存储器用于在专用集成电路的控制下存储通信过程中接收和/或发送的数据
本发明实施例中提供的窗口控制方法,通过获取通信连接的连接状态参数信息;根据所述通信连接的连接状态参数信息,确定所述通信连接的窗口调整系数;根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整,解决了目前缺乏有效地对传输窗口进行控制,疏导拥塞,提高带宽利用率的方法的问题,达到了对窗口有效地进行控制,疏导拥塞,提高带宽利用率的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种窗口控制方法的流程图;
图2为本发明实施例提供的另一种窗口控制方法的流程图;
图3为本发明实施例提供的又一种窗口控制方法的流程图;
图4为本发明实施例提供的又一种窗口控制方法的流程图;
图5为本发明实施例提供的一种窗口控制装置的结构框图;
图6为本发明实施例提供的一种图4中S408的执行方法的流程图;
图7为本发明实施例提供的另一种窗口控制装置的结构框图;
图8为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
如背景技术所述,Reno算法和CUBIC算法在进行拥塞控制时都存在以下相同缺点:都需要按照预设的固定值进行拥塞窗口增长,不能有效利用当前良好的网络带宽,可能采取与实际网络状况和该连接数据发送需求截然相反的调整策略,不能良好匹配应用对于吞吐量的需求。
针对于此,本公开实施例提供一种窗口控制方法,通过获取通信连接的连接状态参数信息;根据通信连接的连接状态参数信息,确定通信连接的窗口调整系数;根据窗口调整系数,对通信连接对应的传输窗口的大小进行调整,解决了目前缺乏有效地对传输窗口进行控制,疏导拥塞,提高带宽利用率的方法的问题,达到了对窗口有效地进行控制,疏导拥塞,提高带宽利用率的目的。
图1是本发明实施例提供的一种窗口控制方法的流程图。本方法可适用于终端与其他终端进行数据传输的情况。该方法可以由执行数据传输操作的终端来执行。该方法包括以下步骤:
S110、获取通信连接的连接状态参数信息。
通信连接可以为基于TCP/IP协议(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)的通信连接,也可以为基于其他协议的通信连接。本申请对此不作限制。
其中,TCP/IP协议是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
本申请对连接状态参数的具体内容不作限制。可选地,连接状态参数包括平均时延、平均数据量、对端接收窗口变化率和丢包率中的至少一个。进一步地,平均时延、平均数据量、对端接收窗口变化率和丢包率等参数可以通过实时对通信连接的状态进行监测、记录,并统计一段时间内通信连接的时延、数据量、对端接收窗口变化率和丢包次数等参数,得到通信连接的平均时延、平均数据量和丢包率等参数。
S120、根据通信连接的连接状态参数信息,确定通信连接的窗口调整系数。
本步骤的实现方法有多种,示例性地,通过大数据统计或工作人员经验,得到连接状态参数信息与窗口调整系数的对应关系;根据至少两个通信连接的连接状态参数信息,以及连接状态参数信息与窗口调整系数的对应关系,分别确定各通信连接的窗口调整系数。
进一步地,可以利用查表法实现本步骤。具体地,将连接状态参数信息与窗口调整系数的对应关系梳理为一个表格。表格的其中一列是窗口调整系数,其余列为连接状态参数。使用S110得到的当前连接状态参数去表格中查找,可以得到当前的窗口调整系数(连接状态参数的值未必要求与表格中的值一致,落入区间即可,区间的大小划分可根据实际情况确定,区间分得越细则表格的行数越多)。
S130、根据窗口调整系数,对通信连接对应的传输窗口的大小进行调整。
本步骤的实现方法有多种,示例性地,窗口调整系数的大小表征调整前后其对应传输窗口大小的变化量。在执行本步骤时,可以根据窗口调整系数,直接对通信连接对应的传输窗口的大小进行调整。
或者,可选地,窗口调整系数的大小表征调整前后其对应传输窗口大小的变化程度,在执行本步骤时,可以先基于窗口调整系数,得到调整前后其对应传输窗口大小的变化量,然后基于调整前后其对应传输窗口大小的变化量,对通信连接对应的传输窗口的大小进行调整。
上述技术方案的实质是,根据通信连接的连接状态参数信息,对传输窗口的大小做实时调整,并且调整前后传输窗口的大小的变化量不是固定的,而是根据信息传输的需求、网络状况动态地进行确定,可以达到实时控制通信连接的窗口,匹配吞吐量的需求,能够降低整个网络的抖动,降低通信连接拥塞发生的几率,从而提高整个网络的带宽利用率。
本发明提供的技术方案主要应用场景是TOE(TCP offload engine,TCP卸载引擎)。TOE是一种TCP加速技术,把原来由主机***实现的软件网络协议栈交由专用网卡的硬件进行处理,减少***数据复制、中断处理、协议开销三方面实现***减负。
图2为本发明实施例提供的另一种窗口控制方法的流程图。本方法为图1中的一个具体示例。本方法可适用于终端与其他终端进行数据传输的情况,尤其适用于同一个终端同时接入多个网络域,同时与多个其他终端进行数据传输的情况。该方法可以由执行数据传输操作的终端来执行。该方法包括以下步骤:
S210、获取至少两个通信连接的连接状态参数信息。
S220、根据至少两个通信连接的连接状态参数信息,分别确定各通信连接的窗口调整系数。
S230、根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整。
上述技术方案的实质是,根据各通信连接的连接状态参数信息,对传输窗口的大小做实时调整,并且调整前后传输窗口的大小的变化量不是固定的,而是根据信息传输的需求动态地进行确定,可以达到实时控制每个通信连接的窗口,能够降低整个网络的抖动,降低各通信连接拥塞发生的几率,从而提高整个网络的带宽利用率。
在上述技术方案中,可选地,分别确定各通信连接的窗口调整系数,包括:分别确定各通信连接的接收窗口调整系数和/或发送窗口调整系数;S230包括:根据通信连接的接收窗口调整系数对各通信连接对应的接收窗口的大小进行调整;和/或,根据通信连接的发送窗口调整系数对各通信连接对应的发送窗口的大小进行调整。这样设置的实质是,实时控制每个通信连接的接收窗口和发送窗口,进一步降低整个网络的抖动,降低各通信连接拥塞发生几率,从而提高整个网络的带宽利用率。
需要说明的是,若利用前文中提及的查表法实现S230时,可选地,接收窗口和发送窗口各使用一个表格。
图3为本发明实施例提供的又一种窗口控制方法的流程图。参见图3,该窗口控制方法包括:
S310、获取至少两个通信连接的连接状态参数信息,执行S320。
S320、判断当前时刻距离通信连接的建立时刻的时长(即通信连接建立时长)是否大于或等于第一预设时长;若是,执行S330;否则,执行S340。
S330、判断当前时刻距离通信连接的重传时刻的时长是否大于或等于第二预设时长;若是,执行S360,否则,执行S340。
S340、获取传输窗口大小的初始值,执行S350。
传输窗口的初始值的获取方法有多种,本申请对此不作限制。可选地,可以根据该通信连接的历史数据量得到。具体的,可以根据该通信连接的历史数据量结合平滑算法得到一个数据量预期值,然后以此数据量预期值得到传输窗口大小的初始值。
S350、对通信连接对应的传输窗口的大小进行调整,使得调整后的传输窗口大小等于传输窗口的初始值。
S360、根据至少两个通信连接的状态参数信息,分别确定各通信连接的窗口调整系数,执行S370。
S370、根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整。
上述技术方案的实质是,仅在当前时刻距离通信连接的建立时刻的时长大于或等于第一预设时长,且当前时刻距离通信连接的重传时刻的时长大于或等于第二预设时长时,根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整。其余情况均根据传输窗口的初始值,对各通信连接对应的传输窗口的大小进行调整。这样设置的原因是,通常在通信连接建立初期,以及刚发生重传的一段时间内,通信连接并不稳定,其所得到的窗口调整系数并不能较准确地反映当前通信连接的连接状态。此时,采用传输窗口的初始值相比于采用窗口调整系数,可以更加合理有效地对传输窗口的大小进行规划。
需要说明的是,在上述技术方案中,按照S310、S320以及S330的顺序顺次执行,这仅是本申请的一个具体示例,而非对本申请的限制。在实际中,S310、S320以及S330三者的执行顺序可以任意调整。示例性地,还可以先执行S330、再执行S320,最后执行S310。
在上述各技术方案中,对多个通信连接对应的传输窗口的大小进行调整时,其调整顺序可以是任意的。本申请对此不作限制。
进一步地,对应于同一个终端同时接入多个网络域的情况,可选地,至少两个通信连接的窗口具有不同的优先级;根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整,包括:按照优先级顺序,根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整。这样设置的目的是对存储空间进行合理分配,以确保相对重要的通信连接网络畅通。其中,通信连接优先级的确定方法有多种,本申请对此不作限制。示例性地,根据所传输数据的频次、所传输数据的数据量以及所传输数据的重要程度中的至少一个确定。
进一步地,还可以设置窗口调整系数包括增大类型窗口调整系数和减小类型窗口调整系数;减小类型窗口调整系数对应的窗口的优先级高于增大类型窗口调整系数对应的窗口;减小类型窗口调整系数对应的窗口中,窗口调整系数的绝对值越大,对应的窗口优先级越高;增大类型窗口调整系数对应的窗口中,窗口调整系数的绝对值越大,对应的窗口优先级越高。减小类型窗口调整系数对应减小传输窗口的操作。增大类型窗口调整系数对应增大传输窗口的操作。由于减小传输窗口会释放该传输窗口占用的部分存储空间,先调整需要减小的传输窗口,可以对存储空间进行最大程度的释放,以便于后续在调整需要增大的传输窗口时,可以把所释放出的存储空间尽可能多地、合理地分配给需要增大的传输窗口,以使得各个通信连接均能处于较佳的连接状态。无论是减小类型窗口调整系数还是增大类型窗口调整系数,其绝对值越大,意味着调整前该窗口拥塞越严重。设置减小类型窗口调整系数对应的窗口中,窗口调整系数的绝对值越大,对应的窗口优先级越高;增大类型窗口调整系数对应的窗口中,窗口调整系数的绝对值越大,对应的窗口优先级越高,可以使得拥塞严重的窗口优先得到疏导,保障整个网络整体的通信效果。
在上述各技术方案的基础上,可选地,根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整,包括:根据减小类型窗口调整系数,对通信连接对应的传输窗口的大小进行调整;根据增大类型窗口调整系数、传输窗口已占用存储空间以及剩余存储空间,对通信连接对应的传输窗口大小进行调整。其中,由于在实际中,减小传输窗口的大小会相应减小该传输窗口占用的存储空间,增大传输窗口的大小需要相应增大该传输窗口占用的存储空间。因此,在实际中,若执行减小传输窗口大小的操作,并不需要考虑传输窗口已占用存储空间以及剩余存储空间情况。而执行增大传输窗口的大小的操作时,若剩余存储空间不足,会制约增大传输窗口的大小的执行效果。因此,执行增大传输窗口的操作时,需要考虑传输窗口已占用存储空间以及剩余存储空间。
图4为本发明实施例提供的又一种窗口控制方法的流程图。参见图4,该窗口控制方法包括:
S401、获取至少两个通信连接的连接状态参数信息,执行S402。
S402、判断当前时刻距离通信连接的建立时刻的时长(即通信连接建立时长)是否大于或等于第一预设时长;若是,执行S403;否则,执行S404。
S403、判断当前时刻距离通信连接的重传时刻的时长(即距离重传时刻的时长)是否大于或等于第二预设时长;若是,执行S406;否则,执行S404。
S404、获取传输窗口大小的初始值,执行S405。
S405、对通信连接对应的传输窗口的大小进行调整,使得调整后的传输窗口大小等于传输窗口的初始值。
S406、根据至少两个通信连接的连接状态参数信息,分别确定各通信连接的窗口调整系数,执行S407。
S407、根据各窗口调整系数,确定传输窗口的调整顺序。
S408、按照传输窗口的调整顺序,根据各窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整。
图5为本发明实施例提供的一种窗口控制装置的结构框图,为了便于理解,下面结合图4、图5,以同时调整多个通信连接的接收窗口大小和发送窗口大小为例,进一步对图4中的技术方案进行详细说明。
假设第一预设时长为tc,第二预设时长为tr,tc与tr可以相等,也可以不相等。其中tc与tr的取值可以根据大数据统计得到,也可以根据工作人员经验设置。并且假设共有m个通信连接的传输窗口需要调整,第n个通信连接的接收窗口的初始值为wrixn。第n个通信连接的发送窗口的初始值为wtixn,其中,m和n均为正整数,且1≤n≤m。参见图5,传输窗口大小初始值确定模块,用于确定并输出接收窗口大小的初始值为wrixn和发送窗口大小的初始值为wtixn。
假设调整后第n个通信连接的接收窗口大小为wrcxn’和调整后发送窗口的大小为wtcxn’,若某个通信连接建立时长小于tc,和/或,距离重传时刻的时长小于tr,表明当前该通信连接网络不稳定,将该通信连接对应的接收窗口大小调整为wrixn(即wrcxn’=wrixn),将该通信连接对应的发送窗口大小调整为wtixn(即wtcxn’=wtixn)。
假设第n个通信连接的接收窗口调整系数crxn和发送窗口调整系数ctxn。crxn和ctxn可以为正值,也可以为负值,当为正值(即为增大类型窗口调整系数)时,表示需要增大窗口,当为负值(即为减小类型窗口调整系数)时,表示需要减小窗口。并且crxn(或ctxn)绝对值越大,表示基于crxn(或ctxn)确定的与其对应的窗口调整前后的变化量越大。
若某个通信连接建立时长大于或等于tc,且距离重传时刻的时长大于或等于tr,表明当前该通信连接网络稳定,确定传输窗口的调整顺序,并基于该传输窗口的调整顺序,根据该通信连接的接收窗口调整系数crxn对该通信连接对应的接收窗口的大小进行调整;根据该通信连接的发送窗口调整系数ctxn对该通信连接对应的发送窗口的大小进行调整。参见图5,状态监测模块用于得到并输出接收窗口调整系数crxn和发送窗口调整系数ctxn。
在确定传输窗口的调整顺序时,将所有需要依赖窗口调整系数调整的窗口的窗口调整系数(包括发送窗口调整系数和接收窗口调整系数),按照先负值后正值排列;多个负值按照从低到高(即绝对值从大到小)排列,多个正值按照从高到低(即绝对值从大到小)排列,得到传输窗口的调整顺序。需要说明的是,在确定调整顺序时,可选地,并不区分发送窗口调整系数和接收窗口调整系数,仅按系数值的大小进行排列,即将发送窗口调整系数和接收窗口调整系数混排在同一序列中。
图6为本发明实施例提供的一种图4中S408的执行方法的流程图。参见图6,图4中S408的执行方法包括:
S408a、按照传输窗口的调整顺序,确定第一个待调整的窗口,执行S408b。
S408b、根据减小类型窗口调整系数,确定调整后的通信连接对应的传输窗口大小,执行S408c。
S408c、根据调整后的通信连接对应的传输窗口大小,对传输窗口大小进行调整,执行S408d。
S408d、更新调整后该传输窗口占用的存储空间大小以及调整后剩余存储空间,执行S408e。
调整减小类型窗口调整系数(即窗口调整系数为负值)对应的通信连接的传输窗口大小时,基于S408b-S408d进行调整。
具体地,若调整对象为接收窗口大小,假设调整前接收窗口大小为wrcxn,调整前接收窗口占用的存储空间为mem_rx_used_n,调整前剩余存储空间为mem_idle,接收窗口调整系数为crxn,在执行S408b时,可以利用公式wrcxn’=wrcxn+wrcxn*crxn确定调整后的通信连接对应的传输窗口大小wrcxn’。在执行S408d时,更新后接收窗口占用的存储空间mem_rx_used_n’=mem_rx_used_n+wrcxn*crxn;剩余存储空间mem_idle’=mem_idle-wrcxn*crxn。
可选地,若调整对象为发送窗口大小,假设调整前发送窗口大小为wtcxn,调整前发送窗口占用的存储空间mem_tx_used_n,调整前剩余存储空间为mem_idle,发送窗口调整系数为ctxn,在执行S408b时,可以利用wtcxn’=wtcxn+wtcxn*ctxn确定调整后的通信连接对应的传输窗口大小wtcxn’。在执行S408d时,更新后发送窗口占用的存储空间mem_tx_used_n’=mem_tx_used_n+wtcxn*ctxn;剩余存储空间mem_idle’=mem_idle-wtcxn*ctxn。
S408e,按照传输窗口的调整顺序,确定下一个待调整的窗口的窗口调整系数是否为减小类型窗口调整系数,若是,执行S408b,否则执行S408f。
S408f、根据增大类型窗口调整系数,确定调整后的剩余存储空间,执行S408g。
S408g、判断调整后的剩余存储空间是否大于0;若是,执行S408h;若否,执行S408i。
S408h、根据增大类型窗口调整系数,确定调整后的通信连接对应的传输窗口大小,执行S408j。
S408i、调整通信连接对应的传输窗口大小,使得调整后的传输窗口大小等于调整前的传输窗口大小与调整前剩余存储空间之和,执行S408m。
S408j、根据调整后的通信连接对应的传输窗口大小,对传输窗口大小进行调整,执行S408k。
S408k,更新调整后传输窗口占用的存储空间大小以及调整后剩余存储空间,执行S408l;
S408l,按照传输窗口的调整顺序,确定是否存在下个待调整的窗口,若是,执行S408f,否则执行S408n。
S408m,更新调整后传输窗口占用的存储空间大小以及调整后剩余存储空间,更新后传输窗口占用的存储空间大小等于更新前的传输窗口占用的存储空间大小与更新前剩余存储空间之和,更新后剩余存储空间为0,执行S408n。
S408n、结束
调整增大类型窗口调整系数(即窗口调整系数为正值)对应的通信连接的传输窗口大小时,无论调整对象为接收窗口大小还是发送窗口大小,均先通过S408f预估假设根据窗口调整系数调整,调整后剩余存储空间mem_idle’。若预估的调整后的剩余存储空间mem_idle’大于0,基于S408h-S408k调整;若预估的调整后的剩余存储空间mem_idle’小于或等于0,基于S408i-S408m调整。
示例性地,若调整对象为接收窗口大小,先预估、计算调整后剩余存储空间mem_idle’,示例性地,可以利用公式mem_idle’=mem_idle-wrcxn*crxn计算。若预估调整后的剩余存储空间mem_idle’大于0,则本次调整后该接收窗口的大小wrcxn’=wrcxn+wrcxn*crxn,对存储空间做更新,更新后该接收窗口占用的存储空间mem_rx_used_n’=mem_rx_used_n+wrcxn*crxn,然后处理下一个窗口系数。若预估调整后的剩余存储空间mem_idle’小于或等于0,则本次调整后该接收窗口的大小wrcxn’=wrcxn+mem_idle,对存储空间做更新,调整后该接收窗口占用的存储空间mem_rx_used_n’=mem_rx_used_n+mem_idle,调整后剩余存储空间mem_idle’=0。不再对之后的传输窗口大小进行调整,因此之后的传输窗口大小和传输窗口占用的存储空间保持不变。此处,“之后的传输窗口”是指根据传输窗口的调整顺序,优先级位于本次调整的窗口的优先级之后的窗口(包括发送窗口和接收窗口)。换言之,“之后的传输窗口”是指窗口调整系数为正值,且小于本次调整所基于的接收窗口调整系数的传输窗口。
若调整对象为发送窗口,先预估、计算调整后剩余存储空间mem_idle’,示例性地,可以利用公式mem_idle’=mem_idle-wtcxn*ctxn计算。若预估调整后的剩余存储空间mem_idle’大于0,则本次调整后该发送窗口的大小为wtcxn’=wtcxn+wtcxn*ctxn,对存储空间做更新,更新后该接收窗口占用的存储空间mem_tx_used_n’=mem_tx_used_n+wtcxn*ctxn,然后处理下一个窗口系数。若预估调整后的剩余存储空间mem_idle’小于或等于0,则本次调整后该发送窗口的大小为wtcxn’=wtcxn+mem_idle,对存储空间做更新,调整后该发送窗口占用的存储空间mem_tx_used_n’=mem_tx_used_n+mem_idle,调整后剩余存储空间mem_idle’=0。不再对之后的传输窗口大小进行调整,因此之后的传输窗口大小和传输窗口占用的存储空间保持不变。此处,“之后的传输窗口”是指根据传输窗口的调整顺序,优先级位于本次调整的窗口的优先级之后的窗口(包括发送窗口和接收窗口)。换言之,“之后的传输窗口”是指窗口调整系数为正值,且小于本次调整所基于的发送窗口调整系数的窗口调整系数的传输窗口。
继续参见图5,当所有的窗口大小全部调整完毕以后,将最新的每个通信连接接收窗口占用存储空间mem_rx_used_n’、发送窗口占用存储空间mem_tx_used_n’发送至存储管理模块。
存储管理模块主要功能是根据窗口调整模块输入的每个通信连接的接收窗口占用存储空间mem_rx_used_n’、发送窗口占用存储空间mem_tx_used_n’,控制存储器的读写、记录并实时更新每个通信连接占用存储器空间的相关存储信息。可选地,将存储器平均划分为a小段存储空间,存储器管理模块内部包含小容量存储器,深度为b,与最大支持的通信连接数对应。小容量存储器的每一行存储空间记录的信息为通信连接编号、接收窗口占用的小段存储空间个数、每小段存储空间的编号,发送窗口占用的小段存储空间个数,每小段存储空间的编号。根据编号值可以推断出每小段存储空间的首地址在存储器中的对应关系。根据a和小段存储空间个数可以完整的记录每个通信连接的接收窗口和发送窗口在存储器中存储信息。
上述技术方案并不是按照固定值不断增大拥塞窗口的大小,而是根据目前连接的状态、剩余存储空间的大小来调整传输窗口大小。由于在实际中网络的总带宽有限,上述技术方案在参考了其他通信连接的状态的情况下,可以尽最大可能避免多通信连接之间互相竞争,导致发送窗口过大出现拥塞的情况。同时避免了在当前网络传输数据总量不大的情况下,拥塞窗口缩小后却需要花费很长时间来恢复的情况发生,可以用最合理的速度进行恢复。由于上述技术方案是参考了所有通信连接及存储空间的状态的前提下,对传输窗口大小进行调整,可以最大限度的避免拥塞发生,提高带宽利用率。此外,上述技术方案可以对接收窗口和发送窗口同时做控制。并且,上述技术方案中多个通信连接的接收窗口和发送窗口共享存储空间,通过硬件灵活调度,可以最大限度的利用存储空间。
基于相同的发明构思,本发明还提供一种窗口控制装置。图7为本发明提供的一种窗口控制装置的结构框图。参见图7,该窗口控制装置包括连接状态参数信息获取模块710、窗口调整系数确定模块720以及窗口大小调整模块730。
连接状态参数信息获取模块710,用于获取至少两个通信连接的连接状态参数信息;
窗口调整系数确定模块720,用于根据至少两个通信连接的状态参数信息,分别确定各通信连接的窗口调整系数;
窗口大小调整模块730,用于根据窗口调整系数,对各通信连接对应的传输窗口的大小进行调整。
本发明实施例所提供的窗口控制装置可执行本发明任意实施例所提供的窗口控制方法,具备执行方法相应的功能模块和有益效果,此处不再赘述。
图8为本发明实施例提供的电子设备的硬件结构示意图,如图8所示,该电子设备包括:FPGA(Field Programmable Gate Array,现场可编程门阵列)810和存储器820。所述FPGA810,用于执行上述任意一种基于TCP协议的窗口控制方法;所述存储器820用于在FPGA810的控制下存储通信过程中接收和/或发送的数据。
可选地,在图8中,FPGA还可替换为专用集成电路(Application SpecificIntegrated Circuit,ASIC)。专用集成电路是指应特定用户要求和特定电子***的需要而设计、制造的集成电路。目前用CPLD(复杂可编程逻辑器件)和FPGA(现场可编程逻辑阵列)来进行ASIC设计是最为流行的方式之一,它们的共性是都具有用户现场可编程特性,都支持边界扫描技术,但两者在集成度、速度以及编程方式上具有各自的特点。ASIC的特点是面向特定用户的需求,ASIC在批量生产时与通用集成电路相比具有体积更小、功耗更低、可靠性提高、性能提高、保密性增强、成本降低等优点。
本发明实施例所提供的电子设备可执行本发明任意实施例所提供的窗口控制方法,具备执行方法相应的功能模块和有益效果,此处不再赘述。
可选地,图5中除存储器外,其他模块均在FPGA内部实现(也可以使用专用芯片实现或其他硬件方式实现),存储器、FPGA焊接在同一块板卡上,存储器与FPGA的引脚有连接,FPGA可控制存储器的读写。处理器通过PCIE或其他高速接口与FPGA通信。
发送数据的源头或接收数据的终点为处理器及配套的其他存储设备,处理器通过PCIE或其他高速接口与FPGA通信。如果处理器需要向某个通信连接发送数据,先通过其他接口向FPGA发送数据,FPGA在图5中的存储器中分配缓存空间(发送窗口),先将待发送数据写入缓存空间,然后再将数据读出通过网口、光口等转发。
窗口调整模块根据网络状态计算得到该通信连接的发送窗口后,会传输给处理器,处理器会根据发送窗口的大小实时调整发送至FPGA的数据大小(待发送数据较大而发送窗口较小时,处理器还有其他缓存器可用,不会发生数据丢失,不在本发明介绍范围内)。
如果处理器从某个通信连接接收数据,数据首先由板卡上的网口、光口等传输至FPGA内部,FPGA会在图5中的存储器中分配缓存空间(接收窗口),先将待接收数据写入存储器中,再将数据读出通过其他接口转发给处理器。
窗口调整模块根据网络状态计算得到该连接的接收窗口后,会将窗口大小告知连接的对端,对端会控制发送数据的大小(本发明中的接收窗口为TCP协议中传输的最大接收窗口,协议中传输的接收窗口会随着已接收数据的大小而变化)。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (11)
1.一种基于TCP协议的窗口控制方法,其特征在于,包括:
获取通信连接的连接状态参数信息;
根据所述通信连接的连接状态参数信息,确定所述通信连接的窗口调整系数;
根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整;
所述通信连接的个数为至少两个;
所述获取通信连接的连接状态参数信息,包括:获取至少两个通信连接的连接状态参数信息;
所述根据所述通信连接的连接状态参数信息,确定所述通信连接的窗口调整系数,包括:根据所述至少两个通信连接的连接状态参数信息,分别确定各所述通信连接的窗口调整系数;
所述根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整,包括:根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整;
所述根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整之前,还包括:
确定当前时刻距离所述通信连接的建立时刻的时长大于或等于第一预设时长;且
确定当前时刻距离所述通信连接的重传时刻的时长大于或等于第二预设时长;
还包括:
获取所述传输窗口的初始值;
在当前时刻距离所述通信连接的建立时刻的时长小于所述第一预设时长时,对所述通信连接对应的传输窗口的大小进行调整,使得调整后的所述传输窗口大小等于所述传输窗口的初始值;或者,
在当前时刻距离所述通信连接的重传时刻的时长小于所述第二预设时长时,对所述通信连接对应的传输窗口的大小进行调整,使得调整后的所述传输窗口大小等于所述传输窗口的初始值。
2.根据权利要求1所述的窗口控制方法,其特征在于,所述连接状态参数包括平均时延、平均数据量、对端接收窗口变化率和丢包率中的至少一个。
3.根据权利要求1所述的窗口控制方法,其特征在于,所述分别确定各所述通信连接的窗口调整系数,包括:
分别确定各所述通信连接的接收窗口调整系数和/或发送窗口调整系数;
所述根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整,包括:
根据所述通信连接的接收窗口调整系数对各所述通信连接对应的接收窗口的大小进行调整;和/或,
根据所述通信连接的发送窗口调整系数对各所述通信连接对应的发送窗口的大小进行调整。
4.根据权利要求1所述的窗口控制方法,其特征在于,至少两个通信连接的窗口具有不同的优先级;
所述根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整,包括:
按照优先级顺序,根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整。
5.根据权利要求4所述的窗口控制方法,其特征在于,所述窗口调整系数包括增大类型窗口调整系数和减小类型窗口调整系数;
减小类型窗口调整系数对应的窗口的优先级高于增大类型窗口调整系数对应的窗口;
减小类型窗口调整系数对应的窗口中,窗口调整系数绝对值越大,对应的窗口优先级越高;
增大类型窗口调整系数对应的窗口中,窗口调整系数绝对值越大,对应的窗口优先级越高。
6.根据权利要求5所述的窗口控制方法,其特征在于,所述根据所述窗口调整系数、对各所述通信连接对应的传输窗口的大小进行调整,包括:
根据所述减小类型窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整;
根据所述增大类型窗口调整系数、所述传输窗口已占用存储空间以及剩余存储空间,对所述通信连接对应的传输窗口大小进行调整。
7.根据权利要求6所述的窗口控制方法,其特征在于,
所述根据所述减小类型窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整,包括:
根据所述减小类型窗口调整系数,确定调整后的所述通信连接对应的传输窗口大小;
根据调整后的所述通信连接对应的传输窗口大小,对所述传输窗口大小进行调整;
更新调整后所述传输窗口占用的存储空间大小以及调整后剩余存储空间。
8.根据权利要求6所述的窗口控制方法,其特征在于,
所述根据所述增大类型窗口调整系数、所述传输窗口已占用存储空间以及剩余存储空间,对所述通信连接对应的传输窗口大小进行调整之前,包括:
根据所述增大类型窗口调整系数,确定调整后的剩余存储空间;
若所述调整后的剩余存储空间大于0,所述根据所述增大类型窗口调整系数、所述传输窗口已占用存储空间以及剩余存储空间,对所述通信连接对应的传输窗口大小进行调整,包括:
根据所述增大类型窗口调整系数,确定调整后的所述通信连接对应的传输窗口大小;
根据调整后的所述通信连接对应的传输窗口大小,对所述传输窗口大小进行调整;
更新调整后所述传输窗口占用的存储空间大小以及调整后剩余存储空间。
9.根据权利要求7所述的窗口控制方法,其特征在于,还包括:
若所述调整后的剩余存储空间小于或等于0,还包括:
调整所述通信连接对应的传输窗口大小,使得调整后的所述传输窗口大小等于调整前的所述传输窗口大小与调整前所述剩余存储空间之和;
更新调整后所述传输窗口占用的存储空间大小以及调整后剩余存储空间,更新后所述传输窗口占用的存储空间大小等于更新前的所述传输窗口占用的存储空间大小与更新前所述剩余存储空间之和,更新后剩余存储空间为0。
10.一种窗口控制装置,其特征在于,包括
连接状态参数信息获取模块,用于获取通信连接的连接状态参数信息;
窗口调整系数确定模块,用于根据所述通信连接的状态参数信息,确定所述通信连接的窗口调整系数;
窗口大小调整模块,用于根据所述窗口调整系数,对所述通信连接对应的传输窗口的大小进行调整;
所述通信连接的个数为至少两个;
所述连接状态参数信息获取模块,用于获取至少两个通信连接的连接状态参数信息;
所述窗口调整系数确定模块,用于根据所述至少两个通信连接的连接状态参数信息,分别确定各所述通信连接的窗口调整系数;
所述窗口大小调整模块,用于根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整;
所述窗口大小调整模块,还用于根据所述窗口调整系数,对各所述通信连接对应的传输窗口的大小进行调整之前,确定当前时刻距离所述通信连接的建立时刻的时长大于或等于第一预设时长;且确定当前时刻距离所述通信连接的重传时刻的时长大于或等于第二预设时长;
所述窗口大小调整模块,还用于获取所述传输窗口的初始值;
在当前时刻距离所述通信连接的建立时刻的时长小于所述第一预设时长时,对所述通信连接对应的传输窗口的大小进行调整,使得调整后的所述传输窗口大小等于所述传输窗口的初始值;或者,
在当前时刻距离所述通信连接的重传时刻的时长小于所述第二预设时长时,对所述通信连接对应的传输窗口的大小进行调整,使得调整后的所述传输窗口大小等于所述传输窗口的初始值。
11.一种电子设备,其特征在于,所述电子设备包括:现场可编程门阵列和存储器;所述现场可编程门阵列,用于执行如权利要求1至9任一项所述方法的步骤;所述存储器用于在现场可编程门阵列的控制下存储通信过程中接收和/或发送的数据;或者,
所述电子设备包括:专用集成电路和存储器;所述专用集成电路,用于执行如权利要求1至9任一项所述方法的步骤;所述存储器用于在专用集成电路的控制下存储通信过程中接收和/或发送的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010173631.9A CN111371692B (zh) | 2020-03-13 | 2020-03-13 | 基于tcp协议的窗口控制方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010173631.9A CN111371692B (zh) | 2020-03-13 | 2020-03-13 | 基于tcp协议的窗口控制方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111371692A CN111371692A (zh) | 2020-07-03 |
CN111371692B true CN111371692B (zh) | 2020-11-27 |
Family
ID=71210458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010173631.9A Active CN111371692B (zh) | 2020-03-13 | 2020-03-13 | 基于tcp协议的窗口控制方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111371692B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117675716A (zh) * | 2024-01-26 | 2024-03-08 | 北京天维信通科技股份有限公司 | 基于修改tcp滑动窗口参数加速文件传输的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355462A (zh) * | 2011-10-09 | 2012-02-15 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7760633B2 (en) * | 2005-11-30 | 2010-07-20 | Cisco Technology, Inc. | Transmission control protocol (TCP) congestion control using transmission delay components |
US20100054123A1 (en) * | 2008-08-30 | 2010-03-04 | Liu Yong | Method and device for hign utilization and efficient flow control over networks with long transmission latency |
CN102204182B (zh) * | 2010-12-29 | 2013-09-11 | 华为技术有限公司 | 一种数据传输的拥塞控制方法及装置 |
CN102752076B (zh) * | 2012-06-20 | 2016-08-10 | 华为技术有限公司 | 数据发送的控制方法及装置及计算机*** |
CN108322401B (zh) * | 2017-01-17 | 2022-01-25 | 网宿科技股份有限公司 | 网络传输拥塞的控制方法及装置 |
CN110247853A (zh) * | 2018-03-09 | 2019-09-17 | 网宿科技股份有限公司 | Tcp拥塞控制方法、***、存储介质及网络服务器 |
-
2020
- 2020-03-13 CN CN202010173631.9A patent/CN111371692B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102355462A (zh) * | 2011-10-09 | 2012-02-15 | 大唐移动通信设备有限公司 | 一种实现tcp传输的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111371692A (zh) | 2020-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110278157B (zh) | 拥塞控制方法及网络设备 | |
CN109120544B (zh) | 一种数据中心网络中基于主机端流量调度的传输控制方法 | |
CN108418767B (zh) | 数据传输方法、设备及计算机存储介质 | |
US11159440B2 (en) | Hybrid packet memory for buffering packets in network devices | |
CN109714267B (zh) | 管理反向队列的传输控制方法及*** | |
US20190253364A1 (en) | Method For Determining TCP Congestion Window, And Apparatus | |
US20140153387A1 (en) | Tuning Congestion Notification for Data Center Networks | |
CN108075988A (zh) | 数据传输方法和装置 | |
US11782869B2 (en) | Data transmission method and related device | |
US11695629B2 (en) | Method and apparatus for configuring a network parameter | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
US20220286402A1 (en) | Method and apparatus for controlling data packet sending, model training method and apparatus, and system | |
CN106537867A (zh) | 一种数据传输方法、装置和*** | |
CN111371692B (zh) | 基于tcp协议的窗口控制方法、装置和电子设备 | |
DE102022121268A1 (de) | Überlastungssteuerung auf basis von netzwerktelemetrie | |
CN111464374B (zh) | 网络延迟控制方法、设备及装置 | |
WO2023116611A1 (zh) | 一种队列控制的方法及装置 | |
US9882820B2 (en) | Communication apparatus | |
CN109787922B (zh) | 一种获取队列长度的方法、设备及计算机可读存储介质 | |
CN112491573A (zh) | 一种网络参数配置方法及装置 | |
CN115967687A (zh) | 快转发报文方法、网络设备、存储介质及计算机程序产品 | |
CN114567566B (zh) | 一种报文处理方法、装置、终端设备及存储介质 | |
CN114785744B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110661731A (zh) | 一种报文处理方法及其装置 | |
CN110300069B (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 | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 100094 room 801, 8 / F, building 3, yard 1, 81 Beiqing Road, Haidian District, Beijing Patentee after: YUSUR TECHNOLOGY Co.,Ltd. Address before: Room 715, Institute of computing, Chinese Academy of Sciences, Haidian District, Beijing 100086 Patentee before: YUSUR TECHNOLOGY Co.,Ltd. |