WO2022089175A1 - 网络拥塞控制方法及装置 - Google Patents

网络拥塞控制方法及装置 Download PDF

Info

Publication number
WO2022089175A1
WO2022089175A1 PCT/CN2021/122816 CN2021122816W WO2022089175A1 WO 2022089175 A1 WO2022089175 A1 WO 2022089175A1 CN 2021122816 W CN2021122816 W CN 2021122816W WO 2022089175 A1 WO2022089175 A1 WO 2022089175A1
Authority
WO
WIPO (PCT)
Prior art keywords
traffic
congestion control
algorithm
network card
matching
Prior art date
Application number
PCT/CN2021/122816
Other languages
English (en)
French (fr)
Inventor
孙文昊
闫龙
庄艳
徐永慧
郑合文
屈向峰
孙黎阳
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP21884904.0A priority Critical patent/EP4221141A4/en
Publication of WO2022089175A1 publication Critical patent/WO2022089175A1/zh
Priority to US18/308,015 priority patent/US20240080271A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2408Traffic characterised by specific attributes, e.g. priority or QoS for supporting different services, e.g. a differentiated services [DiffServ] type of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a method and apparatus for controlling network congestion.
  • the resources in a computer network are limited. Network congestion occurs when the demand for resources in the network exceeds the available portion of the network for a certain period of time, and network performance is degraded. Network congestion needs to be controlled to prevent excessive data injection into the network.
  • TCP transmission control protocol
  • CC congestion control
  • RDMA remote direct memory access
  • the RDMA transport layer data packets are encapsulated in user datagram protocol (UDP)/Internet protocol (IP) data packets, and transmitted through Ethernet.
  • UDP user datagram protocol
  • IP Internet protocol
  • the CC algorithm is implemented by software, which allows researchers and developers to quickly design and verify new CC algorithms, so there are more CC algorithms available under the TCP protocol.
  • DCQCN data center quantized congestion notification
  • RDMA Remote Direct Memory Access
  • CC algorithms under the TCP protocol can be switched or used in combination with each other.
  • the default CC algorithm can be switched globally; the setsockopt function can also be used to configure different CC algorithms for different TCP connections according to user-defined conditions. Since different applications have different performance requirements, the performance obtained by using different CC algorithms in a reasonable combination is likely to exceed that of any single CC algorithm.
  • the CC algorithm of the TCP protocol is usually implemented by software, the efficiency is limited, and the overall performance is not high. Therefore, although the CC algorithm of the TCP protocol has sufficient flexibility, it cannot be directly used in RoCE and other networks that rely on hardware CC algorithms.
  • the present application provides a network congestion control method and device to improve the flexibility of using a hardware-based network congestion control algorithm.
  • a first aspect provides a network congestion control method, which is applied to a network congestion control device, where the network congestion control device includes an intelligent network card, and the method includes: the intelligent network card obtains at least two types of traffic to be transmitted; the The smart network card identifies the algorithm matching feature of the at least two types of traffic; when the smart network card determines to perform congestion control on any one of the at least two types of traffic, the smart network card determines to match the traffic of any of the two types of traffic.
  • the algorithm matches the congestion control algorithm of the feature matching; and the smart network card uses the congestion control algorithm that matches the algorithm matching feature of the any traffic to perform congestion control on the any traffic.
  • the network congestion control scheme is a congestion control scheme based on hardware matching.
  • the smart network card When the smart network card obtains the traffic to be transmitted, it can identify the algorithm matching characteristics of the traffic, and perform the congestion control algorithm according to the algorithm matching characteristics of the traffic. Matching, different algorithm matching features can match different congestion control algorithms, so that the use of hardware-based network congestion control algorithms can be flexibly realized.
  • the smart network card identifying the algorithm matching characteristics of the at least two types of traffic includes at least one of the following operations: the smart network card identifies the traffic Algorithm matching feature, the field includes at least one of the following: traffic type, service quality, service type, Differentiated Services Code Point (DSCP); or the intelligent network card identifies the algorithm matching feature of the traffic according to the characteristics of the traffic itself, the The characteristics of the traffic itself include at least one of the following: the amount of data in the traffic, the start time of the traffic, the expiration time of the traffic, the address information of the opposite end of the traffic, and a custom traffic feature.
  • DSCP Differentiated Services Code Point
  • the application when the application calls the smart network card to send and receive data, it can modify specific fields to identify the characteristics of the traffic, so that the smart network card can identify the algorithm matching characteristics of the traffic according to the fields used to identify the characteristics of the traffic; or the smart network card can According to the characteristics of the traffic itself, the algorithm to identify the traffic matches the characteristics.
  • the network congestion control apparatus further includes a configuration tool
  • the method further includes: the configuration tool sends configuration information to the smart network card, where the configuration information includes algorithms for at least two types of traffic matching relationship between the matching feature and at least two congestion control algorithms; and the smart network card stores the matching relationship between the algorithm matching feature of the at least two traffic flow and the at least two congestion control algorithms.
  • the smart network card can pre-configure the matching relationship between the algorithm matching characteristics of at least two kinds of traffic and at least two congestion control algorithms, and store it in the configuration register. The proposed algorithm matches the features and matches the corresponding congestion control algorithm.
  • the smart network card determines that the algorithm matches the one of the traffic A feature-matched congestion control algorithm, comprising: the smart network card determining to perform congestion control on the at least two types of traffic; and the smart network card determining a congestion control feature matching an algorithm matching feature of each of the at least two types of traffic control algorithm.
  • the smart network card determines a congestion control algorithm that matches the algorithm matching feature of each of the at least two kinds of traffic, including: the algorithm matching feature of the flow of the at least two kinds of traffic When the first matching condition is satisfied, the smart network card determines the first congestion control algorithm; and when the algorithm matching characteristics of the flows in the at least two types of traffic satisfy the second matching condition, the smart network card determines the second congestion control algorithm.
  • the algorithm matching features satisfy different matching conditions, different congestion control algorithms are matched to improve the comprehensive service performance while making full use of the network bandwidth.
  • the smart network card determines a congestion control algorithm that matches the algorithm matching feature of each of the at least two kinds of traffic, including: the algorithm matching feature of the flow of the at least two kinds of traffic When the third matching condition is satisfied, the smart network card determines the parameters of the first congestion control algorithm; and when the algorithm matching characteristics of the flows in the at least two types of traffic satisfy the fourth matching condition, the smart network card determines the second congestion control algorithm parameters .
  • the algorithm matching feature satisfies different matching conditions
  • different congestion control algorithm parameters are matched to match different congestion control algorithms, so as to fully utilize the network bandwidth and improve the comprehensive service performance.
  • the smart network card determines that the algorithm matches the one of the traffic A feature-matched congestion control algorithm, comprising: determining, by the smart network card, to perform congestion control on one of the at least two types of traffic, and not enabling the congestion control algorithm on the other of the at least two types of traffic; and the smart network card determines a congestion control algorithm that matches the algorithm matching feature of one of the flows.
  • a network congestion control device in a second aspect, includes an intelligent network card, and the intelligent network card is used to obtain at least two types of traffic to be transmitted; the intelligent network card is used to identify the at least two types of traffic.
  • the algorithm matching feature of the traffic; the smart network card is further configured to determine a congestion control algorithm that matches the algorithm matching feature of the any traffic when it is determined to perform congestion control on any one of the at least two traffics ; and the intelligent network card is further configured to perform congestion control on the any kind of flow by adopting a congestion control algorithm that matches the algorithm matching feature of the any kind of flow.
  • the smart network card is configured to perform at least one of the following operations: according to a field for identifying the characteristics of the traffic, the algorithm for identifying the traffic matches the characteristics, and the field includes at least one of the following: the traffic Type, quality of service, service type, Differentiated Services Code Point DSCP; or according to the characteristics of the traffic itself, identifying the algorithm matching characteristics of the traffic, the characteristics of the traffic itself include at least one of the following: the amount of data in the traffic, The start time of the traffic, the end time of the traffic, the address information of the opposite end of the traffic, and the custom traffic characteristics.
  • the network congestion control device further includes a configuration tool; the configuration tool is configured to send configuration information to the smart network card, the configuration information including algorithm matching characteristics of at least two types of traffic and at least The matching relationship between the two congestion control algorithms; and the smart network card is further configured to store the matching relationship between the algorithm matching characteristics of the at least two types of traffic and the at least two congestion control algorithms.
  • the smart network card is further configured to determine that congestion control is performed on the at least two types of traffic; and the smart network card is further configured to determine the connection with each of the at least two types of traffic.
  • Algorithm matching Congestion control algorithm for feature matching is further configured to determine that congestion control is performed on the at least two types of traffic.
  • the smart network card is configured to: determine a first congestion control algorithm when the algorithm matching characteristics of the flows in the at least two kinds of flows satisfy a first matching condition; and in the at least two kinds of flows When the algorithm matching feature of the traffic satisfies the second matching condition, the second congestion control algorithm is determined.
  • the smart network card is configured to: determine the first congestion control algorithm parameter when the algorithm matching characteristics of the traffic in the at least two types of traffic satisfy a third matching condition; and the at least two types of traffic When the algorithm matching feature of the medium traffic satisfies the fourth matching condition, the second congestion control algorithm parameter is determined.
  • the smart network card is further configured to: determine to perform congestion control on one of the at least two types of traffic, and disable the other traffic from the at least two types of traffic a congestion control algorithm; and determining a congestion control algorithm that matches the algorithm matching characteristic of one of the flows.
  • a computer-readable storage medium where instructions are stored in the computer-readable storage medium, when the computer-readable storage medium is run on a computer, the computer is made to execute the first aspect or any implementation of the first aspect the method described.
  • a computer program product comprising instructions which, when run on a computer, cause the computer to execute the above-mentioned first aspect or any one of the first aspects to implement the method.
  • a chip is provided, and the chip is coupled with a memory, and implements the method in the first aspect or any one of the first aspects of the embodiments of the present application.
  • Coupled in the embodiments of the present application means that two components are directly or indirectly combined with each other.
  • Figure 1 is a schematic diagram of the protocol comparison between TCP and RDMA/RoCE
  • FIG. 2 is a schematic diagram of different forms of the RDMA protocol
  • Figure 3 is a schematic diagram of the basic principle of the DCQCN algorithm
  • FIG. 4 is a schematic diagram of the architecture of a data center network
  • FIG. 5 is a schematic structural diagram of a network congestion control apparatus according to an embodiment of the present application.
  • FIG. 6 is a detailed structural diagram of the smart network card 101 shown in FIG. 5;
  • FIG. 7 is a schematic structural diagram of another network congestion control apparatus provided by an embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a network congestion control method provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of the effect of implementing the network congestion control method mentioned in the embodiment of the present application.
  • FIG. 10 is a schematic flowchart of another network congestion control method provided by an embodiment of the present application.
  • FIG. 11 is a schematic flowchart of still another network congestion control method provided by an embodiment of the present application.
  • the CC algorithm in this application may be the DCQCN algorithm, or may be other algorithms.
  • FIG. 3 it is a schematic diagram of the basic principle of the DCQCN algorithm.
  • the involved network element equipment includes a sender network interface controller (also called a response point (RP) here), a switch (here is a Congestion point (congestion point, CP)), receiver network card (here also called notification point (notification point, NP)), the basic workflow is:
  • RP response point
  • CP Congestion point
  • NP notification point
  • the RP sends data packets to the NP at the default rate
  • the CP will mark an explicit congestion notification (ECN) in the packet header according to the queue backlog, indicating that the packet "experiences congestion";
  • ECN explicit congestion notification
  • the NP receives the data packet and checks the ECN mark. If it marks "experienced congestion”, it generates a congestion notification packet (CNP) according to certain rules and sends it to the RP;
  • CNP congestion notification packet
  • the RP When the RP receives the CNP, it will reduce the sending rate according to the predetermined rules
  • the RP adjusts the sending rate according to the condition of the subsequent CNP. If the subsequent CNP is received within a certain period of time, it will continue to decelerate according to the algorithm agreement. Otherwise, the transmission rate will be increased according to the algorithm agreement.
  • the DCQCN algorithm generally meets the general requirements of fairness, stability, and robustness.
  • DCQCN is based on the network feedback mechanism, the response rate is not fast; in addition, DCQCN performs tentative rate adjustment through the additive-increase/multiplicative-decrease (AIMD) mechanism, resulting in slower rate convergence. Therefore, it is not difficult to find that in some application scenarios, DCQCN may experience problems such as untimely slowdown, slow rate convergence, serious backlog of network queues, and insufficient throughput due to excessive slowdown.
  • AIMD additive-increase/multiplicative-decrease
  • DCQCN may have problems in some scenarios, since RoCE congestion control needs to be implemented by network card hardware, and DCQCN is an algorithm that has been implemented by hardware and has stable overall performance, most commercial RoCEv2 network cards are still only built-in With DCQCN (or its variants) as the only RoCE congestion control mechanism, it is not possible to switch to other algorithms when necessary to avoid the performance drawbacks of DCQCN.
  • the present application provides a network congestion control scheme, which is a congestion control scheme based on hardware matching.
  • a network congestion control scheme which is a congestion control scheme based on hardware matching.
  • an intelligent network card obtains the traffic to be transmitted, it can identify the algorithm matching characteristics of the traffic, and perform a congestion control algorithm according to the algorithm matching characteristics of the traffic. Matching, different algorithm matching features can match different congestion control algorithms, so that the use of hardware-based network congestion control algorithms can be flexibly realized.
  • the solution of the present application can be applied to a network congestion control device. Specifically, it can be applied to terminal equipment and switching equipment in any switching network (such as a data center network) such as a local area network and a wide area network.
  • the terminal device may be a server in a data center.
  • Figure 4 it is a schematic diagram of the architecture of the data center network.
  • the terminal equipment in the figure can use the solution of the present application to adopt different CC algorithms for different data flows, thereby optimizing the overall performance of the network and further meeting the actual needs of users or applications.
  • the network congestion control apparatus 100 includes an intelligent network card 101 , and may also include a configuration tool 102 , and a configuration tool 102 installed in the network congestion control apparatus 100 103 on the application.
  • the smart network card 101 is used to obtain at least two kinds of traffic to be transmitted; the smart network card 101 is also used to identify the algorithm matching characteristics of the at least two kinds of traffic; When performing congestion control on any traffic flow, determine a congestion control algorithm that matches the algorithm matching feature of any traffic flow; and the intelligent network card 101 is also used to adopt the congestion control algorithm matching the algorithm matching feature of any traffic flow.
  • the control algorithm performs congestion control on any of the traffic.
  • the smart network card 101 is configured to perform at least one of the following operations: according to a field for identifying the characteristics of the traffic, the algorithm for identifying the traffic matches the characteristics, and the field includes at least one of the following: traffic type , service quality, service type, Differentiated Services Code Point DSCP; or according to the characteristics of the traffic itself, identifying the algorithm matching characteristics of the traffic, the characteristics of the traffic itself include at least one of the following: the amount of data in the traffic, the The start time of the traffic, the end time of the traffic, the address information of the peer end of the traffic, and the custom traffic characteristics.
  • the configuration tool 102 is configured to send configuration information to the smart network card 101, the configuration information including the matching relationship between algorithm matching features of at least two types of traffic and at least two congestion control algorithms; and the smart network card 101 It is also used for storing the matching relationship between the algorithm matching characteristics of the at least two kinds of traffic and the at least two congestion control algorithms.
  • the smart network card 101 is further configured to determine to perform congestion control on the at least two types of traffic; and the smart network card 101 is further configured to determine an algorithm matching with each of the at least two types of traffic Congestion control algorithm for feature matching.
  • the smart network card 101 is configured to: determine the first congestion control algorithm when the algorithm matching characteristics of the flows in the at least two kinds of flows satisfy the first matching condition; and the flow in the at least two kinds of flows When the algorithm matching feature of satisfies the second matching condition, the second congestion control algorithm is determined.
  • the smart network card 101 is configured to: determine the first congestion control algorithm parameter when the algorithm matching characteristics of the traffic in the at least two types of traffic satisfy the third matching condition; When the algorithm matching feature of the traffic satisfies the fourth matching condition, the second congestion control algorithm parameter is determined.
  • the smart network card 101 is further configured to: determine to perform congestion control on one of the at least two types of traffic, and not enable congestion on the other of the at least two types of traffic a control algorithm; and determining a congestion control algorithm that matches the algorithm matching characteristic of one of the flows.
  • the above-mentioned smart network card 101 may be constituted by an independent device, or may be an integrated chip.
  • the smart network card 101 includes: a processing unit 1011 , a storage unit 1012 , and an input and output port 1013 .
  • the processing unit 1011 may be a CPU, a graphics processing unit (GPU), a digital signal processor (DSP), a field programmable gate array (FPGA), a complex programmable Logic device (complex programming logic device, CPLD), application specific integrated circuit (application specific integrated circuit, ASIC) and other forms, used to execute congestion control algorithm;
  • storage unit 1012 may include volatile memory (volatile memory), such as random memory Access memory (random-access memory, RAM); memory may also include non-volatile memory (non-volatile memory), such as flash memory (flash memory), hard disk drive (hard disk drive, HDD) or solid-state hard disk (solid- state drive, SSD); the memory can also include a combination of the above-mentioned types of memory, used to store different CC algorithms, and
  • the network congestion control apparatus 200 includes: an intelligent network card (wherein the intelligent network card includes an intelligent network card chip 201 and an input and output port 202), a configuration tool 203, and one or more application programs 204 are installed on the network congestion control apparatus 200.
  • the smart network card chip 201 is used to receive and send network data, and it also includes a data path 2011 connected to the input and output ports 202.
  • the application program calls the smart network card chip 201 to send and receive data.
  • the application program uses a specific interface function. , call the data path 2011 to send and receive data; also include a configuration register 2012 connected to the configuration tool 203, the configuration tool 203 is a tool for reading and writing the configuration register 2012, and its form can be a configuration file, a configuration command, etc.
  • the register 2012 (which may also be other types of storage devices) is used to receive the configuration file or configuration command of the configuration tool 203, and to save the user's configuration options for the network card chip, for example, at least two traffic algorithm matching characteristics and at least two congestion control
  • the matching relationship of the algorithm the processing unit 2014 connected to the configuration register 2012, the data path 2011 and the cache unit 2013, the processing unit 2014 is used to control the processing process of the data path, such as executing a congestion control algorithm, etc., the processing unit 2014 is executing CC Before the algorithm, the required runtime variable values are read from the cache unit 2013, and after the CC algorithm is executed, the execution results that need to be saved are temporarily stored in the cache unit 2013; and the cache unit 2013 is also included.
  • the cache unit 2013 is used to save The runtime variables required by the processing unit 2014, such as saving the execution result of the congestion algorithm and the feedback information carried in the input data, etc.; the data path 2011 is connected to the input and output ports 202 for data transmission and reception, which can be directly read by the cache unit 2013 For the execution result of the congestion control algorithm, the data required by the congestion control algorithm may also be extracted from the received data, and temporarily stored in the buffer unit 2013 .
  • the input-output port 202 is a hardware module for connecting a network through a channel, and the network is not limited to a wired or wireless network.
  • FIG. 8 a schematic flowchart of a network congestion control method provided by an embodiment of the present application is applied to the foregoing network congestion control apparatus.
  • the method may include the following steps:
  • the smart network card acquires at least two types of traffic to be transmitted.
  • the application calls the input and output ports to send and receive traffic, and the input and output ports interact with the smart network card for at least two types of traffic to be transmitted. Specifically, the input and output ports send the received traffic to the smart network card, and the smart network card decapsulates the received traffic; or the smart network card encapsulates the sent traffic generated by the application and sends it to the input and output ports for sending.
  • the input and output ports and the smart network card can interact with more than one kind of traffic at the same time, and can interact with more than two kinds of traffic at the same time.
  • the resource requirements of at least two types of traffic transmitted by the device exceed the available portion of the device, which may cause network congestion.
  • the smart network card identifies the algorithm matching features of the at least two types of traffic.
  • Algorithm matching features refer to features used for congestion control algorithm matching.
  • the algorithm matching feature may be a feature added to the flow, such as a dedicated field for identifying the feature of the flow; or the algorithm matching feature may be a feature of the flow itself.
  • the intelligent network card can identify the algorithm matching characteristics of the at least two kinds of traffic mentioned above.
  • different traffic may have different algorithm matching characteristics.
  • different congestion control algorithms are matched, so as to fully utilize the network bandwidth and improve the comprehensive performance of services, rather than for each type of algorithm matching characteristics.
  • the traffic adopts a certain fixed CC algorithm to fairly allocate the link bandwidth for different traffic.
  • the intelligent NIC may determine to perform congestion control on at least two types of traffic, and the intelligent NIC determines a congestion control algorithm that matches the algorithm matching characteristics of each of the at least two types of traffic. That is, congestion control is performed for each type of traffic. Specifically, when the algorithm matching feature of any one of the at least two kinds of traffic satisfies the first matching condition, the smart network card determines to use the first CC algorithm; the algorithm matching feature of any one of the at least two kinds of traffic satisfies the second matching condition When the conditions are matched, the smart network card determines to use the second CC algorithm.
  • the first matching condition is: traffic class ⁇ 3, the corresponding first CC algorithm is CC_A; the second matching condition is traffic class>3, the corresponding second CC
  • the algorithm is CC_B.
  • CC_A tends to respond quickly to network feedback and reduce backlog;
  • CC_B tends to send as soon as possible to preempt link bandwidth.
  • the application can actively distinguish the transmission performance requirements of different traffic, and include a field to identify the traffic class in the traffic. For example, the traffic 1 that needs to respond quickly to network feedback and reduce the backlog is marked with a traffic class of 2, and the traffic that needs to be sent as soon as possible to preempt link bandwidth 2 is marked with a traffic class of 4.
  • the smart NIC When the smart NIC obtains the traffic, it can identify the value of its traffic class, so as to match the algorithm of CC_A for traffic 1 and the algorithm of CC_B for traffic 2. It can be seen that the application program calls different CC algorithms to perform differentiated transmission control, which solves the limitation caused by a single CC algorithm to treat all traffic uniformly, which is beneficial to further meet the actual needs of the application.
  • Traffic is divided into two types by the traffic class field (or other fields).
  • the CC_A algorithm quickly responds to the congestion signal fed back by the network, reducing the amount of large data and low-priority traffic (such as data Backup and other background traffic), actively reduce congestion, CC_B algorithm tries to maintain a stable transmission rate, so that small data volume, high priority traffic (such as control signaling, interactive operations and other delay-sensitive traffic) are sent as soon as possible. In this way, the comprehensive service performance can be improved while ensuring full utilization of the network bandwidth.
  • FIG. 9 shows a schematic diagram of the effect of implementing the method of this embodiment.
  • there are two types of traffic in the database service network which are background flows with large data volume, such as database backup operations, and small data volume but delay.
  • Latency-sensitive streams such as database query operations.
  • the background flow occupies the link bandwidth for a long time, and the bandwidth allocated by the delay flow determines the completion time of the delay flow. It is reflected in the delay performance;
  • the time it takes to occupy the network is inversely proportional to its occupied bandwidth. Therefore, if the CC algorithm converges quickly, the delay stream can obtain greater bandwidth, the completion time of the delay stream can be shortened, and the completion time of the background stream remains unchanged when the overall amount of data sent remains unchanged, that is, the delay of the delay stream is shortened without affecting the performance of the background stream. ;
  • the processing mechanisms of different CC algorithms are different, and different types of traffic can be processed differently in the same network.
  • the delay stream can be sent as soon as possible , to obtain an overall more optimized comprehensive performance.
  • the smart NIC may determine to perform congestion control on one of the at least two types of traffic and not enable the congestion control algorithm on the other of the at least two types of traffic, and the smart NIC may determine to perform congestion control on one of the at least two types of traffic
  • the traffic algorithm matches the feature-matched congestion control algorithm.
  • the congestion control algorithm that matches the algorithm matching feature of one of the flows can be the above-mentioned DCQCN algorithm, which is of course not limited to the DCQCN algorithm; the CC algorithm is not enabled for the other flow, that is, best-effort transmission, and no response to feedback signals such as network congestion.
  • the method in this embodiment can be used to match an appropriate CC algorithm according to the identified algorithm matching features, so as to avoid other data affecting the important traffic. Delayed sending of data.
  • the smart network card uses a congestion control algorithm that matches the algorithm matching feature of any kind of traffic to perform congestion control on any kind of traffic.
  • the smart network card can support multiple CC algorithms enabled at the same time, and can record runtime variables for different CC algorithm caches.
  • the smart network card when acquiring the traffic to be transmitted, can identify the algorithm matching characteristics of the traffic, and perform congestion control algorithm matching according to the algorithm matching characteristics of the traffic.
  • the matching features can match different congestion control algorithms, so that the use of hardware-based network congestion control algorithms can be flexibly realized.
  • FIG. 10 it is a schematic flowchart of another network congestion control method provided by an embodiment of the present application.
  • the method may include the following steps:
  • the configuration tool sends configuration information to the smart network card, where the configuration information includes a matching relationship between algorithm matching characteristics of at least two types of traffic and at least two congestion control algorithms.
  • This embodiment allows the user to set enabling conditions of different CC algorithms in the configuration register of the smart network card through a configuration tool, that is, CC algorithms that match the matching characteristics of different algorithms.
  • the configuration information can be sent to the configuration register in the form of a configuration command or a configuration file.
  • the smart network card stores the matching relationship between the algorithm matching characteristics of the at least two types of traffic and the at least two congestion control algorithms.
  • the configuration register of the smart network card After receiving the configuration information sent by the configuration tool, the configuration register of the smart network card stores the configuration information, that is, the configuration register stores the matching relationship between the algorithm matching characteristics of at least two kinds of traffic and the at least two congestion control algorithms (or the corresponding relationship, or association).
  • the specific field is a field used to identify characteristics of traffic, and the field includes traffic class, quality of service, type of service/class of service, differentiated services code point (differentiated services) code point, DSCP), VLAN priority, OpCode, etc.
  • the traffic class field is initially empty. If the application calls the input and output ports to receive traffic 1, and traffic 1 needs to respond quickly to network feedback to reduce the backlog of traffic, then assign the value 2 to this field; if the application calls the input and output ports to send traffic 2, traffic 2 needs to be sent as soon as possible , the traffic that preempts the link bandwidth is assigned a value of 4 to this field.
  • the input and output ports interact with the smart network card with at least two types of traffic to be transmitted.
  • step S101 of the embodiment shown in FIG. 8 For the specific implementation of this step, reference may be made to step S101 of the embodiment shown in FIG. 8 .
  • the intelligent network card identifies the algorithm matching characteristics of the at least two types of traffic according to the fields used to identify the characteristics of the at least two types of traffic.
  • the smart network card When the smart network card obtains the traffic, it can identify the value of its traffic class. For example, the traffic class that identifies traffic 1 above has a value of 2, and the traffic class that identifies traffic 2 above has a value of 4.
  • the smart network card determines whether the algorithm matching feature of each of the at least two types of traffic satisfies the first matching condition, and if yes, executes step S207; otherwise, the algorithm matching feature of the traffic meets the second matching condition, executes step S208.
  • the first matching condition is: traffic class ⁇ 3, the corresponding first CC algorithm is CC_A; the second matching condition is traffic class>3, and the corresponding second CC algorithm is CC_B.
  • CC_A tends to respond quickly to network feedback and reduce backlog;
  • CC_B tends to send as soon as possible to preempt link bandwidth.
  • the algorithm matching feature of the traffic satisfies the first matching condition, and the smart network card determines a first congestion control algorithm and uses the first congestion control algorithm to perform congestion control on the traffic.
  • the algorithm matching feature of the traffic satisfies the second matching condition, and the smart network card determines a second congestion control algorithm and uses the second congestion control algorithm to perform congestion control on the traffic.
  • the smart NIC recognizes the value of its traffic class and matches the algorithm of CC_A for traffic 1 and the algorithm of CC_B for traffic 2. It can be seen that the application program calls different CC algorithms to perform differentiated transmission control, which solves the limitation caused by a single CC algorithm to treat all traffic uniformly, which is beneficial to further meet the actual needs of the application.
  • the matching conditions can also be ambiguous, adaptive rule descriptions.
  • the matching conditions of the CC algorithm can be some form of optimization objective, for example, the overall network delay is controlled within T time, the maximum queue length in the network is within L, and so on.
  • Traffic is divided into two types by the traffic class field (or other fields).
  • the CC_A algorithm quickly responds to the congestion signal fed back by the network, reducing the amount of large data and low-priority traffic (such as data Backup and other background traffic), actively reduce congestion, CC_B algorithm tries to maintain a stable transmission rate, so that small data volume, high priority traffic (such as control signaling, interactive operations and other delay-sensitive traffic) are sent as soon as possible. In this way, the comprehensive service performance can be improved while ensuring full utilization of the network bandwidth.
  • the above step S206 can be replaced by step A: the smart network card judges whether the algorithm matching feature of each of the at least two types of traffic satisfies the third matching condition, if so, execute step B; otherwise , the algorithm matching feature of the traffic satisfies the fourth matching condition, and step C is performed; and the above step S207 can be replaced with step B: when the algorithm matching feature of the traffic in at least two kinds of traffic satisfies the third matching condition, determine the first congestion control algorithm parameter ; and the above step S208 may be replaced by step C: when the algorithm matching characteristics of the traffic in at least two traffic flows meet the fourth matching condition, determine the second congestion control algorithm parameter.
  • the parameters of the CC algorithm may include one or more of the following: adjustment range and time interval for adjusting the sending rate, initial values and coefficients in the algorithm calculation process, frequency of sending signaling packets, and the like.
  • the smart NIC recognizes the value of its traffic class, matches algorithm parameter 1 for traffic 1, and matches algorithm parameter 2 for traffic 2.
  • Algorithm parameter 1 and algorithm parameter 2 can be different parameters of the same CC algorithm or different CC algorithms. different parameters. It can be seen that the application program calls different CC algorithm parameters to perform differentiated transmission control, which solves the limitation caused by a single CC algorithm parameter to treat all traffic uniformly, which is beneficial to further meet the actual needs of the application.
  • FIG. 11 it is a schematic flowchart of another network congestion control method provided by an embodiment of the present application.
  • the method may include the following steps:
  • the configuration tool sends configuration information to the smart network card, where the configuration information includes the matching relationship between algorithm matching characteristics of at least two types of traffic and at least two congestion control algorithms.
  • step S201 in the embodiment shown in FIG. 10 .
  • the smart network card stores the matching relationship between the algorithm matching characteristics of at least two types of traffic and at least two congestion control algorithms.
  • step S202 for the specific implementation of this step, reference may be made to step S202 in the embodiment shown in FIG. 10 .
  • the smart network card acquires at least two types of traffic to be transmitted.
  • step S101 in the embodiment shown in FIG. 8 or step S203 in the embodiment shown in FIG. 10 reference may be made to step S101 in the embodiment shown in FIG. 8 or step S203 in the embodiment shown in FIG. 10 .
  • the intelligent network card identifies the algorithm matching characteristics of the traffic according to the characteristics of at least two types of traffic itself.
  • the traffic itself has some measurable characteristics, including: the amount of data in the traffic (message size), the time stamp of the traffic (including the start time of the traffic and the deadline time of the traffic), the address of the opposite end of the traffic information (eg, IPv4, IPv6 addresses), custom traffic characteristics, etc. These features can be used as algorithmic matching features for traffic.
  • traffic with a small amount of data can be sent first, and traffic with an earlier deadline can be sent first.
  • Different addresses reflect different path lengths (hops), and different CC algorithms can be used, so you can The CC algorithm is distinguished by using the matching conditions in this embodiment.
  • the smart network card After acquiring the at least two types of traffic, the smart network card can identify the at least one algorithm matching feature of the traffic through an existing identification technology.
  • the intelligent network card determines to perform congestion control on at least two types of traffic.
  • the at least two types of traffic above are high-priority traffic, and the smart network card determines that congestion control needs to be performed on the at least two types of traffic.
  • the smart network card determines, according to the above matching relationship, a congestion control algorithm that matches the algorithm matching feature of each of the at least two types of traffic, and performs congestion control on each traffic according to the matched congestion control algorithm.
  • the smart network card searches the configuration register for the algorithm matching feature of each identified traffic, and performs congestion control on each traffic according to the matching congestion control algorithm.
  • the smart network card can identify the algorithm matching characteristics of the traffic according to the characteristics of the traffic itself, and determine the congestion control algorithm matching the algorithm matching characteristics of the traffic according to the matching relationship pre-configured by the configuration tool, and according to the matching
  • the congestion control algorithm of the network performs congestion control on each type of traffic, so that the use of hardware-based network congestion control algorithms can be flexibly realized.
  • At least one (a) of a, b, or c can represent: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c may be single or multiple .
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same function and effect. Those skilled in the art can understand that words such as “first” and “second” do not limit the quantity and execution order, and the words “first” and “second” are not necessarily different.
  • words such as “exemplary” or “for example” are used to represent examples, illustrations or illustrations. Any embodiments or designs described in the embodiments of the present application as “exemplary” or “such as” should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of words such as “exemplary” or “such as” is intended to present the related concepts in a specific manner to facilitate understanding.
  • the disclosed system, apparatus and method may be implemented in other manners.
  • the division of the unit is only for one logical function division, and there may be other division methods in actual implementation, for example, multiple units or components may be combined or integrated into another system, or some features may be ignored, or not implement.
  • the shown or discussed mutual coupling, or direct coupling, or communication connection may be through some interfaces, indirect coupling or communication connection of devices or units, and may be in electrical, mechanical or other forms.
  • Units described as separate components may or may not be physically separated, and components shown as units may or may not be physical units, that is, may be located in one place, or may be distributed over multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution in this embodiment.
  • the above-mentioned embodiments it may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
  • software it can be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions.
  • the computer program instructions When the computer program instructions are loaded and executed on a computer, the procedures or functions according to the embodiments of the present application are generated in whole or in part.
  • the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted over a computer-readable storage medium.
  • the computer instructions can be sent from one website site, computer, server, or data center to another by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.)
  • wire e.g. coaxial cable, fiber optic, digital subscriber line (DSL)
  • wireless e.g., infrared, wireless, microwave, etc.
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, data center, etc. that includes an integration of one or more available media.
  • the available media may be read-only memory (ROM), or random access memory (RAM), or magnetic media, such as floppy disks, hard disks, magnetic tapes, magnetic disks, or optical media, such as , digital versatile disc (digital versatile disc, DVD), or semiconductor media, for example, solid state disk (solid state disk, SSD) and the like.
  • ROM read-only memory
  • RAM random access memory
  • magnetic media such as floppy disks, hard disks, magnetic tapes, magnetic disks, or optical media, such as , digital versatile disc (digital versatile disc, DVD), or semiconductor media, for example, solid state disk (solid state disk, SSD) and the like.

Landscapes

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

Abstract

本申请公开了一种网络拥塞控制方法及装置。该网络拥塞控制方案是基于硬件匹配的拥塞控制方案,智能网卡在获取到待传输的流量时,可以识别该流量的算法匹配特征,并根据流量的算法匹配特征进行拥塞控制算法匹配,不同的算法匹配特征可以匹配不同的拥塞控制算法,从而可以灵活地实现基于硬件的网络拥塞控制算法的使用。

Description

网络拥塞控制方法及装置
本申请要求于2020年10月29日提交中国国家知识产权局、申请号为202011184710.6、发明名称为“网络拥塞控制方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种网络拥塞控制方法及装置。
背景技术
计算机网络中的资源是有限的。某段时间内网络中对资源的需求超过了网络中的可用部分,而导致网络性能下降的情况就是网络拥塞。需要对网络拥塞进行控制,以防止过多的数据注入到网络中。
拥塞尤其容易发生在大规模的数据交换场景中,例如数据中心中。在当前的数据中心中,很多应用使用传输控制协议(transmission control protocol,TCP)作为传输协议在网络中进行数据的传输和交换。而在TCP中,核心的就是拥塞控制,它对TCP的性能有着决定性的影响。TCP的拥塞控制算法一直在迭代更新,但TCP采用的均是基于内核实现的拥塞控制(congestion control,CC)算法。
然而,随着网络的发展,对网络带宽、延迟以及稳定性的要求比过去的互联网提升了一到两个数量级。在数据中心中,传统的基于内核实现的拥塞控制算法很难满足这么高的要求。
随着远程直接内存访问(remote direct memory access,RDMA)无损网络的出现,如图1所示,RDMA将传输协议卸载于智能网卡上,同时使用内核旁路(kernel bypass)的零拷贝技术来达到最小化系统开销的目的,极大地降低了网络延迟时间,并且释放了大量中央处理单元(central processing unit,CPU)资源,使CPU的负载几乎为零。与基于软件的传输控制协议/网络协议(transmission control protocol/internet protocol,TCP/IP)网络协议栈相比,RDMA能够提供超低延迟和接近零的CPU开销,因此在数据中心网络中被广泛部署。为了与数据中心大规模使用的以太网兼容,需要基于传统的IP以太网络来承载RDMA。因此,如图2所示,在数据中心中,把RDMA传输层数据包封装在用户数据报协议(user datagram protocol,UDP)/网络协议(internet protocol,IP)数据包中,通过以太网传输,这就是RoCEv2。而不论是RDMA还是RoCEv2,一个很重要的核心就是拥塞控制算法。但是,传统的在内核中实现的基于滑动窗口的拥塞控制方案已经很难适用于RDMA网络,基于智能网卡的拥塞控制方案应运而生。
在TCP协议下,CC算法由软件实现,这允许研究人员和开发者快速设计和验证新的CC算法,所以TCP协议下可用的CC算法比较多。然而,现在绝大多数的商用RoCEv2网卡仍然仅内置了数据中心量化拥塞通知(data center quantized congestion notification,DCQCN)(或其变体)作为唯一的聚合以太网远程直接内存访问(RDMA over converged Ethernet,RoCE)拥塞控制机制,不能在有需要的时候切换到其他算法来避免DCQCN的性能缺陷。
与RoCE网卡通常仅内置一种CC算法相比,TCP协议下的多种CC算法之间,既可以互相切换,也可以互相搭配使用。例如,在Linux操作系统中,既可以全局性地切换默认的CC算法;也可以通过setsockopt函数,根据自定义条件,为不同的TCP连接配置不同的CC算法。由于不同的应用程序有着不同的性能需求,所以,合理搭配使用不同CC算法,获得的性能很有可能超过单一使用任何一种CC算法的情况。
然而,由于TCP协议的CC算法通常由软件实现,效率受限,整体性能不高,因此,尽管TCP协议的CC算法具有足够的灵活性,却无法直接用于RoCE等依赖硬件CC算法的网络。
有鉴于此,需要提高基于硬件的网络拥塞控制算法的使用的灵活性。
发明内容
本申请提供一种网络拥塞控制方法及装置,以提高基于硬件的网络拥塞控制算法的使用的灵活性。
第一方面,提供了一种网络拥塞控制方法,应用于网络拥塞控制装置,所述网络拥塞控制装置包括智能网卡,所述方法包括:所述智能网卡获取待传输的至少两种流量;所述智能网卡识别所述至少两种流量的算法匹配特征;当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法;以及所述智能网卡采用与所述任一种流量的算法匹配特征匹配的拥塞控制算法对所述任一种流量进行拥塞控制。在该方法中,该网络拥塞控制方案是基于硬件匹配的拥塞控制方案,智能网卡在获取到待传输的流量时,可以识别该流量的算法匹配特征,并根据流量的算法匹配特征进行拥塞控制算法匹配,不同的算法匹配特征可以匹配不同的拥塞控制算法,从而可以灵活地实现基于硬件的网络拥塞控制算法的使用。
在一种可能的实现中,所述智能网卡识别所述至少两种流量的算法匹配特征,包括以下至少一种操作:所述智能网卡根据用于标识流量的特征的字段,识别所述流量的算法匹配特征,所述字段包括以下至少一种:流量类型,服务质量,服务类型,差分服务代码点DSCP;或所述智能网卡根据流量自身的特征,识别所述流量的算法匹配特征,所述流量自身的特征包括以下至少一种:所述流量中的数据量,所述流量的开始时间,所述流量的截止时间,所述流量对端的地址信息,自定义的流量特征。在该实现中,应用程序调用智能网卡进行数据收发时,可以修改特定字段从而标识流量的特征,从而智能网卡可以根据用于标识流量的特征的字段,识别流量的算法匹配特征;或者智能网卡可以根据流量自身的特征,识别流量的算法匹配特征。
在又一种可能的实现中,所述网络拥塞控制装置还包括配置工具,所述方法还包括:所述配置工具向所述智能网卡发送配置信息,所述配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;以及所述智能网卡存储所述至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。在该实现中,智能网卡可以预先配置至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系,存储到配置寄存器,这样,智能网卡识别出流量的算法匹配特征后,可以根据识别出的算法匹配特征,匹配相应的拥塞控制算法。
在又一种可能的实现中,所述当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法,包括:所述智能网卡确定对所述至少两种流量进行拥塞控制;以及所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。
在又一种可能的实现中,所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法,包括:所述至少两种流量中流量的算法匹配特征满足第一匹配条件时,所述智能网卡确定第一拥塞控制算法;以及所述至少两种流量中流量的算法匹配特征满足第二匹配条件时,所述智能网卡确定第二拥塞控制算法。在该实现中,算法匹配特征 满足不同匹配条件时,匹配不同的拥塞控制算法,以在充分利用网络带宽的同时,提升业务综合性能。
在又一种可能的实现中,所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法,包括:所述至少两种流量中流量的算法匹配特征满足第三匹配条件时,所述智能网卡确定第一拥塞控制算法参数;以及所述至少两种流量中流量的算法匹配特征满足第四匹配条件时,所述智能网卡确定第二拥塞控制算法参数。在该实现中,算法匹配特征满足不同匹配条件时,匹配不同的拥塞控制算法参数,从而匹配不同的拥塞控制算法,以在充分利用网络带宽的同时,提升业务综合性能。
在又一种可能的实现中,所述当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法,包括:所述智能网卡确定对所述至少两种流量中的其中一种流量进行拥塞控制,对所述至少两种流量中的另一种流量不启用拥塞控制算法;以及所述智能网卡确定与所述其中一种流量的算法匹配特征匹配的拥塞控制算法。
第二方面,提供了一种网络拥塞控制装置,所述网络拥塞控制装置包括智能网卡,所述智能网卡用于获取待传输的至少两种流量;所述智能网卡用于识别所述至少两种流量的算法匹配特征;所述智能网卡还用于当确定对所述至少两种流量中的任一种流量进行拥塞控制时,确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法;以及所述智能网卡还用于采用与所述任一种流量的算法匹配特征匹配的拥塞控制算法对所述任一种流量进行拥塞控制。
在一种可能的实现中,所述智能网卡用于执行以下至少一种操作:根据用于标识流量的特征的字段,识别所述流量的算法匹配特征,所述字段包括以下至少一种:流量类型,服务质量,服务类型,差分服务代码点DSCP;或根据流量自身的特征,识别所述流量的算法匹配特征,所述流量自身的特征包括以下至少一种:所述流量中的数据量,所述流量的开始时间,所述流量的截止时间,所述流量对端的地址信息,自定义的流量特征。
在又一种可能的实现中,所述网络拥塞控制装置还包括配置工具;所述配置工具用于向所述智能网卡发送配置信息,所述配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;以及所述智能网卡还用于存储所述至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
在又一种可能的实现中,所述智能网卡还用于确定对所述至少两种流量进行拥塞控制;以及所述智能网卡还用于确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。
在又一种可能的实现中,所述智能网卡用于:所述至少两种流量中流量的算法匹配特征满足第一匹配条件时,确定第一拥塞控制算法;以及所述至少两种流量中流量的算法匹配特征满足第二匹配条件时,确定第二拥塞控制算法。
在又一种可能的实现中,所述智能网卡用于:所述至少两种流量中流量的算法匹配特征满足第三匹配条件时,确定第一拥塞控制算法参数;以及所述至少两种流量中流量的算法匹配特征满足第四匹配条件时,确定第二拥塞控制算法参数。
在又一种可能的实现中,所述智能网卡还用于:确定对所述至少两种流量中的其中一种流量进行拥塞控制,对所述至少两种流量中的另一种流量不启用拥塞控制算法;以及确定与所述其中一种流量的算法匹配特征匹配的拥塞控制算法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种实现所述的方法。
第四方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一种实现所述的方法。
第五方面,提供了一种芯片,所述芯片与存储器耦合,执行本申请实施例第一方面或第一方面中任一实现所述的方法。
需要说明的是,本申请实施例中“耦合”是指两个部件彼此直接或间接地结合。
附图说明
图1为TCP与RDMA/RoCE的协议对比示意图;
图2为RDMA协议的不同形态示意图;
图3为DCQCN算法的基本原理示意图;
图4为数据中心网络的架构示意图;
图5为本申请实施例提供的一种网络拥塞控制装置的结构示意图;
图6为图5中所示的智能网卡101的详细结构示意图;
图7为本申请实施例提供的又一种网络拥塞控制装置的结构示意图;
图8为本申请实施例提供的一种网络拥塞控制方法的流程示意图;
图9为实施本申请实施例提到的网络拥塞控制方法的效果示意图;
图10为本申请实施例提供的又一种网络拥塞控制方法的流程示意图;
图11为本申请实施例提供的又一种网络拥塞控制方法的流程示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
首先介绍下DCQCN算法。本申请中的CC算法可以是DCQCN算法,还可以是其他的算法。
如图3所示,为DCQCN算法的基本原理示意图,涉及的网元设备包括发送端网卡(sender network interface controller)(在这里又称为响应点(reaction point,RP))、交换机(在这里是拥塞点(congestion point,CP))、接收端网卡(在这里又称为通知点(notification point,NP)),其基本工作流程为:
1.RP向NP以默认速率发送数据报文;
2.若报文在CP发生拥塞,导致队列积压,CP根据队列积压情况在报文头中打显示拥塞通知(explicit congestion notification,ECN)标记,表示报文“经历拥塞”;
3.NP接收到数据报文,检查ECN标记,若标记了“经历拥塞”,则按照一定规则,生成拥塞通知报文(congestion notification packet,CNP),发给RP;
4.RP收到CNP,则按照预定规则降低发送速率;
5.发生降速后,RP根据后续CNP的情况调节发送速率,若在一定时间内收到后续CNP,则按照算法约定继续降速,否则,按照算法约定提升发送速率。
DCQCN算法总体达到了公平性、稳定性、健壮性等方面的一般要求。不过,由于DCQCN是基于网络反馈的机制,响应速率不快;另外,DCQCN通过加法升高/乘法降低(additive-increase/multiplicative-decrease,AIMD)机制进行试探性的速率调节,导致速率收敛较慢。因此,不难发现,DCQCN会在某些应用场景下出现降速不及时、速率收敛慢、网络队列严重积压、过度降速导致欠吞吐等等问题。
尽管DCQCN在某些场景下可能存在问题,但由于RoCE拥塞控制需要由网卡硬件实现,而DCQCN是目前已由硬件实现的、整体性能稳定的算法,所以现在绝大多数的商用RoCEv2 网卡仍然仅内置了DCQCN(或其变体)作为唯一的RoCE拥塞控制机制,不能在有需要的时候切换到其他算法来避免DCQCN的性能缺陷。
本申请提供一种网络拥塞控制方案,是基于硬件匹配的拥塞控制方案,智能网卡在获取到待传输的流量时,可以识别该流量的算法匹配特征,并根据流量的算法匹配特征进行拥塞控制算法匹配,不同的算法匹配特征可以匹配不同的拥塞控制算法,从而可以灵活地实现基于硬件的网络拥塞控制算法的使用。
本申请的方案可应用于网络拥塞控制装置。具体地,可应用于局域网、广域网等任何交换网络(如数据中心网络)中的终端设备和交换设备。此处,终端设备可以是数据中心的服务器。如图4所示,为数据中心网络的架构示意图,图中的终端设备可以使用本申请的方案,为不同数据流量采用不同CC算法,从而优化网络整体性能,进一步满足用户或应用的实际需求。
如图5所示,为本申请实施例提供的一种网络拥塞控制装置的结构示意图,该网络拥塞控制装置100包括智能网卡101,还可以包括配置工具102,以及安装在该网络拥塞控制装置100上的应用程序103。
其中,智能网卡101用于获取待传输的至少两种流量;智能网卡101还用于识别所述至少两种流量的算法匹配特征;智能网卡101还用于当确定对所述至少两种流量中的任一种流量进行拥塞控制时,确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法;以及智能网卡101还用于采用与所述任一种流量的算法匹配特征匹配的拥塞控制算法对所述任一种流量进行拥塞控制。
在一种可能的实现中,智能网卡101用于执行以下至少一种操作:根据用于标识流量的特征的字段,识别所述流量的算法匹配特征,所述字段包括以下至少一种:流量类型,服务质量,服务类型,差分服务代码点DSCP;或根据流量自身的特征,识别所述流量的算法匹配特征,所述流量自身的特征包括以下至少一种:所述流量中的数据量,所述流量的开始时间,所述流量的截止时间,所述流量对端的地址信息,自定义的流量特征。
在又一种可能的实现中,配置工具102用于向智能网卡101发送配置信息,所述配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;以及智能网卡101还用于存储所述至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
在又一种可能的实现中,智能网卡101还用于确定对所述至少两种流量进行拥塞控制;以及智能网卡101还用于确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。
在又一种可能的实现中,智能网卡101用于:所述至少两种流量中流量的算法匹配特征满足第一匹配条件时,确定第一拥塞控制算法;以及所述至少两种流量中流量的算法匹配特征满足第二匹配条件时,确定第二拥塞控制算法。
在又一种可能的实现中,智能网卡101用于:所述至少两种流量中流量的算法匹配特征满足第三匹配条件时,确定第一拥塞控制算法参数;以及所述至少两种流量中流量的算法匹配特征满足第四匹配条件时,确定第二拥塞控制算法参数。
在又一种可能的实现中,智能网卡101还用于:确定对所述至少两种流量中的其中一种流量进行拥塞控制,对所述至少两种流量中的另一种流量不启用拥塞控制算法;以及确定与所述其中一种流量的算法匹配特征匹配的拥塞控制算法。
其中,上述智能网卡101可以是由独立的器件构成,也可以是集成的芯片。
如图6所示,为智能网卡101的详细结构示意图,该智能网卡101包括:处理单元1011、 存储单元1012、输入输出端口1013。其中,处理单元1011可以是CPU、图形处理器(graphics processing unit,GPU)、数字信号处理器(digital signal processor,DSP)、现场可编程逻辑门阵列(field programmable gate array,FPGA)、复杂可编程逻辑器件(complex programming logic device,CPLD)、特殊应用集成电路(application specific integrated circuit,ASIC)等形态,用于执行拥塞控制算法;存储单元1012可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合,用于存储不同CC算法,并且存储算法执行过程中需要记录的参数、变量等信息;输入输出端口1013用于接收和发送数据流量,其中,输入输出端口可以是输入端口和输出端口集成在一起,也可以是输入端口和输出端口独立设置。
如图7所示,为本申请实施例提供的又一种网络拥塞控制装置的结构示意图,该结构示意图展示了智能网卡内部的主要模块、相关的周边模块,智能网卡内部的各模块以及智能网卡与周边模块之间的连接或交互关系。该网络拥塞控制装置200包括:智能网卡(其中,智能网卡包括:智能网卡芯片201和输入输出端口202)、配置工具203,该网络拥塞控制装置200上还安装有一个或多个应用程序204。其中,智能网卡芯片201用于接收和发送网络数据,其又包括与输入输出端口202连接的数据通路2011,应用程序调用智能网卡芯片201进行数据发送和接收,具体地,应用程序通过特定接口函数,调用数据通路2011进行数据发送和接收;还包括与配置工具203连接的配置寄存器2012,该配置工具203是用于读写配置寄存器2012的工具,其形式可以是配置文件、配置命令等,配置寄存器2012(也可以是其他类型的存储器件)用于接收配置工具203的配置文件或配置命令,保存用户对网卡芯片的配置选项,例如,至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;与配置寄存器2012、数据通路2011以及缓存单元2013连接的处理单元2014,该处理单元2014用于控制数据通路的处理过程,例如执行拥塞控制算法等,该处理单元2014在执行CC算法前,从缓存单元2013读取所需的运行时变量值,在执行CC算法后,将需要保存的执行结果暂存到缓存单元2013;以及还包括缓存单元2013,该缓存单元2013用于保存处理单元2014所需的运行时变量,例如保存拥塞算法执行结果和输入数据中携带的反馈信息等;数据通路2011与输入输出端口202相连,进行数据发送和接收,可以通过缓存单元2013直接读取拥塞控制算法执行结果,也可以从接收到的数据中提取拥塞控制算法所需的数据,并暂存到缓存单元2013。输入输出端口202是用于通过信道连接网络的硬件模块,该网络不限于有线或无线网络。
下面结合图4~图7所示的结构,对本申请提供的网络拥塞控制方法进行描述:
如图8所示,为本申请实施例提供的一种网络拥塞控制方法的流程示意图,应用于上述网络拥塞控制装置。示例性地,该方法可以包括以下步骤:
S101、智能网卡获取待传输的至少两种流量。
应用程序调用输入输出端口进行流量收发,输入输出端口与智能网卡交互待传输的至少两种流量。具体地,输入输出端口将接收到的流量发送给智能网卡,智能网卡解封装接收到的流量;或者智能网卡将应用程序产生的将发送的流量封装后发送给输入输出端口进行发送。
输入输出端口与智能网卡同时交互的可以不止一种流量,可以同时交互两种以上的流量。该装置传输的至少两种流量对资源的需求超过了该装置的可用部分,则可能会导致网络拥塞。
S102、智能网卡识别上述至少两种流量的算法匹配特征。
每种流量有对应的算法匹配特征。算法匹配特征是指用于进行拥塞控制算法匹配的特征。 该算法匹配特征可以是外加于流量的特征,例如用于标识该流量的特征的专用字段;或者该算法匹配特征可以是流量自身的特征。
智能网卡可以识别上述至少两种流量的算法匹配特征。
S103、当智能网卡确定对上述至少两种流量中的任一种流量进行拥塞控制时,智能网卡确定与任一种流量的算法匹配特征匹配的拥塞控制算法。
本实施例中,不同的流量可能具有不同的算法匹配特征,对于不同的算法匹配特征,匹配不同的拥塞控制算法,以在充分利用网络带宽的同时,提升业务综合性能,而不是对每一种流量采用某一种固定的CC算法,为不同的流量公平分配链路带宽。
在一个实现中,智能网卡可以确定对至少两种流量进行拥塞控制,并且智能网卡确定与至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。即对每种流量都进行拥塞控制。具体地,至少两种流量中的任一种流量的算法匹配特征满足第一匹配条件时,智能网卡确定采用第一CC算法;至少两种流量中的任一种流量的算法匹配特征满足第二匹配条件时,智能网卡确定采用第二CC算法。
以算法匹配特征为流量类型(traffic class)为例,其第一匹配条件为:traffic class≤3,对应的第一CC算法为CC_A;第二匹配条件为traffic class﹥3,对应的第二CC算法为CC_B。其中,CC_A偏向于迅速响应网络反馈,减少积压;CC_B偏向于尽快发送,抢占链路带宽。应用程序可以主动区分不同流量的传输性能需求,给流量中包括标识traffic class为多少的字段。例如,给需要迅速响应网络反馈,减少积压的流量1标识其traffic class为2,给需要尽快发送,抢占链路带宽的流量2标识其traffic class为4。智能网卡获取到该流量时,可以识别其traffic class的值,从而给流量1匹配CC_A的算法;给流量2匹配CC_B的算法。可见,应用程序通过显示调用不同CC算法进行有区别的传输控制,解决了单一CC算法统一对待所有流量所带来的限制,有利于进一步满足应用的实际需求。
流量通过traffic class字段(也可以是其他字段)区分为两类,当两类流量在网络中发生拥塞时,CC_A算法快速响应网络反馈的拥塞信号,降低大数据量、低优先级流量(例如数据备份等背景流量)的发送速率,主动减轻拥塞,CC_B算法尽量保持稳定的发送速率,使小数据量、高优先级流量(例如控制信令、交互操作等时延敏感的流量)尽快发送。这样,可以在保证充分利用网络带宽的同时,提升业务综合性能。
图9展示了实施本实施例的方法的效果示意图,例如,数据库业务网络中存在两类流量,分别为大数据量的背景流(background),例如,数据库备份操作,以及小数据量但时延敏感的时延流,例如,数据库查询(query)操作。
如图9所示的左上角的第1个效果示意图,两类流量同时竞争网络资源时,背景流长时间占用链路带宽,时延流所分得的带宽决定了时延流的完成时间,体现为时延性能;
如图9所示的右上角的第2个效果示意图,由于时延流的数据量小,其占用网络的时间与其占用带宽成反比,所以,如果CC算法收敛迅速,使时延流获得更大带宽,就可以缩短时延流的完成时间,而在整体发送数据量不变的情况下,背景流的完成时间也保持不变,即,时延流的时延缩短,不影响背景流的性能;
如图9所示的左下角的第3个效果示意图,单一的CC算法,通常使各类流量最终达到公平分配带宽,所以,时延流实际获得的带宽上限,可以预期是在公平带宽附近,这影响了时延流进一步提升速率并降低时延;
如图9所示的右下角的第4个效果示意图,不同CC算法的处理机制不同,可以在同一网络中区别处理不同类型的流量,利用本发明中的方法,就可以使时延流尽快发送,获得整 体更优化的综合性能。
在又一个实现中,智能网卡可以确定对至少两种流量中的其中一种流量进行拥塞控制,对至少两种流量中的另一种流量不启用拥塞控制算法,并且智能网卡确定与其中一种流量的算法匹配特征匹配的拥塞控制算法。其中,与其中一种流量的算法匹配特征匹配的拥塞控制算法可以是上述DCQCN算法,当然不限于DCQCN算法;对另一种流量不启用CC算法,即尽力发送,不响应网络拥塞等反馈信号。例如,对于优先级高,并且数据量极少的流量,例如重要但少量的控制信令,可以采用本实施例的方法根据识别出的算法匹配特征匹配合适的CC算法,避免其他数据影响该重要数据的延迟发送。
S104、智能网卡采用与任一种流量的算法匹配特征匹配的拥塞控制算法对该任一种流量进行拥塞控制。
智能网卡可以支持多种CC算法同时启用,并且可以为不同CC算法缓存记录运行时变量。
根据本申请实施例提供的一种网络拥塞控制方法,智能网卡在获取到待传输的流量时,可以识别该流量的算法匹配特征,并根据流量的算法匹配特征进行拥塞控制算法匹配,不同的算法匹配特征可以匹配不同的拥塞控制算法,从而可以灵活地实现基于硬件的网络拥塞控制算法的使用。
如图10所示,为本申请实施例提供的又一种网络拥塞控制方法的流程示意图,示例性地,该方法可以包括以下步骤:
S201、配置工具向智能网卡发送配置信息,配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
本实施例允许用户通过配置工具在智能网卡的配置寄存器中设置不同CC算法的启用条件,即与不同算法匹配特征匹配的CC算法。该配置信息可以通过配置命令或配置文件的形式发送给配置寄存器。
S202、智能网卡存储至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
智能网卡的配置寄存器接收到配置工具发送的配置信息后,存储该配置信息,即在配置寄存器中存储至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系(或者称对应关系,或关联关系)。
S203、应用程序调用输入输出端口进行数据收发时,修改特定字段以标识至少两种流量的特征。
应用程序可以主动区分不同流量的传输性能需求,修改特定字段,例如对流量中的特定字段重新赋值(特定字段初始为空或默认值)。该特定字段是用于标识流量的特征的字段,该字段包括流量类型(traffic class)、服务质量(quality of service)、服务类型(type of service/class of service)、差分服务代码点(differentiated services code point,DSCP)、VLAN优先级、OpCode等。
以算法匹配特征为traffic class为例,traffic class字段初始为空。若应用程序调用输入输出端口接收流量1,流量1为需要迅速响应网络反馈,减少积压的流量,则给该字段赋值为2;若应用程序调用输入输出端口发送流量2,流量2为需要尽快发送,抢占链路带宽的流量,则给该字段赋值为4。
S204、输入输出端口与智能网卡交互待传输的至少两种流量。
该步骤的具体实现可参考图8所示实施例的步骤S101。
S205、智能网卡根据用于标识至少两种流量的特征的字段,识别至少两种流量的算法匹 配特征。
智能网卡获取到该流量时,可以识别其traffic class的值。例如,识别上述流量1的traffic class的值为2,以及识别上述流量2的traffic class的值为4。
S206、智能网卡判断至少两种中的每种流量的算法匹配特征是否满足第一匹配条件,若是,则执行步骤S207;否则,流量的算法匹配特征满足第二匹配条件,执行步骤S208。
以算法匹配特征为traffic class为例,其第一匹配条件为:traffic class≤3,对应的第一CC算法为CC_A;第二匹配条件为traffic class﹥3,对应的第二CC算法为CC_B。其中,CC_A偏向于迅速响应网络反馈,减少积压;CC_B偏向于尽快发送,抢占链路带宽。
S207、流量的算法匹配特征满足第一匹配条件,智能网卡确定第一拥塞控制算法并采用第一拥塞控制算法对流量进行拥塞控制。
S208、流量的算法匹配特征满足第二匹配条件,智能网卡确定第二拥塞控制算法并采用第二拥塞控制算法对流量进行拥塞控制。
智能网卡识别出其traffic class的值,给流量1匹配CC_A的算法;给流量2匹配CC_B的算法。可见,应用程序通过显示调用不同CC算法进行有区别的传输控制,解决了单一CC算法统一对待所有流量所带来的限制,有利于进一步满足应用的实际需求。
另外,匹配条件也可以是不明确的、自适应的规则描述。随着机器学习等技术的发展,CC算法的匹配条件可以是某种形式的优化目标,例如,控制整体的网络时延在T时间以内,网络中的最大队列长度在L以内,等等。
流量通过traffic class字段(也可以是其他字段)区分为两类,当两类流量在网络中发生拥塞时,CC_A算法快速响应网络反馈的拥塞信号,降低大数据量、低优先级流量(例如数据备份等背景流量)的发送速率,主动减轻拥塞,CC_B算法尽量保持稳定的发送速率,使小数据量、高优先级流量(例如控制信令、交互操作等时延敏感的流量)尽快发送。这样,可以在保证充分利用网络带宽的同时,提升业务综合性能。
可替换地,在另外的实施例中,上述步骤S206可替换为步骤A:智能网卡判断至少两种中的每种流量的算法匹配特征是否满足第三匹配条件,若是,则执行步骤B;否则,流量的算法匹配特征满足第四匹配条件,执行步骤C;以及上述步骤S207可替换为步骤B:至少两种流量中流量的算法匹配特征满足第三匹配条件时,确定第一拥塞控制算法参数;以及上述步骤S208可替换为步骤C:至少两种流量中流量的算法匹配特征满足第四匹配条件时,确定第二拥塞控制算法参数。其中,CC算法参数可以包括以下一项或多项:调节发送速率的调节幅度、时间间隔,算法计算过程中的初值、系数,发送信令报文的频率等。
智能网卡识别出其traffic class的值,给流量1匹配算法参数1;给流量2匹配算法参数2,算法参数1和算法参数2可以是同一个CC算法的不同参数,也可以是不同CC算法的不同参数。可见,应用程序通过显示调用不同CC算法参数进行有区别的传输控制,解决了单一CC算法参数统一对待所有流量所带来的限制,有利于进一步满足应用的实际需求。
如图11所示,为本申请实施例提供的又一种网络拥塞控制方法的流程示意图,示例性地,该方法可以包括以下步骤:
S301、配置工具向智能网卡发送配置信息,配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
该步骤的具体实现可参考图10所示实施例的步骤S201。
S302、智能网卡存储至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
该步骤的具体实现可参考图10所示实施例的步骤S202。
S303、智能网卡获取待传输的至少两种流量。
该步骤的具体实现可参考图8所示实施例的步骤S101或图10所示实施例的步骤S203。
S304、智能网卡根据至少两种流量自身的特征,识别流量的算法匹配特征。
流量自身具有一些可衡量的特征,包括:流量中的数据量(message size),流量的时间戳(time stamp)(包括流量的开始时间和流量的截止时间(deadline time)),流量对端的地址信息(例如,IPv4、IPv6地址)、自定义的流量特征等。这些特征可以作为流量的算法匹配特征。
例如,某些场景下,数据量较小的流量可以优先发送,截止时间较早的流量可以优先发送,不同地址反映出不同的路径长度(跳数),也可以使用不同的CC算法,所以可以采用本实施例中的匹配条件进行CC算法的区分。
智能网卡获取到上述至少两种流量后,可通过已有的识别技术识别流量的上述至少一种算法匹配特征。
S305、智能网卡确定对至少两种流量进行拥塞控制。
上述至少两种流量均是优先级高的流量,智能网卡确定需要对上述至少两种流量进行拥塞控制。
S306、智能网卡根据上述匹配关系,确定与至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法,并根据匹配的拥塞控制算法对每种流量进行拥塞控制。
智能网卡根据识别出的每种流量的算法匹配特征,从配置寄存器查找与识别出的每种流量的算法匹配特征,根据匹配的拥塞控制算法对每种流量进行拥塞控制。
可见,在本实施例中,智能网卡根据流量自身的特征,可识别流量的算法匹配特征,并根据配置工具预先配置的匹配关系,确定与流量的算法匹配特征匹配的拥塞控制算法,并根据匹配的拥塞控制算法对每种流量进行拥塞控制,从而可以灵活地实现基于硬件的网络拥塞控制算法的使用。
应理解,在本申请的描述中,除非另有说明,“/”表示前后关联的对象是一种“或”的关系,例如,A/B可以表示A或B;其中A,B可以是单数或者复数。并且,在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。同时,在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。所显示或讨论的相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可 以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者通过该计算机可读存储介质进行传输。该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-only memory,ROM),或随机接入存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。

Claims (17)

  1. 一种网络拥塞控制方法,应用于网络拥塞控制装置,所述网络拥塞控制装置包括智能网卡,其特征在于,所述方法包括:
    所述智能网卡获取待传输的至少两种流量;
    所述智能网卡识别所述至少两种流量的算法匹配特征;
    当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法;
    所述智能网卡采用与所述任一种流量的算法匹配特征匹配的拥塞控制算法对所述任一种流量进行拥塞控制。
  2. 根据权利要求1所述的方法,其特征在于,所述智能网卡识别所述至少两种流量的算法匹配特征,包括以下至少一种操作:
    所述智能网卡根据用于标识流量的特征的字段,识别所述流量的算法匹配特征,所述字段包括以下至少一种:流量类型,服务质量,服务类型,差分服务代码点DSCP;或
    所述智能网卡根据流量自身的特征,识别所述流量的算法匹配特征,所述流量自身的特征包括以下至少一种:所述流量中的数据量,所述流量的开始时间,所述流量的截止时间,所述流量对端的地址信息,自定义的流量特征。
  3. 根据权利要求1或2所述的方法,其特征在于,所述网络拥塞控制装置还包括配置工具,所述方法还包括:
    所述配置工具向所述智能网卡发送配置信息,所述配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;
    所述智能网卡存储所述至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
  4. 根据权利要求1~3中任一项所述的方法,其特征在于,所述当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法,包括:
    所述智能网卡确定对所述至少两种流量进行拥塞控制;
    所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。
  5. 根据权利要求4所述的方法,其特征在于,所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法,包括:
    所述至少两种流量中流量的算法匹配特征满足第一匹配条件时,所述智能网卡确定第一拥塞控制算法;
    所述至少两种流量中流量的算法匹配特征满足第二匹配条件时,所述智能网卡确定第二拥塞控制算法。
  6. 根据权利要求4或5所述的方法,其特征在于,所述智能网卡确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法,包括:
    所述至少两种流量中流量的算法匹配特征满足第三匹配条件时,所述智能网卡确定第一拥塞控制算法参数;
    所述至少两种流量中流量的算法匹配特征满足第四匹配条件时,所述智能网卡确定第二拥塞控制算法参数。
  7. 根据权利要求1~3中任一项所述的方法,其特征在于,所述当所述智能网卡确定对所述至少两种流量中的任一种流量进行拥塞控制时,所述智能网卡确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法,包括:
    所述智能网卡确定对所述至少两种流量中的其中一种流量进行拥塞控制,对所述至少两种流量中的另一种流量不启用拥塞控制算法;
    所述智能网卡确定与所述其中一种流量的算法匹配特征匹配的拥塞控制算法。
  8. 一种网络拥塞控制装置,所述网络拥塞控制装置包括智能网卡,其特征在于:
    所述智能网卡用于获取待传输的至少两种流量;
    所述智能网卡用于识别所述至少两种流量的算法匹配特征;
    所述智能网卡还用于当确定对所述至少两种流量中的任一种流量进行拥塞控制时,确定与所述任一种流量的算法匹配特征匹配的拥塞控制算法;
    所述智能网卡还用于采用与所述任一种流量的算法匹配特征匹配的拥塞控制算法对所述任一种流量进行拥塞控制。
  9. 根据权利要求8所述的装置,其特征在于,所述智能网卡用于执行以下至少一种操作:
    根据用于标识流量的特征的字段,识别所述流量的算法匹配特征,所述字段包括以下至少一种:流量类型,服务质量,服务类型,差分服务代码点DSCP;或
    根据流量自身的特征,识别所述流量的算法匹配特征,所述流量自身的特征包括以下至少一种:所述流量中的数据量,所述流量的开始时间,所述流量的截止时间,所述流量对端的地址信息,自定义的流量特征。
  10. 根据权利要求8或9所述的装置,其特征在于,所述网络拥塞控制装置还包括配置工具;
    所述配置工具用于向所述智能网卡发送配置信息,所述配置信息包括至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系;
    所述智能网卡还用于存储所述至少两种流量的算法匹配特征与至少两个拥塞控制算法的匹配关系。
  11. 根据权利要求8~10中任一项所述的装置,其特征在于:
    所述智能网卡还用于确定对所述至少两种流量进行拥塞控制;
    所述智能网卡还用于确定与所述至少两种流量中的每种流量的算法匹配特征匹配的拥塞控制算法。
  12. 根据权利要求11所述的装置,其特征在于,所述智能网卡用于:
    所述至少两种流量中流量的算法匹配特征满足第一匹配条件时,确定第一拥塞控制算法;
    所述至少两种流量中流量的算法匹配特征满足第二匹配条件时,确定第二拥塞控制算法。
  13. 根据权利要求11或12所述的装置,其特征在于,所述智能网卡用于:
    所述至少两种流量中流量的算法匹配特征满足第三匹配条件时,确定第一拥塞控制算法参数;
    所述至少两种流量中流量的算法匹配特征满足第四匹配条件时,确定第二拥塞控制算法参数。
  14. 根据权利要求8~10中任一项所述的装置,其特征在于,所述智能网卡还用于:
    确定对所述至少两种流量中的其中一种流量进行拥塞控制,对所述至少两种流量中的另一种流量不启用拥塞控制算法;
    确定与所述其中一种流量的算法匹配特征匹配的拥塞控制算法。
  15. 一种网络拥塞控制装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~7中任一项所述的方法。
  16. 一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~7中任一项所述的方法。
  17. 一种计算机程序产品,用于当在计算设备上执行时,实现如权利要求1~7中任一项所述的方法。
PCT/CN2021/122816 2020-10-29 2021-10-09 网络拥塞控制方法及装置 WO2022089175A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21884904.0A EP4221141A4 (en) 2020-10-29 2021-10-09 METHOD AND APPARATUS FOR NETWORK CONVENTION CONTROL
US18/308,015 US20240080271A1 (en) 2020-10-29 2023-04-27 Network congestion control method and apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202011184710.6 2020-10-29
CN202011184710.6A CN114513472A (zh) 2020-10-29 2020-10-29 网络拥塞控制方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/308,015 Continuation US20240080271A1 (en) 2020-10-29 2023-04-27 Network congestion control method and apparatus

Publications (1)

Publication Number Publication Date
WO2022089175A1 true WO2022089175A1 (zh) 2022-05-05

Family

ID=81381883

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/122816 WO2022089175A1 (zh) 2020-10-29 2021-10-09 网络拥塞控制方法及装置

Country Status (4)

Country Link
US (1) US20240080271A1 (zh)
EP (1) EP4221141A4 (zh)
CN (1) CN114513472A (zh)
WO (1) WO2022089175A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527593A (zh) * 2023-07-03 2023-08-01 珠海星云智联科技有限公司 网络流量拥塞控制方法及相关装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314439B (zh) * 2022-08-11 2023-10-24 迈普通信技术股份有限公司 数据存储io请求的流控方法和相关装置
CN117544567B (zh) * 2024-01-09 2024-03-19 南京邮电大学 存传一体的rdma数据中心拥塞控制方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769575A (zh) * 2012-08-08 2012-11-07 南京中兴特种软件有限责任公司 一种用于智能网卡的流量负载均衡方法
CN105099929A (zh) * 2014-04-18 2015-11-25 海尔集团公司 网络控制方法、装置及相应设备
US9444754B1 (en) * 2014-05-13 2016-09-13 Chelsio Communications, Inc. Method for congestion control in a network interface card
US20170093699A1 (en) * 2015-09-29 2017-03-30 Mellanox Technologies Ltd. Hardware-based congestion control for TCP traffic
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质
CN108449279A (zh) * 2016-12-13 2018-08-24 中国移动通信有限公司研究院 拥塞控制方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2985963A1 (en) * 2014-08-12 2016-02-17 Alcatel Lucent Packet scheduling networking device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102769575A (zh) * 2012-08-08 2012-11-07 南京中兴特种软件有限责任公司 一种用于智能网卡的流量负载均衡方法
CN105099929A (zh) * 2014-04-18 2015-11-25 海尔集团公司 网络控制方法、装置及相应设备
US9444754B1 (en) * 2014-05-13 2016-09-13 Chelsio Communications, Inc. Method for congestion control in a network interface card
US20170093699A1 (en) * 2015-09-29 2017-03-30 Mellanox Technologies Ltd. Hardware-based congestion control for TCP traffic
CN108449279A (zh) * 2016-12-13 2018-08-24 中国移动通信有限公司研究院 拥塞控制方法及装置
CN108418767A (zh) * 2018-02-09 2018-08-17 华为技术有限公司 数据传输方法、设备及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4221141A4

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116527593A (zh) * 2023-07-03 2023-08-01 珠海星云智联科技有限公司 网络流量拥塞控制方法及相关装置
CN116527593B (zh) * 2023-07-03 2023-09-19 珠海星云智联科技有限公司 网络流量拥塞控制方法及相关装置

Also Published As

Publication number Publication date
EP4221141A1 (en) 2023-08-02
EP4221141A4 (en) 2024-02-21
CN114513472A (zh) 2022-05-17
US20240080271A1 (en) 2024-03-07

Similar Documents

Publication Publication Date Title
WO2022089175A1 (zh) 网络拥塞控制方法及装置
US11336581B2 (en) Automatic rate limiting based on explicit network congestion notification in smart network interface card
JP6188093B2 (ja) 通信トラフィック処理アーキテクチャおよび方法
US8248930B2 (en) Method and apparatus for a network queuing engine and congestion management gateway
US8660137B2 (en) Method and system for quality of service and congestion management for converged network interface devices
US20170214774A1 (en) Communication traffic processing architectures and methods
US8213305B2 (en) Dynamic service management for multicore processors
US20230107366A1 (en) Network congestion control method, apparatus, device, and system, and storage medium
US20210320866A1 (en) Flow control technologies
CN116018790A (zh) 基于接收方的精密拥塞控制
US8989037B2 (en) System for performing data cut-through
US20220191140A1 (en) Data transmission control method, apparatus, and storage medium
US20200252337A1 (en) Data transmission method, device, and computer storage medium
WO2021121386A1 (zh) 一种数据传输方法及相关设备
CN114079638A (zh) 多协议混合网络的数据传输方法、装置和存储介质
US10715437B2 (en) Deadline driven packet prioritization for IP networks
US9083617B2 (en) Reducing latency of at least one stream that is associated with at least one bandwidth reservation
US20240106763A1 (en) Device and method for controlling traffic transmission/reception in network end terminal
US20190097935A1 (en) Technologies for selecting non-minimal paths and throttling port speeds to increase throughput in a network
WO2023207628A1 (zh) 一种报文传输方法以及报文转发设备
US11121956B1 (en) Methods and systems for optimizing bidirectional forwarding detection in hardware
CN114531399B (zh) 一种内存阻塞平衡方法、装置、电子设备和存储介质
CN110708255A (zh) 一种报文控制方法及节点设备
CN115396380B (zh) 基于时间敏感网络的数据流传输方法、装置及设备
WO2022246710A1 (zh) 一种控制数据流传输的方法及通信装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021884904

Country of ref document: EP

Effective date: 20230427

NENP Non-entry into the national phase

Ref country code: DE