Communication method, device, equipment, system and readable storage medium

Through the intermediate network element, the congestion perception signal of downstream segments is obtained on the original connection and the congestion control value is set, and the segmented network transmission mode is adapted to the segmented network, which solves the problems of high performance and low overhead in traditional methods, and realizes an efficient segmented network transmission.

CN119316356APending Publication Date: 2025-01-14HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310866819.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-13
Publication Date
2025-01-14

AI Technical Summary

Technical Problem

The traditional segmented transmission control method cannot achieve high-performance segmented network transmission while taking into account low overhead. Especially in the wide-area Internet of cloud data centers, the calculation and transmission performance requirements of intermediate network elements are high, and the increase of The overall delay of network transmission.

Method used

The intermediate network element obtains the congestion sensing signal of the downstream segment on the original connection from the source end to the destination end, sets the congestion control value of the second message, and indicates the maximum transmission rate of the message at the source end, so as to be suitable for segmentation in the network. It is equipped with a downstream segmented transmission control mode to reduce the memory and computing overhead of intermediate network elements and avoid new connections.

Benefits of technology

It realizes the improvement of segmented network transmission performance while taking into account low overhead, reduces the memory and computing overhead of intermediate network elements, reduces the overall delay of message transmission, and improves network utilization.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119316356A_ABST
    Figure CN119316356A_ABST
Patent Text Reader

Abstract

The invention provides a communication method, device, equipment and system and a readable storage medium, relates to the field of communication, and can be applied to an intermediate network element of a source end and a destination end. The method comprises the following steps: firstly, determining a congestion sensing signal for representing the congestion degree of a downstream segment (from an intermediate network element to a destination end); a congestion control value of a data confirmation message corresponding to the first message is set according to the congestion sensing signal, a third message is obtained, and the congestion control value is used for indicating the maximum message sending rate of the source end; and forwarding a third message which is used for indicating the source end to set the maximum sending rate of the message according to the congestion control value. Thus, the intermediate network element tampers the congestion control value of the data confirmation message according to the congestion sensing signal of the downstream segment, so that the transmission control mode of the source end is adapted to the downstream segment under the condition of intra-network segment, and the transmission performance of the segment network is ensured based on the transmission control mode adapted to the downstream segment. And the overheads of memory, calculation and the like of the intermediate network element are reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communications, and in particular to a communication method, apparatus, device, system and readable storage medium. Background Art

[0002] The network environment is widely characterized by "segmented heterogeneity", that is, different network segments have obvious differences. For example, the cloud data center wide area interconnection network (such as Figure 1 The example shown in FIG. 5 includes three network segments with greatly different network attributes (such as network device architecture, traffic, round-trip time (RTT)), namely, the source data center network (DCN), the wide area network (WAN), and the destination data center network.

[0003] Traditional technology uses intra-network segmented transmission to perform segmented transmission control on a "segmented heterogeneous" network, that is, using an intermediate network element to terminate the connection between the source and the destination, and then communicating with the destination through a new connection, thereby using different transmission control schemes in the two connections to optimize the network in different segments.

[0004] However, the newly added connections in the above-mentioned intra-network segmented transmission method correspond to the newly added complete message sending and receiving process, which places high requirements on the computing, transmission and other performance of the intermediate network elements, while increasing the overall delay of the network transmission. It is impossible to achieve high-performance segmented network transmission while taking into account low overhead (such as memory overhead, hardware overhead, etc.). Summary of the invention

[0005] The embodiments of the present application provide a communication method, apparatus, device, system and readable storage medium, which can solve the problem that traditional segmented transmission control cannot achieve high-performance segmented network transmission while taking into account low overhead.

[0006] In a first aspect, a communication method is provided. The communication method is applied to an intermediate network element, the intermediate network element is connected to a source end and a destination end respectively, the network between the source end and the intermediate network element is called an upstream segment, and the network between the intermediate network element and the destination end is called a downstream segment. The communication method includes: the intermediate network element first determines a congestion perception signal of the downstream segment, and the congestion perception signal is used to indicate the degree of congestion of the network link. Then, the intermediate network element sets a congestion control value of a second message according to the congestion perception signal of the downstream segment, and obtains a third message, the second message is a data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate the maximum message sending rate of the source end. The intermediate network element then forwards the third message to the source end, and the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value.

[0007] Based on this communication method, the intermediate network element adjusts the congestion control value in the data confirmation message returned by the destination end to the source end according to the congestion perception signal of the downstream segment to indicate the maximum sending rate of subsequent messages from the source end, so that the transmission control mode of the source end is adapted to the downstream segment in the case of intra-network segmentation. Since the intermediate network element obtains the congestion perception signal and sets the congestion control value of the second message on the original connection from the source end to the destination end (such as the TCP (transmission control protocol, TCP) connection), the congestion control value of the data confirmation message is tampered with when forwarding the message to perform congestion control. Therefore, this communication method does not need to terminate the original connection, and the intermediate network element does not need to add a new connection between the source end and the destination end, which reduces the process of data confirmation with the source end or the destination end when the intermediate network element re-sends and receives messages. In this way, while ensuring the transmission performance of the segmented network based on the transmission control mode adapted to the downstream segment, the memory, computing and other overheads of the intermediate network element are reduced.

[0008] In a possible implementation, the intermediate network element determines the congestion sensing signal of the downstream segment according to the status information of the first message and the status information of the second message, wherein the status information includes at least one of a quintuple of the message, a sequence number, an acknowledgment number, and a timestamp of arrival at the intermediate network element.

[0009] Based on the above implementation, the intermediate network element can determine the congestion perception signal of the downstream segment by monitoring the status information of the data message sent from the source end to the destination end, that is, the first message, and the data confirmation message sent from the destination end to the source end, that is, the second message, without terminating the connection between the source end and the destination end and adding a new connection. Compared with the transmission control based on the two-segment connection from the source end to the intermediate network element and the intermediate network element to the destination end, the memory overhead of the intermediate network element caching messages and monitoring the connection status is reduced, as well as the computing overhead caused by repeated operations such as encapsulation, decapsulation, and data copying of messages.

[0010] Optionally, the congestion awareness signal includes at least one of round-trip delay and bandwidth capacity.

[0011] Furthermore, taking the congestion perception signal as bandwidth capacity as an example, the intermediate network element can determine the time difference between the first message and the second message arriving at the intermediate network element, and determine the data volume of the data confirmation message returned by the destination within the time difference as the bandwidth capacity. In this way, the intermediate network element can determine the time difference based on the recorded time when the first message and the second message arrive at the intermediate network element, and use the data volume of the data confirmation message within the time difference as the congestion perception signal of the downstream segment, without having to perform operations such as decapsulation and recapsulation of the message in the process, thereby reducing the computational overhead of the intermediate network element.

[0012] In a possible implementation, the intermediate network element determines a data message and a data confirmation message corresponding to the data message according to a five-tuple. First, the intermediate network element determines at least one data confirmation message returned by the destination end to the source end according to the five-tuple of the first message, and the message transmission direction indicated by the five-tuple of the first message is opposite to the message transmission direction indicated by the five-tuple of the at least one data confirmation message. Then, the intermediate network element determines a second message in the at least one data confirmation message according to the confirmation sequence number of the at least one data confirmation message and the sequence number of the first message.

[0013] Optionally, considering that the destination end may return a data confirmation message to the source end after one or more messages, the intermediate network element may determine that the data confirmation message with a confirmation sequence number greater than or equal to and closest to the sequence number of the first message in at least one data confirmation message is the second message. In this way, the intermediate network element can match the earliest data confirmation message returned by the destination end with the data confirmation message corresponding to the first message, thereby reducing the calculation error of the subsequent congestion perception signal.

[0014] In one possible implementation, the intermediate network element obtains a fourth message when the time it takes for the second message to reach the intermediate network element is equal to the above-mentioned time difference, and determines that the amount of data in the data confirmation message returned by the destination within the time difference is equal to the difference between the confirmation sequence number of the fourth message and the confirmation sequence number of the second message.

[0015] In one possible implementation, the congestion control value is a receiver window (rwnd) value. The way in which the intermediate network element instructs the source end to perform transmission control may be: the intermediate network element determines the bottleneck rate of the source end as the optimal sending window value of the source end according to the congestion perception signal of the downstream segment using the congestion control algorithm, and sets the receiving window value of the second message according to the bottleneck rate, obtains a third message, and sends the third message to the source end to instruct the source end to set the maximum sending rate according to the receiving window value. In this way, the intermediate network element implements explicit control of the send window (SWND) of the source end by tampering with the receiving window value in the second message.

[0016] Optionally, the intermediate network element first determines the first optimal sending window value of the source end using the first congestion control algorithm according to the congestion perception signal of the upstream segment, and then determines the second optimal sending window value of the source end using the second congestion control algorithm according to the congestion perception signal of the downstream segment. The intermediate network element then determines the bottleneck rate of the source end as the minimum value of the first optimal sending window value and the second optimal sending window value, sets the receiving window value of the second message to a preset multiple of the bottleneck rate, and obtains a third message. The preset multiple can be flexibly set according to demand, such as 0.8, 1, 1.5, etc. In this way, the intermediate network element can perform transmission control on the congestion of the upstream segment and the downstream segment respectively, avoid overlapping and reducing the window when there is congestion at the same time, thereby achieving efficient utilization of available bandwidth, that is, improving network utilization.

[0017] According to a second aspect, a communication device is provided, comprising modules for executing the communication method according to the first aspect or any possible design of the first aspect.

[0018] The communication device includes a sensing module, a processing module and a transceiver module. The sensing module is used to determine a congestion sensing signal of a downstream segment, and the congestion sensing signal is used to indicate the degree of congestion of a network link. The processing module is used to set a congestion control value of a second message according to the congestion sensing signal of the downstream segment to obtain a third message, wherein the second message is a data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate the maximum message sending rate of the source end. The transceiver module is used to send a third message to the source end, and the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value.

[0019] In one possible implementation, the perception module is specifically used to determine the congestion perception signal of the downstream segment based on the status information of the first message and the status information of the second message, the status information including at least one of the message's quintuple, sequence number, confirmation sequence number, and timestamp of arrival at the intermediate network element.

[0020] The congestion sensing signal includes at least one of round-trip delay and bandwidth capacity.

[0021] Optionally, the congestion perception signal includes bandwidth capacity, and the perception module is specifically used to: determine the time difference between the first message and the second message arriving at the intermediate network element; determine the data volume of the data confirmation message returned by the destination within the time difference as the bandwidth capacity.

[0022] In one possible implementation, the perception module is also used to: determine at least one data confirmation message returned by the destination end to the source end based on the quintuple of the first message, the message transmission direction indicated by the quintuple of the first message is opposite to the message transmission direction indicated by the quintuple of at least one data confirmation message; determine the second message in at least one data confirmation message based on the confirmation sequence number of at least one data confirmation message and the sequence number of the first message.

[0023] Optionally, the perception module is specifically used to: determine that a data confirmation message in at least one data confirmation message whose confirmation sequence number is greater than or equal to and closest to the sequence number of the first message is the second message.

[0024] In one possible implementation, the perception module is specifically used to: obtain a fourth message when the time it takes for the second message to reach the intermediate network element is equal to the time difference; determine the difference between the confirmation number of the fourth message and the confirmation number of the second message, and the amount of data in the data confirmation message returned by the destination within the time difference is equal to the sequence number difference.

[0025] In one possible implementation, the processing module is specifically used to: determine the bottleneck rate of the source end as the optimal sending window value of the source end using a congestion control algorithm based on a congestion perception signal of a downstream segment; set the receiving window value of the second message according to the bottleneck rate to obtain a third message.

[0026] Optionally, the source end to the intermediate network element is an upstream segment, and the processing module is specifically used to: determine the first optimal sending window value of the source end by using a first congestion control algorithm according to the congestion perception signal of the upstream segment; determine the second optimal sending window value of the source end by using a second congestion control algorithm according to the congestion perception signal of the downstream segment; determine the bottleneck rate of the source end as the minimum value of the first optimal sending window value and the second optimal sending window value; set the receiving window value of the second message according to the bottleneck rate to obtain a third message.

[0027] Furthermore, the processing module is specifically used to: set the receiving window value of the second message to a preset multiple of the bottleneck rate to obtain a third message.

[0028] In a third aspect, a communication device is provided, which includes at least one processor and a memory, the memory being used to store a set of computer instructions; when the processor executes the set of computer instructions, the operation steps of the communication method in the first aspect or any possible implementation of the first aspect are executed.

[0029] In a fourth aspect, a communication system is provided, the communication system comprising a source end, an intermediate network element, and a destination end connected in sequence. The source end is used to send a first message to the destination end, the destination end is used to return a second message to the source end according to the first message, and the intermediate network element is used to obtain the first message and the second message, and perform the operation steps of the communication method in the first aspect or any possible implementation of the first aspect according to the first message and the second message.

[0030] In addition, the technical effects of the communication device described in the second aspect, the technical effects of the communication equipment described in the third aspect, and the technical effects of the communication system described in the fourth aspect can refer to the technical effects of the communication method described in the first aspect, and will not be repeated here.

[0031] In a fifth aspect, a readable storage medium is provided, comprising: computer software instructions; when the computer software instructions are executed in a communication device, the communication device executes the operating steps of the method described in the first aspect or any possible implementation of the first aspect.

[0032] In a sixth aspect, a computer program product is provided. When the computer program product is run on a computer, a communication device executes the operation steps of the method described in the first aspect or any possible implementation manner of the first aspect.

[0033] Based on the implementations provided in the above aspects, this application can also be further combined to provide more implementations. BRIEF DESCRIPTION OF THE DRAWINGS

[0034] Figure 1 A schematic diagram of the architecture of a cloud data center wide area network;

[0035] Figure 2 A schematic diagram of Gemini dual-signal congestion control;

[0036] Figure 3 It is a transmission diagram of a TCP relay segmentation network optimization method;

[0037] Figure 4 A schematic diagram of the architecture of a communication system provided in this application Figure 1 ;

[0038] Figure 5 A schematic diagram of the architecture of a communication system provided in this application Figure 2 ;

[0039] Figure 6 A flow chart of a communication method provided by the present application;

[0040] Figure 7 A schematic diagram of a process for determining a congestion sensing signal provided in this application;

[0041] Figure 8 A schematic diagram of a process of performing congestion control based on a congestion sensing signal provided in this application;

[0042] Fig. 9 A schematic diagram of the structure of a communication device provided by the present application;

[0043] Fig.10 A schematic diagram of the structure of a communication device and system provided in this application. DETAILED DESCRIPTION

[0044] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings in the embodiments of the present application. In the present application, "at least one" refers to one or more, and "multiple" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects before and after are in an "or" relationship. "At least one of the following" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can represent: a, b, c, a and b, a and c, b and c, or a and b and c, where a, b and c can be single or multiple.

[0045] It should be noted that, in this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.

[0046] The communication method provided in the embodiment of the present application can be applied to the scenario of a segmented network within a "segmented heterogeneous" network. The following is a brief introduction to the technologies that may be involved in the present application.

[0047] (1) Transmission Control Protocol

[0048] The Transmission Control Protocol (TCP) is a connection-oriented, reliable, byte-stream-based transport layer communication protocol. TCP is designed to adapt to a layered protocol hierarchy that supports multiple network applications, enabling reliable communication between pairs of processes in host computers connected to different but interconnected computer networks.

[0049] Specifically, the application layer sends a data stream represented by 8-bit bytes for transmission across the internet to the TCP layer, and TCP then partitions the data stream into segments of appropriate length (usually limited by the maximum transmission unit (MTU) of the data link layer of the network to which the computer is connected). TCP then passes the resulting packet to the Internet Protocol (IP) layer, which transmits the packet to the TCP layer of the receiving entity through the network. In order to ensure that no packet loss occurs, TCP gives each packet a sequence number, which also ensures that the packets transmitted to the receiving entity are received in order. The receiving entity then sends back a corresponding acknowledgment number for the successfully received packet; if the sending entity does not receive the acknowledgment within a reasonable round-trip delay, the corresponding data packet is assumed to have been lost and will be retransmitted. TCP uses a checksum function to check whether the data is erroneous; the checksum is calculated both when sending and receiving.

[0050] (2) TCP congestion control

[0051] TCP congestion control uses end-to-end congestion control rather than network-assisted congestion control because the IP layer does not provide explicit network congestion feedback to the end system. The method used by TCP is to allow each sender to limit the rate at which it can send traffic to the link based on the perceived level of network congestion. TCP congestion control usually requires the TCP sender to maintain a congestion window (cwnd), which changes dynamically based on the level of network congestion. The essence of congestion control is to use an algorithm to control the congestion window so that the sender adjusts the sending window based on the congestion window, thereby avoiding injecting too much data into the network.

[0052] The congestion window can control the sending rate of the sender in the following way: at the starting point of each round trip delay, the sender is allowed to send cwnd bytes of data to the TCP connection, and at the end of the RTT, the sender receives a data confirmation message for the data. Therefore, the maximum sending rate limit of the sender can be cwnd / RTT bytes / second.

[0053] When the sending rate of the sender is controlled by the congestion window, the TCP sender can use the TCP congestion control algorithm to determine the maximum sending rate. The TCP congestion control algorithm includes slow start, congestion control, fast recovery and other types, which will not be described here.

[0054] (3) Bandwidth-Delay Product

[0055] Bandwidth-delay product (BDP) is the maximum number of bits on a link, also known as link length in bits. It refers to the product of the capacity of a data link (bits per second) and the round-trip communication delay (in seconds). The result is a total amount of data in bits (or bytes), which is equivalent to the maximum amount of data on the network line at any given time - data that has been sent but not yet confirmed.

[0056] The bandwidth-delay product is an important example of an issue when designing TCP tuning. This is because the protocol can only achieve optimal throughput if the sender sends enough data before being asked to stop transmitting and wait for a message from the receiver confirming that the data was successfully received. If the amount of data sent is not enough compared to the bandwidth-delay product, then the link is not staying busy, and the protocol is operating the link below its peak capacity.

[0057] In the "segmented heterogeneous" network segmentation scenario, traditional solutions usually adopt Figure 2 The multi-signal and multi-control loop combination shown in FIG. Figure 3 The segmented transmission method within the network is shown to optimize the transmission quality of the segmented network.

[0058] Representative solutions of segmented network optimization based on the combination of multiple signals and multiple control loops include Gemini, Annulus, etc. Figure 2 The Gemini scheme shown is applied to Figure 1 In the cloud data center wide area interconnection network shown in the figure, the end side enables explicit congestion notification (ECN) and RTT signals. When the end side detects that there may be network congestion in the link according to the data confirmation message, the ECN signal is used to detect the congestion of the DCN, and the RTT signal is used to detect the congestion of the WAN, thereby performing differentiated detection and processing of the congestion of the DCN and WAN.

[0059] However, the segmented network optimization method based on the combination of multiple signals and multiple control loops requires changes to the end-side protocol stack. The end-side needs to schedule its own computing resources, memory resources, etc. for congestion detection and congestion control, which will affect the overall congestion control effect when the end-side device performance is poor. At the same time, the end-side congestion detection of the remote network (such as DCN) will be affected by the high latency caused by the long link, and there will be problems with the efficiency of congestion control, which will cause poor transmission performance of the segmented network.

[0060] Representative solutions for segmented network optimization based on intra-network segmented transmission include TCP relay or proxy. Figure 3The TCP relay scheme shown uses a TCP relay device to terminate the connection between the source and the destination (such as TCP connection 1), so that the TCP relay device is connected to the source through a TCP connection (such as TCP connection 2), and then communicates with the destination through a new connection (such as TCP connection 3), thereby using different transmission control schemes in the two connections to optimize the network in different segments.

[0061] However, the above-mentioned segmented network optimization method based on intra-network segmented transmission requires caching of data packets, which requires a large memory space of the TPC relay device. After adding a new connection, the TPC relay device decapsulates, encapsulates, and copies data for the packets to be forwarded, which consumes a lot of computing resources. At the same time, the TPC relay device needs to add two additional complete message sending and receiving processes after adding a new connection, which increases the overall delay of message transmission. In summary, the segmented network optimization method based on intra-network segmented transmission has high hardware requirements for TCP relay devices, and there is a problem of long overall message transmission delay.

[0062] Therefore, the traditional segmented transmission control scheme for the "segmented heterogeneous" intra-segmented network cannot achieve high-performance segmented network transmission while taking into account low overhead.

[0063] The present application provides a communication method, in particular, a communication method in which "an intermediate network element tampers with the congestion control value of a data confirmation message to indicate the maximum message sending rate of the source end". The method is applied to the intermediate network element, and the network segment between the source end and the intermediate network element is regarded as the upstream segment, and the network segment between the intermediate network element and the destination end is regarded as the downstream segment. The method includes: the intermediate network element first obtains the congestion perception signal of the downstream segment, and the congestion perception signal is used to indicate the congestion degree of the network link. Then, the intermediate network element sets the congestion control value of the second message according to the congestion perception signal of the downstream segment to obtain a third message. Among them, the second message is the data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate the maximum message sending rate of the source end. The intermediate network element then sends a third message to the source end, and the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value.

[0064] Based on this communication method, the intermediate network element adjusts the congestion control value in the data confirmation message returned by the destination end to the source end according to the congestion perception signal of the downstream segment to indicate the maximum sending rate of subsequent messages from the source end, so that the transmission control mode of the source end is adapted to the downstream segment in the case of intra-network segmentation. Since the intermediate network element obtains the congestion perception signal and sets the congestion control value of the second message on the original connection from the source end to the destination end, the congestion control value of the data confirmation message is tampered with when forwarding the message to perform congestion control. Therefore, this communication method does not need to terminate the original connection, and the intermediate network element does not need to add a new connection between the source end and the destination end, which reduces the process of data confirmation with the source end or the destination end when the intermediate network element resends and receives messages. In this way, while ensuring the transmission performance of the segmented network based on the transmission control mode adapted to the downstream segment, the memory, computing and other overheads of the intermediate network element are reduced.

[0065] The implementation of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.

[0066] Figure 4 This is a schematic diagram of the architecture of a communication system provided by this application. Figure 4 As shown, the communication system 400 includes a source end 410, a network 420, an intermediate network element 430, a network 440 and a destination end 450. The source end 410 is connected to the intermediate network element 430 through the network 420, and the intermediate network element 430 is connected to the destination end 450 through the network 440.

[0067] Figure 4 Taking the intermediate network element 430 as a network device and the source end 410 as a user end device as an example, the destination end 450 may be a server (such as an application server, etc.) for processing requests of the source end 410 .

[0068] The above-mentioned user terminal device is a terminal that accesses the above-mentioned communication system 400 and has a wireless transceiver function or a chip or chip system that can be set in the terminal, so the user terminal device can be a terminal device. The user terminal device can also be called a user device, an access terminal, a user unit, a user station, a mobile station, a mobile station, a remote station, a remote terminal, a mobile device, a user terminal, a terminal, a wireless communication device, a user agent or a user device. The terminal device in the embodiment of the present application can be a mobile phone, a tablet computer (Pad), a computer with a wireless transceiver function, a virtual reality (virtual reality, VR) terminal device, an augmented reality (augmented reality, AR) terminal device, a wireless terminal in industrial control (industrialcontrol), a wireless terminal in self-driving (self driving), a wireless terminal in remote medical (remotemedical), a wireless terminal in smart grid (smart grid), a wireless terminal in transportation safety (transportationsafety), a wireless terminal in a smart city (smart city), a wireless terminal in a smart home (smart home), a vehicle-mounted terminal, a roadside unit (road side unit, RSU) with a terminal function, etc. The terminal device of the present application can also be a vehicle-mounted module, vehicle-mounted module, vehicle-mounted component, vehicle-mounted chip or vehicle-mounted unit that is built into the vehicle as one or more components or units. The vehicle can implement the communication method provided by the present application through the built-in vehicle-mounted module, vehicle-mounted module, vehicle-mounted component, vehicle-mounted chip or vehicle-mounted unit.

[0069] In the present application, the source end 410 is used to send a first message to the destination end 450 , and set a maximum message sending rate according to a congestion control value included in a third message returned by the intermediate network element 430 .

[0070] The first message may be a data message. The third message may be obtained by the intermediate network element 430 setting the congestion control value of the second message according to the congestion sensing signal of the downstream segment. The second message may be a data confirmation message returned by the destination end 450 to the source end 410 according to the first message.

[0071] The network device is located at the network side of the communication system 400 and has a wireless transceiver function or a chip or chip system that can be set in the device. The network device includes, but is not limited to: an access point (AP) in a wireless fidelity (WiFi) system, such as a home gateway, a router, a server, a switch, a bridge, etc., an evolved Node B (eNB), a radio network controller (RNC), a Node B (NB), a base station controller (BSC), a base transceiver station (BTS), a home base station (e.g., home evolved NodeB, or homeNode B, HNB), a baseband unit (BBU), a wireless relay node, a wireless backhaul node, a transmission point (TRP or TP), etc., and can also be 5G, such as a gNB in ​​a new radio (NR) system, or a transmission point (TRP or TP), one or a group of (including multiple antenna panels) antenna panels of a base station in a 5G system, or a network node constituting a gNB or a transmission point, such as a baseband unit (BBU), or a distributed unit (DBU). unit, DU), RSU with base station function, etc. In a possible embodiment of the present application, the intermediate network element 430 may be a border router.

[0072] In the present application, the intermediate network element 430 is used to determine the congestion perception signal of the upstream segment and / or the downstream segment, and set the congestion control value of the second message according to the congestion perception signal of the upstream segment and / or the downstream segment, obtain the third message, and send the third message to the source end 410.

[0073] The server is located at the service side or network side of the communication system 400 and has the function of receiving requests sent by the user terminal device. The server includes but is not limited to: independent server, virtual host, virtual private server (VPS), cloud server (elastic compute service, ECS), etc.

[0074] In the present application, the destination end 450 is used to return a second message, ie, a data confirmation message, to the source end 410 in response to the first message.

[0075] The above-mentioned network 420 and network 440 may be network segments of different network segments with different network attributes (e.g., network device architecture, round-trip delay, packet loss rate, etc.), and each network segment may also include one or more network devices for providing message sending and receiving functions. For example, network 420 is a DCN, and network 440 is a WAN. For another example, network 420 is a WAN, and network 440 is a DCN.

[0076] This application does not limit the message transmission direction. Figure 4 Taking the case where the data message transmission direction is from the source end 410 to the destination end 450 as an example, in another possible embodiment, the data message transmission direction may also be from the destination end 450 to the source end 410. Figure 5 As shown, the order of the source end 410 and the destination end 450 can be reversed.

[0077] It is worth noting that Figure 4 and Figure 5 This is only a schematic diagram and should not be construed as limiting the present application. The architecture of the communication system 400 may also include other devices. Figure 4 and Figure 5 Not drawn in.

[0078] Next, the communication method provided by this embodiment is described in detail with reference to the accompanying drawings.

[0079] The steps of the communication method provided in this embodiment are performed by the source end 410, the intermediate network element 430 and the destination end 450 in the communication system 400. Figure 6 , to illustrate the communication method provided in the embodiment of the present application.

[0080] Step 610: The source end 410 sends a first message.

[0081] As a possible example, the first message sent by the source end 410 is a data message whose final destination address points to the destination end 450 .

[0082] The above data message may be a request message sent by the source end 410 to the destination end 450 , and the request type may be any type such as data writing, data reading, software access request, etc.

[0083] Step 620: The intermediate network element 430 forwards the first message.

[0084] As a possible example, the intermediate network element 430 receives the first message from the network 420 , and forwards the first message through the network 440 .

[0085] In the present application, the intermediate network element 430 only modifies the next-hop destination address of the message when forwarding the first message to direct the message to the destination end 450, and the message before and after the next-hop destination address is modified can still be regarded as the first message.

[0086] Step 630: The destination end 450 returns a second message in response to the first message.

[0087] As a possible example, after receiving the first message, the destination end 450 performs processing requested by the first message and then returns a second message.

[0088] As a possible implementation manner, the first message is a data message, and the second message is a data confirmation message.

[0089] Step 640: The intermediate network element 430 determines a congestion sensing signal of the downstream segment.

[0090] As a possible example, the intermediate network element 430 determines the congestion sensing signal of the downstream segment according to the status information of the first message and the status information of the second message, wherein the status information includes at least one of a quintuple of the message, a sequence number, a confirmation sequence number, and a timestamp of arrival at the intermediate network element 430.

[0091] As a possible implementation, when the intermediate network element 430 receives the first message and the second message, it records the status information of the first message and the status information of the second message respectively, and then determines the congestion perception signal of the downstream segment according to the status information of the first message and the status information of the second message.

[0092] The congestion sensing signal includes at least one of round trip delay and bandwidth capacity. Different congestion control algorithms may use round trip delay, bandwidth capacity and / or other signals as congestion sensing signals, and the present application does not limit the type of congestion sensing signals.

[0093] Optionally, the congestion sensing signal is bandwidth capacity, and the intermediate network element 430 determines the round trip delay of the downstream segment according to the timestamps when the first message and the second message arrive at the intermediate network element 430, and determines the bandwidth capacity of the downstream segment based on the round trip delay. The bandwidth capacity may be a bandwidth-delay product.

[0094] Before the intermediate network element 430 determines the bandwidth capacity of the downstream segment, it is also necessary to sample the received message to obtain the status information of the first message and the status information of the second message, so as to determine the bandwidth capacity of the downstream segment in the subsequent steps. For the specific implementation method, please refer to Figure 7 Steps 710 to 720 are shown and will not be described in detail here.

[0095] Step 650: The intermediate network element 430 sets the congestion control value of the second message according to the congestion sensing signal of the downstream segment to obtain a third message.

[0096] As a possible example, the intermediate network element 430 calculates the congestion control value of the downstream segment based on the congestion perception signal of the downstream segment using a congestion control algorithm, and sets the congestion control value of the second message based on the congestion control value of the downstream segment to obtain a third message.

[0097] As a possible implementation method, taking the congestion control value as the receiving window value as an example, the intermediate network element 430 uses the bottleneck bandwidth and round-trip propagation time (BBR) congestion control algorithm to calculate the receiving window value corresponding to the downstream segment for the downstream segment. The specific implementation method is to determine the bottleneck rate as the optimal sending window value of the source end 410, set the receiving window value of the second message according to the bottleneck rate, and obtain the third message. For specific steps, please refer to Figure 7 Steps 730 to 740 are shown and will not be described in detail here.

[0098] In some possible implementations, in addition to the congestion perception signal of the downstream segment, the intermediate network element 430 can also introduce the congestion perception signal of the upstream segment to perform comprehensive calculation with the congestion perception signal of the downstream segment, thereby forming two congestion loops (such as the source end 410 to the intermediate network element 430, and the intermediate network element 430 to the destination end 450) to determine the congestion control value of the second message. For specific implementation methods, please refer to Figure 8 Steps 810 to 860 shown are not repeated here.

[0099] Optionally, the congestion control value may be carried in the second message or the third message by a window field in a standard TCP message header, where the field is used to indicate the maximum amount of transmission data that can be received (in bytes by default).

[0100] Step 660: The intermediate network element 430 forwards the third message.

[0101] As a possible example, the intermediate network element 430 forwards the third message to the source end 410 .

[0102] Step 670: The source end 410 sets the maximum message sending rate according to the congestion control value.

[0103] As a possible example, after receiving the third message, the source end 410 limits the maximum message sending rate to be less than or equal to the congestion control value, thereby achieving the effect of controlling the speed within the network. The congestion control value may be a receiving window value.

[0104] Based on the above steps 610-670, the intermediate network element adjusts the congestion control value in the data confirmation message returned by the destination end to the source end according to the congestion perception signal of the downstream segment to indicate the maximum sending rate of subsequent messages from the source end, so that the transmission control mode of the source end is adapted to the downstream segment in the case of intra-network segmentation. Since the intermediate network element obtains the congestion perception signal and sets the congestion control value of the second message on the original connection from the source end to the destination end (such as the TCP (transmission control protocol, TCP) connection), the congestion control value of the data confirmation message is tampered with when forwarding the message to perform congestion control. Therefore, the communication method does not need to terminate the original connection, and the intermediate network element does not need to add a new connection between the source end and the destination end, which reduces the process of data confirmation with the source end or the destination end when the intermediate network element re-sends and receives messages. In this way, while ensuring the transmission performance of the segmented network based on the transmission control mode adapted to the downstream segment, the memory, computing and other overheads of the intermediate network element are reduced.

[0105] Combination of the above Figure 4-Figure 6 The communication method provided by this application is generally introduced. Figure 7 How to determine the congestion sensing signal in the communication method is described in detail. Figure 7 As shown, taking the congestion perception signal as the bandwidth-delay product, the intermediate network element 430 obtains the congestion perception signals of the upstream segment and the downstream segment respectively as an example, the process of the intermediate network element 430 determining the congestion perception signal includes the following steps 710-750.

[0106] Step 710: The intermediate network element 430 records the status information of the first message.

[0107] As a possible example, when receiving the first message, the intermediate network element 430 records the state information of the first message. The state information includes at least one of a quintuple, a sequence number, and a timestamp of arrival at the intermediate network element 430.

[0108] As a possible implementation, the intermediate network element 430 periodically captures data packets sent from the source end 410 to the destination end 450 to obtain the first packet. The period of the intermediate network element 430 capturing data packets can be flexibly adjusted according to demand, such as 0.5 milliseconds, 1 millisecond, 2 milliseconds, etc.

[0109] Optionally, the intermediate network element 430 uses a network processor (NP) to periodically sample data packets sent from the source end 410 to the destination end 450, and the network processor sends the state information of the sampled first packet to the processor of the intermediate network element 430 to establish a state flow table. The state flow table is used to store the state information of the sampled packets.

[0110] Step 720: The intermediate network element 430 records the status information of the second message.

[0111] As a possible example, when receiving the first message, the intermediate network element 430 records the status information of the first message.

[0112] The difference between the above step 720 and step 710 is that the intermediate network element 430 records the status information of the second message, that is, the data confirmation message sent from the destination end 450 to the source end 410, and the status information includes at least one of a five-tuple, a confirmation sequence number, and a timestamp of arrival at the intermediate network element 430.

[0113] As a possible implementation, the intermediate network element 430 periodically captures the data confirmation messages sent from the destination end 450 to the source end 410, and determines the data confirmation message corresponding to the first message, that is, the second message, and then records the status information of the second message.

[0114] Optionally, the intermediate network element 430 determines at least one data confirmation message returned by the destination end 450 to the source end 410 according to the quintuple of the first message. The direction from the source address to the destination address in the quintuple of the at least one data confirmation message points from the destination end 450 to the source end 410.

[0115] Optionally, the intermediate network element 430 determines the second message from at least one data message according to the confirmation sequence number of the data confirmation message and the sequence number of the first message.

[0116] For example, the intermediate network element 430 determines that the second message is a data confirmation message having a confirmation sequence number greater than or equal to the sequence number of the first message and closest to the sequence number of the first message in at least one data confirmation message.

[0117] In a possible embodiment of the present application, the intermediate network element 430 normally forwards a message having a confirmation sequence number smaller than a sequence number of the first message in at least one data confirmation message, and does not record its status information.

[0118] Step 730: The intermediate network element 430 determines the round-trip delay of the downstream segment according to the status information of the first message and the second message.

[0119] As a possible example, the intermediate network element 430 calculates the difference between the timestamp when the second message arrives at the intermediate network element 430 and the timestamp when the first message arrives at the intermediate network element 430, and the obtained time difference is the round-trip delay of the downstream segment.

[0120] Optionally, after recording the round-trip delay, the intermediate network element 430 may delete the record of the state information of the first message in the state flow table.

[0121] Step 740: The intermediate network element 430 determines a congestion sensing signal of the downstream segment according to the round-trip delay.

[0122] As a possible example, the intermediate network element 430 sets a clock of the round-trip delay length, determines the fourth message received by the intermediate network element 430 at the end of the clock cycle, calculates the sequence number difference between the confirmation sequence number of the fourth message and the confirmation sequence number of the second message, and the sequence number difference is the bandwidth delay product of the downstream segment. In this embodiment, the congestion perception signal of the downstream segment is the bandwidth delay product.

[0123] Step 750: The intermediate network element 430 determines a congestion sensing signal of an upstream segment.

[0124] As a possible example, the intermediate network element 430 can obtain corresponding congestion perception signals, such as packet loss rate, explicit congestion notification, etc. according to congestion control algorithms such as Cubic and Data Center Transmission Control Protocol (DCTCP).

[0125] Steps 710 to 750 of the above embodiment of the present application are described by taking the intermediate network element 430 as a wide area border router in the operator's large customer dedicated line as an example. In another possible embodiment, the intermediate network element 430 may also be a software middleware in the wide area interconnection network of the cloud data center. When the intermediate network element 430 is a software middleware in the wide area interconnection network of the cloud data center, the difference between the manner in which the intermediate network element 430 determines the congestion perception signal and the above steps 710 to 750 is that the software middleware records the status information of the first message and the second message and determines the round-trip delay, the congestion perception signal, etc.

[0126] Based on the above steps 710 to 750, the intermediate network element 430 obtains the congestion perception signals of the upstream segment and the downstream segment in segments based on the status information of the message. In the case of near-end congestion, congestion can be perceived more quickly to avoid packet loss, thereby reducing the packet loss rate, improving the effective throughput, and reducing the tail delay; in the case of far-end congestion, signals such as the bandwidth-delay product other than the packet loss rate can be enabled to respond before packet loss occurs, thereby achieving low packet loss and high effective throughput.

[0127] Combination of the above Figure 7 How to determine the congestion sensing signal is described in detail. After the intermediate network element 430 obtains the congestion sensing signals of different network segments (such as the upstream segment and the downstream segment), it can use each congestion sensing signal to perform congestion control on the different network segments. Figure 8 As shown, taking the congestion perception signal as the bandwidth-delay product, the protocol stack of the source end 410 adopts the Linux default TCP congestion control mechanism, and the intermediate network element 430 is an example of a wide area border router in the operator's large customer dedicated line, the process of the processor of the intermediate network element 430 performing congestion control according to the congestion perception signal includes the following steps 810-860.

[0128] Step 810: The intermediate network element 430 determines a first optimal sending window value of the source end 410 by using a first congestion control algorithm according to a congestion sensing signal of the upstream segment.

[0129] As a possible example, the intermediate network element 430 determines the first optimal sending window value of the source end 410 by using the Cubic congestion control algorithm according to the packet loss rate of the upstream segment.

[0130] Step 820: The intermediate network element 430 determines a second optimal sending window value of the source end 410 by using a second congestion control algorithm according to the congestion sensing signal of the downstream segment.

[0131] As a possible example, the intermediate network element 430 determines the second optimal sending window value of the source end 410 by using the BBR congestion control algorithm according to the bandwidth delay product of the downstream segment.

[0132] Optionally, the second optimal sending window value may be equal to the bandwidth-delay product of the downstream segment.

[0133] Step 830: The intermediate network element 430 determines that the bottleneck rate of the source end 410 is the minimum value between the first optimal sending window value and the second optimal sending window value.

[0134] Step 840: The intermediate network element 430 sets a receiving window value of the second message according to the bottleneck rate to obtain a third message.

[0135] As a possible example, the intermediate network element 430 sets the receiving window value of the second message to a preset multiple of the bottleneck rate to obtain the third message. The preset multiple can be flexibly set according to demand, such as 0.5, 0.8, 1, 1.25, 1.5, 2, etc.

[0136] Step 850 : The intermediate network element 430 sends a third message to the source end 410 .

[0137] Step 860: The source end 410 sets the maximum message sending rate according to the receiving window value.

[0138] As a possible example, the source end 410 limits its own maximum message sending rate to be less than or equal to the receiving window value, thereby achieving the effect of speed control within the network.

[0139] Steps 810 to 860 of the above embodiment of the present application are described by taking the intermediate network element 430 as a wide area border router in the operator's large customer dedicated line as an example. In another possible embodiment, the intermediate network element 430 may also be a software middleware in the wide area interconnection network of the cloud data center. When the intermediate network element 430 is a software middleware in the wide area interconnection network of the cloud data center, the difference between the process of the intermediate network element 430 performing congestion control according to the congestion perception signal and the above steps 810 to 860 is that the above steps 810 to 840 are performed by the software middleware, and the protocol stack of the source end 410 adopts the BBR congestion control algorithm or the DCTCP congestion control algorithm, and calculates the first optimal sending window value according to the congestion perception signal of the upstream segment, i.e., ECN.

[0140] Based on the above steps 810-860, the intermediate network element 430 maintains two segment control loops through the congestion perception signals of the upstream segment and the downstream segment, and calculates the congestion control value using the customized algorithm of each network segment. The intermediate network element 430 takes the minimum bottleneck rate of the two segments of the network, and realizes the regulation of the message sending rate of the source end 410 by tampering with the loop data to confirm the receiving window of the message. In this way, the intermediate network element 430 can control the congestion of different network segments separately, avoid overlapping and reducing the window when congested at the same time, thereby realizing efficient utilization of available bandwidth, that is, improving network utilization. At the same time, the delay overhead of the intermediate network element 430 is reduced by an order of magnitude, and the related processing of the transmission control by the intermediate network element 430 hardly affects the normal message forwarding rate of the intermediate network element 430, thereby improving the scalability of the entire communication system 400.

[0141] Fig. 9 Schematic diagram of the structure of a possible communication device provided in this embodiment. The communication device can be used to implement the functions of the intermediate network element 430, the source end 410 and / or other devices in the above method embodiment, and thus also has the beneficial effects possessed by the above method embodiment. In this embodiment, the communication device can be as follows Figure 4 The intermediate network element 430 shown may also be a module (such as a chip) applied to a server, a router, etc.

[0142] like Fig. 9 As shown, the communication device 900 includes a sensing module 910 , a processing module 920 and a transceiver module 930 .

[0143] The communication device 900 can be used to implement the above Figure 6 In the method embodiment shown in FIG. , the functions of the intermediate network element 430 are described, and the modules included in the communication device 900 are specifically used to implement the following functions.

[0144] The sensing module 910 is used to determine a congestion sensing signal of a downstream segment, where the congestion sensing signal is used to indicate the degree of congestion of a network link. For example, the sensing module 910 is used to perform the following steps: Figure 6 Step 640 is shown.

[0145] The processing module 920 is used to set the congestion control value of the second message according to the congestion sensing signal of the downstream segment to obtain a third message, wherein the second message is a data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate the maximum message sending rate of the source end. For example, the processing module 920 is used to perform the following steps: Figure 6 Step 650 is shown.

[0146] The transceiver module 930 is used to send a third message to the source end, and the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value. Figure 6 Step 660 is shown.

[0147] In one possible implementation, the perception module 910 is specifically used to determine the congestion perception signal of the downstream segment based on the status information of the first message and the status information of the second message, the status information including at least one of the message's quintuple, sequence number, confirmation sequence number, and timestamp of arrival at the intermediate network element.

[0148] The congestion sensing signal includes at least one of round-trip delay and bandwidth capacity.

[0149] Optionally, the congestion perception signal includes bandwidth capacity, and the perception module 910 is specifically used to: determine the time difference between the first message and the second message arriving at the intermediate network element; determine the data volume of the data confirmation message returned by the destination within the time difference as the bandwidth capacity.

[0150] In one possible implementation, the perception module 910 is also used to: determine at least one data confirmation message returned by the destination end to the source end based on the quintuple of the first message, the message transmission direction indicated by the quintuple of the first message is opposite to the message transmission direction indicated by the quintuple of the at least one data confirmation message; determine the second message in at least one data confirmation message based on the confirmation sequence number of the at least one data confirmation message and the sequence number of the first message.

[0151] Optionally, the perception module 910 is specifically used to determine that a data confirmation message in at least one data confirmation message whose confirmation sequence number is greater than or equal to and closest to the sequence number of the first message is the second message.

[0152] In one possible implementation, the perception module 910 is specifically used to: obtain a fourth message when the time it takes for the second message to reach the intermediate network element is equal to the time difference; determine the difference between the confirmation number of the fourth message and the confirmation number of the second message, and the amount of data in the data confirmation message returned by the destination within the time difference is equal to the sequence number difference.

[0153] In one possible implementation, the processing module 920 is specifically used to: determine the bottleneck rate of the source end as the optimal sending window value of the source end according to the congestion perception signal of the downstream segment using the congestion control algorithm; set the receiving window value of the second message according to the bottleneck rate to obtain a third message.

[0154] Optionally, the source end to the intermediate network element is an upstream segment, and the processing module 920 is specifically used to: determine the first optimal sending window value of the source end by using a first congestion control algorithm according to the congestion perception signal of the upstream segment; determine the second optimal sending window value of the source end by using a second congestion control algorithm according to the congestion perception signal of the downstream segment; determine the bottleneck rate of the source end as the minimum value of the first optimal sending window value and the second optimal sending window value; set the receiving window value of the second message according to the bottleneck rate to obtain a third message.

[0155] Further, the processing module 920 is specifically configured to: set the receiving window value of the second message to a preset multiple of the bottleneck rate to obtain a third message.

[0156] It should be understood that the communication device 900 of the embodiment of the present invention can be implemented by a CPU, an ASIC, or a programmable logic device (PLD), and the PLD can be a complex programmable logical device (CPLD), an FPGA, a generic array logic (GAL), or any combination thereof. The communication device 900 is implemented by software Figure 6 When the communication method shown in , the communication device 900 and its various modules can also be software modules.

[0157] It should be understood that the intermediate network element 430 in the embodiment of the present application may correspond to the communication device 900 in the embodiment of the application, and may correspond to the corresponding subject in the method according to the embodiment of the present application, and the above and other operations and / or functions of each module in the communication device 900 are respectively for implementing Figure 6 For the sake of brevity, the corresponding process of the method in will not be repeated here.

[0158] The present application also provides a Fig.10The system shown in the figure includes multiple communication devices 1000, each of which includes a memory 1001, a processor 1002, a communication interface 1003 and a bus 1004. The memory 1001, the processor 1002 and the communication interface 1003 are connected to each other through the bus 1004. The communication device 1000 may be Figure 4 The intermediate network element 430, the source end 410 or the destination end 450.

[0159] The memory 1001 may be a read-only memory, a static storage device, a dynamic storage device or a random access memory. The memory 1001 may store computer instructions and a data set required to execute the computer instructions. When the computer instructions stored in the memory 801 are executed by the processor 1002, the processor 1002 and the communication interface 1003 are used to execute the communication method.

[0160] Processor 1002 may be a general-purpose central processing unit (CPU), an application specific integrated circuit (ASIC), a graphics processing unit (GPU), or any combination thereof. Processor 1002 may include one or more chips. Processor 1002 may include an AI accelerator, such as a neural processing unit (NPU). In addition, Fig.10 The example in which each communication device 1000 includes a processor 1002 is used for explanation. In specific implementation, the number and type of processors 1002 in each communication device 1000 can be set according to business requirements. The same communication device 1000 can include one or more processors. When the same communication device 1000 includes multiple processors, this application does not limit the type of processor.

[0161] The communication interface 1003 uses a transceiver module such as, but not limited to, a transceiver to implement communication between the communication device 1000 and other devices or a communication network. For example, a data message / data confirmation message can be received or sent through the communication interface 1003.

[0162] The bus 1004 may include a path for transmitting information between various components of the communication device 1000 (eg, the memory 1001 , the processor 1002 , and the communication interface 1003 ).

[0163] A communication path is established between each of the above communication devices 1000 through a communication network. Any communication device 1000 may be a computer (eg, a server) in a distributed storage system, or a computer in an edge data center, or a terminal computing device.

[0164] Each communication device 1000 may be equipped with the functions of a node such as an intermediate network element 430, for example, Figure 6 Any of the steps 610 to 670 shown, or the functions of the perception module 910, the processing module 920 and / or the transceiver module 930 in the communication device 900 are executed.

[0165] The method steps in this embodiment can be implemented by hardware or by a processor executing software instructions. The software instructions can be composed of corresponding software modules, and the software modules can be stored in random access memory (RAM), flash memory, read-only memory (ROM), programmable ROM (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, hard disks, mobile hard disks, CD-ROMs, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor so that the processor can read information from the storage medium and write information to the storage medium. Of course, the storage medium can also be a component of the processor. The processor and the storage medium can be located in an ASIC. In addition, the ASIC can be located in a terminal device. Of course, the processor and the storage medium can also exist as discrete components in a network device or a terminal device.

[0166] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instruction is loaded and executed on a computer, the process or function described in the embodiment of the present application is executed in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, a network device, a user device or other programmable device. The computer program or instruction may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer program or instruction may be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired or wireless means. 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 integrates one or more available media. The available medium may be a magnetic medium, for example, a floppy disk, a hard disk, a tape; it may also be an optical medium, for example, a digital video disc (DVD); it may also be a semiconductor medium, for example, a solid state drive (SSD). The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent modifications or replacements within the technical scope disclosed in the present application, and these modifications or replacements should be included in the protection scope of the present application. Therefore, the protection scope of the present application shall be based on the protection scope of the claims.

Claims

1. A communication method, characterized in that: Applied to an intermediate network element, the intermediate network element is connected to a source end and a destination end respectively, and the intermediate network element to the destination end is a downstream segment, including: Determining a congestion sensing signal of the downstream segment, wherein the congestion sensing signal is used to indicate a congestion level of a network link; Setting a congestion control value of a second message according to the congestion sensing signal of the downstream segment to obtain a third message, wherein the second message is a data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate a maximum message sending rate of the source end; The third message is sent to the source end, where the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value.

2. The method according to claim 1, characterized in that The determining of the congestion awareness signal of the downstream segment comprises: A congestion perception signal of the downstream segment is determined according to the status information of the first message and the status information of the second message, wherein the status information includes at least one of a quintuple of the message, a sequence number, a confirmation sequence number, and a timestamp of arrival at the intermediate network element.

3. The method according to claim 1 or 2, characterized in that: The congestion sensing signal includes at least one of round-trip delay and bandwidth capacity.

4. The method according to claim 3, characterized in that The congestion sensing signal includes the bandwidth capacity, and the determining the congestion sensing signal of the downstream segment includes: Determine a time difference between the first message and the second message arriving at the intermediate network element; The data volume of the data confirmation message returned by the destination end within the time difference is determined as the bandwidth capacity.

5. The method according to claim 4, characterized in that The method further comprises: Determining at least one data confirmation message returned by the destination end to the source end according to the quintuple of the first message, wherein the message transmission direction indicated by the quintuple of the first message is opposite to the message transmission direction indicated by the quintuple of the at least one data confirmation message; The second message is determined in the at least one data confirmation message according to the confirmation sequence number of the at least one data confirmation message and the sequence number of the first message.

6. The method according to claim 5, characterized in that The determining the second message in the at least one data confirmation message according to the confirmation sequence number of the at least one data confirmation message and the sequence number of the first message includes: Determine, among the at least one data confirmation message, a data confirmation message having a confirmation sequence number greater than or equal to and closest to the sequence number of the first message as the second message.

7. The method according to any one of claims 4 to 6, characterized in that: The determining the data volume of the data confirmation message returned by the destination end within the time difference includes: When the time taken for the second message to reach the intermediate network element is equal to the time difference, obtaining a fourth message; A sequence number difference between the confirmation sequence number of the fourth message and the confirmation sequence number of the second message is determined, and the amount of data in the data confirmation message returned by the destination end within the time difference is equal to the sequence number difference.

8. The method according to any one of claims 1 to 7, characterized in that The congestion control value is a receiving window value, and the congestion control value of the second message is set according to the congestion sensing signal of the downstream segment to obtain the third message, including: Determine, according to the congestion sensing signal of the downstream segment, the bottleneck rate of the source end as the optimal sending window value of the source end by using a congestion control algorithm; The receiving window value of the second message is set according to the bottleneck rate to obtain the third message.

9. The method according to claim 8, characterized in that The source end to the intermediate network element is an upstream segment, and the determining, according to the congestion perception signal of the downstream segment, the bottleneck rate of the source end as the optimal sending window value of the source end by using a congestion control algorithm includes: Determining a first optimal sending window value of the source end using a first congestion control algorithm according to the congestion sensing signal of the upstream segment; Determining a second optimal sending window value of the source end using a second congestion control algorithm according to the congestion sensing signal of the downstream segment; The bottleneck rate of the source end is determined to be a minimum value between the first optimal sending window value and the second optimal sending window value.

10. The method according to claim 8 or 9, characterized in that: The step of setting the receiving window value of the second message according to the bottleneck rate to obtain the third message includes: The receiving window value of the second message is set to a preset multiple of the bottleneck rate to obtain the third message.

11. A communication device, characterized in that: include: A sensing module, used to determine a congestion sensing signal of the downstream segment, wherein the congestion sensing signal is used to indicate a congestion degree of a network link; a processing module, configured to set a congestion control value of a second message according to a congestion sensing signal of the downstream segment, to obtain a third message, wherein the second message is a data confirmation message returned by the destination end according to the first message sent by the source end, and the congestion control value is used to indicate a maximum message sending rate of the source end; The transceiver module is used to send the third message to the source end, and the third message is used to instruct the source end to set the maximum message sending rate according to the congestion control value.

12. A communication device, characterized in that: The communication device comprises a memory and a processor, wherein the memory is used to store a set of computer instructions; when the processor executes the set of computer instructions, the operation steps of any one of the methods described in claims 1-10 are performed.

13. A communication system, characterized in that: The communication system includes a source end, an intermediate network element and a destination end connected in sequence, the source end is used to send a first message to the destination end, the destination end is used to return a second message to the source end according to the first message, the intermediate network element is used to obtain the first message and the second message, and execute the operation steps of any one of the methods described in claims 1-10 according to the first message and the second message.

14. A readable storage medium, characterized in that: The readable storage medium includes a computer program or instructions. When the computer program or instructions are executed on a computer, the computer is enabled to execute the operation steps of the method described in any one of claims 1 to 10.