CN112787942A - 一种tcp拥塞控制方法、装置、终端及可读存储介质 - Google Patents

一种tcp拥塞控制方法、装置、终端及可读存储介质 Download PDF

Info

Publication number
CN112787942A
CN112787942A CN201911073237.1A CN201911073237A CN112787942A CN 112787942 A CN112787942 A CN 112787942A CN 201911073237 A CN201911073237 A CN 201911073237A CN 112787942 A CN112787942 A CN 112787942A
Authority
CN
China
Prior art keywords
user
current
congestion
window
congestion 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.)
Pending
Application number
CN201911073237.1A
Other languages
English (en)
Inventor
惠羿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201911073237.1A priority Critical patent/CN112787942A/zh
Priority to PCT/CN2020/126570 priority patent/WO2021088893A1/zh
Priority to EP20884481.1A priority patent/EP3952233A4/en
Publication of CN112787942A publication Critical patent/CN112787942A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供的一种TCP拥塞控制方法、装置、终端及可读存储介质,该TCP拥塞控制方法通过获取用户的关键特征,获取根据用户的TCP流请求报文所生成的ISP资源到缓冲队列,并根据关键特征确定TCP协议层控制块的推荐拥塞窗口,再根据滑动窗口的原理将缓冲队列的数据包发送给该客户。本发明还提供了一种TCP拥塞控制装置、终端及可读存储介质通过根据不同的用户其各自的关键特征分配相应的推荐拥塞窗口,使得根据不同的用户对提供相应的推荐拥塞窗口,不再是同一标准,提升了有效用户的可用资源,提升了用户体验度。

Description

一种TCP拥塞控制方法、装置、终端及可读存储介质
技术领域
本发明实施例涉及但不限于计算机通信网络领域,具体而言,涉及但不限于一种TCP拥塞控制方法、装置、终端及可读存储介质。
背景技术
无线网络有其特定的传输特性,比如存在报文转发乱序、不能准确及时判断出丢包、忙时空口资源紧缺等特点,当这些情况出现时,就会导致用户访问 Internet的上网速率出现陡变,影响了移动用户的上网体验。如图1所示,图1是TCPO所在核心网组网图,TCP代理和优化网元TCPO(下文对优化网元简称 TCPO)部署在用户UE与ISP之间的中间节点上,把UE-ISP之间的TCP连接分割成两段,可根据无线网络环境的传输特性以及移动用户的行为特性,通过网元本身的缓存、拥塞控制等机制优化TCP协议转发性能,减少无线传输乱序丢包等情况导致的上网速率降低现象,改善和提升2G/3G/4G移动用户的上网体验,包括网页浏览、FTP下载、视频业务等。
TCPO网元已经大量商用,关键组件为拥塞控制算法,已实现的算法包括主要借鉴了freebsd及linux中TCP协议的相关实现,例如Newreno,cubic, westwood,cdg,fast等。但是,传统TCP增长太慢了,假设10g带宽*100ms 的网络,需要10w个包大小的cwnd才能完全利用起来,而newreno之流,取一半5w做阀门,后面买一个rtt涨一个cwnd,这样要涨5w个rtt才能满,也就是要1.4个小时持续,多数情况下流早就关闭了。所以怎么接近最大利用率,特别是在lfn中,TCP拥塞控制算法一致设法解决的问题。譬如,CUBIC算法是 BIC-TCP算法的改进版,在基本遵从BIC-TCP算法思想的基础上,增加了对标准 TCP协议的友好性。CUBIC算法通过对测算堵塞至今的时间延迟作为求cwnd大小的依据,使用一个三次函数的曲线,来贴合窗口在峰值处附近的增长,这在linux操作***中已经成本默认标准。总之,TCPO借鉴TCP标准和fresbsd等实现方式,对数据包进行了流量拥塞控制避免。
普通TCP拥塞控制算法考虑都是点对点或者说客户端到服务器的链路判断,因为TCP协议的局限,无法被告知网络的实际情况,所以采用针对延时、或者丢包作为信号来判断网络通道到底是否已满,然后主动进行降速或者升速,总体来看,TCP协议最初设计是没有具备对用网络拥塞信息的感知,所以传统的 TCP算法都是类似瞎子莫大象,靠rtt延时或者丢包来猜测网络是否繁忙,同时,这也是作为PC或者UE终端不得已而为之的办法,毕竟作为终端UE并不感知网络状态。
同时,随着5g时代的开启,物联网、车联网的推动,大量终端接入,传统 TCP解决方案越发低效,TCP的公平性使得每个流都是同等的,这样大大稀释了有效手机用户的可有资源。
网络中的链路容量和交换结点中的缓存和处理机都有着工作的极限,当网络的需求超过它们的工作极限时,就出现了拥塞。拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。常用的方法就是:1.慢开始、拥塞控制2.快重传、快恢复,其中一种实现方式见下述方法:
(1).发送方维持一个叫做“拥塞窗口”的变量,该变量和接收端口共同决定了发送者的发送窗口;
(2).当主机开始发送数据时,避免一下子将大量字节注入到网络,造成或者增加拥塞,选择发送一个1字节的试探报文;
(3).当收到第一个字节的数据的确认后,就发送2个字节的报文;
(4).若再次收到2个字节的确认,则发送4个字节,依次递增2的指数级;
(5).最后会达到一个提前预设的“慢开始门限”,比如24,即一次发送了24 个分组,此时遵循下面的条件判定:
*1.cwnd<ssthresh,继续使用慢开始算法;
*2.cwnd>ssthresh,停止使用慢开始算法,改用拥塞避免算法;
*3.cwnd=ssthresh,既可以使用慢开始算法,也可以使用拥塞避免算法;
(6).拥塞避免算法就是:每经过一个往返时间RTT就把发送方的拥塞窗口+1,即让拥塞窗口缓慢地增大,按照线性规律增长;
(7).当出现网络拥塞,比如丢包时,将慢开始门限设为原先的一半,然后将 cwnd设为1,执行慢开始算法(较低的起点,指数级增长);
可以认为,发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。
TCP协议层使用协议控制块PCB存放各UDP和TCP插口所要求的多个信息片。Internet协议维护Internet协议控制块(internet protocol control block) 和TCP控制块(TCP control block)。因为UDP是无连接的,所以一个端结点需要的,所有信息都在Internet PCB中找到,不存在UDP控制块。
Internet PCB含有所有UDP和TCP端结点共有的信息:外部和本地IP地址、外部和本地端号、IP首部原型、该端结点使用的IP选项以及一个指向该端结点目的地址选路表入口的指针。TCP控制块包含了TCP为各连接维护的所有结点信息:两个方向的序号、窗口大小、重传次数等等。
现有的一种***构架的核心流程参见图2、图3-1和图3-2,其核心业务逻辑为:
1、用户UE接入;
2、用户发起TCP流请求报文;
3、TCPO接受请求;
4、TCPO向ISP请求资源;
5、TCPO获取ISP资源缓存到缓冲队列;
6、TCPO根据TCP拥塞控制算法模块获取发送配额为N个数据包;
7、TCPO根据配额设置TCP协议层控制块的拥塞窗口,把缓冲队列的数据包,以滑动窗口的原理,发送给UE;
8、TCPO根据接受到UE的应答ack报文,对发送包进行确认,然后再次进入步骤6,进行配额重新获取;
9、直到缓存队列全部处理完毕。
发明内容
本发明实施例提供的一种TCP拥塞控制方法、装置、终端及可读存储介质,主要解决的技术问题是当前相关技术中当大量终端接入时,TCP解决方案效率低, TCP的公平性使得每个流都是同等的,大大稀释了有效手机用户的可用资源,用户体验度低。
为解决上述技术问题,本发明实施例提供一种TCP拥塞控制方法,包括:
获取所述用户流的关键特征;
获取ISP资源缓存到缓冲队列,所述ISP资源为根据用户的TCP流请求报文所生成的资源;
根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口;
根据滑动窗口的原理将所述缓冲队列的数据包发送给所述用户。
本发明实施例还提供了一种TCP拥塞控制装置,所述TCP拥塞控制包括:
第一获取模块,用于获取所述用户流的关键特征;
第二获取模块,用于获取ISP资源缓存到缓冲队列,所述ISP资源为根据用户的TCP流请求报文所生成的资源;
确定模块,用于根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口;
发送模块,用于根据滑动窗口的原理将所述缓冲队列的数据包发送给所述用户。
本发明实施例还提供了一种终端,所述终端包括:处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现如上述任一项所述的TCP拥塞控制方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如上述任一项所述的TCP拥塞控制方法的步骤。
本发明的有益效果是:
本发明提供的一种TCP拥塞控制方法、装置、终端及可读存储介质,该TCP 拥塞控制方法通过获取用户的关键特征,当获取到根据用户的TCP流请求报文所生成的ISP资源到缓冲队列,并根据关键特征确定TCP协议层控制块的推荐拥塞窗口,再根据滑动窗口的原理将缓冲队列的数据包发送给该客户,通过根据不同的用户其各自的关键特征分配相应的推荐拥塞窗口,使得根据不同的用户对提供相应的推荐拥塞窗口,不再是同一标准,提升了有效用户的可用资源,提升了用户体验度。
本发明其他特征和相应的有益效果在说明书的后面部分进行阐述说明,且应当理解,至少部分有益效果从本发明说明书中的记载变的显而易见。
附图说明
图1为本发明背景技术提供的一种TCPO所在核心网组示意图;
图2为本发明背景技术提供的一种***构架的核心流程示意图;
图3-1为本发明背景技术提供的一种***构架的核心流程示意图;
图3-2为本发明背景技术提供的一种TCPO传输流程示意图;
图4为本发明实施例一提供的一种TCP拥塞控制方法流程示意图;
图5为本发明实施例一提供的一种搭建深度学习模型,进行深度模型训练示意图;
图6为本发明实施例一提供的一种聚类算法操作示意图;
图7-1为本发明实施例二提供的一种TCP拥塞控制装置的结构示意图;
图7-2为本发明实施例二提供的另一种TCP拥塞控制装置的结构示意图;
图7-3为本发明实施例二提供的一种第一确定子模块的结构示意图;
图7-4为本发明实施例二提供的另一种TCP拥塞控制装置的结构示意图;
图7-5为本发明实施例二提供的另一种TCP拥塞控制装置的结构示意图;
图7-6为本发明实施例二提供的另一种确定模块的结构示意图;
图8为本发明实施例三提供的一种终端的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面通过具体实施方式结合附图对本发明实施例作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一:
请参见图4,本实施例提供的一种TCP拥塞控制方法包括:
S401:获取用户流的关键特征;
S402:获取ISP资源缓存到缓冲队列;
S403:根据关键特征确定TCP协议层控制块的推荐拥塞窗口;
S404:根据滑动窗口的原理将缓冲队列的数据包发送给用户。
在一些实施例中,TCPO获取ISP资源缓存到缓冲队列,其中的ISP资源为根据用户流请求报文所生成的资源,具体的,用户接入并发起TCP流请求报文, TCPO接受请求,向ISP请求资源,TCPO获取ISP资源缓存到缓冲队列。
在一些实施例中,用户流的关键特征可以包括该用户流的源IP地址、源端口、目的IP地址、目的端口、传输层协议所组成的五元组以及UE网络制式、位置信息等。
在一些实施例中,根据关键特征确定TCP协议层控制块的推荐拥塞窗口的一种具体的实施例可以是,TCPO把用户流的关键特征发送给特定的算法模块,通过计算获取该用户流所对应的发送配额为N个数据包,TCPO根据上述发送配额设置TCP协议层控制块的推荐拥塞窗口,把缓冲队列的数据包,以滑动窗口的原理,发送给UE。
在一些实施例中,TCPO根据接收到的UE的应答ACK报文,对发送包进行确认,然后再进入步骤S403,进行推荐拥塞窗口的重新获取,重复上述流程,直到缓存队列全部处理完毕。
与现有的相关技术中,依靠rtt延时或者丢包来猜测网络是否繁忙,若猜测网络不繁忙则盲目的不断增大拥塞窗口,若猜测繁忙则盲目的减少拥塞窗口,这种被动调整拥塞窗口的方式相比,本发明所提供的根据关键特征确定推荐拥塞窗口,可以主动的对可能发生的网络拥塞进行预判,主动调整拥塞窗口,避免网络拥塞真正发生。
在一些实施例中,根据关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
建立推荐拥塞窗口模型,推荐拥塞窗口模型包括对用户的分组和各分组所对应的推荐拥塞窗口,根据关键特征通过确定用户的所属分组来确定用户所对应的推荐拥塞窗口。
需要说明的是,在一些实施例中,建立推荐拥塞窗口模型包括:
获取各样本用户的核心业务指标;
对核心业务指标进行聚类算法操作,得到样本用户的初步分组和各初步分组所对应的初步推荐拥塞窗口;
获取负激励信号,负激励信号为各初步分组的用户按照对应的初步推荐拥塞窗口执行TCPO业务流程发生的负激励信号;
将负激励信号作为负样本考量指标,重新确定样本用户的分组和各分组所对应推荐拥塞窗口。
需要说明的是,为了使得推荐拥塞窗口模型的准确度更高,样本用户的数量以及种类的分布应该尽量多的涵盖更多种类的更多用户,由于达到全部种类的用户全覆盖非常有难度,可以在建立推荐拥塞窗口模型时,在模型的准确度与样本的合理程度之间取得一个用户较为满意的平衡点,以达到既保证推荐拥塞窗口模型的相对准确度,又达到建立推荐拥塞窗口模型的资源占用,成本的合理性。
在一些实施例中,为了更方便的获取各样本用户的核心业务指标,且能够更便捷的更新推荐拥塞窗口模型,可以通过设立增加流量分析服务器NAP来进行数据采集、分析。采集的维度可以包括以下至少一部分维度但不限于以下采集维度:年份、月份、日期、星期几、时、分、秒、拥塞窗口、活跃度、基站、目标IP、源端口、目标端口、制式、RTT延时、累计流量、是否拥塞、队列深度等,其中关于活跃度的确定方式见后文详述,一种数据采集的实施例如表1 所示:
表1
Figure RE-GDA0002410131460000081
在一些实施例中,可以利用核心网优势,非实时采集用户位置信息,也即非实时采集用户归属基站信息,作为备选的采集的维度。
需要说明的是,推荐拥塞窗口模型的样本用户的核心业务指标也可以本领域技术人员采用其他方式所获取的。
需要说明的是,建立了推荐拥塞窗口模型后,可以不对其进行更新,也可以对其根据需求通过补充新的样本用户的核心业务指标等方式进行更新,为了使得通过推荐拥塞窗口模型获取的推荐拥塞窗口更加的准确,还可以根据预设时间间隔进行更新,该时间间隔可以根据本领域技术人员的需求进行设定。
在一些实施例中,推荐拥塞窗口模型的建立一方面可以采用传统算法,但传统算法提速慢。另一方面可以采用人工智能算法也即AI算法,通过AI算法对用户的核心业务指标进行聚类算法操作,设聚类M组,也即初步分组M组,对M组进行建模学***均wsnd发送窗口大小,传递给TCPO的主控模块,在对相同匹配分组的TCP控制块,增加记录推荐发送窗口,用于优选的发送窗口。
在一些实施例中,在一些实施例中,如图5所示,根据关键特征确定TCP 协议层控制块的推荐拥塞窗口也可以包括:
获取各样本用户的核心业务指标,搭建深度学习模型,进行深度模型训练,获取核心业务指标与网络堵塞或时延超出预设延时阈值的拟合函数,根据拟合函数和关键特征,确定用户所对应的推荐拥塞窗口。
在一些实施例中,可以是在对样本用户进行聚类算法操作,如图6所示,得到聚类后的分组M个组,再搭建N层深度学习模型,把一段时间内采样的指标数据进行深度模型训练,输入为M的各项特征值表,通过正负样本进行学习训练,目的是同过样本数据学习特征指标和造成网络堵塞或者时延过大的拟合函数Y,这样,对于相似情形的用户流来说,可以通过函数Y来计算推荐拥塞窗口,从而发送合适大小的数据流。上述这种方式与在TCPO上进行初始值,然后通过另外一个任务线程,定期把该用户关键特征发送给NAP,由NAP进行分组判定计算,定期回填所属分组的推荐拥塞窗口,供TCPO后续使用,该用户流在后续申请推荐拥塞窗口计算时,通过推荐拥塞窗口模型来获取推荐拥塞窗口的方式相比,避免推荐拥塞模型计算对TCPO的性能影响。
在一些实施例中,根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口之前,还包括:
获取所述用户的累计流量;
若所述累计流量大于预设累计流量阈值,则获取所述用户所对应的TCP控制块支持流的当前活跃度指数;
若存在一个所述当前活跃度指数大于预设活跃度阈值,则获取当前***的最热用户榜单,所述最热用户榜单包括当前***中累计流量超过预设累计流量阈值且当前活跃度指数大于预设活跃度指数的用户所对应的拥塞窗口最大的预设数量的用户;
若所述用户未在所述最热用户榜单中,则获取所述最热用户榜单中的各用户所对应的最小的拥塞窗口;
若所述用户的当前拥塞窗口大于所述最小拥塞窗口,则将所述用户添加到所述最热用户榜单中。
需要说明的是,预设累计流量阈值可以是本领域技术人员根据实际需求进行设置的,本发明对其不做限定。
需要说明的是,本发明中对于设定阈值的比较的部分,本领域技术人员公知的,可以采取等于预设阈值作为执行后续步骤的门槛。例如在本实施例中,也可以是:若所述累计流量等于预设累计流量阈值,则获取所述用户所对应的 TCP控制块支持流的当前活跃度指数。为了使得说明书较为简洁,该类型例子就不一一例举赘述了。
在一些实施例中,获取用户的累计流量可以理解为该用户存在的所有的 TCP流请求报文所累计的流量。
需要说明的是,用户的当前拥塞窗口可以理解为该用户在获取推荐拥塞窗口之前,最近一次接收缓冲队列的数据包时的拥塞窗口。
需要说明的是,将该用户添加到最热用户榜单中后,该最热用户榜单中的最后一名用户将被剔除到最热用户榜单。也即,该用户将替代拥有最小拥塞窗口的用户。
需要说明的是,当用户存在多个流时,用户的当前拥塞窗口等于各个流所对应的拥塞窗口之和。例如,当前最热榜单中有用户甲和用户乙,用户甲有流A 和流B,用户乙有流C,其中流A的当前拥塞窗口为5,流B的当前拥塞窗口为8,流C的当前拥塞窗口为9。则此时用户甲的当前拥塞窗口=5+8=13,用户乙的当前拥塞窗口为9,故当前最热用户榜单中各用户所对应的最小的拥塞窗口等于8。现有用户丙尚未存在与最热用户榜单中,且用户丙的累计流量大于预设累计流量阈值,用户丙的当前活跃度指数大于预设活跃度阈值,则,用户丙的当前拥塞窗口等于10。此时,用户丙的当前拥塞窗口大于最小拥塞窗口。则此时丙替换用户乙存在与最热用户榜中。
在一些实施例中,获取用户所对应的TCP控制块支持流的当前活跃度指数包括:
当收到ack确认时,获取上次上报活跃度指数及上次上报活跃度指数时间;
若当前拥塞窗口大于预设拥塞窗口,当前时间距离上次上报活跃度指数时间的时间间隔大于预设时间间隔,上次上报活跃度指数小于最大活跃度指数;
则,当前活跃度指数等于上次上报活跃度指数加上线性累加值。
需要说明的是,预设时间间隔用来区分是否处于持续传输状态,考虑到延时ack的影响,预设时间间隔可以是取平均RTT的3倍,也可以时本领域技术人员自行设定的。
需要说明的是,预设拥塞窗口的具体值可以由本领域技术人员根据实际需求进行设定,其作用是可以降低计算量,过滤掉一些较小的流传输。
需要说明的是,由于活跃度指数过大将造成近期降速不能很快反馈到当前流,所以通常对其有一个最大活跃度指数的限定,可以限定当前活跃度指数的不合理增长。最大活跃度指数可以由本领域技术人员根据实际需要或者经验进行设置。
需要说明的是线性累加值也可以是由本领域技术人员根据实际需要或者经验进行设置。该线性累加值为正数。
在一些实施例中,获取用户所对应的TCP控制块支持流的当前活跃度指数包括:
当收到ack确认时,
若获取不到上次上报活跃度指数;
则当前活跃度指数等于初始活跃度指数。
需要说明的是,若获取不到上次上报活跃度指数时,往往是该用户还没有接收到过缓冲队列的数据包,因而其拥塞窗口还是初始的拥塞窗口,此时该流的当前活跃度指数等于初始活跃度指数。其中,初始活跃度指数可以是由本领域技术人员根据实际需要或者经验进行设置。
在一些实施例中,初始活跃度指数等于1,线性累加值等于1,最大活跃度指数等于10。需要说明的是,本领域的技术人员也可以将初始活跃度指数设定为负值,或者其他正值,其余的线性累加值、最大活跃度指数等都按照相应的逻辑进行更改。
在一些实施例中,活跃度指数的价值在于反应了当前流的流量活跃度,其在后续用户分类、指标采集、***控制起到的标识的效果。通过对活跃度指数进行分级,可以对整个***同类型流做***级的流量反向控制。在一些实施例中当前活跃度指数取值为1-9,采用了先行累加乘法减少的机制,可以反映流的活跃情况,对流进行主动降速有较好的反馈。通常拥塞窗口降低为UE侧网络已经出现瓶颈,而采取的主动惩罚性降速,进入和凹函数曲线,所以此时该流通常不会很快活跃起来;当前活跃度指数过大会造成近期降速不能很快反馈到当前流,所以通常设为10以内,可以有较好的效果;另外对过小流进行当前活跃度指数计算浪费性能,没有价值,而对于时延过大流计算,也是没有价值的,根据TCP传统拥塞算法,T过大的流,不会继续增速;特别地,如果该流处于会话保持,即暂时没有数据发送,但是流还存在,并且窗口很大,该算法也可以很好的适应,因为预设时间间隔的存在,该流的活跃度会维持在高水位,但是不会继续增长下去,一旦用户继续上网,又可以迅速识别出来,作为高活跃度用户来对待。总之,该算法可以适应大多数的场景,并且计算量极小,不影响原***性能,又对不同活跃级别的用户做个分类,为后续做***总体流量的反向控制提供了手段。
在一些实施例中,根据关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
若用户在最热用户榜单中;
获取用户的流的当前活跃度;
获取当前***的负荷;
若达到退火指标,则推荐拥塞窗口小于或等于当前拥塞窗口;退火指标包括:负荷大于第一预设阈值且小于第二预设阈值,且,存在一个当前活跃度大于活跃度阈值,且,用户的当前拥塞窗口大于标准窗口;标准窗口包括在预设时间内***中最热用户榜单中的用户的当前拥塞窗口的平均值。
需要说明的是,当达到退货指标时,推荐拥塞窗口可以选择等于当前拥塞窗口,也可以是等于当前拥塞窗口乘以第一预设比例,其中第一预设比例大于0 且小于1,第一预设比例的值可以由用户或者本领域技术人员自行设定,在此不做限定。
需要说明的是,在一些实施例中,最热用户榜单是一个实时更新的榜单,当开启***开关后,用户流需要把电话号码或者是源IP、拥塞窗口、上报时间。当用户流上报的是电话号码时,此时,该用户对应的拥塞窗口则为该用户所对应的全部的流的拥塞窗口累计之和。
需要说明的是,用户每次收到消息确认ACK的流程,都进行上报到共享内存区域,如果自己比最热用户榜单中的各用户所对应的最小拥塞窗口大,该用户就替换掉最热用户帮当中拥塞窗口就小的用户,添加到最热用户榜单中。可以理解最热用户榜单的有效性仅是在一个时间周期内的拥塞窗口较大的若干个用户的榜单。设定TCPtimer定时上报机制,上报周期为平均rtt的100倍如果发现100rtt内仍然没有收到消息,则主动清理掉自己的排行记录,来保证排行榜的更新。本算法的设计,通过每次收到消息确认ACK时自检的方式,把***中滑动窗口开的最大的用户加到了排行榜单中,使得全局控制体存放了当前***前一小段时间连续上网用户的流量标准窗口大小样本,即为dw。远大于rtt的定时清理机制,减少了定时器的启动资源;活跃流在ack流程自动申报的机制,大大降低了轮训全部流的***损耗,通常活跃流只占全部流的很小一部分,并且仅在活跃是才会更新,这样分散了同时并发更新的***压力。最热用户榜单的存在,可以反映出***流量大户的流量使用情况,是流量管理里重要的监控目标。
在一些实施例中,根据关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
若用户在最热用户榜单中;
获取用户的流的当前活跃度;
获取当前***的负荷;
若达到灭火指标,则推荐拥塞窗口小于当前拥塞窗口;灭火指标包括:负荷大于第二预设阈值,且,用户的当前拥塞窗口大于标准窗口;标准窗口包括在预设时间内***中最热用户榜单中的用户的当前拥塞窗口的平均值。
需要说明的是,达到灭火指标时,需要进行缩窗,此时,推荐拥塞窗口等于当前拥塞窗口乘以第二预设比例,其中第二预设比例大于0且小于1,第二预设比例的值可以由用户或者本领域技术人员自行设定,在此不做限定。
需要说明的是,虽然***的总流量是不断变化的,但是最近一小段时间的的高流量用户样本,是可以反应当前流量宏观大小的,通常可以拿来作为测算的依据;本实施例在原***上,采用了低损耗低开销的方式,取得流量大户的样本数据,可以作为动态降流量;不影响新用户上网,可以有针对的,对长期连续占用网络的用户进行部分网络退让,遵行了TCP的公平性原则。
在一些实施例中,根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
获取当前***的负荷;
若负荷小于第三预设阈值,且用户为新用户;
则,推荐窗口等于标准窗口乘以第三预设比例,标准窗口包括在预设时间内***中所述最热用户榜单中的用户的当前拥塞窗口的平均值。
需要说明的是,第三预设阈值小于第一预设阈值小于第二预设阈值。
需要说明的是,新用户可以理解为该用户接入后,发起TCP流请求报文, TCPO接受请求,向ISP请求资源,TCPO获取ISP资源缓存到缓冲队列后,尚未将缓冲队列的数据包发送给用户的这些用户。也即,可以理解,新用户为尚未收到过缓冲队列的数据包的用户。
需要说明的是,第三预设比例大于0且小于1,第三预设比例的值可以由用户或者本领域技术人员自行设定,例如50%。
在一些实施例中,针对新用户可以直接通过推荐拥塞窗口模型或者拟合函数来获得合适的推荐拥塞窗口。此时针对新用户的推荐拥塞窗口也可以理解为初始拥塞窗口。需要说明的是,当***的负荷小于第三预设阈值时,初始拥塞窗口的值可以适当的设定的较大,从而可以避免发送数据包开始慢加速阶段过长的问题。
在一些实施例中,负激励信号包括但不限于以下至少一种:触发网络堵塞、丢包、三次重复ack、发送延时、达到退火指标、达到灭火指标。
在一些实施例中,可以通过开辟共享存储哈希表来获取***当前最热用户榜单,当用户接收数据包时,上报用户的流量和当前发送窗口大小,并根据流量活跃度算法计算活跃度,活跃度算法考虑了连续发送处于上升或下降区间、以及发送窗口和初始阀门比的权重设置,目的是把当前一段时间相对活跃的用户流量和发送窗口记录下来,供***应急退火时提供所需的参考数据;同时考虑***性能的影响,仅记录相对活跃的部分用户,不需要全部跟踪记录。
在一些实施例中,在确定了推荐拥塞窗口后,还可以获取接收端的通告窗口,需要说明的是,拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。在获取了通告窗口后,取推荐拥塞窗口和通告窗口中较小的一个作为发送上限。
下面通过一个具体的实施例,对本实施例所提供的方法做进一步说明。
当用户UE上网时,通过TCP三次握手与TCPO建链,存在至少一个用户流,与之同时,TCPO与web建链,UE发起get请求,此时该上行阶段就会对该用户流的关键特征进行提取。get请求转给web,web返回数据或相应的资源到TCPO 缓存队列,通过本实施例所提供的TCP拥塞控制方法匹配该用户流所对应的推荐拥塞窗口,进而根据滑动窗口的原理将缓存队列中的缓存数据发还给UE。
本发明提供的一种TCP拥塞控制方法、装置、终端及计算机可读存储介质,该TCP拥塞控制方法通过当获取到根据用户的TCP流请求报文所生成的ISP资源到缓冲队列,获取该用户的关键特征,并根据关键特征确定TCP协议层控制块的推荐拥塞窗口,再根据滑动窗口的原理将缓冲队列的数据包发送给该客户,通过根据不同的用户其各自的关键特征分配相应的推荐拥塞窗口,使得根据不同的用户对提供相应的推荐拥塞窗口,不再是同一标准,提升了有效用户的可用资源,提升了用户体验度。
实施例二:
本实施例还提供了一种TCP拥塞控制装置,如图7-1所示,TCP拥塞控制装置700包括:
第一获取模块701,用于获取用户流的关键特征;
第二获取模块702,用于获取ISP资源缓存到缓冲队列,ISP资源为根据用户的TCP流请求报文所生成的资源;
确定模块703,用于根据关键特征确定TCP协议层控制块的推荐拥塞窗口;
发送模块704,用于根据滑动窗口的原理将缓冲队列的数据包发送给用户。
在一些实施例中,TCPO获取ISP资源缓存到缓冲队列,其中的ISP资源为根据用户的TCP流请求报文所述生成的资源,具体的,用户接入并发起TCP流请求报文,TCPO接受请求,向ISP请求资源,TCPO获取ISP资源缓存到缓冲队列。
在一些实施例中,用户流的关键特征可以包括该用户流的源IP地址、源端口、目的IP地址、目的端口、传输层协议所组成的五元组以及UE网络制式、位置信息等。
在一些实施例中,根据关键特征确定TCP协议层控制块的推荐拥塞窗口的一种具体的实施例可以是,TCPO把用户流的关键技术特征发送给特定的算法模块,通过计算获取该用户流所对应的发送配额为N个数据包,TCPO根据上述发送配额设置TCP协议层控制块的推荐拥塞窗口,把缓冲队列的数据包,以滑动窗口的原理,发送给UE。
在一些实施例中,TCPO根据接收到的UE的应答ACK报文,对发送包进行确认,然后再进入步骤S103,进行推荐拥塞窗口的重新获取,重复上述流程,直到缓存队列全部处理完毕。
与现有的相关技术中,依靠rtt延时或者丢包来猜测网络是否繁忙,若猜测网络不繁忙则盲目的不断增大拥塞窗口,若猜测繁忙则盲目的减少拥塞窗口,这种被动调整拥塞窗口的方式相比,本发明所提供的根据关键特征确定推荐拥塞窗口,可以主动的对可能发生的网络拥塞进行预判,主动调整拥塞窗口,避免网络拥塞真正发生。
在一些实施例中,如图7-2所示,确定模块703包括:
第一确定子模块7031,用于建立推荐拥塞窗口模型,所述推荐拥塞窗口模型包括对所述用户的分组和各分组所对应的推荐拥塞窗口,根据所述关键特征通过确定所述用户的所属分组来确定所述用户所对应的推荐拥塞窗口。
在一些实施例中,如图7-3所示,第一确定子模块7031还包括:
样本获取模块70311,用于获取各样本用户的核心业务指标;
聚类算法模块70312,用于对所述核心业务指标进行聚类算法操作,得到所述用户的初步分组和各初步分组所对应的初步推荐拥塞窗口;
负激励信号获取模块70313,用于获取负激励信号,所述负激励信号为各初步分组的用户按照对应的所述初步推荐拥塞窗口执行TCPO业务流程发生的负激励信号;
重新确定模块70314,用于将所述负激励信号作为负样本考量指标,重新确定所述样本用户的分组和各分组所对应推荐拥塞窗口。
需要说明的是,为了使得推荐拥塞窗口模型的准确度更高,样本用户的数量以及种类的分布应该尽量多的涵盖更多种类的更多用户,由于达到全部种类的用户全覆盖非常有难度,可以在建立推荐拥塞窗口模型时,在模型的准确度与样本的合理程度之间取得一个用户较为满意的平衡点,以达到既保证推荐拥塞窗口模型的相对准确度,又达到建立推荐拥塞窗口模型的资源占用,成本的合理性。
在一些实施例中,为了更方便的获取各样本用户的核心业务指标,且能够更便捷的更新推荐拥塞窗口模型,可以通过设立增加流量分析服务器NAP来进行数据采集、分析。采集的维度可以包括以下至少一部分维度但不限于以下采集维度:年份、月份、日期、星期几、时、分、秒、拥塞窗口、活跃度、基站、目标IP、源端口、目标端口、制式、RTT延时、累计流量、是否拥塞、队列深度等,其中关于活跃度的确定方式见后文详述,一种数据采集的实施例如表1 所示:
表1
Figure RE-GDA0002410131460000181
在一些实施例中,可以利用核心网优势,非实时采集用户位置信息,也即非实时采集用户归属基站信息,作为备选的采集的维度。
需要说明的是,推荐拥塞窗口模型的样本用户的核心业务指标也可以本领域技术人员采用其他方式所获取的。
需要说明的是,建立了推荐拥塞窗口模型后,可以不对其进行更新,也可以对其根据需求通过补充新的样本用户的核心业务指标等方式进行更新,为了使得通过推荐拥塞窗口模型获取的推荐拥塞窗口更加的准确,还可以根据预设时间间隔进行更新,该时间间隔可以根据本领域技术人员的需求进行设定。
在一些实施例中,推荐拥塞窗口模型的建立一方面可以采用传统算法,但传统算法提速慢。另一方面可以采用人工智能算法也即AI算法,通过AI算法对用户的核心业务指标进行聚类算法操作,设聚类M组,也即初步分组M组,对M组进行建模学***均wsnd发送窗口大小,传递给TCPO的主控模块,在对相同匹配分组的TCP控制块,增加记录推荐发送窗口,用于优选的发送窗口。
在一些实施例中,如图7-4所示,确定模块703包括:
第二确定子模块,用于获取各样本用户的核心业务指标,搭建深度学习模型,进行深度模型训练,获取所述核心业务指标与网络堵塞或时延超出预设延时阈值的拟合函数,根据所述拟合函数和所述关键特征,确定所述用户所对应的推荐拥塞窗口。
在一些实施例中,可以是在对样本用户进行聚类算法操作,得到聚类后的分组M个组,再搭建N层深度学习模型,把一段时间内采样的指标数据进行深度模型训练,输入为M的各项特征值表,通过正负样本进行学习训练,目的是同过样本数据学习特征指标和造成网络堵塞或者时延过大的拟合函数Y,这样,对于相似情形的用户流来说,可以通过函数Y来计算推荐拥塞窗口,从而发送合适大小的数据流。上述这种方式与在TCPO上进行初始值,然后通过另外一个任务线程,定期把该用户关键特征发送给NAP,由NAP进行分组判定计算,定期回填所属分组的推荐拥塞窗口,供TCPO后续使用,该用户流在后续申请推荐拥塞窗口计算时,通过推荐拥塞窗口模型来获取推荐拥塞窗口的方式相比,避免推荐拥塞模型计算对TCPO的性能影响。
在一些实施例中,如图7-5所示,TCP拥塞控制装置500还包括:
第三获取模块705,用于在所述确定模块根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口之前,获取所述用户的累计流量;
第四获取模块706,用于若所述累计流量大于预设累计流量阈值,则获取所述用户所对应的TCP控制块支持流的当前活跃度指数;
第五获取模块707,用于若存在一个所述当前活跃度指数大于预设活跃度阈值,则获取当前***的最热用户榜单,所述最热用户榜单包括当前***中累计流量超过预设累计流量阈值且当前活跃度指数大于预设活跃度指数的用户所对应的拥塞窗口最大的预设数量的用户;
第六获取模块708,用于若所述用户未在所述最热用户榜单中,则获取所述最热用户榜单中的各用户所对应的最小的拥塞窗口;
添加模块709,用于若所述用户的当前拥塞窗口大于所述最小拥塞窗口,则将所述用户添加到所述最热用户榜单中。
需要说明的是,预设累计流量阈值可以是本领域技术人员根据实际需求进行设置的,本发明对其不做限定。
需要说明的是,本发明中对于设定阈值的比较的部分,本领域技术人员公知的,可以采取等于预设阈值作为执行后续步骤的门槛。例如在本实施例中,也可以是:若所述累计流量等于预设累计流量阈值,则获取所述用户所对应的 TCP控制块支持流的当前活跃度指数。为了使得说明书较为简洁,该类型例子就不一一例举赘述了。
在一些实施例中,获取用户的累计流量可以理解为该用户存在的所有的 TCP流请求报文所累计的流量。
需要说明的是,用户的当前拥塞窗口可以理解为该用户在获取推荐拥塞窗口之前,最近一次接收缓冲队列的数据包时的拥塞窗口。
需要说明的是,将该用户添加到最热用户榜单中后,该最热用户榜单中的最后一名用户将被剔除到最热用户榜单。也即,该用户将替代拥有最小拥塞窗口的用户。
需要说明的是,当用户存在多个流时,用户的当前拥塞窗口等于各个流所对应的拥塞窗口之和。例如,当前最热榜单中有用户甲和用户乙,用户甲有流A 和流B,用户乙有流C,其中流A的当前拥塞窗口为5,流B的当前拥塞窗口为8,流C的当前拥塞窗口为9。则此时用户甲的当前拥塞窗口=5+8=13,用户乙的当前拥塞窗口为9,故当前最热用户榜单中各用户所对应的最小的拥塞窗口等于8。现有用户丙尚未存在与最热用户榜单中,且用户丙的累计流量大于预设累计流量阈值,用户丙的当前活跃度指数大于预设活跃度阈值,则,用户丙的当前拥塞窗口等于10。此时,用户丙的当前拥塞窗口大于最小拥塞窗口。则此时丙替换用户乙存在与最热用户榜中。
在一些实施例中,第四获取模块706还包括:
第四获取第一子模块,用于当收到ack确认时,获取上次上报活跃度指数及上次上报活跃度指数时间;
第一活跃度指数确定模块,用于若当前拥塞窗口大于预设拥塞窗口,且,当前时间距离上次上报活跃度指数时间的时间间隔大于预设时间间隔,且,上次上报活跃度指数小于最大活跃度指数;则,当前活跃度指数等于上次上报活跃度指数加上线性累加值。
需要说明的是,预设时间间隔用来区分是否处于持续传输状态,考虑到延时ack的影响,预设时间间隔可以是取平均RTT的3倍,也可以时本领域技术人员自行设定的。
需要说明的是,预设拥塞窗口的具体值可以由本领域技术人员根据实际需求进行设定,其作用是可以降低计算量,过滤掉一些较小的流传输。
需要说明的是,由于活跃度指数过大将造成近期降速不能很快反馈到当前流,所以通常对其有一个最大活跃度指数的限定,可以限定当前活跃度指数的不合理增长。最大活跃度指数可以由本领域技术人员根据实际需要或者经验进行设置。
需要说明的是线性累加值也可以是由本领域技术人员根据实际需要或者经验进行设置。该线性累加值为正数。
在一些实施例中,第四获取模块706还包括:
第二活跃度指数确定模块,用于当收到ack确认时,若获取不到上次上报活跃度指数;则当前活跃度指数等于初始活跃度指数。
需要说明的是,若获取不到上次上报活跃度指数时,往往是该用户还没有接收到过缓冲队列的数据包,因而其拥塞窗口还是初始的拥塞窗口,此时该流的当前活跃度指数等于初始活跃度指数。其中,初始活跃度指数可以是由本领域技术人员根据实际需要或者经验进行设置。
在一些实施例中,初始活跃度指数等于1,线性累加值等于1,最大活跃度指数等于10。需要说明的是,本领域的技术人员也可以将初始活跃度指数设定为负值,或者其他正值,其余的线性累加值、最大活跃度指数等都按照相应的逻辑进行更改。
在一些实施例中,活跃度指数的价值在于反应了当前流的流量活跃度,其在后续用户分类、指标采集、***控制起到的标识的效果。通过对活跃度指数进行分级,可以对整个***同类型流做***级的流量反向控制。在一些实施例中当前活跃度指数取值为1-9,采用了先行累加乘法减少的机制,可以反映流的活跃情况,对流进行主动降速有较好的反馈。通常拥塞窗口降低为UE侧网络已经出现瓶颈,而采取的主动惩罚性降速,进入和凹函数曲线,所以此时该流通常不会很快活跃起来;当前活跃度指数过大会造成近期降速不能很快反馈到当前流,所以通常设为10以内,可以有较好的效果;另外对过小流进行当前活跃度指数计算浪费性能,没有价值,而对于时延过大流计算,也是没有价值的,根据TCP传统拥塞算法,T过大的流,不会继续增速;特别地,如果该流处于会话保持,即暂时没有数据发送,但是流还存在,并且窗口很大,该算法也可以很好的适应,因为预设时间间隔的存在,该流的活跃度会维持在高水位,但是不会继续增长下去,一旦用户继续上网,又可以迅速识别出来,作为高活跃度用户来对待。总之,该算法可以适应大多数的场景,并且计算量极小,不影响原***性能,又对不同活跃级别的用户做个分类,为后续做***总体流量的反向控制提供了手段。
在一些实施例中,如图7-6所示,确定模块703包括:
第三确定子模块7033,用于若所述用户在所述最热用户榜单中;获取所述用户的流的当前活跃度,获取当前***的负荷;若达到退火指标,则所述推荐拥塞窗口小于或等于所述当前拥塞窗口;所述退火指标包括:所述负荷大于第一预设阈值且小于第二预设阈值,且,存在一个当前活跃度大于活跃度阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
和/或,
第四确定子模块7034,用于若所述用户在所述最热用户榜单中;获取所述用户的流的当前活跃度;获取当前***的负荷;若达到灭火指标,则所述推荐拥塞窗口小于所述当前拥塞窗口;所述灭火指标包括:所述负荷大于第二预设阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
和/或,
第五确定子模块7035,用于获取当前***的负荷;若所述负荷小于第三预设阈值,且所述用户为新用户;则,所述推荐窗口等于标准窗口乘以第三预设比例,所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值。
需要说明的是,当达到退货指标时,推荐拥塞窗口可以选择等于当前拥塞窗口,也可以是等于当前拥塞窗口乘以第一预设比例,其中第一预设比例大于0 且小于1,第一预设比例的值可以由用户或者本领域技术人员自行设定,在此不做限定。
需要说明的是,在一些实施例中,最热用户榜单是一个实时更新的榜单,当开启***开关后,用户流需要把电话号码或者是源IP、拥塞窗口、上报时间。当用户流上报的是电话号码时,此时,该用户对应的拥塞窗口则为该用户所对应的全部的流的拥塞窗口累计之和。
需要说明的是,用户每次收到消息确认ACK的流程,都进行上报到共享内存区域,如果自己比最热用户榜单中的各用户所对应的最小拥塞窗口大,该用户就替换掉最热用户帮当中拥塞窗口就小的用户,添加到最热用户榜单中。可以理解最热用户榜单的有效性仅是在一个时间周期内的拥塞窗口较大的若干个用户的榜单。设定TCPtimer定时上报机制,上报周期为平均rtt的100倍如果发现100rtt内仍然没有收到消息,则主动清理掉自己的排行记录,来保证排行榜的更新。本算法的设计,通过每次收到消息确认ACK时自检的方式,把***中滑动窗口开的最大的用户加到了排行榜单中,使得全局控制体存放了当前***前一小段时间连续上网用户的流量标准窗口大小样本,即为dw。远大于rtt的定时清理机制,减少了定时器的启动资源;活跃流在ack流程自动申报的机制,大大降低了轮训全部流的***损耗,通常活跃流只占全部流的很小一部分,并且仅在活跃是才会更新,这样分散了同时并发更新的***压力。最热用户榜单的存在,可以反映出***流量大户的流量使用情况,是流量管理里重要的监控目标。
需要说明的是,达到灭火指标时,需要进行缩窗,此时,推荐拥塞窗口等于当前拥塞窗口乘以第二预设比例,其中第二预设比例大于0且小于1,第二预设比例的值可以由用户或者本领域技术人员自行设定,在此不做限定。
需要说明的是,虽然***的总流量是不断变化的,但是最近一小段时间的的高流量用户样本,是可以反应当前流量宏观大小的,通常可以拿来作为测算的依据;本实施例在原***上,采用了低损耗低开销的方式,取得流量大户的样本数据,可以作为动态降流量;不影响新用户上网,可以有针对的,对长期连续占用网络的用户进行部分网络退让,遵行了TCP的公平性原则。
需要说明的是,第三预设阈值小于第一预设阈值小于第二预设阈值。
需要说明的是,新用户可以理解为该用户接入后,发起TCP流请求报文, TCPO接受请求,向ISP请求资源,TCPO获取ISP资源缓存到缓冲队列后,尚未将缓冲队列的数据包发送给用户的这些用户。也即,可以理解,新用户为尚未收到过缓冲队列的数据包的用户。
需要说明的是,第三预设比例大于0且小于1,第三预设比例的值可以由用户或者本领域技术人员自行设定,例如50%。
在一些实施例中,针对新用户可以直接通过推荐拥塞窗口模型或者拟合函数来获得合适的推荐拥塞窗口。此时针对新用户的推荐拥塞窗口也可以理解为初始拥塞窗口。需要说明的是,当***的负荷小于第三预设阈值时,初始拥塞窗口的值可以适当的设定的较大,从而可以避免发送数据包开始慢加速阶段过长的问题。
在一些实施例中,负激励信号包括但不限于以下至少一种:触发网络堵塞、丢包、三次重复ack、发送延时、达到退火指标、达到灭火指标。
在一些实施例中,可以通过开辟共享存储哈希表来获取***当前最热用户榜单,当用户接收数据包时,上报用户的流量和当前发送窗口大小,并根据流量活跃度算法计算活跃度,活跃度算法考虑了连续发送处于上升或下降区间、以及发送窗口和初始阀门比的权重设置,目的是把当前一段时间相对活跃的用户流量和发送窗口记录下来,供***应急降火时提供所需的参考数据;同时考虑***性能的影响,仅记录相对活跃的部分用户,不需要全部跟踪记录。
在一些实施例中,在确定了推荐拥塞窗口后,还可以获取接收端的通告窗口,需要说明的是,拥塞窗口是发送方使用的流量控制,而通告窗口则是接收方使用的流量控制。在获取了通告窗口后,取推荐拥塞窗口和通告窗口中较小的一个作为发送上限。
本发明提供的一种TCP拥塞控制装置,该TCP拥塞控制装置通过当获取到根据用户的TCP流请求报文所生成的ISP资源到缓冲队列,获取该用户的关键特征,并根据关键特征确定TCP协议层控制块的推荐拥塞窗口,再根据滑动窗口的原理将缓冲队列的数据包发送给该客户,通过根据不同的用户其各自的关键特征分配相应的推荐拥塞窗口,使得根据不同的用户对提供相应的推荐拥塞窗口,不再是同一标准,提升了有效用户的可用资源,提升了用户体验度。
实施例三:
本实施例还提供了一种终端,参见图8所示,其包括处理器801、存储器 803及通信总线802,其中:
通信总线802用于实现处理器801和存储器803之间的连接通信;
处理器801用于执行存储器803中存储的一个或者多个计算机程序,以实现上述各实施例中的TCP拥塞控制方法中的至少一个步骤。
实施例四:
本实施例还提供了一种计算机可读存储介质,该计算机可读存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、计算机程序模块或其他数据) 的任何方法或技术中实施的易失性或非易失性、可移除或不可移除的介质。计算机可读存储介质包括但不限于RAM(Random Access Memory,随机存取存储器), ROM(Read-Only Memory,只读存储器),EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他存储器技术、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器),数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本实施例中的计算机可读存储介质可用于存储一个或者多个计算机程序,其存储的一个或者多个计算机程序可被处理器执行,以实现上述各实施例中的 TCP拥塞控制方法的至少一个步骤。
本实施例还提供了一种计算机程序(或称计算机软件),该计算机程序可以分布在计算机可读介质上,由可计算装置来执行,以实现上述各实施例中的事件处理方法的至少一个步骤;并且在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
应当理解的是,在某些情况下,可以采用不同于上述实施例所描述的顺序执行所示出或描述的至少一个步骤。
本实施例还提供了一种计算机程序产品,包括计算机可读装置,该计算机可读装置上存储有如上所示的计算机程序。本实施例中该计算机可读装置可包括如上所示的计算机可读存储介质。
可见,本领域的技术人员应该明白,上文中所公开方法中的全部或某些步骤、***、装置中的功能模块/单元可以被实施为软件(可以用计算装置可执行的计算机程序代码来实现)、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。
此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、计算机程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。所以,本发明不限制于任何特定的硬件和软件结合。
以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (17)

1.一种TCP拥塞控制方法,其特征在于,包括:
获取用户流的关键特征;
获取ISP资源缓存到缓冲队列,所述ISP资源为根据所述用户的TCP流请求报文所生成的资源;
根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口;
根据滑动窗口的原理将所述缓冲队列的数据包发送给所述用户。
2.如权利要求1所述的TCP拥塞控制方法,其特征在于,所述根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
建立推荐拥塞窗口模型,所述推荐拥塞窗口模型包括对所述用户的分组和各分组所对应的推荐拥塞窗口,根据所述关键特征通过确定所述用户的所属分组来确定所述用户所对应的推荐拥塞窗口;
或,
获取各样本用户的核心业务指标,搭建深度学习模型,进行深度模型训练,获取所述核心业务指标与网络堵塞或时延超出预设延时阈值的拟合函数,根据所述拟合函数和所述关键特征,确定所述用户所对应的推荐拥塞窗口。
3.如权利要求2所述的TCP拥塞控制方法,其特征在于,所述建立推荐拥塞窗口模型,所述推荐拥塞窗口模型包括对所述用户的分组和各分组所对应的推荐拥塞窗口,根据所述关键特征通过确定所述用户的所属分组来确定所述用户所对应的推荐拥塞窗口,还包括:
获取各样本用户的核心业务指标;
对所述核心业务指标进行聚类算法操作,得到所述用户的初步分组和各初步分组所对应的初步推荐拥塞窗口;
获取负激励信号,所述负激励信号为各初步分组的用户按照对应的所述初步推荐拥塞窗口执行TCPO业务流程发生的负激励信号;
将所述负激励信号作为负样本考量指标,重新确定所述样本用户的分组和各分组所对应推荐拥塞窗口。
4.如权利要求1-3任一项所述的TCP拥塞控制方法,其特征在于,所述根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口之前,还包括:
获取所述用户的累计流量;
若所述累计流量大于预设累计流量阈值,则获取所述用户所对应的TCP控制块支持流的当前活跃度指数;
若存在一个所述当前活跃度指数大于预设活跃度阈值,则获取当前***的最热用户榜单,所述最热用户榜单包括当前***中累计流量超过预设累计流量阈值且当前活跃度指数大于预设活跃度指数的用户所对应的拥塞窗口最大的预设数量的用户;
若所述用户未在所述最热用户榜单中,则获取所述最热用户榜单中的各用户所对应的最小的拥塞窗口;
若所述用户的当前拥塞窗口大于所述最小拥塞窗口,则将所述用户添加到所述最热用户榜单中。
5.如权利要求4所述的TCP拥塞控制方法,其特征在于,所述获取所述用户所对应的TCP控制块支持流的当前活跃度指数包括:
当收到ack确认时,获取上次上报活跃度指数及上次上报活跃度指数时间;
若当前拥塞窗口大于预设拥塞窗口,且,当前时间距离上次上报活跃度指数时间的时间间隔大于预设时间间隔,且,上次上报活跃度指数小于最大活跃度指数;
则,当前活跃度指数等于上次上报活跃度指数加上线性累加值;
或,
当收到ack确认时,
若获取不到上次上报活跃度指数;
则当前活跃度指数等于初始活跃度指数。
6.如权利要求5所述的TCP拥塞控制方法,其特征在于,
若所述初始活跃度指数等于1,所述线性累加值等于1,则所述最大活跃度指数等于10。
7.如权利要求4所述的TCP拥塞控制方法,其特征在于,所述根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口包括:
若所述用户在所述最热用户榜单中;
获取所述用户的流的当前活跃度;
获取当前***的负荷;
若达到退火指标,则所述推荐拥塞窗口小于或等于所述当前拥塞窗口;所述退火指标包括:所述负荷大于第一预设阈值且小于第二预设阈值,且,存在一个当前活跃度大于活跃度阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
或,
若所述用户在所述最热用户榜单中;
获取所述用户的流的当前活跃度;
获取当前***的负荷;
若达到灭火指标,则所述推荐拥塞窗口小于所述当前拥塞窗口;所述灭火指标包括:所述负荷大于第二预设阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
或,
获取当前***的负荷;
若所述负荷小于第三预设阈值,且所述用户为新用户;
则,所述推荐拥塞窗口等于标准窗口乘以第三预设比例,所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值。
8.如权利要求7所述的TCP拥塞控制方法,其特征在于,所述负激励信号包括以下至少一种:
触发网络堵塞、丢包、三次重复ack、发送延时、所述达到退火指标、所述达到灭火指标。
9.一种TCP拥塞控制装置,其特征在于,包括:
第一获取模块,用于获取用户流的关键特征;
第二获取模块,用于获取ISP资源缓存到缓冲队列,所述ISP资源为根据所述用户的TCP流请求报文所生成的资源;
确定模块,用于根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口;
发送模块,用于根据滑动窗口的原理将所述缓冲队列的数据包发送给所述用户。
10.如权利要求9所述的TCP拥塞控制装置,其特征在于,所述确定模块包括:
第一确定子模块,用于建立推荐拥塞窗口模型,所述推荐拥塞窗口模型包括对所述用户的分组和各分组所对应的推荐拥塞窗口,根据所述关键特征通过确定所述用户的所属分组来确定所述用户所对应的推荐拥塞窗口;
或,
第二确定子模块,用于获取各样本用户的核心业务指标,搭建深度学习模型,进行深度模型训练,获取所述核心业务指标与网络堵塞或时延超出预设延时阈值的拟合函数,根据所述拟合函数和所述关键特征,确定所述用户所对应的推荐拥塞窗口。
11.如权利要求10所述的TCP拥塞控制装置,其特征在于,所述第一确定子模块还包括:
样本获取模块,用于获取各样本用户的核心业务指标;
聚类算法模块,用于对所述核心业务指标进行聚类算法操作,得到所述用户的初步分组和各初步分组所对应的初步推荐拥塞窗口;
负激励信号获取模块,用于获取负激励信号,所述负激励信号为各初步分组的用户按照对应的所述初步推荐拥塞窗口执行TCPO业务流程发生的负激励信号;
重新确定模块,用于将所述负激励信号作为负样本考量指标,重新确定所述样本用户的分组和各分组所对应推荐拥塞窗口。
12.如权利要求9-11任一项所述的TCP拥塞控制装置,其特征在于,所述TCP拥塞控制装置还包括:
第三获取模块,用于在所述确定模块根据所述关键特征确定TCP协议层控制块的推荐拥塞窗口之前,获取所述用户的累计流量;
第四获取模块,用于若所述累计流量大于预设累计流量阈值,则获取所述用户所对应的TCP控制块支持流的当前活跃度指数;
第五获取模块,用于若存在一个所述当前活跃度指数大于预设活跃度阈值,则获取当前***的最热用户榜单,所述最热用户榜单包括当前***中累计流量超过预设累计流量阈值且当前活跃度指数大于预设活跃度指数的用户所对应的拥塞窗口最大的预设数量的用户;
第六获取模块,用于若所述用户未在所述最热用户榜单中,则获取所述最热用户榜单中的各用户所对应的最小的拥塞窗口;
添加模块,用于若所述用户的当前拥塞窗口大于所述最小拥塞窗口,则将所述用户添加到所述最热用户榜单中。
13.如权利要求12所述的TCP拥塞控制装置,其特征在于,所述第四获取模块还包括:
第四获取第一子模块,用于当收到ack确认时,获取上次上报活跃度指数及上次上报活跃度指数时间;
第一活跃度指数确定模块,用于若当前拥塞窗口大于预设拥塞窗口,且,当前时间距离上次上报活跃度指数时间的时间间隔大于预设时间间隔,且,上次上报活跃度指数小于最大活跃度指数;则,当前活跃度指数等于上次上报活跃度指数加上线性累加值;
第二活跃度指数确定模块,用于当收到ack确认时,若获取不到上次上报活跃度指数;则当前活跃度指数等于初始活跃度指数。
14.如权利要求13所述的TCP拥塞控制装置,其特征在于,
若所述初始活跃度指数等于1,所述线性累加值等于1,则所述最大活跃度指数等于10。
15.如权利要求12所述的TCP拥塞控制装置,其特征在于,所述确定模块包括:
第三确定子模块,用于若所述用户在所述最热用户榜单中;获取所述用户的流的当前活跃度,获取当前***的负荷;若达到退火指标,则所述推荐拥塞窗口小于或等于所述当前拥塞窗口;所述退火指标包括:所述负荷大于第一预设阈值且小于第二预设阈值,且,存在一个当前活跃度大于活跃度阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
或,
第四确定子模块,用于若所述用户在所述最热用户榜单中;获取所述用户的流的当前活跃度;获取当前***的负荷;若达到灭火指标,则所述推荐拥塞窗口小于所述当前拥塞窗口;所述灭火指标包括:所述负荷大于第二预设阈值,且,所述用户的当前拥塞窗口大于标准窗口;所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值;
或,
第五确定子模块,用于获取当前***的负荷;若所述负荷小于第三预设阈值,且所述用户为新用户;则,所述推荐窗口等于标准窗口乘以第三预设比例,所述标准窗口包括在预设时间内所述***中所述最热用户榜单中的用户的当前拥塞窗口的平均值。
16.一种终端,其特征在于,所述终端包括:处理器、存储器及通信总线;
所述通信总线用于实现处理器和存储器之间的连接通信;
所述处理器用于执行存储器中存储的一个或者多个计算机程序,以实现如权利要求1至8中任一项所述的TCP拥塞控制方法的步骤。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现如权利要求1至8中任一项所述的TCP拥塞控制方法的步骤。
CN201911073237.1A 2019-11-05 2019-11-05 一种tcp拥塞控制方法、装置、终端及可读存储介质 Pending CN112787942A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201911073237.1A CN112787942A (zh) 2019-11-05 2019-11-05 一种tcp拥塞控制方法、装置、终端及可读存储介质
PCT/CN2020/126570 WO2021088893A1 (zh) 2019-11-05 2020-11-04 一种tcp拥塞控制方法、装置、终端及可读存储介质
EP20884481.1A EP3952233A4 (en) 2019-11-05 2020-11-04 Tcp congestion control method, apparatus, terminal, and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911073237.1A CN112787942A (zh) 2019-11-05 2019-11-05 一种tcp拥塞控制方法、装置、终端及可读存储介质

Publications (1)

Publication Number Publication Date
CN112787942A true CN112787942A (zh) 2021-05-11

Family

ID=75747504

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911073237.1A Pending CN112787942A (zh) 2019-11-05 2019-11-05 一种tcp拥塞控制方法、装置、终端及可读存储介质

Country Status (3)

Country Link
EP (1) EP3952233A4 (zh)
CN (1) CN112787942A (zh)
WO (1) WO2021088893A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11895531B2 (en) 2021-07-05 2024-02-06 Samsung Electronics Co., Ltd. Method and device for regulating flow of data transmission in a wireless network

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116055406B (zh) * 2023-01-10 2024-05-03 中国联合网络通信集团有限公司 拥塞窗口预测模型的训练方法及装置
CN116915706B (zh) * 2023-09-13 2023-12-26 合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室) 数据中心网络拥塞控制方法、装置、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1556629A (zh) * 2004-01-06 2004-12-22 �����ʵ��ѧ 通信网络中调整拥塞窗口的方法
US7047312B1 (en) * 2000-07-26 2006-05-16 Nortel Networks Limited TCP rate control with adaptive thresholds
CN101527928A (zh) * 2009-03-19 2009-09-09 中兴通讯股份有限公司 电路数据业务的传输***及方法
US20150023175A1 (en) * 2013-07-18 2015-01-22 National Central University Jitter-based transmission control method
CN106789718A (zh) * 2016-12-05 2017-05-31 广东神马搜索科技有限公司 数据传输的拥塞控制方法、设备、服务器及可编程设备
CN108111430A (zh) * 2017-12-22 2018-06-01 北京百度网讯科技有限公司 一种tcp初始窗口优化方法和***
CN109412958A (zh) * 2017-08-18 2019-03-01 华为技术有限公司 数据中心的拥塞控制方法和装置
CN110247853A (zh) * 2018-03-09 2019-09-17 网宿科技股份有限公司 Tcp拥塞控制方法、***、存储介质及网络服务器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016072836A1 (en) * 2014-11-06 2016-05-12 Universiti Putra Malaysia A method for tcp congestion in multi-hop wireless network
CN106713166B (zh) * 2015-07-31 2020-10-09 华为技术有限公司 确定拥塞窗口大小的方法及装置
CN106686621A (zh) * 2015-11-09 2017-05-17 中兴通讯股份有限公司 一种数据传输的方法及wap设备
US10257097B1 (en) * 2016-10-04 2019-04-09 EMC IP Holding Company LLC Connection based selection of a network congestion control process
US10419354B2 (en) * 2017-01-27 2019-09-17 Verizon Patent And Licensing Inc. Congestion avoidance over a transmission control protocol (TCP) flow that involves one or more devices using active queue management (AQM), based on one or more TCP state conditions

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047312B1 (en) * 2000-07-26 2006-05-16 Nortel Networks Limited TCP rate control with adaptive thresholds
CN1556629A (zh) * 2004-01-06 2004-12-22 �����ʵ��ѧ 通信网络中调整拥塞窗口的方法
CN101527928A (zh) * 2009-03-19 2009-09-09 中兴通讯股份有限公司 电路数据业务的传输***及方法
US20150023175A1 (en) * 2013-07-18 2015-01-22 National Central University Jitter-based transmission control method
CN106789718A (zh) * 2016-12-05 2017-05-31 广东神马搜索科技有限公司 数据传输的拥塞控制方法、设备、服务器及可编程设备
CN109412958A (zh) * 2017-08-18 2019-03-01 华为技术有限公司 数据中心的拥塞控制方法和装置
CN108111430A (zh) * 2017-12-22 2018-06-01 北京百度网讯科技有限公司 一种tcp初始窗口优化方法和***
CN110247853A (zh) * 2018-03-09 2019-09-17 网宿科技股份有限公司 Tcp拥塞控制方法、***、存储介质及网络服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
LI WEI ET AL: "QTCP:Adaptive Congestion Control with Reinforcement Learning", IEEE, pages 3 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11895531B2 (en) 2021-07-05 2024-02-06 Samsung Electronics Co., Ltd. Method and device for regulating flow of data transmission in a wireless network

Also Published As

Publication number Publication date
WO2021088893A1 (zh) 2021-05-14
EP3952233A4 (en) 2022-06-29
EP3952233A1 (en) 2022-02-09

Similar Documents

Publication Publication Date Title
Eggert et al. Effects of ensemble-TCP
US9444749B2 (en) Apparatus and method for selectively delaying network data flows
WO2021088893A1 (zh) 一种tcp拥塞控制方法、装置、终端及可读存储介质
US11095568B2 (en) Systems and methods for network scheduling and re-transmission buffering
JP4128198B2 (ja) 帯域制御装置
WO2010129275A2 (en) Adaptive rate control based on overload signals
CN106464598A (zh) 用于基于传输速率梯度的网络拥塞控制的方法和装置
Bonald Comparison of TCP Reno and TCP Vegas: efficiency and fairness
Abualhaj et al. FLRED: an efficient fuzzy logic based network congestion control method
Wang et al. TCP congestion control algorithm for heterogeneous Internet
Liu et al. Improving explicit congestion notification with the mark-front strategy
CN113141314B (zh) 一种拥塞控制方法及设备
Ndikumana et al. Network-assisted congestion control for information centric networking
WO2024109734A1 (zh) 数据传输方法、装置、电子设备及存储介质
George et al. Congestion control mechanism for unresponsive flows in internet through active queue management system (AQM)
Tang et al. TCP-WBQ: a backlog-queue-based congestion control mechanism for heterogeneous wireless networks
CN110972199B (zh) 一种流量拥塞监测方法及装置
WO2021013260A1 (zh) 一种网络传输控制方法及装置
Rahimi et al. An improvement mechanism for low priority traffic TCP performance in Strict Priority Queueing
Ling et al. Blocking time-based mptcp scheduler for heterogeneous networks
Mohanty et al. Transport protocols in wireless sensor networks
JP2003046555A (ja) 帯域監視装置
Efraimidis et al. Window-games between TCP flows
US12052607B2 (en) Communication apparatus, communication method, and program
CN114884884A (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