CN108111428B - 一种拥塞控制的方法和装置 - Google Patents
一种拥塞控制的方法和装置 Download PDFInfo
- Publication number
- CN108111428B CN108111428B CN201711384888.3A CN201711384888A CN108111428B CN 108111428 B CN108111428 B CN 108111428B CN 201711384888 A CN201711384888 A CN 201711384888A CN 108111428 B CN108111428 B CN 108111428B
- Authority
- CN
- China
- Prior art keywords
- network card
- card port
- congestion
- communication link
- port
- 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
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/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/29—Flow control; Congestion control using a combination of thresholds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种用于接收端的拥塞控制方法,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:获取第二网卡端口的第一拥塞状态信息;在依据第一拥塞状态信息确定所述第二网卡端口由畅通变为拥塞时,向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧。该拥塞控制方法不仅可以实现拥塞控制,而且在网络设备中,实现该方法时,不需要使用计数器,从而可以减少芯片的面积,也可以减少芯片的成本。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种拥塞控制的方法和装置。
背景技术
在网络通信设备中,如果需要第一网卡端口和第二网卡端口之间需要传输数据,则需要在第一、第二网卡端口之间建立一个通信链路,通常该通信链路是双向的,即包括:(1)只能从第一网卡端口向第二网卡端口单向传输数据的第一通信链路;(2)只能从第二网卡端口向第一网卡端口单向传输数据的第二通信链路。
在现有技术中,在第一通信链路中,当接收端(即设置有第二网卡端口的通信设备)探测到第二网卡端口发生拥塞时,会发送一个包含有Quanta值的流控帧给发送端(即设置有第一网卡端口的通信设备)中的第一网卡端口;从而发送端在一段时间(这段时间由Quanta值决定,且与Quanta值成正比)内就不会通过第一通信链路向接收端发送数据帧,并且如果第二网卡端口拥塞很严重时,可能要求发送端停止发送数据帧的时间超过Quanta值所能表示的最大时间,则接收端会在这段时间结束之前(即接收端使用计数器来计数,从而判断出“这段时间”是否要结束)再发一个流控帧,从而使得发送端继续停止发送数据帧。这里,当发送端接收到流控帧时,就会停止发送数据帧,并将Quanta值取出来,通过计数器进行计数,并且在计数器计数到与Quanta值相对应的时间后,则继续发送数据帧;而如果在这段时间内,又收到了一个流控帧时,那么新的流控帧里面的Quanta值会覆盖上一个Quanta值,且计数器也重新开始计数;通过这种机制可以保证在接收端中,数据帧不会因为拥塞过度而被丢弃。可以理解是,在第二通信链路中,也设置有相似的拥塞控制的方法。
可以理解的是,由于第一、第二网卡端口之间是双向通信的,因此,在第一、第二网卡端口上都需要设置有两个计数器。由于计数器不仅是寄存器、还是加法器,使得实现该计数器的电路不仅面积大、而且成本还高;而随着网络设备中的网卡端口越来越多,所需要的计数器也随之增多,从而使得网络芯片的面积增加,成本较高。
因此,设计一种简单、成本低的拥塞控制方法和装置,就成为一个亟待解决的问题。
发明内容
本发明的目的在于提供一种拥塞控制的方法和装置。
为了实现上述发明目的之一,本发明一实施方式提供了一种用于接收端的拥塞控制方法,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:获取第二网卡端口的第一拥塞状态信息;在依据第一拥塞状态信息确定所述第二网卡端口由畅通变为拥塞时,向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧。
作为本发明一实施方式的进一步改进,还包括以下步骤:在依据第一拥塞状态信息确定所述第二网卡端口由拥塞变为畅通时,向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧。
作为本发明一实施方式的进一步改进,所述向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧,包括:通过第二单向通信链路向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧;所述向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧,包括:通过第二单向通信链路向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧。
作为本发明一实施方式的进一步改进,第一流控帧中的Quanta值的所有二进制位都为1。
作为本发明一实施方式的进一步改进,第一流控帧中的Quanta值的所有二进制位都为0
本发明一实施方式还提供了一种用于接收端的拥塞控制装置,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:第一拥塞状态获取模块,用于获取第二网卡端口的第一拥塞状态信息;第一拥塞状态处理模块,用于在依据第一拥塞状态信息确定所述第二网卡端口由畅通变为拥塞时,向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧。
本发明一实施方式还提供了一种用于接收端的拥塞控制的方法,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:获取第二网卡端口的第二拥塞状态信息,设置第一定时器,所述第一定时器在第一预设时间之后超时,所述第一预设时间小于第一流控帧中的Quanta值所对应的停止发送数据帧的时间;在所述第一定时器超时的时候,获取第二网卡端口的第三拥塞状态信息,且依据所述第二拥塞状态信息和第三拥塞状态信息确定第二网卡端口保持拥塞时,向发送端发送用于表征第二网卡端口拥塞的第一流控帧。
作为本发明一实施方式的进一步改进,在设置第一定时器和所述第一定时器超时的这段时间内上述的拥塞控制方法。
本发明一实施方式还提供了一种用于接收端的拥塞控制的装置,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:第二拥塞状态获取模块,用于获取第二网卡端口的第二拥塞状态信息,设置第一定时器,所述第一定时器在第一预设时间之后超时,所述第一预设时间小于第一流控帧中的Quanta值所对应的停止发送数据帧的时间;第二拥塞状态处理模块,用于在所述第一定时器超时的时候,获取第二网卡端口的第三拥塞状态信息,且依据所述第二拥塞状态信息和第三拥塞状态信息确定第二网卡端口保持拥塞时,向发送端发送用于表征第二网卡端口拥塞的第一流控帧。
本发明一实施方式还提供了一种用于发送端的拥塞控制的方法,其中,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:收到用于表征第二网卡端口拥塞的第一流控帧时,停止从第一网卡端口向第二网卡端口发送数据帧;接收到用于表征第二网卡端口顺畅的第二流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
本发明一实施方式还提供了一种用于发送端的拥塞控制的装置,其中,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:第一流控帧处理装置,用于收到用于表征第二网卡端口拥塞的第一流控帧时,停止从第一网卡端口向第二网卡端口发送数据帧;第二流控帧处理装置,用于接收到用于表征第二网卡端口顺畅的第二流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
本发明一实施方式还提供了一种用于发送端的拥塞控制的方法,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:取第一网卡端口的第一状态信息,设置第二定时器,所述第二定时器在第二预设时间之后超时,所述第二预设时间大于等于所有二进制位全为1的Quanta值所对应的停止发送数据帧的时间;在所述第二定时器超时的时候,获取第一网卡端口的第二状态信息,且依据所述第一状态信息和第二状态信息确定所述网卡保持停止发送数据帧的状态、并且在设置第二定时器和第二定时器超时的这段时间内,没有接收到第一流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
作为本发明一实施方式的进一步改进,在设置第二定时器和第二定时器超时的这段时间内,上述的拥塞控制方法。
本发明一实施方式还提供了一种用于发送端的拥塞控制的装置,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:第三拥塞状态获取模块,用于取第一网卡端口的第一状态信息,设置第二定时器,所述第二定时器在第二预设时间之后超时,所述第二预设时间大于等于所有二进制位全为1的Quanta值所对应的停止发送数据帧的时间;第三拥塞状态处理模块,用于在所述第二定时器超时的时候,获取第一网卡端口的第二状态信息,且依据所述第一状态信息和第二状态信息确定所述网卡保持停止发送数据帧的状态、并且在设置第二定时器和第二定时器超时的这段时间内,没有接收到第一流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
相对于现有技术,本发明的技术效果在于:本发明实施例提供的一种拥塞控制方法中,发送端和接收端通过第一流控帧和第二流控帧来对拥塞状况进行调节,且通过一个定时器来实现轮询,从而在网络设备中,实现该方法时,不需要使用计数器,从而可以减少芯片的面积,也可以减少芯片的成本。
附图说明
图1是本发明实施例一中的用于接收端的拥塞控制方法的流程示意图;
图2是本发明实施例二中的用于接收端的拥塞控制方法的流程示意图;
图3是本发明实施例三中的用于发送端的拥塞控制方法的流程示意图;
图4是本发明实施例四中的用于发送端的拥塞控制方法的流程示意图;
图5是本发明实施例五中的用于接收端的拥塞控制装置的队列的第一示意图;
图6是本发明实施例五中的用于接收端的拥塞控制装置的队列的第二示意图;
图7是本发明实施例五中的用于接收端的拥塞控制装置的队列的第三示意图;
图8是本发明实施例五中的用于发送端的拥塞控制装置的队列的第一示意图;
图9是本发明实施例五中的用于发送端的拥塞控制装置的队列的第二示意图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
本发明实施例一提供了一种用于接收端的拥塞控制方法,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:
步骤101:获取第二网卡端口的第一拥塞状态信息;
步骤102:在依据第一拥塞状态信息确定所述第二网卡端口由畅通变为拥塞时,向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧。
这里第一、第二网卡端口的类型可以为有线,例如,同轴电缆、以太网或光通信等类型;也可以为无线,例如,WIFI(Wireless Fidelity,无线保真)、蓝牙(Bluetooth)、3G(3rd Generation,第三代数字通信)或4G(4th Generation,第四代数字通信)等类型。
在接收端,控制系统会实时获取第二网卡端口的状态信息,该状态信息中的与拥塞有关的信息就属于拥塞状态信息;例如:当第二网卡端口接收到数据帧之后,会将数据帧存储在内存的缓冲区(例如,DMA机制等,DMA是指Direct Memory Access,直接内存存取)中,如果该缓冲区已使用的存储空间超过阈值时,就表示第二网卡端口发生了拥塞;在该网络设备中,如果从第二网卡端口所接收到数据帧需要通过另一网卡端口转发,而另一网卡端口发生拥塞,且没有足够的存储空间来缓存这些数据帧,则可以判定第二网卡端口也发生了拥塞;在该网络设备为路由器时,如果由于各种原因,无法快速的完成必要的处理工作(例如,缓冲区排队、更新路由表等),也会造成第二网卡端口的拥塞。
优选的,所述拥塞控制方法,还包括以下步骤:
步骤103:在依据第一拥塞状态信息确定所述第二网卡端口由拥塞变为畅通时,向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧。
在步骤101-103中,一旦接收端确定第二网卡端口由顺畅变为拥塞时,就会立刻向第一网卡端口发送第一流控帧,可以理解的是,第一网卡端口会立刻停止发送数据帧;而一旦接收端确定第二网卡端口由拥塞变为顺畅时,就会立刻向第一网卡端口发送第二流控帧,可以理解的是,第一网卡端口会立刻开始发送数据帧。可见本发明实施例中的拥塞控制方法可以做到实时控制,控制粒度低。
优选的,所述向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧,包括:通过第二单向通信链路向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧;
所述向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧,包括:通过第二单向通信链路向第一网卡端口发送用于表征第二网卡端口顺畅的第二流控帧;
这里,由于对流控帧的处理是由网卡完成的,因此,即使第二单向通信链路发生拥塞时,也可以将第一流控帧和第二流控帧发送给第一网卡,且第一网卡也能够及时处理。
这里,第一流控帧用于表征第二网卡端口处于拥塞状态,第二流控帧用于表征第二网卡端口处于顺畅状态,它们都属于流控帧,因此,只需要流控帧中的某些字段的值不一样就可以区分第一流控帧和第二流控帧。
优选的,第一流控帧中的Quanta值的所有二进制位都为1。
优选的,第二流控帧中的Quanta值的所有二进制位都为0。
这里,如果第一网卡端口运行的是现有技术中的拥塞控制方法,则所有二进制位都设为1的Quanta值可以让第一网卡端口停止发送数据帧的时间最长;并且,如果第一网卡端口运行的是现有技术中的拥塞控制方法,因此,所有二进制位都设为0的Quanta值可以让第一网卡端口立刻开始发送数据帧。
本发明实施例还提供给了一种用于接收端的拥塞控制装置,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:
第一拥塞状态获取模块,用于获取第二网卡端口的第一拥塞状态信息;
第一拥塞状态处理模块,用于在依据第一拥塞状态信息确定所述第二网卡端口由畅通变为拥塞时,向第一网卡端口发送用于表征第二网卡端口拥塞的第一流控帧。
本发明实施例二提供了一种用于接收端的拥塞控制的方法,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:
步骤201:获取第二网卡端口的第二拥塞状态信息,设置第一定时器,所述第一定时器在第一预设时间之后超时,所述第一预设时间小于第一流控帧中的Quanta值所对应的停止发送数据帧的时间;
步骤202:在所述第一定时器超时的时候,获取第二网卡端口的第三拥塞状态信息,且依据所述第二拥塞状态信息和第三拥塞状态信息确定第二网卡端口保持拥塞时,向发送端发送用于表征第二网卡端口拥塞的第一流控帧。
可以理解的是,在实际中,可以循环执行该拥塞控制方法,即在步骤202之后,再执行步骤201,从而形成一个循环;从而在每隔第一预设时间之后,都会对第二网卡端口的状态进行判断,如果保持拥塞状态,就向第一网卡端口发送第一流控帧,可以理解的是,该实施例中的第一流控制帧与实施例一中的第一流控帧是相同的。
在实际中,第一网卡端口有可能执行现有技术中的拥塞控制方法,即在接收到第一流控帧之后,停止发送数据帧,且在第一流控帧中的Quanta值所对应的时间之后,继续发送数据帧,因此,在第二网卡端口持续处于拥塞状态时,需要在Quanta值所对应的时间到来之前,向第一网卡端口发送第一流控帧,让第一网卡端口持续停止发送数据帧。从而使得该拥塞控制方法可以与现有技术中拥塞控制方法相兼容。
这里,Quanta值对应的停止发送数据帧的时间可以为Quanta值(即Quanta值原来为二进制数,将该二进制数转换成十进制数)*在第一通信链路中传输一个比特所需要的时间。
优选的,在设置第一定时器和所述第一定时器超时的这段时间内执行实施例一中的拥塞控制方法。
可以理解的是,在实际中,可以循环执行该拥塞控制方法,即在步骤202之后,再执行步骤201,从而形成一个循环;且可以理解的是,执行实施例一中的拥塞控制方法是很快的,一般会小于第一预设时间。从而在每一轮循环中,会实时监测第二网卡端口是否发生拥塞,从而实时控制第一网卡端口是否发送数据帧,进而可以做到对拥塞的实时控制;且在一轮循环结束时,根据第二网卡端口是否持续保持拥塞,来实时控制第一网卡端口是否持续停止发送数据帧。
本发明实施例还提供了一种用于接收端的拥塞控制的装置,其中,所述接收端的第二网卡端口与发送端的第一网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:
第二拥塞状态获取模块,用于获取第二网卡端口的第二拥塞状态信息,设置第一定时器,所述第一定时器在第一预设时间之后超时,所述第一预设时间小于第一流控帧中的Quanta值所对应的停止发送数据帧的时间;
第二拥塞状态处理模块,用于在所述第一定时器超时的时候,获取第二网卡端口的第三拥塞状态信息,且依据所述第二拥塞状态信息和第三拥塞状态信息确定第二网卡端口保持拥塞时,向发送端发送用于表征第二网卡端口拥塞的第一流控帧。
本发明实施例三提供了一种用于发送端的拥塞控制的方法,其中,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:
步骤301:收到用于表征第二网卡端口拥塞的第一流控帧时,停止从第一网卡端口向第二网卡端口发送数据帧;
步骤302:接收到用于表征第二网卡端口顺畅的第二流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
这里,在发送端,一旦接收到第一流控帧,就立刻停止发送数据帧,而一旦接收到第二流控帧时,就立刻开始并持续发送数据帧;因此,对于第二网卡端口的拥塞与顺畅,第一网卡端口可以做到实时响应。且在网络设备中,实现该方法时,不需要使用计数器,从而可以减少芯片的面积,也可以减少芯片的成本。
本发明实施例还提供了一种用于发送端的拥塞控制的装置,其中,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下装置:
第一流控帧处理装置,用于收到用于表征第二网卡端口拥塞的第一流控帧时,停止从第一网卡端口向第二网卡端口发送数据帧;
第二流控帧处理装置,用于接收到用于表征第二网卡端口顺畅的第二流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
本发明实施例四提供了一种用于发送端的拥塞控制的方法,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下步骤:
步骤401:获取第一网卡端口的第一状态信息,设置第二定时器,所述第二定时器在第二预设时间之后超时,所述第二预设时间大于等于所有二进制位全为1的Quanta值所对应的停止发送数据帧的时间;
步骤402:在所述第二定时器超时的时候,获取第一网卡端口的第二状态信息,且依据所述第一状态信息和第二状态信息确定所述网卡保持停止发送数据帧的状态、并且在设置第二定时器和第二定时器超时的这段时间内,没有接收到第一流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
可以理解的是,在实际中,可以循环执行该拥塞控制方法,即在步骤402之后,再执行步骤401,从而形成一个循环;可以理解的是,该实施例中的第一流控制帧与实施例一中的第一流控帧是相同的。这里,Quanta值对应的停止发送数据帧的时间可以为Quanta值(即Quanta值原来为二进制数,将该二进制数转换成十进制数)*在第一通信链路中传输一个比特所需要的时间。
在实际中,第二网卡端口有可能是执行现有技术中的拥塞控制方法,即在确定第二网卡端口发生拥塞时,计算出要求第一网卡端口停止发送数据帧的时间,并将该时间转换成Quanta值,并将包含该Quanta值的流控帧发送给第一网卡端口,之后即使第二网卡端口变为顺畅时,也不会再发送流控帧了,因此第一网卡端口需要在二进制位全为1的Quanta值所对应的停止发送数据帧的时间之后,需要能够恢复发送数据帧。从而使得该拥塞控制方法可以与现有技术中拥塞控制方法相兼容。
优选的,在设置第二定时器和第二定时器超时的这段时间内,执行实施例三所述的拥塞控制方法。
可以理解的是,在实际中,可以循环执行该拥塞控制方法,即在步骤402之后,再执行步骤401,从而形成一个循环;且可以理解的是,执行实施例三中的拥塞控制方法是很快的,一般会小于第二预设时间。从而在每一轮循环中,会对第二网卡端口所发出第一、第二流控帧进行实时响应,从而能够实时对第二网卡端口的拥塞状况进行响应;且在一轮循环结束时,第一网卡端口持续保持停止发送数据帧的状态,在该轮循环器间,没有接收到第一流控帧,则开始发送数据帧,从而能够与现有技术中的拥塞控制方法进行兼容。
本发明实施例还提供了一种用于发送端的拥塞控制的装置,所述发送端的第一网卡端口与接收端的第二网卡端口之间设置有第一单向通信链路和第二单向通信链路,所述第一网卡端口通过第一单向通信链路向第二网卡端口发送数据帧,所述第二网卡端口通过第二单向通信链路向第一网卡端口发送数据帧;包括以下模块:
第三拥塞状态获取模块,用于取第一网卡端口的第一状态信息,设置第二定时器,所述第二定时器在第二预设时间之后超时,所述第二预设时间大于等于所有二进制位全为1的Quanta值所对应的停止发送数据帧的时间;
第三拥塞状态处理模块,用于在所述第二定时器超时的时候,获取第一网卡端口的第二状态信息,且依据所述第一状态信息和第二状态信息确定所述网卡保持停止发送数据帧的状态、并且在设置第二定时器和第二定时器超时的这段时间内,没有接收到第一流控帧时,开始并持续从第一网卡端口向第二网卡端口发送数据帧。
本发明实施例五提供了一种用于接收端的拥塞控制装置,如图5所示,在该接收端有四个网卡端口,第一拥塞状态队列和第一流控状态队列,其中,第一拥塞状态队列存储的是各个网卡端口的第一拥塞状态值和第一流控状态队列存储的是各个网卡端口的第一流控状态值;且这两个队列都具有四个存储项,并且0号网卡端口对应第0号存储项,1号网卡端口对应第1号存储项,2号网卡端口对应第2号存储项,3号网卡端口对应第3号存储项。第一计数器(第一计数器的计数周期小于所有二进制全为1的Quanta值所对应的时间,且差值大于能够轮询一遍两个状态队列)。在该拥塞控制装置会实时监控多个网卡端口的拥塞状况,一旦检测到某个网卡端口变为拥塞,就将该网卡端口对应的拥塞状态队列中的存储项设置为1,否则设置为0。
该拥塞控制装置的工作流程为:
步骤1;如图5所示,初始化第一拥塞状态队列和第一流控状态队列,所有存储项的值都为0,计数器开始计数;
步骤2:在确定某个网卡端口的第一拥塞状态值与第一流控状值不一致时,那么将该网卡端口第一流控状态值修改为第一拥塞状态值;并且如果第一拥塞状态值等于1,发送包含所有二进制位全为1的Quanta值的第一流控帧;值为0,发送包含所有二进制位全为0的Quanta值的第二流控帧;如图6、7所示,当网卡端口0、3为拥塞状态时,拥塞状态队列的第0、3号存储项的值为1,之后流控状态队列的第0、3号存储项的值也为1;
步骤3:当计数器超时,如发现某个网卡端口的第一拥塞状态值与第一流控状值一致,并且都为1,则通过该网卡端口发送包含所有二进制位全为1的Quanta值的第一流控帧;并重新设置计数器,计数器开始计数,执行步骤2.
本发明实施例还提供了一种用于发送端的拥塞控制装置,如图8所示,
在该发送端有四个网卡端口,第二拥塞状态队列和第二流控状态队列,其中,第二拥塞状态队列存储的是各个网卡端口的第二拥塞状态值和第二流控状态队列存储的是各个网卡端口的第二流控状态值;且这两个队列都具有四个存储项,并且0号网卡端口对应第0号存储项,1号网卡端口对应第1号存储项,2号网卡端口对应第2号存储项,3号网卡端口对应第3号存储项。第二计数器(第二计数器的计数周期等于所有二进制位全为1的Quanta值所对应的时间)。
该拥塞控制装置的工作流程为:
步骤1:如图8所示,初始化这两个状态队列,所有存储项的值都为0,计数器开始计数;
步骤2:当某个网卡端口收到发送端的第一流控帧或第二流控帧后,将Quanta值提取出来,如果Quanta值不为0,则将该网卡端口第二流控状态值和第二拥塞状态值都设置1,并且该网卡端口开始发送数据帧;否则设置0,并且该网卡端口停止发送数据帧;如图9所示,0号网卡端口接收到第一流控帧后,由于第一流控帧中的Quanta值不为0,则网卡端口对应的第二流控状态值和第二拥塞状态值为1,即将第二流控状态队列和第二拥塞状态队列中的第0号存储项的值设为0;
步骤3:当计数器超时的时候,开始扫描各个网卡端口,如果某个网卡端口的第二拥塞状态值值为1,将该存储项的值设为0;如果为0,则将网卡端口在流控状态队列中对应的存储项的值为0,并开始发送数据帧。
应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
Claims (2)
1.一种用于接收端的拥塞控制的方法,其中,所述接收端包括多个第二网卡端口,发送端包括多个第一网卡端口,所述接收端的每个第二网卡端口与所述发送端对应的第一网卡端口之间都设置有第一单向通信链路和第二单向通信链路,每个第一网卡端口通过第一单向通信链路向对应的第二网卡端口发送数据帧,每个第二网卡端口通过第二单向通信链路向对应的第一网卡端口发送数据帧;其特征在于,包括以下步骤:
轮询所有第二网卡端口的第二拥塞状态信息,分别设置第一定时器,所述第一定时器在第一预设时间之后超时,所述第一预设时间小于第一流控帧中的Quanta值所对应的停止发送数据帧的时间;
分别在所述第一定时器超时的时候,依次获取所有第二网卡端口的第三拥塞状态信息,且依据所述第二拥塞状态信息和第三拥塞状态信息确定对应的第二网卡端口保持拥塞时,向发送端发送用于表征所述第二网卡端口拥塞的第一流控帧;
其中,在设置第一定时器和所述第一定时器超时的这段时间内执行以下方法:
轮询所有第二网卡端口的第一拥塞状态信息;
在依据第一拥塞状态信息确定对应的第二网卡端口由畅通变为拥塞时,向对应的第一网卡端口发送用于表征所述第二网卡端口拥塞的第一流控帧。
2.一种用于发送端的拥塞控制的方法,接收端包括多个第二网卡端口,所述发送端包括多个第一网卡端口,所述发送端的每个第一网卡端口与所述接收端对应的第二网卡端口之间设置都有第一单向通信链路和第二单向通信链路,每个第一网卡端口通过第一单向通信链路向对应的第二网卡端口发送数据帧,每个第二网卡端口通过第二单向通信链路向对应的第一网卡端口发送数据帧;其特征在于,包括以下步骤:
轮询所有第一网卡端口的第一状态信息,分别设置第二定时器,所述第二定时器在第二预设时间之后超时,所述第二预设时间大于等于所有二进制位全为1的Quanta值所对应的停止发送数据帧的时间;
分别在所述第二定时器超时的时候,依次获取所有第一网卡端口的第二状态信息,且依据所述第一状态信息和第二状态信息确定所述网卡保持停止发送数据帧的状态、并且在设置第二定时器和第二定时器超时的这段时间内,没有接收到第一流控帧时,开始并持续从对应的第一网卡端口向对应的第二网卡端口发送数据帧;
其中,在设置第二定时器和第二定时器超时的这段时间内,执行以下方法:
收到用于表征某个第二网卡端口拥塞的第一流控帧时,停止从对应的第一网卡端口向所述第二网卡端口发送数据帧;
接收到用于表征某个第二网卡端口顺畅的第二流控帧时,开始并持续从对应的第一网卡端口向所述第二网卡端口发送数据帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384888.3A CN108111428B (zh) | 2017-12-20 | 2017-12-20 | 一种拥塞控制的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711384888.3A CN108111428B (zh) | 2017-12-20 | 2017-12-20 | 一种拥塞控制的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108111428A CN108111428A (zh) | 2018-06-01 |
CN108111428B true CN108111428B (zh) | 2021-12-28 |
Family
ID=62211386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711384888.3A Active CN108111428B (zh) | 2017-12-20 | 2017-12-20 | 一种拥塞控制的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108111428B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109308180B (zh) * | 2018-08-16 | 2021-01-26 | 盛科网络(苏州)有限公司 | 缓存拥塞的处理方法及处理装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628613B1 (en) * | 1998-10-12 | 2003-09-30 | Samsung Electronics Co. Ltd | Flow control method in packet switched network |
CN1878144A (zh) * | 2006-07-14 | 2006-12-13 | 华为技术有限公司 | 一种多队列流量控制的方法 |
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN102611620A (zh) * | 2012-02-23 | 2012-07-25 | 福建星网锐捷网络有限公司 | 拥塞控制方法和报文处理设备 |
CN105610725A (zh) * | 2016-01-11 | 2016-05-25 | 盛科网络(苏州)有限公司 | 一种动态的队列拥塞老化管理方法与装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6851008B2 (en) * | 2002-03-06 | 2005-02-01 | Broadcom Corporation | Adaptive flow control method and apparatus |
-
2017
- 2017-12-20 CN CN201711384888.3A patent/CN108111428B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6628613B1 (en) * | 1998-10-12 | 2003-09-30 | Samsung Electronics Co. Ltd | Flow control method in packet switched network |
CN1878144A (zh) * | 2006-07-14 | 2006-12-13 | 华为技术有限公司 | 一种多队列流量控制的方法 |
CN101867511A (zh) * | 2009-04-20 | 2010-10-20 | 华为技术有限公司 | 流控帧发送方法、相关设备及系统 |
CN102611620A (zh) * | 2012-02-23 | 2012-07-25 | 福建星网锐捷网络有限公司 | 拥塞控制方法和报文处理设备 |
CN105610725A (zh) * | 2016-01-11 | 2016-05-25 | 盛科网络(苏州)有限公司 | 一种动态的队列拥塞老化管理方法与装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108111428A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101226581B1 (ko) | 가속 백오프 기능을 포함하는 무선 랜 송신 스케줄러 | |
JP5233504B2 (ja) | 経路制御装置およびパケット廃棄方法 | |
CN106878132B (zh) | 基于周期及优先级的总线调度方法 | |
CN108540395B (zh) | 无丢失网络中的拥塞判断方法及交换机 | |
CN103997465A (zh) | 一种生成cnm的方法及设备 | |
CN107800759A (zh) | 数据处理系统及管理设备网络中设备的方法 | |
US9813349B2 (en) | Transmission path and data processing method for transmission path | |
CN113315720B (zh) | 一种数据流控制方法、系统及设备 | |
CN109863782A (zh) | 5g拥塞控制 | |
KR20090094760A (ko) | 버퍼 상태 보고 방법 및 장치 | |
CN101924679A (zh) | 一种以太网口报文限速方法、装置及数据通信设备 | |
US20220248259A1 (en) | Data processing method and apparatus | |
CN108111428B (zh) | 一种拥塞控制的方法和装置 | |
JP6053914B2 (ja) | メッセージ送受信装置、自動検針システム、およびメッセージ送受信方法 | |
CN102984083A (zh) | 队列管理方法及装置 | |
CN112491736B (zh) | 一种拥塞控制方法、装置、电子设备及存储介质 | |
US20130329558A1 (en) | Physical layer burst absorption | |
US20110238819A1 (en) | Apparatus and method for transmitting information on an operational state of the same | |
CN111935032B (zh) | 一种数据包发送方法及系统 | |
US11646971B2 (en) | Limiting backpressure with bad actors | |
US20160087901A1 (en) | Transmission apparatus and transmission method | |
CN102185732A (zh) | 测试通信设备主动队列管理参数的方法和系统 | |
CN114124856B (zh) | 一种流量控制的方法、装置及存储介质 | |
CN103873386A (zh) | 管理网络传输顺序的方法 | |
CN111385219A (zh) | 借用硬件中断实现高性能高精度软件tcp限速的方法 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province Applicant after: Suzhou Shengke Communication Co.,Ltd. Address before: Xinghan Street Industrial Park of Suzhou city in Jiangsu province 215021 B No. 5 Building 4 floor 13/16 unit Applicant before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |