Data processing method, device and equipment, computer readable storage medium and computer program product

By caching service data and reducing transmission rates at relay devices based on congestion notifications, the method addresses network congestion without impacting overall network performance, enhancing stability and reliability.

CN119155251APending Publication Date: 2024-12-17MASHANG CONSUMER FINANCE CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411084244.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-08-07
Publication Date
2024-12-17

AI Technical Summary

Technical Problem

Existing network congestion alleviation methods that reduce the sending rate at the sending end lead to reduced overall network throughput and efficiency, failing to address congestion in a targeted manner.

Method used

Construct a cache queue at a relay device upon receiving a congestion notification and reduce the data transmission rate based on storage information of downstream congested devices, caching service data at a reduced rate to alleviate congestion without affecting the entire network.

Benefits of technology

This approach effectively manages network congestion by reducing transmission rates only where needed, ensuring overall network throughput and efficiency while improving stability and reliability.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119155251A_ABST
    Figure CN119155251A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method, device and equipment, a computer readable storage medium and a computer program product. The method is applied to relay equipment, and comprises the following steps: in response to a first congestion notification message received from downstream congestion equipment, constructing a cache queue, and caching service data to the cache queue; acquiring data storage information of the downstream congestion device, and reducing the data transmission rate of the relay device based on the data storage information; and sending the service data in the cache queue to the downstream congestion device based on the reduced data sending rate. Through the application, the relay device can cache the service data based on the first congestion notification message and reduce the data sending rate, so that the network congestion is relieved in time, and the stability of the network is improved while the overall network throughput and transmission efficiency are ensured.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of network transmission, and in particular to a data processing method, device, equipment, computer-readable storage medium and computer program product. Background Art

[0002] During network transmission, network congestion may occur due to factors such as network traffic overload, equipment failure, and link bottlenecks. In addition, network congestion will increase network transmission delays and packet loss rates, thereby reducing network throughput and response speed. It will also cause data packet delays or losses, affecting data integrity and reliability. It will also cause business interruptions or delays, affecting business operations and production efficiency.

[0003] In the related art, the network congestion is alleviated by reducing the sending rate at the sending end, but this will lead to the problem of reduced throughput of the entire network, thereby seriously reducing the data forwarding efficiency. Summary of the invention

[0004] The embodiments of the present application provide a data processing method, apparatus, device, computer-readable storage medium, and computer program product, which can promptly alleviate network congestion and improve network stability while ensuring overall network throughput and low bit error rate.

[0005] The technical solution of the embodiment of the present application is implemented as follows:

[0006] The present application provides a data processing method, the method comprising:

[0007] In response to a first congestion notification message received from a downstream congested device, construct a cache queue and cache the service data in the cache queue;

[0008] Acquire data storage information of the downstream congested device, and reduce the data transmission rate of the relay device based on the data storage information;

[0009] Based on the reduced data sending rate, the service data in the cache queue is sent to the downstream congested device.

[0010] The present application provides a data processing device, the device comprising:

[0011] A cache module, configured to construct a cache queue in response to a first congestion notification message received from a downstream congestion device, and cache service data into the cache queue;

[0012] A speed reduction module, used for obtaining data storage information of the downstream congested device and reducing the data transmission rate of the relay device based on the data storage information;

[0013] The first sending module is used to send the service data in the cache queue to the downstream congested device based on the reduced data sending rate.

[0014] The present application provides a network device, including:

[0015] A memory for storing computer executable instructions;

[0016] The processor is used to implement the data processing method provided in the embodiment of the present application when executing the computer executable instructions stored in the memory.

[0017] An embodiment of the present application provides a computer-readable storage medium storing computer-executable instructions for causing a processor to execute the data processing method provided in the embodiment of the present application.

[0018] An embodiment of the present application provides a computer program product, including a computer program or computer executable instructions. When the computer program or computer executable instructions are executed by a processor, the data processing method provided in the embodiment of the present application is implemented.

[0019] The embodiments of the present application have the following beneficial effects:

[0020] In an embodiment of the present application, when the relay device receives the first congestion notification message from the downstream congested device, it builds a cache queue and caches the service data received from the upstream device into the cache queue, that is, it starts the cache function; then, it also reduces its own data transmission rate based on the data storage information of the downstream congested device, and sends the service data to the downstream congested device at the reduced data transmission rate, that is, the relay device reduces the transmission rate. In this way, the network congestion problem existing in the network can be handled based on the first congestion notification message, instead of directly reporting the network congestion problem to the upstream device, so that the network congestion problem can be alleviated and solved in time. In addition, the relay device reduces its own data transmission rate to the downstream congested device by caching to achieve speed reduction, thereby eliminating the network congestion problem, instead of achieving speed reduction by directly reducing the overall transmission rate at the sending end. Therefore, the speed reduction only involves the paths where the relay equipment and downstream congested devices are located, and does not involve all paths in the network. It will not lead to an overall speed reduction of all paths in the network, that is, it ensures that the throughput and transmission efficiency of the entire network are not affected, and achieves targeted speed reduction of specific paths including relay equipment and downstream congested devices, so as to improve the stability, reliability and robustness of the network, and ultimately ensure the normal and stable operation of the business. BRIEF DESCRIPTION OF THE DRAWINGS

[0021] Figure 1 It is a schematic diagram of the working principle of a display congestion notification provided by the related technology;

[0022] Figure 2 is a schematic diagram of a network architecture of a data processing system 100 provided in an embodiment of the present application;

[0023] Figure 3 is a schematic diagram of the structure of a network device 400 provided in an embodiment of the present application;

[0024] Figure 4 This is a schematic diagram of a first implementation flow of the data processing method provided in an embodiment of the present application;

[0025] Figure 5 is a schematic diagram of a first process for determining the length of a first outbound port queue provided in an embodiment of the present application;

[0026] Figure 6 It is a schematic diagram of a second implementation flow of the data processing method provided in an embodiment of the present application;

[0027] Figure 7 It is a schematic diagram of a third implementation flow of the data processing method provided in an embodiment of the present application;

[0028] Figure 8 It is a schematic diagram of a fourth implementation flow of the data processing method provided in an embodiment of the present application;

[0029] Fig. 9 It is a fifth implementation flow diagram of the data processing method provided in the embodiment of the present application;

[0030] Fig.10 This is a schematic diagram of an interactive implementation flow of data processing provided by an embodiment of the present application;

[0031] Fig.11 It is a first structural diagram of the network architecture provided in an embodiment of the present application;

[0032] Fig.12 This is a schematic diagram of an implementation process of enabling cache on an intermediate device provided in an embodiment of the present application;

[0033] Fig.13 This is a second structural diagram of the network architecture provided in an embodiment of the present application.

[0034] It should be pointed out that the above-mentioned "first" and "second" are only used to distinguish different solutions, and do not represent the degree of superiority or inferiority of the solutions or the priority in the implementation process. DETAILED DESCRIPTION

[0035] In order to make the purpose, technical solutions and advantages of the present application clearer, the present application will be further described in detail below in conjunction with the accompanying drawings. The described embodiments should not be regarded as limiting the present application. All other embodiments obtained by ordinary technicians in the field without making creative work are within the scope of protection of this application.

[0036] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0037] In the following description, the terms "first\second\third" involved are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0038] In the embodiments of the present application, the term "module" or "unit" refers to a computer program or a part of a computer program with a predetermined function, and works together with other related parts to achieve a predetermined goal, and can be implemented in whole or in part by using software, hardware (such as processing circuits or memories) or a combination thereof. Similarly, a processor (or multiple processors or memories) can be used to implement one or more modules or units. In addition, each module or unit can be part of an overall module or unit that includes the function of the module or unit.

[0039] Unless otherwise defined, all technical and scientific terms used in the embodiments of the present application have the same meanings as those commonly understood by those skilled in the art. The terms used in the embodiments of the present application are only for the purpose of describing the embodiments of the present application and are not intended to limit the present application.

[0040] The relevant data collection and processing in the embodiments of this application should be strictly in accordance with the requirements of relevant national laws and regulations when applied in examples, obtain the informed consent or separate consent of the personal information subject, and carry out subsequent data use and processing within the scope of authorization of laws and regulations and the personal information subject.

[0041] Before further describing the embodiments of the present application in detail, the nouns and terms involved in the embodiments of the present application are explained. The nouns and terms involved in the embodiments of the present application are subject to the following interpretations.

[0042] 1) Network congestion: refers to the phenomenon that the data traffic in the network exceeds the processing power or capacity of the network equipment or link, resulting in data packet delay, loss or blockage. In the case of network congestion, data packets may encounter problems such as queuing for transmission, loss or resending during transmission, thus affecting the performance and reliability of the network. Network congestion may be caused by a variety of reasons, including overloaded network traffic, bottleneck links, network equipment failures, unreasonable network topology, etc. Network congestion will lead to increased network transmission delays, increased packet loss rates, and decreased network throughput, thus affecting users' network experience and business operations. In order to avoid and alleviate network congestion, it is necessary to take measures such as reasonable network planning, increasing network bandwidth, optimizing network equipment configuration, and implementing traffic management strategies.

[0043] 2) Congestion Notification Packet (CNP): It is a network data packet used to notify other devices in the network of congestion. When a network device (such as a switch or router) detects network congestion, it may generate a congestion notification message and send it to other devices in the network to notify them about the current network congestion.

[0044] Congestion notification messages usually contain information about the location, degree, and possible causes of congestion. Devices that receive congestion notification messages can take appropriate measures to alleviate congestion based on the information, such as adjusting transmission rates, rerouting traffic, or adopting other congestion control strategies.

[0045] The purpose of congestion notification messages is to help devices in the network jointly manage network traffic to reduce congestion and improve network performance. By notifying other devices of congestion in a timely manner, network traffic can be coordinated more effectively and the impact of network congestion on users can be reduced.

[0046] 3) Destination Queue Pair (DQP): usually refers to an output queue pair on a target device (such as a switch or router) in the network, which is used to store data packets to be sent to the target device. This queue pair generally consists of a target port and a target queue. When data packets arrive at the target device, they are placed in the target queue and then sent to the target port in a first-in-first-out (FIFO) order, thus reaching the target queue of the target device. The target queue pair helps manage traffic in the network, ensures that data packets are transmitted to the target device in the correct order and rate, and effectively handles network congestion.

[0047] 4) Outbound port queue length: refers to the length of the queue on a network device (such as a switch or router) used to store packets to be sent to a specific outbound port. When packets arrive at a network device and are ready to be sent to a specific outbound port, they are placed in the corresponding outbound port queue and wait to be sent. The outbound port queue length indicates the number of packets currently stored in the queue, usually measured in packets or bytes.

[0048] An increase in the length of the egress port queue may indicate that the egress port of a network device is experiencing excessive traffic, causing packets to queue up for delivery. If the length of the egress port queue continues to increase, it may cause network congestion, affecting network performance and the reliability of data transmission. Therefore, managing and controlling the length of the egress port queue is one of the important tasks of network management to ensure the smooth transmission of network traffic and the normal operation of network devices.

[0049] 5) Congestion Threshold: refers to a threshold set by network devices when performing congestion control. When a network device detects network congestion, it will take corresponding measures to alleviate the congestion according to a certain congestion control algorithm. The congestion threshold is an important parameter used to indicate under what circumstances the network device should initiate congestion control measures.

[0050] Generally speaking, the congestion threshold indicates the degree to which the network device considers the network traffic to be close to the congestion state before congestion occurs. When the length of the egress port queue of the network device reaches or exceeds the congestion threshold, the congestion control mechanism will be triggered, such as starting the Random Early Detection (RED) algorithm, reducing the packet sending rate, etc., to prevent further deterioration of congestion.

[0051] The specific setting of the congestion threshold usually depends on factors such as network characteristics, topology, traffic patterns, and device performance. Properly setting the congestion threshold can effectively prevent and alleviate network congestion and ensure network stability and reliability.

[0052] 6) Routing table information: It is a data structure stored in network devices (such as routers and switches) to determine the forwarding path of data packets. The routing table records the mapping relationship between different destination network addresses (or destination IP addresses) and the corresponding next hop information. The next hop information usually indicates the next network device or interface that the data packet needs to pass through to reach the destination network.

[0053] The content of the routing table information includes the destination network address, subnet mask, next hop address, egress interface, etc. When a network device receives a data packet, it queries the routing table, finds the corresponding routing table entry according to the destination IP address of the data packet, and decides how to forward the data packet based on the next hop information in the routing table. If no entry matching the destination address is found in the routing table, the network device usually selects a default route to forward the data packet.

[0054] The maintenance and update of routing table information is usually completed by dynamic routing protocols (such as RIP, OSPF, BGP, etc.) or static routing configuration.

[0055] 7) Equal-cost paths: These are paths that have the same destination in the network but reach the destination through different paths. These paths may have the same cost, delay, or bandwidth, or may differ to some extent in these aspects. In routing protocols, equal-cost paths may exist due to the dynamic routing selection algorithm of the router, and the router may choose any of the paths to forward the data packet to the destination. The existence of equal-cost paths helps improve the reliability and fault tolerance of the network because if one path fails, the data packet can reach the destination through other equal-cost paths.

[0056] 8) Equal Cost Multi-Path (ECMP): refers to the fact that there are multiple links with the same path properties in the network that can load balance the data flow from the sender to the destination. Furthermore, it refers to multiple paths with the same destination and the same cost in the network. These paths are considered equal in the routing table because they have the same cost to reach the destination, that is, they have the same priority in route selection.

[0057] Equal-cost multipath can be automatically learned and configured through routing protocols or manually configured by network administrators. When a router has multiple equal-cost paths in its routing table, it can distribute data traffic to these paths based on a load balancing algorithm to improve network throughput and load balancing. The existence of equal-cost multipath can improve network reliability and fault tolerance because if a path fails, data packets can continue to be transmitted to the destination through other equal-cost paths.

[0058] 9) Congested devices: refers to specific network devices or links that prevent network traffic from being transmitted normally when congestion occurs in the network. These devices may be bottlenecks in the network, and their processing power is insufficient to cope with the current traffic load, causing data packets to queue or be lost on the device, thus causing congestion.

[0059] The congested device may be a network device such as a router, switch, firewall, server, or a network line, port, or interface in the link. In the case of network congestion, these devices may not be able to process and forward all data packets in time, resulting in increased delay, packet loss, or retransmission of data packets, thus affecting the performance and reliability of the network.

[0060] 10) Relay devices: refers to devices used to forward data packets in the network. They act as an intermediate link to transmit data from one network node to another. Relay devices are usually used to connect different networks, subnets or network segments so that data can be transmitted across these networks.

[0061] Common relay devices include routers, switches, repeaters, etc. They receive data packets from the source device and forward them to the destination device or the next relay device. The relay device is responsible for parsing the destination address and determining the forwarding path of the data packet based on the routing table or forwarding table to ensure that the data can reach the destination along the correct path.

[0062] Relay devices play an important role in connecting different networks. They can help transmit and exchange data between different networks, and achieve connectivity and accessibility of network communications. At the same time, relay devices also undertake functions such as data packet forwarding, routing selection, and flow control, which play a key role in the performance and stability of the network.

[0063] 11) Upstream device: refers to the source device or node from which data flows to the current relay device. In other words, it is the previous device or node that the data packet passes through when it flows from the source to the current relay device. In the network topology, the upstream device is located upstream of the current relay device and is responsible for transmitting the data packet to the current relay device so that the current relay device can continue to transmit it to the destination.

[0064] 12) Downstream device: refers to the target device or node of the data flow to the current relay device. In other words, it is the next device or node that the data packet will pass through when it flows from the current relay device to the destination. In the network topology, the downstream device is located downstream of the current relay device and is responsible for receiving the data packet transmitted by the current relay device and forwarding it to the next destination device or node.

[0065] 13) Remote Direct Memory Access (RDMA): is a technology that can bypass the operating system kernel (OS kernel) of a remote host to access its memory data. It is a technology used for efficient data transmission in computer networks. It allows one computer in the network to directly access the memory of another computer without the need for the central processing unit to participate in the data transmission process.

[0066] RDMA technology implements data transmission functions in the network adapter, allowing data to be copied directly from the memory of the sender to the memory of the receiver, bypassing the participation of the operating system and the central processing unit, thereby improving data transmission efficiency and reducing latency.

[0067] RDMA technology has been widely used in high-performance computing, big data analysis, cloud computing and other fields. It can improve the efficiency of data transmission, reduce system overhead and improve system performance.

[0068] 14) Remote Direct Memory Access over Converged Ethernet (RoCE): refers to the RDMA technology applied on congested Ethernet. It uses the principle of RDMA and is based on the current Ethernet to access memory data bypassing the operating system kernel of the remote host.

[0069] RoCE is a protocol that implements RDMA technology over Ethernet networks. It allows efficient remote direct memory access on Ethernet, thereby improving data transmission efficiency and reducing latency. The RoCE protocol uses the physical layer and data link layer of Ethernet, combined with RDMA technology, to implement functions similar to dedicated high-performance networks such as wireless bandwidth (InfiniBand) in the network.

[0070] 15) Explicit Congestion Notification (ECN): A protocol used to mark (i.e. notify) network element devices in the network of network congestion. ECN is a network congestion control mechanism used to help reduce packet loss and latency. When routers or switches in the network detect congestion, they can send an ECN flag to the sender instead of dropping the packet. After receiving the ECN flag, the sender can adjust the data transmission rate accordingly, thereby alleviating network congestion.

[0071] ECN is implemented by setting a special flag in the flag bit of the IP packet header. When a router or switch detects congestion, they can send the ECN flag to the sender instead of dropping the packet. After receiving a packet with the ECN flag, the sender can slow down the data transmission rate to avoid further network congestion.

[0072] Explicit congestion notification is an active feedback mechanism in network congestion control. It informs the sender of the network congestion status by sending a special flag to the sender, thereby prompting the sender to take appropriate measures to alleviate the congestion.

[0073] 16) Congestion Explicit (CE): used to indicate that the data is congested. It is a value of the ECN flag, indicating explicit congestion. When network devices (such as routers or switches) detect network congestion, they can set the ECN flag in the flag bit of the IP data packet header to indicate explicit congestion, and then send the data packet back to the sender. After the sender receives the data packet with the explicit congestion flag, it can adjust the data transmission rate according to this flag to alleviate network congestion.

[0074] Therefore, "Explicit Congestion CE" means that the network device explicitly indicates the occurrence of network congestion by setting the ECN flag to explicit congestion. This way of explicit congestion allows the sender to perceive the state of network congestion in time and take corresponding measures to adjust the data transmission rate to alleviate the impact of network congestion.

[0075] 17) Congestion Notification Message Truncation: Congestion notification messages are copied, modified, and other actions taken by intermediate network devices during network transmission. It refers to a congestion control measure taken by relay devices (such as switches or routers) when congestion notification messages are received in the network. When congestion occurs in the network, the relay device may send a congestion notification message to notify the sender to reduce the data transmission rate to reduce the network load. Congestion notification message truncation means that after receiving the congestion notification message, the relay device immediately truncates the data stream being transmitted instead of waiting for the data packets that have been sent to be transmitted. This can respond to network congestion more quickly, reduce network load, and thus improve network performance and stability.

[0076] 18) Priority Flow Control (PFC): is an Ethernet standard used to implement flow control in Ethernet networks. It allows network devices to temporarily stop or delay certain data flows by sending control frames when the network is congested to avoid packet loss and degradation of network performance. PFC is often used in data center networks, especially when using high-speed Ethernet and data center Ethernet, to ensure the reliability and stability of traffic.

[0077] 19) Data Center (DC): usually refers to the centralized processing, storage, transmission, exchange and management of information in a physical space, and computing equipment, network equipment and storage equipment are usually considered to be the key equipment of the network room. Furthermore, a data center refers to one or more facilities or places that centrally store, manage and process large amounts of data. It usually includes large servers, network equipment, storage systems and other related equipment to support the operation of various computing, storage and network services.

[0078] In order to better understand the data processing method provided in the embodiments of the present application, the data processing method in the related art and its existing shortcomings are first described.

[0079] The related technical solution is to reduce or alleviate network congestion by reducing the sending rate at the sending end. However, its disadvantages are: first, the response link to network congestion is long, resulting in untimely response; second, it leads to a decrease in the throughput of the entire network; third, it reduces the data forwarding efficiency of the entire network.

[0080] The theory and practice of remote direct memory access in data center lossless network is mainly reflected in two networks: wireless bandwidth (Infiniband) and remote direct memory access on converged Ethernet. As the implementation technology of remote direct memory access network on converged Ethernet, priority flow control and explicit congestion notification are the two main technologies used to avoid congestion packet loss.

[0081] The central idea of ​​the display congestion notification is to mark each data packet based on the DSCP field in the IP data packet header to record whether there is congestion in the I / O buffer queue where the data is located. If there is congestion, it will be marked with ECN. This message marked with ECN is called CE. Such a message will be sent from the place where it is generated to the destination of the data (that is, where the target IP address in the IP data packet is located). When the destination receives such a CE message, it will directly send a congestion notification message to the data sender. After receiving the congestion notification message, the sender will adopt the speed reduction indicator designed in advance to slow down the sending speed, thereby avoiding the possibility of network congestion caused by sending too much data.

[0082] There is an obvious defect in the implementation of related technologies, that is, in the equal-cost multi-path networking architecture, the speed reduction of a single path will bring the same speed reduction problem to other paths on the equal-cost multi-path. This situation will greatly affect the throughput of the data in the network, thereby reducing the data forwarding efficiency.

[0083] Figure 1 This is a schematic diagram of the working principle of a display congestion notification provided by the related technology, see Figure 1 The network framework for implementing the working principle of the related technology includes server 01, server 02, server 03, server 04, switch 01, switch 02, switch 03, switch 04, switch 05 and switch 06. Based on the above network framework, the working principle of displaying congestion notification in the related technology includes the following steps 11 to 17:

[0084] In step S11 , in the data center, server 01 needs to send a large amount of data to server 04 , and the data traffic will be sent out from server 01 and enter server 04 through port 48 of switch 04 .

[0085] In step S12, when the data traffic reaches the switch 01, the switch 01 will send the data out from the port 1 and the port 5 of the switch 01 with equal load respectively according to the equal cost multi-path principle with the local routing information and the equal cost multi-path.

[0086] In step S13, the data will reach switch 05 and switch 06 respectively. Switch 05 sends the data through port 3 of switch 05 according to the local route lookup. Similarly, switch 06 sends the data through port 7.

[0087] In step S14 , the data will be aggregated on switch 04 , and then switch 04 will send the traffic out of port 48 based on the local routing information, and finally send it to server 04 .

[0088] In step S15, since the data center architecture cannot achieve a 1:1 convergence ratio between a single server and a network, this may lead to congestion. Assuming that server 01 and server 02 send data to server 04 at the same time, causing the queue of the outbound interface 48 of switch 04 to be full, congestion will occur, which will lead to packet loss.

[0089] In step S16, in the ECN enabled network, an ECN watermark will be set in the egress queue, and when the traffic reaches the watermark, the ECN action will be triggered. Figure 1 After the export traffic of switch 04 reaches the water level of ECN, switch 04, also called congestion point (CP), will send a CE message to server 04; then, after server 04 receives the CE message, it indicates that the network is congested, so it will send a CNP message to the sender, which is server 01; then, based on the routing information of each device in the path, the message will eventually be sent to server 01; finally, after server 01 receives the CNP message, it will immediately slow down the data in the corresponding queue to achieve a network with no congestion and packet loss as much as possible.

[0090] The above steps S11 to S16 are to reduce the speed of the sending end by sending a CNP message to the sending end when congestion occurs at a certain location in the network, so as to reduce the probability of congestion. However, it also brings about the problem of seriously reducing the throughput of the entire network, thereby seriously reducing the data forwarding efficiency.

[0091] For equal-cost multipath networks, see Figure 1 , assuming that server 01 sends application data A to server 03 and server 04, and server 02 also sends the same application data A to server 04 at the same time. Based on this, the queue of port 48 of switch 04 will be congested, which will trigger the ECN action, and eventually cause server 01 to reduce the sending speed of application data A. On the other hand, port 47 of switch 03 has not reached the traffic bottleneck. Since the sending end server 01 has reduced the speed, the application data A sent by server 01 to server 03 will also be reduced accordingly, which will inevitably lead to a serious reduction in the efficiency of application data A transmission in the network. When the network is large enough, the resulting throughput reduction will be immeasurable.

[0092] The embodiments of the present application provide a data processing method, apparatus, device, computer-readable storage medium, and computer program product, which can timely alleviate network congestion, and improve the stability of the network while ensuring the overall network throughput and transmission efficiency. The exemplary application of the network device provided by the embodiments of the present application is described below. The network device provided by the embodiments of the present application can be implemented as a relay device with a data storage function such as a switch, a repeater, and a gateway, wherein the switch can be a storage switch and a cache switch. Below, an exemplary application when the device is implemented as a network device will be described.

[0093] See also Figure 2 , Figure 2 1 is a schematic diagram of the network architecture of the data processing system 100 provided in the embodiment of the present application. To realize supporting a data processing application, the downstream congestion device 200 is connected to the network device 400 through the network 300. The network 300 can be a wide area network or a local area network, or a combination of the two. Among them, the network device 400 is a device with downstream devices, and the downstream device of the network device 400 is also a relay device. In the embodiment of the present application, the downstream device of the network device 400 is the downstream congestion device 200. And the network device 400 is a non-congestion point, that is, the network device 400 is not a device where congestion occurs in the network. In addition, the network device 400 has the function of forwarding and caching data.

[0094] Taking the game data of a game application as an example, when the downstream congestion device 200 receives the third congestion notification message, the downstream congestion device 200 modifies the second target queue pair value in the third congestion notification message to obtain a first congestion notification message containing the first target queue pair value; and sends the first congestion notification message to the network device 400. The network device 400 is used to build a cache queue in response to the first congestion notification message received from the downstream congestion device, and cache the service data to the cache queue; obtain the data storage information of the downstream congestion device, and reduce the data transmission rate of the relay device based on the data storage information; based on the reduced data transmission rate, send the service data in the cache queue to the downstream congestion device. The embodiments of the present application can be applied to various scenarios, including but not limited to cloud technology, artificial intelligence, smart transportation, assisted driving, etc.

[0095] In an embodiment of the present application, when the network device 400 receives the first congestion notification message from the downstream congested device, it builds a cache queue and caches the service data received from the upstream device into the cache queue, that is, it starts the cache function; then, it also reduces its own data transmission rate based on the data storage information of the downstream congested device, and sends the service data to the downstream congested device at the reduced data transmission rate, that is, the relay device reduces the transmission rate. In this way, the network congestion problem existing in the network can be handled based on the first congestion notification message, instead of directly reporting the network congestion problem to the upstream device, so that the network congestion problem can be alleviated and solved in time. In addition, the relay device reduces its own data transmission rate to the downstream congested device by caching to achieve speed reduction, thereby eliminating the network congestion problem, instead of achieving speed reduction by directly reducing the overall transmission rate at the sending end. Therefore, the speed reduction only involves the paths where the relay equipment and downstream congested devices are located, and does not involve all paths in the network. It will not lead to an overall speed reduction of all paths in the network, that is, it ensures that the throughput and transmission efficiency of the entire network are not affected, and achieves targeted speed reduction of specific paths including relay equipment and downstream congested devices, so as to improve the stability, reliability and robustness of the network, and ultimately ensure the normal and stable operation of the business.

[0096] In some embodiments, the network device 400 and the downstream congestion device 200 may be directly or indirectly connected via wired or wireless communication, which is not limited in the embodiments of the present application.

[0097] See also Figure 3 , Figure 3 A schematic diagram of the structure of a network device 400 provided in an embodiment of the present application is shown in FIG. Figure 3The network device 400 shown includes: at least one processor 410, a memory 450, at least one network interface 420 and a user interface 430. The various components in the server 400 are coupled together via a bus system 440. It is understood that the bus system 440 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 440 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, the bus system 440 is not described in detail. Figure 3 Various buses are labeled as bus system 440 .

[0098] The processor 410 can be an integrated circuit chip with signal processing capabilities, such as a general-purpose processor, a digital signal processor (DSP), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc., where the general-purpose processor can be a microprocessor or any conventional processor, etc.

[0099] The user interface 430 includes one or more output devices 431 that enable presentation of media content, including one or more speakers and / or one or more visual display screens. The user interface 430 also includes one or more input devices 432, including user interface components that facilitate user input, such as a keyboard, mouse, microphone, touch screen display, camera, other input buttons and controls.

[0100] The memory 450 may be removable, non-removable, or a combination thereof. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. The memory 450 may optionally include one or more storage devices that are physically remote from the processor 410.

[0101] The memory 450 includes a volatile memory or a non-volatile memory, and may also include both volatile and non-volatile memories. The non-volatile memory may be a read-only memory (ROM), and the volatile memory may be a random access memory (RAM). The memory 450 described in the embodiments of the present application is intended to include any suitable type of memory.

[0102] In some embodiments, memory 450 can store data to support various operations, examples of which include programs, modules, and data structures, or a subset or superset thereof, as exemplarily described below.

[0103] Operating system 451, including system programs for processing various basic system services and performing hardware-related tasks, such as a framework layer, a core library layer, a driver layer, etc., for implementing various basic services and processing hardware-based tasks;

[0104] A network communication module 452, used to reach other electronic devices via one or more (wired or wireless) network interfaces 420, exemplary network interfaces 420 include: Bluetooth, Wireless Compatibility Certification (WiFi), and Universal Serial Bus (USB), etc.;

[0105] a presentation module 453 for enabling presentation of information via one or more output devices 431 (e.g., display screen, speaker, etc.) associated with the user interface 430 (e.g., a user interface for operating peripherals and displaying content and information);

[0106] The input processing module 454 is used to detect one or more user inputs or interactions from one of the one or more input devices 432 and translate the detected inputs or interactions.

[0107] In some embodiments, the device provided in the embodiments of the present application can be implemented in software. Figure 3 The data processing device 455 stored in the memory 450 is shown, which can be software in the form of a program and a plug-in, etc., including the following software modules: a cache module 4551, a speed reduction module 4552 and a first sending module 4553. These modules are logical, so they can be arbitrarily combined or further split according to the functions implemented. The functions of each module will be described below.

[0108] In other embodiments, the device provided in the embodiments of the present application can be implemented in hardware. As an example, the device provided in the embodiments of the present application can be a processor in the form of a hardware decoding processor, which is programmed to execute the data processing method provided in the embodiments of the present application. For example, the processor in the form of a hardware decoding processor can adopt one or more application specific integrated circuits (Application Specific Integrated Circuit, ASIC), DSP, programmable logic device (Programmable Logic Device, PLD), complex programmable logic device (Complex Programmable Logic Device, CPLD), field programmable gate array (Field-Programmable Gate Array, FPGA) or other electronic components.

[0109] In some embodiments, the network device or downstream congestion device can implement the data processing method provided by the embodiment of the present application by running various computer executable instructions or computer programs. For example, computer executable instructions can be commands, machine instructions or software instructions at the microprogram level. The computer program can be a native program or software module in the operating system; it can be a local (Native) application (APPlication, APP), that is, a program that needs to be installed in the operating system to run, such as a congestion detection APP; it can also be a small program that can be embedded in any APP, that is, a program that can be run only by downloading it to a browser environment. In short, the above-mentioned computer executable instructions can be instructions in any form, and the above-mentioned computer program can be an application, module or plug-in in any form.

[0110] The data processing method provided in the embodiment of the present application will be explained in combination with the exemplary application and implementation of the server provided in the embodiment of the present application.

[0111] The data processing method provided by the embodiment of the present application is described below. As mentioned above, the network device implementing the data processing method of the embodiment of the present application may be a relay device. Therefore, the execution subject of each step will not be repeatedly described below.

[0112] It should be noted that in the examples of the data processing method below, the object is game data as an example. Those skilled in the art, based on their understanding of the following text, can apply the data processing method provided in the embodiments of the present application to the processing of data sets including other types of objects.

[0113] See also Figure 4 , Figure 4 This is a schematic diagram of the first implementation flow of the data processing method provided in the embodiment of the present application. Figure 4 The steps shown are used to illustrate the data processing method provided in the embodiment of the present application. Figure 4 The execution subject is a relay device. The downstream device of the relay device is a downstream congested device, and the relay device has the function of forwarding and caching data. The relay device is not a congested device or a congested point in the network, that is, the relay device is a non-congested device in the network. Among them, a congested device refers to a network device where congestion occurs in the network, and a congested point refers to the first network device in the network where congestion occurs or the first network device in the network where congestion occurs; a non-congested device refers to a network device where congestion does not occur in the network, and can also be a network device other than a network device where congestion occurs. In addition, the data processing method is applied to a relay device in an equivalent multi-path networking architecture.

[0114] In step S101, in response to a first congestion notification message received from a downstream congested device, a cache queue is constructed, and service data is cached in the cache queue.

[0115] In the embodiment of the present application, when the data flow in the network exceeds the processing capacity of the downstream congested device, the downstream congested device will be congested, that is, network congestion will occur. At this time, the downstream congested device will send a first congestion notification message to the relay device, so as to achieve the purpose of notifying the relay device of the network congestion. Based on this, after receiving the first congestion notification message, the relay device builds a cache queue based on the first congestion notification message, and after the construction is completed, the received service data is cached in the cache queue, instead of directly transmitting the service data to the downstream congested device.

[0116] In some embodiments, the business data is sent by the sending end and sent to the relay device via the upstream device of the relay device. The business data may be game data, operation data, sales data, network data, etc.

[0117] In the embodiment of the present application, when the relay device receives the first congestion notification message, it will open its own cache function by building a cache queue to solve the problem of network congestion. The first congestion notification message can also be considered as an opening instruction for opening the cache function.

[0118] In some embodiments, the first congestion notification message includes a first target queue pair value, and a cache queue can be constructed based on the first target queue pair value in the first congestion notification message. Based on this, the cache queue can be constructed by downloading S1011 and step S1012, which is described in detail below.

[0119] In step S1011 , a first outbound port queue length is determined based on a first target queue pair value.

[0120] In some embodiments, the first congestion notification message carries a congestion flow identifier. Figure 5 The above step S1011 can be implemented by the following steps S111 to S114, which are described in detail below:

[0121] In step S111, a congestion flow identifier in the first congestion notification message is obtained.

[0122] In an embodiment of the present application, the congestion flow identifier is used to identify the data flow affected by congestion. It can be a specific identifier or field used to uniquely identify the congestion flow. The representation of the congestion flow identifier depends on the network protocol and congestion control mechanism adopted. Exemplarily, the congestion flow identifier can be abcd.

[0123] In some embodiments, any congestion notification message will carry a congestion flow identifier, which can be recorded as a congestion flow identifier, so as to indicate to the sender which data flows are affected by the congestion. There are usually the following ways to carry the congestion flow identifier in the CNP message:

[0124] Method 1, source address identification: CNP messages can identify data flows affected by congestion by specifying source addresses or source ports. In this way, the sender can identify the traffic affected by congestion based on the source address or source port and take corresponding measures to adjust the transmission rate.

[0125] Mode 2, Destination address identification: CNP messages can also identify data flows affected by congestion by specifying a destination address or destination port. The sender can identify the traffic affected by congestion based on the destination address or destination port and take appropriate measures to adjust the transmission rate.

[0126] Mode 3, Flow Identification: CNP messages can carry flow identification information for identifying specific data flows affected by congestion. In this way, the sender can identify the traffic affected by congestion based on the flow identification and adjust the transmission rate accordingly.

[0127] Mode 4, priority identification: CNP messages can also carry priority identification to indicate the priority of the data flow affected by congestion. In this way, the sender can identify the high-priority traffic affected by congestion based on the priority identification and adjust its transmission rate first.

[0128] In general, the congestion notification message can indicate to the sender the data flow affected by congestion by carrying the identifier of the congested traffic, and help the sender take corresponding measures to adjust the transmission rate to alleviate network congestion.

[0129] Based on this, the corresponding congestion flow identifier can be obtained through the actual identification method in the first congestion notification message.

[0130] In step S112, based on the congested traffic identifier, the number of equivalent-cost paths corresponding to the congested traffic identifier is obtained from the routing table information.

[0131] In the embodiment of the present application, the number of equal-cost paths refers to the number of paths of equal-cost multipaths.

[0132] In some embodiments, the routing table stores all forwarding paths including relay devices, based on which the first transmitter and the first destination of the congested traffic are first determined based on the congested traffic identifier; then, a candidate path including the first transmitter and the first destination is determined from all forwarding paths; finally, multiple paths with the same cost are determined from the candidate paths, and the number of the multiple paths with the same cost is the number of equivalent paths.

[0133] In step S113, a ratio of the first target queue pair value to the number of equal-cost paths is determined.

[0134] In the embodiment of the present application, the first target queue pair value is used as the dividend, and the number of equal-cost paths is used as the divisor, and the ratio of the first target queue pair value to the number of equal-cost paths is obtained by a division operation.

[0135] In step S114, based on the ratio, the first egress port queue length is determined.

[0136] In some embodiments, the comparison value may be rounded to obtain the first outbound port queue length. Alternatively, the comparison value may be rounded to obtain a rounded result, and then the rounded result is multiplied by a preset third coefficient, and the multiplied result is rounded to obtain the first outbound port queue length. The preset third coefficient is a positive number less than 1. Exemplarily, the third coefficient is 0.5, 0.6, etc.

[0137] Through the above steps S111 to S114, the first egress port queue length is determined based on the ratio of the first target queue pair value to the number of equivalent paths. Since the number of equivalent paths in the networking architecture of equal-cost multi-path is greater than 1, the first egress port queue length obtained is less than the first target queue pair value. This is in line with the actual networking situation that the more upstream the device is, the smaller the need for caching data is. That is, by reducing the first target queue pair value uploaded by the downstream congested device, the first egress port queue length of the relay device is obtained. The first egress port queue length matches the actual network situation of the network, that is, the first egress port queue length with high accuracy can be obtained.

[0138] The description will continue with step 1011 above.

[0139] In step S1012, a cache queue is constructed with the first egress port queue length as the queue length.

[0140] In the embodiment of the present application, the first egress port queue length is determined as the queue length of the cache queue, that is, a cache queue having a size equal to the first egress port queue length is constructed.

[0141] Through the above steps S1011 and S1012, the first egress port queue length can be determined with high accuracy, and a cache queue with a size equal to the first egress port queue length can be constructed to provide guarantee for subsequent data storage and reduction of data transmission rate.

[0142] In some embodiments, before constructing the cache queue, it is necessary to determine whether the cache startup condition is met based on the first congestion notification message, and if it is determined that the cache startup condition is met, the cache queue is constructed; if it is determined that the cache startup condition is not met, the process is directly terminated without constructing the cache queue. That is, before executing the "constructing the cache queue" in the above step S101, the following steps S001 to S004 can also be executed, which are described in detail below.

[0143] In step S001, a first target queue pair value in a first congestion notification message is obtained.

[0144] In the embodiment of the present application, the first congestion notification message includes a first target queue pair value, and the first target queue pair value can be obtained from the first congestion notification message based on an identifier of the first target queue pair.

[0145] In some embodiments, the first target queue pair value is used to indicate the size of the cache queue of the downstream congested device, that is, the first target queue pair value is used to characterize the number of data packets that can be stored in the cache queue of the downstream congested device. The first target queue pair value corresponds to the downstream congested device, that is, the first target queue pair value reflects the ability of the downstream congested device to cache data packets. In other words, when the data flow in the network exceeds the processing capacity of the downstream congested device, it is considered that network congestion occurs, and after receiving the data packet, the downstream congested device will first cache the business data and then send out the cached business data.

[0146] In some embodiments, the downstream congested device refers to the next device that the service data passes through when flowing from the relay device to the destination end, and the downstream congested device is located downstream of the relay device. The downstream congested device can be a device of the same type as the relay device, or a device of a different type from the relay device. Exemplarily, the downstream congested device can be a switch, a repeater, a gateway, etc.

[0147] In step S002, it is determined whether the first target queue pair value is a default value.

[0148] In some embodiments, when the first target queue pair value is the default value, it indicates that the downstream congested device has not modified the third congestion notification message it has received. At this time, the first congestion notification message and the third congestion notification message are the same, wherein the default value may be 0x000011. In this case, the relay device cannot know whether the downstream congested device has enabled the cache function and the size of the cache queue of the downstream congested device. The downstream congested device may have enabled the cache function or may not have enabled the cache function. In this case, the relay device does not have a basis for building a cache queue or enabling the cache function, so it does not build a cache queue, and also determines that the building condition or cache startup condition is not met, i.e., it enters step S003.

[0149] In some embodiments, when the first target queue pair value is not the default value, it indicates that the downstream congested device has modified the second target queue pair value in the third congestion notification message received by itself, that is, the second target queue pair value in the third congestion notification message is modified to the first target queue pair value, and the first congestion notification message is obtained. At this time, the first congestion notification message is different from the third congestion notification message. The same. In this case, the relay device can determine that the downstream congested device has turned on the cache function and the size of the cache queue of the downstream congested device based on the first target queue pair value in the first congestion notification message. In this case, the relay device can build its own cache queue based on the first target queue pair value, that is, turn on the cache function based on the first target queue pair value, and at the same time determine that the construction condition or cache startup condition is met, that is, enter step S004.

[0150] In step S003, it is determined that the cache startup condition is not met, and the process ends.

[0151] Here, when the first target queue pair value is the default value, the relay device has no basis for building a cache queue or enabling the cache function, and does not build a cache queue, and it is considered that the building condition or cache startup condition is not met. The building condition is equivalent to the cache startup condition.

[0152] In step S004, it is determined whether a cache start condition is satisfied.

[0153] Here, when the first target queue pair value is not the default value, the relay device can build its own cache queue based on the first target queue pair value, that is, enable the cache function based on the first target queue pair value. At this time, it is considered that the construction condition or cache startup condition is met.

[0154] In the embodiment of the present application, after determining that the cache startup condition is met, a cache queue is constructed.

[0155] In some embodiments, the above steps S001 to S004 may be executed after "in response to a first congestion notification message received from a downstream congested device" in the above step S101, that is, after receiving the first congestion notification message, the above steps S001 to S004 are executed, and when it is determined that the cache conditions are met, a cache queue is constructed.

[0156] Through the above steps S001 to S004, it is determined whether the cache startup condition is met based on the first target queue pair value in the first congestion notification message, and the cache queue is rebuilt if the cache startup condition is met. The embodiment of the present application does not directly build the cache queue based on the first target queue pair value, so as to ensure the orderliness of the construction of the cache queue; and builds the cache queue based on the first target queue pair value, so as to ensure the rationality and accuracy of the cache queue size.

[0157] In step S102, data storage information of the downstream congested device is obtained, and the data transmission rate of the relay device is reduced based on the data storage information.

[0158] In the embodiment of the present application, the data storage information of the downstream congested device refers to the information of the service data stored in the cache queue of the downstream congested device, and the data storage information may include the first data volume and the first cache threshold of the cached data, and the data transmission rate of the relay device may be reduced based on the data storage information. At this time, the target speed reduction coefficient may be determined based on the first data volume and the first cache threshold, and then the data transmission rate may be reduced based on the target pixel coefficient.

[0159] In some embodiments, the queue size of the cache queue of the downstream congested device can also be obtained, and then the target speed reduction coefficient is determined based on the data storage information and the queue size, and then the data transmission rate is reduced based on the target pixel coefficient.

[0160] In some embodiments, the cache information of the downstream congested device includes a first data volume and a first cache threshold of the cached data. Based on this, the "reducing the data sending rate of the relay device based on the data storage information" in the above step S102 can be achieved through the following steps S1021 to S1024, which are described in detail below.

[0161] In step S1021, a preset mapping table and a data transmission rate of the relay device are obtained.

[0162] In an embodiment of the present application, a preset mapping table stores a mapping relationship between a cache ratio interval of a downstream congested device and a speed reduction coefficient.

[0163] In some embodiments, the cache ratio interval refers to the interval where the cache ratio is located. For example, the cache ratio can be 15%, 30%, 75%, 90%, etc., and the corresponding cache ratio interval can be [0, 20%), [20%, 40%), [60%, 80%) and [80%, 100%), where the cache ratio can refer to the ratio of the first data volume to the first cache threshold. The speed reduction coefficient refers to the reduction in the data transmission rate. For example, a speed reduction coefficient of 35% means that the data transmission rate is reduced by 35%, that is, reduced to the original 65%.

[0164] Exemplarily, the mapping relationship stored in the preset mapping table may be as shown in Table 1 below.

[0165] Table 1 Mapping relationship between cache ratio interval and speed reduction coefficient in preset mapping table

[0166] Cache ratio range Speed ​​reduction factor [0,20%) 5% [20%,40%) 15% [40%,60%) 25% [60%,80%) 35% [80%,100%) 50%

[0167] In some embodiments, the cache queue of the downstream congested device may correspond to a first cache threshold, and the cache queue of the downstream congested device may also correspond to multiple first cache thresholds, where each cache threshold is related to the data type of the cached data, that is, cached data of different data types may correspond to different first cache thresholds.

[0168] In step S1022, a cache ratio is determined based on the first data volume and the first cache threshold.

[0169] In the embodiment of the present application, the ratio of the first data volume to the first cache threshold may be determined first, and then the ratio may be determined as the cache ratio. The product of the ratio and the preset first weight may also be determined as the cache ratio.

[0170] In step S1023, the target cache ratio interval to which the cache ratio belongs is determined from the preset mapping table, and a target speed reduction coefficient corresponding to the target cache ratio interval is determined.

[0171] Continuing with the above example, assuming that the cache ratio is 75%, see Table 1, the target cache ratio range is [60%, 80%), and the target speed reduction factor is 35%.

[0172] In step S1024, the data transmission rate of the relay device is reduced by using the target speed reduction coefficient to obtain a reduced data transmission rate.

[0173] In some embodiments, the product of the target speed reduction coefficient and the data transmission rate can be determined as the speed reduction value, and then the difference between the data transmission rate and the speed reduction value is determined as the reduced data transmission rate. Alternatively, the product of the target speed reduction coefficient and the data transmission rate can be first determined, and then the product of the product and the preset second weight is determined as the speed reduction value, and finally the difference between the data transmission rate and the speed reduction value is determined as the reduced data transmission rate.

[0174] Continuing with the above example, assuming that the target speed reduction factor is 35%, and the data transmission rate is recorded as v, the reduced data transmission rate is 0.65v.

[0175] Through the above steps S1021 to S1024, the data transmission data of the relay device can be adjusted in real time and dynamically based on the data storage information and preset mapping table of the downstream congested device. And according to the data storage situation of the downstream congested device, a corresponding speed reduction coefficient is adopted instead of a fixed speed reduction coefficient. Since the data storage situation of the downstream congested device can reflect the degree of network congestion in real time, it is possible to reduce the data transmission rate based on the degree of network congestion, so as to alleviate network congestion in a timely and efficient manner.

[0176] In step S103, based on the reduced data transmission rate, the service data in the buffer queue is sent to the downstream congested device.

[0177] In an embodiment of the present application, the data sending rate is adjusted to a reduced data sending rate, and the service data in the cache queue is sent to the downstream congested device at the reduced data sending rate to achieve the purpose of reduced speed sending, thereby alleviating network congestion.

[0178] Through the above steps S101 to S103, when the relay device receives the first congestion notification message from the downstream congested device, it builds a cache queue and caches the service data received from the upstream device into the cache queue, that is, it starts the cache function; then, it also reduces its own data transmission rate based on the data storage information of the downstream congested device, and sends service data to the downstream congested device at the reduced data transmission rate, that is, the relay device reduces the transmission rate. In this way, the network congestion problem existing in the network can be handled based on the first congestion notification message, instead of directly reporting the network congestion problem to the upstream device, so that the network congestion problem can be alleviated and solved in time. In addition, the relay device reduces its own data transmission rate to the downstream congested device by caching to achieve speed reduction, thereby eliminating the network congestion problem, rather than directly reducing the overall transmission rate at the sending end. This will not lead to an overall speed reduction of all paths in the network, which means that the throughput and transmission efficiency of the entire network are not affected, and targeted speed reduction is achieved for specific paths including relay devices and downstream congested devices, so as to improve the stability, reliability and robustness of the network, and ultimately ensure the normal and stable operation of the business.

[0179] In some embodiments, during the process of caching the data sent by the upstream device, it is also determined in real time whether the congestion message reporting condition is met. Figure 6 , Figure 6 2 is a schematic diagram of a second implementation flow of the data processing method provided in an embodiment of the present application. After the above step S103, the following steps S104A to S106A may also be performed:

[0180] In step S104A, when it is determined based on the first egress port queue length that the congestion packet reporting condition is met, a third target queue pair value is determined based on the first coefficient and the first egress port queue length.

[0181] In some embodiments, a second data volume and a second congestion threshold of cached data in a cache queue of a relay device are obtained, where the second congestion threshold is obtained by weighting the length of the first output port queue using a preset second coefficient; when the second data volume exceeds the second congestion threshold, it is determined that the congestion message reporting condition is met.

[0182] In some embodiments, the second coefficient is set in advance, and the second coefficient is an integer less than 1. For example, the second coefficient is 0.7, 0.75, 0.8, etc. Based on this, the product of the second coefficient and the first egress queue length can be determined as the second congestion threshold.

[0183] In some embodiments, it is also periodically determined whether the second data volume exceeds the second congestion threshold. When the second data volume exceeds the second congestion threshold, it is determined that the congestion message reporting conditions are met; and when the second data volume is less than or equal to the second congestion threshold, it is determined that the congestion message reporting conditions are not met.

[0184] In some embodiments, a method of obtaining a second amount of data cached in a cache queue of a relay device includes:

[0185] Method 1: Query cache status: Query cache status information through the management interface or command line interface of the network device. The network device provides commands or API interfaces for viewing cache status and statistical information, and the amount of cached data can be obtained through these interfaces.

[0186] Method 2: Check cache utilization: Check cache utilization and usage. By checking cache utilization in real time, you can understand the amount of data currently stored in the cache and make adjustments as needed.

[0187] Method 3: Count cache data: Regularly count and analyze the data in the cache. By counting the amount of data stored in the cache, you can understand the usage and trend of the cache and optimize and adjust it as needed.

[0188] Method 4: Use detection tools: Use specialized network detection tools to detect and manage cache data. Network detection tools provide functions for detecting cache status and performance. You can use these tools to obtain the amount of cached data.

[0189] Method 5, triggering alarms and notifications: Set up alarm and notification mechanisms to trigger alarms when the amount of data stored in the cache reaches a preset threshold. With timely alarms and notifications, abnormalities in the amount of data in the cache can be discovered and handled in a timely manner.

[0190] Any of the above five methods can be used to obtain the second data volume of the cached data, and to detect and manage the cache status in a timely manner to ensure network performance and stability.

[0191] In some embodiments, after determining that the conditions for reporting a congested message are met, the method for determining the third target queue pair value can be: obtaining a preset first coefficient, wherein the first coefficient is a rational number between 0 and 1; and determining the third target queue pair value based on the first coefficient and the first output port queue length.

[0192] In some embodiments, the first coefficient is a value set in advance. For example, the first coefficient may be 1, 0.9, 0.85, etc.

[0193] In some embodiments, the first coefficient may be used to weight the first egress port queue length to obtain a weighted result, and then the weighted result is rounded to obtain the third target queue pair value. Continuing with the above example, when the first coefficient is 1, it is equivalent to directly determining the first egress port queue length as the third target queue pair value.

[0194] In some embodiments, if it is determined based on the first egress port queue length that the congestion message reporting condition is not met, the service data in the cache queue continues to be sent to the downstream congested device at a reduced data sending rate, that is, the above step S103 continues to be executed.

[0195] In step S105A, the first target queue pair value in the first congestion notification message is updated by using the third target queue pair value to obtain a second congestion notification message.

[0196] In some embodiments, the first target queue pair value in the first congestion notification message is replaced with the third target queue pair value to update the first target queue pair value in the first congestion notification message, thereby obtaining a second congestion notification message. In this way, when network congestion occurs in the network, the non-congested point does not mechanically transmit the received first congestion notification message to the upstream device, but modifies the first congestion notification message to obtain a second congestion notification message that matches the performance and function of the upstream device, and then sends the second congestion notification message to the upstream device, thereby improving the stability of the overall network.

[0197] In step S106A, the second congestion notification message is sent to the upstream device, so that the upstream device enables buffering based on the second congestion notification message.

[0198] In some embodiments, the upstream device can be a transmitter or a relay device. In short, the upstream device is the previous device or node that the data packet passes through when flowing from the source to the relay device. In the network topology, the upstream device is located upstream of the relay device.

[0199] In some embodiments, after the upstream device receives the second congestion notification message, similar to the relay device receiving the first congestion notification message, the upstream device also builds a cache queue, turns on the cache function, performs a speed reduction, and sends service data to the relay device at the reduced data transmission rate. Therefore, the execution process of the upstream device can refer to the above steps S101 to S103.

[0200] Through the above steps S104A to S106A, when the amount of cached data exceeds the congestion threshold, that is, when the cached data is about to fill up or overflow the first port queue, it indicates that the relay device cannot solve the network congestion, and it is determined that the congestion message reporting condition is met. Based on this, the third target queue pair value is determined based on the length of the first port queue; then the first target queue pair value in the first congestion notification message is modified based on the third target queue pair value to obtain the second congestion notification message; finally, the second congestion notification message is reported to the upstream device. That is, the first congestion notification message received by itself will be modified to obtain a modified congestion notification message, that is, the second congestion notification message, and the second congestion notification message will be uploaded to the upstream device so that the upstream device also turns on the cache.

[0201] In some embodiments, after the above step S103, it is also detected in real time whether a non-congestion notification message transparently transmitted by a downstream congested device is received. Figure 7 , Figure 7 This is a third implementation flow diagram of the data processing method provided in an embodiment of the present application. After the above step S103, the following steps S104B to S106B will also be executed, which are described in detail below.

[0202] In step S104B, it is determined whether a non-congestion notification message transparently transmitted by a downstream congested device is received.

[0203] In some embodiments, similar to the above-mentioned first congestion notification message, the non-congestion notification message also carries a congestion identifier to characterize the non-congestion notification message as a non-congestion type notification message, so as to achieve the purpose of notifying the network that congestion has been eliminated. Exemplarily, the congestion identifier can be a target queue pair value in the non-congestion notification message. Since the target queue pair value is an initial value at this time, the non-congestion notification message can be characterized as a non-congestion type notification message. That is, each notification message carries a congestion identifier, and the congestion identifier can be a target queue pair value included. When the target queue pair value included is an initial value, the notification message is characterized as a non-congestion notification message; and when the target queue pair value included is not an initial value, the notification message is characterized as a congestion notification message.

[0204] In some embodiments, if no non-congestion notification message is received, it indicates that network congestion still exists, and the process returns to step S103; if a non-congestion notification message is received transparently from a downstream device, it indicates that network congestion has been eliminated, and the process proceeds to step S105B.

[0205] In step S105B, the cache function is disabled.

[0206] At this point, if the network congestion has been eliminated, the data cache function is stopped, and the cached service data is sent to the downstream congested device.

[0207] In step S106B, when there is no cached data in the cache queue, the first egress port queue length is updated to a preset length.

[0208] In some embodiments, after disabling or closing its own cache function, service data is no longer cached. At this time, according to the first-in-first-out principle of service data, service data is sent to the downstream congested device until there is no service data in the cache queue, that is, when the cache queue is empty, the first output port queue length is reset or updated to a preset length, wherein the preset length can be 0. That is, the cache queue is destroyed.

[0209] Through the above steps S104B to S106B, when the network congestion is eliminated, a non-congestion notification message transmitted by the downstream congested device will be received. Based on this, on the one hand, the cache function is disabled, that is, the caching of data is stopped, thereby restoring real-time data transmission and restoring the real-time nature of the transmitted data; on the other hand, the queue length of the first output port is also updated to the preset length.

[0210] In some embodiments, whether the congestion message reporting conditions are met can be determined in real time while the non-congestion notification message can be detected in real time, that is, the above steps S104B to S106B are executed while executing the above steps S104A to S106A.

[0211] In other embodiments, in order to report congestion in time and avoid worsening of congestion, the above steps S104A to S106A may be performed first, and then the above steps S104B to S106B may be performed.

[0212] In some other embodiments, in order to promptly resume the real-time transmission of data, the above steps S104B to S106B may be performed first, and then the above steps S104A to S106A may be performed.

[0213] In the embodiment of the present application, the execution order of the above steps S104A to S106A and steps S104B to S106B is not limited.

[0214] In some embodiments, see Figure 8 , Figure 8 This is a schematic diagram of the fourth implementation flow of the data processing method provided in the embodiment of the present application. Figure 8 The steps shown are used to illustrate the data processing method provided in the embodiment of the present application. Figure 8The execution subject is a downstream congested device, which is a relay device in an equal-cost multi-path networking architecture.

[0215] In step S201, when the downstream congestion device is a congestion point where congestion occurs, a cache function is started.

[0216] In some embodiments, when the downstream congested device is a congested device where congestion occurs, the downstream congested device may be the first congested point in the network where network congestion occurs and is discovered. When network congestion occurs in the downstream congested device, the cache function is automatically turned on.

[0217] In some embodiments, when the downstream congested device is not a congestion point, it is characterized that the downstream congested device is a relay device where network congestion occurs after the congestion point in the network, and the above steps S101 to S103 are executed.

[0218] In some embodiments, before the above step S201, it can be determined whether the downstream congested device is a congestion point. Based on this, before the above step S201, see Fig. 9 , Fig. 9 This is a fifth implementation flow diagram of the data processing method provided in the embodiment of the present application. The following steps S21 to S23 may also be performed, which are described in detail below:

[0219] In step S21, the length of the second egress port queue and the number of data buffered in the second egress port queue are obtained.

[0220] In some embodiments, each relay device is configured with a corresponding initial egress port queue length, wherein the initial egress port queue length corresponding to the downstream congested device is the second egress port queue length.

[0221] In some embodiments, the implementation of step S104A described above may be referred to to determine the number of data buffered in the second egress port queue.

[0222] In step S22, the queue occupancy rate is determined based on the second egress port queue length and the number of data.

[0223] In some embodiments, the ratio of the second egress port queue length to the number of data is determined as the queue occupancy rate, and the queue occupancy rate is used to represent the proportion of cached data to the entire second egress port queue.

[0224] In step S23, when the queue occupancy exceeds a preset occupancy threshold, the downstream congested device is determined to be a congestion point.

[0225] In some embodiments, the preset occupancy threshold is a value set in advance, and illustratively, the occupancy threshold may be 70%, 75%, 80%, etc. Based on this, when the queue occupancy exceeds the occupancy threshold, it is determined that there is network congestion in the current network, and the downstream congested device is a congestion point; and when the queue occupancy does not exceed the occupancy threshold, it is determined that there is no network congestion in the network.

[0226] Through the above steps S21 to S23, network congestion and congested devices in the network can be discovered in time.

[0227] Continue to refer Figure 8 , continue with the above step S201 to continue the description.

[0228] In step S202, a third congestion notification message sent by a destination device is received.

[0229] In the embodiment of the present application, the third congestion notification message is sent by the destination device when it determines that the network is in a congested state.

[0230] In some embodiments, the congestion notification message sent by the destination end can be considered as an initial congestion notification message, that is, the third congestion notification message is an initial congestion notification message, and the third congestion notification message is used to synchronize network congestion to other devices in the network except the congested device in a timely manner.

[0231] In some embodiments, in order to intervene in network congestion in a timely manner, the downstream congested device will synchronize the congestion situation to the destination device. Fig. 9 Before the above step S202, the following steps S24 to S26 may also be performed, which are described in detail below.

[0232] In step S24, a data packet to be sent carrying a congestion flag is obtained.

[0233] In some embodiments, when data sent by an upstream device is received, header information is added before the data to obtain a data packet to be sent that carries a congestion flag, wherein the header information carries the congestion flag.

[0234] In step S25, the congestion flag in the data packet to be sent is set to an enabled state to obtain a modified data packet to be sent.

[0235] In some embodiments, the congestion flag bit is in a disabled state by default, and the congestion flag bit may be two bits. Exemplarily, the disabled state may be represented as 00.

[0236] In the embodiment of the present application, when the downstream congested device is a congested device that is congested, the congestion flag in the data packet to be sent is updated from a disabled state to an enabled state to obtain a modified data packet to be sent. Continuing with the above example, the enabled state can be represented as 11.

[0237] In step S26, the modified data packet to be sent is sent to the destination device, so that the destination device generates a third congestion notification message based on the modified data packet to be sent.

[0238] In some embodiments, the downstream congestion device publishes the network congestion to the destination device while sending the data packet. Based on this, the destination device generates a third congestion notification message based on the modified data packet to be sent, and the third congestion notification message carries a congestion flow table identifier, that is, the third congestion notification message can not only notify the existence of congestion in the network, but also point out the congested traffic that causes the congestion.

[0239] Through the above steps S21 to S26, when network congestion occurs, the network congestion message can be published to the destination device by enabling the congestion flag in the data packet to be sent, and the destination device can be successfully triggered to generate and send the third congestion notification message.

[0240] In step S203, the value of the second target queue pair in the third congestion notification message is modified to obtain a first congestion notification message.

[0241] In some embodiments, the above step S203 can be implemented by the following steps S2031 and S2032, which are described in detail below.

[0242] In step S2031, the second outbound port queue length of the own is obtained from the own flow table information.

[0243] In some embodiments, the initial outbound port queue length corresponding to the downstream congested device is the second outbound port queue length. The flow table information stores the initial outbound port queue length of the downstream congested device.

[0244] In step S2032, the second target queue pair value in the third congestion notification message is updated using the second outbound port queue length to obtain a first congestion notification message.

[0245] In some embodiments, the second target queue pair value in the third congestion notification message is replaced with the second egress port queue length, thereby modifying the third congestion notification message and obtaining the first congestion notification message.

[0246] Based on this, after the above step S203, the downstream congestion device also sends the first congestion notification message to the upstream device, so as to achieve the purpose of transmitting network congestion and prompting the upstream device to open the cache.

[0247] Through the above steps S201 to S203, when network congestion occurs, the cache function is started, and the congested device will also synchronize the network congestion to the destination device by enabling the congestion identification bit in the data packet to be sent; and modify the received third congestion notification message to obtain the first congestion notification message, so as to enable the cache function of the upstream device through the first congestion notification message, so as to timely discover the network congestion and indicate the solution to the network congestion in time.

[0248] In some embodiments, after the above step S203, it is also detected in real time whether a non-congestion notification message sent by the destination device is received. When it is detected that a non-congestion notification message sent by the destination device is received, the cache function is disabled in response to the non-congestion notification message sent by the destination device, wherein the non-congestion notification message is sent by the destination device when it is determined that the network is in a non-congested state; the cache data cached by itself is sent to the downstream device; and the queue length of the second output port is updated to a preset length.

[0249] In some embodiments, the implementation process of receiving the non-congestion notification message, disabling the buffering function, sending the buffered data, and updating the second egress port queue length may refer to the above steps S104B to S106B.

[0250] See also Fig.10 , Fig.10 This is a schematic diagram of an interactive implementation process of data processing provided by an embodiment of the present application, which is applied to a relay device, an upstream device of the relay device, a downstream congested device and a destination device, wherein the destination device is a downstream device of the downstream congested device, and the upstream device of the relay device is recorded as an upstream device. It includes the following steps S301 to S315, which are described in detail below:

[0251] In step S301, the downstream congested device obtains the length of the second egress port queue and the number of data buffered in the second egress port queue; and determines the queue occupancy based on the length of the second egress port queue and the number of data.

[0252] In some embodiments, the implementation process of the above step S301 is similar to the implementation process of the above step S21 and the above step S22. Therefore, the implementation process of the above step S301 can refer to the implementation process of the above step S21 and the above step S22.

[0253] In step S302, when the queue occupancy rate exceeds a preset occupancy rate threshold, the downstream congested device determines that the downstream congested device is a congestion point and starts caching.

[0254] In some embodiments, the implementation process of the above step S302 is similar to the implementation process of the above step S23 and the above step S201. Therefore, the implementation process of the above step S302 can refer to the implementation process of the above step S23 and the above step S201.

[0255] In step S303, the downstream congested device obtains a data packet to be sent that carries a congestion flag, and sets the congestion flag in the data packet to be sent to an enabled state, thereby obtaining a modified data packet to be sent.

[0256] In some embodiments, the implementation process of the above step S303 is similar to the implementation process of the above step S24 and the above step S25. Therefore, the implementation process of the above step S303 can refer to the implementation process of the above step S24 and the above step S25.

[0257] In step S304, the downstream congested device sends the modified data packet to be sent to the destination device.

[0258] In step S305, the destination device generates a third congestion notification message based on the modified data packet to be sent.

[0259] In step S306, the destination device sends the third congestion notification message to the downstream congested device.

[0260] In step S307, the downstream congestion device modifies the value of the second target queue pair in the third congestion notification message to obtain a first congestion notification message.

[0261] In some embodiments, the implementation process of the above step S307 is similar to the implementation process of the above step S203, and therefore, the implementation process of the above step S307 can refer to the implementation process of the above step S203.

[0262] In step S308, the downstream congested device sends a first congestion notification message to the relay device.

[0263] In step S309, the relay device builds a cache queue and caches the service data in the cache queue; it also obtains the data storage information of the downstream congested device and reduces the data transmission rate based on the data storage information; and based on the reduced data transmission rate, sends the service data in the cache queue to the downstream congested device.

[0264] In some embodiments, the implementation process of the above step S309 is similar to the implementation process of the above step S101 to the above step S103, and therefore, the implementation process of the above step S309 can refer to the implementation process of the above step S101 to the above step S103.

[0265] In step S310, when it is determined based on the first egress port queue length that the congestion message reporting condition is met, the relay device determines a third target queue pair value, and uses the third target queue pair value to update the first target queue pair value in the first congestion notification message to obtain a second congestion notification message.

[0266] In some embodiments, the implementation process of the above step S310 is similar to the implementation process of the above step S104A and the above step S105A. Therefore, the implementation process of the above step S310 can refer to the implementation process of the above step S104A and the above step S105A.

[0267] In step S311, the relay device sends the second congestion notification message to the upstream device, so that the upstream device enables buffering based on the second congestion notification message.

[0268] In step S312, when the network is in a non-congested state, the destination device sends a non-congestion notification message to the downstream congested device.

[0269] In step S313, the downstream congested device disables the cache function, and updates the second outbound port queue length to a preset length when there is no cache data in the cache queue.

[0270] In some embodiments, the implementation process of the above step S313 is similar to the implementation process of the above step S105B and the above step S106B. Therefore, the implementation process of the above step S313 can refer to the implementation process of the above step S105B and the above step S106B.

[0271] In step S314, the downstream congested device transparently transmits the non-congestion notification message to the relay device.

[0272] In step S315 , the relay device disables the cache function, and when there is no cache data in the cache queue, updates the first outbound port queue length to a preset length.

[0273] In some embodiments, the implementation process of the above step S315 is similar to the implementation process of the above step S105B and the above step S106B. Therefore, the implementation process of the above step S315 can refer to the implementation process of the above step S105B and the above step S106B.

[0274] Through the above steps S301 to S315, on the one hand, the downstream congestion device can timely discover network congestion, synchronize the network congestion to the destination device, and modify the third congestion notification message sent by the destination device, and send the third congestion notification message to the relay device; on the other hand, the relay device opens its own cache based on the third congestion notification message to solve the network congestion problem in time, and when the congestion message reporting condition is met, it will also modify the first target queue pair value of the first congestion notification message to obtain the second congestion notification message, and send the second congestion notification message to the upstream device, so that the upstream device opens the cache, thus realizing the step-by-step modification of the congestion notification message and the step-by-step opening of the cache, so as to solve the network congestion problem in time while ensuring that the overall network throughput and transmission efficiency are not affected.

[0275] The following is an explanation of an exemplary application of an embodiment of the present application in a practical application scenario.

[0276] The embodiment of the present application proposes an explicit congestion notification feedback mechanism for a data lossless network. The idea of ​​the embodiment of the present application is mainly reflected in that the switch in the ROCE network has the ability to independently process CNP messages, that is, when the switch receives a CNP message, it will not directly forward the CNP message to the sender, but directly open a buffer queue for the interface that receives the CNP message, thereby reducing the possibility of congestion at the destination end, and will not affect the destination end on other paths in the network from receiving the application data, because the sender does not directly reduce the speed.

[0277] See also Fig.11 , Fig.11 A first structural diagram of a network architecture provided in an embodiment of the present application, in Fig.11 In the embodiment, the network architecture includes a sending end 111, an intermediate device 112, an intermediate device 113 and a destination end 114. The intermediate device 112 and the intermediate device 113 are both network devices, the intermediate device 112 is equivalent to the relay device in other embodiments, and the intermediate device 113 is equivalent to the downstream congestion device in other embodiments.

[0278] In some embodiments, based on the above Fig.11 The network architecture of the present application may include the following steps S1101 to S1106, which are described in detail below.

[0279] In step S1101 , congestion occurs on the outbound interface G1 of the intermediate device 113 .

[0280] In some embodiments, the definition of congestion is based on the comparison of the ratio of the number of packets in the egress buffer queue to the depth of the entire queue and the set watermark. For example, for a flow in a RoCE network, the queue depth of the flow is S, the number of data (or data packets) in the queue at this moment is D, and the set congestion watermark is P. If the following formula (1) is satisfied, it is considered that the network is congested, that is, the network is in a congested state; if the following formula (1) is not satisfied, it is considered that the network is in a non-congested state.

[0281] (D / S)*100≥P Formula (1);

[0282] In step S1102, the congestion point sends a congestion indication message (CE message).

[0283] In the embodiment of the present application, the header format of the CE message is shown in Table 2, that is, the 14th and 15th bits of the explicit congestion notification (ECN) are set in the IP header. If these two bits are set to 1 respectively when transmitting data, this data message is called a CE message, which is intended to indicate that there is congestion in the network, and the device that sends the CE message is the device where the congestion occurs. Among them, the congestion point refers to the device where the congestion occurs, that is, the congestion point refers to the intermediate device 113.

[0284] Table 2 Congestion indication message header format

[0285]

[0286] In step S1103, the CE message arrives at the destination 114. The destination 114 recognizes that this is a CE message in the RoCE network, and thus determines that congestion has occurred in the network. At this time, a congestion notification message (CongestionNotification Packet, CNP) is generated. The congestion notification message corresponds to the third congestion notification message in other embodiments. The congestion notification message is the initial congestion notification message. In the congestion notification message, the value of the destination queue pair (Destination Queue Pair, DQP) is 0x000011, which means that this is a congestion notification message of a CNP.

[0287] In step S1104, the CNP message is sent to the intermediate device 113 that may generate a congestion point. After reaching the device, the intermediate device 113 will modify the DQP queue value of the CNP message to the outgoing port queue length (Outgoing Queue, OuQ) according to its own flow table information of the outgoing cache queue for this type of traffic, and send the modified CNP message to the upstream intermediate device 112. In some embodiments, Table 3 is a list of information included in the flow table information. Referring to Table 3, the flow table information includes the interface, source IP address, destination IP address, number of equal-cost paths, ingress port queue length, egress port queue length, and egress port rate.

[0288] Table 3 Flow table information

[0289]

[0290] In the embodiment of the present application, no speed reduction or transmission stop is performed at the intermediate device 113, which is a possible congestion point. Only the DQP value of the header of the CNP message is changed and sent out.

[0291] In step S1105 , after the intermediate device 113 sends the modified message to the intermediate device 112 , the intermediate device 112 caches the data.

[0292] In some embodiments, see Fig.12 , the intermediate device 112 executes the following steps S051 to step 059, which are described in detail below.

[0293] In step S051, the congestion notification message processing policy configured on the device is called.

[0294] In the embodiment of the present application, the congestion notification message processing policy in the network can be described by a CNP-Policy function. Based on this, the CNP-Policy function that has been configured itself is called.

[0295] In step S052, it is determined whether the target queue pair value in the congestion notification message is an initial value.

[0296] In the embodiment of the present application, the initial value of the target queue pair value is 0X000001, which means that the CNP message is not processed and forwarded directly, that is, the network device does not enable the CNP cache function. When the target queue pair value is the initial value, step S053 is entered; and when the target queue pair value is not the initial value, it indicates that the intermediate device 113 has enabled the cache, and there is still network congestion, and the intermediate device 112 needs to continue to enable the cache, then step S054 is entered.

[0297] In step S053, the transparent mode is entered, that is, no cache strategy is implemented, and the process ends.

[0298] In the embodiment of the present application, at this time, it is characterized that there is no network congestion in the network and there is no need to enable the cache.

[0299] In some embodiments, if the intermediate device 112 turns on the cache at this time and there is a cache queue, the cache queue is released.

[0300] In step S054, the intervention mode is entered.

[0301] At this time, it indicates that the intermediate device 113 has enabled the cache and there is still network congestion, so the intermediate device 112 needs to continue to enable the cache.

[0302] In the embodiment of the present application, in the intervention mode, the first target queue pair value in the congestion notification message is obtained.

[0303] In step S055, the length of the first outbound port queue is determined.

[0304] In the embodiment of the present application, since the intermediate device 112 is not blocked originally, the first outbound port queue length of all the intermediate devices 112 is 0. The first outbound port queue length is updated here, and the first outbound port queue length is the size of the cache queue, and the first outbound port queue length is determined by multiple factors.

[0305] In some embodiments, the first outbound port queue length may be determined by the following formula (2).

[0306] OuQ=DQP / ECMP formula (2);

[0307] In formula (2), OuQ represents the length of the first egress port queue, DQP represents the first target queue pair value in the congestion notification message, and ECMP represents the number of equal-cost paths on the intermediate device 112. Formula (2) is an integer division operation, that is, the obtained length of the first egress port queue is an integer.

[0308] In step S056, the data sent by the sender is cached.

[0309] In the embodiment of the present application, the data is stored in a cache memory cache, a water level E is set for the cache, and a timer is started.

[0310] In step S057, it is determined whether the data cached in the cache exceeds the waterline.

[0311] In some embodiments, when the cached data reaches or exceeds the waterline, it indicates that the processing capacity of the intermediate device 112 is about to be exceeded, and the CNP message will continue to be sent to the upstream device, that is, the process enters step S058; when the cached data is less than the waterline, it indicates that the intermediate device 112 has the ability to handle network congestion, that is, the conditions for terminating the sending of the CNP message are met, and the data will continue to be cached, that is, the process enters step S059.

[0312] In some embodiments, it is possible to determine whether the traffic is continuous or micro-burst based on the time it takes for the cache to reach the watermark.

[0313] In step S058, a new CNP message is generated, and the new CNP message is sent to the upstream device, and the process returns to the above step S052.

[0314] In some embodiments, the new target queue pair value is set to the first outbound port queue length, thereby obtaining a new CNP message. The new CNP message corresponds to the second congestion notification message in other embodiments. The new target queue pair value corresponds to the third queue pair value in other embodiments.

[0315] In step S059, the data is cached continuously using the queue of the first outbound port queue length as the cache size.

[0316] In some embodiments, the first egress port queue length is not a fixed value. The CNP message of the destination end 114 will be sent out at a random time T. The value of the first egress port queue length will also vary with the value of the DQP in the CNP message.

[0317] In some embodiments, the time when the destination sends a CNP message will depend on the change of the blocking. If the blocking increment does not change at this time, or is within an interval range, such as [-D, D], the CNP message will not be sent again. The CNP message will only be sent when it exceeds this interval range.

[0318] In some embodiments, the above steps S051 to S059 will continue until the destination end 114 is no longer congested and will send a CNP message upstream. The target queue pair value in the CNP message is 0x000001. At this time, the intermediate device will release all cache queues after receiving the CNP message.

[0319] In step S1106, the probability of network congestion will be reduced by reducing the speed level by level through intermediate devices, and because each speed reduction is based on the specific line on the device, the scope of the speed reduction is controlled to the link most in need, so that this specific data will not cause the overall speed reduction of the entire network, thereby improving the network throughput.

[0320] Through the above steps S1101 to S1106, the CNP message is directly processed by the intermediate network device, which can achieve a faster speed reduction. The current processing method is to send the CNP message to the sender before starting to reduce the speed. Such a time reflection arc will be extended, and there is a possibility of increasing the probability of network congestion due to untimely control. By reducing the speed on a single branch link, it will not affect the normal speed of the same application on other branch links, so as not to harm innocent people and improve the throughput of the entire network. The ECN design method of the related art is to directly send the CNP message to the sender, so as to achieve the purpose of reducing the rate of the sender. The related technology will inevitably lead to a decrease in the throughput performance of the entire network.

[0321] See also Fig.13 , Fig.13 A second structural diagram of the network architecture provided in the embodiment of the present application, Fig.13 In the figure, the network framework includes server 05, server 06, server 07, server 08, switch 07, switch 08, switch 09, switch 10, switch 11 and switch 12.

[0322] based on Fig.13 In the network framework shown, the display congestion notification feedback mechanism provided in the embodiment of the present application can be implemented through the following steps S1201 to S1210, which are described in detail below.

[0323] In step S1201 , server 05 and server 06 simultaneously send data traffic A to server 08 .

[0324] In step S1202 , server 05 also sends data traffic A to server 07 .

[0325] In step S1203 , when the data traffic A of the server 05 and the server 06 reaches the switch 10 , the ECN watermark is triggered in the outbound queue buffer of port 48 of the switch 10 .

[0326] In step S1204 , the switch 10 sends a CE message of data flow A to the server 08 .

[0327] In step S1205, after receiving the CE message, the server 08 will send a CNP message to the server 05. At the same time, the CNP message will also be sent to the server 06, and the implementation process is similar to that of sending to the server 05, which will not be repeated in the embodiment of the present application.

[0328] In step S1206, the CNP message is first sent to switch 10, and switch 10 sends the CNP message of data flow A to switch 11 and switch 12 respectively according to its own routing table.

[0329] In step S1207, switch 11 and switch 12 determine that the received message is a CNP message of data flow A, and immediately open a buffer queue for data flow A to start buffering data. This buffer queue is opened on the interface where the CNP message is received, that is, port 3 of switch 11 and port 7 of switch 12.

[0330] In step S1208, after the switches 11 and 12 enable the cache, the speed at which the data traffic A is sent to the switch 10 will be slowed down, thereby eliminating the network congestion caused by the burst traffic.

[0331] In step S1209, for long-term large traffic, switches 11 and 12 will send modified CNP messages to the sender, that is, server 05, and server 05 reduces the rate of sending data traffic A based on the modified CNP message. In addition, the intermediate device has also enabled the non-congested queue cache, so that network congestion can be alleviated from two perspectives at the same time. In this way, server 05 only needs to reduce the speed slightly to a certain extent, and does not need to reduce the speed significantly.

[0332] In step S1210, the speed reduction of paths 1-2-3-4 and 5-6-7-8 has been started. At the same time, the speed reduction of paths 1-2-11-12 and 5-6-15-16 from the same source has not been started, thus achieving the speed reduction of the congested link.

[0333] Through the above steps S1201 to S1210, speed reduction on a fixed path can be achieved without causing overall speed reduction for data traffic A in the entire network.

[0334] Through the explicit congestion notification feedback mechanism provided by the embodiment of the present application, first, due to the use of CNP truncation technology, CNP messages will not be sent directly to the sending end, which can speed up the speed reduction time, thereby reducing the possibility of network congestion. Second, the speed reduction is not directly applied to the sending end, but to the intermediate device, which will maximize the possibility of reducing the throughput of the entire network for a fixed application due to the speed reduction, thereby providing the throughput of the entire network.

[0335] The explicit congestion notification feedback mechanism provided in the embodiment of the present application adopts the CNP message truncation technology, that is, after receiving the CNP message, the network device at the non-congested point will decide whether to terminate the sending of the CNP message, instead of directly transparently transmitting it to the sending end. Even if the CNP message needs to be reported, the CNP message will be modified first and the modified CNP message will be reported.

[0336] The display congestion notification feedback mechanism provided in the embodiment of the present application will enable the cache queue to cache data for the network device that receives the CNP message, regardless of whether it is congested or not. This is different from the related art in which only the network device at the congestion point will process the CNP message.

[0337] The explicit congestion notification feedback mechanism provided in the embodiment of the present application will not directly transmit the CNP message to the sender, but will be processed by the intermediate network device. If the processing conditions of the intermediate network device are met, the CNP will directly terminate the upstream transmission at the intermediate network device. In this way, the CNP message will not be sent to the sender, and the problem of reducing the throughput performance of the entire network will not occur.

[0338] In some embodiments, when there are multiple network devices in the middle, based on the explicit congestion notification feedback mechanism provided in the embodiments of the present application, CNP messages will be sent upstream step by step and processed step by step. As long as each intermediate network device receives a CNP message, it will check whether it is necessary to terminate the sending of the CNP message based on the set conditions. If it has the ability to handle the congestion, that is, if the congestion can be eliminated by turning on the cache itself, it will stop reporting the CNP and will infinitely approach the sending end until the optimal speed reduction goal is reached.

[0339] It can be understood that in the embodiments of the present application, the collection, use and processing of relevant data such as the amount of cached data, congestion traffic identification, routing table information, number of equivalent paths, second output port queue length, etc. need to comply with relevant laws, regulations and standards of relevant countries and regions.

[0340] The following is a description of an exemplary structure of the data processing device 455 provided in the embodiment of the present application implemented as a software module. In some embodiments, Figure 3 As shown, the software modules stored in the data processing device 455 of the memory 450 may include:

[0341] The cache module 4551 is used to build a cache queue in response to a first congestion notification message received from a downstream congestion device, and cache the service data into the cache queue;

[0342] The speed reduction module 4552 is used to obtain the data storage information of the downstream congested device and reduce the data transmission rate of the relay device based on the data storage information;

[0343] The first sending module 4553 is used to send the service data in the cache queue to the downstream congested device based on the reduced data sending rate.

[0344] In some embodiments, the data processing device 455 further includes:

[0345] A first acquisition module, configured to acquire a first target queue pair value in the first congestion notification message;

[0346] The first determination module is used to determine that a cache startup condition is satisfied when the first target queue pair value is not a default value; and to determine that a cache startup condition is not satisfied when the first target queue pair value is a default value.

[0347] In some embodiments, the deceleration module 4552 is further used to:

[0348] Acquire a preset mapping table and a data transmission rate of the relay device, wherein the preset mapping table stores a mapping relationship between a cache ratio interval of the downstream congested device and a speed reduction coefficient;

[0349] Determine a cache ratio based on the first data volume and the first cache threshold;

[0350] Determine the target cache ratio interval to which the cache ratio belongs from the preset mapping table, and determine the target speed reduction coefficient corresponding to the target cache ratio interval;

[0351] The target speed reduction coefficient is used to reduce the data transmission rate of the relay device to obtain a reduced data transmission rate.

[0352] In some embodiments, the cache module 4551 is further used to:

[0353] Determining a first outbound port queue length based on the first target queue pair value;

[0354] The cache queue is constructed by taking the first egress port queue length as the queue length.

[0355] In some embodiments, the cache module 4551 is further used to:

[0356] Obtaining a congestion flow identifier in the first congestion notification message;

[0357] Based on the congested traffic identifier, obtaining the number of equivalent-cost paths of the congested traffic corresponding to the congested traffic identifier from routing table information;

[0358] Determining a ratio of the first target queue pair value to the number of equal-cost paths;

[0359] Based on the ratio, the first egress port queue length is determined.

[0360] In some embodiments, the data processing device 455 may further include:

[0361] A second determination module, configured to determine a third target queue pair value based on a first coefficient and the first egress port queue length when it is determined that a congestion message reporting condition is met based on the first egress port queue length;

[0362] a first updating module, configured to update the first target queue pair value in the first congestion notification message by using the third target queue pair value, so as to obtain a second congestion notification message;

[0363] The second sending module is configured to send the second congestion notification message to an upstream device, so that the upstream device enables a cache based on the second congestion notification message.

[0364] In some embodiments, the data processing device 455 further includes:

[0365] A second acquisition module, used to acquire a second data volume of cached data and a second congestion threshold, where the second congestion threshold is obtained by weighting the first egress port queue length using a preset second coefficient;

[0366] The second determining module is used to determine that a congestion message reporting condition is met when the second data volume exceeds the second congestion threshold.

[0367] In some embodiments, the data processing device 455 further includes:

[0368] A first disabling module is used to disable the cache function when receiving a non-congestion notification message transparently transmitted by the downstream congested device;

[0369] The second updating module is used to update the first output port queue length to a preset length when there is no cache data in the cache queue.

[0370] The embodiment of the present application provides a computer program product or a computer program, which includes computer executable instructions, and the computer executable instructions are stored in a computer-readable storage medium. The processor of the electronic device reads the computer executable instructions from the computer-readable storage medium, and the processor executes the computer executable instructions, so that the electronic device executes the data processing method described above in the embodiment of the present application.

[0371] The present application embodiment provides a computer-readable storage medium storing executable instructions, wherein the executable instructions are stored. When the executable instructions are executed by a processor, the processor will execute the data processing method provided by the present application embodiment, for example, Figure 4 , Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 The data processing method is shown.

[0372] In some embodiments, the computer-readable storage medium may be a memory such as FRAM, ROM, PROM, EPROM, EEPROM, flash memory, magnetic surface storage, optical disk, or CD-ROM; or it may be various devices including one or any combination of the above memories.

[0373] In some embodiments, computer executable instructions may be in the form of a program, software, software module, script or code, written in any form of programming language (including compiled or interpreted languages, or declarative or procedural languages), and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine or other unit suitable for use in a computing environment.

[0374] As an example, computer-executable instructions may, but need not, correspond to a file in a file system, may be stored as part of a file that stores other programs or data, such as in one or more scripts in a HyperText Markup Language (HTML) document, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or code portions).

[0375] By way of example, computer executable instructions may be deployed to be executed on one computing device or on multiple computing devices located at one site or on multiple computing devices distributed across multiple sites and interconnected by a communication network.

[0376] The above is only an embodiment of the present application and is not intended to limit the protection scope of the present application. Any modifications, equivalent substitutions and improvements made within the spirit and scope of the present application are included in the protection scope of the present application.

Claims

1. A data processing method, applied to a relay device, characterized in that: The method comprises: In response to a first congestion notification message received from a downstream congested device, building a cache queue and caching service data in the cache queue; Acquire data storage information of the downstream congested device, and reduce the data transmission rate of the relay device based on the data storage information; Based on the reduced data sending rate, the service data in the buffer queue is sent to the downstream congested device.

2. The method according to claim 1, characterized in that Before the build cache queue, it also includes: Obtaining a first target queue pair value in the first congestion notification message; When the first target queue pair value is not a default value, it is determined that the cache startup condition is met; when the first target queue pair value is a default value, it is determined that the cache startup condition is not met.

3. The method according to claim 1, characterized in that The data storage information of the downstream congested device includes a first amount of cached data and a first cache threshold, and reducing the data transmission rate of the relay device based on the data storage information includes: Obtaining a preset mapping table and a data transmission rate of the relay device, wherein the preset mapping table stores a mapping relationship between a buffer ratio interval of the downstream congested device and a speed reduction coefficient; Determining a cache ratio based on the first data volume and the first cache threshold; Determine the target cache ratio interval to which the cache ratio belongs from the preset mapping table, and determine the target speed reduction coefficient corresponding to the target cache ratio interval; The target speed reduction coefficient is used to reduce the data transmission rate of the relay device to obtain a reduced data transmission rate.

4. The method according to claim 2, characterized in that The build cache queue includes: Determining a first egress port queue length based on the first target queue pair value; The cache queue is constructed using the first egress port queue length as the queue length.

5. The method according to claim 4, characterized in that The first congestion notification message carries a congestion flow identifier, and determining the first egress port queue length based on the first target queue pair value includes: Obtaining a congestion flow identifier in the first congestion notification message; Based on the congested traffic identifier, obtaining the number of equivalent-cost paths corresponding to the congested traffic identifier from routing table information; determining a ratio of the first target queue pair value to the number of equal-cost paths; Based on the ratio, the first egress port queue length is determined.

6. The method according to claim 4, characterized in that The method further comprises: When it is determined based on the first outbound port queue length that a congested packet reporting condition is met, determining a third target queue pair value based on the first coefficient and the first outbound port queue length; Using the third target queue pair value, updating the first target queue pair value in the first congestion notification message to obtain a second congestion notification message; The second congestion notification message is sent to an upstream device, so that the upstream device enables buffering based on the second congestion notification message.

7. The method according to claim 6, characterized in that The method further comprises: Obtaining a second data volume of cached data and a second congestion threshold, where the second congestion threshold is obtained by weighting the first egress port queue length using a preset second coefficient; When the second data volume exceeds the second congestion threshold, it is determined that a congestion message reporting condition is met.

8. The method according to any one of claims 1 to 4, characterized in that The method further comprises: disabling a cache function upon receiving a non-congestion notification message transparently transmitted by the downstream congested device; When no cached data exists in the cache queue, the first egress port queue length is updated to a preset length.

9. A data processing device, characterized in that: The device comprises: a cache module, configured to construct a cache queue in response to a first congestion notification message received from a downstream congested device, and cache service data in the cache queue; a speed reduction module, configured to obtain data storage information of the downstream congested device and reduce the data transmission rate of the relay device based on the data storage information; The first sending module is configured to send the service data in the cache queue to the downstream congested device based on the reduced data sending rate.

10. A network device, characterized in that: The network equipment includes: a memory for storing computer-executable instructions; A processor, configured to implement the data processing method according to any one of claims 1 to 8 when executing the computer-executable instructions stored in the memory.

11. A computer-readable storage medium storing computer-executable instructions, characterized in that: When the computer-executable instructions are executed by a processor, the data processing method according to any one of claims 1 to 8 is implemented.

12. A computer program product comprising a computer program or computer executable instructions, characterized in that When the computer program or computer executable instructions are executed by a processor, the data processing method according to any one of claims 1 to 8 is implemented.

Citation Information

Cited By

  • Private network dial test task congestion self-recovery method and device, and related medium

    CN121310207A