Congestion sensing method and device based on switch flow table, equipment and storage medium

By setting congestion table entries in the switch flow table, using ECN marks to identify the detection message and coded message, determining the congestion status and encoding information of the current most congested switch, the problem of congestion control in the prior art does not take into account bandwidth overhead and accuracy, and achieving high-precision congestion control and finer-grained congestion control.

CN119697115AActive Publication Date: 2025-03-25PENG CHENG LAB
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202411891484.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-20
Publication Date
2025-03-25
Estimated Expiration
2044-12-20

AI Technical Summary

Technical Problem

The prior art fails to take into account bandwidth overhead and accuracy in congestion control, resulting in the inability to achieve high-precision congestion control.

Method used

By setting congestion table entries in the switch flow table, receiving detection messages and coded messages, identifying them using ECN marks, determining the congestion status and congestion information encoding of the currently most congested switch, and using the multi-packet joint encoding mechanism to accurately sense the network congestion situation without changing the message structure and introducing additional bandwidth overhead.

Benefits of technology

It realizes precise perception of network congestion without increasing bandwidth overhead, provides support for implementing precise congestion control, and achieves finer granular congestion control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119697115A_ABST
    Figure CN119697115A_ABST
Patent Text Reader

Abstract

The invention discloses a congestion sensing method and device based on a switch flow table, equipment and a storage medium, and relates to the technical field of network communication, and the method comprises the steps: receiving a detection message and a coding message; determining the congestion state of the current most congested switch based on the local congestion state and the congestion state of the most congested switch in the detection message, and setting congestion table items in a switch flow table; determining a target detection message based on the congestion state of the current most congested switch, and returning the target detection message to the sending end; determining the congestion information code of the current most congested switch based on the congestion table item in the switch flow table and the congestion information code of the most congested switch in the coding message; and determining a target coded message based on the congestion information code of the current most congested switch, and returning the target coded message to the sending end. Through the above mode, extra bandwidth overhead is not introduced, the network congestion condition is accurately sensed, and support is provided for implementation of accurate congestion control.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network communication technology, and in particular to a congestion perception method, apparatus, device, and storage medium based on a switch flow table. Background Art

[0002] Currently, congestion control solutions generally use round-trip time (RTT), explicit congestion notification (ECN), and in-network telemetry (INT) to sense network congestion levels. INT-based congestion control solutions are fine-grained and can provide detailed information about congestion levels, such as queue sizes and traffic loads. However, these solutions require the deployment of INT-capable hardware and require changes to the packet structure, adding an area to store INT information. This introduces additional bandwidth overhead, effectively achieving accurate congestion control at the expense of bandwidth. Congestion control solutions based on ECN or RTT are coarse-grained and can only indicate the presence of network congestion, not the severity of the congestion. While these solutions offer lower bandwidth overhead, they lack high-precision congestion control.

[0003] The above content is only used to assist in understanding the technical solution of the present invention and does not constitute an admission that the above content is prior art. Summary of the Invention

[0004] The main purpose of this application is to provide a congestion perception method, device, equipment and storage medium based on a switch flow table, aiming to solve the technical problem in the existing technology that congestion control does not take into account both bandwidth overhead and accuracy.

[0005] To achieve the above objectives, the present application provides a congestion awareness method based on a switch flow table, the method comprising: Receive a probe message and an encoded message sent by a transmitting end, wherein the congestion status of the most congested switch in the probe message and the congestion information encoding of the most congested switch in the encoded message are both marked with an ECN mark; Determine the congestion status of the most congested switch based on the local congestion status and the congestion status of the most congested switch in the detection message, and set a congestion table entry in the switch flow table; Determining a target detection message based on the congestion state of the current most congested switch, and returning the target detection message to the sending end; Determining the congestion information code of the most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; Based on the congestion information coding of the currently most congested switch, a target coding message is determined, and the target coding message is returned to the sending end.

[0006] In one embodiment, the step of determining the congestion status of the most congested switch based on the local congestion status and the congestion status of the most congested switch in the probe message, and setting a congestion entry in the switch flow table includes: When both the local congestion state and the congestion state of the most congested switch in the detection message are queue-empty states, determining that the congestion state of the current most congested switch is queue-empty, initializing a coding index of a congestion entry, setting a congestion indication bit of the congestion entry to a first value, and setting a local congestion information code of the congestion entry to a code of local bandwidth utilization; When both the local congestion state and the congestion state of the most congested switch in the detection message indicate a queue non-empty state, determining that the congestion state of the current most congested switch is a queue non-empty state, initializing a coding index of a congestion entry, setting a congestion indication bit of the congestion entry to a first value, and setting a local congestion information code of the congestion entry to a code of a local queue length; When the local congestion state is a queue-empty state and the congestion state of the most congested switch in the detection message is a queue-non-empty state, determining that the congestion state of the current most congested switch is a queue-non-empty state, and deleting the congestion table entry in the switch flow table; When the local congestion state is a queue non-empty state and the congestion state of the most congested switch in the detection message is a queue empty state, determining that the congestion state of the current most congested switch is a queue non-empty state, initializing the encoding index of the congestion table entry, setting the congestion indication bit of the congestion table entry to the second value, and setting the local congestion information encoding of the congestion table entry to the encoding of the local queue length.

[0007] In one embodiment, the step of determining the congestion information code of the most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message includes: When a congestion entry exists in the switch flow table, obtaining a congestion indication bit, a local congestion information code, and a code index in the congestion entry; determining an index bit code in the local congestion information code based on the code index; When the congestion indication bit is a first value, determining the congestion information code of the most congested switch based on the congestion information code of the most congested switch in the coded message and the index bit code; When the congestion indication bit is a second value, the index bit code is used as the congestion information code of the current most congested switch.

[0008] In one embodiment, the step of determining the congestion information code of the most congested switch based on the congestion information code of the most congested switch in the encoded message and the index bit code includes: When the congestion information code of the most congested switch in the encoded message is greater than the index bit code, the congestion information code of the most congested switch in the encoded message is used as the congestion information code of the current most congested switch, and the congestion table entry in the flow table of the switch is deleted; When the congestion information code of the most congested switch in the coded message is equal to the index bit code, using the congestion information code of the most congested switch in the coded message as the congestion information code of the current most congested switch, and updating the code index; When the congestion information code of the most congested switch in the coded message is smaller than the index bit code, the index bit code is used as the congestion information code of the current most congested switch, the coding index is updated, and the congestion indication bit is adjusted to a second value.

[0009] In one embodiment, the step of determining the congestion information code of the most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message includes: When there is no congestion entry in the switch flow table, the congestion information code of the most congested switch in the encoded message is used as the congestion information code of the current most congested switch.

[0010] In one embodiment, the step of determining the target detection message based on the congestion status of the current most congested switch includes: When the congestion state of the current most congested switch is different from the congestion state of the most congested switch in the detection message, updating the congestion state of the most congested switch in the detection message to the congestion state of the current most congested switch, and obtaining the target detection message; When the congestion state of the current most congested switch is the same as the congestion state of the most congested switch in the probe message, the probe message is used as the target probe message.

[0011] In one embodiment, the step of determining the target coded message based on the congestion information coding of the currently most congested switch includes: When the congestion information code of the current most congested switch is different from the congestion information code of the most congested switch in the coded message, updating the congestion information code of the most congested switch in the coded message to the congestion information code of the current most congested switch, to obtain the target coded message; When the congestion information code of the current most congested switch is the same as the congestion information code of the most congested switch in the coded message, the coded message is used as the target coded message.

[0012] In addition, to achieve the above-mentioned purpose, the present application also proposes a congestion sensing device based on a switch flow table, which includes: A message receiving module, configured to receive a detection message and an encoded message sent by a sending end, wherein the congestion status of the most congested switch in the detection message and the congestion information encoding of the most congested switch in the encoded message are both marked with an ECN mark; a congestion sensing module, configured to determine the congestion status of the most congested switch based on the local congestion status and the congestion status of the most congested switch in the detection message, and set a congestion entry in the switch flow table; a message forwarding module, configured to determine a target detection message based on the congestion state of the currently most congested switch, and return the target detection message to the sending end; The congestion sensing module is further configured to determine the congestion information code of the most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; The message forwarding module is further configured to determine a target coded message based on the congestion information coding of the currently most congested switch, and return the target coded message to the sending end.

[0013] In addition, to achieve the above-mentioned purpose, the present application also proposes a congestion sensing device based on a switch flow table. The congestion sensing device based on a switch flow table includes: a memory, a processor, and a computer program stored in the memory and executable on the processor. The computer program is configured to implement the steps of the congestion sensing method based on the switch flow table as described above.

[0014] In addition, to achieve the above-mentioned purpose, the present invention also proposes a storage medium, which is a computer-readable storage medium and stores a computer program. When the computer program is executed by a processor, the steps of the congestion perception method based on the switch flow table as described above are implemented.

[0015] In addition, to achieve the above-mentioned purpose, the present application also provides a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements the steps of the above-mentioned congestion perception method based on the switch flow table.

[0016] The present application provides a congestion perception method based on a switch flow table. The method receives a probe message and an encoded message sent by a sender. The congestion status of the most congested switch in the probe message and the congestion information code of the most congested switch in the encoded message are both identified using ECN tags. Based on the local congestion status and the congestion status of the most congested switch in the probe message, the congestion status of the current most congested switch is determined, and a congestion table entry in the switch flow table is set. Based on the congestion status of the current most congested switch, a target probe message is determined and the target probe message is returned to the sender. Based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message, the congestion information code of the current most congested switch is determined. Based on the congestion information code of the current most congested switch, a target encoded message is determined and the target encoded message is returned to the sender. By detecting the status of the most congested upstream node through detection messages, and using the encoding information of the most congested upstream node in the encoded message and the corresponding table entries designed in the switch flow table, the encoding information of the current most congested node can be determined. Without changing the message structure or introducing additional bandwidth overhead, the multi-packet joint encoding mechanism can be used to accurately perceive network congestion, provide support for the implementation of precise congestion control, achieve finer-grained congestion control, and solve the technical problem that congestion control does not take into account both bandwidth overhead and accuracy. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the present application.

[0018] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0019] Figure 1 This is a flow chart of a first embodiment of a congestion sensing method based on a switch flow table of the present application; Figure 2 A schematic diagram of message sending rules for the congestion sensing method based on the switch flow table provided in Example 1 of the present application; Figure 3 This is a flow chart of the second embodiment of the congestion perception method based on the switch flow table of this application; Figure 4 A schematic diagram of a simplified flow chart of a congestion sensing method based on a switch flow table provided in the second embodiment of the present application; Figure 5 This is a schematic diagram of the module structure of a congestion sensing device based on a switch flow table according to an embodiment of the present application; Figure 6 Schematic diagram of the device structure of the hardware operating environment involved in the congestion perception method based on the switch flow table in the embodiment of the present application.

[0020] The realization of the objectives, functional features and advantages of this application will be further explained in conjunction with embodiments and with reference to the accompanying drawings. DETAILED DESCRIPTION

[0021] It should be understood that the specific embodiments described herein are merely used to explain the technical solutions of the present application and are not intended to limit the present application.

[0022] In order to better understand the technical solution of the present application, a detailed description will be given below in conjunction with the accompanying drawings and specific implementation methods.

[0023] The main solution of the embodiment of the present application is as follows: receiving a probe message and an encoded message sent by a sending end, and marking the congestion status of the most congested switch in the probe message and the congestion information code of the most congested switch in the encoded message with an ECN tag; determining the congestion status of the current most congested switch based on the local congestion status and the congestion status of the most congested switch in the probe message, and setting a congestion table entry in the switch flow table; determining a target probe message based on the congestion status of the current most congested switch, and returning the target probe message to the sending end; determining the congestion information code of the current most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; determining a target encoded message based on the congestion information code of the current most congested switch, and returning the target encoded message to the sending end.

[0024] Currently, congestion control solutions based on INT (Int-based Info) provide fine-grained signals that can accurately represent the degree of congestion, such as queue size and traffic load. However, these solutions require the deployment of INT-capable hardware and require changes to the message structure, adding an area to store INT information. This introduces additional bandwidth overhead, meaning that accurate congestion control is achieved at the expense of bandwidth. Congestion control solutions based on ECN or RTT provide coarse-grained signals that can only indicate the presence of network congestion, not the severity of the congestion. While these solutions offer lower bandwidth overhead, they lack high-precision congestion control.

[0025] The present application provides a solution that uses detection messages to perceive the status of the most congested upstream node. The coding information of the most congested upstream node in the coded message and the corresponding table entry designed in the switch flow table are used to determine the coding information of the current most congested node. Without changing the message structure or introducing additional bandwidth overhead, the multi-packet joint coding mechanism can be used to accurately perceive network congestion, provide support for the implementation of precise congestion control, achieve more fine-grained congestion control, and solve the technical problem that congestion control fails to balance bandwidth overhead and accuracy.

[0026] It should be noted that the execution subject of this embodiment may be a switch capable of data processing, network communication, and program execution, or an electronic device capable of performing the aforementioned functions, or a congestion sensing device based on a switch flow table, etc., and this embodiment does not specifically limit this. This embodiment and the following embodiments will be described using a local switch as an example.

[0027] The present application embodiment provides a congestion perception method based on a switch flow table, referring to Figure 1 , Figure 1 This is a flow chart of the first embodiment of the congestion perception method based on the switch flow table of the present application.

[0028] In this embodiment, the congestion sensing method based on the switch flow table includes steps S10 to S50: Step S10: receiving a probe message and an encoded message sent by the transmitting end, wherein the congestion status of the most congested switch in the probe message and the congestion information encoding of the most congested switch in the encoded message are both marked with an ECN mark; It should be noted that the sender can be any node upstream of the switch, such as the upstream switch, and this embodiment does not specifically limit this. The sender needs to accurately perceive the specific conditions of the most congested node (bottleneck node) in the network to perform precise congestion control. The local switch is the receiver, and the sender and the switch interact directly using messages. To maintain the message structure, this embodiment uses a multi-packet joint ECN encoding mechanism.

[0029] The core concept of multi-packet joint ECN encoding is to allow switches to encode network congestion information using the ECN tag in IP packets without changing the packet structure. The ECN tag in a single packet is typically 2 bits long, which cannot fully represent network congestion information. For example, if the queue length at a congested node is 100 bytes, 2 bits (the ECN tag in a single packet) cannot fully represent it. Therefore, multi-packet joint ECN encoding uses the ECN tags of multiple consecutive packets (for example, 7) to jointly encode congestion information. When the queue is empty, the link bandwidth utilization is encoded; when the queue is not empty, the queue length is encoded. When encoding bandwidth utilization and queue length, the ECN tag is 00 or 01, corresponding to 0 and 1 in binary encoding, respectively. When the message carrying the encoded congestion information reaches the receiver, the receiver will copy the ECN marking information into the ACK (Acknowledgment) message and transmit it back to the sender. After receiving the ACK message, the sender is responsible for decoding the encoded congestion information to obtain network congestion information and implement precise congestion control based on it.

[0030] In this embodiment, the original ECN marking is redefined so that ECN marking 00 corresponds to binary 0, and ECN marking 01 corresponds to binary 1. For example, a queue length of 100 is encoded as 1100100, and the ECN markings in seven consecutive packets are 01, 01, 00, 00, 01, 00, and 00, respectively. Network congestion states are generally divided into two categories: queue empty and queue non-empty. The queue empty state indicates that the queue is empty, while the queue non-empty state indicates that the queue is not empty. In the queue empty state, the link bandwidth utilization is encoded as congestion information. In the queue non-empty state, the queue length is encoded as congestion information. Since different congestion states correspond to different congestion information (bandwidth utilization or queue length), and ECN tags 00 and 01 are used to encode bandwidth utilization or queue length, a mechanism is required to inform the sender / receiver of the current network congestion state: queue empty or queue not empty. This allows the sender / receiver to determine whether the encoded congestion information is bandwidth utilization or queue length. Therefore, this embodiment further redefines the ECN tags, using ECN tag 10 to indicate queue empty (i.e., the congestion state is queue empty), and ECN tag 11 to indicate queue not empty (i.e., the congestion state is queue not empty). Referring to Table 1, this embodiment redefines four ECN tags for identifying congestion states and encoding congestion information (encoded congestion information). These four tags can be denoted as ECN00, ECN01, ECN10, and ECN11, respectively.

[0031] Table 1

[0032] It is understandable that the transmitted messages are divided into two categories according to the different ECN marking contents. One type of message is called a probe message, whose ECN marking is 10 or 11, which is used to detect the current congestion status of the network; the other type of message is called a coded message, whose ECN marking is 00 or 01, which is used to carry the congestion information encoding of the network. The sender sends the probe message and the coded message according to certain sending rules, refer to Figure 2 , first sending one probe message, followed by seven encoded messages. The encoding of seven consecutive messages is called a round of encoding. This transmission rule is repeated until the data transmission is complete. The initial ECN mark carried by the probe message sent by the sender is ECN10, and the initial ECN mark carried by the encoded message sent by the sender is ECN00. The switch receives the probe message and encoded message sent by the sender.

[0033] Step S20: determining the congestion status of the most congested switch based on the local congestion status and the congestion status of the most congested switch in the detection message, and setting a congestion entry in the switch flow table; It should be noted that switches are responsible for sensing congestion status and encoding congestion information. The most congested switch (most congested node) is the switch with the highest congestion level. The most congested switch in a probe message is typically the switch with the highest congestion level among upstream switches. In this embodiment, the switch needs to sense the congestion status of the most congested switch in the network, and this congestion status sensing is accomplished through probe messages. The local congestion status is the congestion status of the local switch itself, and the current most congested switch is the currently determined most congested switch (which may be the most congested switch in the probe message or the local switch). Upon receiving a probe message, the ECN flag in the probe message carries the congestion status of the most congested switch upstream. The local switch then compares the congestion status in the probe message with the local congestion status to determine whether the congestion level of the most congested switch in the probe message or the local switch is higher. The switch with the higher congestion level is designated as the current most congested switch, and the congestion status of the current most congested switch is determined.

[0034] It will be appreciated that in this embodiment, a switch maintains a congestion table entry for each flow passing through it, storing the local congestion information encoding and congestion status comparison results. Due to the large number of flows in data center networks and the limited storage resources of switch flow tables, maintaining a congestion table entry for each flow is highly likely to cause flow table overflow. Therefore, this embodiment reduces the switch flow table's memory usage in two ways: first, it simplifies the table entry design. In addition to the five-tuple (<source IP address, source port number, destination IP address, destination port number, protocol number>) used to identify the flow, each congestion table entry only has three additional fields, requiring a total of 11 bits of storage space. Second, it incorporates a dynamic table entry deletion mechanism. Once a congestion table entry is no longer needed, it is promptly deleted. For example, if the congestion level of a flow on the local switch is lower than that of the most congested upstream switch, the congestion table entry corresponding to that flow on the local switch is promptly deleted. Therefore, after determining the congestion status of the current most congested switch, the local switch will also determine whether to delete the congestion table entry in the switch flow table or reset the congestion table entry in the switch flow table.

[0035] In addition, it should be noted that, referring to Table 2, a congestion table entry includes three fields: the congestion indicator bit, the local congestion information code, and the code index. The congestion indicator bit, represented by CI (Congestion Indicator), occupies one bit and indicates whether the switch with the higher congestion level is the most congested switch in the probe message (the most congested upstream switch) or the local switch. The local congestion information code, represented by EnBits, occupies seven bits and stores the code for the local switch's congestion information. The code index, represented by Index, occupies three bits and stores the index of the current code bit, indicating the code position in EnBits.

[0036] Table 2

[0037] It should be understood that if the ECN tag carried in the probe message is ECN10, the congestion status of the most congested switch in the probe message is queue-empty (i.e., the queue is empty). If the ECN tag carried in the probe message is ECN11, the congestion status of the most congested switch in the probe message is queue-non-empty (i.e., the queue is not empty). Since the local congestion status can be either queue-empty (ECN10) or queue-non-empty (ECN11), four situations may arise: the local congestion status and the congestion status of the most congested switch in the probe message are both queue-empty; the local congestion status and the congestion status of the most congested switch in the probe message are both queue-non-empty; the local congestion status is queue-empty and the congestion status of the most congested switch in the probe message is queue-non-empty; and the local congestion status is queue-non-empty and the congestion status of the most congested switch in the probe message is queue-empty. This embodiment will illustrate these four situations.

[0038] In a feasible implementation, when the local congestion state and the congestion state of the most congested switch in the probe message are both queue-empty states, the congestion state of the current most congested switch is determined to be the queue-empty state, and the encoding index of the congestion table entry is initialized, the congestion indication bit of the congestion table entry is set to a first value, and the local congestion information encoding of the congestion table entry is set to the encoding of the local bandwidth utilization.

[0039] It should be noted that, in this embodiment, the first value is 0. The encoding of the local bandwidth utilization is data obtained by encoding the current bandwidth utilization.

[0040] It is understandable that if the local congestion state and the congestion state of the most congested switch in the probe message are both queue empty (ECN10), then the local congestion state is the same as the congestion state of the most congested switch in the probe message. Since the probe message does not carry any coding information, it is impossible to directly determine which switch is more congested, that is, it is impossible to directly determine the current most congested switch. However, it can be determined that the congestion state of the current most congested switch is queue empty (ECN10). Since the probe packet marks the beginning of a new round of coding, the local switch queries the flow table to check whether the corresponding congestion table entry exists. If the corresponding table entry data does not exist, a new congestion table entry is inserted, the content of the congestion table entry is initialized, the CI value is set to 0, the Index value is set to 0 (000), and the local bandwidth utilization code is calculated. The local bandwidth utilization code is then used to update the EnBits value. If the corresponding table entry data exists, the CI, Index, and EnBits values ​​are directly updated according to the above values.

[0041] In a feasible implementation, when the local congestion state and the congestion state of the most congested switch in the detection message are both queue non-empty states, the congestion state of the current most congested switch is determined to be the queue non-empty state, and the encoding index of the congestion table entry is initialized, the congestion indication bit of the congestion table entry is set to a first value, and the local congestion information code of the congestion table entry is set to the code of the local queue length.

[0042] It should be noted that the encoding of the local queue length is data obtained by encoding the queue length of the local switch.

[0043] It is understandable that if the local congestion state and the congestion state of the most congested switch in the probe message are both in the queue non-empty state (ECN11), then the local congestion state is the same as the congestion state of the most congested switch in the probe message. Since the probe message does not carry any coding information, it is impossible to directly determine which switch is more congested, that is, it is impossible to directly determine the current most congested switch. However, it can be determined that the congestion state of the current most congested switch is the queue non-empty state (ECN11). Since the probe packet marks the beginning of a new round of coding, the local switch queries the flow table to check whether the corresponding congestion table entry exists. If the corresponding table entry data does not exist, a new congestion table entry is inserted, the content of the congestion table entry is initialized, the CI value is set to 0, the Index value is set to 0 (000), and the encoding of the local queue length is calculated. The value of EnBits is then updated using the encoding of the local queue length. If the corresponding table entry data exists, the CI, Index, and EnBits values ​​are directly updated according to the above values.

[0044] In a feasible implementation, when the local congestion state is a queue-empty state and the congestion state of the most congested switch in the detection message is a queue-non-empty state, the congestion state of the current most congested switch is determined to be a queue-non-empty state, and the congestion table entry in the switch flow table is deleted.

[0045] It can be understood that if the local congestion state is queue empty (ECN10), and the congestion state of the most congested switch in the probe message is queue not empty (ECN11), it means that the congestion level of the local switch is lower than the congestion level of the most congested switch in the probe message. In other words, the local switch is not the current most congested switch. Therefore, the congestion information of the local switch will not be used in the subsequent encoding process. If a corresponding congested flow entry exists in the switch flow table, the congestion entry will be deleted. At this time, the current most congested switch is the most congested switch in the probe message, that is, the most congested upstream switch, and the congestion state of the current most congested switch is queue not empty (ECN11).

[0046] In a feasible implementation, when the local congestion state is a queue non-empty state and the congestion state of the most congested switch in the detection message is a queue empty state, the congestion state of the current most congested switch is determined to be a queue non-empty state, and the encoding index of the congestion table entry is initialized, the congestion indication bit of the congestion table entry is set to the second value, and the local congestion information encoding of the congestion table entry is set to the encoding of the local queue length.

[0047] It should be noted that the second value in this embodiment is 1.

[0048] It can be understood that if the local congestion state is queue non-empty (ECN11), and the congestion state of the most congested switch in the probe message is queue empty (ECN10), it means that the congestion level of the local switch is higher than the congestion level of the most congested switch in the probe message. In other words, the local switch is the current most congested switch, and the congestion state of the current most congested switch is queue non-empty (ECN11). In addition, the switch needs to check whether there is a congestion table entry corresponding to the flow in the switch flow table. If the congestion table entry does not exist, a new congestion table entry is inserted and the content of the congestion table entry is initialized, CI is set to 1, EnBits is set to the encoding of the local queue length, and Index is set to 0 (000). If the corresponding table entry data exists, the values ​​of CI, Index, and EnBits are directly updated according to the above values.

[0049] Step S30: determining a target detection message based on the congestion state of the current most congested switch, and returning the target detection message to the sending end; It should be noted that the target detection message is a message carrying the congestion status that the switch needs to return to the sending end.

[0050] In a feasible implementation, step S30 may include: when the congestion state of the current most congested switch is different from the congestion state of the most congested switch in the probe message, updating the congestion state of the most congested switch in the probe message to the congestion state of the current most congested switch, to obtain the target probe message; when the congestion state of the current most congested switch is the same as the congestion state of the most congested switch in the probe message, using the probe message as the target probe message.

[0051] It should be noted that in the following three cases, the congestion status of the current most congested switch is the same as that of the most congested switch in the probe message: the local congestion status and the congestion status of the most congested switch in the probe message are both queue empty (ECN10); the local congestion status and the congestion status of the most congested switch in the probe message are both queue not empty (ECN11); and the local congestion status is queue empty (ECN10) and the congestion status of the most congested switch in the probe message is queue not empty (ECN11). In the above three cases, the congestion status of the current most congested switch is the same as that of the most congested switch in the probe message. In the case of the local congestion status being queue not empty (ECN11) and the congestion status of the most congested switch in the probe message being queue empty (ECN10), the congestion status of the current most congested switch is different from that of the most congested switch in the probe message.

[0052] It's understandable that the congestion status of the current most congested switch differs from the congestion status of the most congested switch in the probe message, indicating that the current most congested switch is not the most congested switch in the probe message, and the congestion status of the most congested switch in the probe message is not the latest data. In this case, the congestion status of the current most congested switch (queue non-empty state) needs to be used to update the congestion status of the most congested switch in the probe message. This means that the ECN tag carried by the probe message is updated to ECN11, thereby obtaining the final target probe message and returning the target probe message to the sender. If the congestion status of the current most congested switch is the same as the congestion status of the most congested switch in the probe message, the congestion status of the most congested switch in the probe message does not need to be updated. In this case, the original probe message can be directly used as the final target probe message and returned to the sender. In other words, the received probe message can be directly forwarded to the sender.

[0053] Step S40, determining the congestion information code of the most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; To support the high-throughput, low-latency data transmission requirements of data center network applications, precise congestion control requires the sender to know the congestion information of the most congested switch in the network. In this embodiment, when an encoded message arrives at a switch, the ECN tag in the message carries the congestion information code of the most congested upstream switch. The switch compares the congestion code in the message with the local congestion code stored in the switch's flow table to determine which switch has the higher congestion level. If the local switch has the higher congestion level, the congestion code in the ECN tag in the encoded message is updated with the local congestion code in the congestion table entry. This way, when the message is forwarded, the ECN tag it carries will reflect the congestion code of the most congested switch.

[0054] It is understood that when a switch receives an encoded message, it first checks its flow table for a corresponding congestion entry. If no congestion entry corresponds to the message, the local switch is not the most congested switch. The congestion information code of the most congested switch in the encoded message is directly used as the congestion information code of the most congested switch. If a corresponding congestion entry exists, the local switch first checks the CI value. If the CI value is 1, indicating that the local switch is more congested, that is, the local switch is the most congested switch, then the congestion information code of the most congested switch is determined based on the local congestion information code. If the CI value is 0, the most congested switch cannot be directly determined, and further determination is required based on the local congestion information code and the congestion information code in the encoded message.

[0055] Step S50: Determine a target coded message based on the congestion information code of the currently most congested switch, and return the target coded message to the sending end.

[0056] It should be noted that the target coded message is the message carrying the congestion information code that the switch needs to return to the sender.

[0057] In a feasible implementation, step S50 may include: when the congestion information code of the current most congested switch is different from the congestion information code of the most congested switch in the coded message, updating the congestion information code of the most congested switch in the coded message to the congestion information code of the current most congested switch, to obtain the target coded message; and when the congestion information code of the current most congested switch is the same as the congestion information code of the most congested switch in the coded message, using the coded message as the target coded message.

[0058] It is understandable that the congestion information code of the current most congested switch is different from the congestion information code of the most congested switch in the encoded message, indicating that the current most congested switch is not the most congested switch in the encoded message, and the congestion information code of the most congested switch in the encoded message is not the latest data. In this case, the congestion information code of the current most congested switch needs to be used to update the congestion information code of the most congested switch in the encoded message. That is, the ECN mark carried by the encoded message is updated to the ECN mark corresponding to the congestion information code of the current most congested switch, thereby obtaining the final target encoded message and returning this target encoded message to the sender. The congestion information code of the current most congested switch is the same as the congestion information code of the most congested switch in the encoded message, indicating that the congestion information code of the most congested switch in the encoded message does not need to be updated. In this case, the original encoded message can be directly used as the final target encoded message and returned to the sender. In other words, the received encoded message can be directly forwarded to the sender.

[0059] It should be understood that since the congestion information encoding of the coded message and the congestion status of the detection message in this embodiment are both identified by the ECN tag, there is no need to change the message structure, that is, no additional bandwidth overhead is introduced, so congestion control can be performed with a smaller bandwidth overhead. In addition, the multi-packet joint encoding mechanism is used to accurately perceive the network congestion situation and implement precise congestion control.

[0060] This embodiment provides a congestion sensing method based on a switch flow table. The method receives a probe message and an encoded message sent by a transmitter. The congestion status of the most congested switch in the probe message and the congestion information code of the most congested switch in the encoded message are both marked with an ECN tag. Based on the local congestion status and the congestion status of the most congested switch in the probe message, the method determines the congestion status of the current most congested switch and sets a congestion entry in the switch flow table. Based on the congestion status of the current most congested switch, a target probe message is determined and returned to the transmitter. Based on the congestion entry in the switch flow table and the congestion information code of the most congested switch in the encoded message, the method determines the congestion information code of the current most congested switch. Based on the congestion information code of the current most congested switch, a target encoded message is determined and returned to the transmitter. By detecting the status of the most congested upstream node through detection messages, the coding information of the most congested upstream node in the coded message and the corresponding table entries designed in the switch flow table are used to determine the coding information of the current most congested node. Without changing the message structure or introducing additional bandwidth overhead, the multi-packet joint coding mechanism can be used to accurately perceive the network congestion situation, provide support for the implementation of precise congestion control, and achieve more fine-grained congestion control.

[0061] Based on the first embodiment of the present application, in the second embodiment of the present application, the same or similar contents as those in the above embodiment 1 can be referred to the above introduction and will not be described in detail later. Figure 3 , step S40 may include steps S401 to S403: Step S401: When a congestion entry exists in the switch flow table, a congestion indication bit, a local congestion information code, and a code index in the congestion entry are obtained; It should be noted that when the local switch receives the encoded message, it will check whether there is a corresponding congestion entry in the switch flow table. If there is a corresponding congestion entry, the congestion information code of the current most congested switch is determined based on the congestion indication bit in the congestion entry, the local congestion information code, and the code index.

[0062] In a feasible implementation, when there is no congestion entry in the switch flow table, the congestion information code of the most congested switch in the encoded message is used as the congestion information code of the current most congested switch.

[0063] It is understandable that if there is no congestion table entry corresponding to the encoded message, it means that the local switch is not the current most congested switch. In other words, the most congested switch in the encoded message is the current most congested switch. The congestion information encoding of the most congested switch in the encoded message is directly used as the congestion information encoding of the current most congested switch. In this case, the encoded message can be directly forwarded.

[0064] Step S402: determining an index bit code in the local congestion information code based on the code index; It should be noted that the index bit code is the code value determined in the local congestion information code according to the code index. For example, when the code index is 0, the index bit code is the code value of the first bit in the local congestion information code, and when the code index is 10, the index bit code is the code value of the third bit in the local congestion information code.

[0065] Step S403 : When the congestion indication bit is a first value, the congestion information code of the most congested switch is determined based on the congestion information code of the most congested switch in the coded message and the index bit code.

[0066] It should be noted that the congestion indication bit is the first value, that is, the CI value is equal to 0, which means that based on the received probe message, it can be determined that the congestion status of the most congested switch in the probe message is the same as the local congestion status. At this time, it is impossible to directly determine which switch has a higher degree of congestion, and it is impossible to directly determine the current most congested switch. Therefore, it is necessary to further judge based on the index bit code and the congestion information code in the coded message.

[0067] In a feasible implementation, step S403 may include: when the congestion information code of the most congested switch in the encoded message is greater than the index bit code, using the congestion information code of the most congested switch in the encoded message as the congestion information code of the current most congested switch, and deleting the congestion entry in the switch flow table; when the congestion information code of the most congested switch in the encoded message is equal to the index bit code, using the congestion information code of the most congested switch in the encoded message as the congestion information code of the current most congested switch, and updating the encoding index; when the congestion information code of the most congested switch in the encoded message is less than the index bit code, using the index bit code as the congestion information code of the current most congested switch, updating the encoding index, and adjusting the congestion indication bit to a second value.

[0068] It should be noted that since the encoding value is 0 or 1, there are three possibilities when comparing the congestion information encoding (U) and the index bit encoding (L) of the most congested switch in the encoded message.

[0069] U > L, that is, the congestion information code of the most congested switch in the encoded packet is greater than the index bit code, indicating that the congestion level of the local switch is lower than that of the most congested switch in the encoded packet. The local switch is not the current most congested switch. That is to say, the most congested switch in the encoded packet is the current most congested switch. At this time, the ECN flag is not updated, and the congestion information code of the most congested switch in the encoded packet is directly used as the congestion information code of the current most congested switch. The encoded packet can be directly forwarded. At the same time, the local switch will delete this congestion entry.

[0070] U = L, that is, the congestion information code of the most congested switch in the encoded packet is equal to the index bit code, indicating that the congestion level of the local switch is equal to that of the most congested switch in the encoded packet. At this time, the Index of this congestion entry is incremented by 1, the ECN flag is not updated, and the congestion information code of the most congested switch in the encoded packet is directly used as the congestion information code of the current most congested switch. The encoded packet can be directly forwarded.

[0071] U < L, that is, the congestion information code of the most congested switch in the encoded packet is less than the index bit code, indicating that the congestion level of the local switch is higher than that of the most congested switch in the encoded packet. The local switch is the current most congested switch, and the index bit code is used as the congestion information code of the current most congested switch. That is to say, before the local switch forwards the received encoded packet, it needs to update the ECN mark of the encoded packet using the index bit code L, and at the same time update the congestion entry, increment the value of Index by 1, and set the value of CI to 1.

[0072] Further, in a feasible implementation manner, when the congestion indication bit is the second value, the index bit code is used as the congestion information code of the current most congested switch.

[0073] It can be understood that if the value of CI is equal to 1, it means that the congestion level of the local switch is higher, that is, the local switch is the current most congested switch. The ECN flag is not updated, and the index bit code is used as the congestion information code of the current most congested switch.

[0074] This embodiment provides a congestion perception method based on a switch flow table. When a congestion entry exists in the switch flow table, the method obtains the congestion indicator bit, local congestion information code, and coding index in the congestion entry; based on the coding index, the index bit code is determined in the local congestion information code; and when the congestion indicator bit is a first value, the congestion information code of the current most congested switch is determined based on the congestion information code and index bit code of the most congested switch in the coded message. By detecting the status of the most congested upstream node through a detection message, the coding information of the most congested upstream node in the coded message and the corresponding entry designed in the switch flow table are used to determine the coding information of the current most congested node. This method can accurately perceive network congestion using a multi-packet joint coding mechanism without changing the message structure or introducing additional bandwidth overhead, providing support for implementing precise congestion control and achieving more fine-grained congestion control.

[0075] For example, in order to help understand the implementation process of the congestion sensing method based on the switch flow table obtained by combining this embodiment with the above-mentioned embodiment 2, please refer to Figure 4 , Figure 4 This article provides a brief flow chart of a congestion awareness method based on a switch flow table. Specifically: Receive a message. If the ECN mark carried in the received message is 10 or 11, it means that the received message is a probe message. If the local congestion status is ECN10 and the congestion status of the most congested switch in the probe message is ECN11, it means that the congestion level of the local switch is low. Then determine whether the congestion table entry exists. If it exists, delete it. At this time, the received probe message can be forwarded directly. If the congestion status is other, first determine whether the congestion table entry exists. If not, insert a new congestion table entry. If it exists, initialize the congestion table entry, set the Index value to 0, set the CI value to 0, and use the encoding of local bandwidth utilization (this The EnBits value is updated based on the local congestion status (ECN10) / local queue length encoding (the local congestion status is ECN11). If the local congestion status is ECN11 and the congestion status of the most congested switch in the probe message is ECN10, it indicates that the local switch is highly congested. The CI value needs to be set to 1, and the congestion status of the most congested switch in the probe message needs to be updated to ECN11. The updated probe message is forwarded. If the local congestion status is the same as the congestion status of the most congested switch in the probe message, the congestion status of the most congested switch in the probe message is not updated, and the original probe message received is directly forwarded.

[0076] If the ECN mark carried in the received message is 00 or 01, it indicates that the received message is an encoded message. First, check whether the congestion entry exists. If it does not exist, it means that the congestion level of the local switch is low, and at this time, the received encoded message can be directly forwarded. If it exists, then check whether the value of CI is 0. If the value of CI is 0, then further compare the congestion level using the congestion information encoding U in the message and the congestion information encoding L corresponding to the index encoding in the congestion entry. If U > L, it means that the congestion level of the local switch is low, then delete the corresponding congestion entry, do not update the congestion information encoding of the most congested switch in the encoded message, and directly forward the received original encoded message. If U = L, it means that the congestion levels are the same, then update the index encoding, do not update the congestion information encoding of the most congested switch in the encoded message, and directly forward the received original encoded message. If U < L, it means that the congestion level of the local switch is high, and it is necessary to set the value of CI to 1, update the congestion information encoding of the most congested switch in the encoded message to L, and update the index encoding, and then forward the updated encoded message. If the value of CI is 1, it means that the congestion level of the local switch is high, update the congestion information encoding of the most congested switch in the encoded message to L, and update the index encoding, and then forward the updated encoded message.

[0077] It should be noted that the above examples are only for understanding this application and do not constitute a limitation on the congestion awareness method of the switch flow table of this application. Based on this technical concept, more forms of simple transformations are within the protection scope of this application.

[0078] This application also provides a congestion awareness device based on a switch flow table. Please refer to Figure 5 , the congestion awareness device based on the switch flow table includes: A message receiving module 10, configured to receive a probe message and an encoded message sent by a sending end, where the congestion status of the most congested switch in the probe message and the congestion information encoding of the most congested switch in the encoded message are both identified using an ECN mark; A congestion awareness module 20, configured to determine the congestion status of the current most congested switch based on the local congestion status and the congestion status of the most congested switch in the probe message, and set a congestion entry in the switch flow table; A message forwarding module 30, configured to determine a target probe message based on the congestion status of the current most congested switch, and return the target probe message to the sending end; The congestion awareness module 20 is further configured to determine the congestion information encoding of the current most congested switch based on the congestion entry in the switch flow table and the congestion information encoding of the most congested switch in the encoded message; The message forwarding module 30 is further configured to determine a target coded message based on the congestion information coding of the currently most congested switch, and return the target coded message to the sending end.

[0079] In a feasible embodiment, the congestion sensing module 20 is further configured to, when both the local congestion state and the congestion state of the most congested switch in the detection message are queue-empty states, determine that the congestion state of the most congested switch is queue-empty, initialize the encoding index of the congestion entry, set the congestion indication bit of the congestion entry to a first value, and set the local congestion information encoding of the congestion entry to the encoding of the local bandwidth utilization; When both the local congestion state and the congestion state of the most congested switch in the detection message indicate a queue non-empty state, determining that the congestion state of the current most congested switch is a queue non-empty state, initializing a coding index of a congestion entry, setting a congestion indication bit of the congestion entry to a first value, and setting a local congestion information code of the congestion entry to a code of a local queue length; When the local congestion state is a queue-empty state and the congestion state of the most congested switch in the detection message is a queue-non-empty state, determining that the congestion state of the current most congested switch is a queue-non-empty state, and deleting the congestion table entry in the switch flow table; When the local congestion state is a queue non-empty state and the congestion state of the most congested switch in the detection message is a queue empty state, determining that the congestion state of the current most congested switch is a queue non-empty state, initializing the encoding index of the congestion table entry, setting the congestion indication bit of the congestion table entry to the second value, and setting the local congestion information encoding of the congestion table entry to the encoding of the local queue length.

[0080] In a feasible implementation manner, the congestion sensing module 20 is further configured to obtain a congestion indication bit, a local congestion information code, and a code index in a congestion entry when a congestion entry exists in the switch flow table; determining an index bit code in the local congestion information code based on the code index; When the congestion indication bit is a first value, determining the congestion information code of the most congested switch based on the congestion information code of the most congested switch in the coded message and the index bit code; When the congestion indication bit is a second value, the index bit code is used as the congestion information code of the current most congested switch.

[0081] In a feasible embodiment, the congestion sensing module 20 is further configured to, when the congestion information code of the most congested switch in the encoded message is greater than the index bit code, use the congestion information code of the most congested switch in the encoded message as the congestion information code of the current most congested switch, and delete the congestion entry in the flow table of the switch; When the congestion information code of the most congested switch in the coded message is equal to the index bit code, using the congestion information code of the most congested switch in the coded message as the congestion information code of the current most congested switch, and updating the code index; When the congestion information code of the most congested switch in the coded message is smaller than the index bit code, the index bit code is used as the congestion information code of the current most congested switch, the coding index is updated, and the congestion indication bit is adjusted to a second value.

[0082] In a feasible implementation manner, the congestion sensing module 20 is further configured to use the congestion information code of the most congested switch in the encoded message as the congestion information code of the current most congested switch when there is no congestion entry in the switch flow table.

[0083] In a feasible embodiment, the message forwarding module 30 is further configured to, when the congestion state of the current most congested switch is different from the congestion state of the most congested switch in the detection message, update the congestion state of the most congested switch in the detection message to the congestion state of the current most congested switch, thereby obtaining the target detection message; When the congestion state of the current most congested switch is the same as the congestion state of the most congested switch in the probe message, the probe message is used as the target probe message.

[0084] In a feasible embodiment, the message forwarding module 30 is further configured to, when the congestion information code of the current most congested switch is different from the congestion information code of the most congested switch in the coded message, update the congestion information code of the most congested switch in the coded message to the congestion information code of the current most congested switch, thereby obtaining the target coded message; When the congestion information code of the current most congested switch is the same as the congestion information code of the most congested switch in the coded message, the coded message is used as the target coded message.

[0085] The switch flow table-based congestion sensing device provided in this application utilizes the switch flow table-based congestion sensing method described in the aforementioned embodiments to address the technical issue of congestion control failing to balance bandwidth overhead and accuracy. Compared to the prior art, the switch flow table-based congestion sensing device provided in this application achieves the same beneficial effects as the switch flow table-based congestion sensing method described in the aforementioned embodiments. Other technical features of the switch flow table-based congestion sensing device are the same as those disclosed in the aforementioned embodiments and are not further elaborated here.

[0086] The present application provides a congestion sensing device based on a switch flow table. The congestion sensing device based on a switch flow table includes: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the congestion sensing method based on the switch flow table in the above-mentioned embodiment 1.

[0087] Reference below Figure 6 , which shows a schematic diagram of the structure of a switch flow table-based congestion sensing device suitable for implementing embodiments of the present application. The switch flow table-based congestion sensing device in the embodiments of the present application may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (Personal Digital Assistants), PADs (Portable Application Descriptions), PMPs (Portable Media Players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 6 The illustrated congestion awareness device based on a switch flow table is merely an example and should not limit the functionality and scope of use of the embodiments of the present application.

[0088] like Figure 6As shown, the switch flow table-based congestion awareness device may include a processing device 1001 (e.g., a central processing unit, graphics processing unit, etc.), which can perform various appropriate actions and processes based on programs stored in a read-only memory (ROM) 1002 or programs loaded from a storage device 1003 into a random access memory (RAM) 1004. RAM 1004 also stores various programs and data required for the operation of the switch flow table-based congestion awareness device. Processing device 1001, ROM 1002, and RAM 1004 are interconnected via a bus 1005. An input / output (I / O) interface 1006 is also connected to the bus. Typically, the following systems can be connected to the I / O interface 1006: input devices 1007 including, for example, a touch screen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output devices 1008 including, for example, a liquid crystal display (LCD), speaker, vibrator, etc.; storage devices 1003 including, for example, a magnetic tape, hard disk, etc.; and communication devices 1009. The communication devices 1009 can allow the switch flow table-based congestion sensing device to communicate with other devices wirelessly or wired to exchange data. Although the diagram illustrates a switch flow table-based congestion sensing device with various systems, it should be understood that implementation or presence of all illustrated systems is not required. More or fewer systems may alternatively be implemented or present.

[0089] In particular, according to the embodiments disclosed in the present application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, the embodiments disclosed in the present application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program comprising program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from a network via a communication device, or installed from a storage device 1003, or installed from a ROM 1002. When the computer program is executed by the processing device 1001, the above-mentioned functions defined in the method of the embodiment disclosed in the present application are executed.

[0090] The switch flow table-based congestion awareness device provided in this application utilizes the switch flow table-based congestion awareness method described in the aforementioned embodiment, resolving the technical issue of congestion control failing to balance bandwidth overhead and accuracy. Compared to the prior art, the switch flow table-based congestion awareness device provided in this application achieves the same beneficial effects as the switch flow table-based congestion awareness method described in the aforementioned embodiment. Other technical features of this switch flow table-based congestion awareness device are the same as those disclosed in the aforementioned embodiment and are not further elaborated here.

[0091] It should be understood that the various parts disclosed in this application can be implemented using hardware, software, firmware, or a combination thereof. In the description of the above embodiments, specific features, structures, materials, or characteristics can be combined in any one or more embodiments or examples in a suitable manner.

[0092] The above are only specific embodiments of the present application, but the scope of protection of this application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.

[0093] The present application provides a computer-readable storage medium having computer-readable program instructions (ie, a computer program) stored thereon, wherein the computer-readable program instructions are used to execute the congestion sensing method based on the switch flow table in the above embodiment.

[0094] The computer-readable storage medium provided herein may be, for example, a USB flash drive, but is not limited to electrical, magnetic, optical, electromagnetic, infrared, or semiconductor systems, systems, or devices, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof. In this embodiment, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, system, or device. The program code contained on the computer-readable storage medium may be transmitted using any suitable medium, including, but not limited to, wires, optical cables, RF (Radio Frequency), etc., or any suitable combination thereof.

[0095] The computer-readable storage medium may be included in the congestion sensing device based on the switch flow table; or may exist independently without being assembled into the congestion sensing device based on the switch flow table.

[0096] The computer-readable storage medium carries one or more programs. When the one or more programs are executed by a congestion sensing device based on a switch flow table, the congestion sensing device based on the switch flow table: receives a probe message and an encoded message sent by a sender, wherein the congestion status of the most congested switch in the probe message and the congestion information code of the most congested switch in the encoded message are both marked with an ECN tag; determines the congestion status of the current most congested switch based on the local congestion status and the congestion status of the most congested switch in the probe message, and sets a congestion entry in the switch flow table; determines a target probe message based on the congestion status of the current most congested switch, and returns the target probe message to the sender; determines the congestion information code of the current most congested switch based on the congestion entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; determines a target encoded message based on the congestion information code of the current most congested switch, and returns the target encoded message to the sender.

[0097] Computer program code for performing the operations of the present application may be written in one or more programming languages, or a combination thereof, including object-oriented programming languages ​​such as Java, Smalltalk, C++, and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0098] The flow charts and block diagrams in the accompanying drawings illustrate the possible architecture, functions and operations of the systems, methods and computer program products according to various embodiments of the present application. In this regard, each box in the flow chart or block diagram can represent a module, program segment or a part of code, and the module, program segment or a part of code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order than that marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram and / or flow chart, and the combination of the boxes in the block diagram and / or flow chart can be implemented by a dedicated hardware-based system that performs the specified function or operation, or can be implemented by a combination of dedicated hardware and computer instructions.

[0099] The modules described in the embodiments of the present application may be implemented in software or hardware, wherein the name of a module does not necessarily limit the unit itself.

[0100] The computer-readable storage medium provided in this application stores computer-readable program instructions (i.e., a computer program) for executing the aforementioned switch flow table-based congestion awareness method. This computer-readable storage medium can address the technical issue of congestion control failing to balance bandwidth overhead and accuracy. Compared to the prior art, the beneficial effects of the computer-readable storage medium provided in this application are similar to those of the switch flow table-based congestion awareness method provided in the aforementioned embodiments, and are not further elaborated here.

[0101] The present application also provides a computer program product, including a computer program, which implements the steps of the above-mentioned congestion perception method based on the switch flow table when executed by a processor.

[0102] The computer program product provided in this application can address the technical issue of congestion control failing to balance bandwidth overhead with accuracy. Compared to the prior art, the beneficial effects of the computer program product provided in this application are the same as those of the switch flow table-based congestion sensing method provided in the above-mentioned embodiment, and are not further elaborated here.

[0103] The above are only some embodiments of the present application and are not intended to limit the patent scope of the present application. All equivalent structural transformations made using the contents of the present application specification and drawings under the technical concept of the present application, or direct / indirect application in other related technical fields are included in the patent protection scope of the present application.

Claims

1. A congestion perception method based on a switch flow table, characterized in that: The method comprises: Receiving a detection message and a coded message sent by a sending end, wherein the congestion state of the most congested switch in the detection message and the congestion information code of the most congested switch in the coded message are both marked with an ECN mark; Based on the local congestion status and the congestion status of the most congested switch in the detection message, determine the congestion status of the current most congested switch, and set the congestion table entry in the switch flow table; Determine a target detection message based on the congestion state of the current most congested switch, and return the target detection message to the sending end; Determine the congestion information code of the current most congested switch based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; Based on the congestion information encoding of the current most congested switch, a target encoding message is determined, and the target encoding message is returned to the sending end.

2. The method according to claim 1, characterized in that The step of determining the congestion state of the most congested switch based on the local congestion state and the congestion state of the most congested switch in the detection message, and setting the congestion table entry in the switch flow table includes: When the local congestion state and the congestion state of the most congested switch in the detection message are both queue empty states, determining that the congestion state of the current most congested switch is the queue empty state, initializing the coding index of the congestion table entry, setting the congestion indication bit of the congestion table entry to a first value, and setting the local congestion information coding of the congestion table entry to the coding of the local bandwidth utilization rate; When the local congestion state and the congestion state of the most congested switch in the detection message are both queue non-empty states, determining that the congestion state of the current most congested switch is queue non-empty state, initializing the coding index of the congestion table entry, setting the congestion indication bit of the congestion table entry to a first value, and setting the local congestion information coding of the congestion table entry to the coding of the local queue length; When the local congestion state is the queue empty state and the congestion state of the most congested switch in the detection message is the queue non-empty state, determining that the congestion state of the current most congested switch is the queue non-empty state, and deleting the congestion table entry in the switch flow table; When the local congestion state is a queue non-empty state and the congestion state of the most congested switch in the detection message is a queue empty state, it is determined that the congestion state of the current most congested switch is a queue non-empty state, and the encoding index of the congestion table item is initialized, the congestion indication bit of the congestion table item is set to a second value, and the local congestion information encoding of the congestion table item is set to the encoding of the local queue length.

3. The method according to claim 1, characterized in that The step of determining the congestion information encoding of the most congested switch based on the congestion table entry in the switch flow table and the congestion information encoding of the most congested switch in the encoded message comprises: When there is a congestion entry in the switch flow table, obtaining a congestion indication bit, a local congestion information code, and a code index in the congestion entry; Based on the coding index, determining an index bit coding in the local congestion information coding; When the congestion indication bit is a first value, determining the congestion information code of the most congested switch currently based on the congestion information code of the most congested switch in the coded message and the index bit code; When the congestion indication bit is a second value, the index bit code is used as the congestion information code of the current most congested switch.

4. The method according to claim 3, characterized in that The step of determining the congestion information code of the most congested switch in the coded message and the index bit code comprises: When the congestion information code of the most congested switch in the encoded message is greater than the index bit code, the congestion information code of the most congested switch in the encoded message is used as the congestion information code of the current most congested switch, and the congestion table entry in the switch flow table is deleted; When the congestion information code of the most congested switch in the coded message is equal to the index bit code, the congestion information code of the most congested switch in the coded message is used as the congestion information code of the current most congested switch, and the coding index is updated; When the congestion information code of the most congested switch in the coded message is smaller than the index bit code, the index bit code is used as the congestion information code of the current most congested switch, the coding index is updated, and the congestion indication bit is adjusted to a second value.

5. The method according to claim 1, characterized in that The step of determining the congestion information encoding of the most congested switch based on the congestion table entry in the switch flow table and the congestion information encoding of the most congested switch in the encoded message comprises: When there is no congestion entry in the switch flow table, the congestion information encoding of the most congested switch in the encoded message is used as the congestion information encoding of the current most congested switch.

6. The method according to any one of claims 1 to 5, characterized in that The step of determining the target detection message based on the congestion state of the current most congested switch includes: When the congestion state of the current most congested switch is different from the congestion state of the most congested switch in the detection message, the congestion state of the most congested switch in the detection message is updated to the congestion state of the current most congested switch, to obtain the target detection message; When the congestion state of the current most congested switch is the same as the congestion state of the most congested switch in the detection message, the detection message is used as the target detection message.

7. The method according to any one of claims 1 to 5, characterized in that The step of determining the target coded message based on the congestion information coding of the current most congested switch comprises: When the congestion information code of the current most congested switch is different from the congestion information code of the most congested switch in the coded message, updating the congestion information code of the most congested switch in the coded message to the congestion information code of the current most congested switch, to obtain the target coded message; When the congestion information code of the current most congested switch is the same as the congestion information code of the most congested switch in the coded message, the coded message is used as the target coded message.

8. A congestion sensing device based on a switch flow table, characterized in that: The device comprises: A message receiving module, used for receiving a detection message and a coded message sent by a sending end, wherein the congestion state of the most congested switch in the detection message and the congestion information code of the most congested switch in the coded message are both marked with an ECN mark; A congestion sensing module, configured to determine the congestion state of the most congested switch based on the local congestion state and the congestion state of the most congested switch in the detection message, and set a congestion table entry in the switch flow table; A message forwarding module, configured to determine a target detection message based on the congestion state of the current most congested switch, and return the target detection message to the sending end; The congestion sensing module is further configured to determine the congestion information code of the most congested switch at present based on the congestion table entry in the switch flow table and the congestion information code of the most congested switch in the encoded message; The message forwarding module is further configured to determine a target coded message based on the congestion information coding of the current most congested switch, and return the target coded message to the sending end.

9. A congestion sensing device based on a switch flow table, characterized in that: The device comprises: a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program is configured to implement the steps of the congestion awareness method based on a switch flow table as claimed in any one of claims 1 to 7.

10. A storage medium, characterized in that: The storage medium is a computer-readable storage medium, and a computer program is stored on the storage medium. When the computer program is executed by a processor, the steps of the congestion perception method based on a switch flow table are implemented as described in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Low-overhead high-precision congestion control method and system for data center

    CN116545930A

  • Network congestion control method and device, equipment and storage medium

    CN116886622A

  • Congestion control method and device, equipment, storage medium and product

    CN118827547A

  • Congestion information synchronizing method and related apparatus

    WO2021203985A1

  • Network congestion control method and apparatus, device, system, and storage medium

    WO2021244240A1