Communication method and apparatus, storage medium, program product, and communication device
By carrying fields with different values in service messages to notify congestion, the problems of low traditional TCP/UDP transmission efficiency and long congestion detection time are solved, achieving efficient congestion detection and throughput improvement.
Patent Information
- Application Number
- PCT/CN2025/084947
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-27
- Filing Date
- 2025-03-26
- Publication Date
- 2025-10-02
AI Technical Summary
Traditional Transmission Control Protocol (TCP)/User Datagram Protocol (UDP) transmission technology leads to reduced data transmission efficiency under high packet loss rates. Existing congestion detection methods require a detection time greater than or equal to one round-trip time (RTT), and the intermediate node feedback method introduces additional link overhead and high equipment requirements, affecting scalability.
During the congestion period, the system detects service packets sent from the destination node to the source node and uses fields with different values in normal service traffic packets to notify congestion. For example, a magic number is carried in the ToS/TC field of IPv4/IPv6 packets, achieving zero-bandwidth congestion notification.
It enables timely detection of congestion on high-load links, reduces packet loss and retransmissions, improves network throughput, and supports large-scale expansion without the need for intermediate nodes to maintain status information for each business flow.
Smart Images

Figure CN2025084947_02102025_PF_FP_ABST
Abstract
Description
Communication method, device, storage medium, program product, and communication equipment
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This disclosure is based on and claims the priority of Chinese patent application with application number 202410361752.4 and application date March 27, 2024. The entire content of the Chinese patent application is hereby incorporated into this disclosure by reference. Technical Field
[0003] The present disclosure relates to the field of communication technologies, and in particular to a communication method, apparatus, storage medium, program product, and communication equipment. Background Art
[0004] With the rapid development of key computing infrastructure such as general computing, intelligent computing, and supercomputing, data network transmission bandwidth has been continuously upgraded from 10 gigabits per second (Gbps) to 25Gbps, 100Gbps, 200Gbps, and even 400Gbps to meet the growing demand for massive data transmission across wide area networks. However, the effective throughput of traditional Transmission Control Protocol (TCP) / User Datagram Protocol (UDP) transmission technology decreases sharply as transmission distance and packet loss rate increase. Therefore, it is of great significance to research wide-area high-throughput data transmission technologies to improve data transmission efficiency.
[0005] Flow control and congestion control determine data transmission efficiency and are key technologies in network transmission. Quickly and accurately identifying congestion points during network transmission is crucial for improving flow control and congestion control mechanisms and boosting data transmission efficiency. Summary of the Invention
[0006] To solve existing technical problems, the embodiments of the present disclosure provide a communication method, apparatus, storage medium, program product, and communication device.
[0007] To achieve the above objectives, the technical solution of the embodiment of the present disclosure is implemented as follows:
[0008] In a first aspect, an embodiment of the present disclosure provides a communication method, applied to a first node; the method includes:
[0009] Within a first time range where congestion occurs, when a first service message sent by a destination node to a source node is detected, at least two service messages are sent to a second node; different values of the first field in the at least two service messages are used to notify congestion.
[0010] In the above solution, the sending interval between two consecutive service messages among the at least two service messages is less than the first time threshold.
[0011] In the above scheme, sending at least two business messages to the second node includes: sending the first business message to the second node, the value of the first field in the first business message is a first value; and sending a second business message to the second node within a second time range, the value of the first field in the second business message is a second value.
[0012] In the above solution, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0013] In the above solution, the method further includes: when the first service message is not detected within the first time range, sending a first message for notifying congestion to the second node.
[0014] In the above scheme, the first node is the first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is the second intermediate node between the source node and the destination node and connected to the source node.
[0015] In a second aspect, an embodiment of the present disclosure further provides a communication method, applied to a second node; the method includes:
[0016] Receiving at least two service messages sent by a first node; wherein the at least two service messages are sent by the first node within a first time range in which congestion occurs and when the first service message sent by the destination node to the source node is detected;
[0017] Congestion is determined at the first node based on different values of the first field in the at least two service messages.
[0018] In the above solution, the sending interval between two consecutive service messages among the at least two service messages is less than the first time threshold.
[0019] In the above scheme, the receiving of at least two business messages sent by the first node includes: receiving the first business message sent by the first node, the value of the first field in the first business message is a first value; and receiving the second business message sent by the first node within a second time range, the value of the first field in the second business message is a second value.
[0020] In the above solution, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0021] In the above solution, the method further includes: receiving a first message sent by the first node for notifying congestion, where the first message is sent by the first node when the first service message is not detected within the first time range.
[0022] In the above scheme, the first node is the first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is the second intermediate node between the source node and the destination node and connected to the source node.
[0023] In the above solution, when the second node is the second intermediate node, the method further includes: sending a second message for notifying congestion to the source node.
[0024] In a third aspect, an embodiment of the present disclosure also provides a communication device, which is applied to a first node; the device includes a first communication unit, which is used to send at least two service messages to a second node when a first service message sent by a destination node to a source node is detected within a first time range when congestion occurs; the different values of the first field in the at least two service messages are used to notify congestion.
[0025] In a fourth aspect, an embodiment of the present disclosure further provides a communication device, which is applied to a second node; the device includes a second communication unit and a first processing unit; wherein,
[0026] The second communication unit is configured to receive at least two service messages sent by the first node; wherein the at least two service messages are sent by the first node within a first time range where congestion occurs and when the first service message sent by the destination node to the source node is detected;
[0027] The first processing unit is configured to determine that congestion occurs at the first node based on different values of the first field in the at least two service messages.
[0028] In a fifth aspect, an embodiment of the present disclosure further provides a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the steps of the method described in the first or second aspect above.
[0029] In a sixth aspect, an embodiment of the present disclosure further provides a computer program product, comprising a computer program, which implements the steps of the method described in the first or second aspect when executed by a processor.
[0030] In the seventh aspect, an embodiment of the present disclosure also provides a communication device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the steps of the method described in the first or second aspect are implemented.
[0031] The communication method, apparatus, storage medium, program product and communication equipment of the embodiments of the present disclosure are such that, within a first time range when congestion occurs and when detecting a first service message sent by a destination node to a source node, a first node may send at least two service messages each including a first field to a second node. Different values of the first fields corresponding to the at least two service messages may be used to notify the occurrence of congestion. When communication between the source node and the destination node is frequent, normal service traffic messages may be used to carry congestion notification information along with the flow. For congestion notification under high link load conditions, zero bandwidth overhead may be achieved, and intermediate nodes do not need to actively send congestion notification messages. Intermediate nodes do not need to maintain status information of each service flow, and large-scale expansion effects may be supported. At the same time, the source node may detect the occurrence of congestion in a timely manner, thereby adjusting the message sending rate, reducing congestion packet loss and retransmission, and improving the effective network throughput. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] FIG1 is a schematic diagram of an explicit congestion notification in the related art;
[0033] FIG2 is a flow chart of a communication method according to an embodiment of the present disclosure;
[0034] FIG3 is a schematic diagram of the structure of an IPv6 service message in the related art;
[0035] FIG4 is a schematic diagram of the structure of a CNP message in the related art;
[0036] FIG5 is a second flow chart of the communication method according to an embodiment of the present disclosure;
[0037] FIG6 is a flowchart of an application example of the communication method according to an embodiment of the present disclosure;
[0038] FIG7 is a second flow chart of an application example of the communication method according to an embodiment of the present disclosure;
[0039] FIG8 is an example of a first diagram for detecting congestion in the related art;
[0040] FIG9 is a second example of detecting congestion in the related art;
[0041] FIG10 is a schematic diagram of the first structure of a communication device according to an embodiment of the present disclosure;
[0042] FIG11 is a second schematic diagram of the structure of the communication device according to an embodiment of the present disclosure;
[0043] FIG12 is a schematic structural diagram of a communication device according to an embodiment of the present disclosure. DETAILED DESCRIPTION
[0044] In order to make the purpose, technical solutions and advantages of the present disclosure clearer, the present disclosure will be further described in detail below with reference to the accompanying drawings. The described embodiments should not be regarded as limiting the present disclosure. All other embodiments obtained by ordinary technicians in this field without making creative work are within the scope of protection of the present disclosure.
[0045] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art in the art of the present disclosure. The terms used herein are only for the purpose of describing the embodiments of the present disclosure and are not intended to limit the present disclosure.
[0046] Currently, the most common congestion detection technology is Explicit Congestion Notification (ECN). ECN explicitly notifies the sender of network congestion information by setting the ECN flag in the IP packet header. Figure 1 shows a schematic diagram of explicit congestion notification in related technologies. As shown in Figure 1, when network congestion occurs, the router or switch sets the ECN flag in the traffic packet to 1. The receiver then sends network congestion information to the sender based on the packet flag information. After receiving this information, the sender can adjust its sending rate accordingly to reduce the degree of network congestion, minimize congestion packet loss and retransmissions, and improve the network's effective throughput.
[0047] However, referring to FIG1 , the congestion detection method using the ECN flag in the related art requires a detection time greater than or equal to one round-trip time (RTT). One RTT is the total delay from the start of data transmission at the sender to the receipt of confirmation from the receiver at the sender. In addition, the related art can also adopt a method in which the intermediate congested node actively provides feedback to the sender (not shown in FIG1 ), which can compress the sender's detection time for congestion to less than one RTT, depending on the location of the congested node. However, this will introduce new problems. For example, the feedback message from the intermediate congested node will bring additional link overhead, low bandwidth utilization, and even new congestion may occur in the return trip, causing the detection time to exceed one RTT. In addition, in order to ensure the real-time detection, the frequent sending of congestion status report messages will result in bandwidth waste. At the same time, the intermediate node also needs to maintain the service flow status, which places high demands on the intermediate node equipment and affects scalability.
[0048] The present disclosure is further described below in conjunction with the accompanying drawings and specific embodiments. It is apparent that the embodiments described are only a portion of the embodiments of the present disclosure, not all of them. All other embodiments derived by persons of ordinary skill in the art based on the embodiments of the present disclosure without inventive effort are also within the scope of protection of the present disclosure.
[0049] In the description of the present disclosure, it should be noted that the terms "first," "second," "third," etc. are used for descriptive purposes only and should not be understood as indicating or implying relative importance. These terms are simply used to distinguish one element (or threshold or application or instruction or operation) from another element (or threshold or application or instruction or operation). For example, a first operation can be referred to as a second operation, and a second operation can be referred to as a first operation without departing from the scope of the present disclosure. The first operation and the second operation are both operations, but they are not the same operation.
[0050] The term "and / or" in the embodiments of the present disclosure refers to any and all possible combinations of one or more of the associated listed items. It should also be noted that when used in this specification, "include / comprise" specifies the presence of the stated features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements and / or components and / or groups thereof.
[0051] The steps in the embodiments of the present disclosure do not necessarily have to be processed in the order of the described steps. The steps can be selectively rearranged, or the steps in the embodiments can be deleted, or the steps in the embodiments can be added as needed. The step descriptions in the embodiments of the present disclosure are only optional sequence combinations and do not represent all step sequence combinations in the embodiments of the present disclosure. The order of the steps in the embodiments cannot be considered as a limitation of the present disclosure.
[0052] An embodiment of the present disclosure provides a communication method, which is applied to a first node. FIG2 is a flow chart of the communication method according to an embodiment of the present disclosure. As shown in FIG2 , the method includes:
[0053] Step 101: Within a first time range where congestion occurs, when a first service message sent by a destination node to a source node is detected, at least two service messages are sent to a second node; different values of the first field in the at least two service messages are used to notify congestion.
[0054] In this embodiment, the source node is the sending node of the business message, or it can also be called the source end, source end node, sending end, sender, sending device, sending server, sending end server, sending end server, etc., and the destination node is the receiving node of the business message, or it can also be called the host end, host end node, receiving end, receiver, receiving device, receiving server, receiving end server, receiving end server, etc.
[0055] In some embodiments, the first time range may include a preset time range before congestion occurs and / or a preset time range after congestion occurs. Exemplarily, the first time range may be determined based on the round-trip time (RTT) between the source node and the destination node, for example, the duration corresponding to the first time range is not greater than half of the round-trip time delay, that is, the first time range corresponds to multiple durations ≤ 0.5RTT. The round-trip time delay can be obtained based on the message notification between the source node and the destination node, or it can also be obtained from a centralized controller through a software-defined network (SDN).
[0056] In some embodiments, the first node may detect whether there is service traffic from the destination node to the source node within a first time range by setting a timer. For example, the timer may be set to 0.5 RTT. It is understood that when congestion occurs, the first node may detect frequent service traffic between the destination node and the source node and send a congestion notification via at least two service packets carrying first fields with different values.
[0057] In step 101, the first service message may be any service message sent by the destination node to the source node within the first time range in which congestion occurs, and the at least two service messages may include the first service message. In some embodiments, the first field may be located in a message header of a service message, for example, and the first field may include at least two values, for example, a first value and a second value. When the values of the first field in two consecutive service messages of the at least two service messages are different, congestion may be indicated, for example, the value of the first field in the previous service message is the first value, and the value of the first field in the next service message is the second value. Correspondingly, when the values of the first field in the at least two service messages are the same, normal communication may be indicated.
[0058] According to the communication method of the embodiment of the present disclosure, a first node may send at least two business messages each including a first field to a second node within a first time range when congestion occurs and when detecting a first business message sent by a destination node to a source node. Different values of the first fields corresponding to the at least two business messages may be used to notify the occurrence of congestion. When communication between the source node and the destination node is frequent, normal business traffic messages may be used to carry congestion notification information along with the flow. For congestion notification under high link load conditions, zero bandwidth overhead may be achieved, and intermediate nodes do not need to actively send congestion notification messages. Intermediate nodes do not need to maintain status information of each business flow, and large-scale expansion effects may be supported. At the same time, the source node may detect the occurrence of congestion in a timely manner, thereby adjusting the message sending rate, reducing congestion packet loss and retransmission, and improving the effective network throughput.
[0059] In some embodiments, the first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
[0060] In this embodiment, the intermediate node may be, for example, a network device, such as a router, a switch, etc.
[0061] As a first example, the first node is a first intermediate node between the source node and the destination node, and the second node is the source node. Step 101 may include: upon detecting a first service message sent by the destination node to the source node within a first time range during which congestion occurs, the first intermediate node may send at least two service messages to the source node; the different values of the first field in the at least two service messages are used to notify congestion. In this embodiment, after receiving the at least two service messages, the source node determines that congestion has occurred based on the different values of the first field in the at least two service messages, and may thereby adjust the rate at which messages are sent to the destination node.
[0062] As a second example, the first node is a first intermediate node between the source node and the destination node, and the second node is a second intermediate node between the source node and the destination node and connected to the source node; step 101 may include: the first intermediate node sends at least two service messages to the second intermediate node when detecting a first service message sent by the destination node to the source node within a first time range where congestion occurs; the different values of the first field in the at least two service messages are used to notify congestion. In this example, after receiving the at least two service messages, the second intermediate node may determine that congestion has occurred based on the different values of the first field in the at least two service messages, and may thereby send a congestion notification message to the source node to notify the source node to adjust the rate at which messages are sent to the destination node.
[0063] As a third example, the first node is the destination node and the second node is the source node; the step 101 may include: the destination node sends at least two business messages to the source node when detecting a first business message sent to the source node within a first time range where congestion occurs; the different values of the first field in the at least two business messages are used to notify congestion.
[0064] As a fourth example, the first node is the destination node, and the second node is a second intermediate node between the source node and the destination node and connected to the source node; the step 101 may include: the destination node sends at least two service messages to the second intermediate node when detecting a first service message sent to the source node within a first time range where congestion occurs; different values of the first field in the at least two service messages are used to notify congestion.
[0065] In an optional embodiment of the present disclosure, an interval between two consecutive service messages among the at least two service messages is less than a first time threshold. It is understood that in this embodiment, when frequent service traffic exists between the source node and the destination node, the first node may notify the source node of congestion by sending a congestion notification along with the service flow.
[0066] In some embodiments, the first time threshold can be determined based on the round-trip delay (RRT) of the service message between the source node and the destination node. For example, the first time threshold does not exceed half of the round-trip delay. That is, the sending interval of two consecutive service messages in the at least two service messages described in this embodiment is less than half of the round-trip delay between the source node and the destination node.
[0067] As an example, the first node may obtain the round-trip delay according to message notifications from the source node and the destination node, or may obtain the round-trip delay from a centralized controller via SDN.
[0068] According to the communication method of the embodiment of the present disclosure, when there is frequent communication between the destination node and the source node, for example, when the sending interval between two adjacent service messages does not exceed 0.5RTT, the first node can use normal service traffic messages to carry congestion information along with the flow to ensure that congestion notification when the link is highly loaded can achieve zero bandwidth overhead.
[0069] In an optional embodiment of the present disclosure, sending at least two business messages to the second node may include: sending the first business message to the second node, the value of the first field in the first business message is a first value; and sending a second business message to the second node within a second time range, the value of the first field in the second business message is a second value.
[0070] In this embodiment, the first value and the second value are different values of the first field. The first field is, for example, a congestion indication magic number carried in a normal business traffic message. The value of the first field can be a first value and a second value. When the value of the first field in two consecutive business messages is the same, it can be characterized as normal transmission, that is, no congestion occurs; when the value of the first field in two consecutive business messages is different, it can be characterized as congestion occurs. Exemplarily, the first value can be "A5", the second value can be "5A", the value of the first field in the first business message can be "A5", and the value of the first field in the second business message can be "5A".
[0071] In some embodiments, the first field may reuse a field in a service message between the source node and the destination node. Exemplarily, the service message is an Internet Protocol version 4 (IPv4) service message, and the first field may be, for example, the Type of Service (ToS) field of the IPv4 service message; or, the service message is an Internet Protocol version 6 (IPv6) service message, and the first field may be, for example, the Traffic Class (TC) field of the IPv6 service message. FIG3 is a schematic diagram of the structure of an IPv6 service message in the related art. As shown in FIG3 , the basic header (Basic Header) in the IPv6 service message includes version (Version), traffic class (Traffic Class), flow label (Flow Label), payload length (Payload Length) of the data packet, next header (Next Header), hop limit (Hop Limit), source IPv6 address (Source Address) and destination IPv6 address (Destination Address), etc., and the extension header (Extension Header) may include next header (Next Header), extension header information (Extension Header Information), etc., wherein the first field in this embodiment can reuse the Traffic Class field in the IPv6 service message.
[0072] The communication method of the embodiment of the present disclosure can use normal business traffic messages to carry congestion information along with the flow, for example, two consecutive messages carry magic numbers with different values to notify congestion without occupying additional bandwidth for congestion notification.
[0073] In an optional embodiment of the present disclosure, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0074] In some embodiments, the first node is the destination node; the sending of at least two business messages to the second node may include: the destination node sends a first business message to the second node, and the value of the first field in the first business message is a first value; and when a second business message sent to the source node is detected within a second time range, the second business message is sent to the second node, or, when no business message sent to the source node is detected within the second time range, a second business message is constructed according to the first business message, and the second business message is sent to the second node; the value of the first field in the second business message is a second value, and the second business message is a business message sent to the source node.
[0075] In other embodiments, the first node is the first intermediate node between the source node and the destination node; the sending of at least two service messages to the second node may include: the first intermediate node receives the first service message sent by the destination node, and sends the first service message to the second node, where the value of the first field in the first service message is the first value; and when the second service message sent by the destination node is received within a second time range, the second service message is sent to the second node, or, when the service message sent by the destination node is not received within the second time range, a second service message is constructed according to the first service message, and the second service message is sent to the second node; the value of the first field in the second service message is the second value, and the second service message is the service message sent to the source node.
[0076] It is understood that the second service message can be either a service message that the destination node originally needs to send to the source node, or a service message constructed by the first node based on the first service message. Regardless of whether the second service message originates from the destination node or is constructed by the first node, the second service message should be sent within the second time range after the first service message is sent. Exemplarily, the second time range can be determined based on the first time threshold. For example, the duration corresponding to the second time range does not exceed the first time threshold, such as not exceeding half the round-trip delay between the source node and the destination node.
[0077] As an optional implementation, the first node may construct the second service message based on the message header of the first service message, where the payload of the constructed second service message is empty. Exemplarily, the first node may copy the message header of the first service message and modify the value of the first field therein to the second value, thereby constructing a 64-byte data packet (i.e., the second service message) with a payload of 0.
[0078] The communication method of the embodiment of the present disclosure can use normal business traffic messages to carry congestion information with the flow when the communication between the source node and the destination node is frequent, for example, the sending interval between two adjacent business messages does not exceed 0.5RTT. When the communication is not frequent, the method actively constructs business messages to provide congestion feedback to the source node, ensuring that zero bandwidth overhead can be achieved when the link is highly loaded, and the real-time perception of congestion is not affected when the link is lightly loaded or idle.
[0079] In an optional embodiment of the present disclosure, the method may further include: sending a first message for notifying the second node of congestion if the first service message is not detected within the first time range. In this embodiment, if the first node does not detect the first service message within the first time range where congestion occurs, the first node proactively sends the first message for notifying the second node of congestion.
[0080] Exemplarily, the first message is, for example, a message with a congestion notification packet (CNP). Figure 4 is a schematic diagram of the structure of a CNP message in the related art. As shown in Figure 4, the CNP message includes a MAC header, an IPv4 / IPv6 header, a UDP header, a basic transport header (BTH), a 16-byte reserved field (reserved, which must be set to 0 by the sender and ignored by the receiver), a redundancy check (ICRC), and a frame checksum (FCS). In the BTH, DestQP represents the destination QP (Queue Pair), which is used to identify a RoCEv2 flow. DestQP can be set to the QP number (QPN) of the CNP that generates the RoCEv2. Opcode represents the RoCEv2 message type. PSN represents the sequence number of the RoCEv2 message. P_Key is set to the same value as in the BTH that marks the ECN data packet.
[0081] The communication method of the embodiment of the present disclosure can use normal business traffic messages to carry congestion information when the communication between the source node and the destination node is frequent, for example, the sending interval between two adjacent business messages does not exceed 0.5RTT, and actively generate congestion indication messages when the communication is not frequent, to ensure that zero bandwidth overhead can be achieved when the link is highly loaded, and the real-time perception of congestion when the link is lightly loaded or idle is not affected.
[0082] The present disclosure also provides a communication method, which is applied to a second node. FIG5 is a second flow chart of the communication method according to the present disclosure. As shown in FIG5 , the method includes:
[0083] Step 201: Receive at least two service messages sent by a first node; wherein the at least two service messages are sent by the first node within a first time range where congestion occurs when the first node detects a first service message sent by a destination node to a source node;
[0084] Step 202: Determine whether congestion occurs at the first node based on different values of the first field in the at least two service messages.
[0085] The relevant description of step 201 in this embodiment can refer to the detailed description of step 101 in the above embodiment, and will not be repeated here to save space.
[0086] In step 202, the second node may determine that congestion occurs at the first node based on different values of the first field in at least two received service messages.
[0087] In an optional embodiment of the present disclosure, an interval between sending two consecutive service messages among the at least two service messages is less than a first time threshold.
[0088] In an optional embodiment of the present disclosure, the receiving of at least two business messages sent by the first node includes: receiving the first business message sent by the first node, the value of the first field in the first business message being a first value; and receiving the second business message sent by the first node within a second time range, the value of the first field in the second business message being a second value.
[0089] In an optional embodiment of the present disclosure, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0090] In an optional embodiment of the present disclosure, the method may further include: receiving a first message sent by the first node for notifying congestion, where the first message is sent by the first node when the first service message is not detected within the first time range.
[0091] In an optional embodiment of the present disclosure, the first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
[0092] In this embodiment, the second node may be a source node. In this case, the corresponding congestion signal detection and receiving module in the algorithm module for congestion control on the source node side needs to be upgraded or modified accordingly, that is, modified to directly parse the message header of the service message and determine whether the first field exists, and determine whether to send congestion based on whether the values of the first field in at least two service messages are the same.
[0093] Alternatively, the second node can be a second intermediate node between the source node and the destination node and connected to the source node. The second intermediate node then determines whether congestion occurs based on whether the values of the first field in at least two service messages are the same. For the source node, there is no need to improve or upgrade the algorithm module.
[0094] In some embodiments, when the second node is the second intermediate node, the method may further include: sending a second message to the source node to notify the source node of congestion. In other words, if the second intermediate node determines that congestion has occurred, it may also send a second message to the source node to notify the source node of the congestion. Exemplarily, the second message may be a Congestion Notification Message (CNP message) or another standard format message similar to CNP. It is understood that in this embodiment, the source node does not require modification or upgrade and can continue to utilize the existing congestion signal detection and receiving module.
[0095] In some embodiments, the frequency of sending the second message may be determined according to the degree of queue congestion.
[0096] The congestion notification solution of the embodiment of the present disclosure is described below with reference to specific application scenarios.
[0097] FIG6 is a flowchart of an application example of the communication method according to an embodiment of the present disclosure. As shown in FIG6 , there are multiple intermediate nodes between the sending end (i.e., the source node) and the receiving end (i.e., the destination node), such as node 1, node 2, and node N in FIG6 . In this example, the first node is node N. Node N can notify the sending end of congestion by carrying it with the flow or by actively generating it. The carrying it with the flow may include one of the following situations:
[0098] Step 301: When node N detects a first service message sent from a receiving end to a sending end within a first time range when congestion occurs, the node N sends the first service message to the sending end, where the value of the first field in the first service message is a first value; and sends a second service message to the sending end within a second time range, where the value of the first field in the second service message is a second value; wherein the second service message is a service message sent from the receiving end to the sending end within the second time range.
[0099] In this example, congestion occurs at the egress port of node N. It can be understood that there is frequent business traffic between node N and the sender, that is, a first business message needs to be sent to the sender within the first time range when congestion occurs, and a second business message needs to be sent to the sender within the second time range after the first business message is sent. For example, the sending interval between the first business message and the second business message is less than the first time threshold. The first time threshold is, for example, half of the round-trip delay between the sender and the receiver, that is, 0.5RTT. In addition, in this example, the sender supports parsing the first field carried in the business message, such as the magic number in the aforementioned embodiment. Node N can notify the sender of congestion in a follow-up manner. After receiving two consecutive business messages, the sender can determine that congestion has occurred based on the different values of the first field in the two business messages. For example, the values of the magic number in the two adjacent business messages are "A5" and "5A" respectively.
[0100] Step 401: When node N detects a first service message sent by a receiving end to a sending end within a first time range in which congestion occurs, the receiving end sends the first service message to the sending end, where the value of the first field in the first service message is a first value; and sends a second service message to the sending end within a second time range, where the value of the first field in the second service message is a second value; wherein the second service message is a service message constructed by node N based on the first service message.
[0101] For example, in this example, the service traffic between node N and the sender ends after sending part of the magic number. Node N can generate a 64-byte data packet with a payload of all 0s to send the remaining magic number. For example, after node N sends the first service message carrying the magic number value of "A5" within the first time range, no service message sent by the receiving end to the sending end is detected within the second time range. At this time, node N can construct a second service message with a corresponding payload of all 0s and a magic number value of "5A". Therefore, the sending end can determine that congestion has occurred after receiving two service messages carrying magic numbers with different values.
[0102] Step 501: Node N, upon detecting a first service message sent by a receiving end to a transmitting end within a first time range during which congestion occurs, sends the first service message to node 1, where the value of the first field in the first service message is a first value. Node N, further, sends a second service message to node 1 within a second time range, where the value of the first field in the second service message is a second value. The second service message is constructed by node N based on the first service message.
[0103] Step 502: Node 1 sends a second message to the transmitter to notify the congestion. In this example, node N generates a 64-byte data packet with a payload of all 0s and sends it to node 1 via a follow-flow mode. Node 1 generates a congestion notification message similar to the CNP standard.
[0104] It can be understood that in this example, the sender does not support parsing the first field in the business message, and node 1 connected to the sender supports parsing the first field. Then, after node 1 determines that congestion has occurred through the different values of the first field in the two business messages, it sends a second message to the sender to notify the congestion. The sending frequency of the second message may be the same as the sending frequency of the first field.
[0105] Continuing with FIG6 , the specific process of active generation includes:
[0106] Step 601: Node N, within a first time range where congestion occurs and when it detects no first service message sent by the receiving end to the sending end, sends a first message to the sending end notifying the sending end of the congestion. For example, if congestion occurs at node N and there is no service traffic for more than 0.5 RTT between node N and the sending end, node N may generate a CNP message to notify the sending end. The frequency of sending CNP messages may be determined based on the degree of queue congestion.
[0107] Figure 7 is a second flow chart of an application example of the communication method of an embodiment of the present disclosure. As shown in Figure 7, there are multiple intermediate nodes between the sending end (i.e., the source node) and the receiving end (i.e., the destination node), such as node 1, node 2, node N, etc. in Figure 7. In this example, the first node is node N and the second node is node 1. As shown in Figure 7, the message sent by the receiving end to the sending end needs to pass through node N, node 2, and node 1 to finally reach the sending end. After network congestion occurs at node N, it receives the communication message sent by the receiving end to the sending end, and determines whether the sending interval of each message in the flow communication message is greater than 0.5RTT, where RTT represents the round-trip delay between the sending end and the receiving end. If the sending interval of each message in the flow communication message is not greater than 0.5RTT (that is, the sending interval of two consecutive service messages in at least two service messages is less than the first time threshold), node N sends a message indicating network congestion along with the flow (that is, at least two service messages carrying the first field in the aforementioned embodiment) to the sending end, and node 1 generates a congestion notification message (such as a CNP message) and sends the congestion notification message to the sending end. If the interval between messages in the traffic flow is greater than 0.5 RTT, node N generates a congestion notification message (e.g., a CNP message) and sends it to the sender. The sender parses the congestion notification message and adjusts its message sending rate accordingly. After the congestion is resolved, node N stops sending messages with congestion flags, such as messages indicating network congestion or congestion notification messages.
[0108] Figure 8 is an example of congestion detection in related art. As shown in Figure 8, when congestion occurs on the outbound port of a network device, the network device can send a message carrying a congestion flag to the receiving server. After receiving the message, the receiving server can determine that the network is congested based on the message flag bit and send a congestion notification message to the sending server. After receiving the congestion notification message, the sender can adjust the sending rate accordingly, reducing the rate at which it sends messages. It can be seen that the congestion detection methods in related art based on packet loss, delay, and other means require a detection time greater than or equal to one RTT.
[0109] FIG9 is an example of congestion detection in the related art. As shown in FIG9 , when congestion occurs in the outbound direction of the port of the network device, the network device can send a congestion notification message to the sending server. After the sending server receives the congestion notification message sent by the network device, it can adjust the sending rate accordingly and reduce the rate of sending messages. It can be seen that the method based on active feedback from the intermediate congested node in the related art can compress the detection time to less than one RTT (depending on the location of the congested node), but it will introduce new problems. For example, the feedback message will bring additional link overhead, the bandwidth utilization rate is not high, and it may even cause new congestion in the return path, resulting in a detection time greater than one RTT. In addition, in order to ensure the real-time detection, frequently sending congestion status report messages will cause a waste of bandwidth. The intermediate node needs to maintain the service flow status during this process, which places high requirements on the intermediate node equipment and affects scalability.
[0110] Compared with related technologies, this example can count the interval time between two communication messages in the service flow of adjacent nodes. When the interval time is less than 0.5RTT, normal service traffic messages can be used to carry congestion information along with the flow, such as two consecutive messages carrying magic numbers with different values, to notify congestion; when the interval time is greater than or equal to 0.5RTT, a congestion notification message can be actively generated. This example notifies congestion based on RTT, reducing the overhead caused by the use of fixed-period congestion notification messages in related technologies. At the same time, the implementation cost is low, and zero bandwidth overhead can be achieved when congestion notification is performed under high link load conditions, ensuring that the sender can perceive the network congestion status within 0.5RTT. On the other hand, compared with the solution in related technologies where intermediate nodes actively send congestion notification messages, in this example, the intermediate nodes only perceive the downstream nodes when the link is lightly loaded or idle, without the need to maintain status information for each service flow, and can support large-scale expansion without affecting the real-time nature of congestion notification.
[0111] An embodiment of the present disclosure also provides a communication device, which is applied to a first node; Figure 10 is a schematic diagram of the composition structure of the communication device of an embodiment of the present disclosure. As shown in Figure 10, the communication device 70 includes a first communication unit 71, which is used to send at least two service messages to the second node within a first time range when congestion occurs and when a first service message sent by the destination node to the source node is detected; the different values of the first field in the at least two service messages are used to notify congestion.
[0112] In an optional embodiment of the present disclosure, an interval between sending two consecutive service messages among the at least two service messages is less than a first time threshold.
[0113] In an optional embodiment of the present disclosure, the first communication unit 71 is used to send the first business message to the second node, and the value of the first field in the first business message is a first value; and send a second business message to the second node within a second time range, and the value of the first field in the second business message is a second value.
[0114] In an optional embodiment of the present disclosure, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0115] In an optional embodiment of the present disclosure, the first communication unit 71 is further configured to send a first message for notifying congestion to the second node when the first service message is not detected within the first time range.
[0116] In an optional embodiment of the present disclosure, the first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
[0117] In the embodiment of the present disclosure, the first communication unit 71 in the communication device 70 can be implemented in actual applications through the communication module (including: basic communication kit, operating system, communication module, standardized interface and protocol, etc.) and transceiver antenna in the first node.
[0118] The present disclosure also provides a communication device, which is applied to a second node. FIG11 is a second structural diagram of the communication device according to the present disclosure. As shown in FIG11 , the communication device 80 includes a second communication unit 81 and a first processing unit 82.
[0119] The second communication unit 81 is configured to receive at least two service messages sent by the first node; wherein the at least two service messages are sent by the first node within a first time range where congestion occurs and when the first service message sent by the destination node to the source node is detected;
[0120] The first processing unit 82 is configured to determine that congestion occurs at the first node based on different values of the first field in the at least two service messages.
[0121] In an optional embodiment of the present disclosure, an interval between sending two consecutive service messages among the at least two service messages is less than a first time threshold.
[0122] In an optional embodiment of the present disclosure, the second communication unit 81 is used to receive the first business message sent by the first node, and the value of the first field in the first business message is a first value; and receive the second business message sent by the first node within a second time range, and the value of the first field in the second business message is a second value.
[0123] In an optional embodiment of the present disclosure, the second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
[0124] In an optional embodiment of the present disclosure, the second communication unit 81 is further configured to receive a first message sent by the first node for notifying congestion, where the first message is sent by the first node when the first service message is not detected within the first time range.
[0125] In an optional embodiment of the present disclosure, the first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; and / or the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
[0126] In an optional embodiment of the present disclosure, when the second node is the second intermediate node, the second communication unit is further configured to send a second message for notifying congestion to the source node.
[0127] In the embodiment of the present disclosure, the first processing unit 82 in the communication device 80 can be implemented in actual applications by the central processing unit (CPU), digital signal processor (DSP), microcontroller unit (MCU) or field-programmable gate array (FPGA) in the second node; the second communication unit 81 in the communication device 80 can be implemented in actual applications by a communication module (including: basic communication kit, operating system, communication module, standardized interface and protocol, etc.) and a transceiver antenna.
[0128] It should be noted that the above embodiments provide only examples of the division of the aforementioned program modules when performing congestion notification in the communication device. In actual applications, the aforementioned processing can be assigned to different program modules as needed, that is, the internal structure of the device can be divided into different program modules to complete all or part of the aforementioned processing. In addition, the communication device and the communication method embodiments provided in the above embodiments are based on the same concept. The specific implementation process is detailed in the method embodiments and will not be repeated here.
[0129] Figure 12 is a schematic diagram of the structure of a communication device according to an embodiment of the present disclosure. The communication device 900 may be the first node or the second node described above. The communication device 900 shown in Figure 12 includes: at least one processor 901, a memory 902, and at least one network interface 903. The various components in the communication device 900 are coupled together via a bus system 904. It will be understood that the bus system 904 is used to implement connection and communication between these components. In addition to including a data bus, the bus system 904 also includes a power bus, a control bus, and a status signal bus. However, for the sake of clarity, in Figure 12, all various buses are labeled as the bus system 904.
[0130] It is understood that memory 902 can be volatile memory or non-volatile memory, or can include both volatile and non-volatile memory. Non-volatile memory can be read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), ferromagnetic random access memory (FRAM), flash memory, magnetic surface memory, optical disk, or compact disc read-only memory (CD-ROM); magnetic surface memory can be magnetic disk memory or magnetic tape memory. Volatile memory can be random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM), and direct rambus random access memory (DRRAM).The memory 902 described in the embodiments of the present disclosure is intended to include, but is not limited to, these and any other suitable types of memory.
[0131] The memory 902 in the embodiment of the present disclosure is used to store various types of data to support the operation of the communication device 900. Examples of such data include programs for implementing the methods in the embodiment of the present disclosure.
[0132] The methods disclosed in the above embodiments of the present disclosure can be applied to or implemented by processor 901. Processor 901 may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by hardware integrated logic circuits in processor 901 or instructions in software form. The above processor 901 may be a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. Processor 901 can implement or execute the various methods, steps, and logic block diagrams disclosed in the embodiments of the present disclosure. A general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods disclosed in conjunction with the embodiments of the present disclosure can be directly implemented as being executed by a hardware decoding processor, or can be executed by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium located in memory 902. Processor 901 reads information in memory 902 and, in conjunction with its hardware, completes the steps of the above method.
[0133] In an exemplary embodiment, the communication device 900 can be implemented by one or more application-specific integrated circuits (ASICs), DSPs, programmable logic devices (PLDs), complex programmable logic devices (CPLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers (MCUs), microprocessors, or other electronic components to perform the aforementioned method.
[0134] In an exemplary embodiment, the present disclosure also provides a computer-readable storage medium, such as a memory 902 including a computer program. The computer program can be executed by the processor 901 of the communication device 900 to perform the steps of the aforementioned method. The computer-readable storage medium can be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, Flash Memory, magnetic surface mount storage, optical disk, or CD-ROM; or various devices including any one or any combination of the aforementioned memories, such as a mobile phone, computer, tablet device, personal digital assistant, etc.
[0135] In an exemplary embodiment, the present disclosure further provides a computer program product, including a computer program, which can be executed by the processor 901 of the communication device 900 to complete the steps of any of the aforementioned methods.
[0136] The methods disclosed in the several method embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new method embodiments.
[0137] The features disclosed in the several product embodiments provided in this disclosure can be arbitrarily combined without conflict to obtain new product embodiments.
[0138] The features disclosed in several method or device embodiments provided in this disclosure may be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.
[0139] In the several embodiments provided in the present disclosure, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.
[0140] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0141] In addition, all functional units in the embodiments of the present disclosure may be integrated into one processing unit, or each unit may be separately used as a unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.
[0142] Those skilled in the art will appreciate that all or part of the steps of the above-mentioned method embodiments may be implemented by hardware associated with program instructions, and the aforementioned program may be stored in a computer-readable storage medium. When the program is executed, the program executes the steps of the above-mentioned method embodiments. The aforementioned storage medium includes various media that can store program codes, such as mobile storage devices, read-only memories (ROMs), random access memories (RAMs), magnetic disks, or optical disks.
[0143] Alternatively, if the above-mentioned integrated unit of the present disclosure is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present disclosure is essentially or the part that contributes to the prior art 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 methods described in each embodiment of the present disclosure. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROM, RAM, magnetic disks or optical disks.
[0144] The above description is merely a specific embodiment of the present disclosure, but the scope of protection of the present disclosure is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this disclosure should be included in the scope of protection of the present disclosure. Therefore, the scope of protection of the present disclosure should be based on the scope of protection of the claims. Industrial Applicability
[0145] The embodiments of the present disclosure provide a communication method, apparatus, storage medium, program product, and communication equipment. The method includes: a first node sends at least two service messages to a second node when detecting a first service message sent by a destination node to a source node within a first time range when congestion occurs; different values of the first field in the at least two service messages are used to notify congestion; when communication between the source node and the destination node is frequent, normal service traffic messages are used to carry congestion notification information along with the flow; congestion notification under high link load conditions can achieve zero bandwidth overhead, without the need for intermediate nodes to actively send congestion notification messages, and intermediate nodes do not need to maintain status information of each service flow, which can support large-scale expansion impacts; at the same time, the source node can detect the occurrence of congestion in a timely manner, thereby adjusting the message sending rate, reducing congestion packet loss and retransmission, and improving the effective network throughput.
Claims
1. A communication method, applied to a first node; the method comprising: Sending at least two service packets to a second node when detecting a first service packet sent by a destination node to a source node within a first time range where congestion occurs; The different values of the first field in the at least two service messages are used to notify congestion.
2. The method according to claim 1, wherein The sending interval between two consecutive service messages in the at least two service messages is less than the first time threshold.
3. The method according to claim 1 or 2, wherein The sending at least two service messages to the second node includes: Send the first business message to the second node, the value of the first field in the first business message is a first value; and send a second business message to the second node within a second time range, the value of the first field in the second business message is a second value.
4. The method according to claim 3, wherein: The second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
5. The method according to claim 1, wherein The method further comprises: If the first service message is not detected within the first time range, a first message for notifying congestion is sent to the second node.
6. The method according to claim 1, wherein The first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; And / or, the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
7. A communication method, applied to a second node; the method comprising: Receiving at least two service messages sent by a first node; wherein the at least two service messages are sent by the first node within a first time range in which congestion occurs and when the first service message sent by the destination node to the source node is detected; Congestion is determined at the first node based on different values of the first field in the at least two service messages.
8. The method according to claim 7, wherein: The sending interval between two consecutive service messages in the at least two service messages is less than the first time threshold.
9. The method according to claim 7 or 8, wherein The receiving at least two service messages sent by the first node includes: Receive the first business message sent by the first node, the value of the first field in the first business message is a first value; and receive the second business message sent by the first node within a second time range, the value of the first field in the second business message is a second value.
10. The method according to claim 9, wherein: The second service message is a service message sent by the destination node to the source node within the second time range; or, the second service message is a service message constructed by the first node based on the first service message.
11. The method according to claim 7, wherein: The method further comprises: A first message for notifying congestion sent by the first node is received, where the first message is sent by the first node when the first service message is not detected within the first time range.
12. The method according to claim 7, wherein: The first node is a first intermediate node between the source node and the destination node, or the first node is the destination node; And / or, the second node is the source node, or the second node is a second intermediate node between the source node and the destination node and connected to the source node.
13. The method according to claim 12, wherein: When the second node is the second intermediate node, the method further includes: A second message for notifying congestion is sent to the source node.
14. A communication device, which is applied to a first node; the device includes a first communication unit, which is used to send at least two service messages to a second node when a first service message sent by a destination node to a source node is detected within a first time range when congestion occurs; different values of the first field in the at least two service messages are used to notify congestion.
15. A communication device, the device being applied to a second node; the device comprising a second communication unit and a first processing unit; wherein, The second communication unit is configured to receive at least two service messages sent by the first node; wherein the at least two service messages are sent by the first node within a first time range where congestion occurs and when the first service message sent by the destination node to the source node is detected; The first processing unit is configured to determine that congestion occurs at the first node based on different values of the first field in the at least two service messages.
16. A computer-readable storage medium having a computer program stored thereon, wherein when the program is executed by a processor, the program implements the steps of the method according to any one of claims 1 to 6; or, when the program is executed by a processor, the program implements the steps of the method according to any one of claims 7 to 13.
17. A computer program product, comprising a computer program, wherein when the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 6; or, when the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 7 to 13.
18. A communication device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein when the processor executes the program, the steps of the method according to any one of claims 1 to 6 are implemented; or, when the processor executes the program, the steps of the method according to any one of claims 7 to 13 are implemented.
Citation Information
Patent Citations
Congestion control method, equipment and system
CN113055935A
Network congestion processing method and device, storage medium and electronic device
CN117640526A
Communication method and device, storage medium, program product and communication equipment
CN118827551A
Congestion notification by data packet from intermediate node
US20200322837A1