Flexible flow control method, network node, electronic equipment and storage medium

By obtaining flexible flow control node information from business messages and generating flexible flow control protocol messages, the limitations of existing flow control mechanisms are solved, enabling flexible control of network traffic and improving the processing efficiency of network services.

CN121664748APending Publication Date: 2026-03-13ZTE CORP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411283298.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-09-13
Publication Date
2026-03-13

AI Technical Summary

Technical Problem

Existing PFC and SFC flow control mechanisms have limitations in network flow control, failing to meet the requirements for flexibility and efficiency, resulting in poor network flow control performance.

Method used

When network congestion occurs, the system obtains flexible flow control node information from service packets, identifies upstream flexible flow control enabling nodes, and generates flexible flow control protocol packets to control network traffic, thereby achieving a flexible control mechanism for network traffic.

Benefits of technology

It optimizes network traffic control, improves the processing efficiency of network services, and avoids the limitations of hop-by-hop flow control and source-end flow control mechanisms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121664748A_ABST
    Figure CN121664748A_ABST
Patent Text Reader

Abstract

The invention discloses a flexible flow control method, a network node, electronic equipment and a storage medium. The flexible flow control method comprises the following steps: when a first network node is in network congestion, acquiring flexible flow control node information carried in a service message; the flexible flow control node information comprises node information of a flexible flow control enabling node located at the upstream of the first network node; determining a first flexible flow control node corresponding to the first network node based on the flexible flow control node information; the first flexible flow control node is at least one of upstream flexible flow control enabling nodes; generating a first flexible flow control protocol message according to the node information of the first flexible flow control node; the first flexible flow control protocol message is used for indicating the first flexible flow control node to perform network flow control; and sending the first flexible flow control protocol message to the first flexible flow control node. According to the invention, a flexible control mechanism for the network flow is realized, so that the network flow control is not limited to a hop-by-hop flow control mechanism or a source end flow control mechanism any more, and the network flow control effect is optimized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of communication technology, and in particular to a flexible flow control method, network node, electronic device and storage medium. Background Technology

[0002] To provide lossless data transmission, the IEEE (Institute of Electrical and Electronics Engineers) proposed the Priority Flow Control (PFC) mechanism in 802.1Qbb. When network congestion occurs at a downstream node in the network path, to prevent packet loss due to buffer overload, a flow control frame is sent to the upstream node, causing the upstream node to stop transmitting traffic. The PFC mechanism is a hop-by-hop, Layer 2 flow control mechanism; that is, downstream nodes can only send flow control frames to upstream nodes hop-by-hop.

[0003] IEEE proposed the Source Flow Control (SFC) mechanism in P802.1Qdw, which operates at the IP (Internet Protocol) layer. When network congestion occurs at a node, the congested node sends a Layer 3 SFCM (SFC Message) to the source node to notify it to stop sending traffic. SFC swaps the source IP (i.e., the IP address of the source node) and destination IP (i.e., the IP address of the destination node) of the service packet, thereby routing the SFCM packet to the source node.

[0004] Of the two flow control mechanisms mentioned above, PFC employs a hop-by-hop flow control mechanism, while SFC employs a source-end flow control mechanism. While PFC has a faster response time than SFC, its hop-by-hop backpressure mechanism can lead to problems such as PFC storms. As for SFC, although it overcomes many of PFC's shortcomings, it can only provide flow control feedback for the longest path. Therefore, neither PFC nor SFC can meet current flow control requirements. Summary of the Invention

[0005] The purpose of this application is to provide a flexible flow control method, network node, electronic device, and storage medium to realize a flexible control mechanism for network traffic, thereby optimizing the network traffic control effect and improving the processing efficiency of network services.

[0006] To solve the above-mentioned technical problems, the embodiments of this application are implemented as follows:

[0007] On the one hand, embodiments of this application provide a flexible flow control method, including:

[0008] When network congestion occurs at the first network node, the flexible flow control node information carried in the service packet is obtained; the flexible flow control node information includes the node information of the flexible flow control enabling node located upstream of the first network node in the network path; the first network node is the flexible flow control enabling node.

[0009] Based on the flexible flow control node information, a first flexible flow control node corresponding to the first network node is determined; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node.

[0010] Based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0011] The first flexible flow control protocol message is sent to the first flexible flow control node.

[0012] On the other hand, embodiments of this application provide a network node, including:

[0013] The acquisition module is used to acquire flexible flow control node information carried in the service packet when network congestion occurs at the first network node; the flexible flow control node information includes node information of flexible flow control enabling nodes located upstream of the first network node in the network path; the first network node is a flexible flow control enabling node.

[0014] The determining module is used to determine the first flexible flow control node corresponding to the first network node based on the flexible flow control node information; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node;

[0015] The generation module is used to generate a first flexible flow control protocol message based on the node information of the first flexible flow control node; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0016] The sending module is used to send the first flexible flow control protocol message to the first flexible flow control node.

[0017] In another aspect, embodiments of this application provide an electronic device, including a processor and a memory electrically connected to the processor, the memory storing a computer program, and the processor being used to call and execute the computer program from the memory to implement the above-described flexible flow control method.

[0018] In another aspect, embodiments of this application provide a computer-readable storage medium for storing a computer program that can be executed by a processor to implement the above-described flexible flow control method.

[0019] In another aspect, embodiments of this application provide a computer program product, including a computer program, which is executed by a processor to implement the above-described flexible flow control method.

[0020] The technical solution of this application embodiment involves obtaining flexible flow control node information carried in service packets when network congestion occurs at a first network node (which is a flexible flow control enabling node). Based on this information, a first flexible flow control node corresponding to the first network node is determined. The flexible flow control node information includes node information of flexible flow control enabling nodes upstream of the first network node in the network path. The first flexible flow control node is at least one of these upstream flexible flow control enabling nodes. Then, based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated and sent to the first flexible flow control node. This first flexible flow control protocol message instructs the first flexible flow control node to perform network traffic control. It is evident that when network congestion occurs at the first network node, at least one flexible flow control enabled node can be flexibly selected from the upstream nodes of the first network node as the first flexible flow control node (i.e., the node used for network flow control). This realizes a flexible control mechanism for network traffic, making network flow control no longer limited to hop-by-hop flow control or source-end flow control mechanisms, optimizing the network flow control effect, and helping to improve the processing efficiency of network services. Attached Figure Description

[0021] To more clearly illustrate the technical solutions in one or more embodiments of this application or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments recorded in one or more embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0022] Figure 1 This is a schematic diagram of a network structure according to an embodiment of this application;

[0023] Figure 2 This is a schematic flowchart of a flexible flow control method according to an embodiment of this application;

[0024] Figure 3 This is a schematic diagram illustrating the updating of flexible flow control node information in a flexible flow control method according to an embodiment of this application.

[0025] Figure 4 This is a schematic scenario diagram of a flexible flow control method according to an embodiment of this application;

[0026] Figure 5 This is a schematic scenario diagram of a flexible flow control method according to another embodiment of this application;

[0027] Figure 6 This is a schematic structural diagram of a network according to another embodiment of this application;

[0028] Figure 7 This is a schematic diagram of the encapsulation format of flexible flow control node information in a flexible flow control method according to an embodiment of this application;

[0029] Figure 8 This is a schematic structural diagram of a network according to another embodiment of this application;

[0030] Figure 9 This is a schematic diagram of the encapsulation format of flexible flow control node information in a flexible flow control method according to another embodiment of this application;

[0031] Figure 10 This is a schematic diagram of the encapsulation format of a flexible flow control protocol message in a flexible flow control method according to an embodiment of this application;

[0032] Figure 11 This is a schematic diagram of the encapsulation format of a flexible flow control protocol message in a flexible flow control method according to another embodiment of this application;

[0033] Figure 12 This is a schematic diagram of the encapsulation format of a flexible flow control protocol message in a flexible flow control method according to another embodiment of this application;

[0034] Figure 13 This is a schematic diagram of the encapsulation format of a flexible flow control protocol message in a flexible flow control method according to another embodiment of this application;

[0035] Figure 14 This is a schematic block diagram of a network node according to an embodiment of this application;

[0036] Figure 15 This is a schematic block diagram of an electronic device according to an embodiment of this application. Detailed Implementation

[0037] This application provides a flexible flow control method, network node, electronic device, and storage medium to achieve a flexible control mechanism for network traffic, thereby optimizing the network traffic control effect and improving the processing efficiency of network services.

[0038] To enable those skilled in the art to better understand the technical solutions in this application, the technical solutions in the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort should fall within the scope of protection of this application.

[0039] Currently, network traffic control typically employs either PFC (Phase-based Flow Control) or SFC (Side-based Flow Control). PFC is a hop-by-hop, Layer 2 flow control mechanism, meaning downstream nodes can only send flow control frames hop-by-hop to upstream nodes. SFC is a source-side control mechanism, meaning it sends flow control frames directly to remote nodes. Figure 1 Taking the network shown as an example, in Figure 1 In the network, there are two network nodes: Gateway 1 and Gateway 2. There are multiple hops between Gateway 1 and Gateway 2 using routers that do not support the PFC protocol. Assuming network congestion occurs at the gateway 2's exit point, if PFC is used, Gateway 2 will send flow control signals to its adjacent upstream router. Since the upstream router does not support PFC, it needs to send the flow control signals hop-by-hop to Gateway 1, which does support PFC. If SFC is used, Gateway 2 will send the flow control signals directly to the source device. Figure 1 The image shows an RDMA (Remote Direct Memory Access) host. It can be seen that both the PFC and SFC mechanisms are not flexible enough in terms of network flow control, resulting in poor network flow control performance.

[0040] To address the aforementioned technical problems, this application aims to directly send flow control signals to Gateway 1, thereby utilizing Gateway 1 for network flow control. This bypasses the multi-hop router devices between Gateway 1 and Gateway 2 and avoids consuming traffic from the source device, significantly improving the efficiency and effectiveness of network flow control. To this end, this application provides a flexible flow control method. A congested node can extract flexible flow control node information carried in service packets and determine the corresponding flexible flow control node based on this information. This flexible flow control node is at least one flexible flow control enabled node located upstream of the congested node in the network path. Then, based on the node information of the flexible flow control node, a first flexible flow control protocol message is generated and sent to the flexible flow control node. The first flexible flow control protocol message instructs the flexible flow control node to perform network traffic control. Therefore, this application can flexibly select at least one flexible flow control enabling node from the upstream nodes of the congested node as a flexible flow control node, realizing a flexible control mechanism for network traffic. This makes network flow control no longer limited to hop-by-hop flow control mechanism or source-end flow control mechanism, optimizes the effect of network traffic control, and helps to improve the processing efficiency of network services.

[0041] The flexible network flow control method provided in this application can be executed by an electronic device or by software installed in an electronic device. Specifically, the electronic device can be a terminal device or a server device. The terminal device can include smartphones, laptops, smart wearable devices, vehicle terminals, etc., and the server device can include an independent physical server, a server cluster composed of multiple servers, or a cloud server capable of cloud computing.

[0042] Figure 2 This is a schematic flowchart of a flexible flow control method according to an embodiment of this application, such as... Figure 2 As shown, the method includes the following steps S202-S208:

[0043] S202, when network congestion occurs at the first network node, obtain the flexible flow control node information carried in the service message. The flexible flow control node information includes the node information of the flexible flow control enabling node located upstream of the first network node in the network path. The first network node is a flexible flow control enabling node.

[0044] In this context, a flexible flow control enabling node refers to a network node that supports the FFC (Flex Flow Control) protocol. Node information can be any one or more of the following: node name, node identifier, and node address. The node address can be a node IP address or an IP address prefix. In the service message, the flexible flow control node information can be encapsulated in an extended field of the service message. The specific encapsulation method will be described in the following embodiments and will not be elaborated here.

[0045] S204, Based on the flexible flow control node information, determine the first flexible flow control node corresponding to the first network node. The first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node.

[0046] The first network node may select any one or more flexible flow control enabling nodes located upstream of it as the first flexible flow control node. That is, the first flexible flow control node may include one or more flexible flow control nodes.

[0047] S206, Based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated. The first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0048] The first flexible flow control protocol message employs a three-layer message encapsulation. It may include at least one of the following information: the address information of the flow control source network node, the address information of the flow control destination network node, the address information of the first network node, the flow control protocol type, the flow control priority information, and the flow control pause time. The flow control source network node is the destination network node of the service message, and the flow control destination network node is the source network node of the service message. In other words, the transmission path of the first flexible flow control protocol message is the opposite of the transmission path of the service message.

[0049] Optionally, the first flexible flow control protocol message may also include DSCP (Differentiated Services CodePoint) or ToS (Type of Service), which are used to carry flow control priority information.

[0050] Optionally, the address information of any node (such as a flow control source network node, a flow control destination network node, or a first network node) can be at least one of the following: IP address, level in the Fabric network, port direction (such as uplink, downlink, or peer-link), etc.

[0051] The flow control protocol type in the first flexible flow control protocol message can be FFC, which can be identified by defining option type, IP protocol or UDP (User Datagram Protocol) destination port number, etc.

[0052] S208, the first flexible flow control protocol message is sent to the first flexible flow control node.

[0053] In this embodiment, the flexible flow control protocol type and specific encapsulation format of the first flexible flow control protocol message are not limited. The first flexible flow control node can be an end-side device or a router node between the end-side device and the destination-side device. It can be understood that if the flexible flow control node information carried in the service message includes the node information of the end-side node, then the end-side node must support the flexible flow control protocol, that is, the end-side node must be a flexible flow control enabled node.

[0054] In this embodiment, each network node in the network can be pre-configured to determine whether it is a flexible flow control enabled node. Alternatively, when configuring a network node as a flexible flow control enabled node, it can also be configured whether the flexible flow control enabled node acts as a response node for flexible flow control. For example, if a certain flexible flow control enabled node is configured not to act as a response node for flexible flow control in the configuration information, then that node behaves as a normal node and does not respond to flexible flow control protocol messages during the network flow control process.

[0055] Furthermore, the flexible flow control method in this embodiment can be used in conjunction with the static configuration flow control method. If static configuration information exists at the congested node (i.e., the first network node), the priority of the static configuration information and the information carried by the service packets can be flexibly specified.

[0056] Optionally, the service message also carries flexible flow control indication information, which is used to indicate that flexible flow control node information is carried in the service message.

[0057] The technical solution of this application embodiment involves obtaining flexible flow control node information carried in service packets when network congestion occurs at a first network node (which is a flexible flow control enabling node). Based on this information, a first flexible flow control node corresponding to the first network node is determined. The flexible flow control node information includes node information of flexible flow control enabling nodes upstream of the first network node in the network path. The first flexible flow control node is at least one of these upstream flexible flow control enabling nodes. Then, based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated and sent to the first flexible flow control node. This first flexible flow control protocol message instructs the first flexible flow control node to perform network traffic control. It is evident that when network congestion occurs at the first network node, at least one flexible flow control enabled node can be flexibly selected from the upstream nodes of the first network node as the first flexible flow control node (i.e., the node used for network flow control). This realizes a flexible control mechanism for network traffic, making network flow control no longer limited to hop-by-hop flow control or source-end flow control mechanisms, optimizing the network flow control effect, and helping to improve the processing efficiency of network services.

[0058] In one embodiment, when a first network node receives a service packet from an upstream node, and if the first network node is a flexible flow control enabled node, the flexible flow control node information carried in the service packet is updated according to the node information of the first network node. When updating the flexible flow control node information, the first network node can use any of the following modes:

[0059] Mode 1: Replace the current node information in the flexible flow control node information with the node information of the first network node. In Mode 1, the service packet only maintains the node information of one flexible flow control enabling node. If there is no node information in the flexible flow control node information, that is, the current node information is empty, it means that the first network node is the first flexible flow control enabling node in the network path. In this case, replacing the current node information with the node information of the first network node can be performed by adding the node information of the first network node to the flexible flow control node information.

[0060] Mode 2: Add the node information of the first network node to the flexible flow control node information. In Mode 2, service packets maintain the flexible flow control node information by carrying a list of node information. Since the number of routing hops in the network is usually limited, the overhead of the node information list is relatively controllable. When adding the node information of the first network node to the flexible flow control node information, it can be added according to the upstream and downstream relationship of each flexible flow control enabled node in the network path. For example, in the network path, router 1 and router 2 are both flexible flow control enabled nodes, and router 2 is downstream of router 1. In the node information list, the node information of router 1 can be placed before the node information of router 2. Currently, this is only an exemplary illustration of the order relationship of the node information in the node information list and does not constitute a limitation of this application.

[0061] For any network node, node information can be any one or more of the following: node name, node identifier, node address, etc. The node address can be the node IP address or an IP address prefix. Optionally, flexible flow control node information can be carried in the service message by encapsulating extended fields. These extended fields can be FFC-SID (SegmentIdentifier) ​​fields, extended fields of the source IP, extended fields of the destination IP, or option extended fields, etc. This embodiment does not specifically limit the extended fields. For example, the IP address prefix of the flexible flow control enabled node can be encapsulated into the FFC-SID field.

[0062] Figure 3 This is a schematic diagram illustrating the principle of updating flexible flow control node information in a flexible flow control method according to an embodiment of this application. Figure 3In the network shown, according to the upstream and downstream relationships of the network path, there are routers 1, 2, 3, and 4. Routers 1, 3, and 4 support the FFC protocol, meaning they are flexible flow control enabled nodes. Router 2 does not support the FFC protocol and is not a flexible flow control enabled node. In this embodiment, the service packet is an SRv6 (Segment Routing for IPv6) packet with the FFC-SID field as the extended field. Routers that are flexible flow control enabled nodes, upon receiving a service packet, update the flexible flow control node information carried in the service packet using their own node information, i.e., encapsulate the FFC-SID. Routers that are not flexible flow control enabled nodes, upon receiving a service packet, do not update the flexible flow control node information carried in the service packet; i.e., they do not encapsulate the FFC-SID, and the flexible flow control node information remains unchanged before being sent to the next network node. Figure 3 In the SRH (Segment Routing Header), Original SIDs represent the original SIDs.

[0063] exist Figure 3 In the diagram, the "Supports Flow Control" icon for each router indicates that the current router supports the Flexible Flow Control (FFC) protocol, while "Does Not Support Flow Control" indicates that the current router does not support the FFC protocol. The top of the network path shows a schematic encapsulation of the flexible flow control node information updated according to Mode 1. It can be seen that when updating flexible flow control node information using Mode 1, the service packet maintains only one FFC-SID. This FFC-SID can be the node information of the flexible flow control enabled node closest to the first network node. After the service packet arrives at Router 1, Router 1 encapsulates its own node information into the FFC-SID; the node information corresponding to Router 1 is encapsulated as FFC-SID1. After Router 1 sends the service packet to Router 2, since Router 2 is not a flexible flow control enabled node, it does not encapsulate the FFC-SID, and the flexible flow control node information carried in the service packet remains unchanged. After router 2 sends the service packet to router 3, router 3 replaces the current node information in the flexible flow control node information with its own node information. Specifically, it replaces FFC-SID1 with FFC-SID3, where FFC-SID3 is the node information of router 3. After router 3 sends the service packet to router 4, router 4 replaces the current node information in the flexible flow control node information with its own node information. Specifically, it replaces FFC-SID3 with FFC-SID4, where FFC-SID4 is the node information of router 4.

[0064] The lower part of the network path shows a schematic encapsulation of the flexible flow control node information updated according to Mode 2. It can be seen that when updating flexible flow control node information using Mode 2, the service packet maintains an FFC-SID list, which includes node information for multiple flexible flow control enabled nodes. After the service packet arrives at Router 1, Router 1 encapsulates its own node information into an FFC-SID, such as... Figure 3 As shown, the node information corresponding to Router 1 is encapsulated as FFC-SID1. After Router 1 sends the service packet to Router 2, since Router 2 is not a flexible flow control enabled node, it does not encapsulate an FFC-SID. The flexible flow control node information in the service packet remains unchanged and is the same as the flexible flow control node information carried in Router 1's service packet. After Router 2 sends the service packet to Router 3, Router 3 adds its own node information, FFC-SID3, to the FFC-SID list. After Router 3 sends the service packet to Router 4, Router 4 adds its own node information, FFC-SID4, to the FFC-SID list.

[0065] For flexible flow control enabled nodes in the network path, it can be selectively determined whether to encapsulate the node information of the flexible flow control enabled node into the service packet. Optionally, this can be determined based on network topology, administrator whitelists / blacklists, node roles, etc. For example, if the flexible flow control enabled node is in the whitelist, its node information will be encapsulated into the service packet; if it is in the blacklist, its node information will not be encapsulated; and so on.

[0066] In one embodiment, the flexible flow control node information includes only the node information of one flexible flow control enabling node, which can be the upstream flexible flow control enabling node that is closest to the first network node in the network path. Based on this, when determining the first flexible flow control node corresponding to the first network node according to the flexible flow control node information carried in the service packet, the flexible flow control enabling node corresponding to the node information included in the flexible flow control node information can be determined as the first flexible flow control node. The node information can be any one or more of the following: node name, node identifier, node address, etc. The node address can be a node IP address or an IP address prefix.

[0067] In one embodiment, the flexible flow control node information includes a node information list, which contains node information for multiple flexible flow control enabled nodes. The node information may be any one or more of the following: node name, node identifier, node address, etc. The node address may be a node IP address or an IP address prefix. Therefore, when determining the first flexible flow control node corresponding to the first network node based on the flexible flow control node information carried in the service packet, the first flexible flow control node can be determined from the multiple flexible flow control enabled nodes according to the node information list.

[0068] Optionally, when determining the first flexible flow control node from multiple flexible flow control enabled nodes based on the node information list, the flexible flow control enabled nodes corresponding to multiple node information in the node information list can be determined as the first flexible flow control node; or, based on the node information list, the flexible flow control enabled node closest to the first network node can be determined as the first flexible flow control node from multiple flexible flow control enabled nodes.

[0069] In this embodiment, when determining the first flexible flow control node, the first network node can either select all flexible flow control enabling nodes maintained in the service message as the first flexible flow control information, or select one flexible flow control enabling node from among multiple flexible flow control enabling nodes maintained in the service message. For example, if the node information of each flexible flow control enabling node in the node information list is arranged according to the upstream and downstream relationships in the network path, then the flexible flow control enabling node corresponding to the last item in the node information list is the flexible flow control enabling node closest to the first network node, and this flexible flow control enabling node can be determined as the first flexible flow control node.

[0070] Of course, some (or more) flexible flow control enabling nodes can be selected from the multiple flexible flow control enabling nodes maintained in the service messages to be determined as the first flexible flow control information. For example, the decision to designate a flexible flow control enabling node as the first flexible flow control node can be made based on information such as the node congestion status, node status, and whether the node is a critical node. In short, the determination of the first flexible flow control node is flexible and is not limited by the number of first flexible flow control nodes, their location in the network, their node type, etc.

[0071] If there are multiple first flexible flow control nodes, the first network node can send corresponding first flexible flow control protocol messages to multiple first flexible flow control nodes in parallel. Since the node information of each first flexible flow control node is different, the content of the first flexible flow control protocol message sent to each first flexible flow control node is also different.

[0072] by Figure 3Taking the network shown as an example, if a router in the network experiences network congestion, the router sends a flexible flow control protocol message to an upstream node that supports the FFC protocol. Specifically, the router experiencing network congestion extracts the flexible flow control node information from the SRH header and encapsulates it into the flexible flow control protocol message, for example, it can be encapsulated into the destination IP field of the flexible flow control protocol message, thereby sending the flexible flow control protocol message to the flexible flow control node.

[0073] If the SRH header carries only an FFC-SID, then the flexible flow control protocol message is sent to the flexible flow control enabled node identified by the FFC-SID. In this case, a step-by-step flow control backpressure method similar to the PFC mechanism is still supported. That is, when a flexible flow control node also experiences network congestion, it can send a flexible flow control protocol message to the upstream node based on the FFC-SID carried in the current service message. It should be noted that the step-by-step backpressure method of the FFC mechanism differs from that of the PFC mechanism. The step-by-step backpressure method of the FFC mechanism supports traversing non-flexible flow control enabled nodes. Figure 4 Taking the network shown as an example, if router 4 experiences network congestion, router 4 extracts the FFC-SID3 carried in the service packet (i.e., the node information of router 3), generates a flexible flow control protocol message, and sends the flexible flow control protocol message to router 3. If router 3 also experiences network congestion, router 3 extracts the FFC-SID1 carried in the service packet (i.e., the node information of router 1), generates a flow control protocol message, and sends the flow control protocol message to router 1. It can be seen that because router 2 does not support the FFC protocol, the flexible flow control node information carried in the service packet does not include the node information of router 2. Therefore, router 3 can bypass router 2 and directly send the flexible flow control protocol message to router 1.

[0074] If the SRH header carries an FFC-SID list, then when a network node experiences network congestion, it can send a flexible flow control protocol message to a specific flexible flow control enabled node specified in the FFC-SID list, or it can send flexible flow control protocol messages to multiple flexible flow control enabled nodes in the FFC-SID list simultaneously in parallel. For example... Figure 5 As shown, assuming network congestion occurs at router 5, router 5 can sequentially extract each FFC-SID from the FFC-SID list, including the node information FFC-SID1 of router 1, the node information FFC-SID3 of router 3, and the node information FFC-SID4 of router 4. Then, for router 1, router 3, and router 4, corresponding flexible flow control protocol messages are generated respectively, and the flexible flow control protocol messages are sent to the corresponding routers.

[0075] It should be noted that, Figure 4 and Figure 5In the diagram, the "Supports flow control" option shown on the router icons indicates that the current router supports the Flexible Flow Control (FFC) protocol, while "Does not support flow control" indicates that the current router does not support the Flexible Flow Control (FFC) protocol.

[0076] In this embodiment, flexible flow control node information is carried in the service packets through multiple modes (such as Mode 1 and Mode 2). Based on this information, one or more upstream flexible flow control enabling nodes are flexibly selected for flexible flow control. Furthermore, when selecting multiple flexible flow control enabling nodes, flexible flow control protocol packets are sent to multiple nodes simultaneously in parallel. This not only achieves the effect of flexibly selecting flexible flow control nodes and realizing a flexible network traffic control mechanism, but also improves the efficiency of network flexible flow control.

[0077] In one embodiment, a first network node receives a second flexible flow control protocol message from a second network node, wherein the second network node is downstream of the first network node, and the second flexible flow control protocol message instructs the first network node to perform network flow control. That is, the first network node acts as the flexible flow control node corresponding to the second network node. After receiving the second flexible flow control protocol message, the first network node performs network flow control according to the message.

[0078] In this embodiment, the second network node is a flexible flow control enabled node. That is, only flexible flow control enabled nodes that support the FFC protocol can generate FFC type flexible flow control protocol messages when network congestion occurs, and send the flexible flow control protocol messages to the upstream flexible flow control enabled nodes.

[0079] Considering the possibility of network congestion at the first network node, after receiving the second flexible flow control protocol message, if the first network node is also experiencing network congestion, the flow control protocol type supported by the target network node upstream of the first network node is determined. Based on the flow control protocol type supported by the target network node, a target flow control protocol message is generated and sent to the target network node. The flow control protocol type of the target flow control protocol message can be FFC, PFC, or SFC, specifically determined by whether the upstream node of the first network node (i.e., the target network node) contains a flexible flow control enabled node (i.e., a node supporting the FFC protocol).

[0080] If the target network node is a flexible flow control enabled node (i.e., a node supporting the FFC protocol), then the flow control protocol type of the target flow control protocol message is FFC. In this case, the target flow control protocol message can be forwarded to at least one flexible flow control enabled node upstream of the first network node; the target network node is thus at least one flexible flow control enabled node. The target flow control protocol message may include at least one of the following information: the address information of the flow control source network node, the address information of the flow control destination network node, the address information of the first network node, the flow control protocol type, the flow control priority information, and the flow control pause time. The flow control source network node is the destination network node of the service message, and the flow control destination network node is the source network node of the service message.

[0081] If the target network node is not a flexible flow control enabled node, the flow control protocol type of the target flow control protocol message is PFC or SFC. In this case, the target flow control protocol message is sent to the upstream network node of the first network node or the source network node. Specifically, if the target flow control protocol message is sent to the upstream network node of the first network node, and the upstream network node is a node that supports the PFC protocol, then the flow control protocol type of the target flow control protocol message is PFC. If the target flow control protocol message is sent to the source network node, and the source network node supports the SFC protocol, then the flow control protocol type of the target flow control protocol message is SFC.

[0082] The flexible flow control method provided in this application will be illustrated below through specific embodiments.

[0083] Figure 6 This is a schematic diagram of a network structure according to an embodiment of this application. Figure 6 As shown, the Nanjing side includes several network nodes: the source node, gateway 1, and RoCE (RDMA over Converged Ethernet) switch 1. Gateway 1 and RoCE switch 1 support the FFC protocol. The Beijing side includes several network nodes: gateway 2, RoCE switch 2, and the destination node. Gateway 2 and RoCE switch 2 support the FFC protocol. Both the source and destination nodes support the PFC protocol. The multi-hop routers or OTN (Optical Transport Network) devices between gateway 1 and gateway 2 do not support the flexible flow control protocol, but can transparently transmit flexible flow control protocol packets. Taking IPv6 packets as an example, the IP address prefixes of each network node are as follows: Figure 6 As shown, such as 111::1, 222::2, etc.

[0084] In this embodiment, the IPv6 packet maintains only the node information of one flexible flow control enabled node. When the IPv6 packet is sent from the end-side node, it does not carry the flexible flow control node information. When the IPv6 packet passes through RoCE switch 1, since RoCE switch 1 is a flexible flow control enabled node that supports the FFC protocol, RoCE switch 1 encapsulates its own IP address prefix (i.e., "111::1") into the extended field of the IPv6 packet, such as in the IPv6 packet header. When an IPv6 packet passes through Gateway 1, since Gateway 1 is a flexible flow control enabled node that supports the FFC protocol, Gateway 1 encapsulates its own IP address prefix (i.e., "222::2") into the extended fields of the IPv6 packet, such as in the IPv6 packet header. Because the IPv6 packet only maintains the node information of one flexible flow control enabled node, when Gateway 1 encapsulates the IP address prefix, it will replace the IP address prefix of RoCE switch 1. The IPv6 packet locally maintained by Gateway 1 only maintains the IP address prefix of Gateway 1, "222::2".

[0085] Assuming network congestion occurs at the gateway 2 exit point, gateway 2 first extracts the flexible flow control node information from the IPv6 packet, i.e., the IP address prefix "222::2" of gateway 1. Then, it generates a flexible flow control protocol message and sends it to gateway 1. This flexible flow control protocol message uses Layer 3 encapsulation and may include at least one of the following information: the address information of the flow control source network node, the address information of the flow control destination network node, the address information of gateway 2, the flow control protocol type (i.e., FFC), the flow control priority information, and the flow control pause time. The flow control source network node is the destination network node of the IPv6 packet, i.e. Figure 6 The destination node is shown. The flow control destination network node is the source network node of the IPv6 packet, i.e. Figure 6 The source node is shown.

[0086] After Gateway 2 sends the Flexible Flow Control Protocol (FFC) message to Gateway 1, Gateway 1 performs network flow control based on the FFC message. If Gateway 1 also experiences network congestion, it extracts the FFC node information from the IPv6 message, specifically the IP address prefix "111::1" of RoCE switch 1. Then, Gateway 1 generates a FFC message and sends it to RoCE switch 1. The FFC message uses Layer 3 encapsulation and may include at least one of the following: the address information of the source network node, the address information of the destination network node, the address information of Gateway 1, the flow control protocol type (FFC), the flow control priority information, and the flow control pause time. The source network node is the destination network node of the IPv6 message, i.e. Figure 6 The destination node is shown. The flow control destination network node is the source network node of the IPv6 packet, i.e. Figure 6 The source node is shown.

[0087] If RoCE switch 1 experiences network congestion again, it will discover through existing protocols that the source node supports the PFC protocol, and since the source node's IPv6 packets do not carry any flexible flow control node information, this indicates that there are no flexible flow control enabled nodes upstream of RoCE switch 1. Therefore, RoCE switch 1 will generate a PFC type flow control protocol packet and send it to the source node.

[0088] In this embodiment, there are multiple ways to carry flexible flow control node information in the extended fields of IPv6 packets. Taking carrying flexible flow control node information in the HBH (hop-by-hop) extension header as an example, the encapsulation format is as follows: Figure 7 As shown, this includes the definitions of the HBH extension header and options. A new option header is defined under HBH, with type (flow control protocol type) set to FFC. The address prefix of the flexible flow control node occupies 48 bits. It should be noted that this field is modified only on nodes implementing the flexible flow control protocol; other nodes are unaware of the change.

[0089] In this embodiment, at least one flexible flow control enabling node can be flexibly selected as a flexible flow control node (i.e., a node used for network traffic control) based on the flexible flow control node information carried in the IPv6 packet. This realizes a flexible control mechanism for network traffic, so that network flow control is no longer limited to hop-by-hop flow control mechanism or source-end flow control mechanism, optimizes the network traffic control effect, and helps to improve the processing efficiency of network services.

[0090] Figure 8 This is a schematic diagram of a network structure according to another embodiment of this application. For example... Figure 8 As shown, the Nanjing side includes several network nodes: the source node, gateway 1, and RoCE switch 1. Gateway 1 and RoCE switch 1 support the FFC protocol. The Beijing side includes several network nodes: gateway 2, RoCE switch 2, and the destination node. Gateway 2 and RoCE switch 2 support the FFC protocol. Both the source and destination nodes support the PFC protocol. The multi-hop routers or OTN devices between gateway 1 and gateway 2 do not support the flexible flow control protocol, but can transparently transmit flexible flow control protocol packets. Taking an SRv6 (Segment Routing IPv6) packet as an example, the IP address prefixes of each network node are as follows: Figure 8 As shown, such as 111::1, 222::2, etc.

[0091] In this embodiment, the SRv6 message maintains a node information list, which includes node information of multiple flexible flow control enabled nodes, and flexible flow control is performed using a parallel backpressure method. When the SRv6 message is sent from the end-side node, it does not carry flexible flow control node information. When the SRv6 message passes through RoCE switch 1, since RoCE switch 1 is a flexible flow control enabled node supporting the FFC protocol, RoCE switch 1 encapsulates its own IP address prefix (i.e., "111::1") into the extended field of the SRv6 message, such as in the SRv6 message header. When an SRv6 packet passes through Gateway 1, since Gateway 1 is a flexible flow control enabled node supporting the FFC protocol, it encapsulates its own IP address prefix (i.e., "222::2") into the extended fields of the IPv6 packet, such as the IPv6 packet header. Because the SRv6 packet maintains a list of node information, after Gateway 1 adds the IP address prefix "222::2" to the SRv6 packet, the flexible flow control node information carried by the SRv6 packet includes the IP address prefix "111::1" of RoCE switch 1 and the IP address prefix "222::2" of Gateway 1. Similarly, when the SRv6 packet passes through Gateway 2, the flexible flow control node information carried by Gateway 2's SRv6 packet includes: the IP address prefix "111::1" of RoCE switch 1, the IP address prefix "222::2" of Gateway 1, and the IP address prefix "333::3" of Gateway 2. When an SRv6 packet passes through RoCE switch 2, the flexible flow control node information carried by the SRv6 packet of RoCE switch 2 includes: the IP address prefix of RoCE switch 1 "111::1", the IP address prefix of gateway 1 "222::2", the IP address prefix of gateway 2 "333::3", and the IP address prefix of RoCE switch "444::4".

[0092] Assuming network congestion occurs at RoCE switch 2, RoCE switch 2 extracts the node information list from the SRv6 packets to determine the flexible flow control node. Optionally, RoCE switch 2 can extract the IP address prefix "333::3" of the nearest gateway 2 and send the flexible flow control protocol message to gateway 2. Optionally, considering the long distance between Nanjing and Beijing, if backpressure flow control is applied to gateway 1 only when gateway 2 experiences network congestion, it will put a heavy burden on gateway 2. In this case, gateway 1 on the Nanjing side needs to be notified to stop sending traffic to gateway 2 as soon as possible, which is not flexible enough. Therefore, when network congestion occurs at RoCE switch 2, flexible flow control protocol messages can be sent simultaneously to both upstream gateway 2 and gateway 1 based on the flexible flow control node information carried in the SRv6 packets of RoCE switch 2. In this embodiment, it is assumed that the node devices between gateway 1 and RoCE switch 1 support the PFC protocol, and PFC flow control is used between RoCE switch 1 and the source node.

[0093] In this embodiment, there are multiple ways to carry flexible flow control node information in the extended fields of SRv6 messages. Taking carrying the FFC-SID list in the SRv6 SRH (Segment Routing Header) extended header as an example, the encapsulation format is as follows: Figure 9 As shown. Optionally, a reserved bit can be borrowed from Flags to indicate that the FFC-SID list exists in the SRv6 message.

[0094] Figure 10 This is a schematic diagram illustrating the encapsulation format of a flexible flow control protocol message according to an embodiment of this application. Taking the inclusion of flexible flow control node information in the destination header of an IPv6 message as an example, the flexible flow control node information is denoted as FFCM (FFC Message). The information carried in the destination header is processed at the node specified by the destination IP. The flexible flow control node information includes flow control priority, flow control pause time, and the address information of the congested node. Figure 10 As shown, flow control priority (PCP) occupies 3 bits; flow control pause duration occupies 24 bits, in nanoseconds; and the address information of the congested node occupies 48 bits. It should be noted that... Figure 10 Only the definition of the extension header is shown.

[0095] Figure 11 This is a schematic diagram of an encapsulation format for a flexible flow control protocol message according to another embodiment of this application. Figure 11 In RFC 7514, RECN (Really Explicit Congestion Notification) is a control message similar to ICMP (Internet Control Message Protocol) source queuing, and it reuses the Type field of the source queuing message. The Explicit Notification field defines the meaning of the 4-byte value.

[0096] Figure 12 This is a schematic diagram of an encapsulation format for a flexible flow control protocol message according to another embodiment of this application. Figure 12 The diagram illustrates an FFCM message format similar to RECN encapsulation, where a new value for the `type` field indicates that the current ICMP message is an FFCM message. The definitions of the `pause duration`, `PCP`, and `reserved` fields are the same as in the previous embodiment.

[0097] Figure 13This is a schematic diagram of an encapsulation format for a flexible flow control protocol message according to another embodiment of this application. Figure 13 In this context, by reusing the RECN's Type, a new Code value is defined to indicate that the current message is an FFCM message, used for flow control at the target node.

[0098] It should be noted that the above embodiments are merely illustrative examples of the flexible flow control method for networks provided in this application, and are not intended to limit the scope of this application. There are also various other encapsulation formats for flexible flow control protocol messages, which will not be listed here due to space limitations.

[0099] In summary, specific embodiments of this subject matter have been described. Other embodiments are within the scope of the appended claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing can be advantageous.

[0100] The above are flexible flow control methods provided by embodiments of this application. Based on the same idea, embodiments of this application also provide a network node.

[0101] Figure 14 This is a schematic block diagram of a network node according to an embodiment of this application, such as... Figure 14 As shown, the network node includes:

[0102] The acquisition module 141 is used to acquire flexible flow control node information carried in the service packet when network congestion occurs at the first network node; the flexible flow control node information includes node information of flexible flow control enabled nodes located upstream of the first network node in the network path; the first network node is a flexible flow control enabled node.

[0103] The determining module 142 is used to determine the first flexible flow control node corresponding to the first network node based on the flexible flow control node information; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node;

[0104] The generation module 143 is used to generate a first flexible flow control protocol message based on the node information of the first flexible flow control node; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0105] The sending module 144 is used to send the first flexible flow control protocol message to the first flexible flow control node.

[0106] In one embodiment, the flexible flow control node information includes only the node information of a flexible flow control enabling node;

[0107] When determining the first flexible flow control node corresponding to the first network node based on the flexible flow control node information, the determining module 142 performs the following steps:

[0108] The flexible flow control enabling node corresponding to the node information included in the flexible flow control node information is determined to be the first flexible flow control node.

[0109] In one embodiment, the flexible flow control node information includes a node information list; the node information list includes node information of multiple flexible flow control enabling nodes;

[0110] When determining the first flexible flow control node corresponding to the first network node based on the flexible flow control node information, the determining module 142 performs the following steps:

[0111] Based on the node information list, the first flexible flow control node is determined from the plurality of flexible flow control enabling nodes.

[0112] In one embodiment, when the determining module 142 determines the first flexible flow control node from the plurality of flexible flow control enabling nodes according to the node information list, it performs the following steps:

[0113] The flexible flow control enabling node corresponding to multiple node information in the node information list is determined as the first flexible flow control node.

[0114] or,

[0115] Based on the node information list, the flexible flow control enabling node closest to the first network node is determined from the plurality of flexible flow control enabling nodes as the first flexible flow control node.

[0116] In one embodiment, the network node further includes:

[0117] The update module is used to update the flexible flow control node information based on the node information of the first network node in response to receiving the service message.

[0118] In one embodiment, when the update module updates the flexible flow control node information based on the node information of the first network node, it performs the following steps:

[0119] Replace the current node information in the flexible flow control node information with the node information of the first network node;

[0120] or,

[0121] Add the node information of the first network node to the flexible flow control node information.

[0122] In one embodiment, the network node further includes:

[0123] The receiving module is used to receive a second flexible flow control protocol message from a second network node; the second network node is located downstream of the first network node; the second flexible flow control protocol message is used to instruct the first network node to perform network flow control; the second network node is a flexible flow control enabled node.

[0124] The flow control module is used to control network traffic based on the second flexible flow control protocol message.

[0125] In one embodiment, the network node further includes:

[0126] The protocol type determination module is used to determine the flow control protocol type supported by the target network node located upstream of the first network node in the event of network congestion after receiving the second flexible flow control protocol message from the second network node.

[0127] The generation and sending module is used to generate a target flow control protocol message and send the target flow control protocol message to the target network node.

[0128] In one embodiment, the first flexible flow control protocol message includes at least one of the following information: address information of the flow control source network node, address information of the flow control destination network node, address information of the first network node, flow control protocol type, flow control priority information, and flow control pause time.

[0129] In one embodiment, the first flexible flow control protocol message further includes a Differential Service Code Point (DSCP) or a Service Type (ToS); the DSCP or the ToS is used to carry the flow control priority information.

[0130] In one embodiment, the network node further includes:

[0131] An encapsulation module is used to encapsulate the flexible flow control node information into an extended field of the service message.

[0132] In one embodiment, the service message also carries flexible flow control indication information; the flexible flow control indication information is used to indicate that the flexible flow control node information is carried in the service message.

[0133] The technical solution of this application embodiment involves obtaining flexible flow control node information carried in service packets when network congestion occurs at a first network node (which is a flexible flow control enabling node). Based on this information, a first flexible flow control node corresponding to the first network node is determined. The flexible flow control node information includes node information of flexible flow control enabling nodes upstream of the first network node in the network path. The first flexible flow control node is at least one of these upstream flexible flow control enabling nodes. Then, based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated and sent to the first flexible flow control node. This first flexible flow control protocol message instructs the first flexible flow control node to perform network traffic control. It is evident that when network congestion occurs at the first network node, at least one flexible flow control enabled node can be flexibly selected from the upstream nodes of the first network node as the first flexible flow control node (i.e., the node used for network flow control). This realizes a flexible control mechanism for network traffic, making network flow control no longer limited to hop-by-hop flow control or source-end flow control mechanisms, optimizing the network flow control effect, and helping to improve the processing efficiency of network services.

[0134] Those skilled in the art will understand that Figure 14 The network nodes in the document can be used to implement the flexible flow control method described above. The details of this method should be similar to those described in the previous method section. To avoid being too complicated, they will not be repeated here.

[0135] Based on the same idea, this application also provides an electronic device, such as... Figure 15 As shown. Electronic devices can vary considerably due to differences in configuration or performance, and may include one or more processors 1501 and memory 1502. Memory 1502 may store one or more application programs or data. Memory 1502 may be temporary or persistent storage. The application programs stored in memory 1502 may include one or more modules (not shown), each module may include a series of computer-executable instructions for the electronic device. Furthermore, processor 1501 may be configured to communicate with memory 1502 and execute the series of computer-executable instructions in memory 1502 on the electronic device. The electronic device may also include one or more power supplies 1503, one or more wired or wireless network interfaces 1504, one or more input / output interfaces 1505, and one or more keyboards 1506.

[0136] Specifically, in this embodiment, the electronic device includes a memory and one or more programs, wherein one or more programs are stored in the memory, and one or more programs may include one or more modules, and each module may include a series of computer-executable instructions for use in the electronic device, and is configured to be executed by one or more processors. The one or more programs include computer-executable instructions for performing the following:

[0137] When network congestion occurs at the first network node, the flexible flow control node information carried in the service packet is obtained; the flexible flow control node information includes the node information of the flexible flow control enabling node located upstream of the first network node in the network path; the first network node is the flexible flow control enabling node.

[0138] Based on the flexible flow control node information, a first flexible flow control node corresponding to the first network node is determined; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node.

[0139] Based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0140] The first flexible flow control protocol message is sent to the first flexible flow control node.

[0141] The technical solution of this application embodiment involves obtaining flexible flow control node information carried in service packets when network congestion occurs at a first network node (which is a flexible flow control enabling node). Based on this information, a first flexible flow control node corresponding to the first network node is determined. The flexible flow control node information includes node information of flexible flow control enabling nodes upstream of the first network node in the network path. The first flexible flow control node is at least one of these upstream flexible flow control enabling nodes. Then, based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated and sent to the first flexible flow control node. This first flexible flow control protocol message instructs the first flexible flow control node to perform network traffic control. It is evident that when network congestion occurs at the first network node, at least one flexible flow control enabled node can be flexibly selected from the upstream nodes of the first network node as the first flexible flow control node (i.e., the node used for network flow control). This realizes a flexible control mechanism for network traffic, making network flow control no longer limited to hop-by-hop flow control or source-end flow control mechanisms, optimizing the network flow control effect, and helping to improve the processing efficiency of network services.

[0142] This application also proposes a computer-readable storage medium that stores one or more computer programs, the computer programs including instructions that, when executed by an electronic device including multiple applications, enable the electronic device to perform various processes of the above-described network flexible flow control method embodiments, specifically for executing:

[0143] When network congestion occurs at the first network node, the flexible flow control node information carried in the service packet is obtained; the flexible flow control node information includes the node information of the flexible flow control enabling node located upstream of the first network node in the network path; the first network node is the flexible flow control enabling node.

[0144] Based on the flexible flow control node information, a first flexible flow control node corresponding to the first network node is determined; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node.

[0145] Based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control.

[0146] The first flexible flow control protocol message is sent to the first flexible flow control node.

[0147] The technical solution of this application embodiment involves obtaining flexible flow control node information carried in service packets when network congestion occurs at a first network node (which is a flexible flow control enabling node). Based on this information, a first flexible flow control node corresponding to the first network node is determined. The flexible flow control node information includes node information of flexible flow control enabling nodes upstream of the first network node in the network path. The first flexible flow control node is at least one of these upstream flexible flow control enabling nodes. Then, based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated and sent to the first flexible flow control node. This first flexible flow control protocol message instructs the first flexible flow control node to perform network traffic control. It is evident that when network congestion occurs at the first network node, at least one flexible flow control enabled node can be flexibly selected from the upstream nodes of the first network node as the first flexible flow control node (i.e., the node used for network flow control). This realizes a flexible control mechanism for network traffic, making network flow control no longer limited to hop-by-hop flow control or source-end flow control mechanisms, optimizing the network flow control effect, and helping to improve the processing efficiency of network services.

[0148] This application provides a computer program product, including a computer program, which is executed by a processor to implement the various processes of the above-described network flexible flow control method embodiments and achieve the same technical effects. To avoid repetition, it will not be described again here.

[0149] The systems, devices, modules, or units described in the above embodiments can be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer. Specifically, a computer can be, for example, a personal computer, laptop computer, cellular phone, camera phone, smartphone, personal digital assistant, media player, navigation device, email device, game console, tablet computer, wearable device, or any combination of these devices.

[0150] For ease of description, the above devices are described separately by function as various units. Of course, in implementing this application, the functions of each unit can be implemented in one or more software and / or hardware.

[0151] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0152] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0153] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1The function specified in one or more boxes.

[0154] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0155] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.

[0156] Memory may include non-persistent storage in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.

[0157] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, magnetic magnetic disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.

[0158] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0159] This application can be described in the general context of computer-executable instructions, such as program modules, that are executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform a specific task or implement a specific abstract data type. This application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected via a communication network. In distributed computing environments, program modules can reside in local and remote computer storage media, including storage devices.

[0160] The various embodiments in this application are described in a progressive manner. Similar or identical parts between embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. In particular, the system embodiments are basically similar to the method embodiments, so the description is relatively simple; relevant parts can be referred to the descriptions of the method embodiments.

[0161] The above description is merely an embodiment of this application and is not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.

Claims

1. A flexible flow control method, characterized in that, include: When network congestion occurs at the first network node, obtain the flexible flow control node information carried in the service message; The flexible flow control node information includes node information of flexible flow control enabling nodes located upstream of the first network node in the network path; the first network node is a flexible flow control enabling node. Based on the flexible flow control node information, a first flexible flow control node corresponding to the first network node is determined; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node. Based on the node information of the first flexible flow control node, a first flexible flow control protocol message is generated; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control. Send the first flexible flow control protocol message to the first flexible flow control node.

2. The method according to claim 1, characterized in that, The flexible flow control node information includes only the node information of one flexible flow control enabling node; The step of determining the first flexible flow control node corresponding to the first network node based on the aforementioned flexible flow control node information includes: The flexible flow control enabling node corresponding to the node information included in the flexible flow control node information is determined to be the first flexible flow control node.

3. The method according to claim 1, characterized in that, The flexible flow control node information includes a node information list; the node information list includes node information of multiple flexible flow control enabling nodes; The step of determining the first flexible flow control node corresponding to the first network node based on the flexible flow control node information includes: Based on the node information list, the first flexible flow control node is determined from the plurality of flexible flow control enabling nodes.

4. The method according to claim 3, characterized in that, The step of determining the first flexible flow control node from the plurality of flexible flow control enabling nodes according to the node information list includes: The flexible flow control enabling node corresponding to multiple node information in the node information list is determined as the first flexible flow control node. or, Based on the node information list, the flexible flow control enabling node closest to the first network node is determined from the plurality of flexible flow control enabling nodes as the first flexible flow control node.

5. The method according to claim 1, characterized in that, The method further includes: In response to receiving the service message, the flexible flow control node information is updated based on the node information of the first network node.

6. The method according to claim 5, characterized in that, The step of updating the flexible flow control node information based on the node information of the first network node includes: Replace the current node information in the flexible flow control node information with the node information of the first network node; or, Add the node information of the first network node to the flexible flow control node information.

7. The method according to claim 1, characterized in that, The method further includes: The system receives a second flexible flow control protocol message from a second network node; the second network node is located downstream of the first network node; the second flexible flow control protocol message is used to instruct the first network node to perform network flow control; the second network node is a flexible flow control enabled node. Network traffic control is performed based on the second flexible flow control protocol message.

8. The method according to claim 7, characterized in that, After receiving the second flexible flow control protocol message from the second network node, the method further includes: In the event of network congestion at the first network node, determine the flow control protocol type supported by the target network node located upstream of the first network node; A target flow control protocol message is generated according to the flow control protocol type, and the target flow control protocol message is sent to the target network node.

9. The method according to claim 1, characterized in that, The first flexible flow control protocol message includes at least one of the following information: the address information of the flow control source network node, the address information of the flow control destination network node, the address information of the first network node, the flow control protocol type, the flow control priority information, and the flow control pause time.

10. The method according to claim 9, characterized in that, The first flexible flow control protocol message also includes a Differential Service Code Point (DSCP) or a Service Type (ToS); the DSCP or the ToS is used to carry the flow control priority information.

11. The method according to claim 1, characterized in that, The method further includes: The flexible flow control node information is encapsulated in the extended fields of the service message.

12. The method according to claim 11, characterized in that, The service message also carries flexible flow control indication information; the flexible flow control indication information is used to indicate that the flexible flow control node information is carried in the service message.

13. A network node, characterized in that, include: The acquisition module is used to acquire flexible flow control node information carried in service packets when network congestion occurs at the first network node. The flexible flow control node information includes node information of flexible flow control enabling nodes located upstream of the first network node in the network path; the first network node is a flexible flow control enabling node. The determining module is used to determine the first flexible flow control node corresponding to the first network node based on the flexible flow control node information; the first flexible flow control node is at least one of the flexible flow control enabling nodes located upstream of the first network node; The generation module is used to generate a first flexible flow control protocol message based on the node information of the first flexible flow control node; the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network traffic control. The sending module is used to send the first flexible flow control protocol message to the first flexible flow control node.

14. An electronic device, characterized in that, The system includes a processor and a memory electrically connected to the processor, the memory storing a computer program, and the processor being configured to call and execute the computer program from the memory to implement the network flexible flow control method as described in any one of claims 1-12.

15. A computer-readable storage medium, characterized in that, The storage medium is used to store a computer program that can be executed by a processor to implement the network flexible flow control method as described in any one of claims 1-12.

16. A computer program product, characterized in that, Includes a computer program, which is executed by a processor to implement the network flexible flow control method as described in any one of claims 1-12.