CN110391992B - 基于交换机主动队列管理的拥塞控制方法和装置 - Google Patents

基于交换机主动队列管理的拥塞控制方法和装置 Download PDF

Info

Publication number
CN110391992B
CN110391992B CN201910625794.3A CN201910625794A CN110391992B CN 110391992 B CN110391992 B CN 110391992B CN 201910625794 A CN201910625794 A CN 201910625794A CN 110391992 B CN110391992 B CN 110391992B
Authority
CN
China
Prior art keywords
packet
queue
reverse
current
head
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910625794.3A
Other languages
English (en)
Other versions
CN110391992A (zh
Inventor
徐恪
杜鑫乐
李彤
郑凯
吴波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Huawei Technologies Co Ltd
Original Assignee
Tsinghua University
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University, Huawei Technologies Co Ltd filed Critical Tsinghua University
Priority to CN201910625794.3A priority Critical patent/CN110391992B/zh
Publication of CN110391992A publication Critical patent/CN110391992A/zh
Application granted granted Critical
Publication of CN110391992B publication Critical patent/CN110391992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/12Congestion avoidance or recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/24Flow control or congestion control depending on the type of traffic, e.g. priority or quality of service [QoS]
    • H04L47/2441Flow classification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Queuing arrangements

Abstract

本申请提出一种基于交换机主动队列管理的拥塞控制方法和装置,应用于中间节点网络设备,中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功能,其中,方法包括:确定接收的包的入端口、出端口和包类型;根据预设的队列阈值和预设的队列容量,确定包到达时当前正向队列长度所在的阈值区间;根据阈值区间和包的包类型,通过包的入端口、出端口对包进行入包和出包操作。该方法能够依据网络拥塞的不同程度进行不同的操作,从而保证数据包传输速率的直接调节和拥塞信息尽可能到达端节点,进而提高了网络吞吐量,提升了网络的传输性能。

Description

基于交换机主动队列管理的拥塞控制方法和装置
技术领域
本申请涉及计算机通讯技术领域,尤其涉及一种基于交换机主动队列管理的拥塞控制方法和装置。
背景技术
拥塞控制一直是保障网络服务质量的重要的一个方向。随着互联网络的发展,远程直接内存访问(Remote Direct Memory Access,RDMA)技术、光纤、高速以太网等技术的发展,导致网络信息传输过程中,对于数据报文的处理和转发成为主要的传播瓶颈。而拥塞问题极大的限制了高速网络的性能。
目前,传统的主动队列管理(Active Queue Management,AQM)如随机早期侦测(Random Early Detection,RED),主要是根据网络的拥塞状态随机的丢包或进行ECN(Explicit Congestion Notification)标记,让发送端感知到拥塞后,发送端调节发送速度,进而缓解网络拥塞。
然而,高速网络使得端节点发送窗口小,网络流量模式变化迅速,一旦丢包容易引起连续丢包,进而导致超时重传,极大的降低吞吐,影响网络传输性能,因而丢包作为拥塞的信号被高速网络放弃;使用了ECN作为拥塞的通知信号的数据中心中的传输协议(DataCenter TCP,简称DCTCP)在流量模式变化剧烈的情况下,ECN机制无法进一步控制丢包,只能将数据包丢弃,导致拥塞信息无法传送到端节点,传输效率下降。
发明内容
本申请提出一种基于交换机主动队列管理的拥塞控制方法和装置,用于解决相关技术中的拥塞控制方法存在拥塞信息无法传送到端节点,导致拥塞信息传输效率低的问题。
本申请一方面实施例提出了一种基于交换机主动队列管理的拥塞控制方法,应用于中间节点网络设备,所述中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功,所述方法包括:
确定接收的包的入端口、出端口和包类型;
根据预设的队列阈值和预设的队列容量,确定所述包到达时当前正向队列长度所在的阈值区间;
根据所述阈值区间和所述包的包类型,通过包的入端口、出端口对所述包进行入包和出包操作。
本申请实施例的基于交换机主动队列管理的拥塞控制方法,通过首先确定接收的包的入端口、出端口和包类型,然后根据预设的队列阈值和预设的队列容量,确定包到达时当前正向队列长度所在的阈值区间,再根据阈值区间和包的包类型,通过包的入端口、出端口对包进行入包和出包操作,使网络传输过程中的中间节点网络设备,能够依据网络拥塞的不同程度进行不同的操作,从而保证数据包传输速率的直接调节和拥塞信息尽可能到达端节点,进而提高了网络吞吐量,提升了网络的传输性能。
作为本申请一方面实施例一种可能的实现方式,所述队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr
其中,Tas≤Tcb≤Tae≤Tcr
作为本申请一方面实施例一种可能的实现方式,所述根据所述阈值区间和所述包的包类型,对所述包进行入包和出包操作,包括:
若所述包为正向的数据包,则入包操作包括:
当当前正向队列的长度小于或等于Tcb时,通过所述正向的入端口正常入包;当当前正向队列的长度大于Tcb小于Tcr时,切割所述数据包的头部,并将所述头部放在反向队列中;当当前正向队列的长度大于Tcr时,切割所述正向的数据包的头部,并将该头部包放在正向队列中;
若所述包为正向的数据包,则出包操作为当当前正向队列不为空时,通过正向的出端口进行转发;
若所述包为反向的确认包,则入包操作为当反向的入端口有确认包时,通过反向的入端口进行入包;
若所述包为反向的确认包,则出包操作包括:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;当当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的所述主动缓冲队列主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包的速率比值;或者,当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
作为本申请一方面实施例一种可能的实现方式,所述当当前正向队列的长度大于Tcr时,切割所述正向的数据包的头部,并将所述头部放在正向队列中,包括:
在切割后的正向的数据包的头部打上显性拥塞通知标记,并将带有显性拥塞通知标记的头部放在正向队列中,等待发送给接收端,以使接收端随机等待一个时延后将带有显性拥塞通知标记的头部发送给发送端。
本申请另一方面实施例提出了一种基于交换机主动队列管理的拥塞控制装置,应用于中间节点网络设备,所述中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功,所述装置包括:
第一确定模块,用于确定接收的包的入端口、出端口和包类型;
第二确定模块,用于据预设的队列阈值和预设的队列容量,确定所述包到达当前正向队列长度所在的阈值区间;
动作模块,用于根据所述阈值区间和所述包的包类型,通过所述包的入端口、出端口对所述包进行入包和出包操作。
本申请实施例的基于交换机主动队列管理的拥塞控制装置,通过确定接收的包的入端口、出端口和包类型,根据预设的队列阈值和预设的队列容量,确定包到达时当前正向队列长度所在的阈值区间,根据阈值区间和包的包类型,通过包的入端口、出端口对包进行入包和出包操作,使网络传输过程中的中间节点网络设备,能够依据网络拥塞的不同程度进行不同的操作,从而保证数据包传输速率的直接调节和拥塞信息尽可能到达端节点,进而提高了网络吞吐量,提升了网络的传输性能。
作为本申请另一方面实施例一种可能的实现方式,所述队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr,其中,Tas≤Tcb≤Tae≤Tcr且Tcr小于所述预设的队列容量。
作为本申请另一方面实施例一种可能的实现方式,所述动作模块,具体用于
若所述包为正向的数据包,则入包操作包括:
当当前正向队列的长度小于Tcb时,通过所述正向的入端口正常入包;当当前正向队列的长度大于Tcb小于Tcr时,切割所述数据包的头部,并将所述头部放在反向队列中;当当前正向队列的长度大于Tcr小于所述预设的队列容量时,切割所述正向的数据包的头部,并将所述正向的数据包的头部包放在正向队列中;
若所述包为正向的数据包,则出包操作为当当前正向队列不为空时,通过正向的出端口进行转发;
若所述包为反向的确认包,则入包操作为当反向的入端口有确认包时,通过反向的入端口进行入包;
若所述包为反向的确认包,则出包操作包括:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;当当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的所述主动缓冲队列主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包速率比值;或者,当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
作为本申请另一方面实施例一种可能的实现方式,所述动作模块,还用于:
在切割后的正向的数据包的头部打上显性拥塞通知标记,并将带有显性拥塞通知标记的头部放在正向队列中,等待发送给接收端,以使接收端随机等待一个时延后将带有显性拥塞通知标记的头部发送给发送端。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例提供的一种基于交换机主动队列管理的拥塞控制方法的流程示意图;
图2为本申请实施例提供的一种主动缓冲结构示意图;
图3为本申请实施例提供的一种主动队列的拥塞控制流程图;
图4为本申请实施例提供的一种基于交换机主动队列管理的拥塞控制装置的结构示意图;
图5为本申请实施例提供的一种交换机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的基于交换机主动队列管理的拥塞控制方法和装置。
网络设备开始大规模的升级。目前最高端的直通交换机的延迟低至几百纳秒。低延迟的网卡设备也越来越普遍。因为这些进步,高速网络,如数据中心等大型网络,可以在无拥塞的情况下实现若干微秒的单向时延。
同时,由于高速网络的稳定性,所以目前的网络环境和传统的TCP设计的目标有所冲突,因而导致传统的TCP不能在高速网络中发挥更好的性能。
目前越来越多的协议试图在交换机上部署更多的机制,试图让从网络的黑盒中获得更多的信息来做优化。比如从交换机中获得更多的当前网络的拥塞程度,以调节发送速率,减轻拥塞。
然而,高速网络会使网络状态的变化十分突然,端节点接收到的相关信息拥有一定的滞后性,无法准确的进行反应。这种信息之间的不同步,会导致网络性能的急剧降低。同时,相关信息表达的准确性也会影响网络传输的性能,传统的ECN有1比特的信息量,QCN可以有多比特的信息量,更多的信息很困难从交换机上通知给端节点。
基于此,本申请实施例提供一种基于交换机主动队列管理的拥塞控制方法,应用于中间节点网络设备,中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功通过包到达时的入端口队列和出端口队列的队列长度所在的阈值区间以及包的包类型,对包进行入包和出包操作,以实现能够在网络中间节点设备中对拥塞进行控制,并且可以依据拥塞程度的不同,实施不同的策略,以保证包发送速率的调节和拥塞信息到达端节点。
图1为本申请实施例提供的一种基于交换机主动队列管理的拥塞控制方法的流程示意图。该于交换机主动队列管理的拥塞控制方法应用于网络传输过程中的中间节点网络设备中,比如路由器、交换机等等。
本实施例中,中间节点网络设备的每个端口都具有主动缓冲队列或称为反向队列,用于提供主动缓冲功能。中间节点网络设备的端口接收到的包可能是数据也可能是确认包,当中间节点网络设备的某端口接收到包后,可先判断该包是否为确认包,如果为确认包,则该端口的主动缓冲队列缓冲该确认包,如果为数据包,则不进行缓冲。
如图1所示,该基于交换机主动队列管理的拥塞控制方法包括:
步骤101,确定接收的包的入端口、出端口和包类型。
本实施例中,中间节点网络设备接收包,并确定包的入口端、出口端和包类型。其中,发送端到接收端为正向,相反为反向,包类型可分为发送端发送到接收端的数据包和接收端反馈给发送端的确认包,如确认字符(Acknowledgement,简称ACK)包。可以理解的是,中间节点网络设备接收到的包,可能为某端点发送给另一端点的数据包,也可能为确认包。
在实际应用中,中间节点网络设备的端口可能既接收数据包也接收确认包,为了便于描述,本实施例中,以发送端向接收端发送数据包,接收端向发送端反馈对应的确认包为例,也就是,正向的数据包为发送端向接收端发送的数据包,反向的确认包为接收端向发送端反馈的对应的确认包。
步骤102,根据预设的队列阈值和预设的队列容量,确定数据包到达时当前正向队列长度所在的阈值区间。
本实施例中,预设的队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr,其中,Tas≤Tcb≤Tae≤Tcr且Tcr小于预设的队列容量,预设的队列容量为正向队列长度的最大值,正向队列是指正向出端口队列,是待转发的正向的数据包在出端口形成的队列。
步骤103,根据阈值区间和包的包类型,通过包的入端口、出端口对包进行入包和出包操作。
本实施例中,如果包为正向的数据,则正向的数据包的入包操作,具体为:
当当前队列长度小于Tcb时,通过正向的入端口正常入包;或者,
当当前正向队列的长度大于Tcb小于Tcr时,切割所述数据包的头部,并将头部放在反向队列中,将其发送给接收端,等拥塞缓解后,接收端直接对头部对应的数据包进行重传,其中,反向队列是反向的入端口从接收端接收的确认包形成的队列,即反向的入端口的主动缓冲队列缓冲的确认包形成的对列;或者,
当当前正向队列的长度大于Tcr小于预设的队列容量时,切割正向的数据包的头部,并将该头部包放在正向队列中回传给接收端,接收端缓冲该头部若干时间后,再将头部回传给发送端。
在本申请是一个实施例中,当当前正向队列的长度大于Tcr小于预设的队列容量时,切割正向的数据包的头部,并将切割后的正向的数据包的头部打上ECN标记,并将带有ECN标记的头部放在正向队列中,等待发送给接收端,接收端随机等待一个时延后将带有ECN标记的头部发送给发送端,那么发送端会在拥塞缓解后进行重传。
这里在切割后的正向的数据包的头部打上ECN标记,是为了通知发送端当前网络已经拥塞,需要降低正向数据包的发送速率。
需要说明的是,当当前正向队列的长度为临界值Tcb或者Tcr时,可以根据需要设定对应的入包操作。比如当当前正向队列的长度等于Tcb可以设定正常入包,或者设定切割数据包的头部,并将头部放在反向队列中。
正向的数据包的出包操作为:当当前正向队列的长度不为空时,通过正向的出端口进行转发。
反向的确认包的入包操作为:当反向的入端口有确认包时,通过反向的入端口进行入包。
反向的确认包的出包操作,具体为:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;或者,
当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的主动缓冲队列缓冲反向的确认包,且调节反向的确认包的出包速率和正向入包的速率比值,比如调节的反向的确认包的出包速率和正向的数据包的入包的速率比值从1:1到1:0线性减小;或者,
当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
本实施例中,中间节点网络设备上可部署主动缓冲队列,当当前正向队列长度大于Tas且小于Tae时,通过将反向的确认包缓冲至主动缓冲队列中,调整网络流中反向确认包的步速,来细粒度的调节速率。
图2为本申请实施例提供的一种主动缓冲结构示意图。图2中,发送端通过高速网络向接收端发送数据包,在拥塞发生时,中间节点网络设备通过主动缓冲接收端的确认报文,控制接收报文的回传步速,保证确认包到达的速率小于或等于对确认包的转发速率,那么可以保证整个系统是稳定的,快速收敛的。并且由于数据中心状态的瞬时性,中间节点网络设备可以依据瞬时状态连续做出决策,并且进行调整,维持中间节点网络设备的短的排队以及持续不断的转发,从而保证了吞吐不降低的情况下,缓解了拥塞。
需要说明的是,当当前正向队列的长度为临界值Tas或者Tae时,可以根据需要设定对应的出包操作。比如当当前正向队列的长度等于Tas可以设定正常出包,或者设定开始主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包速率比值。
图3为本申请实施例提供的一种主动队列的拥塞控制流程图。如图3所示,数据发送时,确定接收的包的类型,并确定当前时刻相关队列所在的阈值区间,其中,相关队列为正向队列。
之后根据包位置即正向还是反向,对于正向的数据包,则判断是出包还是入包,如果是出包,则正常出包即可,如果是入包可根据上述实施例中记载的根据当前正向队列与切割缓冲阈值Tcb和切割回传阈值Tcr的大小关系,进行相应的操作,在此不再赘述。其中,图3中的队列长为当前正向队列的长度。
对于反向的确认包,则判断是入包还是出包,若是入包则通过反向的入端口正常入包即可,如果是出包,则根据上述记载的根据当前正向队列与主动缓冲开始阈值Tas和主动缓冲结束阈值Tae的大小关系,进行相应的操作,在此不再赘述。
举例来说,以队列长度的单位为包,假设预设的队列容量即队列最大长度Lmax为100,预设队列阈值Tas=20,Tcb=40,Tae=60,Tcr=80。当前正向队列的长度记为L。
若L<20,有一条数据流从发送端S1,到接收端R1。由于当前网络不是非常拥塞。因此该流可以继续以当前的速度发送。
若40>L>20,有一条数据流从发送端S1,到接收端R1。可以看出,当前网络出现拥塞,为轻度拥塞,正向的流量正常转发。而反向的确认包长度小,反向并不拥堵,通过主动缓冲队列缓冲,使确认包到达该中间节点网络设备的速率大于回传确认包的速率,可以保证网络快速收敛。
若60>L>40,有一条数据流从发送端S1,到接收端R1。当前网络出现中度拥塞,有发生丢包的风险,为了将丢包的影响减小,需要主动缓冲队列缓冲和切割头部配合。所以正向的流量中,以预设概率对正向的数据包进行切割头部,并且将切割的头部直接放置到反向的队列中,等待回传。虽然进行切割头部使数据部分丢失了,但是等到拥塞缓解时,发送端可以进行快速重传,提高了利用率。反向的确认包,通过主动缓冲队列进行缓冲,使确认包到达该中间节点网络设备的速率大于回传确认包的速率,可以保证网络快速收敛。
若80>L>60,有一条数据流从发送端S1,到接收端R1。当前网络出现重度拥塞,正向的流量中,以预设概率对正向的数据包进行切割头部,并且将切割的头部直接放置到反向的队列中,等待回传。反向中主动缓冲队列缓冲所有的确认包,并对确认包停止出包,即停止回传确认包,等待拥塞缓解正常回传。
若100>L>80,有一条数据流从发送端S1,到接收端R1。当前网络出极度拥塞,虽然确认包长度很小,仍有溢出的风险。因此,数据包被切割头部后,并不会被放在反向队列中,而是放在正向队列中直接回传给接收端,接收端缓冲若干时间,再回传给发送端。这样保证了网络的稳定性和高效性。
本申请实施例的基于交换机主动队列管理的拥塞控制方法,能够在网络中间节点设备中对拥塞进行控制,并且可以依据拥塞程度的不同,实施不同的策略,以保证正向数据包速率的调节和拥塞信息到达端节点。本申请实施例在进行队列管理时,会确定主动缓冲和切割包头,会对该网络设备的拥塞程度进行针对性的处理,因此可以实现基于拥塞状态的精确处理,进而能够降低所述网络设备的丢包率和队列排队时间,提高网络吞吐,提升网络的传输性能。
为了实现上述实施例,本申请实施例还提出一种基于交换机主动队列管理的拥塞控制装置。图4为本申请实施例提供的一种基于交换机主动队列管理的拥塞控制装置的结构示意图。该装置可配置于中间节点网络设备中,如交换机、路由器等中。其中,中间节点网络设备的各端口具有主动缓冲队列或称反向队列,主动缓冲队列用于提供主动缓冲功。
如图4所示,该基于交换机主动队列管理的拥塞控制装置包括:第一确定模块210、第二确定模块220、动作模块230。
第一确定模块210,用于确定接收的包的入端口、出端口和包类型;
第二确定模块220,用于根据预设的队列阈值和预设的队列容量,确定包到达时当前正向队列长度所在的阈值区间;
动作模块230,用于根据阈值区间和包的包类型,通过包的入端口、出端口对包进行入包和出包操作。
在本申请实施例一种可能的实现方式中,上述队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr
其中,Tas≤Tcb≤Tae≤Tcr
在本申请实施例一种可能的实现方式中,上述动作模块230,具体用于
若包为正向的数据包,则入包操作包括:
当当前正向队列的长度小于Tcb时,通过正向的入端口正常入包;当当前正向队列的长度大于Tcb小于Tcr时,切割数据包的头部,并将头部放在反向队列中;当当前正向队列的长度大于Tcr小于预设的队列容量时,切割正向的数据包的头部,并将正向的数据包的头部包放在正向队列中;
若包为正向的数据包,则出包操作为当当前正向队列不为空时,通过正向的出端口进行转发;
若包为反向的确认包,则入包操作为当反向的入端口有确认包时,通过反向的入端口进行入包;
若包为反向的确认包,则出包操作包括:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;当当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的主动缓冲队列主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包速率比值;或者,当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
在本申请实施例一种可能的实现方式中,上述动作模块230,还用于:
在切割后的正向的数据包的头部打上显性拥塞通知标记,并将带有显性拥塞通知标记的头部放在正向队列中,等待发送给接收端,以使接收端随机等待一个时延后将带有显性拥塞通知标记的头部发送给发送端。
需要说明的是,上述对基于交换机主动队列管理的拥塞控制方法实施例的解释说明,也适用于该实施例的基于交换机主动队列管理的拥塞控制装置,故在此不再赘述。
图5为本申请实施例提供的一种交换机设备的结构示意图。如图5所示,该交换机包括5个部分。
(1)第一部分是主动缓冲队列:主动缓冲队列需要判断进入交换机的包的类型,如果是确认包,比如在TCP协议中确认包为ACK,判断当前出端口的是否拥堵(是否需要进行主动缓冲),如果是确认包并且拥堵的话就需要进行主动缓冲;否则直接进行转发。同时,一旦出端口队列不发生拥堵,主动缓冲队列需要主动的弹出缓冲的确认包。
(2)第二部分是输入裁决器,它的作用是分时的处理到达主动缓冲队列的包。在这里裁决器使用的是带权重的轮询调度策略,当许多小数据包到达一个接口,许多大数据包到达另一个接口时,带权重的轮询调度策略确保接收小数据包的输入队列不会溢出。
(3)第三部分是传统的交换机转发控制逻辑,匹配转发表,标识输出端口。
(4)第四部分是CP(CutPayload)逻辑。传统的L2转发决策完成后,数据包到达CP逻辑。根据拥塞状态,判断是否进行CP。
(5)第五部分是双优先级的出队列。每个正向输出端口都有一个低优先级和一个高优先级输出队列。控制包被转发到高优先级队列。对于数据包,CP逻辑检查低优先级队列长度,在该交换机实例中,低优先级队列为正向队列,也是正向出端口队列,当低优先级队列的长度小于或等于Tcb时,正常入包;当低优先级队列的长度大于Tcb小于Tcr时,切割数据包的头部,调换源IP和目的IP并将头部放在主动缓冲队列中,也即放在主动缓冲队列中,这里调换源IP和目的IP的目的是将数据包的头部发送至接收端,将拥塞信息通知接收端;当低优先级的长度大于Tcr时,切割正向的数据包的头部,并将该头部包放在高优先级队列中。如果优先级队列已满,则丢弃包。
本实施例中,当低优先级的长度大于Tcr时,拥塞比较严重,将数据包的头部放在高优先级队列中,可以优先将数据包的头部发送至接收端,接收端再将拥塞信息通知给发送端,从而实现了可以将拥塞信息尽快通知给端节点。
本实施例中,可以通过主动测量当前中间节点网络设备拥塞程度进行主动缓冲或者切割头部,可以实现有效的主动的网络拥塞控制;通过主动缓冲,实现了直接对反向确认包的包速率的准确控制,从而间接控制正向速率;通过切割头部,可以对严重拥塞时的受控丢包,即发生了丢包也可以快速回传。因此,相对于传统主动队列管理,本发明实施例会对该网络设备的拥塞程度进行针对性的处理,因此可以实现基于拥塞状态的精确处理,进而能够降低所述网络设备的丢包率和队列排队时间,提高网络吞吐。
本申请实施例的基于交换机主动队列管理的拥塞控制装置,通过确定接收的包的入端口、出端口和包类型,根据预设的队列阈值和预设的队列容量,确定包到达时的入端口队列和出端口队列的队列长度所在的阈值区间,根据阈值区间和包的包类型,对包进行入包和出包操作,使网络传输过程中的中间节点网络设备,能够依据网络拥塞的不同程度进行不同的操作,从而保证数据包传输速率的直接调节和拥塞信息尽可能到达端节点,进而提高了网络吞吐量,提升了网络的传输性能。

Claims (4)

1.一种基于交换机主动队列管理的拥塞控制方法,其特征在于,应用于中间节点网络设备,所述中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功,所述方法包括:
确定接收的包的入端口、出端口和包类型;
根据预设的队列阈值和预设的队列容量,确定所述包到达时当前正向队列的队列长度所在的阈值区间;
根据所述阈值区间和所述包的包类型,通过所述包的入端口、出端口对所述包进行入包和出包操作;
所述队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr
其中,Tas≤Tcb≤Tae≤Tcr且Tcr小于所述预设的队列容量;
所述根据所述阈值区间和所述包的包类型,通过所述包的入端口、出端口对所述包进行入包和出包操作,包括:
若所述包为正向的数据包,则入包操作包括:
当当前正向队列的长度小于Tcb时,通过所述正向的入端口正常入包;当当前正向队列的长度大于Tcb小于Tcr时,切割所述数据包的头部,并将所述头部放在反向队列中;当当前正向队列的长度大于Tcr小于所述预设的队列容量时,切割所述正向的数据包的头部,并将所述正向的数据包的头部包放在正向队列中;
若所述包为正向的数据包,则出包操作为当当前正向队列不为空时,通过正向的出端口进行转发;
若所述包为反向的确认包,则入包操作为当反向的入端口有确认包时,通过反向的入端口进行入包;
若所述包为反向的确认包,则出包操作包括:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;当当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的所述主动缓冲队列主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包速率比值;或者,当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
2.如权利要求1所述的方法,其特征在于,所述当当前正向队列的长度大于Tcr时,切割所述正向的数据包的头部,并将所述头部放在正向队列中,包括:
在切割后的正向的数据包的头部打上显性拥塞通知标记,并将带有显性拥塞通知标记的头部放在正向队列中,等待发送给接收端,以使接收端随机等待一个时延后将带有显性拥塞通知标记的头部发送给发送端。
3.一种基于交换机主动队列管理的拥塞控制装置,其特征在于,应用于中间节点网络设备,所述中间节点网络设备的各端口具有主动缓冲队列或称反向队列,所述主动缓冲队列用于提供主动缓冲功,所述装置包括:
第一确定模块,用于确定接收的包的入端口、出端口和包类型;
第二确定模块,用于根据预设的队列阈值和预设的队列容量,确定所述包到达时当前正向队列长度所在的阈值区间;
动作模块,用于根据所述阈值区间和所述包的包类型,通过所述包的入端口、出端口对所述包进行入包和出包操作;
所述队列阈值包括:主动缓冲开始阈值Tas、主动缓冲结束阈值Tae、切割缓冲阈值Tcb和切割回传阈值Tcr,其中,Tas≤Tcb≤Tae≤Tcr且Tcr小于所述预设的队列容量;
所述动作模块,具体用于
若所述包为正向的数据包,则入包操作包括:
当当前正向队列的长度小于Tcb时,通过所述正向的入端口正常入包;当当前正向队列的长度大于Tcb小于Tcr时,切割所述数据包的头部,并将所述头部放在反向队列中;当当前正向队列的长度大于Tcr小于所述预设的队列容量时,切割所述正向的数据包的头部,并将所述正向的数据包的头部包放在正向队列中;
若所述包为正向的数据包,则出包操作为当当前正向队列不为空时,通过正向的出端口进行转发;
若所述包为反向的确认包,则入包操作为当反向的入端口有确认包时,通过反向的入端口进行入包;
若所述包为反向的确认包,则出包操作包括:
当当前正向队列长度小于Tas时,不做缓冲,通过反向的出端口直接出包;当当前正向队列长度大于Tas且小于Tae时,通过反向的入端口的所述主动缓冲队列主动缓冲反向的确认包,且调节反向的确认包的出包速率和正向的数据包的入包速率比值;或者,当当前正向队列长度大于Tae时,对反向的确认包均进行缓冲并停止出包。
4.如权利要求3所述的装置,其特征在于,所述动作模块,还用于:
在切割后的正向的数据包的头部打上显性拥塞通知标记,并将带有显性拥塞通知标记的头部放在正向队列中,等待发送给接收端,以使接收端随机等待一个时延后将带有显性拥塞通知标记的头部发送给发送端。
CN201910625794.3A 2019-07-11 2019-07-11 基于交换机主动队列管理的拥塞控制方法和装置 Active CN110391992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910625794.3A CN110391992B (zh) 2019-07-11 2019-07-11 基于交换机主动队列管理的拥塞控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910625794.3A CN110391992B (zh) 2019-07-11 2019-07-11 基于交换机主动队列管理的拥塞控制方法和装置

Publications (2)

Publication Number Publication Date
CN110391992A CN110391992A (zh) 2019-10-29
CN110391992B true CN110391992B (zh) 2021-02-23

Family

ID=68286466

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910625794.3A Active CN110391992B (zh) 2019-07-11 2019-07-11 基于交换机主动队列管理的拥塞控制方法和装置

Country Status (1)

Country Link
CN (1) CN110391992B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110808884A (zh) * 2019-11-20 2020-02-18 中国人民解放军国防科技大学 一种网络拥塞控制方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005064861A1 (en) * 2003-12-23 2005-07-14 Telefonaktiebolaget Lm Ericsson (Publ) Method and device for controlling a queue buffer
CN101917342A (zh) * 2010-08-25 2010-12-15 天津理工大学 一种面向普适服务的自适应网络拥塞控制方法
US20130308458A1 (en) * 2012-05-18 2013-11-21 Alcatel-Lucent Usa Inc. System And Method For Implementing Active Queue Management Enhancements For Variable Bottleneck Rates
CN103929372B (zh) * 2013-01-11 2017-10-10 华为技术有限公司 主动队列管理方法和设备
US9438523B2 (en) * 2014-02-24 2016-09-06 Freescale Semiconductor, Inc. Method and apparatus for deriving a packet select probability value
CN109714267B (zh) * 2018-12-26 2021-01-29 清华大学 管理反向队列的传输控制方法及系统

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Active Queue Management for Web Traffic;Mark Claypool, Robert Kinicki, Matthew Hartling;《IEEE》;20040417;531-538 *
The Method of Active Queue Management Based on Air Traffic Network;Jun Hu,Qian Li,Yu-qing Hu;《IEEE》;20110529;238-241 *
一种基于模糊一比例积分双模控制的主动队列管理算法;罗鸣, 牛玉刚, 王行愚, 孙培林;《华东理工大学学报》;20081231;103-107 *
基于主动队列管理的拥塞控制机制研究;夏奕,邓广宏;《信息化纵横》;20091231;61-63 *
基于改进的控制时延主动队列管理算法;余信珂,蔡茂国,陈剑勇;《计算机工程与设计》;20160831;2026-2031 *

Also Published As

Publication number Publication date
CN110391992A (zh) 2019-10-29

Similar Documents

Publication Publication Date Title
US7447152B2 (en) Controlling traffic congestion
US7983159B2 (en) Queue-based active queue management process
US6535482B1 (en) Congestion notification from router
US6625118B1 (en) Receiver based congestion control
EP1668847B1 (en) Encapsulating packets into a frame for a network
US6765905B2 (en) Method for reducing packet data delay variation in an internet protocol network
US7158480B1 (en) Feedback output queuing system, apparatus, and method
US8274974B1 (en) Method and apparatus for providing quality of service across a switched backplane for multicast packets
Jiang et al. Network congestion avoidance through speculative reservation
US9025456B2 (en) Speculative reservation for routing networks
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
US7408876B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress queue managers
US9985910B2 (en) Adaptive flow prioritization
CN110391992B (zh) 基于交换机主动队列管理的拥塞控制方法和装置
CN107852371B (zh) 数据分组网络
CN107852372B (zh) 数据分组网络
CN109714267B (zh) 管理反向队列的传输控制方法及系统
US7599292B1 (en) Method and apparatus for providing quality of service across a switched backplane between egress and ingress queue managers
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
US10666568B2 (en) Timing transport method in a communication network
Wei et al. EC4: ECN and credit-reservation converged congestion control
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
Chen et al. On meeting deadlines in datacenter networks
WO2020253488A1 (zh) 拥塞控制方法及装置、通信网络、计算机存储介质
JP2004282688A (ja) 抑制フロー制御方法、フロー制御を実行するノード間のデータ伝達方法、並びに、フロー制御を実行する送信ノードおよび受信ノード

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant