CN112532535A - 一种用于优化网络拥塞的方法和装置 - Google Patents
一种用于优化网络拥塞的方法和装置 Download PDFInfo
- Publication number
- CN112532535A CN112532535A CN201910878015.0A CN201910878015A CN112532535A CN 112532535 A CN112532535 A CN 112532535A CN 201910878015 A CN201910878015 A CN 201910878015A CN 112532535 A CN112532535 A CN 112532535A
- Authority
- CN
- China
- Prior art keywords
- ecn
- queue
- threshold
- parameter set
- probability
- 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.)
- Granted
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/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- 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
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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/29—Flow control; Congestion control using a combination of thresholds
-
- 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/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种用于优化网络拥塞的方法和装置,该方法中,转发设备预先设置了第一条件集。该转发设备获取用于表征该转发设备中队列的状态的第一参数集,当该第一参数集满足第一条件集时,该转发设备即可基于该第一参数集获得ECN信息,克服了静态配置ECN信息所带来的无法针对队列中的实际状态进行合理的拥塞判断和处理的问题,其中,队列的状态可以是队列是否缓存有报文,队列缓存的报文是否导致拥塞等状态,转发设备基于该队列的第一参数集获得符合队列的状态的ECN信息,以便能够较准确地为队列中的报文添加ECN标识,从而能够缓解拥塞和对拥塞进行及时处理。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种用于优化网络拥塞的方法和装置。
背景技术
网络中某条路径上的源设备通过转发设备向目的设备发送业务流。随着高性能计算、大数据分析、输入/输出(英文:Input/Output,简称:I/O)的高并发和I/O的低时延等应用的增多,转发设备的出端口容易发生拥塞,即转发设备的出端口发送的小于转发设备所接收到的流量,使得部分流量缓存于转发设备的队列中。缓存于转发设备的队列中的流量可能因缓存时间长或无法及时发送等原因造成丢包。
转发设备可静态配置有显式拥塞通知(英文:Explicit CongestionNotification,简称:ECN)信息。当转发设备根据ECN信息确定队列发生拥塞时,该转发设备即可为队列中的报文添加ECN标识。接收到ECN标识的目的设备可向源设备发送通知消息,以便源设备获知其与目的设备间的路径上存在拥塞。当静态配置的ECN信息与转发设备的队列不匹配,比如队列实际已经发生了拥塞但转发设备根据该ECN信息仍判断未发生拥塞,该转发设备不会为该队列中的报文添加ECN标识。源设备无法接收到目的设备发送的通知消息,继续按照既定速率向转发设备发送报文,导致转发设备上的拥塞程度不断加重。
发明内容
基于此,本申请实施例提供了一种用于优化网络拥塞的方法和装置,能够根据队列的状态动态调整ECN信息,以优化网络的拥塞状况。
第一方面,在本申请实施例中,提供了一种用于优化网络拥塞的方法,对于交换机或路由器等转发设备,可以自主获取用于表征该转发设备的队列的状态的第一参数集,例如:队列的报文差、队列的深度或队列的利用率,其中,队列的报文差为在第一时刻获取的经该队列转发的报文数量和在第二时刻获取的经该队列转发的报文数量的差值,经队列转发的报文包括ECN标识,队列的深度为队列中缓存的报文的长度,队列的利用率为预设时长内经该队列发送的流量与该预设时长内根据队列的端口带宽获得的数据量间的比值;而且,该转发设备中预先设置了第一条件集,那么,该转发设备即可判断获取的第一参数集是否满足预设的该第一条件集,并在确定满足该第一条件集时,基于该第一参数集计算ECN信息,以便该转发设备能够基于该根据当前队列的第一参数集计算所得的ECN信息对该队列中的报文添加ECN标识。可见,在本申请实施例中,通过转发设备自主获取反映其队列的实际状态的第一参数集,了解队列的当前实际状态,并预先设置第一条件集,在队列的当前实际状态满足该第一条件集的情况下,转发设备可以基于该队列的第一参数集计算更加符合当前实际状态的ECN信息,克服了目前通过静态配置的固定ECN信息,无法针对队列中的实际状态进行合理的拥塞判断和处理,导致该队列的拥塞不仅无法得到解决,而且拥塞的程度不断加重的问题,结合队列的实际状况对ECN信息进行动态调整,得到更加合理的ECN信息,使得以合理的ECN信息为依据,能够更加准确和合理的为队列中的报文添加ECN标识,从而使得在各种情况下实现更加合理和准确的拥塞处理成为可能。
在第一方面的一些可能的实现方式中,第一参数集可以包括队列的报文差、队列的深度和队列的利用率这三个参数中的至少一个。作为一个示例,当第一参数集包括队列的报文差时,第一条件集包括队列的报文差大于零。作为另一个示例,当第一参数集包括队列的深度时,第一条件集包括队列的深度增加和队列的深度大于深度阈值中的至少一个。作为再一个示例,当第一参数集包括队列的利用率时,第一条件集包括队列的利用率大于第一利用率阈值。作为又一个示例,当第一参数集同时包括队列的报文差和队列的深度时,第一条件集包括队列的报文差大于或等于零和队列的深度大于深度阈值,或者第一条件集包括队列的报文差大于或等于零和队列的深度增加。作为另一个示例,当第一参数集包括队列的报文差、队列的深度和队列的利用率时,第一条件集可以包括:队列的深度增加,队列的利用率大于第一利用率阈值,且队列的报文差大于零,或者,第一条件集也可以包括队列的深度大于深度阈值,队列的利用率大于第一利用率阈值,且队列的报文差大于零。
可以理解的是,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,该经所述队列转发的报文包括ECN标识。队列的深度为队列中缓存的报文的长度。队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值。
在该实现方式下的一种示例中,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,那么,转发设备基于第一参数集获得显式拥塞通知ECN信息,具体可以包括:转发设备基于第一ECN阈值和BDP,获得第二ECN阈值,第二ECN阈值为ECN信息,第二ECN阈值小于第一ECN阈值。
在该实现方式下的另一种示例中,若第一参数集还包括第一ECN概率,转发设备基于第一参数集获得显式拥塞通知ECN信息,具体可以包括:转发设备基于第一ECN概率和预设的ECN的概率,获得第二ECN概率,第二ECN概率为ECN信息,第二ECN概率大于第一ECN概率。
在该实现方式下的又一种示例中,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,转发设备基于第一参数集获得显式拥塞通知ECN信息,具体可以包括:转发设备基于第三ECN阈值和BDP,获得第五ECN阈值,第五ECN阈值小于第三ECN阈值;转发设备基于第四ECN阈值和BDP,获得第六ECN阈值,第六ECN阈值小于第四ECN阈值;转发设备基于第三ECN概率和预设的ECN概率,获得第四ECN概率,第四ECN概率大于第三ECN概率,该ECN信息包括第五ECN阈值、第六ECN阈值和第四ECN概率。
可见,该实现方式通过将ECN信息中的ECN阈值调小和/或将ECN信息中的ECN概率调大,增多流量中具有ECN标识的报文的数量,以便目的设备收到更多的具有ECN标识的报文,从而多次告知源设备进行降速,以缓解该队列中流量的积压。
在第一方面的另一些可能的实现方式中,第一参数集可以包括队列的报文差和队列的利用率。
在该实现方式下的一种示例中,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,转发设备基于第一参数集获得显式拥塞通知ECN信息具体可以包括:转发设备基于第一ECN阈值和BDP,获得第七ECN阈值,第七ECN阈值为ECN信息,第七ECN阈值大于第一ECN阈值。
在该实现方式下的另一种示例中,若第一参数集还包括第一ECN概率,转发设备基于第一参数集获得显式拥塞通知ECN信息具体可以包括:转发设备基于第一ECN概率和预设的ECN概率,获得第五ECN概率,第五ECN概率为ECN信息,第五ECN概率小于第一ECN概率。
在该实现方式下的又一种示例中,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,转发设备基于第一参数集获得显式拥塞通知ECN信息具体可以包括:转发设备基于第三ECN阈值和BDP,获得第八ECN阈值,第八ECN阈值大于第三ECN阈值;转发设备基于第四ECN阈值和BDP,获得第九ECN阈值,第九ECN阈值大于第四ECN阈值;转发设备基于第三ECN概率和预设的ECN概率,获得第六ECN概率,第六ECN概率小于第三ECN概率,该ECN信息包括第八ECN阈值、第九ECN阈值和第六ECN概率。
可见,该实现方式通过将ECN信息中的ECN阈值调大和/或将ECN信息中的ECN概率调小,减少流量中具有ECN标识的报文的数量,以便目的设备收到较少的具有ECN标识的报文,从而减少告知源设备进行降速的次数,以节约网络资源。
在第一方面的再一些可能的实现方式中,本申请实施例还可以包括:当第一参数集满足第二条件集时,转发设备基于第一参数集,获得第二参数集,第二参数集包括待调整的源设备的用于转发的配置参数;转发设备将第二参数集及其包括的参数的目标值发送给源设备。这样,转发设备根据队列的实际状态针对性的计算更合理ECN信息和网卡参数,实现了对转发设备中拥塞更加智能和准确的处理,克服了目前通过静态设置固定的ECN信息,无法针对队列中当前的实际状态进行合理的拥塞处理判断和处理,导致该队列的拥塞不仅无法得到解决,而且拥塞的程度不断加重的问题,克服源设备仅仅基于目的设备反馈的拥塞状态进行调速无法满足流量变化的需求,导致调速不够准确和合理,从而使得拥塞处理效果不够好的问题,实现更加合理和准确的拥塞处理效果。
在该实现方式下的一种示例中,若第一参数集包括队列的报文差,那么,第二条件集可以包括队列的报文差大于零。此时,第二参数集可以包括第二降速比例、第二降速周期和第二降速因子中的至少一个;一种情况下,当第二参数集包括第二降速比例,第一参数集还包括第一降速比例,第二降速比例大于第一降速比例;另一种情况下,当第二参数集包括第二降速周期,第一参数集还包括第一降速周期,第二降速周期小于第一降速周期;再一种情况下,当第二参数集包括第二降速因子,第一参数集还包括第一降速因子,第二降速因子大于第一降速因子。如此,可以实现转发设备根据第一参数集动态确定合适的待调整的第二参数集,为后续源设备准确的调整网卡参数以实现降速提供了数据基础。
在该实现方式下的另一种示例中,第一参数集包括队列的报文差,那么,第二条件集包括队列的报文差等于零。此时,第二参数集可以包括第二升速时长、第二升速数据量和第二升速步长中的至少一个;一种情况下,当第二参数集包括第二升速时长,第一参数集还包括第一升速时长,第二升速时长小于第一升速时长;另一种情况下,当第二参数集包括第二升速数据量,第一参数集还包括第一升速数据量,第二升速数据量小于第一升速数据量;再一种情况下,当第二参数集包括第二升速步长,第一参数集还包括第一升速步长,第二升速步长大于第一升速步长。如此,可以实现转发设备根据第一参数集动态确定合适的待调整的第二参数集,为后续源设备准确的调整网卡参数以实现升速提供了数据基础。
此外,该示例中的第一参数集还可以包括队列的利用率,那么,第二条件集可以为队列的报文差等于零且队列的利用率大于零。
在第一方面的又一些具体的实现方式中,一种情况下,转发设备将第二参数集发送给源设备,包括:转发设备向源设备发送链路层发现协议(英文:Link Layer DiscoveryProtocol,简称:LLDP)消息,链路层发现协议LLDP消息中的类型长度值(英文:Type LengthValue,简称:TLV)字段用来携带第二参数集。另一种情况下,当源设备和转发设备之间不支持LLDP通信时,本申请实施例中的转发设备将第二参数集发送给源设备,还可以包括:转发设备和源设备建立传输控制协议TCP连接;转发设备通过TCP连接,向源设备发送第二参数集。这样,转发设备将基于第一参数集计算的第二参数集及其包括的参数的目标值发送给源设备,为源设备修改网卡参数以实现针对队列实际状态进行合理升降速提供了数据基础,能够克服源设备仅仅基于确认消息(英文:Acknowledge,简称:ACK)中的ECN标识或者拥塞通知报文(英文:Congestion Notification Packet,简称:CNP)进行调速,无法针对队列的实际状态进行调速,导致调速不够准确和合理,从而使得拥塞处理效果不够好的问题。
第二方面,本申请实施例还提供了一种用于优化网络拥塞的方法,对于服务器等源设备,可以接收目的设备发送的指示消息,该指示消息用于指示存在拥塞;该源设备也可以接收转发设备发送的第二参数集,其中,该第二参数集包括源设备的用于转发的配置参数,该第二参数集为转发设备基于第一参数集计算得到的,第一参数集用于表征转发设备内队列的状态;源设备基于所述指示消息和第二参数集进行调速。这样,转发设备根据队列的实际状态针对性的计算更合理网卡参数,克服源设备仅仅基于目的设备反馈的拥塞状态进行调速无法满足流量变化的需求,导致调速不够准确和合理,从而使得拥塞处理效果不够好的问题,实现更加合理和准确的拥塞处理效果。
可以理解的是,该指示消息具体为确认消息ACK或拥塞通知报文CNP。
在第二方面的一些可能的实现方式中,第一参数集包括下述信息中的至少一个:第一降速比例、第一降速周期和第一降速因子。此时,一种情况下,当第一参数集包括第一降速比例时,第二参数集包括第二降速比例;另一种情况下,当第一参数集包括第一降速周期时,第二参数集包括第二降速周期;再一种情况下,当第一参数集包括第一降速因子时,第二参数集包括第二降速因子。如此,源设备即可基于转发设备根据第一参数集动态确定合适的待调整的第二参数集,准确的调整网卡参数以实现降速。
在第二方面的另一些可能的实现方式中,在源设备基于指示消息和第二参数集对源设备进行调速之后,当拥塞解除后,本申请实施例还可以包括:源设备接收转发设备发送的待修改的第三参数集,其中,第三参数集为转发设备基于第四参数集计算获得的数值,第四参数集用于表征转发设备的队列的状态;源设备用第三参数集更新源设备上用于转发的配置参数,实现升速。
作为一个示例,第四参数集包括下述信息中的至少一个:第四升速时长、第四升速数据量和第四升速步长;一种情况下,当第四参数集包括第四升速时长时,第三参数集包括第三升速时长;另一种情况下,当第四参数集包括第四升速数据量时,第三参数集包括第三升速数据量;再一种情况下,当第四参数集包括第四升速步长时,第三参数集包括第三升速步长。如此,源设备即可基于转发设备根据第四参数集动态确定合适的待调整的第三参数集,准确的调整网卡参数以实现升速。
在第二方面的又一些具体的实现方式中,一种情况下,源设备接收转发设备发送的第二参数集,具体为:源设备接收转发设备发送的链路层发现协议LLDP消息,LLDP消息中的类型长度值TLV字段用来携带第二参数集。另一种情况下,当源设备和转发设备之间不支持LLDP通信时,本申请实施例中的源设备接收转发设备发送的第二参数集,包括:源设备和转发设备建立传输控制协议TCP连接;源设备通过TCP连接,接收转发设备发送的第二参数集。这样,转发设备将基于第一参数集计算的第二参数集发送给源设备,源设备即可基于接收到的第二参数集,修改网卡参数以实现针对队列实际状态进行合理升降速,能够克服源设备仅仅基于确认消息ACK中的ECN标识或者拥塞通知报文CNP进行调速,无法针对队列的实际状态进行调速,导致调速不够准确和合理,从而使得拥塞处理效果不够好的问题。
第三方面,本申请实施例还提供了一种用于优化网络拥塞的装置,应用于转发设备,包括:第一获取单元和第二获取单元。其中,第一获取单元用于获取第一参数集,第一参数集用于表征转发设备的队列的状态;第二获取单元用于当第一参数集满足第一条件集时,基于第一参数集获得显式拥塞通知ECN信息。
作为一个示例,当第一参数集包括队列的报文差时,第一条件集包括队列的报文差大于零,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识;当第一参数集包括队列的深度时,第一条件集包括队列的深度增加和队列的深度大于深度阈值中的至少一个,队列的深度为队列中缓存的报文的长度;当第一参数集包括队列的利用率时,第一条件集包括队列的利用率大于第一利用率阈值,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值;当第一参数集包括队列的报文差和队列的深度时,第一条件集包括队列的报文差大于或等于零和队列的深度大于深度阈值,或者第一条件集包括队列的报文差大于或等于零和队列的深度增加;当第一参数集包括队列的报文差、队列的深度和队列的利用率时,第一条件集包括队列的深度增加,队列的利用率大于第一利用率阈值,且队列的报文差大于零,或者第一条件集包括队列的深度大于深度阈值,队列的利用率大于第一利用率阈值,且队列的报文差大于零。
该示例中,一种情况下,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,第二获取单元,具体用于:基于第一ECN阈值和BDP,获得第二ECN阈值,第二ECN阈值为ECN信息,第二ECN阈值小于第一ECN阈值。另一种情况下,若第一参数集还包括第一ECN概率,第二获取单元,具体用于:基于第一ECN概率和预设的ECN的概率,获得第二ECN概率,第二ECN概率为ECN信息,第二ECN概率大于第一ECN概率。再一种情况下,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,第二获取单元,包括:第一获取子单元、第二获取子单元和第三获取子单元,其中,第一获取子单元用于基于第三ECN阈值和BDP,获得第五ECN阈值,第五ECN阈值小于第三ECN阈值;第二获取子单元用于基于第四ECN阈值和BDP,获得第六ECN阈值,第六ECN阈值小于第四ECN阈值;第三获取子单元用于基于第三ECN概率和预设的ECN概率,获得第四ECN概率,第四ECN概率大于第三ECN概率,该ECN信息包括第五ECN阈值、第六ECN阈值和第四ECN概率。
作为另一个示例,第一参数集包括队列的报文差和队列的利用率,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值,第一条件集为队列的报文差大于零且队列的利用率小于或等于第二利用率阈值。
该示例中,一种情况下,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,所第二获取单元,具体用于:基于第一ECN阈值和BDP,获得第七ECN阈值,第七ECN阈值为ECN信息,第七ECN阈值大于第一ECN阈值。另一种情况下,若第一参数集还包括第一ECN概率,第二获取单元,具体用于:转发设备基于第一ECN概率和预设的ECN概率,获得第五ECN概率,第五ECN概率为ECN信息,第五ECN概率小于第一ECN概率。再一种情况下,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,第二获取单元,包括:第四获取子单元、第五获取子单元和第六获取子单元,其中,第四获取子单元,用于基于第三ECN阈值和BDP,获得第八ECN阈值,第八ECN阈值大于第三ECN阈值;第五获取子单元,用于基于第四ECN阈值和BDP,获得第九ECN阈值,第九ECN阈值大于第四ECN阈值;第六获取子单元,用于基于第三ECN概率和预设的ECN概率,获得第六ECN概率,第六ECN概率小于第三ECN概率,该ECN信息包括第八ECN阈值、第九ECN阈值和第六ECN概率。
在第三方面的另一种可能的实现方式中,该装置还可以包括:第三获取单元和发送单元。其中,第三获取单元用于当第一参数集满足第二条件集时,基于第一参数集,获得第二参数集,第二参数集包括待调整的源设备的用于转发的配置参数;发送单元用于将第二参数集发送给源设备。
该实现方式中,作为一个示例,当第一参数集包括队列的报文差,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,则,第二条件集包括队列的报文差大于零。该示例中,第二参数集包括第二降速比例、第二降速周期和第二降速因子中的至少一个;当第二参数集包括第二降速比例,第一参数集还包括第一降速比例,第二降速比例大于第一降速比例;当第二参数集包括第二降速周期,第一参数集还包括第一降速周期,第二降速周期小于第一降速周期;当第二参数集包括第二降速因子,第一参数集还包括第一降速因子,第二降速因子大于第一降速因子。
作为另一个示例,当第一参数集包括队列的报文差,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,则,第二条件集包括队列的报文差等于零。该示例中,第二参数集包括第二升速时长、第二升速数据量和第二升速步长中的至少一个;当第二参数集包括第二升速时长,第一参数集还包括第一升速时长,第二升速时长小于第一升速时长;当第二参数集包括第二升速数据量,第一参数集还包括第一升速数据量,第二升速数据量小于第一升速数据量;当第二参数集包括第二升速步长,第一参数集还包括第一升速步长,第二升速步长大于第一升速步长。此外,该示例中,若第一参数集还包括队列的利用率,则,第二条件集具体可以为队列的报文差等于零且队列的利用率大于零,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值。
可以理解的是,一种情况下,该发送单元,具体用于:向源设备发送链路层发现协议LLDP消息,链路层发现协议LLDP消息中的类型长度值TLV字段用来携带第二参数集。另一种情况下,发送单元,包括:连接建立子单元和发送子单元,其中,连接建立子单元,用于和源设备建立传输控制协议TCP连接;发送子单元,用于通过TCP连接,向源设备发送第二参数集。
需要说明的是,第三方面提供的该装置,对应于第一方面提供的方法,故第三方面提供的装置的各种可能的实现方式以及达到的技术效果,可以参照前述第一方面提供的方法的介绍。
第四方面,本申请实施例还提供了一种用于优化网络拥塞的装置,应用于源设备,该装置例如可以包括:第一接收单元、第二接收单元和第一调速单元。其中,第一接收单元用于接收指示消息,其中,指示消息为目的设备发送给源设备的,且该指示消息用于指示存在拥塞;第二接收单元用于接收转发设备发送的第二参数集,其中,该第二参数集包括源设备的用于转发的配置参数,该第二参数集为转发设备基于第一参数集计算得到的,第一参数集用于表征转发设备内队列的状态;第一调速单元用于基于所述指示消息和第二参数集进行调速。
可以理解的是,该指示消息具体为确认消息ACK或拥塞通知报文CNP。
在第四方面的一些可能的实现方式中,第一参数集包括下述信息中的至少一个:第一降速比例、第一降速周期和第一降速因子。此时,一种情况下,当第一参数集包括第一降速比例时,第二参数集包括第二降速比例;另一种情况下,当第一参数集包括第一降速周期时,第二参数集包括第二降速周期;再一种情况下,当第一参数集包括第一降速因子时,第二参数集包括第二降速因子。
在第四方面的另一些可能的实现方式中,本申请实施例还可以包括:第三接收单元和第二调速单元,其中,第三接收单元用于在源设备基于指示消息,用第二参数集包括的参数的第二值更新源设备上用于转发的配置参数之后,接收转发设备发送的待修改的第三参数集,其中,第三参数集为转发设备基于第四参数集计算获得的数值,第四参数集用于表征转发设备的队列的状态;第二调速单元用于用第三参数集更新源设备上用于转发的配置参数,实现升速。
作为一个示例,第四状态参数集包括下述信息中的至少一个:第四升速时长、第四升速数据量和第四升速步长;一种情况下,当第四参数集包括第四升速时长时,第三参数集包括第三升速时长;另一种情况下,当第四参数集包括第四升速数据量时,第三参数集包括第三升速数据量;再一种情况下,当第四参数集包括第四升速步长时,第三参数集包括第三升速步长。
在第四方面的又一些具体的实现方式中,一种情况下,第二接收单元,具体用于:接收转发设备发送的链路层发现协议LLDP消息,LLDP消息中的类型长度值TLV字段用来携带第二参数集。另一种情况下,当源设备和转发设备之间不支持LLDP通信时,该装置的第二接收单元,包括:连接建立子单元和接收子单元,其中,连接建立子单元,用于和转发设备建立传输控制协议TCP连接;接收子单元,用于通过TCP连接,接收转发设备发送的第二参数集。
需要说明的是,第四方面提供的该装置,对应于第二方面提供的方法,故第四方面提供的装置的各种可能的实现方式以及达到的技术效果,可以参照前述第二方面提供的方法的介绍。
第五方面,本申请实施例还提供了一种转发设备,该转发设备包括存储器和处理器;其中,存储器,用于存储程序代码;处理器,用于运行程序代码中的指令,使得转发设备执行以上第一方面的任一种实现方式下的用于优化网络拥塞的方法。
第六方面,本申请实施例还提供了一种源设备,该源设备包括存储器和处理器;其中,存储器,用于存储程序代码;处理器,用于运行程序代码中的指令,使得源设备执行以上第二方面的任一种实现方式下的用于优化网络拥塞的方法。
第七方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以上第一方面或第二方面的任一种实现方式下的用于优化网络拥塞的方法。
第八方面,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述第一方面或第二方面的任一种实现方式下的用于优化网络拥塞的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1a为本申请实施例中基于DCTCP的拥塞处理方法的信令流程图;
图1b为本申请实施例中基于DCQCN的拥塞处理方法的信令流程图;
图2为本申请实施例中一应用场景所涉及的系统框架示意图;
图3为本申请实施例中图2中转发设备120的结构示意图;
图4为本申请实施例中图2中终端设备121的结构示意图;
图5为本申请实施例中一种用于优化网络拥塞的方法的流程示意图;
图6为本申请实施例中另一种用于优化网络拥塞的方法的流程示意图;
图7为本申请实施例中一LLDP中扩展TLV字段的格式示意图;
图8为本申请实施例中再一种用于优化网络拥塞的方法的流程示意图;
图9为本申请实施例中又一种用于优化网络拥塞的方法的流程示意图;
图10为本申请实施例中一种用于优化网络拥塞的方法的实例的信令流程图;
图11为本申请实施例中转发设备120动态调整ECN信息的流程示意图;
图12为本申请实施例中转发设备120动态确定升降速相关网卡参数的流程示意图;
图13为本申请实施例中一种用于优化网络拥塞的装置的结构示意图;
图14为本申请实施例中另一种用于优化网络拥塞的装置的结构示意图;
图15为本申请实施例中一种转发设备的结构示意图;
图16为本申请实施例中一种源设备的结构示意图。
具体实施方式
一般结合加权随机早期检测(英文:Weighted Random Early Detection,简称:WRED)和显式拥塞通知(英文:Explicit Congestion Notification,简称:ECN)技术,对转发设备内的拥塞进行处理。具体过程可以包括:通过静态配置的方式,在转发设备上配置ECN信息。当转发设备通过检测其队列的深度,并依据队列的深度和ECN信息的对比,确定转发设备内队列发生报文积压。该转发设备即可对队列中的报文添加ECN标识。当添加有ECN标识的报文发送到目的设备时,目的设备就通知源设备存在拥塞。源设备根据经验调整网卡的配置参数,以避免过多的报文被传输至转发设备的该队列中,减缓该转发设备的拥塞程度。该ECN信息用于指导对队列中的报文添加ECN标识。
如图1a所示,可以基于数据中心传输控制协议(英文:Data Center TransmissionControl Protocol,简称:DCTCP)实现上述拥塞处理,具体过程可以包括:S11,转发设备向目的设备发送携带ECN标识的报文;S12,目的设备生成确认(英文:Acknowledgment,简称:ACK)消息,该ACK中携带该ECN标识;S13,目的设备将该ACK消息发送给源设备;S14,源设备基于该ECN标识调整传输控制协议(英文:Transmission Control Protocol,简称:TCP)拥塞窗口的大小,实现降低源设备向该转发设备传发送报文的速度,从而缓解该转发设备的拥塞程度。在DCTCP中,转发设备依据静态配置的ECN信息对缓存的报文添加ECN标识。
如图1b所示,可以基于数据中心量化拥塞通知(英文:Data Center QuantizedCongestion Notification,简称:DCQCN)实现上述拥塞处理,具体过程可以包括:S21,转发设备向目的设备发送携带ECN标识的报文;S22,目的设备生成拥塞通知报文(英文:Congestion Notification Packet,简称:CNP);S23,目的设备将该CNP发送给源设备;S24,源设备基于该CNP进行降速,实现降低源设备向该转发设备发送报文的速度,从而缓解该转发设备的拥塞程度。在该DCQCN中,转发设备依据静态配置的ECN信息对缓存的报文添加ECN标识。
目前的拥塞处理方法中,转发设备基于静态配置的ECN信息对队列中的报文添加ECN标识,可能会导致转发设备已经发生了拥塞,但是根据静态配置的ECN信息不在缓存的报文中添加ECN标识。为了解决上述问题,本申请实施例提供了一种用于优化网络拥塞的方法,转发设备预先设置了第一条件集。该转发设备获取用于表征该转发设备中队列的状态的第一参数集。当该第一参数集满足第一条件集时,该转发设备即可基于该第一参数集获得ECN信息,克服了静态配置ECN信息所带来的无法针对队列中的实际状态进行合理的拥塞判断和处理。其中,队列的状态可以是队列是否缓存有报文,队列缓存的报文是否导致拥塞等状态。转发设备基于该队列的第一参数集获得符合队列的状态的ECN信息,以便能够较准确地为队列中的报文添加ECN标识,从而能够缓解拥塞和对拥塞进行及时处理。
本申请实施例可以应用到如图2所示的网络中。参见图2,该网络设备包括多个转发设备和多个终端设备。多个转发设备包括:转发设备100、转发设备200、转发设备110、转发设备120、转发设备210和转发设备220。多个终端设备包括:终端设备111、终端设备112、终端设备121、终端设备122、终端设备211、终端设备212、终端设备221和终端设备222。设备之间的连接关系具体可以参见图2所示。其中,转发设备100连接转发设备110、转发设备120、转发设备210和转发设备220。转发设备200连接转发设备110、转发设备120、转发设备210和转发设备220。其中,转发设备110还连接终端设备111和终端设备112。转发设备120还连接终端设备121和终端设备122。转发设备210还连接终端设备211和终端设备212。转发设备220还连接终端设备221和终端设备222。
图2中的转发设备可以是交换机或路由器等在终端设备之间用于转发的设备。本申请实施例中的转发设备具有ECN能力或者支持ECN相关处理。转发设备包括至少一个队列,转发设备可通过队列管理机制转发业务流。终端设备可以是服务器、手机或个人计算机(英文:personal computer,简称:PC)等。个人计算机可以是平板电脑(英文:tabletpersonal computer,简称:Tablet PC)、笔记本电脑、超级移动个人计算机或个人数字助理等。本申请实施例中,为了实现不用的业务功能,终端设备通过转发设备将业务流发送给另一终端设备。
其中,以转发设备120为例,图3示出了该转发设备120的结构示意图。参见图3,该转发设备120至少包括:参数获取单元10、拥塞状态判断单元20、计算单元30、ECN信息更新单元40和网卡参数通知单元50。其中,参数获取单元10,用于周期性的获取用于表征该转发设备120中队列的状态的第一参数集。该第一参数集可以包括队列的报文差。具体的,参数获取单元10用于从寄存器中读取在第一时刻获取的经该队列转发的报文数量和在第二时刻获取的经队列转发的报文数量,并计算两个时刻获取的经该队列转发的报文数量的差值,作为队列的报文差。其中,在第一时刻和在第二时刻获取的经该队列转发的报文均包括ECN标识。该第一参数集也可以包括队列的深度。队列的深度即该队列中缓存的报文的长度。该参数获取单元10还用于将第一参数集发送给拥塞状态判断单元20。拥塞状态判断单元20用于基于第一参数集,判断该转发设备120中各队列的拥塞情况。计算单元30,用于在拥塞状态判断单元20确定的队列是否发生拥塞的情况,根据第一参数集计算ECN信息和第二参数集。计算单元30用于将ECN信息发送给ECN信息更新单元40,将第二参数集发送给网卡参数通知单元50。ECN信息更新单元40用于将该转发设备120的寄存器内的ECN信息更新为计算单元30所获得的ECN信息,以便于后续该转发设备120基于该更新后的目标ECN信息对该队列中的报文添加ECN标识。网卡参数通知单元50用于将第二参数集发送给源设备,例如:终端设备121。
以终端设备121为例,图4示出了该终端设备121的结构示意图。参见图4,该终端设备121至少包括:消息处理单元60和网卡参数配置单元70。其中,消息处理单元60用于接收转发设备发送的第二参数集和接收目的设备发送的指示消息。网卡参数配置单元70用于基于转发设备发送的第二参数集配置用于转发的配置参数。
作为一个示例,作为源设备的终端设备121通过转发设备120向作为目的设备的终端设备122发送某个业务的报文或业务流。转发设备120的处理流程可参见下述图5或图6对应的实施例。作为另一个示例,作为源设备的终端设备121通过转发设备120、转发设备200和转发设备210向作为目的设备的终端设备212发送某个业务的报文或业务流。转发设备120、转发设备200和转发设备210中任一转发设备的处理流程可参见下述图5或图6对应的实施例。可以理解的是,上述场景仅是本申请实施例提供的一个场景示例,本申请实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本申请实施例中的用于优化网络拥塞的方法的具体实现方式。
图5示出了本申请实施例中的一种用于优化网络拥塞的方法的流程示意图。图5对应的实施例中的转发设备可以是图2对应的实施例中的任意一个转发设备。参见图5,本申请实施例提供的方法可以包括:
步骤501,转发设备获取第一参数集,所述第一参数集用于表征转发设备的队列的状态。
其中,第一参数集可以是转发设备周期性的获取的。所述第一参数集包括至少一个参数。所述第一参数集包括的参数可用于表征该转发设备内队列的状态。第一参数集包括:队列的报文差、队列的深度和队列的利用率中的至少一个。队列的报文差为在第一时刻获取的经该队列转发的报文数和在第二时刻获取的经该队列转发的报文数的差值,经该队列转发的报文包括ECN标识。例如:转发设备的寄存器中保存着第二时刻经该队列转发的包括ECN标识的报文数量为150;该寄存器中保存有第一时刻经该队列转发的包括ECN标识的报文数量为100,所获得的队列的报文差为50。队列的深度为队列中缓存的报文的长度,例如:队列中当前有50KBytes的报文等待被转发,则该队列的深度即为50KBytes。队列的利用率为预设时长内经该队列发送的流量与该预设时长内根据队列的端口带宽获得的数据量间的比值。预设时长内径该队列发送的流量是指经队列转发的报文对应的数据量。例如:队列中10秒发送的流量为8兆,端口带宽为每秒1兆,则队列的利用率为8/(1*10)=80%。
举例说明,该转发设备可以从其寄存器中读取用于表征队列状态的参数。在一种实现方式中,转发设备可以将所读取的参数作为第一参数集中的参数。在另一种实现方式中,转发设备可以对所读取的参数进行预处理,并将预处理后的参数作为第一参数集中的参数。
举例说明,第一参数集还可以包括:第一ECN信息。转发设备可利用该第一ECN信息对队列中的报文添加ECN标识。一种情况下,该第一ECN信息可以包括ECN阈值1(或者称为第一ECN阈值)。当队列中缓存的报文的数据量超过ECN阈值1时,转发设备对于再进入该队列中的报文随机选择添加ECN标识。例如:当ECN阈值1为50KBytes,那么,当队列中缓存的报文的数据量超过50KBytes时,转发设备对于再进入该队列的报文随机添加ECN标识。另一种情况下,该第一ECN信息也可以包括ECN概率1(或者称为第一ECN概率)。对于队列中缓存的报文,转发设备保持添加了ECN标识的报文的总数据量占队列中缓存的报文的总数据量的比例小于ECN概率1,例如:当ECN阈值1为50%,当队列中缓存的报文的总数据量超过100KBytes时,该队列中添加了ECN标识的报文的数据量应该小于(100*50%)=50KBytes,转发设备对再进入该队列的报文随机添加ECN标识。再一种情况下,该第一ECN信息还可以包括ECN阈值2(或称为第二ECN阈值)、ECN阈值3(或称为第三ECN阈值)和ECN概率2(或称为第二ECN概率)。对于队列的深度小于ECN阈值2的情况下进入该队列的报文,转发设备不添加ECN标识。对于队列的深度大于或等于ECN阈值2且小于ECN阈值3的情况下进入该队列的报文,转发设备保持添加了ECN标识的报文的数据量占该队列深度区间的报文的总数据量的比例小于ECN概率2,队列深度区间为队列的深度大于或等于ECN阈值2且小于ECN阈值3对应的区间。对于队列的深度大于或等于ECN阈值3的情况下进入该队列的报文,转发设备均添加ECN标识。
当对于第一参数集包括第一ECN信息,且第一ECN信息中包括上述任一ECN阈值时,该第一参数集还包括:带宽延迟积(英文:Bandwidth Delay,简称:BDP)。该BDP具体可以是:端口带宽与某一业务流从源设备到达目的设备的静态时延的乘积。上述某一业务流经上述转发设备的队列转发。
另一些可能的实现方式中,该第一参数集还可以包括用于转发的配置参数,比如源设备上用于配置网卡的参数。第一参数集还可以包括第一降速比例(也可以表示为rp_min_dec_fac)、第一降速周期(也可以表示为rate_reduce_monitor_period)和第一降速因子(也可以表示为dce_tcp)。第一降速比例是指每次降速操作对应的最大降速比例。第一降速周期是指相邻两次降速操作的间隔时间。第一降速因子用于影响降速的幅度。该第一参数集也可以包括:第一升速时长(也可以表示为rp_time_reset)、第一升速数量量(也可以表示为rp_byte_reset)和第一升速步长。第一升速时长是指相邻两次升速操作发生的时间间隔。第一升速数量是指相邻两次升速事件之间该队列发送的字节数。第一升速步长是指升速的幅度。第一升速步长具体包括第一子步长和第二子步长。当队列开始解除拥塞的一段时间内,为了避免该队列很快进入拥塞状态,可以认为该段时间为积极增速ActiveIncrease阶段,第一升速步长取较小的第一子步长(也可以表示为rp_ai_rate),缓慢增速。当经过积极增速阶段后,认为该转发设备状态良好,可以进入超活跃增速(Hyper ActiveIncrease)阶段,第一升速步长可以取较大的第二子步长(也可以表示为rp_hai_rate),实现快速升速。
需要说明的是,通过步骤501获取到能够表征队列状态的第一参数集,例如可以是图3所示的转发设备120中的参数获取单元10执行的,为后续调整ECN信息以及调整网卡参数提供了数据基础。
步骤502,转发设备判断该第一参数集是否满足第一条件集,若是,则,执行步骤503,否则,执行步骤505。
该第一条件集是指队列的第一参数集需要满足的条件的集合。该第一条件集包括至少一个条件。当第一参数集满足该第一条件集,则转发设备确定该队列发生拥塞,需要对ECN信息进行调整。当该队列的第一参数集不满足该第一条件集,则转发设备确定该队列未发生拥塞,不需要对ECN信息进行调整。
第一条件集包括的条件与第一参数集包括的参数匹配,即第一条件集包括的条件是根据第一参数集中的参数设置的用来判断拥塞的条件。其中,第一条件集中可以包括第一条件子集和第二条件子集。第一条件子集可以是指对ECN信息进行向下调整使得对队列中添加ECN标识的报文变多的条件的集合。第二条件子集可以是指对ECN信息进行向上调整使得对队列中添加ECN标识的报文减少的条件的集合。其中,第一条件子集具体可以包括但不限于下述五种示例:
作为一个示例,当第一参数集包括队列的报文差时,该第一条件集可以包括:队列的报文差大于零。当转发设备确定获取第一参数集中的队列的报文差大于零,转发设备确定第一参数集满足第一条件集。队列的报文差大于零表示队列中添加有ECN标识的报文增多,即队列中缓存的待发送的报文数量增加。转发设备需要通过调整ECN信息增多添加有ECN标识的报文的数量,以便源设备降速。
作为另一个示例,当第一参数集包括队列的深度时,该第一条件集可以包括队列的深度增加和队列的深度大于深度阈值中的至少一个。当转发设备判断其获取的第一参数集中队列的深度增加或队列的深度大于深度阈值,转发设备确定第一参数集满足第一条件集。转发设备需要通过调整ECN信息增多添加有ECN标识的报文的数量,以便源设备降速。其中,预设的深度阈值用于表征该队列发生拥塞时队列深度的临界值。例如:深度阈值具体可以是队列能够容纳的报文的总数据量的80%。假设队列能够容纳的报文的总数据量为100KBytes,那么,深度阈值可以是(100KBytes*80%)=80KBytes。
作为再一个示例,当第一参数集包括队列的利用率时,该第一条件集可以包括:队列的利用率大于第一利用率阈值。当转发设备判断其获取的第一参数集中队列的利用率大于第一利用率阈值(例如60%),转发设备确定第一参数集满足第一条件集。转发设备需要通过调整ECN信息增多添加有ECN标识的报文的数量,以便源设备降低报文的发送速率。
作为又一个示例,当第一参数集包括队列的报文差和队列的深度时,第一条件集可以包括:队列的报文差大于或等于零,且队列的深度大于深度阈值,或者,第一条件集可以包括:队列的报文差大于或等于零,且队列的深度增加。当转发设备判断其获取的第一参数集中队列的报文差大于或等于零,且队列的深度增加,或者转发设备判断其获取的第一参数集中队列的报文差大于或等于零,且队列的深度大于深度阈值,转发设备确定第一参数集满足第一条件集。转发设备需要通过调整ECN信息增多添加有ECN标识的报文的数量,以便源设备降低报文的发送速率。
作为另一个示例,当第一参数集包括队列的报文差、队列的深度和队列的利用率时,第一条件集可以包括:队列的深度增加,队列的利用率大于第一利用率阈值,且队列的报文差大于零,或者,第一条件集可以包括:队列的深度大于深度阈值,队列的利用率大于第一利用率阈值,且队列的报文差大于零。当转发设备判断其获取的第一参数集满足第一条件集时,转发设备需要通过调整ECN信息增多添加有ECN标识的报文的数量,以便源设备降低报文的发送速率,以缓解该队列中流量的积压。
其中,第二条件子集具体可以包括但不限于下述情况:
第一参数集包括队列的报文差和队列的利用率,第一条件集包括:队列的报文差大于零且队列的利用率小于或等于第二利用率阈值。其中,第二利用率阈值可以和第一条件子集合中的第一利用率阈值取相同的值,也可以取不同的值。当转发设备判断其获取的第一参数集中队列的报文差大于零,当队列的利用率小于或等于第二利用率阈值(例如70%),可以说明队列中添加有ECN标识的报文增多,但是该队列中缓存等待处理的报文的数量已经减少,即源设备已经在进行降速以缓解拥塞。为了减少该转发设备内对添加ECN标识的报文的数量,节约网络资源,可以通过调整ECN信息,减少流量中ECN标识的报文的数量。
若步骤501中获取的第一参数集不满足本申请实施例提供的第一条件集,则,说明该队列未发生拥塞,无需对ECN信息进行调整,可以执行下述步骤505。
该步骤502例如可以是图3所示的转发设备120中的拥塞判断单元20执行的,具体而言,可以是该参数获取单元10将第一参数集发送给拥塞状态判断单元20,由该拥塞状态判断单元20执行步骤502完成对当前队列拥塞情况的识别。
步骤503,转发设备基于第一参数集计算ECN信息。
该第一参数集中还可以包括第一ECN信息和BDP。
在一种可能的实现方式中,第一ECN信息具体可以包括:第一ECN阈值。那么,该步骤503具体可以是:转发设备基于第一ECN阈值和该BDP,获得第二ECN阈值,并将该第二ECN阈值作为步骤503中计算获得的ECN信息。
作为一个示例,当第一参数集满足第一条件集中的第一条件子集,则,步骤503中计算获得的ECN信息中的第二ECN阈值小于第一ECN阈值。这样,通过将步骤503中计算获得的ECN信息中的第二ECN阈值调小,就可以增多添加有ECN标识的报文的数量,以便目的设备收到更多的添加有ECN标识的报文,从而多次告知源设备降速,以缓解该队列的拥塞。例如:假设第一ECN信息中包括第一ECN阈值的数值是a1,那么,当队列中缓存的流量的深度超过a1,对于再进入该队列中的报文进行随机选择并添加ECN标识,而根据步骤503中计算获得的ECN信息中的第二ECN阈值为A1,A1<a1,则当队列中缓存的流量的深度还未到达a1但超过A1时,该队列就对再进入该队列中的报文进行随机选择并添加ECN标识。该队列中添加有ECN标识的报文的数量增加。
作为另一个示例,当第一参数集满足第一条件集中的第二条件子集,则步骤503中计算获得的ECN信息中的第二ECN阈值大于第一ECN阈值。这样,通过将步骤503中计算获得的ECN信息中的第二ECN阈值调大,减少流量中添加有ECN标识的报文的数量,以便目的设备收到更少的添加有ECN标识的报文,从而减少告知源设备降速的次数,以节约网络资源。例如:假设第一ECN信息中包括第一ECN阈值的数值为a1,那么,当队列中缓存的流量的深度超过a1,对于再进入该队列中的报文,就会添加ECN标识,而根据步骤503中计算获得的ECN信息中的第二ECN阈值为A1’,A1’>a1,则当队列中缓存的流量的深度超过a1但未超过A1’时,该队列对再进入该队列中的报文仍然不添加ECN标识,可见,该队列中ECN标识的报文的数量减少。
在另一种可能的实现方式中,第一ECN信息具体可以包括:第一ECN概率。那么,该步骤503具体可以是:转发设备基于第一ECN概率和预设的ECN概率,获得第二ECN概率,并将该第二ECN概率作为步骤503中计算获得的ECN信息。其中,预设的ECN概率具体可以包括:1%~10%、25%、50%、75%和100%共14个可调整的档位,也可以根据实际情况设置更细粒度的可调整档位,在本申请实施例中不作具体限定。
作为一个示例,当第一参数集满足第一条件集中的第一条件子集,则步骤503中计算获得的ECN信息中的第二ECN概率大于第一ECN概率。这样,通过将ECN信息中的ECN概率调大,增多流量中添加有ECN标识的报文的数量,以便目的设备收到更多的添加有ECN标识的报文,从而多次告知源设备降速,以缓解该队列中流量的积压。例如:假设第一ECN信息中仅包括第一ECN概率,其第一ECN概率的数值为10%,那么,当队列中缓存的流量中,需要保持添加有ECN标识的报文的数据量小于缓存的流量的总数据量的10%以内,而根据步骤503中计算获得的ECN信息中的第二ECN概率可以为25%,则,需要保持添加有ECN标识的报文的数据量小于缓存的流量的总数据量的25%以内,这样,该队列就可以对再进入该队列的大多数报文添加ECN标识,可见,该队列中ECN标识的报文的数量增加。
作为另一个示例,当第一参数集满足第一条件集中的第二条件子集,则步骤503中计算获得的ECN信息中的第二ECN概率小于第一ECN概率。这样,通过将步骤503中计算获得的ECN信息中的第二ECN概率,减少流量中添加有ECN标识的报文的数量,以便目的设备收到更少的添加有ECN标识的报文,从而减少告知源设备降速的次数,以节约网络资源。例如:假设第一ECN信息中包括第一ECN概率为10%,那么,当队列中缓存的流量中,需要保持添加有ECN标识的报文的数据量小于缓存的流量的总数据量的10%以内,而根据第一参数集计算的ECN信息中的第二ECN概率可以为9%,则,需要保持添加有ECN标识的报文的数据量小于缓存的流量的总数据量的9%以内,这样,该队列就可以对再进入该队列的大多数报文不再添加ECN标识,可见,该队列中ECN标识的报文的数量减少。
在再一种可能的实现方式中,第一ECN信息具体可以包括:第三ECN阈值、第四ECN阈值和第三ECN概率。那么,该步骤503具体可以包括:第一步,转发设备基于第三ECN阈值和BDP,获得第五ECN阈值;第二步,转发设备基于第四ECN阈值和BDP,获得第六ECN阈值;第三步,转发设备基于第三ECN概率和预设的ECN概率,获得第四ECN概率,其中,步骤503中计算获得的ECN信息包括第五ECN阈值、第六ECN阈值和第四ECN概率。需要说明的是,上述第一步~第三步的执行可以不限定先后顺序,可以以任意顺序先后执行,也可以同时执行其中的任意两步或同时执行三步。
基于第一ECN信息中的第三ECN阈值、第四ECN阈值和第三ECN概率对队列中的报文添加ECN标识时,当该队列的深度小于第三ECN阈值时,队列中的报文全部都不添加ECN标识;当队列的深度大于或等于第三ECN阈值且小于第四ECN阈值时,队列中位于第三ECN阈值和第四ECN阈值之间的报文,保持添加有ECN标识的报文的数据量占该第三ECN阈值到第四ECN阈值区间的报文总数据量的比例在第三ECN概率之内,当队列的深度大于或等于第四ECN阈值时,对于大于或等于第四ECN阈值的报文,全部添加ECN标识。
作为一个示例,当第一参数集满足第一条件集中的第一条件子集,则,ECN信息中的第五ECN阈值小于第三ECN阈值,第六ECN阈值小于第四ECN阈值,第四ECN概率大于第三ECN概率。这样,通过将ECN信息中的ECN概率调大,ECN阈值调小,增多流量中添加有ECN标识的报文的数量,以便目的设备收到更多的添加有ECN标识的报文,从而多次告知源设备降速,以缓解该队列中流量的积压。例如:假设第三ECN阈值为a2,第四ECN阈值为b1,第三ECN概率为10%,那么,若转发设备确定第一参数集满足第一条件子集,则,转发设备可以计算出第五ECN阈值A2为:A2=a2-0.5*BDP,也可以计算第六ECN阈值B为:B1=b1-BDP,还可以将第四ECN概率上调一档为:25%,则,得到的ECN信息具体可以是:A2、B1和25%。这样,当队列的深度大于或等于A2(即,还未到达a2)且小于B1(即,还未到达b1)时,队列中位于A2和B1之间的报文,保持添加有ECN标识的报文的数据量占该A2到B1区间的报文总数据量的比例在25%之内,当队列的深度大于或等于B1(即,还未到达b1)时,对于大于或等于B1的报文,全部添加ECN标识,如此,可以增加该队列中ECN标识的报文的数量。
作为另一个示例,当第一参数集满足第一条件集中的第二条件子集,则,ECN信息中的第五ECN阈值大于第三ECN阈值,第六ECN阈值大于第四ECN阈值,第四ECN概率小于第三ECN概率。这样,通过将ECN信息中的ECN概率调小,ECN阈值调大,减少流量中添加有ECN标识的报文的数量,以便目的设备收到更少的添加有ECN标识的报文,从而减少告知源设备降速的此时,以节约网络资源。例如:假设第三ECN阈值为a2,第四ECN阈值为b1,第三ECN概率为10%,那么,若转发设备确定第一参数集满足第二条件子集,则,转发设备可以计算出第五ECN阈值A2’为:A2’=a2+0.5*BDP,也可以计算第六ECN阈值B1’为:B1’=b1+BDP,还可以将第三ECN概率下调一档为:9%,则,得到的ECN信息具体可以是:A2’、B1’和9%。这样,当队列的深度大于或等于A2’(即,超过a2)且小于B1(即,超过b1)时,队列中位于A2’和B1’之间的报文,保持添加有ECN标识的报文的数据量占该A2’到B1’区间的报文总数据量的比例在9%之内,当队列的深度大于或等于B1(即,超过b1)时,对于大于或等于B1’的报文,全部添加ECN标识,如此,可以减少该队列中ECN标识的报文的数量。
需要说明的是,为了进一步节约网络资源,在拥塞有所缓解的情况下,尽可能减少ECN标识的报文的数量,还可以当第一参数集满足第一条件集中的第二条件子集时,将ECN概率调整至最低档(如:1%),例如:假设第三ECN阈值为a2,第四ECN阈值为b1,第一ECN概率为10%,那么,若转发设备确定第一参数集满足该第二条件子集,则,转发设备可以计算出第五ECN阈值A2”为:A2”=a2+0.5*BDP,也可以计算第六ECN阈值B1”为:B1”=b1+10*BDP,还可以将第三ECN概率调整为1%,即,获得第四ECN概率为1%。
可见,通过步骤503,可以在第一参数集表征该队列的状态变化且需要调整ECN信息时,基于队列当前的第一参数集的调整ECN信息,为后续更加合理的对队列中的报文添加ECN标识提供了数据基础。
需要说明的是,该步骤503例如可以是图3所示的转发设备120中的计算单元30执行的,具体而言,可以是该拥塞判断单元20得出判断结果,并在确定需要调整ECN信息时触发计算单元30执行步骤503完成基于第一参数集计算目标ECN信息的过程。
步骤504,转发设备缓存计算获得的ECN信息,并基于更新后的ECN信息为后续进入该队列中的报文添加ECN标识。
可以理解的是,转发设备可将步骤503中计算获得的ECN信息保存在寄存器中。转发设备基于寄存器中保存的ECN信息,对队列中的流量添加ECN标识。那么,当通过步骤503计算得到更加合理的ECN信息后,可以用步骤503计算获得ECN信息去替换寄存器中已存放的ECN信息,即,用步骤503计算获得的ECN信息去替换该寄存器中第一ECN信息。该转发设备即可基于更新后的ECN信息,为后续进入该队列中的报文添加ECN标识。
需要说明的是,该步骤504例如可以是图3所示的转发设备120中的ECN信息更新单元40执行的,具体而言,可以是该计算单元30将目标ECN信息发送给ECN信息更新单元40进行ECN信息的更新。
步骤505,转发设备保持ECN信息不变。
可以理解的是,当根据步骤502确定该转发设备获取的第一参数集不满足第一条件集,例如:当第一参数集只包括队列的报文差且该队列的报文差等于零,或者第一参数集只包括队列的深度且该队列的深度未增加或未超过深度阈值,或者第一参数集包括队列的报文差和队列的深度,该队列的报文差等于零且队列的深度不大于预设的深度阈值时,转发设备确定该队列未发生拥塞,不需要对ECN信息进行调整。该转发设备基于该寄存器中保存的第一ECN信息,为后续进入该队列中的报文添加ECN标识。
通过本申请实施例提供的方法,克服了目前通过静态配置的ECN信息,无法针对队列中的实际状态进行合理的拥塞判断和处理,导致该队列的拥塞不仅无法得到解决,而且拥塞的程度不断加重的问题。转发设备通过基于该队列的第一参数集计算更加符合当前实际状态的ECN信息,即结合队列的实际状况对ECN信息进行动态调整,得到更加合理的ECN信息,使得以合理的ECN信息为依据能够更加准确和合理的为队列中的报文添加ECN标识,从而使得在各种情况下实现更加合理和准确的处理拥塞。
步骤504之后,本申请实施例提供的方法还包括:转发设备将添加有ECN标识的报文发送给目的设备。在一种实现方式中,本申请实施例提供的方法还包括:S31,目的设备根据添加有ECN标识的报文生成指示消息。其中,该指示消息具体可以是该目的设备发送给源设备的ACK消息或CNP。该指示消息用于表示存在拥塞。该源设备可根据来自目的设备的指示信息进行降速以缓解拥塞;S32,目的设备将指示消息发送给源设备;S33,源设备进行降速操作。
在一些可能的实现方式中,S33可以利用DCTCP或DCQCN中的实现方式,实现降速操作,达到降速以缓解转发设备的队列中流量积压的问题,具体实现可以参见图1a、图1b以及对应实施例的相关描述,在此不再赘述。
在另一些可能的实现方式中,为了使得S33中的降速操作更加合理和智能化,本申请实施例还可以包括转发设备基于周期性采集到的第一参数集计算获得第二参数集,转发设备向源设备发送第二参数集,以便源设备根据第二参数集进行报文发送速率的控制,缓解拥塞或提高网络资源的利用率。下面结合图6,对本申请实施例提供的方法进行说明。
步骤501,转发设备获取第一参数集,所述第一参数集用于表征转发设备的队列的状态。
图6对应的实施例提供的方法所包括的步骤501的具体内容可参见图5对应的实施例中的步骤501,在此不再赘述。
步骤506,转发设备判断该第一参数集是否满足第二条件集,若是,执行步骤507~508,否则,执行步骤509~步骤510。
第一参数集中包括:队列的报文差,该队列的报文差即可作为判断该队列当前是否满足预设的第二条件集的依据。为了更加使得源设备对网卡参数的调整更加合理,可以预先在转发设备中设置第二条件集,该第二条件集可以是指修改网卡参数的场景下第一参数集需要满足的条件,当第一参数集满足该第二条件集,则,可以视作该队列当前很可能发生拥塞或者解除了拥塞状态,需要对网卡参数进行调整,当该第一参数集不满足该第二条件集,则,可以视作该队列当前状态良好,不需要对源设备的网卡参数进行调整。
在一些可能的实现方式中,随着第一参数集中包括的参数不同,适用的第二条件集中的条件也对应不同。其中,第二条件集中可以包括第三条件子集和第四条件子集,第三条件子集,可以是指对网卡参数进行降速调整使得对源设备传输至该队列中的流量减少的条件的集合;第四条件子集,可以是指对网卡参数进行升速调整使得对源设备传输至该队列中的流量增多的条件的集合。其中,第一条件子集具体可以包括但不限于下述五种情况:
作为一个示例,当第一参数集包括队列的报文差时,则,第二条件集中的第三条件子集具体可以包括:队列的报文差大于零。该示例中,若第一参数集还包括队列的深度,那么,一种情况下,该第三条件子集还可以包括:队列的深度增加或队列的深度大于深度阈值,此时,可以通过下述步骤507计算出使得传输速率持续下降的网卡参数;另一种情况下,该第三条件子集还可以包括:队列的深度未增加或队列的深度不大于深度阈值,此时,转发设备也可以通过下述步骤507计算出使得传输速率维持该当前降速速率的网卡参数。
可以理解的是,当队列的报文差大于零,可以认为该队列中添加有ECN标识的报文的数量增多,需要源设备进行降速,以减少向转发设备的该队列中发送报文的数量或者速度,从而缓解该队列中流量的积压,解决转发设备的该队列的拥塞状态。
作为一个示例,当第一参数集包括队列的报文差时,则,第二条件集中的第四条件子集具体可以包括:队列的报文差等于零。该示例中,当第一参数集还包括:队列的利用率,则,第四条件子集具体还可以包括:队列的报文差等于零且队列的利用率大于零。可以理解的是,当队列的报文差等于零,可以认为该队列中添加有ECN标识的报文的数量未增多,为了提高流量的转发效率,源设备可以进行升速。此时,当队列的利用率不等于零时,认为该队列中仍然有待转发的报文,那么,可以对网卡参数中的升速相关参数进行调整。
需要说明的是,若步骤501中获取的第一参数集不满足本申请实施例提供的第二条件集,则,说明该网络状态良好,且无需调整源设备的网卡参数以进行升降速。
需要说明的是,该步骤506例如可以是图3所示的转发设备120中的拥塞判断单元20执行的,具体而言,可以是该状态信息获取单元10将第一参数集发送给拥塞状态判断单元20,由该拥塞状态判断单元20执行步骤506完成对当前队列拥塞情况的识别。在本申请实施例中,该拥塞判断单元20执行步骤502和步骤506的顺序不进行具体限定,可以同时执行,也可以先执行其中的任意一个。
步骤507,转发设备基于第一参数集,获得第二参数集,第二参数集包括源设备的用于转发的配置参数。
在一些可能的实现方式中,当第一参数集满足预设的第二条件集中的第三条件子集时,步骤507中可以确定待修改为第二参数集,该第二参数集包括第二降速比例、第二降速周期和第二降速因子中的至少一个。
作为一个示例,当第二参数集包括第二降速比例,则第一参数集还可以包括第一降速比例,第二降速比例大于第一降速比例。例如:假设第一降速比例为c,那么,若转发设备确定第一参数集满足第三条件子集,则,转发设备可以计算出第二降速比例C为:C=c*1.2。
作为另一个示例,当第二参数集包括第二降速周期,则,第一参数集还可以包括第一降速周期,该第二降速周期小于第一降速周期。例如:假设第一降速周期为t,那么,若转发设备确定第一参数集满足第三条件子集,则,转发设备可以计算出第二降速周期T为:T=t*0.8。
作为再一个示例,当第二参数集包括第二降速因子,则,第一参数集还可以包括第一降速因子,该第二降速因子大于第一降速因子。例如:假设第一降速因子为x,那么,若转发设备确定第一参数集满足第三条件子集,则,转发设备可以计算出第二降速因子X为:X=x+1。
在另一些可能的实现方式中,当第一参数集满足预设的第二条件集中的第四条件子集时,步骤507中可以确定待修改为第二参数集,该第二参数集包括第二升速时长、第二升速数据量和第二升速步长中的至少一个。
作为一个示例,当第二参数集包括第二升速时长,则,第一参数集还可以包括第一升速时长,该第二升速时长小于第一升速时长。例如:假设第一升速时长为e,那么,若转发设备确定第一参数集满足第四条件子集,则转发设备可以计算出第二升速时长E为:E=e/2。
作为另一个示例,当第二参数集包括第二升速数据量,则,第一参数集还可以包括第一升速数据量,该第二升速数据量小于第一升速数据量。例如:假设第一升速数据量为f,那么,若转发设备确定第一参数集满足第四条件子集,则,转发设备可以计算出第二升速数据量F为:F=f/2。
作为再一个示例,当第二参数集包括第二升速步长,则,第一参数集还可以包括第一升速步长,该第二升速步长大于第一升速步长。例如:假设第一升速步长为y,那么,若转发设备确定第一参数集满足第四条件子集,则,转发设备可以计算出第二升速步长Y为:Y=y*2。
需要说明的是,转发设备所获得第二参数集包括参数及其取值。在第一参数集满足第二条件集的情况下,无论是调整其中的部分参数,还是调整全部参数,将得到的第二参数集配置至源设备,均可以实现升速或降速的效果,以实现对于转发设备中队列拥塞情况的处理。
可以理解的是,在第一参数集满足第三条件子集时,还可以初始化升速时长、升速数据量和升速步长等参数,以便在拥塞解除后,确保源设备在合理的配置参数的基础上进行升速,以避免刚缓解了一次拥塞,又由于升速的基数较大而导致升速太快,刚开始升速就立马进入下一次拥塞,导致转发设备对流量的传输性能不稳定。同理,在第一参数集满足第四条件子集时,还可以初始化降速比例、降速周期和降速因子等参数,可以在出现拥塞后,确保源设备在合理的配置参数的基础上进行降速,以避免降速相关参数的基数过大,短时间无法有效的将传输速率降到可以快速、有效缓解拥塞的状态,使得拥塞处理不够高效。
该步骤507例如可以是图3所示的转发设备120中的计算单元30执行的,具体而言,可以是该拥塞判断单元20得出判断结果,并在确定需要调整网卡参数时触发计算单元30执行步骤507完成基于第一参数集确定待调整的第二参数集并计算出对应的目标值的过程。在本申请实施例中,该计算单元30执行步骤503和步骤507的顺序不是固定的,可以同时执行,也可以先执行其中的任意一个。
步骤508,转发设备将第二参数集发送给源设备。
作为一个示例,若该转发设备和源设备之间支持LLDP协议通信,那么,该步骤508具体可以是:转发设备将第二参数集携带在链路层发现协议LLDP消息的类型长度值类型长度值(英文:Type-Length-Value,简称:TLV)字段中,发送给源设备。其中,LLDP协议对应的消息格式中,TLV字段位于协议数据单元(英文:Protocol Data Unit,简称:PDU)字段中,本申请实施例中,可以在PDU中扩展TLV字段,具体可以是在新定义TLV type=127对应的TLV字段中携带第二参数集中的参数及其取值。其中,扩展的TLV字段的格式参见图7,其中,该TLV字段包括:TLV字段的类型、TLV消息的长度、组织机构标识(英文:organizationallyunique identifier,简称:OUI)、组织自定义子类型和组织自定义消息。
作为另一个示例,对于转发设备和源设备之间不支持LLDP协议通信等情况下,该转发设备上可以运行第一程序,源设备上运行与之匹配的代理Agent程序,其中,匹配可以是指运行第一程序的设备和运行Agent程序的设备之间可以建立TCP连接。此时,步骤508具体可以包括:转发设备和源设备建立TCP连接;转发设备将第二参数集通过该TCP连接发送给源设备。
可以理解的是,转发设备将基于第一参数集计算的第二参数集发送给源设备,为源设备调整报文的发送速率,以实现针对队列实际状态进行合理升降速提供了数据基础。
需要说明的是,该步骤508例如可以是图3所示的转发设备120中的网卡参数通知单元50执行的,具体而言,可以是计算单元30将步骤507后得到的目标网卡参数和各目标网卡参数对所述目标值通过网卡参数通知单元50发送给源设备。
具体实现时,在降速过程中,源设备可根据来自转发设备的第二参数集修改用于转发的配置参数,待接收到来自目的设备的指示消息后,执行根据第二参数集执行降速操作。转发设备每向目的设备发送一个添加有ECN标识的报文,该目的设备即可生成一个对应的指示消息,并将该指示消息发送给源设备,或者,转发设备在每个预设周期(例如1秒)内收到具有ECN标识的报文,则在该预设周期内生成一个指示消息,并将该指示消息发送给源设备。这样,在源设备上设置有定时器,当源设备接收到第一个指示消息后,该源设备即可根据转发设备发送的第二参数集进行降速;当在定时器规定的时间内源设备又接收到下一个指示消息后,该源设备继续根据转发设备发送的第二参数集进行降速,并将定时器复位。以此类推,直到超过定时器规定的时间,源设备仍然没有接收到指示消息,可以认为该转发设备的拥塞缓解,此时,转发设备可以根据当前获取的第一参数集判断是否满足第四条件子集,若满足,则该源设备可以依据接收到用于升速的第二参数集及其包括的参数的目标值,或者,依据源设备根据技术人员的人工调整,对网卡参数进行修改以实现升速。若该用于优化网络拥塞的方法基于DCTCP,那么,该指示消息具体可以是ACK;或者,若该用于优化网络拥塞的方法基于DCQCN,那么,该指示消息具体可以是CNP。
步骤509,转发设备获得默认参数集,该默认参数集包括源设备的用于转发的配置参数的默认值。
步骤510,转发设备将默认参数集发送给源设备。
可以理解的是,当第一参数集中包括:队列的报文差和队列的利用率时,当队列的报文差等于零,且该队列的利用率等于零,那么,可以认为该队列为空,此时,可以确定该队列中没有待转发的报文,需要将网卡参数初始化为默认值。
具体实现时,转发设备可以获得默认参数集,该默认参数集包括源设备的用于转发的所有配置参数的默认值,此时,可以将该转发设备获得的默认参数集发送给源设备,以便源设备在该队列为空时,以默认参数集配置其转发,使得该队列能够实现高效且准确的转发功能。
需要说明的是,在另一些实现方式中,如果源设备上可以记录其网络参数的默认值,那么,当转发设备确定第一参数集不满足第二条件集时,该转发设备也可以生成命令消息发送给源设备,该命令消息用于指示该源设备将其上的网卡参数配置为默认值。
可见,通过本申请实施例提供的方法,转发设备根据队列的实际状态计算第二参数集,以便源设备根据第二参数集动态调整报文的发送速率,缓解拥塞或者提高网络资源利用率。
图8为本申请实施例中另一种用于优化网络拥塞的方法的流程示意图。可以理解的是,本申请实施例中的方法可以是由图2中的任意一个终端设备执行的,下述源设备具体可以是图2中终端设备中的任意一个,例如可以是图4所示的转发设备121。
参见图8,在转发设备确定其中队列拥塞需要进行对源设备进行降速处理时,本申请实施例可以包括:
步骤801,源设备接收转发设备发送的第二参数集,第二参数集为转发设备基于第一参数集计算得到的,第一参数集用于表征转发设备内队列的状态。
举例说明,该转发设备也可以基于该第一参数集,确定该队列当前满足预设的第二条件集中的第三条件子集。该转发设备即可基于该第一参数集,确定待调整的第二参数集包括的参数为:第二降速比例、第二降速周期和第二降速因子。第二降速比例、第二降速周期和第二降速因子可参见上述图6对应的实施例中的相应内容。转发设备发送第二参数集的具体方式可参见上述图6对应的实施例中的相应内容。
该步骤801例如可以是图4所示的源设备121中的消息处理单元60执行的,具体而言,可以是从图3所示的转发设备120的网卡参数通知单元50接收的第二参数集。步骤801的具体实现以及相关的描述,可以参见步骤507中关于“第一参数集满足第三条件子集”对应的说明。
步骤802,源设备接收目的设备发送的指示消息,该指示消息为目的设备接收到转发设备发送的添加有ECN标识的报文后生成的消息。
该步骤802例如可以是图4所示的源设备121中的消息处理单元60执行的,具体而言,可以是从图3所示的转发设备120转发的目的节点生成的消息。需要说明的是,在本申请实施例中,该消息处理单元60执行步骤801和步骤802的顺序是不固定的,可以同时执行,也可以先执行其中的任意一个。步骤802的具体实现以及相关的描述,可以参见步骤508中对应的说明。
步骤803,源设备基于指示消息和第二参数集进行调速。
具体实现时,在降速过程中,当转发设备将第二参数集发送给源设备后,源设备可用第二参数集中的参数设置用于转发的配置参数,源设备在接收到来自目的设备的指示消息后,根据第二参数集进行降速操作。
需要说明的是,该步骤803例如可以是图4所示的源设备121中的网卡参数配置单元70执行的,具体而言,可以是从消息处理单元60处接收并进行配置的。
步骤803之后可进一步包括步骤901和902。在另一种实现方式中,901和902可不依赖于步骤801和步骤803的执行,比如转发设备可以根据当前获取的第二参数集判断是否满足第四条件子集,若满足,转发设备确定需要源设备进行升速处理。参见图9,本申请实施例包括:
步骤901,源设备接收转发设备发送的第二参数集,其中,第二参数集为转发设备基于第一参数集计算得到的,第一参数集用于表征转发设备内队列的状态。
本申请实施例中的第二参数集包括与升速相关的参数。第二参数集包括:第二升速时长、第二升速数据量和第二升速步长。第二升速时长、第二升速数据量和第二升速步长的具体内容可参见图6对应的实施例中的相应内容。源设备接收第二参数集的方式可参见图6对应的实施例中转发设备发送第二参数集的方式。
该步骤901例如可以是图4所示的源设备121中的消息处理单元60执行的,具体而言,可以是从图3所示的转发设备120的网卡参数通知单元50接收的第二参数集。步骤901的具体实现以及相关的描述,可以参见步骤507中关于“第一参数集满足第四条件子集”对应的说明。
步骤902,源设备根据第二参数集进行调速。
该步骤901例如可以是图4所示的源设备121中的网卡参数配置单元70执行的,具体而言,可以是从消息处理单元60处接收并进行配置的。
通过本申请实施例提供的方法,源设备能够根据转发设备计算获得的第二参数集进行调速,以便能够缓解拥塞或提高资源利用率。
为了使得本申请实施例提供的用于优化网络拥塞的方法更加清楚,下面结合图2所示的场景,通过场景实施例对本申请实施例进行进一步的说明。
该实施例中,转发设备120的队列作为中转,转发从源设备121到目的设备122的报文。
参见图10,本申请实施例提供的用于优化网络拥塞的方法例如可以包括:
步骤1001,转发设备120周期性采集第一参数集,第一参数集包括:队列的报文差和队列的深度;
步骤1002,转发设备120确定队列的报文差大于零且队列的深度增加,确定发生拥塞;
步骤1003,转发设备120根据第一参数集,获得第二参数集,并计算第一目标ECN信息,第二参数集包括源设备的用于转发的配置参数;
步骤1004,转发设备120更新寄存器中的ECN信息为第一目标ECN信息;
步骤1005,转发设备120基于LLDP扩展的TLV字段,将第二参数集发送给源设备121;
其中,当转发设备120和源设备121之间不支持LLDP通信时,也可以基于两者之间建立的TCP连接进行通信。
步骤1006,源设备121用第二参数集中的参数设置用于转发的配置参数;
步骤1007,转发设备120将携带ECN标识的报文发送给目的设备122;
步骤1008,目的设备122生成ACK,携带ECN标识;
其中,目的设备122也可以生成CNP。
步骤1009,目的设备122将ACK发送给源设备121;
步骤1010,源设备121接收ACK,触发用第二参数集中的参数设置用于转发的配置参数生效,实现降速。
步骤1011,转发设备120根据另一周期接收的第一参数集,确定队列的报文差等于零,确定拥塞解除;
步骤1012,转发设备120根据该另一周期接收的第一参数集,获得第三参数集,并计算第二目标ECN信息,第三参数集包括源设备的用于转发的配置参数;
步骤1013,转发设备120更新寄存器中的ECN信息为第二目标ECN信息;
步骤1014,转发设备120基于LLDP扩展的TLV字段,将第三参数集发送给源设备121;
步骤1015,源设备121用第三参数集中的参数设置用于转发的配置参数,实现升速。
参见图11,本申请实施例提供的用于优化网络拥塞的方法中转发设备120调整ECN信息的过程例如可以包括:
步骤1101,周期性采集第一参数集,第一参数集包括:队列的报文差、队列的深度和队列的利用率;
步骤1102,判断队列的报文差是否大于0,若是,则执行步骤1103,否则,执行步骤1106;
步骤1103,判断队列的利用率是否大于60%,若是,则执行步骤1104,否则,执行步骤1108;
步骤1104,判断队列的深度是否增加,若是,则执行步骤1105,否则,执行步骤1109;
步骤1105,调整ECN信息为ECN信息1,使ECN标识的报文增多;
步骤1106,判断队列的深度是否大于队列能够容纳的最大数据量的80%,若是,则执行步骤1107,否则,执行步骤1109;
步骤1107,调整ECN信息为ECN信息2,使ECN标识的报文增多;
步骤1108,调整ECN信息为ECN信息3,使ECN标识的报文减少;
步骤1109,保持ECN信息不变。
参见图12,本申请实施例提供的用于优化网络拥塞的方法中转发设备120确定升降速相关网卡参数的过程例如可以包括:
步骤1201,周期性采集第一参数集,第一参数集包括:队列的报文差、队列深度和队列利用率;
步骤1202,判断队列的报文差是否大于0,若是,则执行步骤1203,否则,执行步骤1205;
步骤1203,判断队列的深度是否增加,若是,则执行步骤1204,否则,执行步骤1207;
步骤1204,初始化升速时长、升速数据量和升速步长等参数,计算降速比例、降速周期和降速因子等参数对应的第一目标值,以实现源设备121降速;
步骤1205,判断队列的利用率是否大于0,若是,则执行步骤1206,否则,执行步骤1208;
步骤1206,初始化降速比例、降速周期和降速因子等参数,计算升速时长、升速数据量和升速步长等参数对应的第二目标值,以实现源设备121升速;
步骤1207,初始化升速时长、升速数据量和升速步长等参数,维持降速比例、降速周期和降速因子等参数为当前值不变;
步骤1208,初始化降速比例、降速周期和降速因子等参数和升速时长、升速数据量和升速步长等参数为默认值。
可见,通过本申请实施例提供的方法,可以在转发设备的队列发生拥塞时,可以结合当前队列的实际情况动态修改ECN信息以及网卡参数,使源设备能够合理和准确的降速,从而可以高效的缓解拥塞;并且,还可以在转发设备的队列的拥塞解除时,结合当前队列的实际情况动态修改ECN信息以及网卡参数,使源设备能够合理和准确的升速,从而可以提高转发设备传输流量的效率,从而能够满足流量对应不同业务的业务性能需求。
相应的,本申请实施例还提供了一种用于优化网络拥塞的装置1300,如图13所示,该装置1300应用于转发设备,包括:第一获取单元1301和第二获取单元1302。
其中,第一获取单元1301用于获取第一参数集,第一参数集用于表征转发设备的队列的状态;第二获取单元1302用于当第一参数集满足第一条件集时,基于第一参数集获得显式拥塞通知ECN信息。
作为一个示例,当第一参数集包括队列的报文差时,第一条件集包括队列的报文差大于零,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识;当第一参数集包括队列的深度时,第一条件集包括队列的深度增加和队列的深度大于深度阈值中的至少一个,队列的深度为队列中缓存的报文的长度;当第一参数集包括队列的利用率时,第一条件集包括队列的利用率大于第一利用率阈值,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值;当第一参数集包括队列的报文差和队列的深度时,第一条件集包括队列的报文差大于或等于零和队列的深度大于深度阈值,或者第一条件集包括队列的报文差大于或等于零和队列的深度增加;当第一参数集包括队列的报文差、队列的深度和队列的利用率时,第一条件集包括队列的深度增加,队列的利用率大于第一利用率阈值,且队列的报文差大于零,或者第一条件集包括队列的深度大于深度阈值,队列的利用率大于第一利用率阈值,且队列的报文差大于零。
该示例中,一种情况下,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,第二获取单元1302,具体用于:基于第一ECN阈值和BDP,获得第二ECN阈值,第二ECN阈值为ECN信息,第二ECN阈值小于第一ECN阈值。另一种情况下,若第一参数集还包括第一ECN概率,第二获取单元1302,具体用于:基于第一ECN概率和预设的ECN的概率,获得第二ECN概率,第二ECN概率为ECN信息,第二ECN概率大于第一ECN概率。再一种情况下,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,第二获取单元1302,包括:第一获取子单元、第二获取子单元和第三获取子单元,其中,第一获取子单元用于基于第三ECN阈值和BDP,获得第五ECN阈值,第五ECN阈值小于第三ECN阈值;第二获取子单元用于基于第四ECN阈值和BDP,获得第六ECN阈值,第六ECN阈值小于第四ECN阈值;第三获取子单元用于基于第三ECN概率和预设的ECN概率,获得第四ECN概率,第四ECN概率大于第三ECN概率,该ECN信息包括第五ECN阈值、第六ECN阈值和第四ECN概率。
作为另一个示例,第一参数集包括队列的报文差和队列的利用率,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值,第一条件集为队列的报文差大于零且队列的利用率小于或等于第二利用率阈值。
该示例中,一种情况下,若第一参数集还包括第一ECN阈值和带宽延迟积BDP,所第二获取单元1302,具体用于:基于第一ECN阈值和BDP,获得第七ECN阈值,第七ECN阈值为ECN信息,第七ECN阈值大于第一ECN阈值。另一种情况下,若第一参数集还包括第一ECN概率,第二获取单元1302,具体用于:转发设备基于第一ECN概率和预设的ECN概率,获得第五ECN概率,第五ECN概率为ECN信息,第五ECN概率小于第一ECN概率。再一种情况下,若第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,第二获取单元1302,包括:第四获取子单元、第五获取子单元和第六获取子单元,其中,第四获取子单元,用于基于第三ECN阈值和BDP,获得第八ECN阈值,第八ECN阈值大于第三ECN阈值;第五获取子单元,用于基于第四ECN阈值和BDP,获得第九ECN阈值,第九ECN阈值大于第四ECN阈值;第六获取子单元,用于基于第三ECN概率和预设的ECN概率,获得第六ECN概率,第六ECN概率小于第三ECN概率,该ECN信息包括第八ECN阈值、第九ECN阈值和第六ECN概率。
在另一种可能的实现方式中,该装置1300还可以包括:第三获取单元和发送单元。其中,第三获取单元用于当第一参数集满足第二条件集时,基于第一参数集,获得第二参数集,第二参数集包括待调整的源设备的用于转发的配置参数;发送单元用于将第二参数集发送给源设备。
该实现方式中,作为一个示例,当第一参数集包括队列的报文差,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,则,第二条件集包括队列的报文差大于零。该示例中,第二参数集包括第二降速比例、第二降速周期和第二降速因子中的至少一个;当第二参数集包括第二降速比例,第一参数集还包括第一降速比例,第二降速比例大于第一降速比例;当第二参数集包括第二降速周期,第一参数集还包括第一降速周期,第二降速周期小于第一降速周期;当第二参数集包括第二降速因子,第一参数集还包括第一降速因子,第二降速因子大于第一降速因子。
作为另一个示例,当第一参数集包括队列的报文差,队列的报文差为在第一时刻获取的经队列转发的报文数量和在第二时刻获取的经队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,则,第二条件集包括队列的报文差等于零。该示例中,第二参数集包括第二升速时长、第二升速数据量和第二升速步长中的至少一个;当第二参数集包括第二升速时长,第一参数集还包括第一升速时长,第二升速时长小于第一升速时长;当第二参数集包括第二升速数据量,第一参数集还包括第一升速数据量,第二升速数据量小于第一升速数据量;当第二参数集包括第二升速步长,第一参数集还包括第一升速步长,第二升速步长大于第一升速步长。此外,该示例中,若第一参数集还包括队列的利用率,则,第二条件集具体可以为队列的报文差等于零且队列的利用率大于零,队列的利用率为预设时长内经队列发送的流量与预设时长内根据队列的端口带宽获得的数据量间的比值。
可以理解的是,一种情况下,该发送单元,具体用于:向源设备发送链路层发现协议LLDP消息,链路层发现协议LLDP消息中的类型长度值TLV字段用来携带第二参数集。另一种情况下,发送单元,包括:连接建立子单元和发送子单元,其中,连接建立子单元,用于和源设备建立传输控制协议TCP连接;发送子单元,用于通过TCP连接,向源设备发送第二参数集。
需要说明的是,本申请实施例提供的该装置1300,对应于图5和图6所示的实施例提供的方法,故该装置1300的各种可能的实现方式以及达到的技术效果,可以参照前述图5和图6所示实施例提供的方法的介绍。
此外,本申请实施例还提供了一种用于优化网络拥塞的装置1400,如图14所示,该装置1400应用于源设备,该装置1400例如可以包括:第一接收单元1401、第二接收单元1402和第一调速单元1403。
其中,第一接收单元1401用于接收指示消息,其中,指示消息为目的设备发送给源设备的,且该指示消息用于指示存在拥塞;第二接收单元1402用于接收转发设备发送的第二参数集,其中,该第二参数集包括源设备的用于转发的配置参数,该第二参数集为转发设备基于第一参数集计算得到的,第一参数集用于表征转发设备内队列的状态;第一调速单元1403用于基于所述指示消息和第二参数集进行调速。
可以理解的是,该指示消息具体为确认消息ACK或拥塞通知报文CNP。
在一些可能的实现方式中,第一参数集包括下述信息中的至少一个:第一降速比例、第一降速周期和第一降速因子。此时,一种情况下,当第一参数集包括第一降速比例时,第二参数集包括第二降速比例;另一种情况下,当第一参数集包括第一降速周期时,第二参数集包括第二降速周期;再一种情况下,当第一参数集包括第一降速因子时,第二参数集包括第二降速因子。
在另一些可能的实现方式中,该装置1400还可以包括:第三接收单元和第二调速单元,其中,第三接收单元用于在源设备基于指示消息,用第二参数集包括的参数的第二值更新源设备上用于转发的配置参数之后,接收转发设备发送的待修改的第三参数集,其中,第三参数集为转发设备基于第四参数集计算获得的数值,第四参数集用于表征转发设备的队列的状态;第二调速单元用于用第三参数集更新源设备上用于转发的配置参数,实现升速。
作为一个示例,第四状态参数集包括下述信息中的至少一个:第四升速时长、第四升速数据量和第四升速步长;一种情况下,当第四参数集包括第四升速时长时,第三参数集包括第三升速时长;另一种情况下,当第四参数集包括第四升速数据量时,第三参数集包括第三升速数据量;再一种情况下,当第四参数集包括第四升速步长时,第三参数集包括第三升速步长。
在又一些具体的实现方式中,一种情况下,第二接收单元1402,具体用于:接收转发设备发送的链路层发现协议LLDP消息,LLDP消息中的类型长度值TLV字段用来携带第二参数集。另一种情况下,当源设备和转发设备之间不支持LLDP通信时,本申请实施例中的第二接收单元1402,包括:连接建立子单元和接收子单元,其中,连接建立子单元,用于和转发设备建立传输控制协议TCP连接;接收子单元,用于通过TCP连接,接收转发设备发送的第二参数集。
需要说明的是,该装置1400,对应于图8和图9所示实施例提供的方法,故该装置1400的各种可能的实现方式以及达到的技术效果,可以参照前述图8和图9所示实施例提供的方法的介绍。
此外,本申请实施例还提供了一种转发设备1500,参见图15所示,该转发设备1500包括存储器1501、处理器1502和通信接口(图15中未示出)。其中,通信接口用于收发报文;存储器1501用于存储程序代码;处理器1502,用于运行程序代码中的指令,使得转发设备1500执行以上图5、图6、图10~图12所示实施例中转发设备执行的、任一种实现方式下的用于优化网络拥塞的方法。
此外,本申请实施例还提供了一种源设备1600,参见图16所示,该源设备1600包括存储器1601和处理器1602和通信接口(图16中未示出)。其中,通信接口用于收发报文;存储器1601用于存储程序代码;处理器1602,用于运行程序代码中的指令,使得源设备1600执行以上图8、图9、图10~图12所示实施例中源设备执行的、任一种实现方式下的用于优化网络拥塞的方法。
上述存储器1501和存储器1601可以是随机存取存储器(random-access memory,RAM)、闪存(flash)、只读存储器(read only memory,ROM)、可擦写可编程只读存储器(erasable programmable read only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read only memory,EEPROM)、寄存器(register)、硬盘、移动硬盘、CD-ROM或者本领域技术人员知晓的任何其他形式的存储介质。
上述处理器1502、和处理器1602例如可以是中央处理器(central processingunit,CPU)、通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
上述转发设备1500和源设备1600中的通信接口可以是接口卡等,可以为以太(ethernet)接口或异步传输模式(asynchronous transfer mode,ATM)接口。
另外,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行以上图5、图6、图8~图12所示实施例中的任一种实现方式下的用于优化网络拥塞的方法。
另外,本申请实施例还提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行前述图5、图6、图8~图12所示实施例中的任一种实现方式下的用于优化网络拥塞的方法。
本申请实施例中,涉及到的ECN、DCTCP、DCQCN和链路层发现协议(英文:LinkLayer Discovery Protocol,简称:LLDP)等的相关描述以及对应的说明,可以分别参见对应的协议:国际互联网工程任务组(英文:Internet Engineering Task Force,简称:IETF)请求评论(英文:Request For Comments,简称:RFC)3168(即,The Addition of ExplicitCongestion Notification(ECN)to IP)、IETF RFC 8257(即,Data Center TCP(DCTCP):TCP Congestion Control for Data Centers)、电气和电子工程师协会(英文:Instituteof Electrical and Electronics Engineers,简称:IEEE)标准Std.802.1Qau(即,Congestion Notification)和IETF RFC 4957(即,Link-Layer Event Notifications forDetecting Network Attachments)。
本申请实施例中提到的“第一ECN阈值”、“第一ECN概率”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。
Claims (34)
1.一种用于优化网络拥塞的方法,其特征在于,包括:
转发设备获取第一参数集,所述第一参数集用于表征所述转发设备的队列的状态;
当所述第一参数集满足第一条件集时,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息。
2.根据权利要求1所述的方法,其特征在于,
当所述第一参数集包括队列的报文差时,所述第一条件集包括所述队列的报文差大于零,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识;
当所述第一参数集包括队列的深度时,所述第一条件集包括所述队列的深度增加和所述队列的深度大于深度阈值中的至少一个,所述队列的深度为所述队列中缓存的报文的长度;
当所述第一参数集包括队列的利用率时,所述第一条件集包括所述队列的利用率大于第一利用率阈值,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值;
当所述第一参数集包括所述队列的报文差和所述队列的深度时,所述第一条件集包括所述队列的报文差大于或等于零和所述队列的深度大于深度阈值,或者所述第一条件集包括所述队列的报文差大于或等于零和所述队列的深度增加;
当所述第一参数集包括所述队列的报文差、所述队列的深度和所述队列的利用率时,所述第一条件集包括所述队列的深度增加,所述队列的利用率大于第一利用率阈值,且所述队列的报文差大于零,或者所述第一条件集包括所述队列的深度大于所述深度阈值,所述队列的利用率大于所述第一利用率阈值,且所述队列的报文差大于零。
3.根据权利要求2所述的方法,其特征在于,所述第一参数集还包括第一ECN阈值和带宽延迟积BDP,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第一ECN阈值和所述BDP,获得第二ECN阈值,所述第二ECN阈值为所述ECN信息,所述第二ECN阈值小于所述第一ECN阈值。
4.根据权利要求2所述的方法,其特征在于,所述第一参数集还包括第一ECN概率,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第一ECN概率和预设的ECN的概率,获得第二ECN概率,所述第二ECN概率为所述ECN信息,所述第二ECN概率大于所述第一ECN概率。
5.根据权利要求2所述的方法,其特征在于,所述第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第三ECN阈值和所述BDP,获得第五ECN阈值,所述第五ECN阈值小于所述第三ECN阈值;
所述转发设备基于所述第四ECN阈值和所述BDP,获得第六ECN阈值,所述第六ECN阈值小于所述第四ECN阈值;
所述转发设备基于所述第三ECN概率和预设的ECN概率,获得第四ECN概率,所述第四ECN概率大于所述第三ECN概率,所述ECN信息包括所述第五ECN阈值、所述第六ECN阈值和所述第四ECN概率。
6.根据权利要求1所述的方法,其特征在于,所述第一参数集包括队列的报文差和队列的利用率,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值,所述第一条件集为所述队列的报文差大于零且所述队列的利用率小于或等于第二利用率阈值。
7.根据权利要求6所述的方法,其特征在于,所述第一参数集还包括第一ECN阈值和带宽延迟积BDP,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第一ECN阈值和所述BDP,获得第七ECN阈值,所述第七ECN阈值为所述ECN信息,所述第七ECN阈值大于所述第一ECN阈值。
8.根据权利要求6所述的方法,其特征在于,所述第一参数集还包括第一ECN概率,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第一ECN概率和预设的ECN概率,获得第五ECN概率,所述第五ECN概率为所述ECN信息,所述第五ECN概率小于所述第一ECN概率。
9.根据权利要求6所述的方法,其特征在于,所述第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,所述转发设备基于所述第一参数集获得显式拥塞通知ECN信息包括:
所述转发设备基于所述第三ECN阈值和所述BDP,获得第八ECN阈值,所述第八ECN阈值大于所述第三ECN阈值;
所述转发设备基于所述第四ECN阈值和所述BDP,获得第九ECN阈值,所述第九ECN阈值大于所述第四ECN阈值;
所述转发设备基于所述第三ECN概率和预设的ECN概率,获得第六ECN概率,所述第六ECN概率小于所述第三ECN概率,所述ECN信息包括所述第八ECN阈值、所述第九ECN阈值和所述第六ECN概率。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一参数集满足第二条件集时,所述转发设备基于所述第一参数集,获得第二参数集,所述第二参数集包括待调整的源设备的用于转发的配置参数;
所述转发设备将所述第二参数集发送给所述源设备。
11.根据权利要求10所述的方法,所述第一参数集包括队列的报文差,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括所述ECN标识,所述第二条件集包括所述队列的报文差大于零。
12.根据权利要求11所述的方法,其特征在于,所述第二参数集包括第二降速比例、第二降速周期和第二降速因子中的至少一个;
当所述第二参数集包括第二降速比例,所述第一参数集还包括第一降速比例,所述第二降速比例大于所述第一降速比例;
当所述第二参数集包括第二降速周期,所述第一参数集还包括第一降速周期,所述第二降速周期小于所述第一降速周期;
当所述第二参数集包括第二降速因子,所述第一参数集还包括第一降速因子,所述第二降速因子大于所述第一降速因子。
13.根据权利要求10所述的方法,所述第一参数集包括队列的报文差,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括所述ECN标识,所述第二条件集包括所述队列的报文差等于零。
14.根据权利要求13所述的方法,其特征在于,所述第二参数集包括第二升速时长、第二升速数据量和第二升速步长中的至少一个;
当所述第二参数集包括第二升速时长,所述第一参数集还包括第一升速时长,所述第二升速时长小于所述第一升速时长;
当所述第二参数集包括第二升速数据量,所述第一参数集还包括第一升速数据量,所述第二升速数据量小于所述第一升速数据量;
当所述第二参数集包括第二升速步长,所述第一参数集还包括第一升速步长,所述第二升速步长大于所述第一升速步长。
15.根据权利要求11~14任意一项所述的方法,其特征在于,所述第一参数集还包括队列的利用率,所述第二条件集为所述队列的报文差等于零且所述队列的利用率大于零,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值。
16.根据权利要求10~15任意一项所述的方法,其特征在于,所述转发设备将所述第二参数集发送给所述源设备包括:
所述转发设备向所述源设备发送链路层发现协议LLDP消息,所述链路层发现协议LLDP消息中的类型长度值TLV字段用来携带所述第二参数集。
17.根据权利要求10~15任意一项所述的方法,其特征在于,所述转发设备将所述第二参数集发送给所述源设备,包括:
所述转发设备和所述源设备建立传输控制协议TCP连接;
所述转发设备通过所述TCP连接,向所述源设备发送所述第二参数集。
18.一种用于优化网络拥塞的装置,其特征在于,应用于转发设备,包括:
第一获取单元,用于获取第一参数集,所述第一参数集用于表征所述转发设备的队列的状态;
第二获取单元,用于当所述第一参数集满足第一条件集时,基于所述第一参数集获得显式拥塞通知ECN信息。
19.根据权利要求18所述的装置,其特征在于,
当所述第一参数集包括队列的报文差时,所述第一条件集包括所述队列的报文差大于零,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识;
当所述第一参数集包括队列的深度时,所述第一条件集包括所述队列的深度增加和所述队列的深度大于深度阈值中的至少一个,所述队列的深度为所述队列中缓存的报文的长度;
当所述第一参数集包括队列的利用率时,所述第一条件集包括所述队列的利用率大于第一利用率阈值,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值;
当所述第一参数集包括所述队列的报文差和所述队列的深度时,所述第一条件集包括所述队列的报文差大于或等于零和所述队列的深度大于深度阈值,或者所述第一条件集包括所述队列的报文差大于或等于零和所述队列的深度增加;
当所述第一参数集包括所述队列的报文差、所述队列的深度和所述队列的利用率时,所述第一条件集包括所述队列的深度增加,所述队列的利用率大于第一利用率阈值,且所述队列的报文差大于零,或者所述第一条件集包括所述队列的深度大于所述深度阈值,所述队列的利用率大于所述第一利用率阈值,且所述队列的报文差大于零。
20.根据权利要求19所述的装置,其特征在于,所述第一参数集还包括第一ECN阈值和带宽延迟积BDP,所述第二获取单元,具体用于:
基于所述第一ECN阈值和所述BDP,获得第二ECN阈值,所述第二ECN阈值为所述ECN信息,所述第二ECN阈值小于所述第一ECN阈值。
21.根据权利要求19所述的装置,其特征在于,所述第一参数集还包括第一ECN概率,所述第二获取单元,具体用于:
基于所述第一ECN概率和预设的ECN的概率,获得第二ECN概率,所述第二ECN概率为所述ECN信息,所述第二ECN概率大于所述第一ECN概率。
22.根据权利要求19所述的装置,其特征在于,所述第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,所述第二获取单元,包括:
第一获取子单元,用于基于所述第三ECN阈值和所述BDP,获得第五ECN阈值,所述第五ECN阈值小于所述第三ECN阈值;
第二获取子单元,用于基于所述第四ECN阈值和所述BDP,获得第六ECN阈值,所述第六ECN阈值小于所述第四ECN阈值;
第三获取子单元,用于基于所述第三ECN概率和预设的ECN概率,获得第四ECN概率,所述第四ECN概率大于所述第三ECN概率,所述ECN信息包括所述第五ECN阈值、所述第六ECN阈值和所述第四ECN概率。
23.根据权利要求18所述的装置,其特征在于,所述第一参数集包括队列的报文差和队列的利用率,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值,所述第一条件集为所述队列的报文差大于零且所述队列的利用率小于或等于第二利用率阈值。
24.根据权利要求23所述的装置,其特征在于,所述第一参数集还包括第一ECN阈值和带宽延迟积BDP,所所述第二获取单元,具体用于:
基于所述第一ECN阈值和所述BDP,获得第七ECN阈值,所述第七ECN阈值为所述ECN信息,所述第七ECN阈值大于所述第一ECN阈值。
25.根据权利要求23所述的装置,其特征在于,所述第一参数集还包括第一ECN概率,所述第二获取单元,具体用于:
所述转发设备基于所述第一ECN概率和预设的ECN概率,获得第五ECN概率,所述第五ECN概率为所述ECN信息,所述第五ECN概率小于所述第一ECN概率。
26.根据权利要求23所述的装置,其特征在于,所述第一参数集还包括第三ECN阈值、第四ECN阈值、第三ECN概率和带宽延迟积BDP,所述第二获取单元,包括:
第四获取子单元,用于基于所述第三ECN阈值和所述BDP,获得第八ECN阈值,所述第八ECN阈值大于所述第三ECN阈值;
第五获取子单元,用于基于所述第四ECN阈值和所述BDP,获得第九ECN阈值,所述第九ECN阈值大于所述第四ECN阈值;
第六获取子单元,用于基于所述第三ECN概率和预设的ECN概率,获得第六ECN概率,所述第六ECN概率小于所述第三ECN概率,所述ECN信息包括所述第八ECN阈值、所述第九ECN阈值和所述第六ECN概率。
27.根据权利要求18所述的装置,其特征在于,所述装置还包括:
第三获取单元,用于当所述第一参数集满足第二条件集时,基于所述第一参数集,获得第二参数集,所述第二参数集包括待调整的源设备的用于转发的配置参数;
发送单元,用于将所述第二参数集发送给所述源设备。
28.根据权利要求27所述的装置,所述第一参数集包括队列的报文差,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括ECN标识,所述第二条件集包括所述队列的报文差大于零。
29.根据权利要求28所述的装置,其特征在于,所述第二参数集包括第二降速比例、第二降速周期和第二降速因子中的至少一个;
当所述第二参数集包括第二降速比例,所述第一参数集还包括第一降速比例,所述第二降速比例大于所述第一降速比例;
当所述第二参数集包括第二降速周期,所述第一参数集还包括第一降速周期,所述第二降速周期小于所述第一降速周期;
当所述第二参数集包括第二降速因子,所述第一参数集还包括第一降速因子,所述第二降速因子大于所述第一降速因子。
30.根据权利要求27所述的装置,所述第一参数集包括队列的报文差,所述队列的报文差为在第一时刻获取的经所述队列转发的报文数量和在第二时刻获取的经所述队列转发的报文数量的差值,所述经所述队列转发的报文包括所述ECN标识,所述第二条件集包括所述队列的报文差等于零。
31.根据权利要求30所述的装置,其特征在于,所述第二参数集包括第二升速时长、第二升速数据量和第二升速步长中的至少一个;
当所述第二参数集包括第二升速时长,所述第一参数集还包括第一升速时长,所述第二升速时长小于所述第一升速时长;
当所述第二参数集包括第二升速数据量,所述第一参数集还包括第一升速数据量,所述第二升速数据量小于所述第一升速数据量;
当所述第二参数集包括第二升速步长,所述第一参数集还包括第一升速步长,所述第二升速步长大于所述第一升速步长。
32.根据权利要求28~31任意一项所述的装置,其特征在于,所述第一参数集还包括队列的利用率,所述第二条件集为所述队列的报文差等于零且所述队列的利用率大于零,所述队列的利用率为预设时长内经所述队列发送的流量与所述预设时长内根据所述队列的端口带宽获得的数据量间的比值。
33.根据权利要求27~32任意一项所述的装置,其特征在于,所述发送单元,具体用于:
向所述源设备发送链路层发现协议LLDP消息,所述链路层发现协议LLDP消息中的类型长度值TLV字段用来携带所述第二参数集。
34.根据权利要求27~32任意一项所述的装置,其特征在于,所述发送单元,包括:
连接建立子单元,用于和所述源设备建立传输控制协议TCP连接;
发送子单元,用于通过所述TCP连接,向所述源设备发送所述第二参数集。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910878015.0A CN112532535B (zh) | 2019-09-17 | 2019-09-17 | 一种用于优化网络拥塞的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910878015.0A CN112532535B (zh) | 2019-09-17 | 2019-09-17 | 一种用于优化网络拥塞的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532535A true CN112532535A (zh) | 2021-03-19 |
CN112532535B CN112532535B (zh) | 2022-10-04 |
Family
ID=74974793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910878015.0A Active CN112532535B (zh) | 2019-09-17 | 2019-09-17 | 一种用于优化网络拥塞的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532535B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110075563A1 (en) * | 2009-09-30 | 2011-03-31 | Qualcomm Incorporated | Methods and apparatus for enabling rate adaptation across network configurations |
US20120147750A1 (en) * | 2009-08-25 | 2012-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Using the ECN Mechanism to Signal Congestion Directly to the Base Station |
CN103051555A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 |
CN103297346A (zh) * | 2013-06-12 | 2013-09-11 | 北京航空航天大学 | 一种基于ecn机制的tcp友好速率控制方法 |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN110061927A (zh) * | 2019-04-26 | 2019-07-26 | 东南大学 | 一种多队列数据中心环境中面向微突发流的拥塞感知与标记方法 |
-
2019
- 2019-09-17 CN CN201910878015.0A patent/CN112532535B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120147750A1 (en) * | 2009-08-25 | 2012-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Using the ECN Mechanism to Signal Congestion Directly to the Base Station |
US20110075563A1 (en) * | 2009-09-30 | 2011-03-31 | Qualcomm Incorporated | Methods and apparatus for enabling rate adaptation across network configurations |
CN103051555A (zh) * | 2013-01-05 | 2013-04-17 | 北京航空航天大学 | 基于网络有效带宽和ecn机制的tcp拥塞控制方法 |
CN103297346A (zh) * | 2013-06-12 | 2013-09-11 | 北京航空航天大学 | 一种基于ecn机制的tcp友好速率控制方法 |
CN106027412A (zh) * | 2016-05-30 | 2016-10-12 | 南京理工大学 | 一种基于拥塞队列长度的tcp拥塞控制方法 |
CN109391560A (zh) * | 2017-08-11 | 2019-02-26 | 华为技术有限公司 | 网络拥塞的通告方法、代理节点及计算机设备 |
CN110061927A (zh) * | 2019-04-26 | 2019-07-26 | 东南大学 | 一种多队列数据中心环境中面向微突发流的拥塞感知与标记方法 |
Non-Patent Citations (1)
Title |
---|
李磊等: ""一种分阶段自适应RED/ECN参数模型"", 《计算机研究与发展》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112532535B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7724750B2 (en) | Expedited data transmission in packet based network | |
US20180278664A1 (en) | Rate control | |
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
CN109309934B (zh) | 一种拥塞控制方法及相关设备 | |
EP3166267A1 (en) | Method and apparatus for diverting flow | |
WO2020042624A1 (zh) | 传输速率控制方法、装置、发送设备和接收设备 | |
Lu et al. | SDN-based TCP congestion control in data center networks | |
US8416684B2 (en) | Time and data rate policing | |
CN107592284B (zh) | 防DoS/DDoS攻击的装置和方法 | |
CN1572093A (zh) | 通过及时响应于正被建立的连接而传送或丢弃缓冲的输入数据来为休眠移动终端管理输入数据 | |
US11258717B2 (en) | Method for sending service packet, network device, and system | |
WO2011100914A2 (zh) | 长期演进基站及其处理数据业务的方法 | |
CN110856214B (zh) | 一种tcp拥塞控制方法及装置 | |
CN106936730B (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
EP4329261A1 (en) | Data processing method and related device | |
CN115460156A (zh) | 一种数据中心无损网络拥塞控制方法、装置、设备及介质 | |
EP1730903B1 (en) | Expedited data transmission in packet based network | |
WO2014168524A1 (en) | Controlling establishment of multiple tcp connections | |
CN113595920B (zh) | 网络拥塞控制方法及设备 | |
WO2014067322A1 (zh) | 消息发送方法及装置 | |
CN112532535B (zh) | 一种用于优化网络拥塞的方法和装置 | |
US9882820B2 (en) | Communication apparatus | |
KR20050022398A (ko) | 이동 통신 단말기의 패킷 데이터 수신 방법 | |
Lu et al. | EQF: An explicit queue-length feedback for TCP congestion control in datacenter networks | |
Abdel-jaber et al. | Modelling BLUE Active Queue Management using Discrete-time Queue. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |