Flexible flow control method, network node, electronic device and storage medium
By acquiring flexible flow control node information from service messages, generating and sending flexible flow control protocol messages, the problem of insufficient flexibility in existing flow control mechanisms is solved, enabling flexible control of network traffic and improving network service processing efficiency.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-04-21
- Publication Date
- 2026-03-19
AI Technical Summary
The existing PFC and SFC flow control mechanisms lack flexibility in network traffic control, resulting in poor network flow control performance and failing to meet current flow control requirements.
A flexible flow control method is provided, which obtains flexible flow control node information from service packets when network nodes are congested, determines the upstream flexible flow control enabling nodes, and generates flexible flow control protocol packets to be sent to these nodes for network flow control, thereby realizing a flexible control mechanism for network traffic.
The network flow control effect has been optimized, the processing efficiency of network services has been improved, the limitations of hop-by-hop flow control mechanism and source-end flow control mechanism have been avoided, and more flexible and efficient network flow control has been achieved.
Smart Images

Figure CN2025090137_19032026_PF_FP_ABST
Abstract
Description
Flexible flow control method, network node, electronic device and storage medium
[0001] Cross-reference to related applications
[0002] The present application claims priority to the Chinese patent application No. 2024112832981, filed on September 13, 2024, and entitled "Flexible flow control method, network node, electronic device and storage medium", the content of which is incorporated herein by reference in its entirety. TECHNICAL FIELD
[0003] The present application relates to the field of communication technology, and in particular to a flexible flow control method, a network node, an electronic device and a storage medium. BACKGROUND
[0004] To provide lossless data transmission, IEEE (Institute of Electrical and Electronics Engineers) proposed a PFC (Priority Flow Control) mechanism in 802.1Qbb. When network congestion occurs in a downstream node in a network path, to avoid packet loss due to buffer overflow, a flow control frame is sent to an upstream node to make the upstream node stop sending flow. The PFC mechanism is a hop-by-hop layer 2 flow control mechanism, that is, the downstream node can only send a flow control frame to the upstream node hop by hop.
[0005] IEEE proposed a SFC (Source Flow Control) mechanism in P802.1Qdw, and the SFC works at the IP (Internet Protocol) layer. When network congestion occurs in a node, the congested node sends a layer 3 SFCM (SFC Message) to the source node to inform the source node to stop sending flow. The SFC reverses the source IP (i.e., the IP address of the source node) and the destination IP (i.e., the IP address of the destination node) of the service message, thereby routing the SFCM message to the source node.
[0006] In the above two flow control mechanisms, PFC adopts a hop-by-hop flow control mechanism, and SFC adopts a source flow control mechanism. For PFC, although the response speed of PFC is faster than that of SFC, the hop-by-hop back pressure mechanism of PFC may cause a series of problems such as PFC storm. For SFC, although SFC overcomes various defects of PFC, it can only provide flow control feedback for the longest path. Therefore, both PFC and SFC cannot meet the current flow control requirements. SUMMARY
[0007] The embodiments of the present application aim to provide a flexible flow control method, a network node, an electronic device and a storage medium, so as to realize a flexible control mechanism for network traffic, thereby optimizing the network traffic control effect and facilitating the improvement of the processing efficiency of network services.
[0008] To solve the above technical problems, the embodiments of the present application are implemented as follows:
[0009] In one aspect, the embodiments of the present application provide a flexible flow control method, comprising: when network congestion occurs at a first network node, 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 enabled node located upstream of the first network node in a network path; the first network node is a flexible flow control enabled node; based on the flexible flow control node information, determining a 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 enabled nodes located upstream of the first network node; 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 to instruct the first flexible flow control node to perform network traffic control; and sending the first flexible flow control protocol message to the first flexible flow control node.
[0010] In another aspect, the embodiments of the present application provide a network node, comprising: an acquisition module, configured to acquire flexible flow control node information carried in a service message when network congestion occurs at a first network node; the flexible flow control node information comprises node information of a flexible flow control enabled node located upstream of the first network node in a network path; the first network node is a flexible flow control enabled node; a determination module, configured to determine 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 the flexible flow control enabled nodes located upstream of the first network node; a generation module, configured to generate 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 to instruct the first flexible flow control node to perform network traffic control; and a sending module, configured to send the first flexible flow control protocol message to the first flexible flow control node.
[0011] In still another aspect, the embodiments of the present application provide an electronic device, comprising a processor and a memory electrically connected to the processor, wherein the memory stores a computer program, and the processor is configured to call and execute the computer program from the memory to implement the above flexible flow control method.
[0012] In still another aspect, the embodiments of the present application provide a computer readable storage medium for storing a computer program, wherein the computer program can be executed by a processor to implement the above flexible flow control method.
[0013] In still another aspect, an embodiment of the present application provides a computer program product comprising a computer program, which is executed by a processor to implement the flexible flow control method described above. BRIEF DESCRIPTION OF DRAWINGS
[0014] In order to more clearly illustrate the technical solutions of one or more embodiments of the present application or the prior art, the drawings needed to be used in the embodiment or prior art description will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the one or more embodiments of the present application, and other drawings can be obtained by those skilled in the art without any creative effort on the basis of these drawings.
[0015] Fig. 1 is a schematic structural diagram of a network according to an embodiment of the present application;
[0016] Fig. 2 is a schematic flow chart of a flexible flow control method according to an embodiment of the present application;
[0017] Fig. 3 is a schematic principle diagram of updating flexible flow control node information in a flexible flow control method according to an embodiment of the present application;
[0018] Fig. 4 is a schematic scenario diagram of a flexible flow control method according to an embodiment of the present application;
[0019] Fig. 5 is a schematic scenario diagram of a flexible flow control method according to another embodiment of the present application;
[0020] Fig. 6 is a schematic structural diagram of a network according to another embodiment of the present application;
[0021] Fig. 7 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 the present application;
[0022] Fig. 8 is a schematic structural diagram of a network according to still another embodiment of the present application;
[0023] Fig. 9 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 the present application;
[0024] Fig. 10 is a schematic diagram of the encapsulation format of a flexible flow control protocol packet in a flexible flow control method according to an embodiment of the present application;
[0025] Fig. 11 is a schematic diagram of the encapsulation format of a flexible flow control protocol packet in a flexible flow control method according to another embodiment of the present application;
[0026] Fig. 12 is a schematic diagram of the encapsulation format of a flexible flow control protocol packet in a flexible flow control method according to still another embodiment of the present application;
[0027] FIG. 13 is a schematic diagram of an encapsulation format of a flexible flow control protocol packet in a flexible flow control method according to another embodiment of the present application;
[0028] FIG. 14 is a schematic block diagram of a network node according to an embodiment of the present application;
[0029] FIG. 15 is a schematic block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION
[0030] The embodiments of the present application provide a flexible flow control method, a network node, an electronic device and a storage medium, so as to realize a flexible network flow control mechanism, thereby optimizing network flow control effect and facilitating improvement of processing efficiency of network services.
[0031] In order for those skilled in the art to better understand the technical solutions in the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor should fall within the scope of protection of the present application.
[0032] Currently, in terms of network flow control, PFC mechanism or SFC mechanism is usually adopted. The PFC mechanism is a hop-by-hop two-layer flow control mechanism, i.e., a downstream node can only send a flow control frame to an upstream node hop by hop. The SFC mechanism is a source-end control mechanism, i.e., a flow control frame is directly sent to a remote node. Taking the network shown in FIG. 1 as an example, in FIG. 1, the network includes two network nodes, gateway 1 and gateway 2, and there is a multi-hop router device between gateway 1 and gateway 2 which does not support the PFC protocol. Assuming that network congestion occurs at the egress of gateway 2, if the PFC mechanism is adopted, gateway 2 sends a flow control signal to the upstream router device adjacent thereto, and since the upstream router device does not support the PFC protocol, the flow control signal needs to be sent to gateway 1 supporting the PFC protocol hop by hop. If the SFC mechanism is adopted, gateway 2 directly sends a flow control signal to the source-end device, i.e., the RDMA (Remote Direct Memory Access) host shown in FIG. 1. It can be seen that the PFC mechanism and the SFC mechanism are not flexible enough in terms of network flow control, resulting in poor network flow control effect.
[0033] To solve the above technical problems, the present application hopes to directly send the flow control signal to the gateway 1 device, so as to utilize the gateway 1 to perform network flow control. In this way, not only the multi-hop router device between the gateway 1 and the gateway 2 is skipped, but also the traffic of the source device is not occupied, thereby greatly improving the efficiency and effect of network flow control. For this purpose, the present application provides a flexible flow control method, the congestion node can extract the flexible flow control node information carried in the service message, and determine the flexible flow control node corresponding to the congestion node according to the flexible flow control node information. The flexible flow control node is at least one flexible flow control enabled node located upstream of the congestion node in the network path. Further, according to the node information of the flexible flow control node, a first flexible flow control protocol message is generated, and the first flexible flow control protocol message is sent to the flexible flow control node. The first flexible flow control protocol message is used to instruct the flexible flow control node to perform network traffic control. Therefore, the present application can flexibly select at least one flexible flow control enabled node as a flexible flow control node from the upstream nodes of the congestion node, realize a flexible control mechanism for network traffic, so that the network flow control is no longer limited to the hop-by-hop flow control mechanism or the source flow control mechanism, the network traffic control effect is optimized, and the processing efficiency of network service is improved.
[0034] The network flexible flow control method provided by the embodiments of the present application can be executed by an electronic device or software installed in the electronic device. Specifically, the electronic device can be a terminal device or a server device. The terminal device can include a smart phone, a notebook computer, a smart wearable device, a vehicle-mounted terminal, etc., and the server device can include a physical server, a server cluster composed of multiple servers, or a cloud server capable of cloud computing.
[0035] FIG. 2 is a schematic flow chart of a flexible flow control method according to an embodiment of the present application. As shown in FIG. 2, the method includes the following steps S202-S208:
[0036] S202, when network congestion occurs at a first network node, obtaining flexible flow control node information carried in a service message, the flexible flow control node information including node information of a flexible flow control enabled node located upstream of the first network node in a network path, the first network node being the flexible flow control enabled node.
[0037] The flexible flow control enabled node refers to a network node supporting the FFC (Flex Flow Control) protocol. The node information can be any one or more of the node name, the node identifier, the node address, etc. 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 extension field of the service message. The specific encapsulation manner will be described in the following embodiments, which will not be described here.
[0038] S204, determine a first flexible traffic steering node corresponding to the first network node based on the flexible traffic steering node information, the first flexible traffic steering node being at least one of the flexible traffic steering enabled nodes upstream of the first network node.
[0039] The first network node can select any one or more of the flexible traffic steering enabled nodes upstream of the first network node as the first flexible traffic steering node, that is, the first flexible traffic steering node can include one or more flexible traffic steering nodes.
[0040] S206, generate a first flexible traffic steering protocol packet according to the node information of the first flexible traffic steering node, the first flexible traffic steering protocol packet being used to instruct the first flexible traffic steering node to control network traffic.
[0041] The first flexible traffic steering protocol packet is encapsulated in a three-layer packet. The first flexible traffic steering protocol packet can include at least one of the following information: address information of a traffic steering source network node, address information of a traffic steering destination network node, address information of the first network node, a traffic steering protocol type, traffic steering priority information, and traffic steering suspension time. The traffic steering source network node is the destination network node of the service packet, and the traffic steering destination network node is the source network node of the service packet. That is, the transmission path of the first flexible traffic steering protocol packet is opposite to the transmission path of the service packet.
[0042] Optionally, the first flexible traffic steering protocol packet further includes DSCP (Differentiated Services Code Point) or ToS (Type of Service), which is used to carry the traffic steering priority information.
[0043] Optionally, the address information of any node (such as the traffic steering source network node, the traffic steering destination network node, or the first network node) can be at least one of the following: an IP address, a level in a Fabric network, a port direction (such as uplink, downlink, or peer-link), and the like.
[0044] The traffic steering protocol type in the first flexible traffic steering protocol packet can be FFC, which can be identified by defining an option type, an IP protocol (IP protocol) or a destination port number of a UDP (User Datagram Protocol).
[0045] S208, send the first flexible traffic steering protocol packet to the first flexible traffic steering node.
[0046] In the 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 a destination-side device. It can be understood that if the node information of the end-side node is included in the flexible flow control node information carried by the service message, 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.
[0047] In the embodiment, each network node in the network can be pre-configured to configure whether the network node is a flexible flow control enabled node. Alternatively, when the network node is configured to be a flexible flow control enabled node, whether the flexible flow control enabled node is a response node of the flexible flow control can also be configured at the same time. For example, if a certain flexible flow control enabled node is configured not to be a response node of the flexible flow control in the configuration information, the node behaves as a normal node and does not respond to the flexible flow control protocol message in the network flow control process.
[0048] In addition, the flexible flow control method in the embodiment can be combined with the static configuration flow control method. If there is static configuration information at the congested node (i.e., the first network node), the priority of the static configuration information and the information carried by the service message can be flexibly specified.
[0049] Optionally, the service message also carries flexible flow control indication information, which is used to indicate that the flexible flow control node information is carried in the service message.
[0050] By using the technical solution of the embodiment, when network congestion occurs at the first network node (which is a flexible flow control enabled node), the flexible flow control node information carried in the service message is obtained, and the first flexible flow control node corresponding to the first network node is determined based on the flexible flow control node information. The flexible flow control node information includes the node information of the flexible flow control enabled node located upstream of the first network node in the network path, and the first flexible flow control node is at least one of the flexible flow control enabled nodes located upstream of the first network node. Then, the first flexible flow control protocol message is generated according to the node information of the first flexible flow control node, and the first flexible flow control protocol message is sent to 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 flow control. It can be seen that when network congestion occurs at the first network node, at least one flexible flow control enabled node upstream of the first network node can be flexibly selected as the first flexible flow control node (i.e., the node used for network flow control), thereby realizing a flexible network flow control mechanism, making the network flow control no longer limited to the hop-by-hop flow control mechanism or the source-end flow control mechanism, optimizing the network flow control effect, and being beneficial to improving the processing efficiency of network services.
[0051] In one embodiment, the first network node receives a service packet sent by an upstream node, and in the case that 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 the first network node updates the flexible flow control node information, the following modes can be used for updating:
[0052] Mode one: the current node information in the flexible flow control node information is replaced by the node information of the first network node. In mode one, the service packet only maintains the node information of one flexible flow control enabled node. If there is no node information in the flexible flow control node information, i.e., the current node information is empty, it means that the first network node is the first flexible flow control enabled node in the network path, and when the current node information is replaced by the node information of the first network node, the node information of the first network node can be added to the flexible flow control node information.
[0053] Mode two: the node information of the first network node is added to the flexible flow control node information. In mode two, the service packet maintains the flexible flow control node information by carrying a node information list. Since the number of routing hops in the network is usually limited, the overhead of the node information list is also relatively controllable. When the node information of the first network node is added to the flexible flow control node information, the node information 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 located downstream of router 1, then in the node information list, the node information of router 1 can be located before the node information of router 2. Currently, this is only an exemplary description of the order of each node information in the node information list, and does not constitute a limitation on the present application.
[0054] For any network node, the node information can be any one or more of the node name, node identifier, node address, etc. The node address can be a node IP address or an IP address prefix. Alternatively, the flexible flow control node information can be carried in the service packet by encapsulating an extension field, where the extension field can be an FFC-SID (Segment Identifier) field, an extension field of a source IP, an extension field of a destination IP, or an option extension field, etc. The present embodiment does not make specific limitations on the extension field. For example, the IP address prefix of the flexible flow control enabled node is encapsulated into the FFC-SID field.
[0055] Figure 3 is a schematic diagram illustrating updating of flexible flow control node information in a flexible flow control method according to an embodiment of the present application. In the network shown in Figure 3, there are router 1, router 2, router 3 and router 4 in the upstream and downstream relationship of the network path, wherein router 1, router 3 and router 4 support the FFC protocol, i.e., belong to flexible flow control enabled nodes. Router 2 does not support the FFC protocol, i.e., does not belong to a flexible flow control enabled node. In this embodiment, the service packet is an SRv6 (Segment Routing for IPv6) packet, and the extension field is an FFC-SID field. The router belonging to the flexible flow control enabled node updates the flexible flow control node information carried in the service packet by using its own node information after receiving the service packet, i.e., encapsulates the FFC-SID. The router not belonging to the flexible flow control enabled node does not update the flexible flow control node information carried in the service packet after receiving the service packet, i.e., does not encapsulate the FFC-SID, and the flexible flow control node information remains unchanged and is sent to the next network node. In Figure 3, Orignal SIDs in SRH (Segment Routing Header) represent original SIDs.
[0056] In Figure 3, "support flow control" shown in the icon of each router means that the current router supports the flexible flow control FFC protocol, and "not support flow control" means that the current router does not support the flexible flow control FFC protocol. The upper side of the network path shows the schematic encapsulation content of updating the flexible flow control node information according to mode one, and it can be seen that when the flexible flow control node information is updated using mode one, the service packet only maintains one FFC-SID, which can be the node information of the flexible flow control enabled node closest to the first network node. After the service packet reaches router 1, router 1 encapsulates its own node information into the FFC-SID, and 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 does not belong to a flexible flow control enabled node, it does not encapsulate the FFC-SID, and the flexible flow control node information carried by 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, i.e., replaces FFC-SID1 in the flexible flow control node information with FFC-SID3, and 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, i.e., replaces FFC-SID3 in the flexible flow control node information with FFC-SID4, and FFC-SID4 is the node information of router 4.
[0057] The lower side of the network path shows the encapsulation content of updating the flexible flow control node information according to mode two. It can be seen that when the flexible flow control node information is updated according to mode two, the service message maintains a FFC-SID list, and the FFC-SID list includes node information of multiple flexible flow control enabled nodes. After the service message reaches router 1, router 1 encapsulates its own node information into FFC-SID, as shown in FIG. 3, the node information corresponding to router 1 is encapsulated as FFC-SID1. After router 1 sends the service message to router 2, since router 2 does not belong to a flexible flow control enabled node, no FFC-SID is encapsulated, and the flexible flow control node information in the service message does not change, which is the same as the flexible flow control node information carried by the service message of router 1. After router 2 sends the service message to router 3, router 3 adds its own node information FFC-SID3 to the FFC-SID list. After router 3 sends the service message to router 4, router 4 adds its own node information FFC-SID4 to the FFC-SID list.
[0058] For the 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 nodes into the service message. Optionally, whether to encapsulate the node information of the flexible flow control enabled nodes into the service message can be determined according to the network topology, the administrator whitelist / blacklist, the node role, etc. For example, if the flexible flow control enabled node is in the whitelist, the node information of the flexible flow control enabled node is encapsulated into the service message; if the flexible flow control enabled node is in the blacklist, the node information of the flexible flow control enabled node is not encapsulated; and the like.
[0059] In one embodiment, the flexible flow control node information only includes node information of one flexible flow control enabled node, which can be the nearest upstream flexible flow control enabled node to the first network node in the network path. Based on this, when the first flexible flow control node corresponding to the first network node is determined according to the flexible flow control node information carried in the service message, it can be determined that the flexible flow control enabled node corresponding to the node information included in the flexible flow control node information is the first flexible flow control node. The node information can be any one or more of the node name, the node identifier, the node address, etc. The node address can be a node IP address or an IP address prefix.
[0060] In an embodiment, the flexible traffic steering node information comprises a node information list, and the node information list comprises node information of the plurality of flexible traffic steering enabled nodes. The node information can be any one or more of node name, node identifier, node address, etc. The node address can be a node IP address or an IP address prefix. Based on this, when the first network node determines the first flexible traffic steering node according to the flexible traffic steering node information carried in the service packet, the first flexible traffic steering node can be determined from the plurality of flexible traffic steering enabled nodes according to the node information list.
[0061] Optionally, when the first flexible traffic steering node is determined from the plurality of flexible traffic steering enabled nodes according to the node information list, the flexible traffic steering enabled node corresponding to the node information in the node information list can be determined as the first flexible traffic steering node; or the flexible traffic steering enabled node closest to the first network node can be determined as the first flexible traffic steering node from the plurality of flexible traffic steering enabled nodes according to the node information list.
[0062] In the embodiment, when the first network node determines the first flexible traffic steering node, all the flexible traffic steering enabled nodes maintained in the service packet can be determined as the first flexible traffic steering information, or one of the flexible traffic steering enabled nodes maintained in the service packet can be selected as the first flexible traffic steering information. For example, if the node information of each flexible traffic steering enabled node in the node information list is arranged according to the upstream and downstream relationship in the network path, the flexible traffic steering enabled node corresponding to the node information at the last item of the node information list is the flexible traffic steering enabled node closest to the first network node, and this flexible traffic steering enabled node can be determined as the first flexible traffic steering node.
[0063] Of course, part (or multiple) of the flexible traffic steering enabled nodes maintained in the service packet can also be selected as the first flexible traffic steering information. For example, whether a flexible traffic steering enabled node is selected as the first flexible traffic steering node can be determined according to the node congestion status, node state, whether the node is a key node, etc. of each flexible traffic steering enabled node. In summary, the first network node has flexibility when determining the first flexible traffic steering node, and is not limited to the number of the first flexible traffic steering nodes, the position of the first flexible traffic steering nodes in the network, the node type of the first flexible traffic steering nodes, etc.
[0064] If the first flexible traffic steering node comprises multiple nodes, the first network node can send corresponding first flexible traffic steering protocol packets to the multiple first flexible traffic steering nodes in a parallel manner. Since the node information of each first flexible traffic steering node is different, the content of the first flexible traffic steering protocol packet sent to each first flexible traffic steering node is also different.
[0065] Taking the network shown in FIG. 3 as an example, if network congestion occurs in a certain router in the network, the router sends a flexible flow control protocol packet to an upstream node supporting the FFC protocol. Specifically, the router in which network congestion occurs extracts flexible flow control node information from the SRH header and encapsulates it into a flexible flow control protocol packet, for example, into the destination IP field of the flexible flow control protocol packet, so as to send the flexible flow control protocol packet to the flexible flow control node.
[0066] If only one FFC-SID is carried in the SRH header, the flexible flow control enabled node indicated by the FFC-SID sends a flexible flow control protocol packet. In this case, a step-by-step flow control backpressure mode similar to the PFC mechanism is still supported, that is, when the flexible flow control node also experiences network congestion, the flexible flow control node can send a flexible flow control protocol packet to an upstream node based on the FFC-SID carried in the current service packet. It should be noted that the step-by-step backpressure mode of the FFC mechanism is different from that of the PFC mechanism, and the step-by-step backpressure mode of the FFC mechanism supports traversing non-flexible flow control enabled nodes. Taking the network shown in FIG. 4 as an example, if router 4 experiences network congestion, router 4 extracts FFC-SID 3 carried in the service packet, that is, the node information of router 3, and generates a flexible flow control protocol packet, and sends the flexible flow control protocol packet to router 3. If router 3 also experiences network congestion, router 3 extracts FFC-SID 1 carried in the service packet, that is, the node information of router 1, and generates a flow control protocol packet, and sends the flow control protocol packet to router 1. As can be seen, since router 2 does not support the FFC protocol, the node information of router 2 is not included in the flexible flow control node information carried in the service packet, and router 3 can penetrate router 2 to directly send the flexible flow control protocol packet to router 1.
[0067] If a list of FFC-SIDs is carried in the SRH header, when network congestion occurs in a certain network node, a flexible flow control protocol packet can be sent to a certain flexible flow control enabled node specified in the list of FFC-SIDs, or a parallel mode can be used to simultaneously send flexible flow control protocol packets to multiple flexible flow control enabled nodes in the list of FFC-SIDs. As shown in FIG. 5, assuming that router 5 experiences network congestion, router 5 can sequentially extract each FFC-SID in the list of FFC-SIDs, including the node information FFC-SID 1 of router 1, the node information FFC-SID 3 of router 3, and the node information FFC-SID 4 of router 4, and then generate corresponding flexible flow control protocol packets for routers 1, 3, and 4, respectively, and send the flexible flow control protocol packets to the corresponding routers.
[0068] It should be noted that in FIG. 4 and FIG. 5, "supporting flow control" shown in the icon of each router means that the current router supports the flexible flow control FFC protocol, and "not supporting flow control" means that the current router does not support the flexible flow control FFC protocol.
[0069] In this embodiment, the flexible flow control node information is carried in the service message through various modes (such as mode one and mode two), so that one or more flexible flow control enabled nodes located upstream are flexibly selected for flexible flow control according to the flexible flow control node information carried in the service message. When multiple flexible flow control enabled nodes are selected for flexible flow control, the flexible flow control protocol message is sent to the multiple flexible flow control enabled nodes simultaneously by using a parallel mode, which not only realizes the effect of flexibly selecting the flexible flow control node, but also realizes the flexible control mechanism of network traffic, and improves the efficiency of network flexible flow control.
[0070] In one embodiment, the first network node receives a second flexible flow control protocol message from a second network node, wherein the second network node is located downstream of the first network node, and the second flexible flow control protocol message is used to instruct the first network node to control network traffic. That is, the first network node is the flexible flow control node corresponding to the second network node. After the first network node receives the second flexible flow control protocol message, the first network node controls network traffic according to the second flexible flow control protocol message.
[0071] In this embodiment, the second network node is a flexible flow control enabled node. That is, only the flexible flow control enabled node supporting the FFC protocol can generate the FFC type flexible flow control protocol message when network congestion occurs, and send the flexible flow control protocol message to the upstream flexible flow control enabled node.
[0072] Considering that the first network node may also be in network congestion, therefore, after the first network node receives the second flexible flow control protocol message, if the first network node is in network congestion, the type of flow control protocol supported by the target network node located upstream of the first network node is determined, a target flow control protocol message is generated according to the type of flow control protocol supported by the target network node, and the target flow control protocol message is sent to the target network node. The type of flow control protocol of the target flow control protocol message can be FFC, PFC or SFC, which can be determined according to whether the upstream node (i.e., the target network node) of the first network node contains a flexible flow control enabled node (i.e., a node supporting the FFC protocol).
[0073] If the target network node is a flexible flow control enabled node (i.e., a node supporting the FFC protocol), the flow control protocol type of the target flow control protocol message is FFC. At this time, the target flow control protocol message can be forwarded to at least one flexible flow control enabled node upstream of the first network node, and the target network node is the at least one flexible flow control enabled node. The target flow control protocol message can include at least one of the following: 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 suspension 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.
[0074] 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. At this time, the target flow control protocol message is sent to the previous network node of the first network node or the source network node. If the target flow control protocol message is sent to the previous network node of the first network node, and the previous network node supports the PFC protocol, 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, the flow control protocol type of the target flow control protocol message is SFC.
[0075] The flexible flow control method provided in the present application is described below through specific embodiments.
[0076] FIG. 6 is a schematic structural diagram of a network according to an embodiment of the present application. As shown in FIG. 6, on the Nanjing side, there are a source end, a gateway 1, and a RoCE (RDMA over Converged Ethernet) switch 1, wherein the gateway 1 and the RoCE switch 1 support the FFC protocol. On the Beijing side, there are a gateway 2, a RoCE switch 2, and a destination end, wherein the gateway 2 and the RoCE switch 2 support the FFC protocol. The source end and the destination end support the PFC protocol. The multi-hop router or OTN (Optical Transport Network) device between the gateway 1 and the gateway 2 does not support the flexible flow control protocol, but can transparently transmit the flexible flow control protocol message. Taking an IPv6 message as an example, the IP address prefix of each network node is shown in FIG. 6, such as 111::1 and 222::2.
[0077] In this embodiment, only one node information of the flexible flow control enabled node is maintained in the IPv6 packet. The IPv6 packet is sent from the end node without carrying the node information of the flexible flow control node. When the IPv6 packet passes through the RoCE switch 1, since the RoCE switch 1 is the flexible flow control enabled node supporting the FFC protocol, the RoCE switch 1 encapsulates its IP address prefix (i.e., “111::1”) into the extension field of the IPv6 packet, such as the IPv6 packet header. When the IPv6 packet passes through the gateway 1, since the gateway 1 is the flexible flow control enabled node supporting the FFC protocol, the gateway 1 encapsulates its IP address prefix (i.e., “222::2”) into the extension field of the IPv6 packet, such as the IPv6 packet header. Since only one node information of the flexible flow control enabled node is maintained in the IPv6 packet, when the gateway 1 encapsulates the IP address prefix, the IP address prefix of the RoCE switch 1 is replaced. Only the IP address prefix “222::2” of the gateway 1 is maintained in the IPv6 packet of the gateway 1.
[0078] Suppose that network congestion occurs at the egress of the gateway 2, the gateway 2 first extracts the node information of the flexible flow control node in the IPv6 packet, i.e., the IP address prefix “222::2” of the gateway 1. Then, the gateway 2 generates a flexible flow control protocol packet and sends the flexible flow control protocol packet to the gateway 1. The flexible flow control protocol packet is encapsulated in a three-layer packet, and the flexible flow control protocol packet can include at least one of the following information: address information of a flow control source network node, address information of a flow control destination network node, address information of the gateway 2, flow control protocol type (i.e., FFC), flow control priority information, and flow control suspension time. The flow control source network node is the destination network node of the IPv6 packet, i.e., the destination end node shown in FIG. 6. The flow control destination network node is the source network node of the IPv6 packet, i.e., the source end node shown in FIG. 6.
[0079] After the gateway 2 sends the flexible flow control protocol packet to the gateway 1, the gateway 1 performs network flow control according to the flexible flow control protocol packet. If the gateway 1 also experiences network congestion, the gateway 1 extracts the node information of the flexible flow control node in the IPv6 packet, i.e., the IP address prefix “111::1” of the RoCE switch 1. Then, the gateway 1 generates a flexible flow control protocol packet and sends the flexible flow control protocol packet to the RoCE switch 1. The flexible flow control protocol packet is encapsulated in a three-layer packet, and the flexible flow control protocol packet can include at least one of the following information: address information of a flow control source network node, address information of a flow control destination network node, address information of the gateway 1, flow control protocol type (i.e., FFC), flow control priority information, and flow control suspension time. The flow control source network node is the destination network node of the IPv6 packet, i.e., the destination end node shown in FIG. 6. The flow control destination network node is the source network node of the IPv6 packet, i.e., the source end node shown in FIG. 6.
[0080] If network congestion occurs again in the RoCE switch 1, the RoCE switch 1 discovers that the source end node supports the PFC protocol through an existing protocol, and the IPv6 message of the source end node does not carry any flexible flow control node information, which indicates that there is no any flexible flow control enabled node upstream of the RoCE switch 1. Therefore, the RoCE switch 1 generates a PFC type flow control protocol message, and sends the PFC type flow control protocol message to the source end node.
[0081] In this embodiment, there are multiple ways to carry the flexible flow control node information based on the extension field of the IPv6 message. Taking carrying the flexible flow control node information in the HBH (hop-by-hop) extension header as an example, the encapsulation format is shown in FIG. 7, which includes the definition of the HBH extension header and the option. A new option header is defined under the HBH, the type (flow control protocol type) is FFC, and the address prefix of the flexible flow control node occupies 48 bits. It should be noted that only the node of the flexible flow control protocol modifies this field, and other nodes are not aware of it.
[0082] In this embodiment, at least one flexible flow control enabled node can be flexibly selected as the flexible flow control node (i.e., the node used for network flow control) of the congestion node according to the flexible flow control node information carried in the IPv6 message, thereby realizing a flexible network flow control mechanism, making the network flow control no longer limited to the hop-by-hop flow control mechanism or the source end flow control mechanism, optimizing the network flow control effect, and being beneficial to improving the processing efficiency of network services.
[0083] FIG. 8 is a schematic structural diagram of a network according to another embodiment of the present application. As shown in FIG. 8, the network nodes on the Nanjing side include a source end, a gateway 1 and a RoCE switch 1, wherein the gateway 1 and the RoCE switch 1 support the FFC protocol. The network nodes on the Beijing side include a gateway 2, a RoCE switch 2 and a destination end, wherein the gateway 2 and the RoCE switch 2 support the FFC protocol. The source end node and the destination end node both support the PFC protocol. The multi-hop routers or OTN devices between the gateway 1 and the gateway 2 do not support the flexible flow control protocol, but can transparently transmit the flexible flow control protocol message. Taking a service message as an SRv6 (Segment Routing IPv6, segment routing based on IPv6 forwarding plane) message as an example, the IP address prefixes of the network nodes are shown in FIG. 8, such as 111::1, 222::2, etc.
[0084] In this embodiment, the node information list is maintained in the SRv6 packet, the node information list includes node information of multiple flexible flow control enabled nodes, and parallel back pressure is used for flexible flow control. When the SRv6 packet is sent from the end-side node, the node information of the flexible flow control is not carried. When the SRv6 packet passes through the RoCE switch 1, since the RoCE switch 1 is a flexible flow control enabled node supporting the FFC protocol, the RoCE switch 1 encapsulates its own IP address prefix (namely, “111::1”) into the extension field of the SRv6 packet, such as the SRv6 packet header. When the SRv6 packet passes through the gateway 1, since the gateway 1 is a flexible flow control enabled node supporting the FFC protocol, the gateway 1 encapsulates its own IP address prefix (namely, “222::2”) into the extension field of the IPv6 packet, such as the IPv6 packet header. Since the node information list is maintained in the SRv6 packet, after the gateway 1 adds the IP address prefix “222::2” into the SRv6 packet, the node information of the flexible flow control carried by the SRv6 packet includes the IP address prefix “111::1” of the RoCE switch 1 and the IP address prefix “222::2” of the gateway 1. Similarly, when the SRv6 packet passes through the gateway 2, the node information of the flexible flow control carried by the SRv6 packet of the gateway 2 includes the IP address prefix “111::1” of the RoCE switch 1, the IP address prefix “222::2” of the gateway 1, and the IP address prefix “333::3” of the gateway 2. When the SRv6 packet passes through the RoCE switch 2, the node information of the flexible flow control carried by the SRv6 packet of the RoCE switch 2 includes the IP address prefix “111::1” of the RoCE switch 1, the IP address prefix “222::2” of the gateway 1, the IP address prefix “333::3” of the gateway 2, and the IP address prefix “444::4” of the RoCE switch.
[0085] It is assumed that network congestion occurs at the RoCE switch 2, and the RoCE switch 2 extracts the node information list in the SRv6 packet to determine the flexible flow control nodes. Alternatively, the RoCE switch 2 can extract the IP address prefix “333::3” of the gateway 2 closest to it, and send the flexible flow control protocol packet to the gateway 2. Alternatively, considering that Nanjing and Beijing are far apart, if the flow control is back pressed to the gateway 1 when the gateway 2 is congested, the pressure on the gateway 2 will be large, and at this time, the gateway 1 on the Nanjing side needs to be notified to stop sending traffic to the gateway 2 in the shortest possible time, which is not flexible enough. Therefore, when the RoCE switch 2 is congested, the RoCE switch 2 can send the flexible flow control protocol packet to the gateway 2 and the gateway 1 located upstream according to the node information of the flexible flow control carried in the SRv6 packet of the RoCE switch 2. In this embodiment, it is assumed that the node device between the gateway 1 and the RoCE switch 1 supports the PFC protocol, and the PFC flow control is used between the RoCE switch 1 and the source node.
[0086] In this embodiment, there are multiple ways for the extended field of the SRv6 message to carry the flexible flow control node information. Taking the FFC-SID list carried in the SRv6 SRH (Segment Routing Header) extension header as an example, the encapsulation format is shown in FIG. 9. Optionally, a reserved bit in the Flags can be borrowed to indicate that the FFC-SID list exists in the SRv6 message.
[0087] FIG. 10 is a schematic diagram of an encapsulation format of a flexible flow control protocol message according to an embodiment of the present application. Taking the flexible flow control node information carried in the destination extension 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 extension header is processed at the node specified by the destination IP. The flexible flow control node information includes flow control priority, flow control pause duration, and address information of a congested node. As shown in FIG. 10, the flow control priority (pcp) occupies 3 bits; the flow control pause duration (pause duration) occupies 24 bits, and the unit is ns; and the address information of the congested node occupies 48 bits. It should be noted that FIG. 10 only shows the definition of the extension header.
[0088] FIG. 11 is a schematic diagram of an encapsulation format of a flexible flow control protocol message according to another embodiment of the present application. In FIG. 11, the RECN (Really Explicit Congestion Notification) proposed by RFC7514 is a control message similar to the ICMP (Internet Control Message Protocol) source suppression (Source Quench), and multiplexes the Type field of the source suppression message, and defines the meaning of 4-byte values in the explicit notification field.
[0089] FIG. 12 is a schematic diagram of an encapsulation format of a flexible flow control protocol message according to still another embodiment of the present application. In FIG. 12, a FFCM message format similar to the encapsulation format of the RECN is shown, in which a new value of the type field indicates that the current ICMP message is a FFCM message. The definitions of the pause duration, PCP, and reserved fields are the same as in the above embodiments.
[0090] FIG. 13 is a schematic diagram of an encapsulation format of a flexible flow control protocol message according to still another embodiment of the present application. In FIG. 13, by multiplexing the Type of the RECN, a new Code value is defined to indicate that the current message is a FFCM message for flow control of a target node.
[0091] It should be noted that the above embodiments are merely exemplary description of the network flexible flow control method provided by the present application, and are not intended to limit the present application. The encapsulation format of the flexible flow control protocol message can also be various, and due to the limitation of the length, it will not be listed one by one here.
[0092] In summary, specific embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions noted in the claims can be performed in a different order and still achieve the desired results. In addition, the processes depicted in the figures do not necessarily require the particular order shown, or sequential order, to achieve the desired results. In certain implementations, multitasking and parallel processing can be advantageous.
[0093] The above is the flexible flow control method provided by the embodiments of the present application. Based on the same idea, the embodiments of the present application also provide a network node.
[0094] FIG. 14 is a schematic block diagram of a network node according to an embodiment of the present application. As shown in FIG. 14, the network node includes the following modules.
[0095] The obtaining module 141 is configured to obtain flexible flow control node information carried in a service message when network congestion occurs at a first network node; the flexible flow control node information includes node information of a flexible flow control enabled node located upstream of the first network node in a network path; and the first network node is a flexible flow control enabled node.
[0096] The determining module 142 is configured to determine a first flexible flow control node corresponding to the first network node based on the flexible flow control node information; and the first flexible flow control node is at least one of the flexible flow control enabled nodes located upstream of the first network node.
[0097] The generating module 143 is configured to generate a first flexible flow control protocol message according to node information of the first flexible flow control node; and the first flexible flow control protocol message is used to instruct the first flexible flow control node to perform network flow control.
[0098] The sending module 144 is configured to send the first flexible flow control protocol message to the first flexible flow control node.
[0099] In one embodiment, the flexible flow control node information only includes node information of one flexible flow control enabled node; and 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 step: determining that the flexible flow control enabled node corresponding to the node information included in the flexible flow control node information is the first flexible flow control node.
[0100] In an embodiment, the flexible traffic steering node information comprises a node information list; the node information list comprises node information of a plurality of flexible traffic steering enabled nodes; the determining module 142, when determining the first flexible traffic steering node corresponding to the first network node based on the flexible traffic steering node information, performs the following step: determining the first flexible traffic steering node from the plurality of flexible traffic steering enabled nodes according to the node information list.
[0101] In an embodiment, the determining module 142, when determining the first flexible traffic steering node from the plurality of flexible traffic steering enabled nodes according to the node information list, performs the following step: determining that the flexible traffic steering enabled nodes corresponding to the plurality of node information in the node information list are the first flexible traffic steering node; or determining that the flexible traffic steering enabled node closest to the first network node from the plurality of flexible traffic steering enabled nodes is the first flexible traffic steering node according to the node information list.
[0102] In an embodiment, the network node further comprises an updating module configured to update the flexible traffic steering node information according to the node information of the first network node in response to receiving the service packet.
[0103] In an embodiment, the updating module, when updating the flexible traffic steering node information according to the node information of the first network node, performs the following step: replacing the current node information in the flexible traffic steering node information with the node information of the first network node; or adding the node information of the first network node to the flexible traffic steering node information.
[0104] In an embodiment, the network node further comprises a receiving module configured to receive a second flexible traffic steering protocol packet from a second network node; the second network node is located downstream of the first network node; the second flexible traffic steering protocol packet is used to instruct the first network node to perform network traffic control; the second network node is a flexible traffic steering enabled node; a traffic steering module configured to perform network traffic control according to the second flexible traffic steering protocol packet.
[0105] In an embodiment, the network node further comprises a protocol type determining module configured to determine a traffic steering protocol type supported by a target network node located upstream of the first network node in the case that network congestion occurs at the first network node after the receiving module receives the second flexible traffic steering protocol packet from the second network node; a generating and sending module configured to generate a target traffic steering protocol packet and send the target traffic steering protocol packet to the target network node.
[0106] In an embodiment, the first flexible flow control protocol packet comprises at least one of the following information: address information of a flow control source network node, address information of a flow control destination network node, address information of the first network node, flow control protocol type, flow control priority information, flow control suspension time.
[0107] In an embodiment, the first flexible flow control protocol packet further comprises a differentiated services code point (DSCP) or a type of service (ToS), wherein the DSCP or the ToS is used to carry the flow control priority information.
[0108] In an embodiment, the network node further comprises an encapsulation module configured to encapsulate the flexible flow control node information in an extension field of the service packet.
[0109] In an embodiment, the service packet further carries flexible flow control indication information, wherein the flexible flow control indication information is used to indicate that the flexible flow control node information is carried in the service packet.
[0110] By using the technical solution of the embodiments of the present application, when network congestion occurs at a first network node (which is a flexible flow control enabled node), the flexible flow control node information carried in a service packet is obtained, and a first flexible flow control node corresponding to the first network node is determined based on the flexible flow control node information. The flexible flow control node information comprises node information of a flexible flow control enabled node located upstream of the first network node in a network path, and the first flexible flow control node is at least one of the flexible flow control enabled nodes located upstream of the first network node. Then, a first flexible flow control protocol packet is generated according to the node information of the first flexible flow control node, and the first flexible flow control protocol packet is sent to the first flexible flow control node. The first flexible flow control protocol packet is used to instruct the first flexible flow control node to perform network flow control. As can be seen, when network congestion occurs at the first network node, at least one flexible flow control enabled node upstream of the first network node can be flexibly selected as the first flexible flow control node (i.e., a node used to perform network flow control), thereby realizing a flexible network flow control mechanism, making the network flow control no longer limited to a hop-by-hop flow control mechanism or a source-end flow control mechanism, optimizing the network flow control effect, and being beneficial to improving the processing efficiency of network services.
[0111] Those skilled in the art should understand that the network node in FIG. 14 can be used to implement the flexible flow control method described above, and the detailed description thereof should be similar to the description in the method part above. To avoid tediousness, no further description is given here.
[0112] Based on the same idea, the embodiment of the present application further provides an electronic device as shown in FIG. 15. The electronic device can have great difference due to different configurations or performances, and can include one or more processors 1501 and memories 1502, and the memories 1502 can store one or more stored applications or data. The memory 1502 can be temporary storage or persistent storage. The applications stored in the memory 1502 can include one or more modules (not shown in the figure), and each module can include a series of computer executable instructions in the electronic device. Further, the processor 1501 can be configured to communicate with the memory 1502 and execute the series of computer executable instructions in the memory 1502 on the electronic device. The electronic device can further 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.
[0113] In particular, in the embodiment, the electronic device includes a memory and one or more programs, wherein one or more programs are stored in the memory, and the one or more programs can include one or more modules, and each module can include a series of computer executable instructions in the electronic device, and the one or more processors are configured to execute the one or more programs including the following computer executable instructions:
[0114] When network congestion occurs at a first network node, flexible flow control node information carried in a service message is acquired; the flexible flow control node information includes node information of a flexible flow control enabled node located upstream of the first network node in a network path; the first network node is a flexible flow control enabled node;
[0115] 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 enabled nodes located upstream of the first network node;
[0116] According to 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 flow control;
[0117] The first flexible flow control protocol message is sent to the first flexible flow control node.
[0118] By adopting the technical solutions of the embodiments of the present application, when network congestion occurs at a first network node (the first network node is a flexible flow control enabled node), flexible flow control node information carried in a service message is acquired, and a first flexible flow control node corresponding to the first network node is determined based on the flexible flow control node information, the flexible flow control node information including node information of flexible flow control enabled nodes located upstream of the first network node in a network path, and the first flexible flow control node being at least one of the flexible flow control enabled nodes located upstream of the first network node. Then, a first flexible flow control protocol message is generated according to the node information of the first flexible flow control node, and the first flexible flow control protocol message is sent to 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 flow control. As can be seen, when network congestion occurs at the first network node, at least one flexible flow control enabled node upstream of the first network node can be flexibly selected as the first flexible flow control node (i.e., a node used to perform network flow control), thereby realizing a flexible network flow control mechanism, making network flow control no longer limited to a hop-by-hop flow control mechanism or a source-end flow control mechanism, optimizing network flow control effect, and being beneficial to improving processing efficiency of network services.
[0119] The embodiments of the present application also provide a computer readable storage medium storing one or more computer programs, the one or more computer programs including instructions capable of causing an electronic device including a plurality of application programs to execute various processes of the network flexible flow control method embodiments described above when the instructions are executed by the electronic device, and specifically used to execute: acquiring flexible flow control node information carried in a service message when network congestion occurs at a first network node; the flexible flow control node information including node information of flexible flow control enabled nodes located upstream of the first network node in a network path; the first network node being a flexible flow control enabled 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 being at least one of the flexible flow control enabled nodes located upstream of the first network node; generating a first flexible flow control protocol message according to node information of the first flexible flow control node; the first flexible flow control protocol message being used to instruct 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.
[0120] By adopting the technical scheme of the embodiment of the present application, when network congestion occurs at the first network node (which is a flexible flow control enabled node), the flexible flow control node information carried in the service message is acquired, and a first flexible flow control node corresponding to the first network node is determined based on the flexible flow control node information, the flexible flow control node information includes node information of the flexible flow control enabled nodes located upstream of the first network node in the network path, and the first flexible flow control node is at least one of the flexible flow control enabled nodes located upstream of the first network node. Then, the first flexible flow control protocol message is generated according to the node information of the first flexible flow control node, and the first flexible flow control protocol message is sent to 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 flow control. It can be seen that when network congestion occurs at the first network node, at least one flexible flow control enabled node upstream of the first network node can be flexibly selected as the first flexible flow control node (i.e., the node used for network flow control), thereby realizing a flexible network flow control mechanism, making the network flow control no longer limited to a hop-by-hop flow control mechanism or a source-end flow control mechanism, optimizing the network flow control effect, and being beneficial to improving the processing efficiency of network services.
[0121] The embodiment of the present application provides a computer program product, including a computer program, which is executed by a processor to realize various processes of the network flexible flow control method embodiment and achieve the same technical effects. To avoid repetition, details are not described here.
[0122] The system, device, module or unit described in the above embodiments can be specifically implemented by a computer chip or entity, or by a product with certain functions. A typical implementation device is a computer. Specifically, the computer may, for example, be a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, a wearable device, or a combination of any of these devices.
[0123] For the convenience of description, the above device is described as various units by function. Of course, the functions of each unit can be implemented in the same or more software and / or hardware in the implementation of the present application.
[0124] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system or a computer program product. Therefore, the present application can take the form of a complete hardware embodiment, a complete software embodiment or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented on one or more computer usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.
[0125] The computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks or in conjunction with the flowcharts described above.
[0126] These computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instructions which implement the function specified in the flowchart block or blocks or in conjunction with the flowcharts described above.
[0127] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks or in conjunction with the flowcharts described above.
[0128] In a typical configuration, a computing device includes one or more processors (CPUs), input / output interfaces, network interfaces, and memory.
[0129] The memory can include non-persistent memory and / or volatile memory, such as random access memory (RAM) and / or cache memory, non-volatile memory, such as read-only memory (ROM), EPROM, and / or flash memory, etc. The memory is an example of computer readable media.
[0130] Computer-readable media includes permanent and non-permanent, movable and non-movable media that can be implemented by any method or technology to store information. The information can be computer-readable instructions, data structures, program modules 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, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible to a computing device. According to the definition herein, computer-readable media does not include transitory media such as modulated data signals and carriers.
[0131] It should also be noted that the terms "comprising", "including", or any other variant thereof are intended to cover non-exclusive inclusions, so that processes, methods, articles or devices that include a series of elements not only include those elements, but also include other elements not explicitly listed, or inherent to such processes, methods, articles or devices. Without more limitations, the element defined by the statement "including a" does not exclude the presence of other identical elements in the process, method, article or device including the element.
[0132] The present application can be described in the general context of computer-executable instructions, such as program modules, executed by computers. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The present application can also be practiced in distributed computing environments where tasks are performed by remote processing devices connected through a communication network. In a distributed computing environment, program modules can be located in both local and remote computer storage media, including storage devices.
[0133] Each embodiment in the present application is described in a progressive manner, and the same or similar parts between each embodiment can be referred to each other. Each embodiment focuses on the difference from other embodiments. In particular, for system embodiments, since they are basically similar to method embodiments, the description is relatively simple, and the relevant parts can be referred to the part of the method embodiment.
[0134] The above merely provides an example of the present application, and is not intended to limit the present application. Any modification, equivalent replacement, improvement, etc. within the spirit and principle of the present application should be included in the scope of claims of the present application.
Claims
1. A flexible flow control method, wherein, The method comprises: obtaining flexible flow control node information carried in a service packet when network congestion occurs at a first network node; the flexible flow control node information comprises node information of a flexible flow control enabled node located upstream of the first network node in a network path; the first network node is a flexible flow control enabled 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 the flexible flow control enabled nodes located upstream of the first network node; generating a first flexible flow control protocol packet according to node information of the first flexible flow control node; the first flexible flow control protocol packet is used to instruct the first flexible flow control node to perform network flow control; sending the first flexible flow control protocol packet to the first flexible flow control node.
2. The method of claim 1, wherein, The flexible flow control node information only comprises node information of one flexible flow control enabled node; The determination of the first flexible flow control node corresponding to the first network node based on the flexible flow control node information comprises: determining that the flexible flow control enabled node corresponding to the node information included in the flexible flow control node information is the first flexible flow control node.
3. The method of claim 1, wherein, The flexible flow control node information comprises a node information list; the node information list comprises node information of a plurality of flexible flow control enabled nodes; The determination of the first flexible flow control node corresponding to the first network node based on the flexible flow control node information comprises: determining the first flexible flow control node from the plurality of flexible flow control enabled nodes according to the node information list.
4. The method of claim 3, wherein, The determination of the first flexible flow control node from the plurality of flexible flow control enabled nodes according to the node information list comprises: determining that the flexible flow control enabled nodes corresponding to the plurality of node information in the node information list are the first flexible flow control node; or, determining that the flexible flow control enabled node closest to the first network node from the plurality of flexible flow control enabled nodes is the first flexible flow control node according to the node information list.
5. The method of claim 1, wherein, The method further comprises: updating the flexible flow control node information according to node information of the first network node in response to receiving the service packet.
6. The method of claim 5, wherein, The updating of the flexible flow control node information according to the node information of the first network node comprises: replacing current node information in the flexible flow control node information with the node information of the first network node; or, adding the node information of the first network node to the flexible flow control node information.
7. The method of claim 1, wherein, The method further comprises: receiving a second flexible flow control protocol packet from a second network node; the second network node is located downstream of the first network node; the second flexible flow control protocol packet is used to instruct the first network node to perform network flow control; the second network node is a flexible flow control enabled node; performing network flow control according to the second flexible flow control protocol packet.
8. The method of claim 7, wherein, After the receiving of the second flexible flow control protocol packet from the second network node, the method further comprises: In a case that network congestion occurs at the first network node, a type of flow control protocol supported by a target network node located upstream of the first network node is determined; A target flow control protocol packet is generated according to the type of flow control protocol, and the target flow control protocol packet is sent to the target network node.
9. The method of claim 1, wherein, The first flexible flow control protocol packet comprises at least one of the following information: address information of a flow control source network node, address information of a flow control destination network node, address information of the first network node, a flow control protocol type, flow control priority information, and flow control suspension time.
10. The method of claim 9, wherein, The first flexible flow control protocol packet further comprises a differentiated services code point (DSCP) or a type of service (ToS), and the DSCP or the ToS is used to carry the flow control priority information.
11. The method of claim 1, wherein, The method further comprises: The flexible flow control node information is encapsulated in an extension field of the service packet.
12. The method of claim 11, wherein, The service packet further carries flexible flow control indication information, and the flexible flow control indication information is used to indicate that the flexible flow control node information is carried in the service packet.
13. A network node, wherein, Comprise: An acquisition module is configured to acquire flexible flow control node information carried in a service packet when network congestion occurs at a first network node; The flexible flow control node information comprises node information of a flexible flow control enabled node located upstream of the first network node in a network path, and the first network node is a flexible flow control enabled node; A determination module is configured to determine a first flexible flow control node corresponding to the first network node based on the flexible flow control node information, and the first flexible flow control node is at least one of the flexible flow control enabled nodes located upstream of the first network node; A generation module is configured to generate a first flexible flow control protocol packet according to node information of the first flexible flow control node, and the first flexible flow control protocol packet is used to instruct the first flexible flow control node to perform network flow control; A sending module is configured to send the first flexible flow control protocol packet to the first flexible flow control node.
14. An electronic device, comprising: A processor and a memory electrically connected to the processor are comprised, the memory stores a computer program, and the processor is configured to call and execute the computer program from the memory to implement the network flexible flow control method according to any one of claims 1-12.
15. A computer readable storage medium, wherein, The storage medium is configured to store a computer program, and the computer program can be executed by a processor to implement the network flexible flow control method according to any one of claims 1-12.
16. A computer program product, wherein, A computer program is comprised, and the computer program is executed by a processor to implement the network flexible flow control method according to any one of claims 1-12.
Citation Information
Patent Citations
Flow control method and network controller
CN106330742A
Flow control method and device
CN110856222A
Flow control method, target node, node and donor node
CN111182581A
Flow control feedback in an integrated access and backhaul network
US20240236003A1