CN116156019A - 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 - Google Patents
一种用于卫星网络的tcp流量控制方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116156019A CN116156019A CN202310174386.7A CN202310174386A CN116156019A CN 116156019 A CN116156019 A CN 116156019A CN 202310174386 A CN202310174386 A CN 202310174386A CN 116156019 A CN116156019 A CN 116156019A
- Authority
- CN
- China
- Prior art keywords
- average
- packet loss
- queue
- loss rate
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/1851—Systems using a satellite or space-based relay
- H04B7/18513—Transmission in a satellite or space-based system
-
- 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/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- 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
-
- 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/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于卫星网络技术领域,其目的在于提供一种用于卫星网络的TCP流量控制方法、系统、设备及介质。其中的方法包括获取IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度、PEP缓存队列长度和出口带宽,得到优先级i缓存队列在t时刻的平均队列长度和平均出口带宽;根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。本发明可便于达到流量稳定的目的。
Description
技术领域
本发明属于卫星网络技术领域,具体涉及一种用于卫星网络的TCP流量控制方法、系统、设备及介质。
背景技术
卫星网络是借助卫星转发器中继信号的能力完成其各个结点之间数据传输的网络。如图1所示,卫星网络的组网结构包括如下网元:用户终端(User Terminal,UT)、卫星网络链路网关、星上处理单元(On Board Processing,OBP)、资源管理器(Resource Manager,RM)和网络控制中心(Network Control Center,NCC),而卫星网络链路网关一般细分为前向链路网关(MODCOD Servicing System,MCS)和反向链路网关(Return Channel Manager,RCM)。其中,物理层卫星调制解调器(Satellite Modem,SM)不作为单独网元存在,其内嵌在UT、MCS/RCM或者OBP中。在实施过程中,IP网关(IP Gateway,IPGW)位于核心网和链路层网关之间,用作以太网和卫星网络之间的三层适配网关。
由于卫星网络固有的一些特性,如GSO(Geosynchronous Orbit,同步轨道)卫星链路的长时延(RTT)、高误码率(High Error Bit Rates)、网络不对称性(Asymmetric)、连接的间断性(Link Disconnection)、高带宽时延积(Bandwidth Delay Product,BDP)等,都影响了TCP(Transmission Control Protocol,传输控制协议)在高速数据传输中的性能。
为了解决这些问题,一般倾向对传统TCP连接进行性能增强,而分段TCP可以采用更适合空间网络的处理算法,这就需要在链路中部署PEP(Performance Enhancing Proxy,性能增强代理)服务器。基于此,在卫星网络应用过程中,可以选择在IP网关上部署PEP。
PEP会加快TCP连接建立过程与数据传输速度,PEP处理流程如图2所示,具体如下:
PEP收到SYN(Synchronize Sequence Numbers,同步序列编号)请求时,会代替最终节点回复ACK(Acknowledge character,确认字符)和SYN,把TCP进行分段。由于IP网关与PEP之间的RTT很小,且IP网关收到ACK与SYN就回复ACK实现三次握手,至此连接即可建立,这时PEP发向远端的SYN可能还没有到达,但是IP网关已经可以开始发送数据了。
PEP收到IP网关发送的数据时,会本地缓存并且代替最终用户终端回复ACK。IP网关收到ACK就可以继续发送数据,不必等最终用户终端的ACK。PEP会与远端的PEP交互转发IP网关给用户终端的数据,远端PEP解复用出原始数据,并使用标准的TCP连接发送给最终用户终端。由此,在链路中部署PEP时的处理速度比最终用户终端的直接回复会提高很多。
然而,由于TCP进行了分段,以太网链路侧是本地连接,发送速率很高。在长RTT的环境中,用户的ACK一般会到达得比较慢,如果PEP无限量地向IP网关回送ACK,会造成PEP本地缓存的数据量较大,导致数据漫灌。
现有技术中,PEP回送ACK通常启用TCP RED(Random Early Detection,随机早期检测)拥塞控制算法,反馈到IP网关发送端可以控制发送端的滑动窗口swnd大小,这样就达到了流量控制的目的。
其中,随机早期检测RED是一种有效的控制TCP拥塞的方法,可对拥塞进行快速响应。其机理是,当网络拥塞时,接收端以预设的概率随机丢弃若干个数据包,触发数据源启动TCP拥塞避免(TCP Congestion Avoidance)机制。但是,在使用现有技术过程中,发明人发现现有技术中至少存在如下问题:如使用随机早期检测RED,会引起震荡,导致系统不稳定。因而,有必要研究一种基于延迟的预防TCP流量控制方法,以达到控制平稳的控制TCP流量的目的。
发明内容
本发明旨在至少在一定程度上解决上述技术问题,本发明提供了一种用于卫星网络的TCP流量控制方法、系统、设备及介质。
为了实现上述目的,本发明采用以下技术方案:
第一方面,提供了一种用于卫星网络的TCP流量控制方法,包括:
获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;
根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;
根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;
根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;
根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。
本发明可通过调整TCP接收窗口,使得接收窗口稳定在合理的预设区域,从而可便于达到流量稳定的目的。具体地,本发明在实施过程中,可周期性地获取缓存的队列长度和出口带宽,以计算本地时延,再根据t时刻获取的IP网关报文的队列长度、PEP缓存队列长度和出口带宽,得到t时刻各优先级缓存队列的平均队列长度和平均出口带宽,随后依次根据所述平均队列长度和所述平均出口带宽,得到各优先级缓存队列在t时刻的平均时延、丢包率及平均丢包率,最后根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,以便于基于TCP协议栈的最大接收窗口调整TCP接收窗口大小,由此控制远端的发送速率,且无论远端使用何种拥塞控制算法,都能达到控制流量的目的,适用于卫星网络。
在一个可能的设计中,所述队列长度包括入接口队列长度和出接口队列长度;根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,包括:
根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的队列总长度;其中,所述队列总长度为:
Qi(t)=Q_INi(t)+Q_OUTi(t)+Q_PEPi(t);
式中,Q_INi(t)表示入接口队列长度,Q_OUTi(t)表示出接口队列长度,Q_PEPi(t)表示PEP缓存队列长度;
根据所述队列总长度,得到优先级i缓存队列在t时刻的平均队列长度;其中,所述平均队列长度为:
式中,a为队列长度的滑动平均系数。
在一个可能的设计中,所述平均出口带宽为:
式中,b为出口带宽的滑动平均系数;Ci(t)表示出口带宽。
在一个可能的设计中,所述平均时延为:
在一个可能的设计中,优先级i缓存队列在t时刻的丢包率为:
式中,D_mini为报文延迟的下门限,D_maxi为报文延迟的上门限,Pmax为流控算法在延迟达到报文延迟的上门限D_maxi时的丢包概率,PDROP_MAX为预设的允许的最大丢包概率。
在一个可能的设计中,所述平均丢包率为:
式中,K为计算平均丢包率的周期,t0为初始时刻,PRED,i(t)为优先级i缓存队列在t时刻的丢包率。
在一个可能的设计中,根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,包括:
根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到初始更新窗口;其中,初始更新窗口为:
式中,Wmax,i(t)是优先级i缓存队列在t时刻时最大窗口;ΔW是窗口调整步长;PRED,SMA,i(t)是平均丢包率;Pth是预设的期望丢包率;δ是预设的丢包率容忍度;
根据所述初始更新窗口和预设的实际接收窗口最大值,得到TCP协议栈的最大接收窗口;其中,所述TCP协议栈的最大接收窗口为:
Wmax,ad(t)=min[Wmax,i(t)*window_scale,BSFP(t)];
式中,Wmax,i(t)*window_scale为预设的优先级i的实际接收窗口最大值;BSFP(t)为TCP协议栈计算的数据流的接收窗口。
第二方面,提供了一种用于卫星网络的TCP流量控制系统,用于实现如上述任一项所述的用于卫星网络的TCP流量控制方法;所述用于卫星网络的TCP流量控制系统包括:
数据采集模块,用于获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;
数据处理模块,与所述数据采集模块通信连接,用于根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;用于根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;用于根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;还用于根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。
第三方面,提供了一种电子设备,包括:
存储器,用于存储计算机程序指令;以及,
处理器,用于执行所述计算机程序指令从而完成如上述任一项所述的用于卫星网络的TCP流量控制方法的操作。
第四方面,提供了一种计算机可读存储介质,用于存储计算机可读取的计算机程序指令,所述计算机程序指令被配置为运行时执行如上述任一项所述的用于卫星网络的TCP流量控制方法的操作。
附图说明
图1是卫星网络的组网结构示意图;
图2是PEP工作原理示意图;
图3是实施例1中用于卫星网络的TCP流量控制方法的流程图;
图4是TCP拥塞控制的Markov模型的示意图;
图5是平均window size与dropping概率关系的示意图;
图6是STD与dropping概率关系的示意图;
图7是测试1中TCP的吞吐量示意图;
图8是测试1中TCP的接收窗口控制示意图;
图9是测试2中TCP的吞吐量示意图;
图10是测试2中TCP的接收窗口控制示意图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
实施例1:
本实施例公开了一种用于卫星网络的TCP流量控制方法,可以但不限于由具有一定计算资源的计算机设备或虚拟机执行,例如由个人计算机、智能手机、个人数字助理或可穿戴设备等电子设备执行,或者由虚拟机执行。
如图3所示,一种用于卫星网络的TCP流量控制方法,可以但不限于包括有如下步骤:
S1.获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;本实施例中,每个优先级独立获取队列长度,以便分别对不同优先级进行队列总长度、平均队列长度等计算。同时本实施例中,每个优先级独立获取出口带宽,以便分别对不同优先级进行平均出口带宽等计算。
本实施例中,所述队列长度包括入接口队列长度和出接口队列长度;根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,包括:
根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的队列总长度;其中,所述队列总长度为:
Qi(t)=Q_INi(t)+Q_OUTi(t)+Q_PEPi(t);
式中,Q_INi(t)表示通过接收模块的API接口获得的入接口队列长度,Q_OUTi(t)表示通过发送模块的API接口获得的出接口队列长度,Q_PEPi(t)表示通过PEP模块的API接口获得的PEP缓存队列长度;
根据所述队列总长度,得到优先级i缓存队列在t时刻的平均队列长度;其中,所述平均队列长度为:
式中,a为队列长度的滑动平均系数,本实施例中,队列长度的滑动平均系数a的推荐默认值为0.1。
需要说明的是,本实施例中,队列长度更新任务周期性执行,周期与系统的发送模块的调度周期一致,默认采用20ms,如果调度周期发生变化,队列长度的更新周期也同步改变。
本实施例中,所述平均出口带宽为:
式中,b为出口带宽的滑动平均系数,本实施例中,出口带宽的滑动平均系数b的推荐默认值为0.1;Ci(t)表示通过发送模块的API接口获得的出口带宽。
本实施例中,出口带宽的更新周期与MCS向IP网关带宽分配的更新周期一致,默认值为100ms。
本实施例中,通过发送模块的API接口获得的出口带宽根据读取到的发送模块的实际出口带宽计算,假设Ci(t)表示发送模块在t时刻提供的实际出口带宽,CMax是系统的最大保证带宽。i表示优先级,每个优先级独立计算出口带宽,取值1-M,M为最大优先级。
在没有数据流的情况下Ci(t)=0,数据流刚开始发送的一段时间内带宽过低造成丢包率计算不准,会产生比较大的丢包,为了避免该问题,发送模块的带宽查询接口应该提供最小值r*CMax,r为带宽查询接口提供给流控模块的最小带宽系数,本实施例中,最小带宽系数r的推荐参数为0.15。
同时为了保证高优先级的交互型业务的服务质量,最高优先级1的带宽C1(t)使用CMax,即,所述通过发送模块的API接口获得的出口带宽为:
S2.根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;
本实施例中,所述平均时延为:
S3.根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;
具体地,优先级i缓存队列在t时刻的丢包率为:
式中,D_mini为报文延迟的下门限,D_maxi为报文延迟的上门限,Pmax为流控算法在延迟达到报文延迟的上门限D_maxi时的丢包概率,PDROP_MAX为预设的允许的最大丢包概率,本实施例中,0≤PDROP_MAX≤1。具体地,当延迟报文延迟的上门限D_maxi,系统按照PDROP_MAX产生丢包,推荐PDROP_MAX的默认值0.20。研究表明15%-20%的RED丢包率情况下,不同峰值速率的TCP数据流会下降到相同的平均速率。
应当理解的是,对于不同的优先级,报文延迟的下门限D_mini和上门限D_maxi配置允许不同的值,以满足不同的吞吐量需求。相同情况下,报文延迟的下门限D_mini配置得更大,在均衡状态下终端能获得更高的平均带宽。
本实施例中,丢包率的更新周期与队列长度的更新周期相同,实现时可以放在一个任务中处理。
S4.根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;
本实施例中,所述平均丢包率为:
式中,K为计算平均丢包率的周期,本实施例中,计算平均丢包率的周期K默认设置为200,t0为初始时刻,PRED,i(t)为优先级i缓存队列在t时刻的丢包率。
S5.根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,也可称之为实际经过TCP协议栈调整后的接收窗口。
本实施例中,根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,包括:
根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到初始更新窗口;其中,初始更新窗口为:
式中,Wmax,i(t+1)是初始更新窗口,也可称之为优先级i缓存队列在t+1时刻时最大窗口;Wmax,i(t)是优先级i缓存队列在t时刻时提供给TCP协议栈的最大窗口,本实施例中,0≤Wmax,i(t)≤65535;ΔW是窗口调整步长,需要说明的是,步长太小,系统达到稳定态的时间就较长,步长太大,容易造成系统的震荡,参数的选择应考虑RTT和窗口扩大因子,RTT越小,ΔW也越小,因为RTT越小,窗口调整对带宽影响越大,本实施例中,窗口调整步长ΔW的默认值为1500;PRED,SMA,i(t)是平均丢包率;Pth是预设的期望丢包率,本实施例中,预设的期望丢包率Pth的默认值为0.5%;δ是预设的丢包率容忍度,本实施例中,预设的丢包率容忍度δ的默认值为0.25%,即默认情况下期望丢包率在区间[0.25%,0.75%]内波动,并保持窗口不变。
根据所述初始更新窗口和预设的实际接收窗口最大值,得到TCP协议栈的最大接收窗口;其中,需要说明的是,TCP协议有窗口扩大因子(window scale)来调整窗口大小,实际TCP接收窗口的最大值为Wmax,i(t)*window_scale,而TCP协议栈有独立的接收窗口的调整算法(根据本机内存,ACK回复情况等),因而,最终TCP RED调整后的窗口值,即所述TCP协议栈的最大接收窗口为:
Wmax,ad(t)=min[Wmax,i(t)*window_scale,BSFP(t)];
式中,Wmax,i(t)*window_scale为预设的优先级i的实际接收窗口最大值;BSFP(t)为TCP协议栈计算的数据流的接收窗口。
需要说明的是,Wmax,i(t)的初始值Wmax,i(0)的设定要考虑到系统允许的TCP的最大接收缓冲区和TCP窗口扩大因子的设置,本实施例中,Wmax,i(t)的初始值Wmax,i(0)推荐默认值选TCP最大接收缓冲区/window_sacle。
此外,本实施例中,窗口扩大因子window_scale*ΔW的最小值应该大于MTU(1500bytes),以保证每次调整后至少能发送一条报文。TCP窗口调整的周期默认设置为200ms。
本实施例中,用于卫星网络的TCP流量控制方法基于TCP流量控制装置执行,其中,TCP流量控制装置包括PEP服务器和流控模块,其中,
所述PEP服务器包括接收模块、发送模块、PEP模块、路由模块和流控模块,所述接收模块的输出端分别与所述PEP模块的输入端和所述路由模块第一输入端连接,所述PEP模块的输出端与所述路由模块的第二输入端连接,所述路由模块的输出端与所述发送模块的输入端连接,所述接收模块的API接口、所述发送模块的API接口、所述PEP模块的API接口均与所述流控模块连接。
所述流控模块包括队列长度更新处理模块、发送宽带更新处理模块、平均时延丢包率计算模块和TCP窗口更新控制模块,所述接收模块的API接口、所述发送模块的API接口、所述PEP模块的API接口均与所述队列长度更新处理模块的输入端连接,所述发送模块的API接口与所述发送宽带更新处理模块的输入端连接,所述队列长度更新处理模块和发送宽带更新处理模块的输出端均与所述平均时延丢包率计算模块的输入端连接,所述平均时延丢包率计算模块的输出端与所述接收模块的API接口连接,所述平均时延丢包率计算模块的输出端还通过所述TCP窗口更新控制模块与所述PEP模块的API接口连接。
具体地,本实施例中,队列长度更新处理模块用于获取包括入接口队列长度和出接口队列长度的队列长度以及PEP缓存队列长度,并将其发送至平均时延丢包率计算模块;发送宽带更新处理模块用于获取出口带宽,并将其发送至平均时延丢包率计算模块;平均时延丢包率计算模块用于根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延,根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率,并根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率,再将平均丢包率发送至TCP窗口更新控制模块,以便于TCP窗口更新控制模块根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,再根据TCP协议栈的最大接收窗口调整PEP模块的窗口大小,由此实现对TCP流量的平稳控制作用。
本实施例可通过调整TCP接收窗口,使得接收窗口稳定在合理的预设区域,从而可便于达到流量稳定的目的。具体地,本实施例在实施过程中,可周期性地获取缓存的队列长度和出口带宽,以计算本地时延,再根据t时刻获取的IP网关报文的队列长度、PEP缓存队列长度和出口带宽,得到t时刻各优先级缓存队列的平均队列长度和平均出口带宽,随后依次根据所述平均队列长度和所述平均出口带宽,得到各优先级缓存队列在t时刻的平均时延、丢包率及平均丢包率,最后根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,以便于基于TCP协议栈的最大接收窗口调整TCP接收窗口大小,由此控制远端的发送速率,且无论远端使用何种拥塞控制算法,都能达到控制流量的目的,适用于卫星网络。
还需要说明的是,本实施例在实施过程中,可周期性地获取缓存的队列长度和出口带宽,并计算数据包的本地延迟,基于数据包的本地延迟来评估链路的拥塞情况。具体地,从地面网络来的数据流由IP网关转发到卫星网络,如果因为带宽不足或者卫星网络ACK延迟大等原因,数据无法及时地被转发出去,数据在IP网关内部的延迟就会加大。本地延迟为卫星网络一侧的出口带宽和IP网关从地面网络到卫星网络方向上的队列缓冲长度的比值,其代表当前时刻,数据从被接收到被发送需要的时长。
如图4,通过一个分析模型解释本实施例的合理性。具体地,用Markov过程描述RED拥塞控制。假设初始窗口很小,从慢启动(Slow Start)到拥塞避免(CongestionAvoidance)是暂态的,而一个被丢弃的数据包能够在一个RTT发现。TCP的拥塞避免过程可被看作一个离散Markov过程,其时间单位是一个RTT。每个状态代表一个特定的TCP接收窗口,第一个和最后一个状态代表初始和最大TCP接收窗口。
至少一个数据包在状态i被丢弃的概率是:
p(i)=1-(1-PRED)(IW+I-1);
式中,IW为初始的TCP接收窗口,PRED为初始的丢包率。
该数据包在状态i的转移概率为:
转移概率矩阵是Z={pi,j},i,j∈M。稳态概率为Ω={πi}1×M=linZn,n→∞。
TCP接收窗口的均值和方差分别为:
如图5和图6,分别显示了TCP接收窗口的平均值和标准方差STD(standarddeviation)随丢包率变化的趋势。当最大TCP接收窗口变大时,相同丢包率下的STD也变大,即系统震荡特性变大。
在一个特定的丢包概率下,为了得到更小的STD,需要减小最大TCP接收窗口。然而减小TCP接收窗口,平均TCP接收窗口也会减小,带来带宽的降低,从而使系统的数据延迟减小,丢包率降低。当丢包率的低于预期,说明最大的TCP接收窗口下调偏低,需要调高。在实际运行期间,系统的带宽总是动态变化的,设定一个期望的丢包率,根据丢包率的变化,调整窗口,使输入速率能够动态的跟随输出速率。因此,本实施例中,基于丢包率来作为TCP接收窗口更新的判定依据,以此获取合理的窗口大小,进而可保证带宽利用率及系统的震荡性,实现平稳控制流量的目的。
实践表明,启用了本实施例所述方法情况下,出口带宽充足,对数据包的处理没有影响,当带宽不足,通过调整TCP接收窗口,可使得TCP的输入流量稳定在与输出流量接近的值,而丢包率稳定在期望值附近。
具体地,测试结果如下:
测试1:地面网络侧带宽1Gb/s,卫星网络侧出口带宽20Mb/s,TCP的吞吐量控制效果和TCP的窗口大小控制效果如下:随着TCP的接收窗口降低,TCP流量最终稳定在20Mb/s左右。具体地,TCP的吞吐量如图7所示,TCP的接收窗口控制如图8所示。
测试2:卫星网络环境时延300ms时延+10^-6丢包率,卫星网络侧出口限速200Mbps,调度周期5ms,RED丢包率更新周期5ms,TCP窗口更新周期25ms,TCP窗口初始值25000,最大值65535;TCP的吞吐量稳定在大概200Mbps左右浮动,TCP接收窗口尺寸从520000B下降到372280B。具体地,TCP的吞吐量如图9所示,TCP的接收窗口控制图10所示。
实施例2:
本实施例公开了一种用于卫星网络的TCP流量控制系统,用于实现实施例1中用于卫星网络的TCP流量控制方法;所述用于卫星网络的TCP流量控制系统包括:
数据采集模块,用于获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;
数据处理模块,与所述数据采集模块通信连接,用于根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;用于根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;用于根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;还用于根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。
实施例3:
在实施例1或2的基础上,本实施例公开了一种电子设备,该设备可以是智能手机、平板电脑、笔记本电脑或者台式电脑等。电子设备可能被称为用于终端、便携式终端、台式终端等,电子设备包括:
存储器,用于存储计算机程序指令;以及,
处理器,用于执行所述计算机程序指令从而完成如实施例1中任一所述的用于卫星网络的TCP流量控制方法的操作。
实施例4:
在实施例1至3任一项实施例的基础上,本实施例公开了一种计算机可读存储介质,用于存储计算机可读取的计算机程序指令,所述计算机程序指令被配置为运行时执行如实施例1所述的用于卫星网络的TCP流量控制方法的操作。
需要说明的是,所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
最后应说明的是,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于卫星网络的TCP流量控制方法,其特征在于:包括:
获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;
根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;
根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;
根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;
根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。
2.根据权利要求1所述的一种用于卫星网络的TCP流量控制方法,其特征在于:所述队列长度包括入接口队列长度和出接口队列长度;根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,包括:
根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的队列总长度;其中,所述队列总长度为:
Qi(t)=Q_INi(t)+Q_OUTi(t)+Q_PEPi(t);
式中,Q_INi(t)表示入接口队列长度,Q_OUTi(t)表示出接口队列长度,Q_PEPi(t)表示PEP缓存队列长度;
根据所述队列总长度,得到优先级i缓存队列在t时刻的平均队列长度;其中,所述平均队列长度为:
式中,a为队列长度的滑动平均系数。
7.根据权利要求1所述的一种用于卫星网络的TCP流量控制方法,其特征在于:根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口,包括:
根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到初始更新窗口;其中,初始更新窗口为:
式中,Wmax,i(t)是优先级i缓存队列在t时刻时最大窗口;ΔW是窗口调整步长;PRED,SMA,i(t)是平均丢包率;Pth是预设的期望丢包率;δ是预设的丢包率容忍度;
根据所述初始更新窗口和预设的实际接收窗口最大值,得到TCP协议栈的最大接收窗口;其中,所述TCP协议栈的最大接收窗口为:
Wmax,ad(t)=min[Wmax,i(t)*window_scale,BSFP(t)];
式中,Wmax,i(t)*window_scale为预设的优先级i的实际接收窗口最大值;BSFP(t)为TCP协议栈计算的数据流的接收窗口。
8.一种用于卫星网络的TCP流量控制系统,其特征在于:用于实现如权利要求1至7中任一项所述的用于卫星网络的TCP流量控制方法;所述系统包括:
数据采集模块,用于获取优先级i缓存队列在t时刻时,IP网关报文的队列长度、PEP缓存队列长度和出口带宽,并根据所述队列长度和所述PEP缓存队列长度,得到优先级i缓存队列在t时刻的平均队列长度,根据所述出口带宽,得到平均出口带宽;
数据处理模块,与所述数据采集模块通信连接,用于根据所述平均队列长度和所述平均出口带宽,得到优先级i缓存队列在t时刻的平均时延;用于根据所述平均时延得到每个优先级i缓存队列在t时刻的丢包率;用于根据各优先级缓存队列在t时刻的丢包率,得到各优先级缓存队列在t时刻的平均丢包率;还用于根据所述平均丢包率、预设的丢包概率和预设的丢包率容忍度,得到TCP协议栈的最大接收窗口。
9.一种电子设备,其特征在于:包括:
存储器,用于存储计算机程序指令;以及,
处理器,用于执行所述计算机程序指令从而完成如权利要求1至7中任一项所述的用于卫星网络的TCP流量控制方法的操作。
10.一种计算机可读存储介质,用于存储计算机可读取的计算机程序指令,其特征在于:所述计算机程序指令被配置为运行时执行如权利要求1至7中任一项所述的用于卫星网络的TCP流量控制方法的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310174386.7A CN116156019A (zh) | 2023-02-15 | 2023-02-15 | 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310174386.7A CN116156019A (zh) | 2023-02-15 | 2023-02-15 | 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116156019A true CN116156019A (zh) | 2023-05-23 |
Family
ID=86340552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310174386.7A Pending CN116156019A (zh) | 2023-02-15 | 2023-02-15 | 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116156019A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278472A (zh) * | 2023-11-22 | 2023-12-22 | 成都星联芯通科技有限公司 | 链路流量控制方法、装置、电子设备和可读存储介质 |
-
2023
- 2023-02-15 CN CN202310174386.7A patent/CN116156019A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117278472A (zh) * | 2023-11-22 | 2023-12-22 | 成都星联芯通科技有限公司 | 链路流量控制方法、装置、电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9160670B2 (en) | Transmission control protocol (TCP) congestion control using transmission delay components | |
US8477615B2 (en) | Method and system to manage network traffic congestion | |
US9054973B2 (en) | Method and system for Ethernet congestion management | |
JP5020076B2 (ja) | 低頻度ackのシステムに適した高性能tcp | |
JP2018508151A (ja) | 伝送制御プロトコルtcpデータパケットを送信する方法及び装置、並びにシステム | |
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
CN109714267B (zh) | 管理反向队列的传输控制方法及系统 | |
CN107852371B (zh) | 数据分组网络 | |
JP2002520921A (ja) | ネットワークの状態に関する情報を用いてtcpスライディング・ウィンドウの調節を行う方法及び装置 | |
EP3961981A1 (en) | Method and device for congestion control, communication network, and computer storage medium | |
US20190253364A1 (en) | Method For Determining TCP Congestion Window, And Apparatus | |
WO2017114231A1 (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
US20180176136A1 (en) | TCP Bufferbloat Resolution | |
CN116156019A (zh) | 一种用于卫星网络的tcp流量控制方法、系统、设备及介质 | |
KR102450226B1 (ko) | 통신 시스템에서 전송 제어 프로토콜의 전송 버퍼 제어 방법 및 장치 | |
CN107852372B (zh) | 数据分组网络 | |
Aweya et al. | Enhancing TCP performance with a load‐adaptive RED mechanism | |
JP2007013449A (ja) | シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置 | |
EP2417719B1 (en) | Method and system to manage network traffic congestion | |
Sharma et al. | A Survey on Active Queue Management Techniques | |
Kumar et al. | A multipath packet scheduling approach based on buffer acknowledgement for congestion control | |
Roseti et al. | TCP Noordwijk: TCP-based transport optimized for web traffic in satellite networks | |
CN116170375A (zh) | 一种参数调整方法和装置 | |
Das et al. | A Dynamic Algorithm for Optimization of Network Traffic through Smart Network Switch Data Flow Management | |
JP2008193310A (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 |