CN116155824A - 网络拥塞数据处理方法、装置、系统和计算机设备 - Google Patents
网络拥塞数据处理方法、装置、系统和计算机设备 Download PDFInfo
- Publication number
- CN116155824A CN116155824A CN202111408075.XA CN202111408075A CN116155824A CN 116155824 A CN116155824 A CN 116155824A CN 202111408075 A CN202111408075 A CN 202111408075A CN 116155824 A CN116155824 A CN 116155824A
- Authority
- CN
- China
- Prior art keywords
- data
- load information
- target
- current
- data packet
- 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
- 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
- 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/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种网络拥塞数据处理方法、装置、计算机设备和存储介质。所述方法包括:获取数据发送设备发送的携带初始负载信息的初始数据包;基于初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到当前负载信息;基于当前负载信息更新初始数据包得到中间数据包,将中间数据包发送至数据接收设备,中间数据包携带基于当前负载信息和初始负载信息确定的目标负载信息;将从所述数据接收设备返回的、携带目标负载信息的应答数据包,发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。采用本方法能够提高网络拥塞判断准确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种网络拥塞数据处理方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,在网络上传输的数据越来越多,网络环境变得更加复杂多变。若网络中需要传输的数据太多,由于网络带宽资源有限,会导致网络传输性能下降,出现网络拥塞。
传统技术中,通常是基于数据包在网络中的传输时延来判断网络是否发生拥塞,若传输时延过长、发生丢包,则确定出现拥塞,从而调整拥塞窗口。然而,只是基于传输时延来判断网络拥塞,信息量太少,网络拥塞判断不准确,也会导致拥塞窗口调整不准确。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高网络拥塞判断准确性的网络拥塞数据处理方法、装置、计算机设备和存储介质。
一种网络拥塞数据处理方法,其特征在于,应用于数据中转设备,所述方法包括:
获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息;
基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
一种网络拥塞数据处理装置,所述装置包括:
初始数据包获取模块,用于获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
当前网络负载量确定模块,用于基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是数据中转设备上用于发送数据包的端口;
当前负载信息确定模块,用于基于所述目标中转端口在所述当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息;
数据包更新模块,用于基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
应答数据包发送模块,用于将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是数据中转设备上用于发送数据包的端口;
基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息;
基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是数据中转设备上用于发送数据包的端口;
基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息;
基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
一种网络拥塞数据处理方法,应用于数据发送设备,所述方法包括:
获取初始数据包;所述初始数据包携带初始负载信息;
将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
一种网络拥塞数据处理装置,所述装置包括:
第一数据包获取模块,用于获取初始数据包;所述初始数据包携带初始负载信息;
数据包发送模块,用于将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
第二数据包获取模块,用于获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
拥塞窗口调整模块,用于基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取初始数据包;所述初始数据包携带初始负载信息;
将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取初始数据包;所述初始数据包携带初始负载信息;
将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
一种网络拥塞数据处理系统,所述系统包括:
数据发送设备,用于获取初始数据包,将所述初始数据包发送至数据中转设备;所述初始数据包携带初始负载信息;
数据中转设备,用于基于当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
所述数据发送设备还用于获取所述数据接收设备返回的、携带所述目标负载信息的应答数据包,基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
上述网络拥塞数据处理方法、装置、系统、计算机设备和存储介质,数据中转设备通过获取数据发送设备发送的初始数据包,初始数据包携带初始负载信息,基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息,基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备,中间数据包携带基于初始负载信息和当前负载信息确定的目标负载信息,数据中转设备获取数据接收设备返回的、携带目标负载信息的应答数据包,将应答数据包发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。这样,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
附图说明
图1为一个实施例中网络拥塞数据处理方法的应用环境图;
图2为一个实施例中网络拥塞数据处理方法的流程示意图;
图3为一个实施例中数据包的结构示意图;
图4为另一个实施例中网络拥塞数据处理方法的流程示意图;
图5为一个实施例中网络拥塞数据处理系统的流程示意图;
图6为一个实施例中网络拥塞数据处理方法的时序示意图;
图7为一个实施例中数据中心网络的结构示意图;
图8A为一个实施例中传统拥塞控制算法的仿真结果示意图;
图8B为另一个实施例中传统拥塞控制算法的仿真结果示意图;
图8C为一个实施例中本申请拥塞控制算法的仿真结果示意图;
图9为一个实施例中网络拥塞数据处理装置的结构框图;
图10为一个实施例中网络拥塞数据处理装置的结构框图;
图11为一个实施例中计算机设备的内部结构图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云计算(cloud computing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(Grid Computing)、分布式计算(Distributed Computing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network StorageTechnologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。
随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
本申请提供的网络拥塞数据处理方法,可以应用于如图1所示的应用环境中。其中,数据发送设备102通过网络与数据中转设备104进行通信,数据中转设备104通过网络与数据接收设备106进行通信。数据发送设备102可以获取初始数据包,将初始数据包发送至数据中转设备104,该初始数据包携带初始负载信息。数据中转设备104基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量得到当前网络负载量,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量得到当前负载信息。数据中转设备104基于当前负载信息更新初始数据包得到中间数据包,该中间数据包携带基于初始负载信息和当前负载信息确定的目标负载信息。数据中转设备104将中间数据包发送至数据接收设备106。数据接收设备106生成携带目标负载信息的应答数据包,将应答数据包通过数据中转终端104发送至数据发送设备102。数据发送设备102从应答数据包中获取目标负载信息,基于目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口得到目标拥塞窗口。
其中,数据发送设备102、数据中转设备104和数据接收设备106可以是终端,也可以是服务器。终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、车载终端和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群或者云服务器来实现。可以理解,数据发送设备可以有至少一个,数据中转设备可以有至少一个,数据接收设备可以有至少一个。数据发送设备可以发送数据包至不同数据接收设备,数据接收设备也可以接收不同数据发送设备发送的数据包,同一数据包可以途经至少一个数据中转设备最终到达数据接收设备。
在一个实施例中,数据中转设备可以是交换机、路由器等网络转发设备。
在一个实施例中,如图2所示,提供了一种网络拥塞数据处理方法,以该方法应用于图1中的数据中转设备为例进行说明,包括以下步骤:
步骤S202,获取数据发送设备发送的初始数据包;初始数据包携带初始负载信息。
其中,初始数据包是数据发送设备生成并发送的数据包,用于传输数据至数据接收设备。数据发送设备发送的数据包可以用于从数据接收设备请求获取信息,也可以用于将信息主动发送至数据接收设备。负载信息用于描述数据传输链路、网络的负载情况,负载信息具体可以用负载率、负载量来表示。初始数据包携带初始负载信息,初始负载信息是初始化的负载信息。初始负载信息用于表征完全空闲或非常空闲的网络负载情况,例如,初始负载信息可以为0,0表示网络处于完全空闲状态。初始负载信息可以放置在数据包的包头部分,也可以放置在数据包的包体部分。
具体地,数据发送设备在确定待发送数据和接收方后,可以生成初始数据包,进而将初始数据包发送至网络中,通过网络中的数据中转设备将初始数据包最终传输至数据接收设备,数据接收设备接收到初始数据包后会向数据发送设备返回应答数据包,以表示成功接收到初始数据包。数据发送设备为初始数据包的起始发送方,数据接收设备为初始数据包的目的接收方,数据中转设备为初始数据包传输过程中途经的转发设备。在数据传输过程中,网络中的数据中转设备可以接收到数据发送设备发送的初始数据包,该初始数据包携带初始负载信息。
步骤S204,基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;目标中转端口是数据中转设备上用于发送数据包的端口。
其中,当前时间段是指当前使用的数据统计、监测时间段。当前时间段可以是包括当前时刻的时间段,也可以是距离当前时刻最近的历史时间段,例如,周期性地统计端口的相关数据,每隔一定时间统计一次相关数据,那么当前时间段可以是最近一次进行数据统计的时间段,利用最近一次统计得到的数据计算当前负载信息。可以理解,数据统计可以采取定期统计方式,也可以采取不定期统计方式。当前时间段的时间长度可以根据需要进行设置。
数据中转设备上设置有不同的中转端口,不同的中转端口可以对应不同的数据传输链路,不同的数据传输链路也可以对应同一中转端口。不同的数据传输链路可以用于传输数据至不同的数据接收方,不同的数据传输链路也可以是基于不同的传输协议将数据传输至数据接收方。在同一数据传输链路上传输的数据包可以包括相同的五元组信息,五元组信息具体包括源IP地址,源端口,目的IP地址,目的端口和传输层协议。源IP地址表示数据发送设备的IP地址,源端口表示数据发送设备用于发送数据包的发送端口,目的IP地址表示数据接收设备的IP地址,目的端口表示数据接收设备的用于接收数据包的接收端口。目标中转端口是指数据中转设备上用于发送初始数据包的端口,目标中转端口是初始数据包在数据传输链路上进行数据中转的端口。
数据发送量是指从数据中转设备的目标中转端口发送出去的数据包统计值。数据包统计值是对从数据中转设备的目标中转端口发送出去的数据包进行统计得到的,例如,可以统计目标中转端口发送的字节数、比特数、数据包数量等。
数据排队变化量是指在目标中转端口中数据包的排队变化量。数据排队变化量是对目标中转端口中数据包的排队变化情况进行统计分析得到的,例如,可以统计排队队伍的数据高度变化量、数据包数量变化量等。可以理解,数据中转设备负责网络中大量数据包的转发,由于数据中转设备的能力有限和为了保障数据转发的有序性,数据包在数据中转设备中需要按秩序排队,有秩序地发送出去。数据中转设备上设置有不同的中转端口,在不同的数据传输链路上传输的数据包需要在对应的中转端口中进行排队发送。因为中转端口在持续地接收数据包和发送数据包,所以目标中转端口中的排队数据量会发生变化,数据包的排队变化情况可以反映出网络状态的变化情况,数据中转设备在持续进行数据包发送的基础上,若数据排队变化量有所减少,表明网络状态有所改善,朝着空闲状态、欠载状态在改变,若数据排队量有所增加,表明网络状态有所恶化,朝着忙碌状态、过载状态在改变。
当前网络负载量是指在当前时间段的网络中,目标中转端口实际承担、负载的数据量。
具体地,数据中转设备获取到初始数据包后,可以根据初始数据包的具体信息确定初始数据包对应的目标中转端口,进而获取目标中转端口在当前时间段经过统计得到的数据发送量和数据排队变化量,基于数据发送量和数据排队变化量计算当前网络负载量,例如,可以是计算数据发送量和数据排队变化量的总和作为当前网络负载量,也可以是计算数据发送量和数据排队变化量的加权和作为当前网络负载量。数据中转设备可以根据自定义的公式或算法基于数据发送量和数据排队变化量计算得到当前网络负载量。
步骤S206,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息。
其中,参考网络负载量是指在当前时间段的网络中,目标中转端口可承担、负载的数据量。参考网络负载量可以根据目标中转端口的端口属性信息确定,端口属性信息用于描述端口的基本属性、基本能力。端口属性信息可以根据实际需要预先人为进行设置。
当前负载信息是指当前时间段对应的负载信息,用于表征当前时间段至未来的网络负载情况。当前负载信息越大,表示网络越拥塞。
具体地,数据中转设备还需要获取目标中转端口在当前时间段的参考网络负载量,基于当前网络负载量和参考网络负载量计算当前负载信息,例如,可以是计算当前网络负载量和参考网络负载量的比值作为当前负载信息,也可以是计算当前网络负载量和参考网络负载量的差值,基于该差值和参考网络负载量的比值得到当前负载信息。数据中转设备可以根据自定义的公式或算法基于当前网络负载量和参考网络负载量计算得到当前网络负载量。
可以理解,数据中转设备可以在接收到初始数据包之前,预先计算得到当前负载信息,例如,数据中转设备周期性地计算负载信息,在接收到初始数据包后,将最新已计算得到的负载信息作为当前负载信息。数据中转设备也可以在接收到初始数据包之后,立即计算得到当前负载信息,例如,数据中转设备在接收到初始数据包之后,将以接收时刻为时间终点的时间段作为当前时间段,基于在当前时间段统计得到的相关数据计算负载信息作为当前负载信息。
步骤S208,基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备;中间数据包携带基于当前负载信息和初始负载信息确定的目标负载信息。
具体地,在得到当前负载信息和初始负载信息后,数据中转设备可以基于当前负载信息和初始负载信息确定目标负载信息,用目标负载信息替换初始数据包中的初始负载信息,从而得到中间数据包。例如,数据中转设备可以直接用当前负载信息替换初始数据包中的初始负载信息得到中间数据包,直接将当前负载信息作为目标负载信息,数据中转设备也可以将当前负载信息和初始负载信息进行比较,根据比较结果从当前负载信息和初始负载信息中确定目标负载信息。数据中转设备将携带目标负载信息的中间数据包发送至数据接收设备,数据接收设备在接收到的中间数据包后,生成应答数据包,向数据发送设备返回应答数据包,该应答数据包也携带该目标负载信息。
步骤S210,将从数据接收设备返回的、携带目标负载信息的应答数据包,发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。
其中,拥塞窗口是在数据发送端上的可滑动窗口,用于控制数据包的发送速度。例如,拥塞窗口可以控制数据发送端的并发字节数,基于并发字节数来控制数据包发送速度。
具体地,数据中转设备可以获取数据接收设备返回的应答数据包,并将应答数据包转发至数据发送设备。数据发送设备可以从获取到的应答包中提取目标负载信息,根据目标负载信息调整拥塞窗口,根据网络的拥塞程度动态调整拥塞窗口,避免网络出现更严重的拥塞状况。数据发送设备可以基于目标负载信息确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口得到目标拥塞窗口,通过目标拥塞窗口控制后续发送数据包的速度。其中,关于调整拥塞窗口的具体过程,可以参照应用于数据发送设备的网络拥塞数据处理方法的相关实施例。
上述网络拥塞数据处理方法中,数据中转设备通过获取数据发送设备发送的初始数据包,初始数据包携带初始负载信息,基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息,基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备,中间数据包携带基于初始负载信息和当前负载信息确定的目标负载信息,数据中转设备获取数据接收设备返回的、携带目标负载信息的应答数据包,将应答数据包发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。这样,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
在一个实施例中,基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,包括:
获取目标中转端口在当前时间段的初始排队高度和目标排队高度;基于初始排队高度和目标排队高度之间的差异,得到数据排队变化量,融合数据排队变化量和数据发送量得到中间网络负载量;基于中间网络负载量和目标排队高度得到当前网络负载量。
其中,初始排队高度是指在当前时间段的起始时刻,目标中转端口中的排队高度。目标排队高度是指在当前时间段的终点时刻,目标中转端口中的排队高度。排队高度可以反映排队的数据量。
具体地,数据中转设备可以获取目标中转端口在当前时间段的初始排队高度和目标排队高度,将初始排队高度和目标排队高度的差值作为数据排队变化量,通过队列高度的一阶差分可以反映该端口网络状态的变化趋势。数据中转设备将计算得到的数据排队变化量和数据发送量进行融合,例如,将数据排队变化量和数据发送量的总和作为中间网络负载量,将数据排队变化量和数据发送量的加权和作为中间网络负载量。数据中转设备可以直接将中间网络负载量作为当前网络负载量。但是,考虑到目标中转端口中的现有数据堆积量也会对当前和未来的网络状态产生影响,数据中转设备可以进一步基于中间网络负载量和目标排队高度得到当前网络负载量,例如,将中间网络负载量和目标排队高度的总和作为当前网络负载量,将中间网络负载量和目标排队高度的加权和作为当前网络负载量。可以理解,将目标排队高度作为当前网络负载量的组成部分,目标排队高度可以作为惩罚项,来避免在目标中转端口具有较高的排队高度时计算得到的当前负载信息较小,惩罚项有助于逐步减少目标中转端口中的数据排队量。
上述实施例中,通过获取目标中转端口在当前时间段的初始排队高度和目标排队高度,基于初始排队高度和目标排队高度之间的差异,得到数据排队变化量,融合数据排队变化量和数据发送量得到中间网络负载量,基于中间网络负载量和目标排队高度得到当前网络负载量。这样,基于数据排队变化量、数据发送量和目标排队高度计算得到的当前网络负载量可以更精准地调整拥塞窗口,减少网络中的数据堆积。
在一个实施例中,基于中间网络负载量和目标排队高度得到当前网络负载量,包括:
获取中间网络负载量和目标排队高度分别对应的注意力权重;中间网络负载量对应的注意力权重大于目标排队高度对应的注意力权重;基于注意力权重,融合中间网络负载量和目标排队高度得到当前网络负载量。
其中,注意力权重用于表示某一数据对网络状态的重要性,重要性表示数据对网络状态影响的大小。重要性高的数据其对应的注意力权重的值较高,重要性低的数据其对应的注意力权重的值较低。注意力权重的具体数值可以根据需要进行设置,但是中间网络负载量对应的注意力权重大于目标排队高度对应的注意力权重。
具体地,在计算当前网络负载量时,中间网络负载量和目标排队高度对于目标中转端口的网络状态的影响程度是不同的,由于中间网络负载量是基于目标中转端口在当前时间段的数据发送量和数据排队变化量得到的,可以表征目标中转端口在当前时间段的数据接收量,可以直接反映目标中转端口在当前时间段的真实负载数据量,而目标排队高度是在当前时间段的最后时刻监测到的数据,对网络状态的后续走向也存在一定程度的间接影响力,相比较而言,中间网络负载量对网络状态的影响、决定程度更大。因此,中间网络负载量对应的注意力权重大于目标排队高度对应的注意力权重。数据中转设备可以获取中间网络负载量和目标排队高度分别对应的注意力权重,基于注意力权重进行数据加权融合,从而得到当前网络负载量。
在一个实施例中,目标排队高度对应的注意力权重是基于参考网络负载量和预设排队高度确定的。其中,预设排队高度和最大排队高度的高度差小于预设阈值,也就是,预设排队高度表征排队数据量较大时的排队高度。例如,可以将参考网络负载量和预设排队高度的比值作为目标排队高度对应的注意力权重,也就是,预设排队高度和目标排队高度对应的注意力权重的乘积等于参考网络负载量。也就是,当目标排队高度较高时,目标排队高度对当前负载信息的惩罚力度为端口最大可承受的负载量,那么计算得到当前负载信息可以表征网络为过载状态。当目标排队高度较高时,目标中转端口可接收的数据量较少,比较容易陷入过载状态,数据发送端获知当前负载信息后就可以迅速缩小拥塞窗口,以缓解目标中转端口中数据排队情况。
上述实施例中,基于中间网络负载量和目标排队高度分别对应的注意力权重,融合中间网络负载量和目标排队高度得到当前网络负载量,中间网络负载量对应的注意力权重大于目标排队高度对应的注意力权重,可以提高当前网络负载量的准确性,进而提高拥塞窗口调整的准确性。
在一个实施例中,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息,包括:
基于目标中转端口对应的带宽信息和当前时间段,得到参考网络负载量;基于当前网络负载量和参考网络负载量的比值得到当前负载信息。
其中,带宽信息是指在单位时间内目标中转端口可传输的数据量。
具体地,在计算参考网络负载量时,数据中转设备可以获取目标中转端口对应的带宽信息,将目标中转端口对应的带宽信息和当前时间段的乘积作为参考网络负载量。在计算当前负载信息时,数据中转设备可以计算当前网络负载量和参考网络负载量的比值作为当前负载信息。
上述实施例中,基于目标中转端口对应的带宽信息和当前时间段可以得到准确的参考网络负载量,基于当前网络负载量和参考网络负载量的比值得到当前负载信息,该当前负载信息可以更直观地反映目标中转端口的网络状态。
在一个实施例中,基于当前网络负载量和参考网络负载量的比值得到当前负载信息,包括:
基于带宽利用比例调整参考网络负载量,得到更新网络负载量;基于当前网络负载量和更新网络负载量的比值得到当前负载信息。
其中,带宽利用比例用于表征数据中转设备对目标中转端口的带宽利用率。带宽利用比例可以根据需要进行设置。
具体地,数据中转设备上的各个数据中转端口可以全量运转,利用全部的带宽资源进行数据转发,也可以闲置一部分带宽资源,通过减少数据发送量来减少网络中的数据量,从而提高数据传输速度。因此,数据中转设备可以基于带宽利用比例调整参考网络负载量得到更新网络负载量,将当前网络负载量和更新网络负载量的比值作为当前负载信息。数据中转设备上不同的中转端口对应的带宽利用比例可以相同,可以不同。
在一个实施例中,可以根据数据发送任务的任务类型、任务性质来确定带宽利用比例。例如,针对要求低时延的数据流、数据传输链路,带宽利用比例可以小于预设比例,例如,针对实时交互的通话任务,带宽利用比例可以设置为0.95。针对要求高带宽的数据流、数据传输链路,带宽利用比例可以大于预设比例,例如,针对传输大容量视频的任务,带宽利用比例可以设置为1。
上述实施例中,基于带宽利用比例调整参考网络负载量得到更新网络负载量,基于当前网络负载量和更新网络负载量的比值得到当前负载信息,基于这样的当前负载信息控制拥塞窗口能够促使网络状态逐步调整到预期状态,使端口中的带宽利用率逐步到达预设的带宽利用比例,最终实现高网络带宽利用率。
在一个实施例中,当前负载信息的计算公式如下:
I=TxBytes+Qlen-LastQlen
其中,L表示当前负载信息,也可以称为负载率。I表示中间网络负载量。T表示当前时间段,也可以称为测量周期。B表示带宽信息,也可以称为端口带宽。Qlen表示在当前时间段的目标排队高度,也可以认为是此次测量时的排队高度。LastQlen表示在当前时间段的初始排队高度,也可以认为是上次测量时的排队高度。Qlen和LastQlen可以以字节为单位。γ表示目标排队高度对应的注意力权重,γ小于1。α表示带宽利用比例。TxBytes表示在当前时间段的数据发送量,可以认为是从上次测量到此次测量期间端口发送的字节数。可以理解,在满带宽、无排队时,L=1。
数据中转设备可以周期性地为每个中转端口计算负载率,该负载率是结合数据发送量TxBytes、目标排队高度Qlen和排队高度的一阶差分值(Qlen-LastQlen)的网络状态指标,这样的网络状态指标不但可以精确反映数据中转设备端口的当前状态,而且通过排队高度的一阶差分可以反映其状态变化趋势,基于这样的负载率进行拥塞窗口调节,可以有效地把网络流量的变化趋势考虑在调整幅度里,从而不会导致调整不足或调整过度,最终可以实现网络中无或低数据包堆积、高网络带宽利用率。
在一个实施例中,测量周期可以设置为网络空载时的数据往返时延,即网络空载RTT(Round-Trip Time,往返时延)。将测量周期设置为网络空载RTT可以使数据中转设备及时更新负载率,保障负载率的时效性。在一个实施例中,γ可以设置为0.2-0.4,α可以设置为0.95-1。
在一个实施例中,初始数据包携带目标数据流标识,数据中转设备包括至少一个候选数据流标识对应的候选中转端口,各个候选中转端口包括至少一个候选数据流标识对应的数据队列。
基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息,包括:
将目标数据流标识对应的候选中转端口作为目标中转端口;在目标中转端口中,将目标数据流标识对应的数据队列作为目标队列;基于目标队列在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;基于目标队列在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息。
其中,数据流标识用于标识数据包的数据传输链路,例如,可以将数据包的五元组信息作为数据流标识。目标数据流标识是指初始数据包对应的数据量标识。数据中转设备包括至少一个候选数据流标识对应的候选中转端口,也就是,同一数据中转设备可以同时作为不同数据传输链路上的中转设备,不同的数据传输链路可以途经同一数据中转设备。数据中转设备上的各个候选中转端口包括至少一个候选数据流标识对应的数据队列,也就是,同一中转端口可以同时作为不同数据传输链路进行数据中转的端口,在不同的数据传输链路上传输的数据包可以存储在同一端口的不同数据队列上,通过数据队列来隔离不同的流量。
具体地,数据中转设备获取到初始数据包后,根据初始数据包携带的目标数据流标识可以确定初始数据包对应的目标中转端口,数据中转设备可以基于端口级别的数据计算端口级别的当前负载信息,基于端口级别的当前负载信息和初始负载信息确定端口级别的目标负载信息,后续,数据发送设备可以基于端口级别的目标负载信息进行拥塞窗口的调整。端口级别的数据是根据端口上所有队列的相关数据统计得到的综合数据,例如,排队高度为整个端口排队的数据量,是综合同一端口上所有队列的排队数据量得到的,带宽信息为端口带宽。
当然,在确定初始数据包对应的目标中转端口后,数据中转设备也可以基于队列级别的数据计算队列级别的当前负载信息,基于队列级别的当前负载信息和初始负载信息确定队列级别的目标负载信息,后续,数据发送设备可以基于队列级别的目标负载信息进行拥塞窗口的调整。队列级别的数据是根据单个队列的相关数据统计得到的,例如,排队高度为数据包所在队列的排队数据量,带宽信息为数据包所在队列分配到的队列带宽。
在计算队列级的当前负载信息时,数据中转设备可以将目标数据流标识对应的候选中转端口作为初始数据包对应的目标中转端口,在目标中转端口中,将目标数据流标识对应的数据队列作为初始数据包对应的目标队列,进而获取目标队列在当前时间段的数据发送量和数据排队变化量,基于获取到的数据发送量和数据排队变化量计算得到当前网络负载量,获取目标队列在当前时间段的参考网络负载量,基于目标队列在当前时间段的当前网络负载量和参考网络负载量计算得到当前负载信息。在有多协议流量混跑/并存的场景中,网络运营者可以使用队列来隔离每一种协议流量,为每个协议占用的队列分配预设带宽,因此,负载信息计算过程中涉及的所有指标可以是队列级的,整个端口需要维护每个队列分别对应的负载信息。后续,数据发送端基于负载信息调整拥塞窗口可以把每个队列的吞吐量控制在预设的带宽上,同时队列堆积接近0。
可以理解,当前负载信息的具体计算过程可以参照前述各个相关实施例所述的方法。
上述实施例中,通过数据队列来隔离不同的流量,基于队列级的相关数据计算当前负载信息,这样的当前负载信息可以准确表征单一流量、数据流对应的网络状态,进而数据发送设备可以针对性地调整对应的拥塞窗口,实现精准调整。
在一个实施例中,基于当前负载信息更新初始数据包,得到中间数据包,包括;
当当前负载信息大于初始负载信息时,基于当前负载信息替换初始数据包中的初始负载信息,得到中间数据包,目标负载信息为当前负载信息;当当前负载信息小于或等于初始负载信息时,将初始数据包作为中间数据包,目标负载信息为初始负载信息。
具体地,可以根据当前负载信息和初始负载信息的比较结果确定目标负载信息。当当前负载信息大于初始负载信息时,将当前负载信息作为目标负载信息,当当前负载信息小于或等于初始负载信息时,将初始负载信息作为目标负载信息。由于初始负载信息可以表征完全空闲或非常空闲的网络负载情况,负载信息越大表明网络越忙碌、拥塞,那么在当前负载信息大于初始负载信息时,表明网络状态比初始状态差,进而将初始数据包中的初始负载信息替换为当前负载信息,将当前负载信息最终反馈到数据发送端,以便数据发送端基于当前负载信息进行准确及时的拥塞窗口调整。
可以理解,数据包从数据发送端传输至数据接收端的过程中可以经过至少一个数据中转设备,例如,数据在网络中的传输路径为:数据发送设备-数据中转设备1-数据中转设备2-数据中转设备3-数据接收设备。若数据传输过程中经过多个数据中转设备,那么各个数据中转设备都可以基于各自中转端口的相关数据计算负载信息,数据包在途经各个数据中转设备的过程中可以通过数据比较的方式始终获取数值更大的负载信息作为目标负载信息进行传递,例如,若数据中转设备1计算得到的负载信息大于初始负载信息,那么数据中转设备1可以将数据包中的初始负载信息替换为计算得到的负载信息,将计算得到的负载信息作为新的初始负载信息传递下去,若数据中转设备2计算得到的负载信息大于数据中转设备1计算得到的负载信息,那么数据中转设备2可以将数据包中的由数据中转设备1计算得到的负载信息替换为由数据中转设备2计算得到的负载信息,将数据中转设备2计算得到的负载信息作为新的初始负载信息继续传递下去,以此类推。最终,数据包就可以沿途收集到最拥堵端口的负载信息,将最拥堵端口的负载信息作为数据接收端接收到的目标负载信息。数据发送端接收到的目标负载信息就是数据包在整个传输路径中探知到的路径瓶颈点,数据发送端基于最拥堵端口的负载信息进行窗口调节可以快速消除网络中数据包的堆积。
在一个实施例中,初始负载信息可以设置为0。由于当前网络负载量和参考网络负载量理论上为非负数,那么基于当前网络负载量和参考网络负载量计算得到的当前负载信息理论上也为非负数。不是直接将当前负载信息作为目标负载信息,而是基于实际计算得到的当前负载信息和初始负载信息的比较结果确定目标负载信息,可以为目标负载信息添加数据为非负数的保护,避免将明显计算错误的数据最终反馈至数据发送设备,以使数据发送设备进行错误的窗口调整。
上述实施例中,当当前负载信息大于初始负载信息时,将当前负载信息作为目标负载信息,当当前负载信息小于或等于初始负载信息时,将初始负载信息作为目标负载信息,可以保障在整个传输过程中始终是将反映更拥堵网络状态的负载信息传递下去。
在一个实施例中,初始数据包、中间数据包和应答数据包均包括发送信息承载字段和应答信息承载字段,初始负载信息位于初始数据包的发送信息承载字段,目标负载信息位于中间数据包的发送信息承载字段,目标负载信息位于应答数据包的应答信息承载字段。
其中,发送信息承载字段用于记录正向负载信息,也就是,用于记录数据包从数据发送端正向到达数据接收端沿途收集到的负载信息。应答信息承载字段用于记录反向负载信息,也就是,用于记录应答数据包从数据接收端反向到达数据发送端想要反馈的负载信息。对于初始数据包来说,应答信息承载字段是没有用的,对于应答数据包来说,发送信息承载字段是没有用的。
具体地,初始数据包、中间数据包和应答数据包均包括发送信息承载字段和应答信息承载字段。初始数据包和中间数据包位于正向传输路径上,初始负载信息和目标负载信息可以放在初始数据包和中间数据包的发送信息承载字段上。应答数据包位于反向传输路径上,目标负载信息可以放在应答数据包的应答信息承载字段上。
参考图3,在发送初始数据包之前,可以在标准包头后面嵌入一个记录负载率的包头,长度为16位比特。记录负载率的包头如图3中LH(Load Header,负载率头)所示,初始化为0x0000。此位置用来收集数据包经历的路径中最拥堵的端口的负载率。其中LH高8位FL(Forward Load,正向负载率)用来收集数据包正向链路的负载率,低8位BL(BackwardLoad,反向负载率)用来供应答包携带其收到的FL发回到发送端。ETH(用于记录以太网协议的相关信息)、IP(用于记录IP协议的相关信息)、UDP(用于记录UDP协议的相关信息)、Payload(有效载荷,用于记录关键信息)为数据包的常规结构、常规组成部分。
由于数据包承载的数据为二进制数据,计算得到的负载率为浮点数,为了将负载率放置到数据包中,需要将浮点数转换为对应的二进制数据。例如,若FL长度为8位比特,可以将计算得到的负载率放大64倍后取整数部分作为当前负载信息,当然也可以放大其他倍数,如128倍或者100倍。具体可以根据FL的位长来确定放大倍数。可以理解,数据发送端接收到负载信息后,需要缩小相同的倍数得到真实的负载率。
上述实施例中,在数据包正向传递时,将负载信息放置在发送信息承载字段,在应答包反向回馈时,将负载信息放置在应答信息承载字段,可以避免数据混淆。
在一个实施例中,如图4所示,提供了一种网络拥塞数据处理方法,以该方法应用于图1中的数据发送设备为例进行说明,包括以下步骤:
步骤S402,获取初始数据包;初始数据包携带初始负载信息。
步骤S404,将初始数据包发送至数据中转设备,以使数据中转设备将初始数据包发送至数据接收设备。
具体地,数据发送设备可以生成初始数据包,将初始数据包发送至数据中转设备,数据中转设备会将初始数据包转发至数据接收设备。
步骤S406,获取数据接收设备返回的应答数据包;应答数据包携带目标负载信息,目标负载信息是数据中转设备基于当前负载信息和初始负载信息确定的,当前负载信息是基于初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,目标中转端口是数据中转设备上用于发送数据包的端口。
具体地,数据中转设备在转发初始数据包时,可以基于初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量计算当前负载信息,基于当前负载信息更新初始数据包中的初始负载信息。数据中转设备将更新后的初始数据包发送至数据接收设备,更新后的初始数据包携带通过数据更新得到的目标负载信息。数据接收设备在接收到初始数据包后,可以生成应答数据包,将应答数据包反馈至数据发送设备,该应答数据包携带目标负载信息。
其中,目标负载信息、当前负载信息的具体生成过程可以参照前述各个相关实施例所述的方法。
步骤S408,基于目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
其中,参考负载信息用于确定窗口调整参数,窗口调整参数可以为窗口放大参数,也可以为窗口缩小参数。参考负载信息可以根据需要进行设置,参考负载信息可以设置为期望网络状态所对应的负载信息,例如,可以将参考负载信息设置为1。
具体地,数据发送设备获取到数据接收设备反馈的目标负载信息后,可以将目标负载信息和参考负载信息进行比较,根据比较结果确定窗口调整参数,进而基于窗口调整参数对当前拥塞窗口进行调整,得到目标拥塞窗口。数据发送设备在发送后续数据包的时候,可以根据目标拥塞窗口来控制数据包的发送速度,从而缓解网络拥堵或提高网络资源利用率。
在一个实施例中,数据发送端也可以设置窗口调整周期,基于窗口调整周期定时调整拥塞窗口,避免频繁更新拥塞窗口,影响网络稳定。例如,可以将网络空载RTT作为窗口调整周期、窗口更新周期,数据发送端监测拥塞窗口的更新时间,一旦间隔时间达到网络空载RTT后,就用当前已接收到的最新目标负载信息调整当前拥塞窗口,若间隔时间未达到网络空载RTT,则保持当前拥塞窗口不变。
上述网络拥塞数据处理方法中,数据中转设备通过获取数据发送设备发送的初始数据包,初始数据包携带初始负载信息,基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息,基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备,中间数据包携带基于初始负载信息和当前负载信息确定的目标负载信息,数据中转设备获取数据接收设备返回的、携带目标负载信息的应答数据包,将应答数据包发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。这样,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
在一个实施例中,基于目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口,包括:
当目标负载信息大于参考负载信息时,确定窗口调整参数为窗口缩小参数,基于窗口缩小参数缩小当前拥塞窗口,得到目标拥塞窗口;当目标负载信息小于或等于参考负载信息时,确定窗口调整参数为窗口放大参数,基于窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口。
具体地,当目标负载信息大于参考负载信息时,表明当前网络状态比预期网络状态差,那么数据发送设备可以确定窗口调整参数为窗口缩小参数,基于窗口缩小参数缩小当前拥塞窗口得到目标拥塞窗口,通过目标拥塞窗口减缓数据包发送速度,以缓解网络中的拥塞状况。当目标负载信息小于或等于参考负载信息时,表明当前网络状态与预期网络状态差不多,或比预期网络状态优,那么数据发送设备可以确定窗口调整参数为窗口放大参数,基于窗口放大参数放大当前拥塞窗口得到目标拥塞窗口,通过目标拥塞窗口加快数据包发送速度,以充分利用网络带宽,提高带宽利用率。其中,窗口缩小参数和窗口放大参数可以是基于目标负载信息动态变化的数据,也可以为预先设置的固定数据。基于窗口缩小参数缩小当前拥塞窗口可以是将当前拥塞窗口和窗口缩小参数相除,也可以是将当前拥塞窗口减去窗口缩小参数。基于窗口放大参数放大当前拥塞窗口可以是将窗口放大参数和当前拥塞窗口相乘,也可以是将当前拥塞窗口加上窗口放大参数。
上述实施例中,当目标负载信息大于参考负载信息时,快速确定窗口调整参数为窗口缩小参数,当目标负载信息小于或等于参考负载信息时,快速确定窗口调整参数为窗口放大参数,从而基于窗口调整参数可以快速调整当前拥塞窗口。
在一个实施例中,当目标负载信息大于参考负载信息时,确定窗口调整参数为窗口缩小参数,基于窗口缩小参数缩小当前拥塞窗口,得到目标拥塞窗口,包括:
当目标负载信息大于参考负载信息时,基于目标负载信息生成窗口缩小参数;窗口缩小参数随着目标负载信息的增大而增大;基于当前拥塞窗口和窗口缩小参数的比值得到目标拥塞窗口。
具体地,在缩小当前拥塞窗口时,数据发送设备可以基于目标负载信息动态确定窗口缩小参数,基于当前拥塞窗口和窗口缩小参数的比值得到目标拥塞窗口,从而自适应地根据当前网络状态进行拥塞窗口的缩小,进一步提高拥塞窗口的调整准确性。其中,窗口缩小参数随着目标负载信息的增大而增大,也就是,目标负载信息越大,当前网络状态越差,窗口缩小参数越大,对当前拥塞窗口的缩小力度越大。可以将当前拥塞窗口和窗口缩小参数的比值直接作为目标拥塞窗口,也可以将比值和预设值的总和作为目标拥塞窗口。
在一个实施例中,当目标负载信息大于参考负载信息时,可以根据以下公式缩小当前拥塞窗口:
其中,L表示负载率,将L作为窗口缩小参数,WC表示当前拥塞窗口。W表示目标拥塞窗口,也就是,接下来控制数据包发送速度的拥塞窗口。若数据发送端是定期调整拥塞窗口,WC则表示上一周期的拥塞窗口。
上述实施例中,当目标负载信息大于参考负载信息时,基于目标负载信息生成窗口缩小参数,窗口缩小参数随着目标负载信息的增大而增大,网络状态越差,对窗口的调整力度越大,可以快速减少网络中的数据堆积。
在一个实施例中,当目标负载信息小于或等于参考负载信息时,确定窗口调整参数为窗口放大参数,基于窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口,包括:
当目标负载信息小于或等于参考负载信息时,确定当前网络状态为欠载状态;基于当前网络状态更新历史连续欠载数量,得到当前连续欠载数量;历史连续欠载数量是通过统计当前网络状态对应的相邻网络状态连续为欠载状态的次数得到的;当当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口;当当前连续欠载数量大于预设数量时,基于第二窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口;第一窗口放大参数小于第二窗口放大参数。
其中,欠载状态表示当前网络状态未达到预期网络状态,低于预期网络状态,当前网络中还可以容纳更多的数据。历史连续欠载数量是指在确定当前网络状态之前,网络状态已经连续为欠载状态的次数。当前连续欠载数量是指在确定当前网络状态之后,网络状态已经连续为欠载状态的次数。当前网络状态对应的相邻网络状态是指在确定当前网络状态之前已经确定的历史网络状态。
具体地,当目标负载信息小于或等于参考负载信息时,数据发送设备可以确定当前网络状态为欠载状态,需要增大数据包的发送速率,以提高带宽利用率。进一步的,若网络状态连续多次为欠载状态,那么可以进一步增大数据包的发送速率。数据发送设备每次在基于负载信息确定网络状态时,可以同步统计连续欠载数量。若当前连续欠载数量小于或等于预设数量,表明网络短时间处于欠载状态,网络具备一定的数据容纳能力,那么可以小幅度增大拥塞窗口,若当前连续欠载数量大于预设数量,表明网络长时间处于欠载状态,网络依旧具备强大的数据容纳能力,那么可以大幅度增大拥塞窗口。因此,若当前连续欠载数量小于或等于预设数量,数据发送设备则基于第一窗口放大参数放大当前拥塞窗口得到目标拥塞窗口,若当前连续欠载数量大于预设数量时,数据发送设备则基于第二窗口放大参数放大当前拥塞窗口得到目标拥塞窗口,其中,第一窗口放大参数小于第二窗口放大参数。预设数量可以根据需要进行设置,例如,设置为3。
上述实施例中,当当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大当前拥塞窗口,当当前连续欠载数量大于预设数量时,基于第二窗口放大参数放大当前拥塞窗口,第一窗口放大参数小于第二窗口放大参数。这样,在网络状态连续多次为欠载状态时,加大拥塞窗口的调整力度,可以提高网络带宽利用率。
在一个实施例中,当目标负载信息小于或等于参考负载信息时,确定当前网络状态为欠载状态,包括:
当目标负载信息小于或等于参考负载信息、且当前时间和相邻拥塞窗口调整时间的时间间隔大于预设时间间隔时,确定当前网络状态为欠载状态。
其中,预设时间间隔可以根据需要进行设置,例如,可以将预设时间间隔设置为网络空载RTT。相邻拥塞窗口调整时间是指上一次进行拥塞窗口调整的时间,若数据发送端是周期性调整拥塞窗口,相邻拥塞窗口调整时间是指上一周期进行拥塞窗口调整的时间。
具体地,数据发送端可以是周期性地调整拥塞窗口,当目标负载信息小于或等于参考负载信息、且当前时间到达拥塞窗口更新周期时,数据发送设备才确定当前网络状态为欠载状态,将历史连续欠载数量加1。若数据发送端是周期性地调整拥塞窗口,那么历史连续欠载数量是指历史连续欠载周期数,当前连续欠载数量是指当前连续欠载周期数。可以理解,在窗口调整周期内,可能会接收到多个应答数据包,此时无需基于每个应答数据包携带的目标负载信息频繁更新拥塞窗口,可以先保持拥塞窗口不变,保持历史连续欠载周期数不变,只有在当前时间和相邻拥塞窗口调整时间的时间间隔大于预设时间间隔,即当前时间到达拥塞窗口更新周期时,才基于当前已接收到的最新目标负载信息确定当前网络状态是否为欠载状态,若目标负载信息小于或等于参考负载信息,则确定当前网络状态为欠载状态,需要更新历史连续欠载周期数,基于更新得到的当前连续欠载周期数进行拥塞窗口调整。
在一个实施例中,当目标负载信息小于或等于参考负载信息、且当前时间和相邻拥塞窗口调整时间的时间间隔小于或等于预设时间间隔时,将当前拥塞窗口作为目标拥塞窗口。具体地,若当前时间未到达拥塞窗口更新时间,即使目标负载信息小于或等于参考负载信息,也保持当前拥塞窗口不变,将当前拥塞窗口直接作为目标拥塞窗口。
上述实施例中,当目标负载信息小于或等于参考负载信息、且当前时间和相邻拥塞窗口调整时间的时间间隔大于预设时间间隔时,才确定当前网络状态为欠载状态,通过多重条件来确定欠载状态可以保障欠载状态确定的准确性。
在一个实施例中,当当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口,包括:
基于预设参数和当前拥塞窗口的比值得到第一窗口放大参数;第一窗口放大参数随着当前拥塞窗口的增大而减小;融合第一窗口放大参数和当前拥塞窗口,得到目标拥塞窗口。
其中,预设参数可以根据需要进行设置。不同数据传输链路对应的预设参数可以相同可以不同。若不同数据传输链路对应相同的预设参数,那么基于该预设参数调整当前拥塞窗口,可以保障调整不同拥塞窗口的公平性,拥塞窗口大的数据流增加幅度小,拥塞窗口小的数据流增加幅度大,最终使所有的数据流公平地共享所有带宽。
具体地,当当前连续欠载数量小于或等于预设数量时,数据发送设备可以将预设参数和当前拥塞窗口的比值作为第一窗口放大参数,第一窗口放大参数随着当前拥塞窗口的增大而减小,也就是,当前拥塞窗口越大,第一窗口放大参数越小。数据发送设备可以融合第一窗口放大参数和当前拥塞窗口得到目标拥塞窗口,例如,将第一窗口放大参数和当前拥塞窗口的总和作为目标拥塞窗口。
在一个实施例中,当当前连续欠载数量小于或等于预设数量时,可以根据以下公式放大当前拥塞窗口:
其中,L表示负载率,stage表示当前连续欠载数量,WC表示当前拥塞窗口,也就是上一次窗口调整后得到的拥塞窗口。W表示目标拥塞窗口,也就是,接下来控制数据包发送速度的拥塞窗口,θ表示预设参数,θ/WC表示第一窗口放大参数。
在一个实施例中,第二窗口放大参数是基于目标负载信息确定的,第二窗口放大参数随着目标负载信息的增大而减小。
具体地,当当前连续欠载数量小于或等于预设数量时,数据发送设备可以基于目标负载信息确定第二窗口放大参数,第二窗口放大参数随着目标负载信息的增大而减小。数据发送设备可以将第二窗口放大参数和当前拥塞窗口相乘得到目标拥塞窗口。
在一个实施例中,当当前连续欠载数量大于预设数量时,可以根据以下公式放大当前拥塞窗口:
其中,L表示负载率,1/L表示第二窗口放大参数,stage表示当前连续欠载数量,WC表示当前拥塞窗口,也就是上一次窗口调整后得到的拥塞窗口。W表示目标拥塞窗口,也就是,接下来控制数据包发送速度的拥塞窗口。
可以理解,当当前连续欠载数量小于或等于预设数量时,加性地调整拥塞窗口,当当前连续欠载数量大于预设数量时,乘性地调整拥塞窗口,加性地调整拥塞窗口的调整幅度小于乘性地调整拥塞窗口的调整幅度。
在一个实施例中,初始数据包和应答数据包携带目标数据流标识,基于窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口,包括:
基于窗口调整参数调整目标数据流标识对应的当前拥塞窗口,得到目标数据流标识对应的目标拥塞窗口。
具体地,在数据发送设备中,不同的数据流可以对应不同的拥塞窗口,因此,在调整拥塞窗口时,可以基于相应的负载率调整对应的拥塞窗口,实现精准调整。数据发送设备基于应答数据包携带的目标数据流标识可以确定该目标数据流标识对应的数据传输链路的网络状况,进而基于目标负载信息确定的窗口调整参数调整该目标数据流标识对应的当前拥塞窗口,得到该目标数据流标识对应的目标拥塞窗口。其中,拥塞窗口的调整过程可以参考前述各个相关实施例的内容。
举例说明,用户甲在社交应用程序上发送会话消息和用户甲通过浏览器请求浏览网页就对应不同的数据流,会话消息和浏览请求通过不同的数据传输链路到达各自的数据接收方。
上述实施例中,基于窗口调整参数调整目标数据流标识对应的当前拥塞窗口可以实现精准、针对性地调整。
在一个实施例中,如图5所示,提供了一种网络拥塞数据处理系统,该系统包括数据发送设备502、数据中转设备504和数据接收设备506。
数据发送设备502,用于获取初始数据包,将初始数据包发送至数据中转设备;初始数据包携带初始负载信息。
数据中转设备504,用于基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备;中间数据包携带基于当前负载信息和初始负载信息确定的目标负载信息,当前负载信息是基于初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,目标中转端口是数据中转设备上用于发送数据包的端口。
数据发送设备502还用于获取数据接收设备返回的、携带目标负载信息的应答数据包,基于目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
可以理解,数据发送设备和数据中转设备的具体数据处理过程可以参照前述各个相关实施例所述的方法。
上述网络拥塞数据处理系统,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,从而基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
在一个具体的实施例中,网络拥塞数据处理方法可以应用于数据中心网络。参考图6,本申请的方案同时部署在网络的端侧服务器和网络交换机上,通过端侧和网络的协同达到预期目标。在端侧服务器上,本方案部署在传输层内,用于通过调整拥塞窗口控制数据流的发送速率。网络拥塞数据处理方法具体包括以下步骤:
1、数据包从发送端发出时,为数据包插入一个特定的LH(Load Header)负载率包头,其中的正向负载率FL和反向负载率BL都初始化为0。
2、数据包从交换机的出端口发送时,交换机检测端口的负载率PL与数据包的FL,若PL>FL,则用PL更新FL。
3、数据包到达接收端后,接收端提取数据包的FL。
4、接收端服务器产生一个应答包(Ack包),把提取到的FL写入应答包的BL区。
具体地,网络中交换机基于下列公式周期性地更新端口的负载率PL。
I=TxBytes+Qlen-LastQlen
PL=L*64
5、应答包到达发送端,发送端提取应答包的BL,并根据BL调整拥塞窗口。
具体地,发送端可以基于下列公式调整拥塞窗口。
L=BL/64
其中,若L≤1,且当前时间-上一周期的拥塞窗口更新时间>网络空载RTT,则stage+1。若L≤1,且当前时间-上一周期的拥塞窗口更新时间≤网络空载RTT,则stage保持不变,W保持不变,W=Wc。
通过本方案的负载率计算方法和交换机的协助,可以实现精确地感知网络中拥塞状态。进一步的,通过本方案的窗口调整方法,可以把网络排队控制在极低的水平,同时维持接近100%的带宽利用率和优良的数据流公平性。
本方案能从带宽利用率、队列堆积量和流公平性三个维度上同时达到最优,实现高带宽利用率,低队列堆积和优良的流公平性。特别地,我们通过仿真对比了DCQCN(DataCenter Quantized Congestion Notification,一种数据中心量化拥塞控制算法)、HPCC(High Precision Congestion Control,一种高精度拥塞控制算法)和本方案的性能。我们在一个类似Fattree(胖树拓扑结构)的数据中心网络里做一个8打1的Incast测试,参考图7,从40-47节点(即第0~7号服务器)各起一条流打55节点。数据中心网络采用3层拓扑结构进行交换机级联,接入交换机与汇聚交换机被划分为不同的集群,集群中每台接入交换机都与每台汇聚交换机相连,每台汇聚交换机与部分核心交换机相连。其中,Incast是数据中心网络内部一种普遍的多对一的通信模式,在这种模式下,多个发送端同时应答一个客户端的请求并发送数据包,而如果同时传输的数据包超过了交换机的缓存,将会导致数据包的大量丢失从而引起超时,这将会使得链路带宽得不到充分利用而导致吞吐量急剧下降。
仿真的性能结果参考图8A、图8B、图8C,图8A是DCQCN的仿真结果,图8B是HPCC的仿真结果,图8C是本方案的仿真结果。图8A、图8B、图8C中从左到右依次表示流的速率/窗口变化,瓶颈带宽和瓶颈队列高度。可以理解,关于流的速率/窗口变化,图8A、图8B、图8C只出示了部分节点数据流的速率变化,为了辨识度,只选了第0、2、4、6号服务器(即40、42、44、46节点)的4条流画出来。关于瓶颈带宽和瓶颈队列高度,由于被打节点为55节点,38交换机和39交换机距离55节点最近,38交换机和39交换机需要汇总上层交换机的数据转发至55节点,因此,38交换机和39交换机可以认为是数据传输链路上的瓶颈点,图8A、图8B、图8C只出示了38交换机的瓶颈带宽和瓶颈队列高度。
从仿真结果可以看到,DCQCN的流速变化幅度非常大,而且速率分配不公平,临近结束时带宽明显不足,全程的交换机数据包堆积都在100KB~500KB之间波动。而HPCC方案的数据流速率相对DCQCN稍公平些,但是其交换机带宽有比较明显的波动,导致吞吐量有损失,同时交换机队列堆积在开始很长一段时间维持在250KB以上,仍然比较高,后续维持在30KB附近波动。作为对比,在本方案控制下的数据流窗口大小非常均匀,公平性非常好,同时交换机带宽一直维持在100%,并且交换机队列堆积维持在10KB附近波动。通过本申请的网络拥塞数据处理方法,在消除数据网络中的拥塞(数据包堆积)的同时,可以维持网络带宽高利用率和维护数据流之间公平性。
应该理解的是,虽然图2、图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种网络拥塞数据处理装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:初始数据包获取模块902、当前网络负载量确定模块904、当前负载信息确定模块906、数据包更新模块908和应答数据包发送模块910,其中:
初始数据包获取模块902,用于获取数据发送设备发送的初始数据包;初始数据包携带初始负载信息;
当前网络负载量确定模块904,用于基于初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;目标中转端口是数据中转设备上用于发送数据包的端口;
当前负载信息确定模块906,用于基于目标中转端口在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息;
数据包更新模块908,用于基于当前负载信息更新初始数据包,得到中间数据包,将中间数据包发送至数据接收设备;中间数据包携带基于当前负载信息和初始负载信息确定的目标负载信息;
应答数据包发送模块910,用于将从数据接收设备返回的、携带目标负载信息的应答数据包,发送至数据发送设备,以使数据发送设备基于目标负载信息调整拥塞窗口。
上述网络拥塞数据处理装置,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
在一个实施例中,当前网络负载量确定模块还用于获取目标中转端口在当前时间段的初始排队高度和目标排队高度;基于初始排队高度和目标排队高度之间的差异,得到数据排队变化量,融合数据排队变化量和数据发送量得到中间网络负载量;基于中间网络负载量和目标排队高度得到当前网络负载量。
在一个实施例中,当前网络负载量确定模块还用于获取中间网络负载量和目标排队高度分别对应的注意力权重;中间网络负载量对应的注意力权重大于目标排队高度对应的注意力权重;基于注意力权重,融合中间网络负载量和目标排队高度得到当前网络负载量。
在一个实施例中,当前负载信息确定模块还用于基于目标中转端口对应的带宽信息和当前时间段,得到参考网络负载量;基于当前网络负载量和参考网络负载量的比值得到当前负载信息。
在一个实施例中,当前负载信息确定模块还用于基于带宽利用比例调整参考网络负载量,得到更新网络负载量;基于当前网络负载量和更新网络负载量的比值得到当前负载信息。
在一个实施例中,初始数据包携带目标数据流标识,数据中转设备包括至少一个候选数据流标识对应的候选中转端口,各个候选中转端口包括至少一个候选数据流标识对应的数据队列。当前网络负载量确定模块还用于将目标数据流标识对应的候选中转端口作为目标中转端口;在目标中转端口中,将目标数据流标识对应的数据队列作为目标队列;基于目标队列在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,当前负载信息确定模块还用于基于目标队列在当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息。
在一个实施例中,当前负载信息确定模块还用于当当前负载信息大于初始负载信息时,基于当前负载信息替换初始数据包中的初始负载信息,得到中间数据包,目标负载信息为当前负载信息;当当前负载信息小于或等于初始负载信息时,将初始数据包作为中间数据包,目标负载信息为初始负载信息。
在一个实施例中,初始数据包、中间数据包和应答数据包均包括发送信息承载字段和应答信息承载字段,初始负载信息位于初始数据包的发送信息承载字段,目标负载信息位于中间数据包的发送信息承载字段,目标负载信息位于应答数据包的应答信息承载字段。
在一个实施例中,如图10所示,提供了一种网络拥塞数据处理装置,该装置可以采用软件模块或硬件模块,或者是二者的结合成为计算机设备的一部分,该装置具体包括:第一数据包获取模块1002、数据包发送模块1004、第二数据包获取模块1006和拥塞窗口调整模块1008,其中:
第一数据包获取模块1002,用于获取初始数据包;初始数据包携带初始负载信息。
数据包发送模块1004,用于将初始数据包发送至数据中转设备,以使数据中转设备将初始数据包发送至数据接收设备。
第二数据包获取模块1006,用于获取数据接收设备返回的应答数据包;应答数据包携带目标负载信息,目标负载信息是数据中转设备基于当前负载信息和初始负载信息确定的,当前负载信息是基于初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,目标中转端口是数据中转设备上用于发送数据包的端口。
拥塞窗口调整模块1008,用于基于目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
上述网络拥塞数据处理装置,在计算当前负载信息时,数据发送量可以反映目标中转端口的当前网络状态,数据排队变化量可以反映出网络状态的变化趋势,参考网络负载量可以反映参考网络状态,基于数据发送量、数据排队变化量和参考网络负载量计算得到的当前负载信息可以反映目标中转端口从当前至未来的综合网络状态,该负载信息的准确性较高,有助于提高网络拥塞判断的准确性,数据发送设备接收到应答数据包后,基于最新获取到的负载信息可以对当前拥塞窗口进行精准调整。
在一个实施例中,拥塞窗口调整模块包括:
窗口缩小单元,用于当目标负载信息大于参考负载信息时,确定窗口调整参数为窗口缩小参数,基于窗口缩小参数缩小当前拥塞窗口,得到目标拥塞窗口;
窗口放大单元,用于当目标负载信息小于或等于参考负载信息时,确定窗口调整参数为窗口放大参数,基于窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口。
在一个实施例中,窗口缩小单元还用于当目标负载信息大于参考负载信息时,基于目标负载信息生成窗口缩小参数;窗口缩小参数随着目标负载信息的增大而增大;基于当前拥塞窗口和窗口缩小参数的比值得到目标拥塞窗口。
在一个实施例中,窗口放大单元还用于当目标负载信息小于或等于参考负载信息时,确定当前网络状态为欠载状态;基于当前网络状态更新历史连续欠载数量,得到当前连续欠载数量;历史连续欠载数量是通过统计当前网络状态对应的相邻网络状态连续为欠载状态的次数得到的;当当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口;当当前连续欠载数量大于预设数量时,基于第二窗口放大参数放大当前拥塞窗口,得到目标拥塞窗口;第一窗口放大参数小于第二窗口放大参数。
在一个实施例中,窗口放大单元还用于当目标负载信息小于或等于参考负载信息、且当前时间和相邻拥塞窗口调整时间的时间间隔大于预设时间间隔时,确定当前网络状态为欠载状态。
在一个实施例中,窗口放大单元还用于基于预设参数和当前拥塞窗口的比值得到第一窗口放大参数;第一窗口放大参数随着当前拥塞窗口的增大而减小;融合第一窗口放大参数和当前拥塞窗口,得到目标拥塞窗口。
在一个实施例中,第二窗口放大参数是基于目标负载信息确定的,第二窗口放大参数随着目标负载信息的增大而减小。
在一个实施例中,初始数据包和应答数据包携带目标数据流标识。拥塞窗口调整模块还用于基于窗口调整参数调整目标数据流标识对应的当前拥塞窗口,得到目标数据流标识对应的目标拥塞窗口。
关于网络拥塞数据处理装置的具体限定可以参见上文中对于网络拥塞数据处理方法的限定,在此不再赘述。上述网络拥塞数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储拥塞窗口、参考负载信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种网络拥塞数据处理方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种网络拥塞数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11、12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (22)
1.一种网络拥塞数据处理方法,其特征在于,应用于数据中转设备,所述方法包括:
获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息;
基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
2.根据权利要求1所述的方法,其特征在于,所述基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,包括:
获取所述目标中转端口在所述当前时间段的初始排队高度和目标排队高度;
基于所述初始排队高度和所述目标排队高度之间的差异,得到数据排队变化量,融合所述数据排队变化量和所述数据发送量得到中间网络负载量;
基于所述中间网络负载量和所述目标排队高度得到所述当前网络负载量。
3.根据权利要求2所述的方法,其特征在于,所述基于所述中间网络负载量和所述目标排队高度得到所述当前网络负载量,包括:
获取所述中间网络负载量和所述目标排队高度分别对应的注意力权重;所述中间网络负载量对应的注意力权重大于所述目标排队高度对应的注意力权重;
基于注意力权重,融合所述中间网络负载量和所述目标排队高度得到所述当前网络负载量。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息,包括:
基于所述目标中转端口对应的带宽信息和所述当前时间段,得到所述参考网络负载量;
基于所述当前网络负载量和所述参考网络负载量的比值得到所述当前负载信息。
5.根据权利要求4所述的方法,其特征在于,所述基于所述当前网络负载量和所述参考网络负载量的比值得到所述当前负载信息,包括:
基于带宽利用比例调整所述参考网络负载量,得到更新网络负载量;
基于所述当前网络负载量和所述更新网络负载量的比值得到所述当前负载信息。
6.根据权利要求1至5中任意一项所述的方法,其特征在于,所述初始数据包携带目标数据流标识,所述数据中转设备包括至少一个候选数据流标识对应的候选中转端口,各个候选中转端口包括至少一个候选数据流标识对应的数据队列;
所述基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量,基于所述目标中转端口在所述当前时间段的所述当前网络负载量和参考网络负载量,得到当前负载信息,包括:
将所述目标数据流标识对应的候选中转端口作为所述目标中转端口;
在所述目标中转端口中,将所述目标数据流标识对应的数据队列作为目标队列;
基于所述目标队列在当前时间段的数据发送量和数据排队变化量,得到所述当前网络负载量;
基于所述目标队列在当前时间段的当前网络负载量和参考网络负载量,得到所述当前负载信息。
7.根据权利要求1至5中任意一项所述的方法,其特征在于,所述基于所述当前负载信息更新所述初始数据包,得到中间数据包,包括;
当所述当前负载信息大于所述初始负载信息时,基于所述当前负载信息替换所述初始数据包中的所述初始负载信息,得到所述中间数据包,所述目标负载信息为所述当前负载信息;
当所述当前负载信息小于或等于所述初始负载信息时,将所述初始数据包作为所述中间数据包,所述目标负载信息为所述初始负载信息。
8.根据权利要求1至5中任意一项所述的方法,其特征在于,所述初始数据包、所述中间数据包和所述应答数据包均包括发送信息承载字段和应答信息承载字段,所述初始负载信息位于所述初始数据包的发送信息承载字段,所述目标负载信息位于所述中间数据包的发送信息承载字段,所述目标负载信息位于所述应答数据包的应答信息承载字段。
9.一种网络拥塞数据处理方法,其特征在于,应用于数据发送设备,所述方法包括:
获取初始数据包;所述初始数据包携带初始负载信息;
将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
10.根据权利要求9所述的方法,其特征在于,所述基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口,包括:
当所述目标负载信息大于所述参考负载信息时,确定所述窗口调整参数为窗口缩小参数,基于所述窗口缩小参数缩小所述当前拥塞窗口,得到所述目标拥塞窗口;
当所述目标负载信息小于或等于所述参考负载信息时,确定所述窗口调整参数为窗口放大参数,基于所述窗口放大参数放大所述当前拥塞窗口,得到所述目标拥塞窗口。
11.根据权利要求10所述的方法,其特征在于,所述当所述目标负载信息大于所述参考负载信息时,确定所述窗口调整参数为窗口缩小参数,基于所述窗口缩小参数缩小所述当前拥塞窗口,得到所述目标拥塞窗口,包括:
当所述目标负载信息大于所述参考负载信息时,基于所述目标负载信息生成所述窗口缩小参数;所述窗口缩小参数随着所述目标负载信息的增大而增大;
基于所述当前拥塞窗口和所述窗口缩小参数的比值得到所述目标拥塞窗口。
12.根据权利要求10所述的方法,其特征在于,所述当所述目标负载信息小于或等于所述参考负载信息时,确定所述窗口调整参数为窗口放大参数,基于所述窗口放大参数放大所述当前拥塞窗口,得到所述目标拥塞窗口,包括:
当所述目标负载信息小于或等于所述参考负载信息时,确定当前网络状态为欠载状态;
基于所述当前网络状态更新历史连续欠载数量,得到当前连续欠载数量;所述历史连续欠载数量是通过统计所述当前网络状态对应的相邻网络状态连续为欠载状态的次数得到的;
当所述当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大所述当前拥塞窗口,得到所述目标拥塞窗口;
当所述当前连续欠载数量大于预设数量时,基于第二窗口放大参数放大所述当前拥塞窗口,得到所述目标拥塞窗口;所述第一窗口放大参数小于所述第二窗口放大参数。
13.根据权利要求12所述的方法,其特征在于,所述当所述目标负载信息小于或等于所述参考负载信息时,确定当前网络状态为欠载状态,包括:
当所述目标负载信息小于或等于所述参考负载信息、且当前时间和相邻拥塞窗口调整时间的时间间隔大于预设时间间隔时,确定当前网络状态为欠载状态。
14.根据权利要求12所述的方法,其特征在于,所述当所述当前连续欠载数量小于或等于预设数量时,基于第一窗口放大参数放大所述当前拥塞窗口,得到所述目标拥塞窗口,包括:
基于预设参数和当前拥塞窗口的比值得到所述第一窗口放大参数;所述第一窗口放大参数随着所述当前拥塞窗口的增大而减小;
融合所述第一窗口放大参数和所述当前拥塞窗口,得到所述目标拥塞窗口。
15.根据权利要求12所述的方法,其特征在于,所述第二窗口放大参数是基于所述目标负载信息确定的,所述第二窗口放大参数随着所述目标负载信息的增大而减小。
16.根据权利要求9至15中任意一项所述的方法,其特征在于,所述初始数据包和应答数据包携带目标数据流标识,所述基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口,包括:
基于所述窗口调整参数调整所述目标数据流标识对应的当前拥塞窗口,得到所述目标数据流标识对应的目标拥塞窗口。
17.一种网络拥塞数据处理系统,其特征在于,所述系统包括:
数据发送设备,用于获取初始数据包,将所述初始数据包发送至数据中转设备;所述初始数据包携带初始负载信息;
数据中转设备,用于基于当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
所述数据发送设备还用于获取所述数据接收设备返回的、携带所述目标负载信息的应答数据包,基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
18.一种网络拥塞数据处理装置,其特征在于,所述装置包括:
初始数据包获取模块,用于获取数据发送设备发送的初始数据包;所述初始数据包携带初始负载信息;
当前网络负载量确定模块,用于基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量和数据排队变化量,得到当前网络负载量;所述目标中转端口是数据中转设备上用于发送数据包的端口;
当前负载信息确定模块,用于基于所述目标中转端口在所述当前时间段的当前网络负载量和参考网络负载量,得到当前负载信息;
数据包更新模块,用于基于所述当前负载信息更新所述初始数据包,得到中间数据包,将所述中间数据包发送至数据接收设备;所述中间数据包携带基于所述当前负载信息和所述初始负载信息确定的目标负载信息;
应答数据包发送模块,用于将从所述数据接收设备返回的、携带所述目标负载信息的应答数据包,发送至所述数据发送设备,以使所述数据发送设备基于所述目标负载信息调整拥塞窗口。
19.一种网络拥塞数据处理装置,其特征在于,所述装置包括:
第一数据包获取模块,用于获取初始数据包;所述初始数据包携带初始负载信息;
数据包发送模块,用于将所述初始数据包发送至数据中转设备,以使所述数据中转设备将所述初始数据包发送至数据接收设备;
第二数据包获取模块,用于获取所述数据接收设备返回的应答数据包;所述应答数据包携带目标负载信息,所述目标负载信息是所述数据中转设备基于当前负载信息和所述初始负载信息确定的,所述当前负载信息是基于所述初始数据包对应的目标中转端口在当前时间段的数据发送量、数据排队变化量和参考网络负载量得到的,所述目标中转端口是所述数据中转设备上用于发送数据包的端口;
拥塞窗口调整模块,用于基于所述目标负载信息和参考负载信息的比较结果确定窗口调整参数,基于所述窗口调整参数调整当前拥塞窗口,得到目标拥塞窗口。
20.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8或9至16中任一项所述的方法的步骤。
21.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8或9至16中任一项所述的方法的步骤。
22.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8或9至16中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111408075.XA CN116155824A (zh) | 2021-11-19 | 2021-11-19 | 网络拥塞数据处理方法、装置、系统和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111408075.XA CN116155824A (zh) | 2021-11-19 | 2021-11-19 | 网络拥塞数据处理方法、装置、系统和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116155824A true CN116155824A (zh) | 2023-05-23 |
Family
ID=86357002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111408075.XA Pending CN116155824A (zh) | 2021-11-19 | 2021-11-19 | 网络拥塞数据处理方法、装置、系统和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116155824A (zh) |
-
2021
- 2021-11-19 CN CN202111408075.XA patent/CN116155824A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10063488B2 (en) | Tracking queuing delay and performing related congestion control in information centric networking | |
CN108390820B (zh) | 负载均衡的方法、设备及系统 | |
US9185047B2 (en) | Hierarchical profiled scheduling and shaping | |
US11888744B2 (en) | Spin-leaf network congestion control method, node, system, and storage medium | |
CN106878192B (zh) | 一种自适应mptcp的数据调度方法 | |
US12047295B2 (en) | Microburst detection and management | |
CN104092625B (zh) | 一种用于dcn中的自适应请求分批调度方法 | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
WO2024012065A1 (zh) | 数据传输控制方法、装置、计算机可读存储介质、计算机设备及计算机程序产品 | |
CN111756641A (zh) | 一种发送设备的调整方法和通信装置 | |
CN113328953B (zh) | 网络拥塞调整的方法、装置和存储介质 | |
Sood et al. | Control layer resource management in SDN-IoT networks using multi-objective constraint | |
US20230362099A1 (en) | Managing data traffic congestion in network nodes | |
Patel et al. | Comparative analysis of congestion control algorithms using ns-2 | |
Liang et al. | Queue‐based congestion detection and multistage rate control in event‐driven wireless sensor networks | |
CN116155824A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
CN114448838B (zh) | 系统可靠度评估方法 | |
CN116155823A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
CN116155811A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
CN112019443A (zh) | 多路径数据传输方法及装置 | |
CN116455819A (zh) | 网络拥塞数据处理方法、装置、系统和计算机设备 | |
CN117938750B (zh) | 调度路由信息的处理方法、装置、设备、存储介质及产品 | |
Manikandan et al. | Active queue management based congestion control protocol for wireless networks | |
US20240163219A1 (en) | System and method for data transfer and request handling among a plurality of resources | |
CN118869600A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40087254 Country of ref document: HK |