Method, apparatus and electronic device for displaying congestion notification marking

By allocating a separate queue for each active traffic flow and comparing cache usage in real time, the problem that traditional explicit congestion notification algorithms cannot identify congested traffic is solved, thereby improving network throughput performance and reducing communication latency.

CN119052174BActive Publication Date: 2025-11-25TSINGHUA UNIVERSITY
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410943105.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-07-15
Publication Date
2025-11-25
Estimated Expiration
2044-07-15

AI Technical Summary

Technical Problem

Traditional explicit congestion notification labeling algorithms cannot distinguish between traffic that is actually causing congestion and innocent, non-congested traffic, leading to incorrect labeling and restrictions, which affects network performance.

Method used

By acquiring multiple active traffic streams, counting their numbers, and assigning a corresponding queue to each stream, a dynamic marking threshold is determined based on the queue length and number. Cache usage is compared in real time to display congestion notifications, ensuring that each stream is processed independently.

Benefits of technology

It improves network throughput, reduces communication latency, avoids the mislabeling and restriction of innocent traffic, and achieves more accurate congestion control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119052174B_ABST
    Figure CN119052174B_ABST
Patent Text Reader

Abstract

The application discloses a display congestion notification marking method and device and electronic equipment, and relates to the technical field of network congestion control, and comprises the following steps: acquiring a plurality of active flows, and counting the number of the plurality of active flows, wherein the active flow is composed of one or more data packet groups with the same five-tuple information queuing in the switch at the current moment; assigning a corresponding queue to each active flow according to the flow type; determining the cache occupation of each active flow according to the queue length of each active flow, and determining the dynamic marking threshold of each active flow according to the number of active flows; comparing the cache occupation of each active flow with the corresponding dynamic marking threshold, and performing display congestion notification marking processing on the active flow with the cache occupation greater than the corresponding dynamic marking threshold. According to the embodiment, the flow really causing congestion can be more accurately identified when congestion occurs, and innocent non-congestion flows can be effectively avoided from being wrongly marked and limited.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of network congestion control, and particularly relates to a display congestion notification marking method and device and electronic equipment. BACKGROUND

[0002] In a data center environment, network performance is critical for various applications and services. Different applications and services have different requirements for the network, for example, web content search and distributed cache services require low communication delay, while cloud storage and parallel computing require high network bandwidth. In order to meet these requirements at the same time, experts have proposed various congestion control algorithms and congestion signal setting methods, among which Explicit Congestion Notification (ECN) is a congestion signal mechanism applied to the network layer.

[0003] The ECN mechanism is usually deployed on switches in the network. In the traditional Explicit Congestion Notification marking algorithm, when congestion occurs, data packets from the same port or the same queue are all marked to notify the sender to reduce the speed, avoid network overload, and reduce transmission delay.

[0004] However, this traditional Explicit Congestion Notification marking algorithm cannot identify the real congestion-causing traffic and innocent non-congestion traffic when congestion occurs, resulting in false marking and restrictions. For example, a low-priority or low-bandwidth requirement flow may be incorrectly marked due to sharing the same queue with other high-bandwidth flows, resulting in unnecessary reduction of its sending rate and affecting network performance. SUMMARY

[0005] Therefore, the present application provides an Explicit Congestion Notification marking method and device and electronic equipment, which mainly aims to solve the problem that the traditional Explicit Congestion Notification marking algorithm cannot identify the real congestion-causing traffic and innocent non-congestion traffic when congestion occurs, resulting in false marking and restrictions.

[0006] According to a first aspect of the present application, an Explicit Congestion Notification marking method is provided, comprising:

[0007] Obtaining a plurality of active flows and counting the number of the plurality of active flows, wherein an active flow is one or more data packet groups with the same five-tuple information queued at the switch at the current time;

[0008] Assigning a corresponding queue to each of the active flows according to the flow type;

[0009] determine a cache occupation of each of the active flows according to a queue length of each of the active flows, and determine a dynamic marking threshold of each of the active flows according to the number of the active flows;

[0010] compare the cache occupation of each of the active flows with the corresponding dynamic marking threshold, and perform a display congestion notification marking processing on the active flow whose cache occupation is greater than the corresponding dynamic marking threshold.

[0011] According to a second aspect of the present application, a display congestion notification marking device is provided, comprising:

[0012] an obtaining module, configured to obtain a plurality of active flows, and count the number of the active flows, wherein the active flow is one or more data packet groups with the same five-tuple information queuing in the switch at the current time;

[0013] an allocating module, configured to allocate a corresponding queue to each of the active flows according to the flow type;

[0014] a first determining module, configured to determine a cache occupation of each of the active flows according to a queue length of each of the active flows, and determine a dynamic marking threshold of each of the active flows according to the number of the active flows;

[0015] a comparing module, configured to compare the cache occupation of each of the active flows with the corresponding dynamic marking threshold, and perform a display congestion notification marking processing on the active flow whose cache occupation is greater than the corresponding dynamic marking threshold.

[0016] According to a third aspect of the present application, a computer readable storage medium is provided, which stores a computer program, and the computer program is executed by a processor to implement the display congestion notification marking method of the first aspect.

[0017] According to a fourth aspect of the present application, an electronic device is provided, which comprises a storage medium, a processor, and a computer program stored in the storage medium and executable on the processor, and the processor implements the display congestion notification marking method of the first aspect when executing the computer program.

[0018] According to a fifth aspect of the present application, the present disclosure provides a computer program product, comprising: a computer program, which implements the display congestion notification marking method of the first aspect when executed by a processor.

[0019] By the technical scheme, the display congestion notification marking method, device and electronic equipment provided by the application can obtain a plurality of active flows, and count the number of the plurality of active flows, wherein the active flow is one or more data packet groups with the same five-tuple information queued in the switch at the current time; each active flow is allocated a corresponding queue according to the flow type; the cache occupation of each active flow is determined according to the queue length of each active flow, and the dynamic marking threshold of each active flow is determined according to the number of active flows; the cache occupation of each active flow is compared with the corresponding dynamic marking threshold, and the active flow with the cache occupation greater than the corresponding dynamic marking threshold is subjected to display congestion notification marking processing. For the embodiment of the present disclosure, each active flow is allocated a separate queue, so that each active flow can be independently serviced and processed, avoiding the problem of mutual interference between different flows. At the same time, it also ensures that subsequent services can be differentially processed according to the flow level, improving the service quality and network efficiency. By comparing the cache occupation of each active flow with the corresponding dynamic marking threshold in real time, the flow that really causes congestion can be more accurately identified when congestion occurs, and display congestion notification marking is performed, effectively avoiding innocent non-congestion flows from being incorrectly marked and limited. This fine-grained congestion control helps to improve the throughput performance of the network and reduce the communication delay.

[0020] The above description is only a summary of the technical scheme of the application. In order to more clearly understand the technical means of the application, the application can be implemented according to the content of the specification, and in order to make the above and other purposes, features and advantages more obvious and easy to understand, the following specific embodiments of the application are described. BRIEF DESCRIPTION OF DRAWINGS

[0021] The drawings incorporated into the specification and forming part of the specification show embodiments consistent with the application and, together with the specification, serve to explain the principles of the application.

[0022] In order to more clearly illustrate the technical scheme in the embodiments of the application or the prior art, the drawings needed to be used in the embodiment or the prior art description will be briefly introduced. Obviously, for those skilled in the art, other drawings can also be obtained without creative labor.

[0023] Figure 1 A flowchart of a display congestion notification marking method provided by the embodiment of the present disclosure;

[0024] Figure 2 A whole working principle diagram of a display congestion notification marking method provided by the embodiment of the present disclosure;

[0025] Figure 3A queue allocation diagram for data packet queuing provided by an embodiment of the present disclosure;

[0026] Figure 4 A structural schematic diagram of a display congestion notification marking device provided by an embodiment of the present disclosure. DETAILED DESCRIPTION

[0027] Exemplary embodiments of the present disclosure are described below with reference to the accompanying drawings, which include various details of the embodiments of the present disclosure, and these should be considered in connection with the description, and should be regarded as merely exemplary. Accordingly, those skilled in the art will recognize that various changes and modifications of the embodiments described herein can be made without departing from the scope and spirit of the present disclosure. Also, in the following description, descriptions of well-known functions and constructions are omitted for clarity and conciseness. It should be noted that the embodiments of the present disclosure and features in the embodiments can be combined with each other without conflict.

[0028] A display congestion notification marking method, device and electronic equipment of an embodiment of the present disclosure are described below with reference to the accompanying drawings.

[0029] In order to more accurately identify the traffic that really causes congestion when congestion occurs, and avoid innocent non-congestion traffic being wrongly marked and limited. The present embodiment provides a display congestion notification marking method, as shown in the figure, the method comprises: Figure 1

[0030] Step 101, obtaining a plurality of active flows, and counting the number of the plurality of active flows.

[0031] Wherein, the active flow is one or more data packet groups with the same five-tuple information queued in the switch at the current moment. By tracing back only the active flow, the flow space that needs to be saved can be greatly reduced, because only those flows that are using network resources need to be tracked and processed, thereby helping to improve the efficiency and performance of the system.

[0032] Wherein, counting the number of the plurality of active flows, specifically can include:

[0033] Querying the flow queued in the switch at the current moment as the active flow;

[0034] Calculating the five-tuple hash value of each active flow according to the five-tuple information of each active flow;

[0035] According to the uniqueness of the five-tuple hash value, counting the number of the active flow.

[0036] For the embodiment of the present disclosure, specifically, the real-time statistics of the active flow can be approximately realized on the data plane.

[0037] ​First, a time period T can be initialized. In each time period T, a flow counter n can be maintained, where the flow counter can be used to count the number of active flows in the current period.

[0038] The beginning of a flow can be defined as the first appearance of a five-tuple packet in the switch in each time period. This means that whenever a new five-tuple packet arrives at the switch, it is considered as the beginning of a new flow.

[0039] When a packet of each active flow arrives, the five-tuple hash value of the current packet is calculated and stored in a register. The five-tuple hash value of the current packet can be obtained by performing a hash calculation on the source IP address, the source sending port, the destination IP address, the destination sending port, and the protocol type (i.e., five-tuple information).

[0040] If the current five-tuple hash value has not appeared before, it means that this is the first appearance of the five-tuple packet in the current time period, so the counter value n in the period is incremented by one, indicating the beginning of a new flow.

[0041] After the end of each period, the register responsible for storing the hash value and the counter n can be reset and emptied to start a new period of statistics.

[0042] For the embodiments of the present disclosure, two processing units are designed to solve the coarse-grained problem of early ECN marking, to adapt to different network traffic patterns, improve the throughput performance of the network, and reduce the communication delay of the network. The first unit is a queue mapping unit, which only traces the state of active flows and allocates a separate queue for each active flow as much as possible to ensure the differentiated service of subsequent flow levels. The second unit is a selective marking unit, which reconstructs the marking criteria of the traditional ECN based on the fairness of active flows, compares the buffer occupancy of each active flow with the dynamic marking threshold, and accurately identifies the congested flows that need to be marked. This method can accurately identify the real congested flows and perform ECN marking when congestion occurs, while protecting innocent non-congested flows by combining the queue mapping unit and the selective marking unit. Both of the above two units can be implemented on the data plane and are very suitable for deployment in super-high-speed data center networks to improve network throughput and reduce network communication delay. The specific implementation process can be seen in steps 102 to 104.

[0043] Step 102, allocate a corresponding queue for each active flow according to the flow type.

[0044] The traffic type can include new active traffic and existing active traffic; the queue can be a first-in-first-out (FIFO) queue, and can include empty queues, allocated queues and high-priority queues.

[0045] New active traffic can be traffic that is being identified or detected by the system for the first time and that meets the definition of active traffic (i.e., consists of one or more data packets with the same five-tuple information).

[0046] Existing active traffic can be traffic that has already been identified and processed by the system and conforms to the definition of active traffic (i.e., consisting of one or more data packets with the same five-tuple information). This traffic may already exist in a data structure of the system, such as a hash table or a queue.

[0047] An empty queue is a queue that has not yet been assigned any active traffic. An empty queue can be used to store newly arriving active traffic that has not yet been processed.

[0048] An assigned queue can be a queue that has already been assigned active traffic.

[0049] High-priority queues are queues that have a higher processing priority in a queuing system. High-priority queues can be used to store new, active traffic that requires faster response times or higher quality of service. High-priority queues ensure that important or urgent traffic is prioritized when resources are limited.

[0050] In specific application scenarios, the emergence of new programmable switches has brought convenience to the implementation of flow-level differential display congestion notification marking. This application utilizes the advantages of multi-queues in programmable switches and combines real-time traffic information from the data plane to achieve flow differentiation capabilities in complex traffic environments and differentially mark each traffic flow.

[0051] Specifically, in order to achieve flow-by-flow labeling granularity, such as Figure 2 As shown, when a data packet of each active traffic flow arrives at the switch, the queue mapping unit checks whether the data packet belongs to a new active traffic flow. If it is a new active traffic flow, an empty queue is allocated to it on the port; if it is an existing active traffic flow, it is placed into an allocated queue, so that each flow occupies a queue as much as possible, thereby ensuring that each flow receives differentiated explicit congestion notification marking processing. The queue mapping unit can be implemented on the data plane of the programmable switch.

[0052] In this embodiment of the disclosure, different active traffic can be distinguished by the source IP address, source sending port, destination IP address, destination sending port, and protocol type (i.e., 5-tuple information) of the data packets. Data packets with the same 5-tuple information can be identified as belonging to the same active traffic.

[0053] Specifically, when a data packet enters the switch, the activity flow of the data packet can be checked according to the five-tuple information. If it is new activity flow, a new queue is allocated for the new data packet; if it is not new activity flow, the queue ID where the flow corresponding to the five-tuple information of the data packet is located is found, and the data packet is allocated to the queue.

[0054] The application determines which queues are empty queues by tracking the buffer occupancy of each queue, which helps the system to more effectively manage queue resources and avoid queue overload. Once the last data packet in a queue is dispatched, the state of the queue is reset to empty. This management mechanism ensures the effective use of queues and provides space for the allocation of new flows.

[0055] For the embodiments of the present disclosure, the traffic type of the activity flow can be determined according to the five-tuple information of each activity flow, wherein the five-tuple information includes source IP address, source sending port, destination IP address, destination sending port and protocol type.

[0056] Specifically, the traffic type of the activity flow can be determined according to the five-tuple information of each activity flow, which can include:

[0057] querying whether there is a five-tuple information record corresponding to the five-tuple information in a preset flow table, wherein the preset flow table contains the five-tuple information of existing activity flows;

[0058] If not, it is determined that the traffic type of the activity flow is new activity flow;

[0059] If yes, it is determined that the traffic type of the activity flow is existing activity flow.

[0060] For the embodiments of the present disclosure, although a separate queue has been allocated for each activity flow, in rare cases, the number of burst activity flows may exceed the number of available queues provided by the switch. In order to solve this problem, the application reserves a queue with high priority (i.e. high priority queue). When new activity flow arrives and all other queues are occupied, it will enter the high priority queue. The data packets in the high priority queue will be dequeued in priority to the data packets in other queues. This means that even in the case where all other queues are full, the data packets in the high priority queue will be processed first. When the data packet belonging to the flow of the high priority queue enters the switch, the system will check in real time whether there is a new empty queue. Once a new empty queue appears, the system can transfer the data packet to the new empty queue to ensure that the data packets in the high priority queue can be processed as soon as possible (i.e. the empty queue is found in real time by the principle of "entering the queue and detecting in real time").

[0061] In order to prevent large flows from excessively occupying high-priority queue resources and affecting small flows with time delay sensitivity, the application limits the number of bytes of each new active flow entering the high-priority queue (i.e., the number of bytes of the new active flow passing through the high-priority queue is less than or equal to a preset fixed threshold), which helps to balance the processing of different flows and ensures that small flows can be serviced.

[0062] By reserving the high-priority queue, the application provides an opportunity for subsequent new active flows to enter the empty queue, thereby avoiding the problem of starvation of the remaining queues caused by long-term use of the high-priority queue, and preventing long-term occupation of the high-priority queue by large flows.

[0063] The application jointly constructs the complete logic of packet queuing by allocating a separate queue for each active flow and reserving a high-priority queue, ensuring that even in the case of tight queue resources, the system can effectively manage and allocate queues to meet the needs of different flows, such as Figure 3 as shown.

[0064] Correspondingly, each active flow is allocated a corresponding queue according to the flow type, which can specifically include:

[0065] If the flow type of the active flow is new active flow, and there is an empty queue in the queue, the new active flow is allocated the empty queue;

[0066] If the flow type of the active flow is new active flow, and there is no empty queue in the queue, and the number of bytes of the new active flow passing through the high-priority queue is less than or equal to a preset fixed threshold, the new active flow is allocated the high-priority queue;

[0067] If the flow type of the active flow is existing active flow, the existing active flow is allocated a corresponding allocated queue.

[0068] Step 103, determining the cache occupancy of each active flow according to the queue length of each active flow, and determining the dynamic marking threshold of each active flow according to the number of active flows.

[0069] The cache occupancy can be the amount of space occupied in the cache (such as the cache of a network device, the buffer of an operating system, etc.) for processing active flows, which can be determined according to the flow size, transmission speed, etc. of the active flows.

[0070] The dynamic marking threshold can be a limit value used to determine whether to perform certain operations (such as marking, packet dropping, etc.) on active flows in network management and flow control. This threshold is dynamically changing and can be adjusted according to current network conditions, the number of active flows, system resources, etc.

[0071] The dynamic marking threshold can be used to distinguish between congested flows and non-congested flows, so as to determine whether to mark the data packet with a display congestion notification according to the dynamic marking threshold.

[0072] For the embodiments of the present disclosure, modern programmable switches, such as Tofino1 and Tofino2, are equipped with multi-queue functions. For example, Tofino1 has 32 queues per egress port, and Tofino2 has 128 queues per egress port. This means that in general, each egress port has enough queues to allocate a separate queue for each active flow.

[0073] Since each active flow can be allocated to a separate queue, the present application can use the queue length as the cache occupancy of the active flow (i.e., determine the cache occupancy of each active flow according to the queue length of each active flow), so that the selective marking unit can identify the reasonableness of congested flows and non-congested flows by analyzing the queue length, to determine whether to mark the data packet with a display congestion notification based on the queue length.

[0074] In the present application, the congested flow can be a flow with a bandwidth exceeding the fair share, which is higher than the bandwidth of the non-congested flow. In the present application, each active flow enters a separate FIFO queue, and a high-bandwidth flow naturally generates more data packets in the same time, resulting in a longer queue. Therefore, under flow-level management, the more cache occupancy of a certain active flow, the more likely it is to become a congested flow, thereby ensuring the reasonableness of identifying congested flows through queue length.

[0075] Among them, the queue length can be directly obtained from the interface provided by the programmable switch, without the need to manually update the cache occupancy of each active flow every time a data packet enters and leaves the switch. In this way, the present application avoids a large amount of calculation and updating operations in the processing of each data packet, thereby reducing the computational overhead and improving the processing efficiency.

[0076] For the embodiments of the present disclosure, the dynamic marking threshold can be determined based on the traditional setting method, so as to be implemented in the switch. In addition, the dynamic marking threshold can be determined by the number of active flows, to ensure that each active flow can obtain a fair bandwidth allocation.

[0077] In order to simplify deployment, the present application can set the same dynamic marking threshold for the queue of each active flow.

[0078] Under the idea of per-flow marking, network management is no longer based on ports and queues, but separately processes flow rates from the perspective of flows, to ensure that each active flow can obtain a fair bandwidth allocation.

[0079] In the scenario of sharing one egress port by N active flows, each active flow should obtain a fair share of bandwidth C / N. In order to ensure that each active flow can obtain a fair share of bandwidth, the calculation method of the marking threshold is reconfigured in the application. The new marking threshold K p may be calculated according to the following formula:

[0080] K p = λ * RTT * C / N flow

[0081] In the formula, K p represents the dynamic marking threshold of each active flow, λ represents an inherent coefficient in the calculation method of the traditional explicit congestion notification marking, and is usually 1, RTT represents the communication delay of each active flow from the sending end to the receiving end, C represents the sending rate of each active flow of the egress port, and N flow represents the number of active flows.

[0082] With the start and end of the flow, the number N flow of active flows also changes dynamically in real time, indicating that the marking threshold K p may be dynamically adjusted according to the current flow situation to ensure that each flow can obtain a fair share of egress port bandwidth.

[0083] The new marking threshold K p represents the congestion boundary when the bandwidth of each flow reaches a fair share. This indicates that only when the bandwidth of a certain active flow reaches the marking threshold, the explicit congestion notification marking is performed on it to avoid excessive occupation of bandwidth.

[0084] Correspondingly, the dynamic marking threshold of each active flow is determined according to the number of active flows, comprising:

[0085] An inherent coefficient, a communication delay of each active flow from a sending end to a receiving end, and a sending rate of each active flow of an egress port are obtained;

[0086] The inherent coefficient, the communication delay, the sending rate, and the number of active flows are substituted into a preset dynamic marking threshold calculation formula to obtain the dynamic marking threshold of each active flow;

[0087] The preset dynamic marking threshold calculation formula is:

[0088] K p = λ * RTT * C / N flow

[0089] In the formula, K p represents the dynamic marking threshold of each active flow, λ represents the inherent coefficient, RTT represents the communication delay of each active flow from the sending end to the receiving end, C represents the sending rate of each active flow of the egress port, and Nflow This indicates the amount of active flow.

[0090] Step 104: Compare the cache usage of each active traffic flow with the corresponding dynamic marking threshold, and perform explicit congestion notification marking on active traffic flows whose cache usage exceeds the corresponding dynamic marking threshold.

[0091] Explicit Congestion Notification (ECN) is a congestion signaling mechanism applied at the network layer. This mechanism is typically deployed on network switches. When congestion occurs, it actively marks data packets to inform the sender to reduce its transmission speed, preventing network overload and reducing transmission latency. The ECN algorithm primarily determines whether to mark data packets based on queue length. When the queue length exceeds a pre-set threshold, the corresponding ECN bit in the TOS (Type of Service) field of subsequent data packets is set to 1. Upon receiving the congestion signal, the sender reduces its transmission speed until the queue length falls below the threshold. The ECN algorithm is widely used in network devices such as routers and switches to manage data packet marking and congestion control. It plays a crucial role in congestion control mechanisms in TCP / IP networks, helping network devices dynamically adjust their transmission speed according to the degree of congestion to improve network performance and fairness.

[0092] In this embodiment of the disclosure, the application primarily utilizes a queue mapping unit to ensure that each active traffic item enters a separate queue as much as possible, thereby isolating the buffer usage of each active traffic item from other traffic. Then, when active traffic packets are dequeued, a selective marking unit can decide whether to perform differential explicit congestion notification marking on the packets based on the buffer usage of each active traffic item. This method ensures that the explicit congestion notification marking of each active traffic item is independent, depends only on the queue length of the flow, and is not affected by other flows.

[0093] Specifically, the buffer usage of each active traffic item can be compared with the corresponding dynamic marking threshold. If the buffer usage exceeds the dynamic marking threshold, the data packet is marked; otherwise, it is not marked. This achieves flow-level differential display of congestion notification marking, ensuring that only traffic that truly causes congestion is marked, thereby protecting other flows from being affected. Figure 2 As shown. The selective labeling unit can be implemented on the data plane of the programmable switch; the congested flow can be traffic with bandwidth exceeding the fair share.

[0094] Although the present application reacts quickly to congested traffic, it is necessary to avoid over-inhibiting it. When the rate of the congested flow is successfully reduced to the fair share or other flows reach the required bandwidth, the present application no longer marks it with the explicit congestion notification to avoid over-limiting the high-demand traffic. Therefore, it is crucial to set the threshold of the occupied buffer as the boundary to distinguish the congested flow and the non-congested flow, and the setting of the marking threshold helps to accurately control the high-demand traffic and protect the low-rate traffic.

[0095] For the embodiments of the present disclosure, through the queue mapping unit and the selective marking unit, the flow-level fine-grained marking of the ECN algorithm in the switch is realized. Compared with the previous traditional method, the current network traffic situation in the super-high-speed network is obtained, and when congestion occurs, the flow-level differential explicit congestion notification marking algorithm is realized by utilizing the programmable switch multi-queue and real-time traffic information on the data plane, the traffic that truly causes congestion and needs to be marked is accurately identified, at the same time, the remaining innocent traffic is protected from interference, the communication delay of the latency-sensitive application is reduced, the network performance is better improved, the fairness of the bandwidth is guaranteed, the technology can effectively improve the automatic adaptation ability of the super-high-speed network to different traffic modes, and then improve the communication ability of the network, and is very suitable for deployment and application in the super-high-speed network scene with complex traffic processing requirements.

[0096] In summary, according to the explicit congestion notification marking method of the present disclosure, a plurality of active flows can be obtained, and the number of the plurality of active flows is counted, wherein the active flow is one or more data packet groups with the same five-tuple information queuing in the switch at the current moment; each active flow is assigned a corresponding queue according to the traffic type; the cache occupancy of each active flow is determined according to the queue length of each active flow, and the dynamic marking threshold of each active flow is determined according to the number of active flows; the cache occupancy of each active flow is compared with the corresponding dynamic marking threshold, and the active flow with the cache occupancy greater than the corresponding dynamic marking threshold is processed with the explicit congestion notification marking. For the embodiments of the present disclosure, each active flow is assigned a separate queue, so that each active flow can be independently served and processed, avoiding the problem of mutual interference between different flows. At the same time, it also ensures that the subsequent service can be differentially processed according to the flow level, improving the service quality and network efficiency. By comparing the cache occupancy of each active flow with the corresponding dynamic marking threshold in real time, the flow that truly causes congestion can be more accurately identified when congestion occurs, and the explicit congestion notification marking is performed, effectively avoiding the innocent non-congested flow from being incorrectly marked and limited. This fine-grained congestion control helps to improve the throughput performance of the network and reduce the communication delay.

[0097] Based on the specific implementation of the method shown above, Figure 1 The present embodiment provides an explicit congestion notification marking device, as shown in Figure 4As shown, the device comprises: an acquisition module 31, an allocation module 32, a first determination module 33, a comparison module 34;

[0098] The acquisition module 31 is configured to acquire a plurality of active flows and count the number of the plurality of active flows, wherein an active flow is composed of one or more data packets with the same five-tuple information queued at the switch at the current time;

[0099] The allocation module 32 is configured to allocate a corresponding queue to each of the active flows according to the flow type;

[0100] The first determination module 33 is configured to determine the cache occupancy of each of the active flows according to the queue length of each of the active flows, and determine the dynamic marking threshold of each of the active flows according to the number of the active flows;

[0101] The comparison module 34 is configured to compare the cache occupancy of each of the active flows with the corresponding dynamic marking threshold, and perform display congestion notification marking processing on the active flow with the cache occupancy greater than the corresponding dynamic marking threshold.

[0102] In a specific application scenario, the flow type includes new active flow and existing active flow; the queue includes empty queue, allocated queue and high-priority queue, and the allocation module 32 can be configured to allocate the empty queue to the new active flow if the flow type of the active flow is the new active flow and there is an empty queue in the queue;

[0103] The allocation module 32 can be configured to allocate the high-priority queue to the new active flow if the flow type of the active flow is the new active flow, there is no empty queue in the queue, and the number of bytes passed by the new active flow in the high-priority queue is less than or equal to a preset fixed threshold;

[0104] The allocation module 32 can be configured to allocate the corresponding allocated queue to the existing active flow if the flow type of the active flow is the existing active flow.

[0105] In a specific application scenario, the device further comprises a second determination module 35;

[0106] The second determination module 35 is configured to determine the flow type of each of the active flows according to the five-tuple information of each of the active flows, wherein the five-tuple information includes source IP address, source sending port, destination IP address, destination sending port and protocol type.

[0107] In a specific application scenario, the second determination module 35 can be configured to query whether there is five-tuple information record corresponding to the five-tuple information in a preset flow table, wherein the preset flow table contains the five-tuple information of the existing active flow;

[0108] If not, determining that the flow type of the active flow is a new active flow;

[0109] If yes, determining that the flow type of the active flow is an existing active flow.

[0110] In a specific application scenario, the obtaining module 31 can be configured to query the active flow queued in the switch at the current time;

[0111] According to the five-tuple information of each of the active flows, a five-tuple hash value of each of the active flows is calculated.

[0112] According to the uniqueness of the five-tuple hash value, the number of the active flows is counted.

[0113] In a specific application scenario, the first determining module 33 can be configured to obtain an inherent coefficient, a communication delay of each of the active flows from a sending end to a receiving end, and a sending rate of each of the active flows at an out port;

[0114] The inherent coefficient, the communication delay, the sending rate, and the number of the active flows are substituted into a preset dynamic marking threshold calculation formula to obtain a dynamic marking threshold of each of the active flows.

[0115] The preset dynamic marking threshold calculation formula is as follows:

[0116] K p =λ*RTT*C / N flow

[0117] In the formula, K p represents the dynamic marking threshold of each of the active flows, λ represents the inherent coefficient, RTT represents the communication delay of each of the active flows from the sending end to the receiving end, C represents the sending rate of each of the active flows at the out port, and N flow represents the number of the active flows.

[0118] It should be noted that other corresponding descriptions of the functions of the display congestion notification marking device provided in this embodiment can refer to the corresponding descriptions of the method in the Figure 1 , which will not be described here in detail.

[0119] Based on the method as shown in Figure 1 , correspondingly, the present disclosure further provides a computer readable storage medium having a computer program stored thereon, and the computer program is executed by a processor to implement the method as shown in Figure 1 .

[0120] Based on such understanding, the technical solutions of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash disk, a mobile hard disk, etc.), and includes several instructions to make a computer device (which can be a personal computer, a server, or a network device, etc.) execute the methods of various implementation scenarios of the present disclosure.

[0121] Based on the method as shown in Figure 1 , and Figure 4 the virtual device embodiment, in order to achieve the above-mentioned purpose, the present embodiment also provides an electronic device which can be configured at the side of a vehicle (such as an electric vehicle), the device includes a storage medium and a processor; the storage medium is used to store a computer program; the processor is used to execute the computer program to realize the method as shown in Figure 1 .

[0122] Optionally, the above-mentioned entity device can also include a user interface, a network interface, a camera, a radio frequency (RF) circuit, a sensor, an audio circuit, a WI-FI module, etc. The user interface can include a display screen (Display), an input unit such as a keyboard (Keyboard), etc. The optional user interface can also include a USB interface, a card reader interface, etc. The network interface can optionally include a standard wired interface, a wireless interface (such as a WI-FI interface), etc.

[0123] Those skilled in the art can understand that the above-mentioned entity device structure provided by the present disclosure does not constitute a limitation on the entity device, and can include more or fewer components, or combine certain components, or different component arrangements.

[0124] The storage medium can also include an operating system, a network communication module. The operating system is a program that manages the hardware and software resources of the above-mentioned entity device, supports the running of information processing programs and other software and / or programs. The network communication module is used to realize the communication between the components inside the storage medium, and the communication with other hardware and software in the information processing entity device.

[0125] Through the description of the above embodiments, those skilled in the art can clearly understand that the present disclosure can be implemented by means of software with a necessary general hardware platform, or by hardware. The display congestion notification marking method, device and electronic equipment provided by the present disclosure, compared with the prior art, the present disclosure acquires a plurality of active flows, and counts the number of the plurality of active flows, wherein the active flow is composed of one or more data packet groups with the same five-tuple information queuing at the switch at the current moment; each active flow is allocated a corresponding queue according to the flow type; the cache occupancy of each active flow is determined according to the queue length of each active flow, and the dynamic marking threshold of each active flow is determined according to the number of active flows; the cache occupancy of each active flow is compared with the corresponding dynamic marking threshold, and the active flow with the cache occupancy greater than the corresponding dynamic marking threshold is subjected to display congestion notification marking processing. For the embodiment of the present disclosure, by allocating a separate queue to each active flow, each active flow can be independently serviced and processed, avoiding the problem of mutual interference between different flows. At the same time, it also ensures that subsequent services can be differentially processed according to the flow level, improving the service quality and network efficiency. By comparing the cache occupancy of each active flow with the corresponding dynamic marking threshold in real time, the flow that really causes congestion can be more accurately identified when congestion occurs, and display congestion notification marking is performed, effectively avoiding innocent non-congestion flows from being incorrectly marked and limited. This fine-grained congestion control helps to improve the throughput performance of the network and reduce the communication delay.

[0126] It should be noted that, in this document, the terms such as "first" and "second" are merely used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between the entities or operations. Moreover, the term "comprising" or any other variant thereof is intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or other elements inherent to such a process, method, article or device. Without more limitations, the element defined by the statement "comprising a" does not exclude the presence of additional identical elements in the process, method, article or device including the element.

[0127] The above is only a specific embodiment of the present application, which enables those skilled in the art to understand or implement the present application. Various modifications of these embodiments will be apparent to those skilled in the art, and the general principles defined herein can be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application will not be limited to these embodiments herein, but will conform to the widest scope consistent with the principles and novel features applied herein.

Claims

1. A method for displaying congestion notification markers, characterized in that, The method includes: Acquire multiple active traffic streams and count the number of such active traffic streams. Here, active traffic streams consist of one or more data packets with the same five-tuple information that are currently queued in the switch. Assign a corresponding queue to each active traffic item according to its traffic type; The buffer usage of each active traffic is determined based on the queue length of each active traffic, and the dynamic marking threshold of each active traffic is determined based on the number of active traffic. The cache usage of each active traffic item is compared with the corresponding dynamic marking threshold, and active traffic items with a cache usage greater than the corresponding dynamic marking threshold are marked with explicit congestion notification. The traffic types include new active traffic and existing active traffic; the queues include empty queues, allocated queues, and high-priority queues. The step of allocating a corresponding queue for each active traffic item based on its traffic type includes: If the flow type of the active flow is the new active flow, and there is an empty queue in the queue, then the empty queue is allocated to the new active flow; If the traffic type of the active traffic is the new active traffic, there is no empty queue in the queue, and the number of bytes that the new active traffic passes through in the high priority queue is less than or equal to a preset fixed threshold, then the high priority queue is allocated to the new active traffic. If the type of the active traffic is the existing active traffic, then the corresponding allocated queue is assigned to the existing active traffic; The step of determining the dynamic labeling threshold for each active flow based on the number of active flows includes: Obtain the inherent coefficients, the communication delay of each active traffic from the sender to the receiver, and the transmission rate of each active traffic at the output port; Substituting the inherent coefficient, the communication delay, the transmission rate, and the number of active traffic into the preset dynamic marking threshold calculation formula, the dynamic marking threshold for each active traffic is obtained; The formula for calculating the preset dynamic labeling threshold is as follows: K p =λ*RTT*C / N flow In the formula, K p The dynamic tagging threshold for each active traffic instance is represented by λ, the inherent coefficient is represented by λ, RTT represents the communication delay from the sender to the receiver for each active traffic instance, C represents the transmission rate of each active traffic instance at the output port, and N represents the dynamic tagging threshold for each active traffic instance. flow This indicates the amount of active flow.

2. The method according to claim 1, characterized in that, The method further includes: The traffic type of each active traffic is determined based on the five-tuple information of each active traffic, wherein the five-tuple information includes the source IP address, source sending port, destination IP address, destination sending port, and protocol type.

3. The method according to claim 2, characterized in that, The step of determining the flow type of each active flow based on the five-tuple information of each active flow includes: Query whether there is a five-tuple information record corresponding to the five-tuple information in the preset flow table, wherein the preset flow table contains five-tuple information of existing active traffic; If it does not exist, then the flow type of the active flow is determined to be a new active flow; If it exists, then the flow type of the active flow is determined to be existing active flow.

4. The method according to claim 1, characterized in that, The counting of multiple active traffic streams includes: The current queue of traffic on the switch is considered active traffic. Calculate the 5-tuple hash value of each active traffic based on the 5-tuple information of each active traffic; The number of active traffic is counted based on the uniqueness of the quintuple hash value.

5. A device for displaying congestion notification markers, characterized in that, The device includes: The acquisition module is used to acquire multiple active traffic streams and count the number of the multiple active traffic streams, wherein active traffic streams consist of one or more data packets with the same five-tuple information that are currently queued in the switch; The allocation module is used to allocate a corresponding queue to each active traffic flow according to the traffic type. The first determining module is used to determine the buffer usage of each active traffic based on the queue length of each active traffic, and to determine the dynamic marking threshold of each active traffic based on the number of active traffic. The comparison module is used to compare the cache usage of each active traffic with the corresponding dynamic marking threshold, and to perform explicit congestion notification marking processing on active traffic whose cache usage is greater than the corresponding dynamic marking threshold; The traffic types include new active traffic and existing active traffic; the queues include empty queues, allocated queues, and high-priority queues. The step of allocating a corresponding queue for each active traffic item based on its traffic type includes: If the flow type of the active flow is the new active flow, and there is an empty queue in the queue, then the empty queue is allocated to the new active flow; If the traffic type of the active traffic is the new active traffic, there is no empty queue in the queue, and the number of bytes that the new active traffic passes through in the high priority queue is less than or equal to a preset fixed threshold, then the high priority queue is allocated to the new active traffic. If the type of the active traffic is the existing active traffic, then the corresponding allocated queue is assigned to the existing active traffic; The step of determining the dynamic labeling threshold for each active flow based on the number of active flows includes: Obtain the inherent coefficients, the communication delay of each active traffic from the sender to the receiver, and the transmission rate of each active traffic at the output port; Substituting the inherent coefficient, the communication delay, the transmission rate, and the number of active traffic into the preset dynamic marking threshold calculation formula, the dynamic marking threshold for each active traffic is obtained; The formula for calculating the preset dynamic labeling threshold is as follows: K p =λ*RTT*C / N flow In the formula, K p The dynamic tagging threshold for each active traffic instance is represented by λ, the inherent coefficient is represented by RR, the communication delay from the sender to the receiver for each active traffic instance is represented by C, and the transmission rate of each active traffic instance at the output port is represented by N. flow This indicates the amount of active flow.

6. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method of any one of claims 1-4.

7. An electronic device comprising a storage medium, a processor, and a computer program stored on the storage medium and executable on the processor, characterized in that, When the processor executes the computer program, it implements the method of any one of claims 1-4.

8. A computer program product, characterized in that, Includes a computer program that, when executed by a processor, implements the method according to any one of claims 1-4.

Citation Information

Patent Citations

  • Micro burst flow oriented congestion sensing and marking method in multi-queue data center environment

    CN110061927A

  • Self-learning explicit mark congestion control method and system based on token bucket

    CN118055072A