CN117692396B - 一种复杂网络环境下的tcp单边加速方法及装置 - Google Patents
一种复杂网络环境下的tcp单边加速方法及装置 Download PDFInfo
- Publication number
- CN117692396B CN117692396B CN202410156950.7A CN202410156950A CN117692396B CN 117692396 B CN117692396 B CN 117692396B CN 202410156950 A CN202410156950 A CN 202410156950A CN 117692396 B CN117692396 B CN 117692396B
- Authority
- CN
- China
- Prior art keywords
- window
- current
- congestion
- time delay
- network environment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000001133 acceleration Effects 0.000 title claims abstract description 37
- 230000005540 biological transmission Effects 0.000 claims abstract description 78
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 52
- 238000001514 detection method Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 230000001934 delay Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 6
- 238000005259 measurement Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 238000012216 screening Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 3
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 208000011580 syndromic disease Diseases 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 239000002699 waste material Substances 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- 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/11—Identifying congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种复杂网络环境下的TCP单边加速方法及装置,该方法步骤包括:识别当前网络环境是否存在固有抖动;当识别到存在固有抖动时,估算当前网络环境的最大带宽;根据估算的最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口;实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的拥塞窗口调整当前的发送窗口,其中当最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将发送窗口调整为当前确定出的拥塞窗口,否则根据比值或差值控制减小当前的发送窗口。本发明能够有效提高复杂网络环境下链路带宽的利用率以及数据传输速率,且具有实现方法简单、成本低、灵活性强等优点。
Description
技术领域
本发明涉及网络数据传输技术领域,尤其涉及一种复杂网络环境下的TCP(Transmission Control Protocol,传输控制协议)单边加速方法及装置。
背景技术
复杂网络环境通常具有以下三个特征:1、大时延(20-60ms);2、高带宽(单个TCP连接≥2000Gbps);3、具有一定的固有抖动和丢包。传统TCP协议中,在不限定物理链路带宽的前提下,随着时延的增大,传输速率的上限值会变得越小、带宽利用率越低,此外,相同平均时延下丢包、抖动会进一步导致传输速率降低,不能满足复杂网络环境下的数据传输需求。
现有技术中TCP加速方式包括单边加速和双边加速两种,其中双边加速通常采用数据缓存、流量压缩、多路径转发等方式实现,但是必须要求收发两端协同实现,而在复杂网络环境下收发两端往往难以协调沟通。单边加速方式则是通过优化发送过程以增加带宽利用率,达到加速的目的,这种方式只需要发送端单边完成,不涉及接收端。由于传统拥塞控制算法往往不适应现代网络环境,导致对拥塞窗口取值不准确,进而造成TCP速率降低,因而目前TCP单边加速通常是通过优化拥塞控制算法来实现。但是传统拥塞控制算法,以经典的BIC(Binary increase,二进制增量)算法为例,在具有一定的固有丢包的复杂网络环境下,即使没有拥塞也可能产生丢包,而丢包会大大增加算法对拥塞的误判,因而并不适用于有固有抖动的网络环境。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种实现方法简单、成本低、灵活性强的复杂网络环境下的TCP单边加速方法及装置,能够有效提高复杂网络环境下链路带宽的利用率以及数据传输速率。
为解决上述技术问题,本发明提出的技术方案为:
一种复杂网络环境下的TCP单边加速方法,步骤包括:
识别当前网络环境是否存在固有抖动;
当识别到存在固有抖动时,估算当前网络环境的最大带宽;
根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口;
实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的所述拥塞窗口调整当前的发送窗口,其中当所述最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将所述发送窗口调整为当前确定出的拥塞窗口,否则根据所述比值或差值控制减小当前的发送窗口。
进一步的,所述识别当前网络环境是否存在固有抖动的步骤包括:
统计每个TCP连接时记录的RTT的加权移动平均值以及时延;
根据各个所述加权移动平均值与时延之间大小关系的变化趋势,判定当前网络环境是否存在固有抖动。
进一步的,所述根据各个所述加权移动平均值与时延之间大小关系的变化趋势,判定当前网络环境是否存在固有抖动的步骤包括:
分别计算各个所述加权移动平均值与时延之间的差值;
如果各个所述加权移动平均值与时延之间的差值在指定时长内持续保持正值或持续保持负值,则判定当前网络处于稳定状态,否则判定存在固有抖动。
进一步的,采用在指定时长内按照指定速率增长拥塞窗口的方式,估算出当前网络环境的所述最大带宽,步骤包括:
将当前传输速率作为最大传输速率,在基于BBR拥塞算法计算得到的拥塞窗口的基础上增加一个探测量,并判断增加后传输速率是否发生改变,如果传输速度增加则继续增加一个探测量,直至传输速率不再增加或增加量小于预设阈值,得到当前环境的最大传输速率。
进一步的,所述根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口包括:使用平均偏差修正最小时延得到固定时延,根据所述固定时延以及估算的所述最大带宽确定出当前的拥塞窗口,所述最小时延由BBR拥塞算法从TCP测量出的时延中筛选出。
进一步的,所述拥塞窗口按照下式确定得到:
其中,Cwnd为拥塞窗口,min_rtt为使用BBR拥塞算法计算得到的最小时延,mdev为时延的平均偏差,bw为估算的当前网络环境的最大带宽。
进一步的,所述实时根据最新接收窗口与最大接收窗口之间的比值、当前的所述拥塞窗口调整当前的发送窗口包括:当最新接收窗口与最大接收窗口之间的比值为1或最新接收窗口与最大接收窗口之间的差值为0时,将所述发送窗口调整为当前的拥塞窗口,否则根据所述比值与1之间的差值或者最新接收窗口与最大接收窗口之间的差值确定减小量。
进一步的,将最新接收窗口与最大接收窗口之间的比值与所述拥塞窗口相乘作为当前的所述发送窗口,计算表达式为:
其中,SWnd为发送窗口,CWnd为拥塞窗口,RWnd_last为最新接收窗口,最大接收窗口为最大接收窗口。
一种复杂网络环境下的TCP单边加速装置,包括:
抖动识别模块,用于识别当前网络环境是否存在固有抖动;
最大带宽估算模块,用于当识别到存在固有抖动时,估算当前网络环境的最大带宽;
拥塞窗口确定模块,用于使用平均偏差修正最小时延得到固定时延,根据所述固定时延以及估算的所述最大带宽确定出当前的拥塞窗口,所述最小时延由BBR拥塞算法从TCP测量出的时延中筛选出;
发送窗口调整模块,用于实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的所述拥塞窗口调整当前的发送窗口,其中当所述最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将所述发送窗口调整为当前确定出的拥塞窗口,否则根据所述比值或差值控制减小当前的发送窗口。
一种复杂网络环境下的TCP单边加速装置,包括处理器以及存储器,所述存储器用于存储计算机程序,所述处理器用于执行所述计算机程序以执行如上述方法。
与现有技术相比,本发明的优点在于:
1、本发明通过识别网络环境的固有抖动情况,每当识别到存在固有抖动时,估算当前网络环境的最大带宽,进而在传统BBR拥塞控制算法的基础上,利用估算的最大带宽以及BBR拥塞控制算法得到的最小时延确定出拥塞窗口,基于确定出的拥塞窗口优化发送窗口的取值,实时利用最新接收窗口与最大接收窗口之间的大小关系调整发送窗口,使得发送窗口既考虑了接收方的接收能力,又能尽量贴近拥塞窗口,能够实现TCP单边加速,同时充分利用链路带宽,提高传输速率,满足存在固有抖动的复杂网络环境的数据传输需求。
2、本发明进一步在BBR拥塞控制算法的基础上进行优化,使用平均偏差修正BBR拥塞控制算法计算得到的最小时延作为固定时延,不仅可以实现固定时延准确估计,还可以避免长时间测量固有时延造成的输出速率低下的问题,再利用该固定时延与最大带宽可以更为精准的确定出拥塞窗口,进一步提高发送窗口确定的精度与可靠性。
附图说明
图1是本实施例复杂网络环境下的TCP单边加速方法的实现流程示意图。
图2是 Linux中TCP发送过程的实现流程示意图。
图3是本实施例中发送窗口调整优化的原理示意图。
图4是本实施例中基于调整优化后发送窗口的TCP发送过程实现流程示意图。
图5是本发明在具体应用实施例中实现TCP单边加速的实现流程示意图。
具体实施方式
以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。
以卫星网络为例的复杂网络环境中,地面站之间遥感数据的汇集分发过程中,由于较远的地域跨度和较高的传输速率要求,数据传输网络即会具备大时延、高带宽的特性,且时延通常在20-60ms,并有一定的固有抖动及丢包,带宽利用率要求至少在65%以上,即为复杂网络环境。传统TCP协议的传输速率无法随着带宽提高而提高,随着时延增大带宽利用率还会越低,难以满足地面站之间的数据汇集分发要求。例如不限定物理链路带宽时,卫星地面站之间基于TCP协议进行数据汇集分发时,每路最大传输速率与时延的关系如表1所示。
表1:最大传输速率与时延的关系。
以20ms时延为例,带宽高于1075Mbps时,TCP传输速率无法随着带宽提高而提高。即无论带宽如何变化,时延20ms时,每一路TCP传输速率的上限是1075Mbps,带宽利用率为53%,不能满足65%以上的指标要求。且时延越大,传输速率上限值越小、带宽利用率越低,这难以满足地面站之间的数据汇集分发要求。
BBR(Bottleneck Bandwidth and Round-trip Propagation Time)拥塞控制算法是通过分时测量链路中的固有时延和瓶颈带宽,并且将拥塞窗口设置为时延带宽积(即链路容积),可以较好的应对链路中的随机丢包。在复杂网络环境下,除了拥塞控制算法,另一个限制链路带宽利用率的因素是发送窗口的取值方法。现有技术中TCP的发送窗口的取值方式通常是选取拥塞窗口和接收窗口中的较小值,接收窗口通常不会大于接收缓存,因此相应的发送窗口无法大于接收缓存,而当接收窗口小于拥塞窗口时,发送过程中发送窗口始终小于拥塞窗口,会导致带宽浪费,进而使传输速率降低。如果要提高带宽利用率以此提升传输速率,可以通过修改收发两端的网络配置,使接收端的接收缓存和发送端的发送缓存都比链路容积更大,但是该类方式必须收发两端均需修改配置,无法仅在发送端单边完成,配置不便且缓存浪费严重。通过优化发送窗口取值,可以实现更合理、更灵活的带宽利用率提升,且仅需在发送端配置,可以实现单边加速模式。
本发明综合考虑上述问题,通过先识别网络环境的固有抖动情况,每当识别到存在固有抖动时,估算当前网络环境的最大带宽以估算链路容积,然后基于BBR拥塞控制算法,利用估算的最大带宽以及对BBR拥塞控制算法的最小时延确定出拥塞窗口,实时利用最新接收窗口与最大接收窗口之间的大小关系以及确定出的拥塞窗口优化发送窗口的取值,当最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,即最新接收窗口与最大接收窗口较为接近时,以拥塞窗口作为发送窗口,否则比值或差值较大时则依据比值或差值减小发送窗口,使得发送窗口既考虑了接收方的接收能力,又能尽量贴近拥塞窗口,能够充分利用链路带宽,提高传输速率,满足存在固有抖动的复杂网络环境的数据传输需求。
如图1所示,本实施例复杂网络环境下的TCP单边加速方法的步骤包括:
步骤S1:识别当前网络环境是否存在固有抖动;
步骤S2:当识别到存在固有抖动时,估算当前网络环境的最大带宽;
步骤S3:根据估算的最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口;
步骤S4:实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的所述拥塞窗口调整当前的发送窗口,其中当最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将发送窗口调整为当前确定出的拥塞窗口,否则根据比值或差值控制减小当前的发送窗口。
本实施例中,步骤S1中识别当前网络环境是否存在固有抖动的具体步骤包括:
步骤S101.统计每个TCP连接时记录的RTT的加权移动平均值以及时延;
步骤S102.根据各个加权移动平均值与时延之间大小关系的变化状态,判定当前网络环境是否存在固有抖动。
每个TCP连接会记录RTT(Round-Trip Time,往返时延)的加权移动平均值SRTT。例如,为了提高代码效率,Linux代码中RTT实际为加权移动平均值的8倍。如果网络没有固有抖动,一定时间内最新的时延,要么总是一直大于加权移动平均值,要么总是小于加权移动平均值,如果反复在加权移动平均值上下变化,则可以认为网络环境具有固有抖动。本实施例利用记录的加权移动平均值,通过统计比较各个加权移动平均值与时延之间大小关系的变化状态,可以快速的判别当前网络环境是否存在固有抖动。例如,如果在一定时长内统计的各个加权移动平均值均大于时延,或者一定时长内统计的各个加权移动平均值均小于时延,可以判定当前网络环境时稳定的,否则可以判定为时具有固有抖动。
本实施例中,步骤S102中根据各个加权移动平均值与时延之间大小关系的变化状态,判定当前网络环境是否存在固有抖动的步骤包括:
分别统计各个加权移动平均值与时延之间的差值;
如果各个加权移动平均值与时延之间的差值在指定时长内持续保持正值或持续保持负值,则判定当前网络处于稳定状态,否则判定存在固有抖动。
本实施例通过对比和统计加权移动平均值和时延的大小值,利用加权移动平均值与时延之间的差值大小的正负状态判断权移动平均值和时延之间大小关系的变化趋势,如果加权移动平均值和时延的差值一直是正数或者一直是负数,则认为网络稳定,如果差值正负号反复变化,则认为网络环境存在固有抖动,可以进一步提高固有抖动判断的便携性以及效率。
可以理解的是,除上述利用各个加权移动平均值与时延之间的差值正负状态,各加权移动平均值与时延之间的大小关系,判断网络环境是否存在固有抖动的方式以外,本领域技术人员也可以根据实际需求采用其他方式进行固有抖动的判断。
本实施例中,步骤S02具体采用周期性在指定时长内按照指定速率增长拥塞窗口的方式,估算出当前网络环境的最大带宽,即识别出网络环境存在固有抖动后,周期性地在一定时间内缓慢增长拥塞窗口的方式不断进行试探,最终估算出最大带宽。上述估算出当前网络环境的最大带宽的具体步骤包括:将当前传输速率作为最大传输速率;在基于BBR拥塞算法计算得到的拥塞窗口的基础上增加一个探测量,判断增加后传输速率是否发生改变,如果传输速度增加则继续增加一个探测量,直至传输速率不再增加或增加量小于预设阈值,得到当前环境的最大传输速率。
在具体应用实施例中,首先基于BBR算法计算得到时延带宽积,将当前传输速率记录为最大传输速率,在原基于BBR算法计算得到的时延带宽积的基础上,将拥塞窗口增加一个探测量,拥塞窗口增加后的一个RTT里,如果传输速率变大到预期值或以上,则使用增加后的传输速率更新最大传输速率,并且继续增加一个探测量,如果传输速率不再增加或者增长少于预期值,则认为当前最大传输速率即为所需估算的最大带宽。上述探测量、预期值、测量时间、周期总时间等参数均可以根据实际网络环境、需求进行具体配置。
本实施例中,根据估算的最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口包括:使用平均偏差修正最小时延得到固定时延,根据固定时延以及估算的最大带宽确定出当前的拥塞窗口,最小时延由BBR拥塞算法从TCP测量出的时延中筛选出,即在TCP测量出时延后,基于BBR算法从中筛选出最小时延。
传统BBR拥塞控制算法中,一是会将测量得到的最小时延作为链路中的固有时延来计算时延带宽积,在有固有抖动的网络环境下,使用最小时延计算链路容积会导致计算值比实际链路容积小,偏小的链路容积进而会导致测量到的带宽偏小,带宽偏小又会进一步导致计算的链路容积偏小,从而最终导致计算得到的链路容积与实际链路容积差别巨大;二是具有固有抖动的链路中BBR测量最小时延的次数会大大增加,导致传输性能损耗,降低发送速率,因而传统BBR拥塞算法直接适用于有存在固有抖动的复杂网络环境中时仍会限制传输性能。
即网络存在固有抖动的环境下,传统BBR算法测得的最小时延并不是网络的固有时延,实际上发送速率远小于带宽时的平均时延,如果长时间使用远小于带宽的发送速率测量此时的平均时延,会造成带宽利用率低下,而测量时间不足又会导致计算平均时延样本不够。本实施例在网络存在固有抖动的环境下,在传统BBR拥塞控制算法的基础上进行优化,使用平均偏差修正BBR拥塞控制算法计算得到的最小时延作为固定时延,即使用最小时延和平均偏差综合估计平均时延,不仅可以实现准确估计,还可以避免长时间测量固有时延造成的输出速率低下的问题,再利用该固定时延与最大带宽可以更为精准的确定出拥塞窗口,进一步提高后续发送窗口确定的精度与可靠性。
本实施例中,将BBR拥塞控制算法计算得到的最小时延与平均偏差之和作为平均时延,将平均时延与最大带宽相乘即计算得到时延带宽积,并将该值作为拥塞窗口,具体按照下式确定出拥塞窗口:
(1)
其中,Cwnd为拥塞窗口,min_rtt为使用BBR拥塞算法计算得到的最小时延,mdev为时延的平均偏差,bw为估算的当前网络环境的最大带宽。
在具体应用实施例中,计算实时测得的时延IRTT与时延加权移动平均SRTT之差的绝对值得到时延偏差,由时延偏差的加权移动平均得到平均偏差mdev。
可以理解的是,除按照上述式(1)确定出拥塞窗口以外,也可以根据实际需求采用其他计算方式确定出拥塞窗口,例如在公式(1)的基础上分别为最小时延、平均偏差设置对应的权重,或者增加一定的裕量等。
本实施例中,实时根据最新接收窗口与最大接收窗口之间的比值、当前的拥塞窗口调整当前的发送窗口包括:当最新接收窗口与最大接收窗口之间的比值为1时或最新接收窗口与最大接收窗口之间的差值为0,表明最新接收窗口即为最大接收窗口,当前接收端有充足的接收能力,将发送窗口调整为当前的拥塞窗口,否则表明当前接收端的接收能力有限,根据比值与1之间的差值或者最新接收窗口与最大接收窗口之间的差值确定减小量,以使得最新接收窗口与最大接收窗口越接近则发送窗口越接近拥塞窗口,最新接收窗口与最大接收窗口差距越大则发送窗口越小,从而发送窗口能够充分考虑接收端的实时接收能力,同时又能尽量贴近拥塞窗口,使得可以充分利用链路带宽,提高传输速率。
以Linux的TCP实现中为例,发送窗SWnd与最新的接收窗RWnd_last、拥塞控制算法得到的拥塞窗口CWnd三者的关系为:发送窗SWnd取RWnd_last和CWnd中的较小值,如以下公式所示:
(2)
其中RWnd_max为连接建立后收到的最大接收窗口的值,并在每次更新接收窗口时,判断最新接收窗口(记为RWnd_last)是否大于原来的值,如果最新接收窗口更大则更新该值,即RWnd_max更新方式如下所示:
(3)
Linux中TCP发送过程如图2所示,在TCP发送端,数据在构建协议头、分包等操作后,调用IP层协议前,执行以下流程:更新TCP时间戳;判断是否有等待发送的缓存的数据包;根据统计的传输速率,判断是否添加发包时间间隔;判断链路中数据是否小于拥塞窗口CWnd以及是否小于接收窗口Rwnd,如果是则进行相应检查,如执行Nagle算法防止愚笨窗口综合征;判断网络设备缓存队列大小,将数据发往IP层处理。如上述的传统TCP实现中发送窗SWnd是直接取最新接收窗口RWnd_last、最大接收窗口RWnd_max与拥塞窗口CWnd的最大值,发送端的发送速率会受到接收端接收缓存上限的制约。
拥塞窗口体现了链路状态,RWnd_last/RWnd_max或者|RWnd_last-RWnd_max|可以体现接收端的接收能力,本实施例综合拥塞窗口与最新接收窗口与最大接收窗口之间的比值/差值共同协调确定出发送窗口,能够综合考虑接收端的接收能力以及发送窗口的大小,使得发送端能够有足够的发送缓存,避免发送速率受到对方接收缓存上限的制约。发送端的缓存需要容纳发送队列和重传队列,该缓存大小稍大于链路容积即可。
优选的,将最新接收窗口与最大接收窗口之间的比值与拥塞窗口相乘作为当前的发送窗口,计算表达式为:
(4)
其中,SWnd为发送窗口,CWnd为拥塞窗口,RWnd_last为最新接收窗口,最大接收窗口为最大接收窗口。
RWnd_last/RWnd_max的大小不会超过1,系数接近1说明接收端的缓存比较空,有大量的缓存用于接收数据,按照上式(4)确定出的发送窗口即为拥塞窗口,反之则说明接收端的缓存逐渐被填满,应该适当降低发送窗口,按照上式(4)即是按照比值大小取相应比例的拥塞窗口作为发送窗口,以相应的减少发送窗口。当该系数为0时,发送端停止发送数据。按照上述方式,能够监测接收端的接收窗口变化,基于接收窗口变化状态主动调节发送窗口,在接收端有充足接收能力时,发送窗口接近拥塞窗口,发送过程得以充分利用带宽,进而主动影响接收端缓存,缓存被逐渐填满会引起发送窗口变小,进而传输速率变小,传输速率变小可以有利于接收端排空缓存,反之,缓存被逐渐排空又会引起发送窗口增加,从而最终使发送窗口和接收缓存趋于一个稳定平衡的状态,如图3所示。
可以理解的是,除按照公式(4)计算除发送窗口以外,也可以根据实际需求利用最新接收窗口与最大接收窗口之间的比值与拥塞窗口按照其他计算方式实现,例如在式(4)的基础上进行优化调整,增加调整系数等方式。也可以使用最新接收窗口与最大接收窗口之间的差值代替比值进行计算,例如当最新接收窗口与最大接收窗口之间的差值大于0、小于第一预设值,则在拥塞窗口基础上减少一个控制量,如果差值大于第二预设值、小于第二预设值,则在拥塞窗口基础上减少两个控制量,以此类推。上述第一预设值小于第二预设值,各预设值以及控制量以及具体减少方式方式均可以根据实际需求进行调整、配置。除最新接收窗口与最大接收窗口之间的比值、差值以外,还可以使用其他能够表征最新接收窗口与最大接收窗口之间大小关系的关系值结合拥塞窗口确定出实时的发送窗口,具体均可以根据实际需求配置。
在具体应用实施例中,如图4所示,按照上述方式调整发送窗口进行TCP发送的过程中,具体执行以下流程:
步骤1:更新TCP时间戳;
步骤2:判断是否有等待发送的缓存的数据包;
步骤3:根据传输速率判断是否添加发包时间间隔;
步骤4:更新RWnd_max值;
步骤5:判断链路上数据量是否大于按照式(4)优化调整后发送窗口;
步骤6:如果链路上数据量大于优化调整后发送窗口,执行Nagle算法防止愚笨窗口综合征;
步骤7:判断网络设备缓存队列大小;
步骤8:将数据发往IP层处理。
本实施例在TCP发送过程中仅需对新增数据项RWnd_max进行更新,以及比较链路上的数据与优化取值方式后的发送窗口的大小,而无需比较链路上的数据与拥塞窗口、接收窗口的大小,不仅可以充分利用链路带宽、提高传输速率,还可以简化发送流程。
如图5所示,在具体应用实施例中,实时识别当前网络环境是否存在固有抖动,依据网络是否存在固有抖动在BBR拥塞控制算法和上述优化控制方式之间进行切换选择,如果不存在,则使用原BBR拥塞算法确定出拥塞窗口,进而确定出发送窗口,如果存在固有抖动,采用上述方法进行发送窗口的调整优化,使得无论是否有固有抖动均能够确保传输性能,可以适用于如卫星地面站之间数传数据的汇集分发等的复制环境网络链路中,提高在大时延、高带宽条件下链路带宽的利用率,使得传输速率接近带宽,从而提高传输速率。
在具体应用实施例中,以20ms、4000Mbps带宽同时发送两路数据为例,使用传统TCP传输方式每路数据传输速率为1075Mbps,带宽利用率53%,且时延越大带宽利用率越低,使用本发明上述方法,每路传输速率可以提高为1900Mbps,带宽利用率达到95%,且时延增大带宽利用率无明显下降。即本发明在面对固有抖动环境、固有丢包率环境,能够有效提高传输速率以及带宽利用率,且能够真正实现单边加速,无需在接收端修改任何配置、部署任何软硬件。
本实施例还提供复杂网络环境下的TCP单边加速装置包括:
抖动识别模块,用于识别当前网络环境是否存在固有抖动;
最大带宽估算模块,用于当识别到存在固有抖动时,估算当前网络环境的最大带宽;
拥塞窗口确定模块,用于使用平均偏差修正最小时延得到固定时延,根据固定时延以及获取的最大带宽确定出当前的拥塞窗口,最小时延由BBR拥塞算法从TCP测量出的时延中筛选出;
发送窗口调整模块,用于实时根据最新接收窗口与最大接收窗口之间的比值、当前的拥塞窗口调整当前的发送窗口,以控制发送端进行数据发送。
本实施例中,抖动识别模块包括:
统计单元,用于统计每个TCP连接时记录的RTT的加权移动平均值以及时延;
判断单元,用于根据各个加权移动平均值与时延之间大小关系的变化趋势,判定当前网络环境是否存在固有抖动。
本实施例中最大带宽估算模块被配置为将当前传输速率作为最大传输速率,在基于BBR拥塞算法计算得到的拥塞窗口的基础上增加一个探测量,并判断增加后传输速率是否发生改变,如果传输速度增加则继续增加一个探测量,直至传输速率不再增加或增加量小于预设阈值,得到当前环境的最大传输速率。
本实施例中,拥塞窗口确定模块被配置为根据估算的最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口包括:使用平均偏差修正最小时延得到固定时延,根据固定时延以及估算的所述最大带宽确定出当前的拥塞窗口,最小时延由BBR拥塞算法从TCP测量出的时延中筛选出。
本实施例中,发送窗口调整模块被配置为实时根据最新接收窗口与最大接收窗口之间的比值、当前的所述拥塞窗口调整当前的发送窗口包括:当最新接收窗口与最大接收窗口之间的比值为1或最新接收窗口与最大接收窗口之间的差值为0时,将所述发送窗口调整为当前的拥塞窗口,否则根据所述比值与1之间的差值或者最新接收窗口与最大接收窗口之间的差值确定减小量。
本实施例复杂网络环境下的TCP单边加速装置与上述复杂网络环境下的TCP单边加速方法为一一对应,在此不再一一赘述。
在另一实施例中,本发明复杂网络环境下的TCP单边加速装置还可以为:包括处理器以及存储器,存储器用于存储计算机程序,处理器用于执行计算机程序以执行如上述方法。
可以理解的是,本实施例上述方法可以由单个设备执行,例如一台计算机或服务器等,也可以应用于分布式场景下由多台设备相互配合来完成,在分布式场景的情况下,多台设备中的一台设备可以只执行本实施例上述方法中的某一个或多个步骤,多台设备之间进行交互以完成上述方法。处理器可以采用通用的CPU、微处理器、应用专用集成电路、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本实施例上述方法。存储器可以采用只读存储器ROM、随机存取存储器RAM、静态存储设备以及动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,在通过软件或者固件来实现本实施例上述方法时,相关的程序代码保存在存储器中,并由处理器来调用执行。
上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。
Claims (9)
1.一种复杂网络环境下的TCP单边加速方法,其特征在于,步骤包括:
识别当前网络环境是否存在固有抖动;
当识别到存在固有抖动时,估算当前网络环境的最大带宽;
根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口;
实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的所述拥塞窗口调整当前的发送窗口,其中当所述最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将所述发送窗口调整为当前确定出的拥塞窗口,否则根据所述比值或差值控制减小当前的发送窗口;
所述根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口包括:使用平均偏差修正最小时延得到固定时延,根据所述固定时延以及估算的所述最大带宽确定出当前的拥塞窗口,所述最小时延由BBR拥塞算法从TCP测量出的时延中筛选出。
2.根据权利要求1所述的复杂网络环境下的TCP单边加速方法,其特征在于,所述识别当前网络环境是否存在固有抖动的步骤包括:
统计每个TCP连接时记录的RTT的加权移动平均值以及时延;
根据各个所述加权移动平均值与时延之间大小关系的变化趋势,判定当前网络环境是否存在固有抖动。
3.根据权利要求2所述的复杂网络环境下的TCP单边加速方法,其特征在于,所述根据各个所述加权移动平均值与时延之间大小关系的变化趋势,判定当前网络环境是否存在固有抖动的步骤包括:
分别计算各个所述加权移动平均值与时延之间的差值;
如果各个所述加权移动平均值与时延之间的差值在指定时长内持续保持正值或持续保持负值,则判定当前网络处于稳定状态,否则判定存在固有抖动。
4.根据权利要求1所述的复杂网络环境下的TCP单边加速方法,其特征在于,采用在指定时长内按照指定速率增长拥塞窗口的方式,估算出当前网络环境的所述最大带宽,步骤包括:
将当前传输速率作为最大传输速率,在基于BBR拥塞算法计算得到的拥塞窗口的基础上增加一个探测量,并判断增加后传输速率是否发生改变,如果传输速度增加则继续增加一个探测量,直至传输速率不再增加或增加量小于预设阈值,得到当前环境的最大传输速率。
5.根据权利要求1所述的复杂网络环境下的TCP单边加速方法,其特征在于,所述拥塞窗口按照下式确定得到:
其中,Cwnd为拥塞窗口,min_rtt为使用BBR拥塞算法计算得到的最小时延,mdev为时延的平均偏差,bw为估算的当前网络环境的最大带宽。
6.根据权利要求1~5中任意一项所述的复杂网络环境下的TCP单边加速方法,其特征在于,所述实时根据最新接收窗口与最大接收窗口之间的比值、当前的所述拥塞窗口调整当前的发送窗口包括:当最新接收窗口与最大接收窗口之间的比值为1或最新接收窗口与最大接收窗口之间的差值为0时,将所述发送窗口调整为当前的拥塞窗口,否则根据所述比值与1之间的差值或者最新接收窗口与最大接收窗口之间的差值确定减小量。
7.根据权利要求6所述的复杂网络环境下的TCP单边加速方法,其特征在于,将最新接收窗口与最大接收窗口之间的比值与所述拥塞窗口相乘作为当前的所述发送窗口,计算表达式为:
其中,SWnd为发送窗口,CWnd为拥塞窗口,RWnd_last为最新接收窗口,RWnd_max为最大接收窗口。
8.一种复杂网络环境下的TCP单边加速装置,其特征在于,包括:
抖动识别模块,用于识别当前网络环境是否存在固有抖动;
最大带宽估算模块,用于当识别到存在固有抖动时,估算当前网络环境的最大带宽;
拥塞窗口确定模块,用于根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口,所述根据估算的所述最大带宽以及基于BBR拥塞算法确定得到的最小时延,确定出当前的拥塞窗口包括:使用平均偏差修正最小时延得到固定时延,根据所述固定时延以及估算的所述最大带宽确定出当前的拥塞窗口,所述最小时延由BBR拥塞算法从TCP测量出的时延中筛选出;
发送窗口调整模块,用于实时根据最新接收窗口与最大接收窗口之间的大小关系、当前的所述拥塞窗口调整当前的发送窗口,其中当所述最新接收窗口与最大接收窗口之间的比值或差值在预设范围内时,将所述发送窗口调整为当前确定出的拥塞窗口,否则根据所述比值或差值控制减小当前的发送窗口。
9.一种复杂网络环境下的TCP单边加速装置,包括处理器以及存储器,所述存储器用于存储计算机程序,其特征在于,所述处理器用于执行所述计算机程序以执行如权利要求1~7中任意一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410156950.7A CN117692396B (zh) | 2024-02-04 | 2024-02-04 | 一种复杂网络环境下的tcp单边加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410156950.7A CN117692396B (zh) | 2024-02-04 | 2024-02-04 | 一种复杂网络环境下的tcp单边加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117692396A CN117692396A (zh) | 2024-03-12 |
CN117692396B true CN117692396B (zh) | 2024-04-26 |
Family
ID=90130543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410156950.7A Active CN117692396B (zh) | 2024-02-04 | 2024-02-04 | 一种复杂网络环境下的tcp单边加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117692396B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3044658B1 (ja) * | 1999-01-18 | 2000-05-22 | 株式会社超高速ネットワーク・コンピュータ技術研究所 | フロ―制御方法 |
US6967921B1 (en) * | 2000-11-27 | 2005-11-22 | At&T Corp. | Method and device for efficient bandwidth management |
CN102036338A (zh) * | 2010-12-22 | 2011-04-27 | 中国科学院计算技术研究所 | 一种基于数据驱动链路估计的传感器网络实时路由方法 |
CN102904829A (zh) * | 2012-10-19 | 2013-01-30 | 广东石油化工学院 | 基于历史连接信息的单边加速fast tcp改进算法 |
CN104158760A (zh) * | 2014-08-29 | 2014-11-19 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
JP2016208193A (ja) * | 2015-04-20 | 2016-12-08 | 富士通株式会社 | 基地局及び通信制御方法 |
CN106656431A (zh) * | 2015-09-21 | 2017-05-10 | 华为技术有限公司 | 一种报文传输方法及用户设备 |
CN109698797A (zh) * | 2017-10-24 | 2019-04-30 | 中国移动通信集团山东有限公司 | 一种tcp拥塞控制方法和装置 |
CN114390054A (zh) * | 2020-10-21 | 2022-04-22 | 中兴通讯股份有限公司 | 一种核心网网络加速方法、电子设备及计算机存储介质 |
CN114726799A (zh) * | 2022-04-28 | 2022-07-08 | 清华大学 | 拥塞控制智能体的训练方法、拥塞控制方法及装置 |
CN117354252A (zh) * | 2022-06-29 | 2024-01-05 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100554015B1 (ko) * | 2002-12-23 | 2006-02-22 | 한국과학기술정보연구원 | 그리드 컴퓨팅에 적합한 데이터 전송 제어 시스템 및방법과 그 프로세스를 기록한 컴퓨터 판독가능한 기록매체 |
US9444688B2 (en) * | 2011-10-04 | 2016-09-13 | North Carolina State University | Receiver-based methods, systems, and computer readable media for controlling TCP sender behavior in mobile communications networks with large buffer sizes |
EP3075113A1 (en) * | 2013-11-26 | 2016-10-05 | Telefonaktiebolaget LM Ericsson (publ) | Controlling a transmission control protocol congestion window size |
US20170310601A1 (en) * | 2016-04-21 | 2017-10-26 | Qualcomm Incorporated | Radio-aware transmission control protocol rate control |
CN106101161B (zh) * | 2016-08-26 | 2019-02-01 | 网宿科技股份有限公司 | 一种用于处理伪造的tcp数据包的方法和系统 |
US10091118B2 (en) * | 2017-01-27 | 2018-10-02 | Verizon Patent And Licensing Inc. | Maximizing throughput over a TCP link by boosting packet transmission |
EP3582455B1 (en) * | 2017-03-02 | 2022-06-22 | Huawei Technologies Co., Ltd. | Method and apparatus for multiple subflows network transmission |
TWI646807B (zh) * | 2017-09-07 | 2019-01-01 | 宏碁股份有限公司 | Rudp裝置及滑動窗參數的動態調整方法 |
-
2024
- 2024-02-04 CN CN202410156950.7A patent/CN117692396B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3044658B1 (ja) * | 1999-01-18 | 2000-05-22 | 株式会社超高速ネットワーク・コンピュータ技術研究所 | フロ―制御方法 |
US6967921B1 (en) * | 2000-11-27 | 2005-11-22 | At&T Corp. | Method and device for efficient bandwidth management |
CN102036338A (zh) * | 2010-12-22 | 2011-04-27 | 中国科学院计算技术研究所 | 一种基于数据驱动链路估计的传感器网络实时路由方法 |
CN102904829A (zh) * | 2012-10-19 | 2013-01-30 | 广东石油化工学院 | 基于历史连接信息的单边加速fast tcp改进算法 |
CN104158760A (zh) * | 2014-08-29 | 2014-11-19 | 中国科学技术大学 | 一种广域网tcp单边加速的方法及系统 |
JP2016208193A (ja) * | 2015-04-20 | 2016-12-08 | 富士通株式会社 | 基地局及び通信制御方法 |
CN106656431A (zh) * | 2015-09-21 | 2017-05-10 | 华为技术有限公司 | 一种报文传输方法及用户设备 |
CN106102094A (zh) * | 2016-07-06 | 2016-11-09 | 广州海格通信集团股份有限公司 | 一种基于sdn网络的tcp拥塞控制方法 |
CN109698797A (zh) * | 2017-10-24 | 2019-04-30 | 中国移动通信集团山东有限公司 | 一种tcp拥塞控制方法和装置 |
CN114390054A (zh) * | 2020-10-21 | 2022-04-22 | 中兴通讯股份有限公司 | 一种核心网网络加速方法、电子设备及计算机存储介质 |
CN114726799A (zh) * | 2022-04-28 | 2022-07-08 | 清华大学 | 拥塞控制智能体的训练方法、拥塞控制方法及装置 |
CN117354252A (zh) * | 2022-06-29 | 2024-01-05 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Non-Patent Citations (1)
Title |
---|
MANET TCP-Vegas跳数自适应算法的设计与实现;黄立, 陆建德;计算机应用与软件;20120315(第03期);第39-41、51页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117692396A (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111683393B (zh) | 一种动态调整增益系数的自适应拥塞控制方法 | |
US6622172B1 (en) | Dynamically delayed acknowledgement transmission system | |
US11558302B2 (en) | Data transmission method and apparatus | |
US8379535B2 (en) | Optimization of streaming data throughput in unreliable networks | |
US8787378B2 (en) | Systems and methods to improve performance of TCP over large bandwidth-delay-product networks | |
US8873385B2 (en) | Incast congestion control in a network | |
US20150236966A1 (en) | Control of congestion window size of an information transmission connection | |
US20020150048A1 (en) | Data transport acceleration and management within a network communication system | |
CN113141315B (zh) | 一种拥塞控制方法及设备 | |
CN110730469B (zh) | 一种基于扩展卡尔曼无线网络带宽预测方法及其拥塞控制 | |
Barakat | TCP/IP modeling and validation | |
CN117156167A (zh) | 一种融合传输系统的自适应数据传输方法及装置 | |
CN114945004A (zh) | 拥塞控制方法、装置、电子设备及存储介质 | |
CN112230880B (zh) | 一种数据传输控制方法、装置、fpga及介质 | |
Xiong et al. | Lambdastream–a data transport protocol for streaming network-intensive applications over photonic networks | |
CN117692396B (zh) | 一种复杂网络环境下的tcp单边加速方法及装置 | |
CN117676695A (zh) | Tcp传输方法、装置和系统 | |
CN116566919A (zh) | 带宽探测方法、装置、电子设备及存储介质 | |
KR100859908B1 (ko) | 지속적인 혼잡감지를 이용한 tcp 혼잡제어방법 | |
CN115714746A (zh) | 基于延迟和丢包的拥塞控制方法及其系统 | |
US10063489B2 (en) | Buffer bloat control | |
CN115883463A (zh) | 基于网络负载的数据中心内拥塞控制方法和系统 | |
Sanadhya et al. | Adaptive flow control for TCP on mobile phones | |
CN117692392A (zh) | 重传超时时长确定方法、装置、电子设备及存储介质 | |
CN115941557A (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 |