Congestion information notification method, device and system
Through the interaction of the first message and the second message, the congestion marking field and target congestion information are carried, and packet loss caused by network congestion is solved, and the flexible and accurate statistics and update of the degree of congestion of the transmission path is realized, thereby improving the efficiency and flexibility of network transmission.
Patent Information
- Application Number
- CN202410240965.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-01
- Publication Date
- 2025-09-02
AI Technical Summary
During network transmission, congestion phenomenon leads to packet loss and transmission quality degradation, and it is difficult for the prior art to effectively and flexibly adjust the message sending strategy to deal with congestion.
Through the interactive carrying of the first and second messages, the congestion mark fields and target congestion information is realized, and flexible and accurate statistics and updates of the transmission path congestion degree are encapsulated using different protocol layers such as enhanced ECN header, MPLS label, ethernet tag, tunnel header and IP header, supporting the transmission of multiple congestion information types.
It improves the accuracy and transmission efficiency of congestion information update, simplifies the process of determining congestion information, supports flexible encapsulation and transmission of multiple congestion information types, and improves the flexibility and efficiency of network transmission.
Smart Images

Figure CN120583046A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a method, device, and system for notifying congestion information. Background Art
[0002] With the advancement of communication technology, the volume of packets transmitted over networks is increasing. Network congestion may occur during packet transmission, which can reduce packet transmission quality. For example, congestion can cause packet loss. Therefore, during packet transmission, the receiver must send congestion information to the sender based on the packet's transmission status. This allows the sender to flexibly adjust its packet transmission strategy based on this information. Summary of the Invention
[0003] This application provides a congestion information notification method, device, and system to send congestion information to the sender of a message. The technical solution is as follows:
[0004] In a first aspect, a method for notifying congestion information is provided, the method comprising: receiving a first message transmitted by a sender via a first transmission path; and returning a second message corresponding to the first message to the sender via a second transmission path, wherein the second message carries target congestion information, the target congestion information being used to indicate a degree of congestion on the first transmission path or the second transmission path, and at least one of the first message or the second message carries a congestion flag field, the congestion flag field carried by the second message being used to indicate whether to update the target congestion information.
[0005] The present application does not limit whether the target congestion information carried by the second message indicates the congestion level of the first transmission path or the second transmission path. The target congestion information that can be carried is diverse in type, offering high flexibility. The method also does not limit the message carrying the congestion marker field; it can be either the first message or the second message, offering wide versatility. The congestion marker field can be used to indicate the relevant operations corresponding to the target congestion information. For example, in a case where the target congestion information carried by the second message indicates the congestion level of the first transmission path, since the second message is transmitted on the second transmission path, the target congestion information carried by the second message does not need to be updated during the transmission of the second message. In a case where the target congestion information carried by the second message indicates the congestion level of the second transmission path, since the second message is transmitted on the second transmission path, the target congestion information carried by the second message can be updated during the transmission of the second message. Based on the update requirements for different target congestion information, in this case, the congestion marker field carried by the second message can be used to indicate whether the target congestion information is updated, offering high update accuracy.
[0006] In one possible implementation, a first message carries first congestion information, and the target congestion information includes second congestion information. The second congestion information is derived based on the first congestion information and indicates the congestion level of the first transmission path traversed by the first message. The congestion level of the first transmission path can be determined based on the first congestion information carried by the first message, and statistics on the congestion level of the first transmission path are collected during the transmission of the first message, resulting in a more efficient statistical process. The second congestion information carried by the second message can be determined based on the first congestion information, simplifying the process of determining the second congestion information and reducing operational complexity.
[0007] In one possible implementation, the target congestion information includes third congestion information. The third congestion information indicates the congestion level of the second transmission path traversed by the second message. The third congestion information is updated by each transmission node along the second transmission path based on the transmission node's congestion level. Statistics on the third congestion information can be collected during the transmission of the second message, simplifying the statistical process. The third congestion information is updated by the transmission node based on the local congestion level during the transmission of the second message, providing high real-time performance.
[0008] In one possible implementation, the first message includes a first detection field that carries first congestion information, and the second message includes a second detection field that carries target congestion information. The first and target congestion information are carried in fixed fields of the first and second messages, achieving regular transmission.
[0009] In one possible implementation, when the first message carries a congestion flag field, the congestion flag field carried in the first message is used to instruct a transmission node included in the first transmission path to update the value of the first detection field. By specifying the congestion flag field as the transmission node's update of the first detection field value, the transmission node is guaranteed to update the first detection field value when necessary, thereby achieving accurate updating of the first detection field.
[0010] In one possible implementation, when the second message carries a congestion flag field, the congestion flag field carried in the second message is used to instruct a transmission node included in the second transmission path not to update the value of the second detection field. By restricting the transmission node from updating the value of the second detection field using the congestion flag field, the transmission node can determine whether to update the value of the second detection field based on the congestion flag field, resulting in a simple and efficient determination process.
[0011] In one possible implementation, the congestion marker field carried in the first message is also used to indicate the location of the second detection field in the second message. In addition to requesting target congestion information, the sender also uses the congestion marker field to notify the receiver of the encapsulation location of the target congestion information in the second message. This allows the receiver to subsequently encapsulate the target congestion information without selecting the second detection field, resulting in improved encapsulation efficiency.
[0012] In one possible implementation, the congestion flag field carried by the second message is also used to indicate the position of the second detection field in the second message. By using the congestion flag field to clearly indicate the position of the second detection field in the second message, the sender can subsequently determine the second detection field from the fields of the second message based on the congestion flag field carried by the second message. This simplifies the determination process and improves efficiency.
[0013] In addition, the method does not limit the way in which the sending end obtains the position of the second detection field in the second message. The position of the second detection field can be specified by the sending end, or it can be notified by the receiving end through the congestion mark field of the second message. There are many ways to determine the position of the second detection field, and the flexibility is high.
[0014] In one possible implementation, at least one of a congestion tag field or target congestion information is carried in an enhanced explicit congestion notification (ECN) header. The enhanced ECN header is encapsulated in at least one of the following: a Layer 3 extension header, a multi-protocol label switching label (MPLS label), a Layer 2 Ethernet tag, a tunnel header, or other fields in a Layer 2 TCP or Internet Protocol (IP) header of the first or second packet. The location of the enhanced ECN header is not restricted; it can be flexibly encapsulated in different locations in the first or second packet, resulting in a highly flexible and versatile encapsulation process. Furthermore, the Layer 3 extension header, MPLS label, tunnel header, and other fields in the IP header are transmitted via the network layer, while the Ethernet tag is transmitted via the link layer, and the TCP header is transmitted via the transport layer. This means that the enhanced ECN header can be transmitted via at least one of the network, link, or transport layers, without any restrictions on the protocol layer at which it is transmitted, resulting in highly flexible transmission.
[0015] In one possible implementation, the target congestion information includes at least one of a cache parameter, a timestamp, or bandwidth utilization of a transmission node in the first transmission path or the second transmission path. The data type of the target congestion information is not limited and can be one or more parameters that can describe the cache situation, providing high flexibility.
[0016] In a second aspect, a method for notifying congestion information is provided, the method comprising: transmitting a first message to a receiving end via a first transmission path; receiving a second message corresponding to the first message returned by the receiving end via a second transmission path, the second message carrying target congestion information, the target congestion information being used to indicate a degree of congestion on the first transmission path or the second transmission path, at least one of the first message or the second message carrying a congestion flag field, the congestion flag field carried by the second message being used to indicate whether to update the target congestion information.
[0017] In a possible implementation, the first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of a first transmission path through which the first message passes.
[0018] In a possible implementation, the target congestion information includes third congestion information, which indicates a congestion level of a second transmission path through which the second message passes. The third congestion information is updated by each transmission node included in the second transmission path based on the congestion level of the transmission node.
[0019] In a possible implementation, the first message includes a first detection field, which is used to carry first congestion information; the second message includes a second detection field, which is used to carry target congestion information.
[0020] In a possible implementation, when the first message carries a congestion marking field, the congestion marking field carried by the first message is used to instruct the transmission node included in the first transmission path to update the value of the first detection field.
[0021] In a possible implementation, when the second message carries a congestion marking field, the congestion marking field carried by the second message is used to instruct the transmission node included in the second transmission path not to update the value of the second detection field.
[0022] In a possible implementation, the congestion mark field carried by the first message is further used to indicate the position of the second detection field in the second message.
[0023] In a possible implementation, the congestion mark field carried by the second message is further used to indicate the position of the second detection field in the second message.
[0024] In one possible implementation, at least one of the congestion mark field and the target congestion information is carried in an enhanced ECN header, and the enhanced ECN header is encapsulated in at least one of other fields of a Layer 3 extension header, an MPLS label, a Layer 2 Ethernet tag, a tunnel header, or a Layer 2 TCP or IP header of the first or second packet.
[0025] In a possible implementation manner, the target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node in the first transmission path or the second transmission path.
[0026] In a third aspect, a congestion information notification device is provided, comprising: a receiving module for receiving a first message transmitted by a sender via a first transmission path; a sending module for returning a second message corresponding to the first message to the sender via a second transmission path, wherein the second message carries target congestion information, and the target congestion information is used to indicate a degree of congestion on the first transmission path or the second transmission path; at least one of the first message or the second message carries a congestion mark field, and the congestion mark field carried by the second message is used to indicate whether to update the target congestion information.
[0027] In a possible implementation, the first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of a first transmission path through which the first message passes.
[0028] In a possible implementation, the target congestion information includes third congestion information, which indicates a congestion level of a second transmission path through which the second message passes. The third congestion information is updated by each transmission node included in the second transmission path based on the congestion level of the transmission node.
[0029] In a possible implementation, the first message includes a first detection field, which is used to carry first congestion information; the second message includes a second detection field, which is used to carry target congestion information.
[0030] In a possible implementation, when the first message carries a congestion marking field, the congestion marking field carried by the first message is used to instruct the transmission node included in the first transmission path to update the value of the first detection field.
[0031] In a possible implementation, when the second message carries a congestion marking field, the congestion marking field carried by the second message is used to instruct the transmission node included in the second transmission path not to update the value of the second detection field.
[0032] In a possible implementation, the congestion mark field carried by the first message is further used to indicate the position of the second detection field in the second message.
[0033] In a possible implementation, the congestion mark field carried by the second message is further used to indicate the position of the second detection field in the second message.
[0034] In one possible implementation, at least one of the congestion mark field and the target congestion information is carried in an enhanced ECN header, and the enhanced ECN header is encapsulated in at least one of other fields of a Layer 3 extension header, an MPLS label, a Layer 2 Ethernet tag, a tunnel header, or a Layer 2 TCP or IP header of the first or second packet.
[0035] In a possible implementation manner, the target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node in the first transmission path or the second transmission path.
[0036] In a fourth aspect, a congestion information notification device is provided, which includes: a sending module for transmitting a first message to a receiving end via a first transmission path; a receiving module for receiving a second message corresponding to the first message returned by the receiving end via a second transmission path, the second message carrying target congestion information, the target congestion information being used to indicate the degree of congestion of the first transmission path or the second transmission path, at least one of the first message or the second message carrying a congestion mark field, the congestion mark field carried by the second message being used to indicate whether to update the target congestion information.
[0037] In a possible implementation, the first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of a first transmission path through which the first message passes.
[0038] In a possible implementation, the target congestion information includes third congestion information, which indicates a congestion level of a second transmission path through which the second message passes. The third congestion information is updated by each transmission node included in the second transmission path based on the congestion level of the transmission node.
[0039] In a possible implementation, the first message includes a first detection field, which is used to carry first congestion information; the second message includes a second detection field, which is used to carry target congestion information.
[0040] In a possible implementation, when the first message carries a congestion marking field, the congestion marking field carried by the first message is used to instruct the transmission node included in the first transmission path to update the value of the first detection field.
[0041] In a possible implementation, when the second message carries a congestion marking field, the congestion marking field carried by the second message is used to instruct the transmission node included in the second transmission path not to update the value of the second detection field.
[0042] In a possible implementation, the congestion mark field carried by the first message is further used to indicate the position of the second detection field in the second message.
[0043] In a possible implementation, the congestion mark field carried by the second message is further used to indicate the position of the second detection field in the second message.
[0044] In one possible implementation, at least one of the congestion mark field and the target congestion information is carried in an enhanced ECN header, and the enhanced ECN header is encapsulated in at least one of other fields of a Layer 3 extension header, an MPLS label, a Layer 2 Ethernet tag, a tunnel header, or a Layer 2 TCP or IP header of the first or second packet.
[0045] In a possible implementation manner, the target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node in the first transmission path or the second transmission path.
[0046] In a fifth aspect, a congestion information notification device is provided, which includes a processor, and the processor is used to load and execute at least one instruction to enable the congestion information notification device to execute the method in the first aspect or any possible implementation of the first aspect, or to execute the method in the second aspect or any possible implementation of the second aspect.
[0047] In a possible implementation, the device includes a memory coupled to a processor, and the memory stores at least one instruction.
[0048] In a sixth aspect, a computer-readable storage medium is provided, in which at least one instruction is stored. The instruction is loaded and executed by a processor to implement the method for notifying congestion information in the first aspect or any possible implementation of the first aspect, or to implement the method for notifying congestion information in the second aspect or any possible implementation of the second aspect.
[0049] In the seventh aspect, a computer program (product) is provided, which includes a computer program / instructions, and the computer program / instructions are executed by a processor to enable a computer to implement the method for notifying congestion information in the first aspect or any possible implementation of the first aspect, or to implement the method for notifying congestion information in the second aspect or any possible implementation of the second aspect.
[0050] In an eighth aspect, a communication device is provided, comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other via an internal connection path; the memory is configured to store instructions; and the processor is configured to execute the instructions stored in the memory to control the transceiver to receive signals and to control the transceiver to transmit signals. When the processor executes the instructions stored in the memory, the processor executes the method of the first aspect or any possible implementation of the first aspect, or executes the method of the second aspect or any possible implementation of the second aspect.
[0051] Optionally, there are one or more processors and one or more memories.
[0052] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.
[0053] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated on the same chip as the processor or be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.
[0054] In a ninth aspect, a chip is provided, comprising a processor for calling and executing program instructions or codes stored in a memory, so that a communication device equipped with the chip executes the methods in the above aspects.
[0055] In the tenth aspect, another chip is provided, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.
[0056] It should be understood that the beneficial effects achieved by the technical solutions of the second to tenth aspects of this application and the corresponding possible implementation methods can be referred to the technical effects of the first aspect and its corresponding possible implementation methods mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 A schematic diagram of an implementation environment provided for an embodiment of the present application;
[0058] Figure 2 A schematic diagram of another implementation environment provided for an embodiment of the present application;
[0059] Figure 3 A flowchart of a method for notifying congestion information provided in an embodiment of the present application;
[0060] Figure 4 A schematic diagram of the structure of an enhanced ECN header provided in an embodiment of the present application;
[0061] Figure 5 A schematic diagram of the structure of another enhanced ECN header provided in an embodiment of the present application;
[0062] Figure 6 A schematic diagram of the structure of a congestion information notification device provided in an embodiment of the present application;
[0063] Figure 7 A schematic diagram of the structure of another device for notifying congestion information provided in an embodiment of the present application;
[0064] Figure 8 A schematic diagram of the structure of a network device provided in an embodiment of the present application;
[0065] Figure 9 A schematic diagram of the structure of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0066] The terms used in the embodiments of this application are only used to explain the specific embodiments of this application and are not intended to limit this application. To make the purpose, technical solutions and advantages of this application clearer, the embodiments of this application will be further described in detail below with reference to the accompanying drawings.
[0067] With the development of communication technology, the volume of messages transmitted in networks has exploded. When using a transmission path in the network to send messages from the transmitting end of the transmission path to the receiving end of the transmission path, congestion may occur in the transmission path. For example, when the volume of messages being transmitted exceeds the load capacity of the transmission path, the transmission path cannot transmit messages in a timely manner. A large number of messages are waiting to be transmitted on the transmission path, and the transmission path becomes congested. Congestion in the transmission path can reduce the transmission quality of the messages. For example, messages waiting to be transmitted on the transmission path increase the transmission delay of the messages. Based on this, the receiving end will notify the sending end of the congestion information of the transmission path, so that the sending end can flexibly adjust the transmission of messages based on the congestion information of the transmission path.
[0068] This application embodiment provides a method for notifying congestion information. Figure 1, which shows a schematic diagram of an implementation environment provided by an embodiment of the present application, the implementation environment includes a sending end 01 and a receiving end 02. Among them, a communication connection can be established between the sending end 01 and the receiving end 02 in the form of a wired or wireless network, and the communication connection between the sending end 01 and the receiving end 02 can be called a transmission path in some cases. Exemplarily, the sending end 01 sends a first message to the receiving end 02 through a first transmission path, and the receiving end 02 returns a second message to the sending end 01 through a second transmission path. At least one message in the first message or the second message carries a congestion mark field, wherein the congestion mark field carried by the second message is used to indicate whether to update the target congestion information carried by the second message, and the target congestion information is used to indicate the degree of congestion of the first transmission path or the second transmission path. The sending end 01 can determine the target congestion information of the first transmission path or the second transmission path based on the received second message.
[0069] in, Figure 1 The arrows in the figure are intended to illustrate the communication connection between the transmitter 01 and the receiver 02, and are not intended to limit the number of transmission paths between the transmitter 01 and the receiver 02. The transmission path between the transmitter 01 and the receiver 02 can be one, in which case the first transmission path and the second transmission path are the same transmission path. Optionally, there can be multiple transmission paths between the transmitter 01 and the receiver 02, in which case the first transmission path and the second transmission path can be different transmission paths or the same transmission path, which is not limited in this embodiment of the present application.
[0070] Regardless of the first and second transmission paths, sender 01 and receiver 02 are located at both ends of the first and second transmission paths. Alternatively, sender 01 and receiver 02 are used to distinguish between the two ends of the first and second transmission paths. Since sender 01 can receive messages and receiver 02 can send messages, in some cases sender 01 can also be referred to as the receiver, and receiver 02 can also be referred to as the sender. Sender 01 and receiver 02 are symmetrical devices.
[0071] In one possible implementation, the first transmission path and the second transmission path between the transmitter 01 and the receiver 02 further include transmission nodes, that is, the transmitter 01 and the receiver 02 are indirectly connected through the transmission nodes. The embodiment of the present application does not limit the number of transmission nodes included in the first transmission path or the second transmission path. Figure 2 This is another implementation environment diagram provided by the embodiment of the present application, which also includes a transmission node 03. Figure 2In the example, the first transmission path and the second transmission path are taken as the same transmission path, and the transmission path includes three transmission nodes 03 . In actual applications, the transmission path may include fewer or more transmission nodes 03 .
[0072] Exemplarily, the sending end 01, the receiving end 02 and the transmission node 03 can be any device with a message transmission function, and can be a server, such as a central server, an edge server, or a local server in a local data center. The server can be a physical server, or a cloud server that provides cloud computing services in a cloud scenario. In some embodiments, the sending end 01 and the receiving end 02 can also be terminal devices such as desktops, laptops or smart phones. Exemplarily, the sending end 01, the receiving end 02 and the transmission node 03 can also be a switch, a router, a gateway (GW), a network element or a network side edge device (provider edge, PE), etc. Optionally, in addition to being independent devices, the sending end 01, the receiving end 02 and the transmission node 03 can also be a component on the device, such as a transceiver, a processor or a chip.
[0073] The present invention provides a method for notifying congestion information. The method for notifying congestion information can be applied to the above Figure 1 or Figure 2 In the implementation environment shown in FIG, the method is interactively executed by the sending end and the receiving end as an example. The flowchart of the method is as follows Figure 3 As shown, it includes S301-S304.
[0074] S301: A sending end transmits a first message to a receiving end through a first transmission path.
[0075] The embodiments of the present application do not limit the first message transmitted by the transmitting end; the first message can be any message with a transmission requirement, including but not limited to a service message generated based on service operation or a detection message. Service messages include but are not limited to game messages, video messages, and image messages. Detection messages can be used to detect any information, including but not limited to detecting the path quality of the first transmission path or detecting the operating status of the receiving end.
[0076] The embodiments of the present application do not limit the manner in which the sending end obtains the first message. The sending end can generate the first message to be transmitted, that is, the sending end can be the source device of the first message. For example, if the first message is a game message and the sending end is a terminal operated by a user, the terminal has game software installed and running on it. Based on the running of the game software, the terminal generates a game message, and the generated game message needs to be sent to the receiving end to achieve the smooth running of the game software. Optionally, the sending end can also receive the first message sent by other devices, that is, the sending end can be a transit device for the first message. For example, the sending end is connected to the terminal. After the terminal generates a game message based on the running of the game software, it can transmit the game message to the sending end. After receiving the game message, the sending end determines to send the game message to the receiving end through the first transmission path. The sending end uses the received game message as the first message.
[0077] Regardless of the method and type of the first message obtained by the sender, the sender may send the obtained first message to the receiver, thereby triggering the receiver to return target congestion information to the sender through the first message. In one possible scenario, the first message may include a congestion indicator field, which is used to trigger the receiver to return target congestion information to the sender. The target congestion information is carried in the second message. In other words, the congestion indicator field is used to indicate whether the second message returned by the receiver should carry the target congestion information.
[0078] The embodiment of the present application does not limit the position of the congestion identification field in the first message. The first message includes a transmission control protocol (TCP) header, an internet protocol (IP) header, an Ethernet header, and an Ethernet trailer. For example, after the user data is transmitted to the transport layer, a TCP header is added to the transport layer to encapsulate the user data to obtain a TCP segment. After the TCP segment is transmitted to the network, an IP header is added to the network layer to obtain an IP data packet. After the IP data packet is transmitted to the link layer, an Ethernet header and an Ethernet trailer are added to the link layer to encapsulate the IP datagram to obtain an Ethernet frame, which is the first message. Therefore, the different fields included in the first message are transmitted at different protocol layers. For example, the TCP header is transmitted at the transport layer, the IP header is transmitted at the network layer, and the Ethernet header and Ethernet trailer are transmitted at the link layer.
[0079] Optionally, the congestion indicator field can be located in the IP header of the first packet. Taking congestion detection implemented using enhanced explicit congestion notification (ECN) as an example, enhanced ECN refers to the ability to mark the congestion level of a transmission path using multiple bits or fields, compared to traditional ECN, which can only mark the congestion level of a transmission path using a single bit. This allows for a larger amount of data to be marked and provides a stronger marking capability. Therefore, it can be referred to as enhanced ECN. When implementing congestion detection using enhanced ECN, the IP header includes an enhanced ECN header, which includes enhanced ECN instructions and enhanced ECN data. The enhanced ECN header is encapsulated before the payload, which carries user data, and the enhanced ECN header is used to mark the congestion level of the transmission path.
[0080] Figure 4 A schematic diagram of the structure of an enhanced ECN header provided in an embodiment of the present application, wherein the length of the flags field is 8 bits, the length of the congestion info type field is 24 bits, and the length of the congestion info data field is 32 bits. The length of the congestion info data field is variable and can be Figure 4 The 32 bits shown in FIG. 32 may also be other lengths, which are not limited in this embodiment of the present application. Optionally, the congestion indicator field may be Figure 4 In the flags field, at least one bit in the flags field can serve as a reference bit to indicate whether to feedback target congestion information. For example, a first value for the reference bit indicates that target congestion information should be fed back. A second value for the reference bit indicates that target congestion information should not be fed back. The first and second values can be different values set based on experience, for example, the first value is 1 and the second value is 0.
[0081] The reference bit can be part of the bits in the flags field, for example, the first bit of the flags field is used as the reference bit. Figure 4 The reference bits may also be all bits in the flags field. Regardless of the reference bit situation, the transmitter may assign a value to the reference bits based on whether there is a need to obtain the target congestion information. The above-mentioned process of assigning a value to the reference bits of the flags field to indicate whether to feedback the target congestion information is an extension of the functionality of the flags field, and in some cases, it can be referred to as adding bits to the flags field.
[0082] Exemplarily, the request to obtain target congestion information may be sent by another device. Optionally, the sender is connected to an upper-layer device, which manages and controls message transmission in the network. For example, the upper-layer device allocates message transmission tasks to each transmission path based on the load of each transmission path in the network. Based on this, the upper-layer device needs to obtain the congestion level of each transmission path in the network and then allocate transmission tasks based on the congestion level of each transmission path. The upper-layer device issues a target congestion information acquisition instruction to the sender. Based on the target congestion information acquisition instruction, the sender determines that there is a need to obtain the target congestion information.
[0083] Alternatively, the sending end may determine whether there is a need to obtain the target congestion information based on the message transmission situation. For example, the sending end may periodically detect the first transmission path, and the detection period may be any number set based on experience or implementation environment. For example, if the detection period includes a number, the detection period indicates how many messages are sent each time the target congestion information is counted. In this case, the sending end counts the number of messages sent between the first message and the previous message used to count the target congestion information. If the number of messages is less than the detection period, it is determined that there is no need to obtain the target congestion information. If the number of messages is equal to the detection period, it is determined that there is a need to obtain the target congestion information. Alternatively, the detection period may be any length set based on experience or implementation environment. In this case, the detection period indicates the interval at which the target congestion information is counted. In this case, if the time difference between the time the first message is sent and the time the previous message used to count the target congestion information is sent is not less than the detection period, it is determined that there is a need to obtain the target congestion information.
[0084] Regardless of how the sender determines whether there is a need to obtain target congestion information, the congestion identification field can be assigned a value based on the determination result. For example, if there is a need to obtain target congestion information, the reference bit is assigned a first value, indicating that the target congestion information is to be returned. If there is no need to obtain target congestion information, the reference bit is assigned a second value, indicating that the target congestion information is not to be returned. By assigning a value to the reference bit of the congestion identification field of the first message, the target congestion information can be requested from the receiver via the congestion identification field. Furthermore, if there is no need to obtain target congestion information, the sender may not include the congestion identification field in the first message. Not including the congestion identification field can mean not adding the congestion identification field to the first message. For example, if the congestion identification field is located in the enhanced ECN header, and the first message obtained by the sender does not include the enhanced ECN header, the sender will not add the enhanced ECN header to the first message. Not carrying may also refer to removing the congestion identification field in the first message. For example, the sender deletes the enhanced ECN header in the first message. By deleting the field in the first message, the size of the first message is reduced, and the transmission rate of the smaller first message is higher.
[0085] Exemplarily, the first message may further include a first position field, which is used to indicate the position of the second detection field in the second message. For a description of the second detection field and the second message, refer to the description of the second detection field and the second message in S303. Optionally, the sending end obtains the message structure of the second message and, based on the message structure of the second message, randomly selects a field from multiple fields included in the second message as the second detection field. Alternatively, the sending end may determine the position of the second detection field in the second message based on the utilization of each field and the protocol layer of the transmission target congestion information, and assign a value to the first position field based on the determined position.
[0086] Furthermore, the first position field precisely indicates the location of the second detection field in the second message. If the second message includes an enhanced ECN header and the second detection field is located within the enhanced ECN header, the first position field can also be used to indicate the location of the enhanced ECN header within the second message, where the second detection field resides. The first position field allows the sender to notify the receiver of the encapsulated location of the target congestion information when returning it. The process for assigning values to the first position field is similar to that for the second position field. The positions of the first position field in the first message and the second position field in the second message are similar. For details on the second position field in S303, refer to the details of the second position field and are not further elaborated here.
[0087] In one possible scenario, the transmission path connecting the sender and the receiver includes a first transmission path and a second transmission path, that is, the transmission path supports message transmission in different transmission directions, namely, the outbound direction from the sender to the receiver, and the return direction from the receiver to the sender. The congestion level of the first transmission path in the outbound direction is associated with the message transmission volume in the outbound direction, and the congestion level of the second transmission path in the return direction is associated with the message transmission volume in the return direction. Since the messages transmitted in the outbound direction and the messages transmitted in the return direction are different, the congestion level of the first transmission path in the outbound direction and the congestion level of the second transmission path in the return direction are different. That is, regardless of whether the first transmission path and the second transmission path are the same, the target congestion information that can be counted includes the second congestion information and the third congestion information, the second congestion information indicates the congestion level of the first transmission path in the outbound direction, and the third congestion information indicates the congestion level of the second transmission path in the return direction.
[0088] Because the target congestion information includes the second congestion information and the third congestion information, the first message may further include a third field to indicate whether the target congestion information requested by the sender is the second congestion information or the third congestion information. When the third field has a third value, the target congestion information requested by the sender is the second congestion information. When the third field has a fourth value, the target congestion information requested by the sender is the third congestion information. When the third field has a fifth value, the target congestion information requested by the sender is both the second and third congestion information. The third, fourth, and fifth values can be different values set based on experience, for example, the third value can be 00, the fourth value can be 01, and the fifth value can be 10.
[0089] Optionally, the third field may also indicate whether the requested target congestion information includes third congestion information. For example, if the default is to detect the second congestion information for the first transmission path, the sender may optionally request the third congestion information from the receiver. In this case, the sender may assign a value to the third field based on whether the third congestion information is requested. For example, assigning the third field a value of A indicates that the sender has not requested the third congestion information, meaning that the target congestion information requested by the sender is the second congestion information. Assigning a value other than A to the third field indicates that the sender has requested the third congestion information, and the target congestion information requested by the sender includes both the second and third congestion information. A can be an arbitrary value set based on experience, for example, 0.
[0090] The embodiment of the present application does not limit the position of the third field in the first message. The position of the third field is similar to that of the congestion indicator field. Please refer to the example of the position of the congestion mark field, which will not be repeated here. In addition, the third field can be a complete field. Figure 5 A schematic diagram of the structure of an enhanced ECN header provided in an embodiment of the present application is shown in FIG. Figure 5Compared to Figure 4 The enhanced ECN header extends a return congestion information (return congestion info) field, and the third field can be Figure 5 That is, when the return congestion info field is 0, the target congestion information requested by the sender is the second congestion information; when the return congestion info field is not 0, the target congestion information requested by the sender is the second congestion information and the third congestion information. The above operation can also be called the process of enabling return congestion info.
[0091] Optionally, the third field may also be one or more bits in a field. Taking the first message including the congestion identification field and the third field as an example, the congestion identification field and the third field may be different bits of the same field. For example, the congestion identification field is Figure 4 The first bit of the flags field in the enhanced ECN header is used, and the third field is the second and third bits of the flags field. In this case, a single flags field can indicate multiple pieces of information, resulting in high field utilization. By multiplexing the flags field, the amount of information carried by the first message is effectively increased without increasing the data size of the first message.
[0092] Similar to the principle behind the congestion indicator field, the sender can also assign a value to the third field based on the direction of the requested target congestion information. The process for obtaining the target congestion information direction is similar to the process for determining whether the target congestion information is required in S301. The direction can be obtained from an upper-layer device or determined by the sender based on the transmission status of the first message. For example, the sender may request the second congestion information first, then the third congestion information. If the sender previously requested the second congestion information, the sender determines that the target congestion information currently requested via the first message is the third congestion information.
[0093] Regardless of whether the sender performs an assignment operation on the first message after receiving it, the first message may be transmitted to the receiver via the first transmission path. Optionally, the first transmission path includes a transmission node for forwarding the received first message. Depending on the direction of the target congestion information requested by the sender, the operations performed by the transmission node vary. The following examples illustrate the operations performed by the transmission node, using Case 1, where the sender requests the second congestion information, and Case 2, where the sender requests the third congestion information, as examples.
[0094] In case 1, since the transmission direction of the first message is from the sending end to the receiving end, that is, the transmission direction of the first message is the outbound direction, the congestion level in the outbound direction can be counted through the first message. The first message sent to the receiving end carries the first congestion information, and the first congestion information indicates the congestion level of the first transmission path through which the first message passes. Therefore, after receiving the first message, the transmission node can update the first congestion information carried by the first message according to the congestion level of the transmission node to realize the statistics of the first congestion information. Among them, the first congestion information indicates the path congestion level between the upstream transmission node of the sending end and the receiving end. Figure 2 For example, the first congestion information indicates the congestion level of the path from the sending end to the third transmission node.
[0095] In one possible case, the first message includes a first detection field, and the first detection field is used to carry the first congestion information. The embodiment of the present application does not limit the position of the first detection field in the first message, and it can be located in the IP header of the first message. Continuing with the example of the IP header including the enhanced ECN header, the first detection field can be Figure 4 The congestion information data (congestion info data) field is shown.
[0096] Exemplarily, the first detection field may also be other fields included in the IP header, including but not limited to fields in a Layer 3 extension header, a multi-protocol label switching label (MPLS label) field, a tunnel header field, or other fields. The field in the Layer 3 extension header is, for example, the destination options header (DOH) field in flow detection. The tunnel header may refer to a header corresponding to a tunnel protocol, such as the generic routing encapsulation (GRE) protocol, or other protocols. Other fields may be reserved fields. When the first detection field is a field included in the IP header, the protocol layer that transmits the first detection field is the network layer. Optionally, in addition to being located in the IP header, the first detection field may also be a Layer 2 Ethernet tag field. In this case, the protocol layer that transmits the first detection field is located at the link layer. In addition, the first detection field may also be a field included in the TCP header. In this case, the first detection field is transmitted through the transport layer. Optionally, the first detection field may include any one of the above fields, or may include multiple fields. The first congestion information is carried by multiple fields, which increases the amount of data carried in the first message. Figure 4 or Figure 5 In the case of the enhanced ECN header shown, the different positions of the first detection field can be understood as different encapsulation positions of the enhanced ECN header in the first message. For example, the enhanced ECN header can be encapsulated in a tunnel header or an MPLS label header.
[0097] Regardless of the location of the first detection field in the first message, a transmitting node on the first transmission path can update the value of the first detection field based on its own congestion level to update the first congestion information carried by the first message. Optionally, the transmitting node can default to updating the value of the first detection field in the received first message. For example, based on an instruction issued by an upper-layer device, the transmitting node determines the congestion level of the first transmission path to be calculated. The transmitting node then determines the target congestion information to be calculated as the second congestion information and updates the value of the first detection field in the received first message.
[0098] In one possible scenario, the first message also includes a first field, and the first field indicates whether the transmission node included in the first transmission path updates the value of the first detection field. Optionally, the first field can directly indicate whether the value of the first detection field is updated. For example, when the first field is the sixth value, it indicates that the transmission node is to update the value of the first detection field based on the congestion level. When the first field is the seventh value, it indicates that the transmission node does not need to update the value of the first detection field based on the congestion level. The first field can also indirectly indicate whether the value of the first detection field is updated. For example, when the target congestion information requested by the sender is the second congestion information, the value of the first detection field of the first message in the outbound direction needs to be updated. Therefore, the first field can indicate the direction of the first message. In this case, the transmission node can parse the first field and, based on the value of the first field indicating that the first message is a message in the outbound direction and the statistical second congestion information also indicating the congestion level in the outbound direction, the transmission node determines that the value of the first detection field needs to be updated.
[0099] Similar to the description of the congestion indicator field, the embodiment of the present application does not limit the position of the first field. The description of the position of the first field can refer to the description of the position of the congestion indicator field in S301, and will not be repeated here. In addition, similar to the case of the third field, the first field can be a complete field in the first message, or it can be a partial bit in the field, for example, Figure 4The first bit of the flags field in the enhanced ECN header is used as the first field to indicate whether the value of the first detection field is updated. In addition, when the first field is a partial bit in the field, the first field can reuse the same field with other fields such as the first position field. For example, when the first bit of the flags field of the enhanced ECN header is used as the first field, it is used to indicate whether the transmission node updates the value of the first detection field. The second bit of the Flags field is used as the first position field to indicate the target congestion information requested by the sender at the return position of the second message. Even if the first congestion information is not carried in a hop by hop (HBH) extension header, for example, carried in a DOH extension header, the first field can be used to indicate that the transmission node on the first transmission path updates the first congestion information, thereby avoiding the problem of the deployability of the HBH extension header.
[0100] Regardless of how a transmitting node determines that the value of the first detection field needs to be updated, the value of the first detection field can be updated based on the congestion level of the transmitting node. Since the update process for one transmitting node or multiple transmitting nodes is similar, the following describes an example of a transmitting node updating the value of the first detection field, using any transmitting node on a first transmission path, where the first congestion information counted is the queue occupancy of the first transmission path.
[0101] After receiving the first message, the transmission node parses the first detection field of the first message to obtain the queue occupancy carried by the first message. Afterwards, the transmission node counts the queue occupancy of the transmission node's cache queue and compares the queue occupancy of the transmission node with the queue occupancy carried by the first message. If the queue occupancy of the transmission node is not greater than the queue occupancy carried by the first message, the transmission node does not update the value of the first detection field. If the queue occupancy of the transmission node is greater than the queue occupancy carried by the first message, the transmission node updates the value of the first detection field to the value of the queue occupancy of the transmission node. After receiving the first message, each transmission node on the first transmission path sequentially compares the counted queue occupancy of the transmission node with the queue occupancy carried in the first message, thereby determining the queue occupancy of the most congested node on the first transmission path.
[0102] The congestion level of the first transmission path can be counted by the transmission node of the first transmission path, simplifying the statistical process. Furthermore, the transmission node updates the value of the first detection field based on the current congestion level at the time the first message is forwarded, making the update process highly timely. After updating the value of the first detection field of the first message based on the congestion level, the transmission node can send the updated first message to the receiving end.
[0103] In the second case, since the target congestion information requested by the sender is the third congestion information, it indicates the congestion level of the second transmission path in the return direction. The transmission direction of the first message is from the sender to the receiver, and the transmission path it passes through is the first transmission path, not the second transmission path corresponding to the return direction. Therefore, the congestion level of the first message passing through the first transmission path cannot be used to determine the third congestion information. After receiving the first message, the transmission node on the first transmission path will directly forward the first message to the receiver. Similar to the principle of the first case, the transmission node in the second case can also first parse the first field or the third field included in the first message, and determine that there is no need to update the value of the first detection field based on the parsing result, and directly forward the first message.
[0104] When forwarding the first message, the transmission node may select to perform the corresponding operation in either Case 1 or Case 2 based on the target congestion information requested by the sender. For Case 3, where the target congestion information includes the second congestion information and the third congestion information, the transmission node performs Operation 1 on the first detection field to collect statistics on the first congestion information, facilitating subsequent acquisition of the second congestion information based on the first congestion information.
[0105] In addition, the second congestion information and the third congestion information included in the above-mentioned target congestion information are intended to distinguish the target congestion information of different transmission directions, rather than to limit the data type of the target congestion information. The target congestion information can be any information that can reflect the degree of congestion of the first transmission path or the second transmission path, including but not limited to at least one of the cache parameters, timestamps or bandwidth utilization of the transmission nodes included in the first transmission path or the second transmission path. Among them, the cache parameters are, for example, the amount of packets stored in the cache (buffer) space of the transmission node or the space utilization of the buffer, etc., and the timestamp is, for example, the sending timestamp, the receiving timestamp or the forwarding delay calculated based on the sending timestamp and the receiving timestamp. The forwarding delay refers to the time required for any transmission node to forward the received message after receiving the message. The bandwidth utilization refers to the ratio of the number of data packets forwarded by the transmission node from a certain interface per unit time to the upper limit of the number of data packets of the forwarding capacity of the interface. Similar to the statistical process of queue occupancy, the above-mentioned target congestion information such as bandwidth utilization, timestamp or cache parameters, when there are multiple transmission nodes included in the first transmission path or the second transmission path, indicates the maximum value of the bandwidth utilization, timestamp or cache parameter of each transmission node.
[0106] In the case where the target congestion information includes multiple data types, the first message may further include a fourth field for indicating the data type. The position of the fourth field in the first message is similar to that of the first field and the third field in the first message. For details, please refer to the relevant contents of the first field and the third field, which will not be repeated here. Figure 4In the example, the fourth field is the congestion info type field.
[0107] Optionally, when the first message carries a congestion marking field, the functions of the first field, first position field, or third field described above can be implemented by the congestion marking field. That is, the congestion marking field carried by the first message can be used to instruct the transmission node to update the value of the first detection field, and can also be used to indicate the position of the second detection field in the second message, that is, the encapsulation method of the target congestion information, and can also be used to indicate the direction of the target congestion information requested by the sender. When the congestion marking field indicates multiple pieces of information, the congestion marking field can include multiple fields or a single field. That is, different bit values of the congestion marking field can indicate different information, corresponding to the situation in which the first field, first position field, or third field are located in the same field in the above embodiment.
[0108] S302: The receiving end receives a first message transmitted by the sending end through the second transmission path.
[0109] For example, the receiving end receives a first message forwarded by an upstream transmission node, which may be any service message or detection message. The upstream transmission node refers to a transmission node adjacent to the receiving end on the first transmission path. Figure 2 For example, the receiving end receives the first message forwarded by the third transmission node.
[0110] S303: The receiving end returns a second message corresponding to the first message to the sending end via the second transmission path. The second message carries target congestion information, which is used to indicate the degree of congestion on the first transmission path. At least one of the first message or the second message carries a congestion flag field, which is used to indicate whether to update the congestion information carried by the message.
[0111] In one possible implementation, a first message has a corresponding second message. For example, the first message is a message for a two-way service. A two-way service means that the operation of the service requires the receiving end and the sending end to send messages to each other. In this case, the sending end sends a service message as the first message to the receiving end, and the receiving end also sends a service message to the sending end. The service message is also the second message corresponding to the first message. In the case where the first message is a detection message, after receiving the detection message, the receiving end returns a message carrying detection parameters to the receiving end. The message carrying detection parameters is also the second message corresponding to the first message. Alternatively, there is a confirmation response mechanism between the receiving end and the sending end, that is, after receiving the first message, the receiving end will return a response message to the sending end to notify the sending end that the receiving end has successfully received the first message. In this case, the response message is the second message corresponding to the first message.
[0112] In addition, the embodiments of the present application do not limit the correspondence between the first message and the second message, which can be a one-to-one correspondence, such as the detection message and the message carrying the detection parameters in the above embodiment. It can also be many-to-one, that is, the receiving end returns a second message to the sending end after receiving multiple first messages. For example, the sending end and the receiving end will perform periodic detection before, that is, the receiving end returns a response message to the sending end based on the number of first messages sent by the sending end reaching five, or other number of cycles set based on experience, to notify the sending end that the five first messages sent in the previous cycle were successfully received. In this case, the correspondence between the second message and the first message is a many-to-one correspondence of five first messages to one second message.
[0113] Similar to the acquisition process of the first message, the second message may also be a message generated by the receiving end. For example, the second message is the second message mentioned in the above content for notifying the successful transmission of the previous cycle. The second message may also be a message received by the receiving end. For example, the second message is a return message in a two-way service. The receiving end receives the second message sent by other devices as the second message to be returned. In the case where the second message is a message received by the receiving end, the second message includes an identifier for indicating the first message to which the second message corresponds. The identifier is, for example, a service identifier for indicating the service to which the second message corresponds. When the service identifiers of the second message and the first message are the same, the second message is the message corresponding to the first message. The identifier may also be the serial number of the first message. The receiving end may determine the second message corresponding to the first message from at least one received message based on the serial number of the first message.
[0114] In one possible implementation, after receiving the first message and before returning the second message, the receiving end further determines whether to return the target congestion information to the sending end, that is, whether to carry the target congestion information in the returned second message. Optionally, after receiving the first message, the receiving end may directly determine whether to carry the target congestion information in the second message. Alternatively, if the first message carries a congestion identification field, the receiving end may parse the congestion identification field of the first message and determine whether to carry the target congestion information in the second message based on the value of the reference bit in the congestion identification field. When the value of the reference bit is the second value, it is determined that the target congestion information is not to be carried in the second message, and the receiving end directly sends the second message to the sending end. When the value of the reference bit is the second value, it is determined that the target congestion information is to be carried in the second message, and the receiving end adds the target congestion information to the second message and then sends the added target congestion information.
[0115] In one possible implementation, after determining that the second message should carry the target congestion information, the receiving end also determines the direction of the target congestion information. Alternatively, the direction of the target congestion information may be configured by an upper-layer device. For example, the upper-layer device sends a request to obtain the second congestion information to the receiving end and the sending end, whereupon the receiving end determines that the target congestion information carried in the second message is the second congestion information for the outbound direction.
[0116] The receiving end may also determine the direction of the requested target congestion information based on the first message. For example, the first message includes a third field that indicates the direction of the requested target congestion information. The receiving end parses the third field in the first message. When the third field has a third value, it indicates that the requested target congestion information is the second congestion information. When the third field has a fourth value, it indicates that the requested target congestion information is the third congestion information. When the third field has a fifth value, it indicates that the requested target congestion information includes both the second and third congestion information.
[0117] In one possible scenario, the receiving end may also determine the direction of the target congestion information based on the transmission status of the second message. For example, if the receiving end returns the target congestion information to the sending end by first returning the second congestion information and then returning the third congestion information, and if the previous second message carried the third congestion information, the receiving end determines that the target congestion information carried in the currently returned second message is the second congestion information.
[0118] Regardless of the method by which the receiving end determines the direction of the target congestion information carried by the second message, corresponding operations can be performed on the second message according to the target congestion information in different directions. Optionally, the second message includes a second detection field, and the second detection field is used to carry the target congestion information. For the case where the target congestion information includes the second congestion information, the value of the second detection field is obtained according to the value of the first detection field, that is, the second congestion information is obtained based on the first congestion information. Similar to the description of the first detection field, the second detection field includes at least one of the congestion information field of the enhanced ECN header, the extension field of the enhanced ECN header, the field of the three-layer extension header, the MPLS label field, the ethernet tag field, the field included in the ACK message, the field included in the tunnel header, or other fields of the IP header, that is, the second detection field can be transmitted at the transport layer or below the transport layer, and the embodiments of the present application do not limit this.
[0119] Optionally, the position of the second detection field in the second message may be the same as the position of the first detection field in the first message. For example, the second detection field and the first detection field are both congestion information fields of the enhanced ECN header, that is, Figure 4Alternatively, the position of the second detection field in the second message may be different from the position of the first detection field in the first message, for example, the first detection field is Figure 4 The congestion info data field in the second detection field is Figure 4 The return congestion info field in the .
[0120] Regardless of the value of the second detection field, the receiving end can determine the value of the second detection field based on the value of the first detection field when the transmitting end requests the second congestion information. For example, the receiving end parses the first detection field of the first message to obtain the first congestion information; determines the second congestion information based on the first congestion information, and assigns a value to the second detection field. In one possible scenario, when the first detection field is transmitted via a protocol layer below the transport layer, the receiving end can directly parse the first detection field to obtain the first congestion information. When the first detection field is transmitted via the transport layer, the receiving end can delegate the first detection field to an upper-layer transport protocol for parsing.
[0121] Optionally, after parsing the first detection field to obtain the first congestion information, the receiving end may directly use the first congestion information as the second congestion information. For example, the receiving end may copy the value of the first detection field and assign the copied value to the second detection field. Alternatively, the receiving end may determine the second congestion information based on the first congestion information and the receiving end's congestion information. Alternatively, the receiving end may process the first congestion information and use the processing result as the second congestion information, that is, assign a value to the second detection field based on the processing result. For example, the receiving end may obtain first congestion information carried by multiple first messages to obtain multiple pieces of first congestion information, determine the average of the multiple pieces of first congestion information, and use the average as the second congestion information. Taking the queue occupancy rate of the most congested node on the first transmission path as an example, the most congested node refers to the transmission node with the highest queue occupancy rate among the transmission nodes included in the first transmission path. Different first messages are messages transmitted by the first transmission path at different times. Different first messages reflect the queue occupancy rate of the most congested node on the first transmission path at different times. By averaging the queue occupancies of the most congested nodes at different times, the average obtained can reflect the concentration trend of the queue occupancy rate of the most congested node.
[0122] Optionally, the receiving end may also determine whether congestion exists on the first transmission path based on the first congestion information, thereby obtaining second congestion information indicating whether congestion exists. Exemplarily, the receiving end compares the value of the first congestion information with a corresponding threshold. When the value of the first congestion information is greater than the corresponding threshold, the receiving end determines that congestion exists on the first transmission path, and the second congestion information indicates that congestion exists on the first transmission path. When the value of the first congestion information is less than the corresponding threshold, the receiving end determines that congestion does not exist on the first transmission path, and the second congestion information indicates that congestion does not exist on the first transmission path. The corresponding threshold can be set based on experience and implementation environment.
[0123] Since the second congestion information indicates the congestion level of the first transmission path in the outbound direction, the transmission nodes on the second transmission path in the return direction do not need to update the second congestion information when returning the second message. That is, when the second message carries the congestion flag field, the congestion flag field carried by the second message is used to instruct the transmission nodes included in the second transmission path not to update the value of the second detection field.
[0124] In the case where the target congestion information includes third congestion information, since the third congestion information reflects the congestion level of the second transmission path, the third congestion information is information collected during the transmission of the second message. The receiving end can directly send the second message, or it can carry a flag in the second message to indicate the update of the third congestion information. Consistent with the principle that the first message includes the first field, the second message can also include a second field, and the second field indicates that the transmission node included in the second transmission path updates the value of the second detection field. The principle of the second field indication is similar to that of the first field indication. Please refer to the relevant description of the first field and will not be repeated here. In the case where the third congestion information is to be carried in the second message, the receiving end assigns the second field a value indicating the update of the second detection field, so that the transmission node, after receiving the second message, updates the value of the second detection field according to the congestion level, thereby realizing the statistics of the third congestion information. Optionally, the function of the second field can also be implemented by the congestion marking field carried by the second message, that is, the congestion marking field can indicate not to update the value of the second detection field when the sending end requests the second congestion information, and can also indicate to update the value of the second detection field when the sending end requests the third congestion information.
[0125] In the case where the target congestion information includes the second congestion information and the third congestion information, the receiving end may assign a value to the second detection field carrying the second congestion information and initialize the second detection field for carrying the third congestion information. Figure 5Taking the enhanced ECN header shown as an example, the second detection field includes a congestion info data field and a return congestion info field. The congestion info data field is used to carry the third congestion information, and the return congestion info field is used to carry the second congestion information. The receiving end assigns a value to the return congestion info field based on the value of the first detection field and initializes the congestion info data field. In addition, since the transmitting node needs to update the value of the congestion info data field, the receiving end sets the second field, i.e. Figure 5 The first bit of the flags field in the enhanced ECN header is set to 1, instructing the transmission node to update the value of the congestion info data field. By carrying the secondary and tertiary congestion information in two fields, a single second message can carry the target congestion information, even in scenarios where bidirectional measurement is performed on the transmission path. This reduces overhead by carrying multiple target congestion information in the same enhanced ECN header, eliminating the need for multiple enhanced ECN headers to carry different target congestion information and thus saving on enhanced ECN headers.
[0126] In one possible implementation, when the target congestion information returned by the receiving end to the sending end includes third congestion information, since the third congestion information indicates the congestion level of the second transmission path, the congestion level in the return direction is related to the volume of packets transmitted in that direction, and packets in the return direction are sent by the receiving end. In this case, similar to the principle by which the sending end obtains the second congestion information, the receiving end also obtains the third congestion information to adjust the transmission of packets in the return direction based on the third congestion information. Therefore, upon receiving the third congestion information, the sending end performs similar operations as the receiving end, returning a third message corresponding to the second message to the receiving end. The third message carries the fourth congestion information indicating the congestion level of the second transmission path. In this case, the second message not only carries the target congestion information requested by the sending end, but also triggers the sending end to return the third congestion information to the receiving end.
[0127] Similar to the structure of the first message, the second message may also include Field 1 indicating whether the target congestion information is the second or third congestion information, Field 2 indicating the data type of the target congestion information, or a Second Position field indicating the location of the second detection field in the second message. For example, when the value of the Second Position field is B, the second detection field is determined to be the congestion information field of the enhanced ECN header; when the value of the Second Position field is C, the second detection field is an extension field of the enhanced ECN header; when the value of the Second Position field is D, the second detection field is the MPLS label field; and when the value of the Second Position field is E, the second detection field is an Ethernet header field. The second message may assign a value to the Second Position field based on its location. Even if the sender does not specify the encapsulation location of the target congestion information in the second message, the sender may determine the location of the second detection field in the second message based on the value of the Second Position field and obtain the target congestion information based on the value of the second detection field, thereby assisting the sender in obtaining the target congestion information.
[0128] Optionally, the second position field may function similarly to the first position field and be used to indicate the encapsulation location of the fourth congestion information in the third message. In this case, the second position field may be used to indicate the location of the third detection field carrying the fourth congestion information in the third message, or may be used to indicate the location of the enhanced ECN header in the third message where the third field is located.
[0129] In one possible implementation, when the second message carries a congestion marking field, the congestion marking field, in addition to implementing the function of the second field, can also implement the function of the second position field. That is, the congestion marking field can be used to indicate whether to update the target congestion information and can also be used to indicate the position of the second detection field in the second message. In addition to the second detection field, the second message also includes a congestion marking field, which is independent of the second detection field. The target congestion information carried in the second detection field is processed based on the congestion marking field to assist the transmission node or sender receiving the second message in collecting statistics on the target congestion information.
[0130] After performing the corresponding operation on the second message, the receiving end may transmit the second message to the sending end via the second transmission path. Optionally, the congestion marker field is a second position field in the second message, which is an extension of the enhanced ECN header. Since the enhanced ECN header is located in the IP header, it is transmitted at the network layer. If the target congestion information includes the third congestion information, the transmitting node may update the value of the second detection field. Optionally, the process for updating the value of the second detection field by the transmitting node is similar to the process for updating the value of the first detection field. A detailed description can be found in the relevant content of S302 regarding Case 1 and is not repeated here.
[0131] Furthermore, when enhanced ECN is used for congestion notification in this application, at least one of the target congestion information or the congestion marker field can be carried in the enhanced ECN header. Optionally, the enhanced ECN header can include only the congestion marker field. For example, the flags field of the enhanced ECN header carried by the first packet serves as the congestion marker field, instructing the transmission node to update the value of the first detection field. Alternatively, the enhanced ECN header can include only the target congestion information. For example, the return congestion info field of the enhanced ECN header carried by the second packet is used to carry the target congestion information, and the second packet does not include the congestion marker field, or the congestion marker field is indicated via other fields in the IP header. Furthermore, the enhanced ECN header can include both the congestion marker field and the target congestion information. For example, when the second packet carries the second congestion information via the return congestion info field included in the enhanced ECN header, the flags field also has a value assigned to instruct the transmission node to update the value of the congestion info data field to collect third congestion information.
[0132] The embodiments of the present application do not limit the location where the enhanced ECN header is carried. It can be encapsulated in at least one of the following: the Layer 3 extension header, MPLS label, Ethernet tag, other fields in the IP header, TCP header, or tunnel header of the first or second packet. When the enhanced ECN header is encapsulated in the TCP header, it is transmitted via the transport layer. For example, the enhanced ECN header is a Layer 4 ACK, where Layer 4 refers to the transport layer. For example, the location of the enhanced ECN header in the first packet and the location of the enhanced ECN header in the second packet can be the same or different. For example, the enhanced ECN header of the first packet can be encapsulated in the MPLS label, while the enhanced ECN header of the second packet can be encapsulated in the Layer 4 ACK. Furthermore, the protocol layer used to transmit the enhanced ECN header of the first packet and the protocol layer used to transmit the enhanced ECN header of the second packet can be the same or different. For example, the protocol layer used to transmit the enhanced ECN header of the first packet can be below the transport layer, while the protocol layer used to transmit the enhanced ECN header of the second packet can be at or below the transport layer.
[0133] S304: The sending end receives a second message corresponding to the first message returned by the second message through the second transmission path.
[0134] After receiving the second message, the sender can parse the second message to obtain the target congestion information. For example, the sender can directly parse the second detection field and determine the target congestion information based on the value of the second detection field. Alternatively, if the second message carries a second position field, the sender can first determine the position of the second detection field in the second message based on the value of the second position field, parse the determined second detection field, and obtain the target congestion information. For example, if the second detection field is determined to be the return congestion info field of the second message based on the value of the second position field, the sender can directly read the value of the return congestion info field to obtain the target congestion information.
[0135] Optionally, after obtaining the target congestion information, the sender may adjust message sending based on the target congestion information. For example, if the target congestion information indicates congestion on the transmission path, the sender may reduce the sending rate of the first message to reduce the amount of messages to be transmitted on the first transmission path per unit time, thereby alleviating congestion on the first transmission path. If the target congestion information indicates no congestion on the first transmission path, the sender may determine that the first transmission path supports the transmission task of the current message and maintain the sending rate of the first message.
[0136] In summary, the method for notifying congestion information provided in the embodiment of the present application is not limited to the message used to carry the congestion marking field. It can be a first message or a second message, and the carrying method of the congestion marking field is flexible. In the case where the second message carries the congestion marking field, it can be used to indicate whether to update the second detection field. Even if the second detection field and the first detection field have the same structure, for example, both are congestion info data fields, the target congestion information can be successfully carried, the congestion info data field can be reused, and the congestion info data field can be encapsulated in the DOH extension header, which is suitable for DOH encapsulation scenarios and has high deployability. Carrying the second congestion information and the third congestion information in one second message carries more target congestion information and is more compact in encapsulation. In the scenario of bidirectional measurement, there is no need to use two second messages, thereby improving notification efficiency.
[0137] In addition, the congestion marking field can be transmitted through the protocol layer below the transport layer, and the network layer protocol based on the protocol layer below the transport layer is common, for example, they are all Internet Protocol version 6 (IPv6). Therefore, it is only necessary to expand the message format corresponding to the IPv6 protocol to realize the carrying of the congestion marking field, without expanding the message format corresponding to the transport protocol. Even if the transport protocol of the transport layer is different, the second message can be transmitted smoothly, and it is widely applicable.
[0138] The above describes the method for notifying congestion information according to an embodiment of the present application. Corresponding to the above method, an embodiment of the present application further provides a device for notifying congestion information. Figure 6 This is a structural diagram of a congestion information notification device provided by an embodiment of the present application. Figure 6 As shown in the following multiple modules, the Figure 6 The congestion information notification device shown can perform the above Figure 3 It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Figure 6 As shown, the device includes:
[0139] A receiving module 601 is configured to receive a first message transmitted by a sending end through a first transmission path;
[0140] A sending module 602 is configured to return a second message corresponding to the first message to the sending end via a second transmission path, where the second message carries target congestion information, where the target congestion information is used to indicate a degree of congestion on the first transmission path or the second transmission path. At least one of the first message or the second message carries a congestion flag field, where the congestion flag field carried by the second message is used to indicate whether to update the target congestion information.
[0141] In a possible implementation, the first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of a first transmission path through which the first message passes.
[0142] In a possible implementation, the target congestion information includes third congestion information, which indicates a congestion level of a second transmission path through which the second message passes. The third congestion information is updated by each transmission node included in the second transmission path based on the congestion level of the transmission node.
[0143] In a possible implementation, the first message includes a first detection field, which is used to carry first congestion information; the second message includes a second detection field, which is used to carry target congestion information.
[0144] In a possible implementation, when the first message carries a congestion marking field, the congestion marking field carried by the first message is used to instruct the transmission node included in the first transmission path to update the value of the first detection field.
[0145] In a possible implementation, when the second message carries a congestion marking field, the congestion marking field carried by the second message is used to instruct the transmission node included in the second transmission path not to update the value of the second detection field.
[0146] In one possible implementation, the congestion mark field carried by the first message is further used to indicate the position of the second detection field in the second message. In one possible implementation, the congestion mark field carried by the second message is further used to indicate the position of the second detection field in the second message.
[0147] In one possible implementation, at least one of the congestion mark field and the target congestion information is carried in an enhanced ECN header, and the enhanced ECN header is encapsulated in at least one of other fields of a Layer 3 extension header, an MPLS label, a Layer 2 Ethernet tag, a tunnel header, or a Layer 2 TCP or IP header of the first or second packet.
[0148] In a possible implementation manner, the target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node in the first transmission path or the second transmission path.
[0149] This application does not limit whether the target congestion information carried by the second message indicates the congestion level of the first transmission path or the second transmission path. It can carry a variety of target congestion information types, providing high flexibility. It also does not limit the message carrying the congestion flag field; it can be either the first message or the second message, providing wide versatility.
[0150] An embodiment of the present application also provides another device for notifying congestion information. Figure 7 This is a structural diagram of a congestion information notification device provided by an embodiment of the present application. Figure 7 As shown in the following multiple modules, the Figure 7 The congestion information notification device shown can perform the above Figure 3 It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Figure 7 As shown, the device includes:
[0151] The sending module 701 is configured to transmit a first message to a receiving end via a first transmission path;
[0152] Receiving module 702 is used to receive a second message corresponding to the first message returned by the receiving end through the second transmission path, the second message carries target congestion information, the target congestion information is used to indicate the congestion level of the first transmission path or the second transmission path, at least one of the first message or the second message carries a congestion mark field, and the congestion mark field carried by the second message is used to indicate whether to update the target congestion information.
[0153] In a possible implementation, the first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of a first transmission path through which the first message passes.
[0154] In a possible implementation, the target congestion information includes third congestion information, which indicates a congestion level of a second transmission path through which the second message passes. The third congestion information is updated by each transmission node included in the second transmission path based on the congestion level of the transmission node.
[0155] In a possible implementation, the first message includes a first detection field, which is used to carry first congestion information; the second message includes a second detection field, which is used to carry target congestion information.
[0156] In a possible implementation, when the first message carries a congestion marking field, the congestion marking field carried by the first message is used to instruct the transmission node included in the first transmission path to update the value of the first detection field.
[0157] In a possible implementation, when the second message carries a congestion marking field, the congestion marking field carried by the second message is used to instruct the transmission node included in the second transmission path not to update the value of the second detection field.
[0158] In one possible implementation, the congestion mark field carried by the first message is further used to indicate the position of the second detection field in the second message. In one possible implementation, the congestion mark field carried by the second message is further used to indicate the position of the second detection field in the second message.
[0159] In one possible implementation, at least one of the congestion mark field and the target congestion information is carried in an enhanced ECN header, and the enhanced ECN header is encapsulated in at least one of other fields of a Layer 3 extension header, an MPLS label, a Layer 2 Ethernet tag, a tunnel header, or a Layer 2 TCP or IP header of the first or second packet.
[0160] In a possible implementation manner, the target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node in the first transmission path or the second transmission path.
[0161] This application does not limit whether the target congestion information carried by the second message indicates the congestion level of the first transmission path or the second transmission path. It can carry a variety of target congestion information types, providing high flexibility. It also does not limit the message carrying the congestion flag field; it can be either the first message or the second message, providing wide versatility.
[0162] It should be understood that the above Figure 6 or Figure 7 The provided device is illustrated only by the division of the above-mentioned functional modules when implementing its functions. In actual applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments are based on the same concept. The specific implementation process is detailed in the method embodiment and will not be repeated here.
[0163] See also Figure 8 , Figure 8 A schematic structural diagram of a network device 800 provided by an exemplary embodiment of the present application is shown. Figure 8 The network device 800 shown is used to perform the above Figure 3 The operations involved in the method for notifying congestion information are shown in FIG. The network device 800 is, for example, a switch, a router, etc. The network device 800 can be implemented by a general bus architecture.
[0164] like Figure 8 As shown, the network device 800 includes at least one processor 801 , a memory 803 , and at least one communication interface 804 .
[0165] The processor 801 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, the processor 801 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute the various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present application. The processor can also be a combination that implements computing functions, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0166] Optionally, the network device 800 further includes a bus. The bus is used to transmit information between the components of the network device 800. The bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 8 Only one thick line is used in the diagram, but this does not mean that there is only one bus or one type of bus.
[0167] The memory 803 is, for example, a read-only memory (ROM) or other type of static storage device that can store static information and instructions, or a random access memory (RAM) or other type of dynamic storage device that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compact disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 803 is, for example, independent and connected to the processor 801 via a bus. The memory 803 can also be integrated with the processor 801.
[0168] The communication interface 804 uses any transceiver-like device for communicating with other devices or communication networks. The communication network can be Ethernet, a radio access network (RAN), or a wireless local area network (WLAN). The communication interface 804 can include a wired communication interface or a wireless communication interface. Specifically, the communication interface 804 can be an Ethernet interface, a fast Ethernet (FE) interface, a gigabit Ethernet (GE) interface, an asynchronous transfer mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface, or a combination thereof. The Ethernet interface can be an optical interface, an electrical interface, or a combination thereof. In the embodiment of the present application, the communication interface 804 can be used for the network device 800 to communicate with other devices.
[0169] In a specific implementation, as an embodiment, the processor 801 may include one or more CPUs, such as Figure 8 0 and CPU1 are shown in FIG. Each of these processors can be a single-CPU processor or a multi-CPU processor. A processor herein can refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).
[0170] In a specific implementation, as an embodiment, the network device 800 may include multiple processors, such as Figure 8 801 and processor 805 are shown in FIG. Each of these processors can be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A processor herein can refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).
[0171] In a specific implementation, as an embodiment, the network device 800 may further include an output device and an input device. The output device communicates with the processor 801 and can display information in a variety of ways. For example, the output device can be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 801 and can receive user input in a variety of ways. For example, the input device can be a mouse, a keyboard, a touch screen device, or a sensor device.
[0172] In some embodiments, the memory 803 is used to store program code 810 for executing the solution of the present application, and the processor 801 can execute the program code 810 stored in the memory 803. That is, the network device 800 can implement the congestion information notification method provided in the method embodiment through the processor 801 and the program code 810 in the memory 803. The program code 810 may include one or more software modules. Optionally, the processor 801 itself may also store program code or instructions for executing the solution of the present application.
[0173] In a specific embodiment, the network device 800 of the embodiment of the present application may correspond to the computing device in the above-mentioned various method embodiments.
[0174] in, Figure 3 Each step of the congestion information notification method shown is completed by hardware integrated logic circuits or software instructions in the processor of the network device 800. The steps of the method disclosed in conjunction with the embodiments of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a storage medium mature in the art, such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory, or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware. To avoid repetition, it will not be described in detail here.
[0175] See also Figure 9 , Figure 9 FIG. 1 shows a schematic structural diagram of a network device 900 provided by another exemplary embodiment of the present application. Figure 9 The network device 900 shown is used to perform the above Figure 3 All or part of the operations involved in the method for notifying congestion information shown. The network device 900 is, for example, a switch, a router, etc. The network device 900 can be implemented by a general bus architecture.
[0176] like Figure 9 As shown, the network device 900 includes: a main control board 910 and an interface board 930 .
[0177] The main control board (MCB), also known as the main processing unit (MPU) or route processor card, is used to control and manage various components in network device 900, including routing calculations, device management, device maintenance, and protocol processing. MCB 910 includes a central processing unit (CPU) 911 and memory 912.
[0178] The interface board 930 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Ethernet interfaces, for example, are Flexible Ethernet Clients (FlexE Clients) interfaces. The interface board 930 includes a central processing unit (CPU) 931, a network processor (NPU) 932, a forwarding table memory (FMM) 934, and a physical interface card (PIC) 933.
[0179] The central processing unit 931 on the interface board 930 is used to control and manage the interface board 930 and communicate with the central processing unit 911 on the main control board 910 .
[0180] The network processor 932 is used to implement message forwarding processing. The network processor 932 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented using an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 932 is used to forward received messages based on the forwarding table stored in the forwarding entry memory 934. If the destination address of the message is the address of the network device 900, the message is sent to the CPU (such as the central processing unit 931) for processing. If the destination address of the message is not the address of the network device 900, the next hop and outgoing interface corresponding to the destination address are searched in the forwarding table based on the destination address, and the message is forwarded to the outgoing interface corresponding to the destination address. The processing of uplink messages may include processing the message inbound interface and forwarding table lookup; the processing of downlink messages may include forwarding table lookup, etc. In some embodiments, the central processing unit may also perform the functions of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, thereby eliminating the need for a forwarding chip in the interface board.
[0181] Physical interface card 933 implements physical layer connectivity. Raw traffic enters interface board 930 through this card, and processed messages are sent from this physical interface card 933. Physical interface card 933, also known as a daughter card, can be installed on interface board 930. It converts optical and electrical signals into messages, performs a validity check on these messages, and then forwards them to network processor 932 for processing. In some embodiments, central processing unit 931 can also perform the functions of network processor 932, such as implementing software forwarding based on a general-purpose CPU. Therefore, network processor 932 is no longer required in physical interface card 933.
[0182] Optionally, the network device 900 includes multiple interface boards. For example, the network device 900 further includes an interface board 940. The interface board 940 includes a central processing unit 941, a network processor 942, a forwarding table entry memory 944, and a physical interface card 943. The functions and implementation of each component in the interface board 940 are the same as or similar to those of the interface board 930 and are not described in detail here.
[0183] Optionally, the network device 900 further includes a switching fabric board 920. The switching fabric board 920 may also be referred to as a switch fabric unit (SFU). If the network device 900 includes multiple interface boards, the switching fabric board 920 is used to exchange data between the interface boards. For example, the interface board 930 and the interface board 940 can communicate via the switching fabric board 920.
[0184] The main control board 910 is coupled to the interface board. For example, the main control board 910, the interface board 930, the interface board 940, and the switching network board 920 are connected to the system backplane via a system bus to achieve intercommunication. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 910 and the interface boards 930 and 940, and communication is performed between the main control board 910 and the interface boards 930 and 940 via the IPC channel.
[0185] Logically, network device 900 includes a control plane and a forwarding plane. The control plane includes a main control board 910 and a central processing unit (CPU) 911. The forwarding plane includes various components that perform forwarding, such as a forwarding table entry memory 934, a physical interface card 933, and a network processor 932. The control plane performs functions such as routing, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining the network device's status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 932 forwards messages received by the physical interface card 933 based on the forwarding tables sent by the control plane. The forwarding tables sent by the control plane can be stored in the forwarding table entry memory 934. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same network device.
[0186] It's worth noting that there may be one or more main control boards (SPUs), which can include both active and standby SPUs. There may also be one or more interface boards. The higher the network device's data processing capabilities, the more interface boards it provides. Interface boards can also have one or more physical interface cards. There may be no SPUs, one or more SPUs, and multiple SPUs can provide load balancing and redundancy. In a centralized forwarding architecture, network devices may not require SPUs; the interface boards handle service data processing for the entire system. In a distributed forwarding architecture, network devices may have at least one SPU, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Therefore, network devices with distributed architectures have greater data access and processing capabilities than those with centralized architectures. Alternatively, a network device can consist of a single card, without a switching fabric board (SFB), integrating the functions of the interface board and the main control board. In this case, the central processing unit (CPU) on the interface board and the CPU on the main control board can be combined into a single CPU on this card, performing the combined functions of the two. This type of network device has lower data exchange and processing capabilities (for example, low-end network devices such as switches or routers). The specific architecture used depends on the specific network deployment scenario and is not specified here.
[0187] In a specific embodiment, the network device 900 corresponds to the above Figure 6 or Figure 7 In some embodiments, Figure 6 The sending module 602 in the congestion information notification apparatus shown is equivalent to the central processing unit 911 or the network processor 932 in the network device 900 .
[0188] The embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes Figure 3 The method of notifying congestion information is shown.
[0189] It should be understood that the processor may be a CPU, or other general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting the Advanced Reduced Instruction Set Machine (ARM) architecture.
[0190] Furthermore, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store device type information.
[0191] The memory may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a ROM, a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an EEPROM, or a flash memory. The volatile memory may be a RAM, which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM).
[0192] The embodiment of the present application also provides a congestion information notification device, which includes a processor configured to load and execute at least one instruction to enable the congestion information notification device to implement Figure 3 Optionally, the device further comprises a memory coupled to the processor, and the memory is used to store at least one instruction.
[0193] The embodiment of the present application also provides a congestion information system, which includes a sending end and a receiving end, and the sending end and the receiving end are used to interactively execute Figure 3 The method of notifying congestion information is shown.
[0194] The embodiment of the present application also provides a computer-readable storage medium having at least one instruction stored therein, which is loaded and executed by a processor to enable the computer to implement Figure 3 The method of notifying congestion information is shown.
[0195] The present application also provides a computer program (product), which, when executed by a computer, enables a processor or computer to execute Figure 3 The corresponding steps and / or processes in the illustrated embodiments.
[0196] The embodiment of the present application also provides a chip, which includes a processor for calling and executing instructions stored in the memory from the memory, so that the communication device equipped with the chip executes Figure 3 The method of notifying congestion information is shown.
[0197] The embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected through an internal connection path, the processor is used to execute the code in the memory, and when the code is executed, the processor is used to execute Figure 3 The method of notifying congestion information is shown.
[0198] In the above embodiments, all or part of the embodiments may be implemented by software, hardware, firmware, or any combination thereof. When implemented using software, all or part of the embodiments may be implemented in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described herein are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive).
[0199] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.), and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use, and processing of relevant data must comply with the relevant laws, regulations, and standards of the relevant countries and regions. For example, the first message involved in this application was obtained with full authorization.
[0200] Those skilled in the art will appreciate that the various method steps and modules described in conjunction with the embodiments disclosed herein can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.
[0201] Those skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware, or may be accomplished by a program to instruct the relevant hardware, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.
[0202] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or split between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.
[0203] The computer program code for implementing the methods of the embodiments of the present application can be written in one or more programming languages. These computer program codes can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable congestion information notification device, so that when the program code is executed by the computer or other programmable congestion information notification device, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code can be executed entirely on the computer, partially on the computer, as a standalone software package, partially on the computer and partially on a remote computer, or entirely on a remote computer or server.
[0204] In the context of the embodiments of the present application, computer program code or related data may be carried by any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.
[0205] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.
[0206] A machine-readable medium may be any tangible medium that contains or stores a program for or in connection with an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0207] Those skilled in the art will clearly understand that, for the sake of convenience and brevity of description, the specific working processes of the above-described systems, devices, and modules can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0208] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the modules is merely a logical function division. In actual implementation, there may be other division methods, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or can be electrical, mechanical or other forms of connection.
[0209] Modules described as separate components may or may not be physically separate, and components displayed as modules may or may not be physical modules, that is, they may be located in one place or distributed across multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.
[0210] In addition, the functional modules in the various embodiments of the present application may be integrated into a processing module, or each module may exist physically separately, or two or more modules may be integrated into a single module. The above-mentioned integrated modules may be implemented in the form of hardware or software functional modules.
[0211] If the integrated module is implemented in the form of a software functional module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0212] In this application, the terms "first", "second", etc. are used to distinguish between identical or similar items that have substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there any limitation on quantity or order of execution. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.
[0213] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0214] In this application, the term "at least one" means one or more, and the term "plurality" means two or more. For example, "plurality of second messages" means two or more second messages. The terms "system" and "network" are often used interchangeably herein.
[0215] It should be understood that the terminology used in the description of the various examples herein is for the purpose of describing particular examples only and is not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.
[0216] It should also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the listed items. The term "and / or" describes an association between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. Furthermore, the character " / " in this application generally indicates that the associated objects are in an "or" relationship.
[0217] It will also be understood that the term “comprise” (also known as “includes,” “including,” “comprises,” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0218] It should also be understood that the terms “if” and “if” may be interpreted to mean “when” or “upon” or “in response to determining” or “in response to detecting.” Similarly, the phrases “if it is determined that ” or “if [stated condition or event] is detected” may be interpreted to mean “upon determining ” or “in response to determining ” or “upon detecting [stated condition or event]” or “in response to detecting [stated condition or event],” depending on the context.
[0219] It should be understood that determining B based on A does not mean determining B based solely on A. B can also be determined based on A and / or other information.
[0220] It should also be understood that references throughout this specification to "one embodiment," "an embodiment," or "one possible implementation" mean that specific features, structures, or characteristics associated with that embodiment or implementation are included in at least one embodiment of the present application. Therefore, the appearance of "in one embodiment," "in an embodiment," or "one possible implementation" throughout this specification does not necessarily refer to the same embodiment. Furthermore, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
Claims
1. A method for notifying congestion information, characterized in that: The method comprises: receiving a first message transmitted by a sending end through a first transmission path; A second message corresponding to the first message is returned to the sending end via a second transmission path, where the second message carries target congestion information, where the target congestion information is used to indicate the degree of congestion of the first transmission path; and at least one of the first message or the second message carries a congestion mark field, where the congestion mark field is used to indicate whether to update the congestion information carried by the message.
2. The method according to claim 1, characterized in that The first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of the first transmission path.
3. The method according to claim 2, characterized in that The first message includes a first detection field, where the first detection field is used to carry the first congestion information; The second message includes a second detection field, where the second detection field is used to carry the target congestion information.
4. The method according to claim 2 or 3, characterized in that The first message carries a congestion mark field, and the congestion mark field carried by the first message is used to indicate updating of the first congestion information.
5. The method according to any one of claims 2 to 4, characterized in that: The second message carries a congestion mark field, and the congestion mark field carried by the second message is used to indicate that the second congestion information is not updated.
6. The method according to claim 3, characterized in that The congestion mark field carried by the first message is also used to indicate the position of the second detection field in the second message.
7. The method according to claim 3 or 6, characterized in that The congestion mark field carried by the second message is also used to indicate the position of the second detection field in the second message.
8. The method according to any one of claims 1 to 7, characterized in that: The target congestion information includes third congestion information, where the third congestion information indicates a congestion level of the second transmission path. The third congestion information is updated by a transmission node included in the second transmission path based on a congestion level of the transmission node.
9. The method according to any one of claims 1 to 8, characterized in that: At least one of the congestion mark field or the target congestion information is carried in an enhanced explicit congestion notification (ECN) header, and the enhanced ECN header is encapsulated in at least one of a Layer 3 extension header, a Multiprotocol Label Switching (MPLS) label, a Layer 2 Ethernet tag, other fields of an Internetwork Protocol (IP) header, a Transmission Control Protocol (TCP) header, or a tunnel header of the first or second packet.
10. The method according to any one of claims 1 to 9, characterized in that: The target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node.
11. A method for notifying congestion information, characterized in that: The method comprises: Sending a first message to a receiving end through a first transmission path; Receive a second message corresponding to the first message returned by the receiving end through the second transmission path, where the second message carries target congestion information, and the target congestion information is used to indicate the congestion level of the first transmission path. At least one of the first message or the second message carries a congestion mark field, and the congestion mark field is used to indicate whether to update the congestion information carried by the message.
12. The method according to claim 11, characterized in that The first message carries first congestion information, the target congestion information includes second congestion information, the second congestion information is obtained based on the first congestion information, and the second congestion information indicates a congestion level of the first transmission path.
13. The method according to claim 12, characterized in that The first message includes a first detection field, where the first detection field is used to carry the first congestion information; The second message includes a second detection field, where the second detection field is used to carry the target congestion information.
14. The method according to claim 12 or 13, characterized in that The first message carries a congestion mark field, and the congestion mark field carried by the first message is used to indicate updating of the first congestion information.
15. The method according to any one of claims 12 to 14, characterized in that: The second message carries a congestion mark field, and the congestion mark field carried by the second message is used to indicate that the second congestion information is not updated.
16. The method according to claim 13, characterized in that The congestion mark field carried by the first message is also used to indicate the position of the second detection field in the second message.
17. The method according to claim 13 or 16, characterized in that The congestion mark field carried by the second message is also used to indicate the position of the second detection field in the second message.
18. The method according to any one of claims 11 to 17, characterized in that: The target congestion information includes third congestion information, where the third congestion information indicates a congestion level of the second transmission path. The third congestion information is updated by a transmission node included in the second transmission path based on a congestion level of the transmission node.
19. The method according to any one of claims 11 to 18, characterized in that: At least one of the congestion mark field or the target congestion information is carried in an enhanced explicit congestion notification (ECN) header, and the enhanced ECN header is encapsulated in at least one of a Layer 3 extension header, a Multi-Protocol Label Switching (MPLS) label, a Layer 2 Ethernet tag, other fields of an Internetwork Protocol (IP) header, a Transmission Control Protocol (TCP) header, or a tunnel header of the first or second message.
20. The method according to any one of claims 11 to 19, characterized in that: The target congestion information includes at least one of a buffer parameter, a timestamp, or a bandwidth utilization rate of a transmission node.
21. A congestion information notification device, characterized in that: The device comprises: A receiving module, configured to receive a first message transmitted by a sending end through a first transmission path; A sending module is configured to return a second message corresponding to the first message to the sending end via a second transmission path, where the second message carries target congestion information, where the target congestion information is used to indicate a degree of congestion on the first transmission path or the second transmission path; and at least one of the first message or the second message carries a congestion marking field, where the congestion marking field is used to indicate whether to update the congestion information carried by the message.
22. A congestion information notification device, characterized in that: The device comprises: A sending module, configured to send a first message to a receiving end via a first transmission path; A receiving module is configured to receive a second message corresponding to the first message returned by the receiving end via a second transmission path, where the second message carries target congestion information, where the target congestion information is used to indicate a degree of congestion on the first transmission path; and at least one of the first message or the second message carries a congestion flag field, where the congestion flag field is used to indicate whether to update the congestion information carried by the message.
23. A congestion information notification device, characterized in that: The device includes a processor, which is used to load and execute at least one instruction to enable the congestion information notification device to implement the congestion information notification method according to any one of claims 1-10, or to implement the congestion information notification method according to any one of claims 11-20.
24. A congestion information notification system, characterized in that: The system includes a receiving end and a sending end, the receiving end is used to implement the congestion information notification method according to any one of claims 1-10, and the sending end is used to implement the congestion information notification method according to any one of claims 11-20.
Citation Information
Cited By
Hop count triggering-based CSIG telemetering method, network forwarding equipment and system
CN122053737A
Csig telemetry method based on hop count triggering, network forwarding device and system
CN122053737B