Congestion control method and related device
By performing congestion control on specific forwarding paths in the WAN, the problem of PFC being inapplicable is resolved, refined traffic control is achieved, and network performance and user experience are improved.
Patent Information
- Application Number
- CN202410306731.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-15
- Publication Date
- 2025-09-16
AI Technical Summary
The existing priority-based flow control (PFC) method is not applicable to wide area network scenarios. When the network is congested, it affects the normal operation of the non-congested forwarding path, causing problems such as head-of-line blocking, deadlock, and congestion spread.
By sending a first message between network devices, the upstream device is requested to perform congestion control processing on a specific forwarding path, so as to achieve forwarding path-level flow control, avoid stopping the transmission of data in the entire queue, and improve the precision and service relevance of congestion control.
It effectively avoids network throughput problems, improves communication quality and user experience, prevents the spread of network congestion and deadlock problems, and meets the flow control needs in wide area network scenarios.
Smart Images

Figure CN120658679A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to a congestion control method and related devices. Background Art
[0002] Priority-based flow control (PFC) is a common congestion control algorithm used in data center networks. It prioritizes different types of traffic within the network and helps prevent packet loss during congestion. PFC primarily operates on the ingress ports of switches (or other network devices, such as routers) and controls traffic based on the ingress queue length (also known as the ingress queue length). PFC uses a signal (such as a pause frame) to notify the upstream port to stop sending data.
[0003] Compared to data center networks, in wide area network (WAN) scenarios, tunneling is often used to encapsulate packets transmitted between the sending and receiving devices due to the longer network transmission paths between them. Furthermore, PFC technology performs flow control on queues at ingress ports. Since queues may carry multiple forwarding paths, slowing down a particular queue causes all forwarding paths in that queue to pause transmission, impacting the normal operation of the non-congested forwarding paths carried by that queue. For these reasons, PFC technology is not suitable for WAN scenarios. Therefore, a congestion control method suitable for WAN scenarios is urgently needed. Summary of the Invention
[0004] This application proposes a congestion control method and related devices to achieve forwarding path-level flow control, improve the precision of congestion control, and make flow control in wide area network scenarios possible.
[0005] In a first aspect, an embodiment of the present application provides a congestion control method, which is applied to a first device and includes:
[0006] First, a first device determines that network congestion occurs. Then, in response to the occurrence of network congestion, the first device sends a first message to a second device, the first message being used to request the second device to perform congestion control processing on a first forwarding path, where the second device is an upstream device of the first device on the first forwarding path.
[0007] In the embodiment of the present application, there are multiple possible implementation methods of the first forwarding path, including but not limited to: tunnel, path or network slice, etc.
[0008] In the embodiment of the present application, the first device may be a provider edge device (PE) or a provider backbone device (P). For example, the first device may be a physical device such as a router, switch, or gateway, or a virtual device that supports route publishing and message forwarding.
[0009] In the above technical solution, the first message is used to implement flow control at the forwarding path level, which improves the precision of congestion control and makes flow control possible in wide area network scenarios. This avoids network problems such as head-of-line blocking, deadlock, and congestion spread. In addition, the first message is to request the upstream device of the forwarding path to perform congestion control processing on the forwarding path, rather than to stop sending data in the entire queue, so it can effectively avoid network throughput problems. Since the forwarding path is used to carry business-related data streams, congestion control is performed on the forwarding path to improve the correlation between congestion control and business, effectively improving user experience.
[0010] In combination with the first aspect, in a possible implementation manner of the first aspect, the first message carries identification information of the first forwarding path.
[0011] Exemplarily, the identification information of the first forwarding path includes but is not limited to: a path identifier (path-ID), a tunnel identifier (tunnel-ID), a binding segment identifier (BSID), a network slice identifier (network slice-ID, or slice-ID), an identifier of a segment routing policy (Segment Routing Policy, SRPolicy), or an identifier of a segment routing policy based on an IPv6 forwarding plane (Segment Routing IPv6 Policy, SRv6 Policy), etc.
[0012] In the above technical solution, by carrying the identification information of the first forwarding path in the first message, the second device can easily identify which forwarding path needs to be congested control processed, thereby simplifying the implementation of the second device.
[0013] With reference to the first aspect, in a possible implementation of the first aspect, the network congestion is located at an egress port of the first device, and the egress port of the first device corresponds to the first forwarding path.
[0014] Specifically, the first device determining that network congestion has occurred may be determining that network congestion has occurred at an egress port of the first device. Since the first device may include multiple egress ports, each egress port may correspond to one or more forwarding paths. Therefore, after the first device determines that network congestion has occurred at one or more egress ports, it may select some or all of the forwarding paths corresponding to the egress ports experiencing network congestion as first forwarding paths. By detecting the status of the egress port of the first device, it is determined whether network congestion has occurred at the first device, and based on this, it is further determined which forwarding paths require congestion control processing, thereby improving the accuracy of executing congestion control processing and enhancing communication quality.
[0015] In conjunction with the first aspect, in a possible implementation of the first aspect, determining that network congestion occurs includes: first, a first device determining that network congestion occurs at a first egress port of the first device. Then, the first device determines, based on the first egress port, a first forwarding path corresponding to the first egress port.
[0016] Specifically, after the first device determines that network congestion occurs at the first output port, the first device can further determine which forwarding paths corresponding to the first output port need to perform congestion control processing. For example, when the first output port corresponds to multiple forwarding paths, the first device can select a forwarding path with a larger bandwidth occupancy as the first forwarding path based on the bandwidth occupancy information of the multiple forwarding paths. Alternatively, when the first output port corresponds to multiple forwarding paths, the first device can select a forwarding path with a larger cache resource occupancy rate as the first forwarding path based on the cache resource occupancy information of the multiple forwarding paths. The first device can flexibly select a forwarding path that needs to be congested control processed, thereby improving the implementation flexibility of the solution. In addition, it can avoid indiscriminately performing congestion control processing on all forwarding paths, thereby improving communication quality and user experience.
[0017] In conjunction with the first aspect, in a possible implementation of the first aspect, a first device determines a first Ethernet virtual private network (VPN) instance based on a first egress port, and the first VPN instance is bound to an access-side link corresponding to the first egress port. The first device then determines, based on the first VPN instance, a first forwarding path having a mapping relationship with the first VPN instance from a first mapping relationship set, where the first mapping relationship set includes at least one mapping relationship between a VPN instance and a forwarding path.
[0018] Specifically, when the first device is the egress node of a first forwarding path, the first device detects network congestion on a link between an outbound port and a CE node, where the link is an access (AC)-side link. The first device then determines that the VPN instance bound to the link is the first VPN instance. Furthermore, the first device determines that the forwarding path corresponding to the first VPN instance is the first forwarding path.
[0019] In combination with the first aspect, in a possible implementation of the first aspect, determining a first forwarding path corresponding to the first egress port according to the first egress port includes: the first device determining, according to the first egress port, at least one forwarding path carried by the first egress port; the first device determining the first forwarding path from at least one forwarding path based on at least one cache resource corresponding to the at least one forwarding path, wherein each cache resource is used to cache data of a forwarding path, and the cache resource corresponding to the first forwarding path reaches a cache waterline threshold.
[0020] Specifically, a network device on the first forwarding path can reserve cache resources for the forwarding path, which are used to cache the data stream carried by the forwarding path. A controller managing the network device can configure the network device with a path cache (buffer-size) and / or a buffer watermark threshold (buffer_threshold). By configuring the forwarding path cache value for the network device, the controller enables the network device to allocate cache resources (buffer) to the forwarding path, ensuring that the network device can use the cache resources to cache the data stream carried by the forwarding path. When the forwarding path triggers a speed reduction process, the network device can use the cache resources to cache the data stream carried by the forwarding path, avoiding packet loss and ensuring data flow integrity. The controller configures a cache watermark threshold for the network device. When the cache used by the forwarding path exceeds the cache watermark threshold, the network device deems that network congestion has occurred on the forwarding path. Therefore, the first device can determine whether congestion control is required for the forwarding path based on whether the cache resources of the forwarding path have reached the cache watermark threshold. The first device can perform congestion control in advance by sensing the cache resource watermark of the forwarding path before actual network congestion occurs, further improving communication quality and user experience.
[0021] In combination with the first aspect, in a possible implementation of the first aspect, a bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
[0022] In the above technical solution, the bandwidth of the first forwarding path is allowed to change from a first bandwidth value to a second bandwidth value, where the second bandwidth value is greater than the first bandwidth value, to meet the dynamic bandwidth requirements of the service and improve bandwidth resource utilization. When the bandwidth resources requested by the first forwarding path exceed the first bandwidth resources configured for the first forwarding path, the bandwidth resources of the first forwarding path can be increased to the second bandwidth resources. This ensures that the first forwarding path can carry bursty high-traffic services, meets the dynamically changing data transmission requirements of the services carried by the first forwarding path, and improves user experience.
[0023] With reference to the first aspect, in a possible implementation of the first aspect, the second device is a previous-hop node of the first device on the first forwarding path.
[0024] In the above technical solution, after network congestion occurs on the first device on the first forwarding path, the first device can determine a second forwarding path. The network devices passed by the second forwarding path include network devices that need to perform congestion control processing on the first forwarding path, and the second device is located on the second forwarding path. The first device can send a first message to the second device according to the second forwarding path. Each network device on the second forwarding path performs congestion relief processing on the data flow carried by the first forwarding path according to the first message, such as caching the messages of the data flow. Through hop-by-hop back pressure, the nodes on the second forwarding path dilute the large traffic carried by the first forwarding path, so as to alleviate the network congestion of the first forwarding path.
[0025] With reference to the first aspect, in a possible implementation of the first aspect, the second device is a head node of the first forwarding path.
[0026] In the above technical solution, the first device directly sends a first message to the head node (second device) of the first forwarding path. Through one-hop back pressure, the head node (second device) of the first forwarding path can be informed as soon as possible that network congestion has occurred on the first forwarding path, and then the second device slows down the data flow carried by the first forwarding path, thereby quickly alleviating network congestion.
[0027] In combination with the first aspect, in a possible implementation of the first aspect, the congestion control processing includes any one or more of the following: performing speed reduction processing on the first forwarding path, using the cache space of the second device to cache the data carried by the first forwarding path, using other forwarding paths to forward the data carried by the first forwarding path, or notifying the sender of the first data stream to perform speed reduction processing on the first data stream, and the first data stream is carried on the first forwarding path.
[0028] In the above technical solution, congestion control processing can be performed on the first forwarding path in a variety of ways, which improves the implementation flexibility of the solution.
[0029] With reference to the first aspect, in a possible implementation of the first aspect, the first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
[0030] In the above technical solution, the first message can also explicitly carry the first speed reduction information, allowing the second device to know the expected speed reduction of the data stream, simplifying the implementation of the second device. Furthermore, by explicitly carrying the first speed reduction information, the second device is ensured to appropriately reduce the speed of the data stream, alleviating network congestion while ensuring data throughput.
[0031] In combination with the first aspect, in a possible implementation manner of the first aspect, the first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
[0032] In the above technical solution, the first message can also explicitly carry the second speed reduction information, allowing the second device to know the expected speed reduction time for the data stream, simplifying the implementation of the second device. Furthermore, by explicitly carrying the second speed reduction information, the second device is ensured to appropriately reduce the speed of the data stream, alleviating network congestion while ensuring data throughput.
[0033] In combination with the first aspect, in a possible implementation of the first aspect, the first message includes any one or more of the following information: identification information of the previous hop node of the first device, input interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, the network device through which the second forwarding path passes includes a network device that needs to perform congestion control processing on the first forwarding path, or first status information, the first status information indicates that the second device performs congestion control processing.
[0034] In the above technical solution, by carrying different information in the first message, the first device can use different methods to send the first message to the second device, thereby improving the implementation flexibility of the solution. The first message can also explicitly carry the first status information, making it easier for the second device to identify the first message as a notification message for congestion control on the first forwarding path based on the first status information, thereby simplifying the implementation of the second device.
[0035] In conjunction with the first aspect, in one possible implementation of the first aspect, the first message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message; or, the first message is carried in an Internet Protocol (IP) message; or, the first message is carried in a Layer 2 message in the Open Systems Interconnection (OSI) model. This method improves the implementation flexibility of the solution.
[0036] In conjunction with the first aspect, in a possible implementation of the first aspect, the payload field of a Transmission Control Protocol (TCP) message is used to carry the first message; or the payload field of a User Datagram Protocol (UDP) message is used to carry the first message; or the payload field of an Internet Control Message Protocol (ICMP) message is used to carry the first message; or the Hop-by-Hop Options Header (HBH) of an Internet Protocol (IP) message is used to carry the first message; or the Destination Options Header (DOH) of an Internet Protocol (IP) message is used to carry the first message; or the Optional Option field of an Internet Protocol (IP) message is used to carry the first message. Through the above method, the implementation flexibility of the solution is improved.
[0037] In combination with the first aspect, in a possible implementation of the first aspect, when a User Datagram Protocol (UDP) message carries a first message, the User Datagram Protocol (UDP) message also includes a first port number, and the first port number is used to indicate that the User Datagram Protocol (UDP) message is a congestion notification message carrying the first message; or, when a Layer 2 message carries the first message, the Layer 2 message also includes a first destination Media Access Control (MAC) address, and the first destination MAC address indicates that the Layer 2 message is a congestion notification message carrying the first message; or, when the Layer 2 message carries the first message, the Layer 2 message also includes a first Ethernet type (Ethertype) field, and the first Ethernet type (Ethertype) field indicates that the Layer 2 message is a congestion notification message carrying the first message. Through the above method, the implementation flexibility of the solution is improved.
[0038] In conjunction with the first aspect, in a possible implementation of the first aspect, the method further includes: first, the first device determines that the first forwarding path is free of network congestion. Then, in response to the first forwarding path being free of network congestion, the first device sends a second message to the second device, wherein the second message is used to request the second device to perform decongestion control processing on the first forwarding path.
[0039] In the above technical solution, after the first device determines that the first forwarding path has recovered from network congestion, it can notify the upstream device through a second message to release congestion control on the first forwarding path, thereby improving network throughput. Furthermore, this avoids premature release of congestion control, which could lead to further exacerbation of network congestion, thereby improving communication quality.
[0040] In conjunction with the first aspect, in a possible implementation of the first aspect, the second message includes any one or more of the following information:
[0041] Identification information of the first forwarding path, identification information of the previous-hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, nodes traversed by the second forwarding path including nodes requiring decongestion control processing to be performed on the first forwarding path, or second state information, where the second state information indicates that the second device performs decongestion control processing.
[0042] In the above technical solution, by carrying different information in the second message, the first device can use different methods to send the second message to the second device, thereby improving the implementation flexibility of the solution. The first message can also explicitly carry the second state information, which facilitates the second device to identify the second message as a notification message for releasing congestion control for the first forwarding path based on the second state information.
[0043] In conjunction with the first aspect, in one possible implementation of the first aspect, the second message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message; or, the second message is carried in an Internet Protocol (IP) message; or, the second message is carried in a Layer 2 message in the Open Systems Interconnection (OSI) model. This method improves the implementation flexibility of the solution.
[0044] In conjunction with the first aspect, in a possible implementation of the first aspect, the payload field of a Transmission Control Protocol (TCP) message is used to carry the second message; or the payload field of a User Datagram Protocol (UDP) message is used to carry the second message; or the payload field of an Internet Control Message Protocol (ICMP) message is used to carry the second message; or the Hop-by-Hop Options Header (HBH) of an Internet Protocol (IP) message is used to carry the second message; or the Destination Options Header (DOH) of an Internet Protocol (IP) message is used to carry the second message; or the Optional Option field of an Internet Protocol (IP) message is used to carry the second message. Through the above method, the implementation flexibility of the solution is improved.
[0045] In a second aspect, an embodiment of the present application provides a congestion control method, characterized in that the method is applied to a second device, where the second device is an upstream device of the first device on a first forwarding path, and the method includes:
[0046] First, the second device receives a first message sent by the first device, the first message being used to request the second device to perform congestion control processing on the first forwarding path. Second, the second device performs congestion control processing on the first forwarding path according to the first message.
[0047] In the embodiment of the present application, there are multiple possible implementation methods of the first forwarding path, including but not limited to: tunnel, path or network slice, etc.
[0048] In the embodiment of the present application, the second device may be a provider edge device (PE) or a provider backbone device (P). For example, the second device may be a physical device such as a router, switch, or gateway, or a virtual device that supports route publishing and message forwarding.
[0049] In the above technical solution, the first message is used to implement flow control at the forwarding path level, which improves the precision of congestion control and makes flow control possible in wide area network scenarios. This avoids network problems such as head-of-line blocking, deadlock, and congestion spread. In addition, the first message is to request the upstream device of the forwarding path to perform congestion control processing on the forwarding path, rather than to stop sending data in the entire queue, so it can effectively avoid network throughput problems. Since the forwarding path is used to carry business-related data streams, congestion control is performed on the forwarding path to improve the correlation between congestion control and business, effectively improving user experience.
[0050] In combination with the second aspect, in a possible implementation manner of the second aspect, the first message carries identification information of the first forwarding path.
[0051] Exemplarily, the identification information of the first forwarding path includes but is not limited to: a path identifier (path-ID), a tunnel identifier (tunnel-ID), a binding segment identifier (BSID), a network slice identifier (network slice-ID, or slice-ID), an identifier of a segment routing policy (Segment Routing Policy, SRPolicy), or an identifier of a segment routing policy based on an IPv6 forwarding plane (Segment Routing IPv6 Policy, SRv6 Policy), etc.
[0052] In the above technical solution, by carrying the identification information of the first forwarding path in the first message, the second device can easily identify which forwarding path needs to be congested control processed, thereby simplifying the implementation of the second device.
[0053] In combination with the second aspect, in a possible implementation of the second aspect, the bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
[0054] In the above technical solution, the bandwidth of the first forwarding path is allowed to change from a first bandwidth value to a second bandwidth value, where the second bandwidth value is greater than the first bandwidth value, to meet the dynamic bandwidth requirements of the service and improve bandwidth resource utilization. When the bandwidth resources requested by the first forwarding path exceed the first bandwidth resources configured for the first forwarding path, the bandwidth resources of the first forwarding path can be increased to the second bandwidth resources. This ensures that the first forwarding path can carry bursty high-traffic services, meets the dynamically changing data transmission requirements of the services carried by the first forwarding path, and improves user experience.
[0055] With reference to the second aspect, in a possible implementation of the second aspect, the second device is a previous-hop node of the first device on the first forwarding path.
[0056] In the above technical solution, after network congestion occurs on the first device on the first forwarding path, the first device can determine a second forwarding path. The network devices passed by the second forwarding path include network devices that need to perform congestion control processing on the first forwarding path, and the second device is located on the second forwarding path. The first device can send a first message to the second device according to the second forwarding path. Each network device on the second forwarding path performs congestion relief processing on the data flow carried by the first forwarding path according to the first message, such as caching the messages of the data flow. Through hop-by-hop back pressure, the nodes on the second forwarding path dilute the large traffic carried by the first forwarding path, so as to alleviate the network congestion of the first forwarding path.
[0057] In combination with the second aspect, in a possible implementation manner of the second aspect, the second device is a head node of the first forwarding path.
[0058] In the above technical solution, the first device directly sends a first message to the head node (second device) of the first forwarding path. Through one-hop back pressure, the head node (second device) of the first forwarding path can be informed as soon as possible that network congestion has occurred on the first forwarding path, and then the second device slows down the data flow carried by the first forwarding path, thereby quickly alleviating network congestion.
[0059] In combination with the second aspect, in a possible implementation of the second aspect, congestion control processing is performed on the first forwarding path according to the first message, including: performing speed reduction processing on the first forwarding path; using the cache space of the second device to cache the data carried by the first forwarding path; using other forwarding paths to forward the data carried by the first forwarding path; and / or, notifying the sender of the first data stream to perform speed reduction processing on the first data stream, and the first data stream is carried on the first forwarding path.
[0060] In the above technical solution, congestion control processing can be performed on the first forwarding path in a variety of ways, which improves the implementation flexibility of the solution.
[0061] In combination with the second aspect, in a possible implementation manner of the second aspect, the first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
[0062] In the above technical solution, the first message can also explicitly carry the first speed reduction information, allowing the second device to know the expected speed reduction of the data stream, simplifying the implementation of the second device. Furthermore, by explicitly carrying the first speed reduction information, the second device is ensured to appropriately reduce the speed of the data stream, alleviating network congestion while ensuring data throughput.
[0063] In combination with the second aspect, in a possible implementation manner of the second aspect, the first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
[0064] In the above technical solution, the first message can also explicitly carry the second speed reduction information, allowing the second device to know the expected speed reduction time for the data stream, simplifying the implementation of the second device. Furthermore, by explicitly carrying the second speed reduction information, the second device is ensured to appropriately reduce the speed of the data stream, alleviating network congestion while ensuring data throughput.
[0065] In combination with the second aspect, in a possible implementation of the second aspect, the first message includes any one or more of the following information: identification information of the previous hop node of the first device, input interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, the network device through which the second forwarding path passes includes a network device that needs to perform congestion control processing on the first forwarding path, or first status information, the first status information indicates that the second device performs congestion control processing.
[0066] In the above technical solution, by carrying different information in the first message, the first device can use different methods to send the first message to the second device, thereby improving the implementation flexibility of the solution. The first message can also explicitly carry the first status information, making it easier for the second device to identify the first message as a notification message for congestion control on the first forwarding path based on the first status information, thereby simplifying the implementation of the second device.
[0067] In conjunction with the second aspect, in one possible implementation of the second aspect, the first message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message; or, the first message is carried in an Internet Protocol (IP) message; or, the first message is carried in a Layer 2 message in the Open Systems Interconnection (OSI) model. This method improves the implementation flexibility of the solution.
[0068] In conjunction with the second aspect, in a possible implementation of the second aspect, the payload field of a Transmission Control Protocol (TCP) message is used to carry the first message; or the payload field of a User Datagram Protocol (UDP) message is used to carry the first message; or the payload field of an Internet Control Message Protocol (ICMP) message is used to carry the first message; or the Hop-by-Hop Options Header (HBH) of an Internet Protocol (IP) message is used to carry the first message; or the Destination Options Header (DOH) of an Internet Protocol (IP) message is used to carry the first message; or the Optional Option field of an Internet Protocol (IP) message is used to carry the first message. Through the above method, the implementation flexibility of the solution is improved.
[0069] In combination with the second aspect, in a possible implementation of the second aspect, when a User Datagram Protocol (UDP) message carries a first message, the User Datagram Protocol (UDP) message also includes a first port number, and the first port number is used to indicate that the User Datagram Protocol (UDP) message is a congestion notification message carrying the first message; or, when a Layer 2 message carries the first message, the Layer 2 message also includes a first destination Media Access Control (MAC) address, and the first destination MAC address indicates that the Layer 2 message is a congestion notification message carrying the first message; or, when the Layer 2 message carries the first message, the Layer 2 message also includes a first Ethernet type (Ethertype) field, and the first Ethernet type (Ethertype) field indicates that the Layer 2 message is a congestion notification message carrying the first message. Through the above method, the implementation flexibility of the solution is improved.
[0070] In combination with the second aspect, in a possible implementation of the second aspect, the method also includes: first, the second device receives a second message sent by the first device, and the second message is used to request the second device to perform congestion control release processing on the first forwarding path; secondly, the second device releases the congestion control processing on the first forwarding path according to the second message.
[0071] In the above technical solution, after the first device determines that the first forwarding path has recovered from network congestion, it can notify the upstream device through a second message to release congestion control on the first forwarding path, thereby improving network throughput. Furthermore, this avoids premature release of congestion control, which could lead to further exacerbation of network congestion, thereby improving communication quality.
[0072] In combination with the second aspect, in a possible implementation of the second aspect, the second message includes any one or more of the following information: identification information of the first forwarding path, identification information of the previous hop node of the first device, input interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, the nodes passed by the second forwarding path include nodes that need to perform congestion control decongestion processing on the first forwarding path, or second status information, the second status information indicates that the second device performs congestion control decongestion processing.
[0073] In the above technical solution, by carrying different information in the second message, the first device can use different methods to send the second message to the second device, thereby improving the implementation flexibility of the solution. The first message can also explicitly carry the second state information, which facilitates the second device to identify the second message as a notification message for releasing congestion control for the first forwarding path based on the second state information.
[0074] In conjunction with the second aspect, in one possible implementation of the second aspect, the second message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message; or, the second message is carried in an Internet Protocol (IP) message; or, the second message is carried in a Layer 2 message in the Open Systems Interconnection (OSI) model. This method improves the implementation flexibility of the solution.
[0075] In conjunction with the second aspect, in a possible implementation of the second aspect, the payload field of a Transmission Control Protocol (TCP) message is used to carry the second message; or the payload field of a User Datagram Protocol (UDP) message is used to carry the second message; or the payload field of an Internet Control Message Protocol (ICMP) message is used to carry the second message; or the Hop-by-Hop Options Header (HBH) of an Internet Protocol (IP) message is used to carry the second message; or the Destination Options Header (DOH) of an Internet Protocol (IP) message is used to carry the second message; or the Optional Option field of an Internet Protocol (IP) message is used to carry the second message. Through the above method, the implementation flexibility of the solution is improved.
[0076] In a third aspect, an embodiment of the present application proposes a communication device, which includes a processing unit and a transceiver unit, and is used to execute the method of the aforementioned first aspect and any one of the first aspects.
[0077] In a fourth aspect, an embodiment of the present application proposes a communication device, which includes a processing unit and a transceiver unit, and the communication device is used to execute the method of the aforementioned second aspect and any one of the second aspects.
[0078] In a fifth aspect, an embodiment of the present application provides a chip, which includes an interface circuit and a processing circuit. The interface circuit and the processing circuit are interconnected through lines, and the processing circuit is used to run computer programs or instructions to perform the method of the first aspect or the second aspect.
[0079] Optionally, the chip includes at least one processor and a communication interface, the communication interface and the at least one processor are interconnected via a line, and the at least one processor is used to run a computer program or instruction to perform the method of the first aspect or the second aspect.
[0080] Optionally, the communication interface of the chip may be an input / output interface, a pin or a circuit, etc.
[0081] In one implementation of the fifth aspect of the embodiments of the present application, the chip described above in the present application further includes at least one memory, wherein the at least one memory stores instructions. The memory may be a storage unit within the chip, such as a register, a cache, etc., or may be a storage unit of the chip (e.g., a read-only memory, a random access memory, etc.).
[0082] In a sixth aspect of an embodiment of the present application, a computing device is provided, comprising at least one processor coupled to a memory; the memory is used to store programs or instructions; and the at least one processor is used to execute the programs or instructions so that the device can implement any possible implementation method of the first or second aspect described above.
[0083] The seventh aspect of an embodiment of the present application provides a computing device, including a communication interface for inputting and / or outputting signaling or data; and a processor for executing a computer-executable program so that the device can implement any possible implementation method of the aforementioned first aspect or second aspect.
[0084] In an eighth aspect of an embodiment of the present application, a computing device is provided, comprising at least one logic circuit and an input / output interface; the input / output interface is used to input or output information; and the logic circuit is used to execute any possible implementation method as described in the first or second aspect above.
[0085] A ninth aspect of the present application provides a communication system, comprising the communication device of the third aspect and / or the communication device of the fourth aspect.
[0086] In a tenth aspect, the present application provides a computer-readable storage medium, in which a computer program is stored. When the computer-readable storage medium is run on a computer, the computer executes the method of the first or second aspect.
[0087] In an eleventh aspect, the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the method of the first or second aspect.
[0088] A twelfth aspect of the present application provides a communication system, which includes a communication device, wherein the communication device is used to execute the method as described in any one of the first or second aspects above.
[0089] A thirteenth aspect of the present application provides a communication system, which includes a communication device and a controller, wherein the communication device is used to execute the method as described in any one of the first or second aspects above, and the controller is used to control and manage the above-mentioned communication device. BRIEF DESCRIPTION OF THE DRAWINGS
[0090] Figure 1 This is a schematic diagram of the PFC scenario;
[0091] Figure 2 This is a schematic diagram of the structure of a communication system in an embodiment of the present application;
[0092] Figure 3 This is a schematic diagram of a communication scenario in an embodiment of the present application;
[0093] Figure 4 This is a schematic diagram of a communication scenario in an embodiment of the present application;
[0094] Figure 5 Schematic diagram of bandwidth resources of the first forwarding path in an embodiment of the present application;
[0095] Figure 6 This is a flow chart of an embodiment of a congestion control method in an embodiment of the present application;
[0096] Figure 7 This is a schematic diagram of the structure of the first message in an embodiment of the present application;
[0097] Figure 8 This is a schematic diagram of the structure of the first message in an embodiment of the present application;
[0098] Figure 9 This is a schematic diagram of the structure of the first message in an embodiment of the present application;
[0099] Figure 10 A schematic diagram of the second forwarding path in an embodiment of the present application;
[0100] Figure 11 This is another schematic diagram of the second forwarding path in an embodiment of the present application;
[0101] Figure 12 This is another schematic diagram of the second forwarding path in an embodiment of the present application;
[0102] Figure 13 A flowchart of an application scenario of an embodiment of the present application;
[0103] Figure 14 A flowchart of an application scenario of an embodiment of the present application;
[0104] Figure 15 A flowchart of an application scenario of an embodiment of the present application;
[0105] Figure 16 A schematic diagram of cache resources in a forwarding path according to an embodiment of the present application;
[0106] Figure 17This is a schematic diagram of cache resources in another forwarding path in an embodiment of the present application;
[0107] Figure 18 A schematic structural diagram of a communication device 1800 provided in an embodiment of the present application;
[0108] Figure 19 A schematic structural diagram of a communication device 1900 provided in an embodiment of the present application;
[0109] Figure 20 A schematic structural diagram of a communication device 2000 provided in an embodiment of the present application;
[0110] Figure 21 A schematic diagram of a communication system 2100 proposed in an embodiment of the present application. DETAILED DESCRIPTION
[0111] The terms "first", "second", etc. in the specification and claims of the present application and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequential order. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, and this is merely a way of distinguishing the objects of the same attributes when describing them in the embodiments of the present application. In addition, the terms "including" and "having" and any of their variations are intended to cover non-exclusive inclusions, so that the process, method, system, product or equipment comprising a series of units need not be limited to those units, but may include other units that are not clearly listed or inherent to these processes, methods, products or equipment.
[0112] First, some concepts involved in the embodiments of this application are introduced.
[0113] 1. Priority-based Flow Control (PFC)
[0114] For easier understanding, see Figure 1 , Figure 1 The following diagram illustrates a PFC scenario. An Ethernet link is established between devices A and B. Device A's transmit interface is divided into eight priority queues, and device B's receive interface includes eight corresponding receive buffers. When congestion occurs in a receive buffer on device B's receive interface, a backpressure signal "STOP" is sent to device A, causing device A to stop sending traffic from the corresponding priority queue.
[0115] Congestion control methods like PFC are typically suitable for short-distance data center networks. In wide area network (WAN) scenarios, the network transmission path between the sender and receiver is long. PFC alleviates network congestion by stopping the sending queue's traffic. However, even when network congestion has eased, the long path between the sender and receiver in WAN scenarios prevents the receiver or network equipment from promptly notifying the sender of the eased congestion. As a result, the sending queue may continue to slow down. Furthermore, PFC controls traffic flow for queues at ingress ports. Since queues may carry multiple forwarding paths, slowing down a particular queue causes all forwarding paths in that queue to pause transmission, impacting the normal operation of the non-congested forwarding paths carried by that queue. Consequently, using PFC for congestion control can lead to head-of-line blocking (HOL) issues, deadlock, congestion spread, and network throughput issues.
[0116] Based on this, an embodiment of the present application proposes a congestion control method and related devices. When the first device determines that network congestion occurs, the first device sends a first message to the second device. The first message is used to request the second device to perform congestion control processing on the first forwarding path. The second device is the upstream device of the first device on the first forwarding path. Through the first message, flow control at the forwarding path level is achieved, the precision of congestion control is improved, and network problems such as head-of-line blocking, deadlock, and congestion spread are avoided. In addition, the first message is to request the upstream device to perform congestion control processing on the forwarding path, which can effectively avoid network under-throughput. Since the forwarding path is used to carry service-related data streams, the correlation between congestion control and service is improved by performing congestion control on the forwarding path, effectively improving the user experience.
[0117] First, some communication systems used in the embodiments of this application are introduced. Figure 2 , Figure 2 This is a structural diagram of a communication system in an embodiment of the present application.
[0118] A communication system in an embodiment of the present application includes: multiple network devices and a controller (or network controller, or network management controller) that manages the above-mentioned network devices. Among them, the network devices include: node A, node B, node C, node D, node E, node F, node G and node H. The above-mentioned node A and node E are connected to the user edge device (customer edge, CE) 1, and the above-mentioned node H and node D are connected to CE2, so node A, node E, node H and node D serve as operator edge devices (provider edge, PE). The above-mentioned node B, node C, node F and node G serve as operator backbone devices (provider, P). Exemplarily, the PE node and the P node can be a router or a switch, etc.
[0119] Optionally, the above communication system may further include: a source device (not shown in the figure) and a receiving device (not shown in the figure), wherein the source device may be connected to CE1, and the receiving device may be connected to CE2.
[0120] In one example, the source device may be a server or other device, and the receiving device may be a terminal device or other device. A terminal device, also known as user equipment (UE), mobile station (MS), mobile terminal (MT), or terminal, is a device that provides voice and / or data connectivity to a user, or a chip within the device, such as a handheld device or vehicle-mounted device with wireless connectivity. At present, some examples of terminal devices include: mobile phones, desktop computers, tablet computers, laptops, PDAs, mobile internet devices (MIDs), wearable devices, virtual reality (VR) devices, augmented reality (AR) devices, wireless terminals in industrial control, wireless terminals in self-driving, wireless terminals in remote medical surgery, wireless terminals in smart grids, wireless terminals in transportation safety, wireless terminals in smart cities, wireless terminals in smart homes, or 5G-residential gateway devices (5G-RG) that support 5G access, etc.
[0121] In another example, the source device may be an access network device, and the receiving device may be a core network, an internet data center (IDC), or a content distribution network (CDN).
[0122] In another example, the source device may be a core network, an IDC, or a CDN, and the receiving device may be an access network device.
[0123] Combined with the above Figure 2 Next, the first device and the second device of the embodiment of the present application are introduced.
[0124] In a possible implementation, the first device is a network device where network congestion occurs, and the second device is a head node of the first device on the first forwarding path. Figure 3 As shown, Figure 3 This is a schematic diagram of a communication scenario in an embodiment of the present application. A first forwarding path passes through nodes A, B, C, and D. Node C experiences network congestion on the nodes along the first forwarding path, with Node C acting as the first device. Node A acts as the head node of the first forwarding path, with Node A acting as the second device.
[0125] It should be noted that the first forwarding path may be a strict path. A strict path refers to a path that strictly specifies each node it passes through. For example, the first forwarding path passes through: node A, node B, node C, and node D.
[0126] The first forwarding path can also be a loose path. A loose path refers to a path that only passes through the head node and the tail node, or a path that passes through one or more nodes in addition to the head node and the tail node. For example, the first forwarding path passes through nodes A and D. For another example, the first forwarding path passes through nodes A, C, and D.
[0127] In another possible implementation, the first device is a network device where network congestion occurs, and the second device is the previous hop node of the first device on the first forwarding path. Figure 4 As shown, Figure 4 This is a schematic diagram of a communication scenario in an embodiment of the present application. A first forwarding path passes through nodes A, B, C, and D. Node C experiences network congestion on the nodes along the first forwarding path, with node C acting as the first device. Node B acts as the previous hop node of node C on the first forwarding path, with node B acting as the second device. After node C sends a first message to node B, node B performs congestion control on the first forwarding path based on the first message.
[0128] Optionally, node B may forward the first message to the previous hop node of node B on the first forwarding path, that is, node B forwards the first message to node A, so that node A performs congestion control processing on the first forwarding path according to the first message.
[0129] Optionally, node B may directly forward the first message from node C to node A. Node B may also update the first message based on relevant information, including but not limited to: traffic information of the data flow carried by the first forwarding path in node B, buffer occupancy information of the first forwarding path in node B, or queue buffer growth information corresponding to the first forwarding path in node B. Node B then forwards the updated first message to node A.
[0130] Next, the first forwarding path of the embodiment of the present application is introduced. There are many possible implementations of the first forwarding path in the embodiment of the present application, including but not limited to: tunnel, path or network slice.
[0131] Optionally, the first forwarding path in the embodiment of the present application can be configured with flexible bandwidth resources. Specifically, the bandwidth value of the bandwidth resource used by the first forwarding path is allowed to change from the first bandwidth value to the second bandwidth value, and the second bandwidth value is greater than the first bandwidth value. For ease of understanding, please refer to Figure 5 , Figure 5 Schematic diagram of bandwidth resources of the first forwarding path in an embodiment of the present application.
[0132] The bandwidth resource configured for the first forwarding path based on the first bandwidth value is called the first bandwidth resource, which can also be called the rigid bandwidth. Regardless of whether the node has idle bandwidth resources, the node should ensure that the first forwarding path can use the first bandwidth resource. For example, if the first bandwidth value is 200 megabits per second (Mbps), the node must ensure that the first forwarding path can use at least 200 Mbps of bandwidth resources.
[0133] The bandwidth resource configured according to the second bandwidth value is called the second bandwidth resource, and the second bandwidth resource is called elastic bandwidth. The sum of the bandwidth value of the second bandwidth resource and the bandwidth value of the first bandwidth resource is less than or equal to the second bandwidth value. When the bandwidth resource pool of the node can provide idle bandwidth resources (and the idle bandwidth resources are greater than or equal to the second bandwidth resources), the node allows the idle bandwidth resources to be obtained from the bandwidth resource pool and allocated to the first forwarding path as the second bandwidth resources, so that the first forwarding path can use the first bandwidth resources and the second bandwidth resources. The bandwidth resource pool includes idle bandwidth resources in the node, and the bandwidth resource pool supports allocating the idle bandwidth resources to one or more first forwarding paths. For example, the second bandwidth value is 500M, and the bandwidth value of the second bandwidth resource is 500-200=300M, and the 300M is used as elastic bandwidth. Only when the bandwidth resource requested by the first forwarding path exceeds 200M (the first bandwidth resource) and the node's bandwidth resource pool can provide idle bandwidth resources greater than or equal to 300M, is the node allowed to allocate the second bandwidth resource of 300M to the first forwarding path. The total bandwidth resource allocated by the node to the first forwarding path is 200+300=500M.
[0134] In one possible implementation, the first bandwidth value may be a committed information rate (CIR), and the second bandwidth value may be a peak information rate (PIR). The controller may configure the CIR and PIR of the first forwarding path for the network device. This allows the network device to allocate a first bandwidth resource corresponding to the CIR to the first forwarding path. When the bandwidth resource requested by the data flow carried by the first forwarding path exceeds the first bandwidth resource, the network device may allocate a second bandwidth resource corresponding to the PIR to the first forwarding path.
[0135] Optionally, the network device on the first forwarding path may reserve cache resources for the forwarding path, where the cache resources are used to cache the data stream carried by the forwarding path. Specifically, the controller configures a path cache (buffer-size) and / or a cache waterline threshold (buffer_threshold) for the forwarding path for the network device.
[0136] The controller configures a forwarding path cache value for the network device, allowing it to allocate cache resources (buffer) to the forwarding path. This ensures that the network device can use these cache resources to cache the data streams carried by the forwarding path. If a forwarding path triggers a speed reduction, the network device can use these cache resources to cache the data streams carried by the forwarding path, avoiding packet loss and ensuring data flow integrity.
[0137] By configuring a cache watermark threshold for a network device, when the cache used by a forwarding path exceeds the cache watermark threshold, it is considered that the forwarding path has experienced network congestion in the network device. This in turn triggers the network device to notify the upstream network device to perform speed reduction processing on the data stream carried by the forwarding path or to notify the upstream network device to perform load sharing processing on the data stream carried by the forwarding path. The upstream network device includes but is not limited to: any one-hop or multi-hop network device between the network device and the head node of the forwarding path, the head node of the forwarding path, or the sending end (i.e., the source end device) corresponding to the data stream carried by the forwarding path.
[0138] In a possible implementation, the cache resource may be a dedicated cache resource for the forwarding path. Figure 16 As shown, Figure 16 This is a schematic diagram of cache resources for a forwarding path in an embodiment of the present application. The network device allocates a dedicated cache resource for forwarding path #1: path cache #1, determines that the cache value of path cache #1 is 100 megabits (MB), and the cache waterline threshold of path cache #1 is 60MB. The cache value of path cache #1 is indicated by the path cache (buffer-size) in the configuration information of forwarding path #1, and the cache waterline threshold of path cache #1 is indicated by the cache waterline threshold (buffer_threshold) in the configuration information of forwarding path #1. The network device allocates a dedicated cache resource for forwarding path #2: path cache #2, determines that the cache value of path cache #2 is 80MB, and the cache waterline threshold of path cache #2 is 50MB. The cache value of path cache #2 is indicated by the path cache (buffer-size) in the configuration information of forwarding path #2, and the cache waterline threshold of path cache #2 is indicated by the cache waterline threshold (buffer_threshold) in the configuration information of forwarding path #2. The network device allocates a dedicated cache resource for forwarding path #3: path cache #3. The cache size of path cache #1 is set to 100MB, and the cache watermark threshold of path cache #3 is set to 60MB. The cache size of path cache #3 is indicated by the path cache (buffer-size) parameter in the configuration information for forwarding path #3, and the cache watermark threshold of path cache #3 is indicated by the buffer_threshold parameter in the configuration information for forwarding path #3.
[0139] In another possible implementation, the cache resource may also be a cache resource shared by multiple forwarding paths. The specific controller may instruct the network device to configure a shared cache resource for the forwarding path through configuration information. The shared cache resource is a cache resource obtained from a shared cache resource pool. The shared cache resource pool supports providing cache services for one or more forwarding paths. For example Figure 17 As shown, Figure 17This is a schematic diagram of cache resources for another forwarding path in an embodiment of the present application. The network device allocates shared cache resources to forwarding path #1: the cache waterline threshold of path cache #1 is 60MB. Among them, the cache waterline threshold of path cache #1 is indicated by the cache waterline threshold (buffer_threshold) in the configuration information of forwarding path #1, and the cache value of path cache #1 depends on how much cache resources the shared cache resource pool can provide. Similarly, the network device allocates shared cache resources to forwarding path #2: path cache #2, the cache waterline threshold of path cache #2 is 50MB, and the cache waterline threshold of path cache #2 is indicated by the cache waterline threshold (buffer_threshold) in the configuration information of forwarding path #2. The cache value of path cache #2 depends on how much cache resources the shared cache resource pool can provide. The network device allocates shared cache resources to forwarding path #3: path cache #3, the cache waterline threshold of path cache #3 is 60MB, and the cache waterline threshold of path cache #3 is indicated by the cache waterline threshold (buffer_threshold) in the configuration information of forwarding path #3. The cache value of path cache #3 depends on the amount of cache resources available in the shared cache resource pool. The above path cache dynamically applies for cache resources in the shared cache resource pool.
[0140] Next, see Figure 6 , Figure 6 The congestion control method proposed in the embodiment of the present application includes:
[0141] G1. The first device determines that network congestion occurs.
[0142] In step G1, in one possible implementation, the first device detects network congestion at a local egress port. The first device may determine, based on the egress port experiencing network congestion, a first forwarding path corresponding to the egress port. For example, a data flow carried by the first forwarding path generates burst traffic, causing network congestion at the egress port corresponding to the first forwarding path.
[0143] Furthermore, since one egress port may correspond to multiple forwarding paths, after the first device determines that a certain egress port (for example, the first egress port) has network congestion, the first device can further determine which forwarding paths corresponding to the first egress port need to perform congestion control processing. In the embodiment of the present application, the forwarding path that needs to perform congestion control processing is referred to as the first forwarding path, and the first forwarding path includes one or more forwarding paths. Exemplarily, when the first egress port corresponds to multiple forwarding paths, the first device can select a forwarding path with a larger bandwidth occupancy as the first forwarding path based on the bandwidth occupancy information of the multiple forwarding paths. Alternatively, when the first egress port corresponds to multiple forwarding paths, the first device selects a forwarding path with a larger cache resource occupancy rate as the first forwarding path based on the cache resource occupancy information of the multiple forwarding paths.
[0144] Optionally, when the first forwarding path includes multiple forwarding paths, the first device determines the speed reduction amplitude (first speed reduction information) and / or speed reduction duration (second speed reduction information) of the multiple forwarding paths in proportion to the traffic of the multiple forwarding paths.
[0145] In another possible implementation, a first device allocates a cache resource to a first forwarding path, where the cache resource is used to cache a data stream carried by the first forwarding path. When usage of the cache resource exceeds a cache watermark threshold, the first device determines that network congestion has occurred on the first device in the first forwarding path corresponding to the cache resource.
[0146] G2. In response to network congestion, the first device sends a first message to the second device, where the first message is used to request the second device to perform congestion control processing on the first forwarding path.
[0147] In step G2, after the first device determines that the first forwarding path needs to perform congestion control processing, the first device may send a first message to the second device, and the first message is used to request the second device to perform congestion control processing for the first forwarding path. The first message may carry identification information of the first forwarding path, and the identification information of the first forwarding path includes but is not limited to: path identifier (path-ID), tunnel identifier (tunnel-ID), binding segment identifier (BSID), network slice identifier (network slice-ID, or slice-ID), segment routing policy (Segment Routing Policy, SR Policy) identifier, or, segment routing policy based on IPv6 forwarding plane (Segment Routing IPv6 Policy, SRv6 Policy) identifier, etc.
[0148] Optionally, the first message may also carry relevant information instructing the second device to perform congestion control on the first forwarding path. For example, the first message may also include first speed reduction information, where the first speed reduction information indicates the expected speed reduction magnitude of the first forwarding path. For another example, the first message may also include second speed reduction information, where the second speed reduction information indicates the expected speed reduction duration of the first forwarding path.
[0149] Optionally, when the second device is the previous hop node of the first device on the first forwarding path, after receiving the first message, the second device can also update the first speed reduction information and / or the second speed reduction information based on relevant information, and then forward the updated first message to the upstream device of the second device on the first forwarding path. The relevant information includes but is not limited to: traffic information of the data flow carried by the first forwarding path in the second device, cache occupancy information of the first forwarding path in the second device, or queue cache growth information corresponding to the first forwarding path in the second device, etc.
[0150] Optionally, when the first device is the tail node of the first forwarding path, the first device detects that network congestion occurs in the link between the port and the CE node, and the link is an access (AC) side link. Then, the first device determines that the VPN instance bound to the link is the first VPN instance. Furthermore, the first device determines that the forwarding path corresponding to the first VPN instance is the first forwarding path. The first device can maintain a first mapping relationship set, and the first mapping relationship set includes mapping relationships between one or more VPN instances and forwarding paths, such as shown in Table 1. After the first device determines the first VPN instance, it determines the forwarding path corresponding to the first VPN instance from the first mapping relationship set, and then uses the forwarding path as the first forwarding path.
[0151] Table 1
[0152]
[0153] The first device can determine whether network congestion has occurred on the AC side link in various ways. In one possible implementation, network congestion is determined based on the link utilization rate of the AC side link. For example, network congestion is considered to have occurred when the link utilization rate of the AC side link is greater than 95%. In another possible implementation, whether network congestion has occurred on the AC side link can be determined by taking into account the duration of the link utilization rate exceeding 95%. For example, when the link utilization rate of the AC side link is greater than 95% and the duration exceeds 30 seconds, network congestion is considered to have occurred on the AC side link.
[0154] Optionally, the first message may also carry an Ethernet virtual private network (VPN) instance identifier.
[0155] It should be noted that since a VPN instance may be bound to multiple forwarding paths, if network congestion occurs on the AC-side link corresponding to a VPN instance, the first device may select one or more forwarding paths from the multiple forwarding paths bound to the VPN instance as the first forwarding path. For example, a forwarding path with a higher bandwidth resource utilization rate may be selected as the first forwarding path.
[0156] Furthermore, since a segment of an AC-side link may be bound to multiple VPN instances, when network congestion occurs on this segment of the AC-side link, the first device can select one or more VPN instances from the multiple VPN instances as the VPN instances causing the congestion on the AC-side link. The first device then determines a first forwarding path based on the forwarding paths bound to the one or more VPN instances. For example, the first device can determine the VPN instance causing the network congestion on the AC-side link based on the packet loss of the VPN instances. The first device can select the VPN instance with the highest packet loss rate as the VPN instance causing the network congestion on the AC-side link. Optionally, the first device can sequentially adjust the forwarding paths bound to the VPN instances bound to the AC-side link based on the packet loss of the VPN instances. For example, the first device may prioritize congestion control for forwarding paths bound to VPN instances with the highest packet loss rates, and then perform congestion control for forwarding paths bound to VPN instances with the lowest packet loss rates. For another example, the first device can proportionally determine the speed reduction magnitude and duration for the multiple forwarding paths based on the traffic flows of the multiple forwarding paths.
[0157] Optionally, the first message may also include identification information of the previous hop node of the first device, where the previous hop node refers to the previous hop node of the first device in the first forwarding path, and the identification information of the previous hop node includes but is not limited to: the identifier of the local loopback (lookback) interface or the endpoint segment routing (endpoint SID). The first device uses the identification information of the previous hop node of the first device as the destination address of the first message. The first device searches the routing table according to the identification information of the previous hop node, and then determines the corresponding outbound interface and guides the forwarding of the first message according to the outbound interface. The first device can obtain the identification information of the previous hop node based on the message carried by the first forwarding path, for example, the source address of the message is used as the identification information of the previous hop node.
[0158] Optionally, the first message may further include inbound interface information of the first forwarding path on the first device. The first device directly forwards the first message from the inbound interface according to the inbound interface information without looking up a table.
[0159] Optionally, the first message may also include path information for a second forwarding path. The network devices through which the second forwarding path passes include network devices that need to perform congestion control processing on the first forwarding path. The second forwarding path is used to guide the forwarding of the first message. For example, the path information for the second forwarding path may be a segment list. The first message may carry the path information for the second forwarding path in an SRv6 segment routing header (SRH), or in a Multi-Protocol Label Switching (MPLS) label stack of the first message.
[0160] Optionally, the path information of the second forwarding path may be a path planned by the controller according to the first forwarding path, or may be a path configured through static planning.
[0161] For an example, see Figure 10 , Figure 10 This is a schematic diagram of the second forwarding path in an embodiment of the present application. Take the first forwarding path as an example, passing through nodes A, B, C, and D. When node C determines that network congestion has occurred on the first forwarding path, it further determines a second forwarding path. The second forwarding path can be a path passing through node C → node G → node F → node E → node A, where nodes G, F, and E only forward the first message.
[0162] For another example, see Figure 11 , Figure 11 This is another schematic diagram of the second forwarding path in the embodiment of the present application. Take the first forwarding path passing through node A, node B, node C and node D as an example. When node C determines that network congestion occurs in the first forwarding path, it further determines the second forwarding path. The second forwarding path can be a path passing through node C → node G → node F → node B → node A, where node G and node F only forward. Node B can perform congestion control processing on the first forwarding path according to the first message, or node B can directly forward the first message. Optionally, after node B performs congestion control processing on the first forwarding path according to the first message, node B can continue to detect whether the network congestion of the first forwarding path has been alleviated. If the network congestion of the first forwarding path has been alleviated, node B can discard the first message; if the network congestion of the first forwarding path has not been alleviated, node B continues to forward the first message to node A. Optionally, node B can also update the first message based on relevant information, which includes but is not limited to: traffic information of the data flow carried by the first forwarding path in node B, cache occupancy information of the first forwarding path in node B, or queue cache growth information corresponding to the first forwarding path in node B, etc. Then, node B forwards the updated first message to node A.
[0163] For another example, see Figure 12 , Figure 12 This is another schematic diagram of the second forwarding path in an embodiment of the present application. Take the first forwarding path passing through Node A, Node B, Node C, and Node D as an example. When Node C determines that network congestion has occurred on the first forwarding path, it further determines a second forwarding path. The second forwarding path can be a path passing through Node C → Node B → Node A. Similarly, Node B can perform congestion control processing on the first forwarding path based on the first message, or Node B can directly forward the first message.
[0164] Optionally, the first message also includes first status information, which instructs the second device to perform congestion control. For example, the first status information is carried in a 1-bit field. When the value of this field is "1," the field carries the first status information, indicating that the message is the first message; when the value of this field is "0," the field carries second status information, indicating that the message is the second message. The second message is used to request the second device to perform congestion control removal on the first forwarding path. The second status information instructs the second device to perform congestion control removal.
[0165] There are multiple possible implementations of the first message in the embodiment of the present application, which are described below one by one.
[0166] Implementation method 1:
[0167] The first message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message.
[0168] For example, the payload field of a TCP message is used to carry the first message, or the payload field of a UDP message is used to carry the first message, or the payload field of an ICMP message is used to carry the first message. It is understandable that, in addition to the payload field, the first message can also be carried through other fields in the above-mentioned TCP message, UDP message or ICMP message. In addition, since the first message may include multiple types of information, multiple types of information of the first message can be carried respectively through multiple different fields in the above-mentioned TCP message, UDP message or ICMP message, and the embodiments of the present application do not limit this.
[0169] For example, see Figure 7 , Figure 7 This is a structural diagram of the first message in an embodiment of the present application. Taking a UDP message carrying the first message as an example, the UDP message includes: an IPv4 / IPv6 destination address (IPv4 / IPv6 destination address), an IPv4 / IPv6 source address (IPv4 / IPv6 source address), a source port (source port), a destination port (destination port), a length (length), a checksum (checksum), and a payload (payload) field. Among them, the destination port is used to carry the first port number, and the first port number is used to indicate that the UDP message is a congestion notification message carrying the first message. The payload field is used to carry the content included in the first message, for example: identification information of the first forwarding path, first status information, first speed reduction information, and second speed reduction information.
[0170] Implementation method 2:
[0171] The first message is carried in an Internet protocol (IP) message, or an Internet Protocol Version 6 (IPv6) message.
[0172] For example, the first message is carried in the Hop-by-Hop Options Header (HBH) of the IPv6 packet, or the first message is carried in the Destination Options Header (DOH) of the IPv6 packet. For another example, the first message is carried in the option field of the IP packet.
[0173] See also Figure 8 , Figure 8This is a structural diagram of the first message in an embodiment of the present application. Taking an IPv6 message as an example, the IPv6 message includes fields such as an IPv6 destination address (IPv6 destination address), an IPv6 source address (IPv6 sourceaddress), a segment routing header (SRH header), a type (type) and a length (length). Among them, the SRH header is an optional field. When the IPv6 message carries the SRH header, the SRH header can carry the path information of the second forwarding path, and the first device forwards the message according to the path information of the second forwarding path recorded in the SRH header; when the IPv6 message does not carry the SRH header, the first device can forward the message in a native IP manner. The HBH or DOH of the IPv6 message carries the content included in the first message, for example: identification information of the first forwarding path, first status information, first speed reduction information and second speed reduction information.
[0174] Implementation method three:
[0175] The first message is carried in a Layer 2 message in the Open Systems Interconnect (OSI) model. The OSI model defines seven layers: physical layer, data link layer, network layer, transport layer, session layer, presentation layer, and application layer. Layer 2 messages in the OSI model also refer to data link layer messages in the OSI model.
[0176] See also Figure 9 , Figure 9This is a schematic diagram of the structure of the first message in an embodiment of the present application. Taking a Layer 2 message as an example, the Layer 2 message includes fields such as a destination media access control address (destination MAC), a source media access control address (source MAC), an ethertype (ethertype), and a path count (path count). The destination MAC field can carry a first destination MAC address, which is a newly defined MAC address and is used to indicate that the Layer 2 message is a congestion notification message carrying the first message. Alternatively, the ethertype field can carry a first ethertype field, which is a newly defined ethertype and is used to indicate that the Layer 2 message is a congestion notification message carrying the first message. In this case, the first message is similar to a PFC backpressure frame. After the second device receives the Layer 2 message carrying the first message, it identifies the Layer 2 message as a congestion notification message carrying the first message based on the first MAC address or the first ethertype field. Furthermore, the second device reads the first message carried in the Layer 2 message and performs congestion control processing on the first forwarding path.
[0177] Since the second device in the embodiment of the present application can be the previous hop node of the first device on the first forwarding path, and the second device can also be the head node of the first forwarding path, there are two specific implementation methods for the first device to send the first message.
[0178] In one possible implementation, when the second device is the previous hop node of the first device on a first forwarding path: the first device sends a first message to the second device. After the second device performs congestion control on the first forwarding path based on the first message, the second device then sends the first message to the previous hop node of the second device on the first forwarding path, causing the previous hop node to perform congestion control on the first forwarding path based on the first message. This process continues in this manner until the head node of the first forwarding path receives the first message, at which point the head node performs congestion control on the first forwarding path.
[0179] Optionally, each node that receives the first message may update the first message by integrating relevant information, including but not limited to: traffic information of the data flow carried by the first forwarding path in the node, buffer occupancy information of the first forwarding path in the node, or queue buffer growth information corresponding to the first forwarding path in the node. The updated first message may then be forwarded to the previous-hop node of the node on the first forwarding path, so that the previous-hop node performs congestion control processing based on the updated first message.
[0180] The above technical solution can also be called hop-by-hop back pressure. Through the above technical solution, the nodes on the first forwarding path dilute the large traffic carried by the first forwarding path, so as to alleviate the network congestion of the first forwarding path.
[0181] In another possible implementation, when the second device is the head node of the first forwarding path, while the first device is sending the first message to the second device, other nodes that receive the first message simply forward the first message. This technical solution, also known as single-hop backpressure, allows the second device to quickly learn of network congestion on the first forwarding path, thereby rapidly alleviating the congestion.
[0182] In one example, when the first forwarding path is a strict path, the first message may carry the identification information of the previous hop node of the first device or the path information of the second forwarding path. The first device forwards the first message based on the identification information of the previous hop node of the first device or the path information of the second forwarding path. Alternatively, the first message carries the inbound interface information of the first forwarding path on the first device, and the first device forwards the first message based on the inbound interface information of the first forwarding path on the first device.
[0183] In another example, when the first forwarding path is a loose path, the first message may carry identification information of the previous hop node of the first device or path information of the second forwarding path. The first device forwards the first message based on the identification information of the previous hop node of the first device or the path information of the second forwarding path.
[0184] G3. The second device performs congestion control processing on the first forwarding path according to the first message.
[0185] In step G3, after receiving the first message, the second device may perform congestion control processing on the first forwarding path. In embodiments of the present application, the congestion control processing performed by the second device on the first forwarding path includes, but is not limited to: performing speed reduction processing on the first forwarding path; and / or, using the cache space of the second device to cache data carried by the first forwarding path; and / or, the second device uses other forwarding paths to forward the data carried by the first forwarding path; and / or, notifying the sender of the first data stream to perform speed reduction processing on the first data stream, the first data stream being carried on the first forwarding path.
[0186] Specifically, the second device uses other forwarding paths to forward the data carried by the first forwarding path. The second device load shares the data stream carried by the first forwarding path to multiple forwarding paths in an unequal-cost multiplepath (UCMP) manner. When the second device cannot determine the multiple forwarding paths for load sharing, or the remaining bandwidth resources (also called available bandwidth resources) of the multiple forwarding paths for load sharing cannot carry the data stream of the first forwarding path, the second device continues to notify the upstream device to perform congestion control processing on the first forwarding path. The upstream device includes the upstream node of the second device on the first forwarding path, or the sending end of the data stream carried by the first forwarding path.
[0187] Specifically, when the second device is the head node of the first forwarding path, the second device may also notify the sender of the first data stream to perform speed reduction processing on the first data stream, and the first data stream is carried on the first forwarding path. In one example, the sender and the corresponding receiver may be a host with communication needs. There are many possible implementations of the host, including but not limited to: a computing device, a computing unit, a cloud device, a virtual machine, or a physical machine. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center.
[0188] In another example, the sending end is a remote direct memory access (RDMA) network card, and the corresponding receiving end is another RDMA network card.
[0189] In another example, the sending end is the core network and the receiving end is the access network device. In another example, the sending end is the access network device and the receiving end is the core network.
[0190] After step G3, the second device may implement decongestion control processing on the first forwarding path through various solutions, as follows:
[0191] Option 1:
[0192] G4. The first device determines a first forwarding path to relieve network congestion.
[0193] In step G4, the first device may detect whether its own egress port has recovered from network congestion. If recovered, it determines that the first forwarding path corresponding to the egress port has released network congestion (or recovered from network congestion).
[0194] G5. In response to the first forwarding path releasing network congestion, the first device sends a second message to the second device, where the second message is used to request the second device to perform congestion relief control processing on the first forwarding path.
[0195] In step G5, the second message is similar to the aforementioned first message. The second message is carried in a Transmission Control Protocol (TCP) message, a User Datagram Protocol (UDP) message, or an Internet Control Message Protocol (ICMP) message; or, the second message is carried in an Internet Protocol (IP) message; or, the second message is carried in a Layer 2 message in the Open Systems Interconnection (OSI) model. Specifically, the payload field of the Transmission Control Protocol (TCP) message is used to carry the second message; or, the payload field of the User Datagram Protocol (UDP) message is used to carry the second message; or, the payload field of the Internet Control Message Protocol (ICMP) message is used to carry the second message; or, the Hop-by-Hop Options Header (HBH) of the Internet Protocol (IP) message is used to carry the second message; or, the Destination Options Header (DOH) of the Internet Protocol (IP) message is used to carry the second message; or, the Optional Option field of the Internet Protocol (IP) message is used to carry the second message.
[0196] The second message includes any one or more of the following information: identification information of the first forwarding path, identification information of the previous hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, the nodes passed by the second forwarding path include nodes that require decongestion control processing to be performed on the first forwarding path, or second status information, the second status information instructs the second device to perform decongestion control processing.
[0197] G6. The second device performs congestion control removal processing on the first forwarding path according to the second message.
[0198] In step G6, the second device performs decongestion control on the first forwarding path based on the second message, including increasing the transmission rate of the data flow carried by the first forwarding path. If the second device is the head node of the first forwarding path, the second device may also notify the sender of the first data flow carried by the first forwarding path to increase the transmission rate of the first data flow.
[0199] In the above technical solution, after the first device determines that the first forwarding path has recovered from network congestion, it can notify the upstream device through a second message to release congestion control on the first forwarding path, thereby improving network throughput. Furthermore, this avoids premature release of congestion control, which could lead to further exacerbation of network congestion, thereby improving communication quality.
[0200] Option 2:
[0201] G7. After a period of time, the second device releases the congestion control process on the first forwarding path.
[0202] In step G7, the second device sets a timer after performing congestion control on the first forwarding path. When the timer expires, the second device automatically releases the congestion control on the first forwarding path. For example, the second device gradually increases the transmission rate of the data flow carried by the first forwarding path in a slow-increment manner.
[0203] In the embodiment of the present application, the first message is used to implement flow control at the forwarding path level, which improves the precision of congestion control and makes flow control possible in wide area network scenarios. It avoids problems such as head-of-line blocking, deadlock, and congestion spreading in the network. The embodiment of the present application provides a variety of possible implementation schemes for the first message, which improves the implementation flexibility of the scheme. In addition, the first message is to request the upstream device of the forwarding path to perform congestion control processing on the forwarding path, rather than to stop sending data in the entire queue, so that network under-throughput can be effectively avoided. Since the forwarding path is used to carry business-related data streams, the correlation between congestion control and business is improved by performing congestion control on the forwarding path, effectively improving the user experience.
[0204] In combination with the foregoing embodiments, some application scenarios involved in the embodiments of the present application are introduced below.
[0205] See also Figure 13 , Figure 13 This is a flow diagram of an application scenario of an embodiment of the present application. An application scenario involved in an embodiment of the present application includes: establishing a first forwarding path between node A and node D, the first forwarding path passing through node A, node B, node C, and node D. Node A serves as the head node of the first forwarding path, and node C serves as the first device. Node C experiences network congestion, and node A serves as the second device.
[0206] S1. Node C generates a first message-1.
[0207] The first message-1 includes identification information of the first forwarding path. The first message-1 may also include first speed reduction information and second speed reduction information generated by node C.
[0208] S2. Node C sends a first message-1 to node B.
[0209] S3. Node B performs congestion control processing on the first forwarding path according to the first message-1.
[0210] S4. Node B generates a first message-2.
[0211] The first message-2 includes identification information of the first forwarding path.
[0212] The first message-2 may continue to use the first speed reduction information and the second speed reduction information carried in the first message-1.
[0213] Alternatively, Node B may also generate first speed reduction information and second speed reduction information by integrating relevant information, and then generate a new first message based on the newly generated first speed reduction information and second speed reduction information. The relevant information includes, but is not limited to, traffic information of the data flow carried by the first forwarding path in Node B, cache occupancy information of the first forwarding path in Node B, or queue cache growth information corresponding to the first forwarding path in Node B. That is, the first message-2 includes the first speed reduction information and the second speed reduction information generated by Node B.
[0214] S5. Node B sends a first message-2 to node A.
[0215] S6. Node A performs congestion control processing on the first forwarding path according to the first message-2.
[0216] Optionally, node A determines that the sender of the data flow carried by the first forwarding path is CE1, and node A notifies CE1 to perform speed reduction processing on the data flow.
[0217] See also Figure 14 , Figure 14 This is a flow diagram of an application scenario of an embodiment of the present application. An application scenario involved in an embodiment of the present application includes: establishing a first forwarding path between node A and node D, the first forwarding path passing through node A, node B, node C, and node D. Node A serves as the head node of the first forwarding path, and node C serves as the first device. Node C experiences network congestion, and node A serves as the second device.
[0218] D1. Node C generates a first message.
[0219] D2. Node C sends a first message to node A.
[0220] D3. Node A performs congestion control processing on the first forwarding path according to the first message.
[0221] Optionally, node A determines that the sender of the data flow carried by the first forwarding path is CE1, and node A notifies CE1 to perform speed reduction processing on the data flow.
[0222] See also Figure 15 , Figure 15This is a flow chart of an application scenario of an embodiment of the present application. An application scenario involved in an embodiment of the present application includes: a first forwarding path #1 is established between node E and node D, and the first forwarding path #1 passes through node E, node F, node G, node H and node D. A first forwarding path #2 is established between node D and node A, and the first forwarding path 2 passes through node A, node B, node C and node D. Network congestion occurs on the link between node D and CE2 (i.e., the AC side link), and the VPN instance carried by the AC side link is bound to the first forwarding path #1 and the second forwarding path #2. For the first forwarding path #1, node D acts as the first device and node A acts as the second device. For the first forwarding path #2, node D acts as the first device and node E acts as the second device.
[0223] F1. According to network congestion occurring on a link between nodes D and CE2, node D determines that congestion control processing needs to be performed on the first forwarding path #1 and the first forwarding path #2 corresponding to the link.
[0224] F2. Node D sends a first message #1 to node E. The first message #1 indicates that congestion control processing needs to be performed on the first forwarding path #1.
[0225] F3. Node E performs congestion control on the first forwarding path #1 according to the first message #1.
[0226] F4. Send a first message #2, where the first message #2 indicates that congestion control processing needs to be performed on the first forwarding path #2.
[0227] F5. Node A performs congestion control processing on the first forwarding path #2 according to the first message #2.
[0228] The following introduces a communication device in an embodiment of the present application. The communication device introduced below has any function of the first device or the second device in the above method embodiment.
[0229] Figure 18 A schematic diagram of the structure of a communication device 1800 provided in an embodiment of the present application is shown in FIG. Figure 18 As shown, communication device 1800 includes: a transceiver module 1801, configured to execute step G2 or step G5; a processing module 1802, configured to execute step G1 or step G4. Processing module 1802 is also configured to execute step G3. Processing module 1802 is also configured to execute step G6. Processing module 1802 is also configured to execute step G7.
[0230] In one example, a communication apparatus 1800 is applied to a first device, and the communication apparatus 1800 includes:
[0231] A processing module 1802 is configured to determine that network congestion occurs;
[0232] The transceiver module 1801 is configured to send a first message to a second device in response to network congestion, wherein the first message is used to request the second device to perform congestion control processing on a first forwarding path, and the second device is an upstream device of the first device on the first forwarding path.
[0233] In a possible implementation, the network congestion is located at an egress port of the first device, and the egress port of the first device corresponds to the first forwarding path.
[0234] In a possible implementation, the first message carries identification information of the first forwarding path.
[0235] In one possible implementation,
[0236] The processing module 1802 is further configured to determine that network congestion occurs on the first egress port of the first device;
[0237] The processing module 1802 is further configured to determine, according to the first egress port, the first forwarding path corresponding to the first egress port.
[0238] In one possible implementation,
[0239] The processing module 1802 is further configured to determine a first Ethernet virtual private network VPN instance according to the first egress port, wherein the first VPN instance is bound to an access-side link corresponding to the first egress port;
[0240] The processing module 1802 is further configured to determine, based on the first VPN instance, from a first mapping relationship set the first forwarding path having a mapping relationship with the first VPN instance, where the first mapping relationship set includes at least one mapping relationship between a VPN instance and a forwarding path.
[0241] In one possible implementation,
[0242] The processing module 1802 is further configured to determine, based on the first egress port, at least one forwarding path carried by the first egress port;
[0243] Processing module 1802 is also used to determine the first forwarding path from the at least one forwarding path based on at least one cache resource corresponding to the at least one forwarding path, wherein each cache resource is used to cache data of a forwarding path, and the cache resource corresponding to the first forwarding path reaches the cache waterline threshold.
[0244] In a possible implementation, a bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
[0245] In a possible implementation, the second device is a previous-hop node of the first device on the first forwarding path.
[0246] In a possible implementation, the second device is a head node of the first forwarding path.
[0247] In one possible implementation, the congestion control process includes any one or more of the following:
[0248] Perform speed reduction processing on the first forwarding path, use the cache space of the second device to cache the data carried by the first forwarding path, use other forwarding paths to forward the data carried by the first forwarding path, or notify the sender of the first data stream to perform speed reduction processing on the first data stream, the first data stream is carried on the first forwarding path.
[0249] In a possible implementation, the first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
[0250] In a possible implementation, the first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
[0251] In one possible implementation, the first message includes any one or more of the following information:
[0252] identification information of a previous-hop node of the first device, information of an inbound interface corresponding to the first forwarding path on the first device, path information of a second forwarding path, network devices traversed by the second forwarding path including network devices requiring congestion control processing to be performed on the first forwarding path, or first status information, wherein the first status information instructs the second device to perform the congestion control processing.
[0253] In a possible implementation, the first message is carried in a Transmission Control Protocol TCP message, a User Datagram Protocol UDP message, or an Internet Control Message Protocol ICMP message;
[0254] Alternatively, the first message is carried in an Internet Protocol IP message;
[0255] Alternatively, the first message is carried in a layer 2 message in the Open Systems Interconnection (OSI) model.
[0256] In a possible implementation, the payload field of the Transmission Control Protocol TCP message is used to carry the first message;
[0257] Alternatively, the payload field of the User Datagram Protocol UDP message is used to carry the first message;
[0258] Alternatively, the payload field of the Internet Control Message Protocol (ICMP) message is used to carry the first message;
[0259] Alternatively, the hop-by-hop option header HBH of the Internet Protocol IP message is used to carry the first message;
[0260] Alternatively, the destination options header DOH of the Internet Protocol IP message is used to carry the first message;
[0261] Alternatively, the optional option field of the Internet Protocol IP message is used to carry the first message.
[0262] In a possible implementation, when the User Datagram Protocol UDP message carries the first message, the User Datagram Protocol UDP message further includes a first port number, where the first port number is used to indicate that the User Datagram Protocol UDP message is a congestion notification message carrying the first message;
[0263] Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first destination media access control MAC address, and the first destination MAC address indicates that the layer 2 message is a congestion notification message carrying the first message;
[0264] Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first Ethernet type Ethertype field, and the first Ethernet type Ethertype field indicates that the layer 2 message is a congestion notification message carrying the first message.
[0265] In one possible implementation,
[0266] The processing module 1802 is further configured to determine that the first forwarding path relieves network congestion;
[0267] The transceiver module 1801 is further configured to send a second message to a second device in response to the first forwarding path releasing network congestion, wherein the second message is configured to request the second device to perform the congestion control release process on the first forwarding path.
[0268] In one possible implementation, the second message includes any one or more of the following information:
[0269] identification information of the first forwarding path, identification information of the previous-hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, nodes traversed by the second forwarding path including nodes requiring decongestion control processing to be performed on the first forwarding path, or second state information, wherein the second state information instructs the second device to perform decongestion control processing.
[0270] In another example, the communication apparatus 1800 is applied to a second device, where the second device is an upstream device of the first device on a first forwarding path. The communication apparatus 1800 includes:
[0271] The transceiver module 1801 is configured to receive a first message sent by the first device, where the first message is used to request the second device to perform congestion control processing on the first forwarding path;
[0272] The processing module 1802 is configured to perform the congestion control process on the first forwarding path according to the first message.
[0273] In a possible implementation, the first message carries identification information of the first forwarding path.
[0274] In a possible implementation, a bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
[0275] In a possible implementation, the second device is a previous-hop node of the first device on the first forwarding path.
[0276] In a possible implementation, the second device is a head node of the first forwarding path.
[0277] In one possible implementation,
[0278] The processing module 1802 is further configured to perform a speed reduction process on the first forwarding path;
[0279] The processing module 1802 is further configured to use the cache space of the second device to cache the data carried by the first forwarding path;
[0280] The processing module 1802 is further configured to forward the data carried by the first forwarding path by using another forwarding path;
[0281] And / or, the transceiver module 1801 is further configured to notify a sender of a first data stream to perform speed reduction processing on the first data stream, where the first data stream is carried on the first forwarding path.
[0282] In a possible implementation, the first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
[0283] In a possible implementation, the first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
[0284] In one possible implementation, the first message includes any one or more of the following information:
[0285] identification information of a previous-hop node of the first device, information of an inbound interface corresponding to the first forwarding path on the first device, path information of a second forwarding path, network devices traversed by the second forwarding path including network devices requiring congestion control processing to be performed on the first forwarding path, or first status information, wherein the first status information instructs the second device to perform the congestion control processing.
[0286] In a possible implementation, the first message is carried in a Transmission Control Protocol TCP message, a User Datagram Protocol UDP message, or an Internet Control Message Protocol ICMP message;
[0287] Alternatively, the first message is carried in an Internet Protocol IP message;
[0288] Alternatively, the first message is carried in a layer 2 message in the Open Systems Interconnection (OSI) model.
[0289] In a possible implementation, the payload field of the Transmission Control Protocol TCP message is used to carry the first message;
[0290] Alternatively, the payload field of the User Datagram Protocol UDP message is used to carry the first message;
[0291] Alternatively, the payload field of the Internet Control Message Protocol (ICMP) message is used to carry the first message;
[0292] Alternatively, the hop-by-hop option header HBH of the Internet Protocol IP message is used to carry the first message;
[0293] Alternatively, the destination options header DOH of the Internet Protocol IP message is used to carry the first message;
[0294] Alternatively, the optional option field of the Internet Protocol IP message is used to carry the first message.
[0295] In a possible implementation, when the User Datagram Protocol UDP message carries the first message, the User Datagram Protocol UDP message further includes a first port number, where the first port number is used to indicate that the User Datagram Protocol UDP message is a congestion notification message carrying the first message;
[0296] Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first destination media access control MAC address, and the first destination MAC address indicates that the layer 2 message is a congestion notification message carrying the first message;
[0297] Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first Ethernet type Ethertype field, and the first Ethernet type Ethertype field indicates that the layer 2 message is a congestion notification message carrying the first message.
[0298] In one possible implementation,
[0299] The transceiver module 1801 is further configured to receive a second message sent by the first device, where the second message is used to request the second device to perform the congestion control release process on the first forwarding path;
[0300] The processing module 1802 is further configured to release the congestion control process on the first forwarding path according to the second message.
[0301] In one possible implementation, the second message includes any one or more of the following information:
[0302] identification information of the first forwarding path, identification information of the previous-hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, nodes traversed by the second forwarding path including nodes requiring decongestion control processing to be performed on the first forwarding path, or second state information, wherein the second state information instructs the second device to perform decongestion control processing.
[0303] The communication device 1800 can correspond to the first device or the second device in the above-mentioned method embodiment. The various units in the communication device 1800 and the above-mentioned other operations and / or functions are respectively for implementing the various steps and methods implemented by the first device or the second device in the method embodiment. For specific details, please refer to the above-mentioned method embodiment. For the sake of brevity, they will not be repeated here.
[0304] When the communication device 1800 processes a message, the division of the above functional modules is used as an example for illustration. In actual application, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the communication device 1800 is divided into different functional modules to complete all or part of the functions described above. Figures 6-17 The corresponding embodiment methods belong to the same concept, and their specific implementation processes are detailed in the above method embodiments, which will not be repeated here.
[0305] In order to implement the above embodiment, the present application also provides a communication device. Figure 19 , Figure 19 A structural diagram of a communication device 1900 provided in an embodiment of the present application.
[0306] Figure 19 Although the communication device 1900 shown shows certain specific features, those skilled in the art will appreciate from the embodiments of the present application that for the sake of brevity, Figure 19 Various other features are not shown to avoid obscuring more relevant aspects of the embodiments disclosed in the embodiments of this application. To this end, as an example, in some implementations, the communication device 1900 includes one or more processing units (e.g., CPUs) 1901, a network interface 1902, a programming interface 1903, a memory 1904, and one or more communication buses 1905 for interconnecting the various components. In other implementations, the communication device 1900 may also omit or add some functional components or units based on the above examples.
[0307] In some implementations, the network interface 1902 is used to connect to one or more other communication devices / servers in the communication system. In some implementations, the communication bus 1905 includes circuits that interconnect and control communication between system components. The memory 1904 may include non-volatile memory, such as read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), or flash memory. The memory 1904 may also include volatile memory, which may be random access memory (RAM), which is used as an external cache.
[0308] In some implementations, memory 1904 or a non-transitory computer-readable storage medium of memory 1904 stores the following programs, modules, and data structures, or a subset thereof, including, for example, a transceiver unit (not shown), an acquisition unit 19041, and a processing unit 19042.
[0309] In a possible embodiment, the communication device 1900 may have the above Figures 6-17 Any function in the first device or the second device in the corresponding method embodiment.
[0310] It should be understood that the communication device 1900 corresponds to the first device or the second device in the above method embodiment, and the modules in the communication device 1900 and the above other operations and / or functions are respectively for implementing the various steps and methods implemented by the first device or the second device in the above method embodiment. For details, please refer to the above Figures 6-17 For the sake of brevity, the corresponding method embodiments are not described here in detail.
[0311] It should be understood that in this application, the data sending and receiving operations can be completed by the network interface 1902 on the communication device 1900, or the processor can call the program code in the memory and cooperate with the network interface 1902 when necessary to implement the functions of the sending and receiving unit.
[0312] In various implementations, the communication device 1900 is used to execute the congestion control method provided in the embodiment of the present application, for example, to execute the above Figures 6-17 The congestion control method corresponding to the embodiment shown.
[0313] This application Figure 19 The specific structure of the communication device can be Figure 20 shown.
[0314] Figure 20 A schematic structural diagram of a communication device 2000 provided in an embodiment of the present application.
[0315] The communication device 2000 includes a main control board 2010 and an interface board 2030 .
[0316] Main control board 2010, also known as the main processing unit (MPU) or route processor, is used to control and manage various components in communication device 2000, including routing calculation, device management, device maintenance, and protocol processing. Main control board 2010 includes a central processing unit 2011 and memory 2012.
[0317] Interface board 2030 is also known as a line processing unit (LPU), line card, or service board. It provides various service interfaces and implements data packet forwarding. Service interfaces include, but are not limited to, Ethernet interfaces and POS (Packet over SONET / SDH) interfaces. Interface board 2030 includes a central processing unit (CPU) 2031, a network processor (NPU) 2032, a forwarding table memory 2034, and a physical interface card (PIC) 2033.
[0318] The central processing unit 2031 on the interface board 2030 is used to control and manage the interface board 2030 and communicate with the central processing unit 2011 on the main control board 2010 .
[0319] The network processor 2032 is used to implement packet forwarding processing and can be in the form of a forwarding chip.
[0320] The physical interface card 2033 is used to implement the physical layer docking function. Raw traffic enters the interface board 2030 from this physical interface card, and processed messages are sent from the physical interface card 2033. The physical interface card 2033 includes at least one physical interface, also known as a physical port, which can be a Flexible Ethernet (FlexE) physical interface. The physical interface card 2033, also known as a daughter card, can be installed on the interface board 2030 and is responsible for converting optical and electrical signals into messages, performing a validity check on the messages, and forwarding them to the network processor 2032 for processing. In some embodiments, the central processing unit 2031 of the interface board 2030 can also perform the functions of the network processor 2032, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 2032 is not required in the interface board 2030.
[0321] Optionally, the communication device 2000 includes multiple interface boards. For example, the communication device 2000 further includes an interface board 2040 . The interface board 2040 includes a central processing unit 2041 , a network processor 2042 , a forwarding table entry memory 2044 , and a physical interface card 2043 .
[0322] Optionally, the communication device 2000 further includes a switching fabric board 2020. The switching fabric board 2020 may also be referred to as a switch fabric unit (SFU). If the communication device includes multiple interface boards 2030, the switching fabric board 2020 is used to exchange data between the interface boards. For example, the interface board 2030 and the interface board 2040 can communicate via the switching fabric board 2020.
[0323] The main control board 2010 is coupled to the interface board. For example, the main control board 2010, the interface board 2030, the interface board 2040, and the switching network board 2020 are interconnected via a system bus and / or a system backplane. In one possible implementation, an inter-process communication (IPC) channel is established between the main control board 2010 and the interface board 2030, and communication between the main control board 2010 and the interface board 2030 is performed via the IPC channel.
[0324] Logically, the communication device 2000 comprises a control plane and a forwarding plane. The control plane includes the main control board 2010 and the central processing unit 2031, while the forwarding plane includes various components that perform forwarding, such as the forwarding table entry memory 2034, the physical interface card 2033, and the network processor 2032. The control plane performs functions such as publishing routes, generating forwarding tables, processing signaling and protocol messages, and configuring and maintaining device status. The control plane sends the generated forwarding tables to the forwarding plane. On the forwarding plane, the network processor 2032 forwards messages received by the physical interface card 2033 based on the forwarding table sent by the control plane. The forwarding table sent by the control plane can be stored in the forwarding table entry memory 2034. In some embodiments, the control plane and forwarding plane can be completely separate and not located on the same device.
[0325] It should be understood that the transceiver unit in the communication device 2000 can be equivalent to the physical interface card 2033 or the physical interface card 2043 in the communication device 2000; the acquisition unit 20041 and the processing unit 20042 in the communication device 2000 can be equivalent to the central processing unit 2011 or the central processing unit 2031 in the communication device 2000, or can be equivalent to the program code or instructions stored in the memory 2012.
[0326] It should be understood that the operations on the interface board 2040 in the embodiment of the present application are consistent with the operations on the interface board 2030. For the sake of brevity, detailed description is omitted. It should be understood that the communication device 2000 in this embodiment can correspond to the first device or the second device in each of the above-mentioned method embodiments. The main control board 2010, the interface board 2030, and / or the interface board 2040 in the communication device 2000 can implement the functions and / or various steps of the first device or the second device in each of the above-mentioned method embodiments. For the sake of brevity, detailed description is omitted here.
[0327] It's worth noting that there may be one or more main control boards (SBCs), which may include a primary SBC and a backup SBC. There may be one or more interface boards. The higher the data processing capability of a communication device, the more interface boards are provided. An interface board may also have one or more physical interface cards. There may be no SBCs, or one or more. Multiple SBCs can be used to achieve load balancing and redundant backup. In a centralized forwarding architecture, a communication device may not require a SBC; the interface board handles service data processing for the entire system. In a distributed forwarding architecture, a communication device may have at least one SBC, which enables data exchange between multiple interface boards, providing high-capacity data exchange and processing capabilities. Alternatively, a communication device may have only one SBC, i.e., no SBC. The functions of the interface board and the SBC are integrated on this single SBC. In this case, the central processing unit (CPU) on the interface board and the CPU on the SBC can be combined into a single CPU on this single SBC, performing the combined functions of the two. The specific architecture to be adopted depends on the specific network deployment scenario and is not intended to be exclusive here.
[0328] In some possible embodiments, the first device or the second device may be implemented as a virtualized device. The virtualized device may be a virtual machine (VM), a virtual router, or a virtual switch running a program for sending messages. The virtualized device is deployed on a hardware device (e.g., a physical server). For example, the first device or the second device may be implemented based on a general-purpose physical server in combination with network function virtualization (NFV) technology.
[0329] It should be understood that the communication devices in the various product forms mentioned above respectively have any functions of the first device or the second device in the above method embodiments, which will not be described in detail here.
[0330] An embodiment of the present application also provides a computer-readable storage medium, comprising instructions, which, when executed on a computer, enables the computer to control a computing device to execute any one of the implementation methods shown in the aforementioned method embodiments.
[0331] An embodiment of the present application also provides a computer program product, which includes computer program code. When the computer program code runs on a computer, it enables the computer to execute any one of the implementation methods shown in the aforementioned method embodiments.
[0332] Furthermore, the embodiment of the present application also provides a computer program product, which, when executed on a communication device, enables the communication device to execute the above Figures 6-17 The method executed by the first device or the second device in the corresponding method embodiment.
[0333] The present application also provides a chip system including a processor and an interface circuit, wherein the interface circuit is configured to receive instructions and transmit them to the processor, wherein the processor is configured to implement any of the above method embodiments.
[0334] Optionally, the chip system further includes a memory, and the chip system may include one or more processors. The processor may be implemented in hardware or software. When implemented in hardware, the processor may be a logic circuit, an integrated circuit, etc. When implemented in software, the processor may be a general-purpose processor that implements any of the above method embodiments by reading software code stored in the memory.
[0335] Optionally, the memory in the chip system may be one or more memories. The memory may be integrated with the processor or may be provided separately from the processor, which is not limited in this application. For example, the memory may be a non-transient processor, such as a read-only memory (ROM), which may be integrated with the processor on the same chip or provided on different chips. This application does not specifically limit the type of memory or the configuration of the memory and the processor.
[0336] See also Figure 21 , Figure 21 This is a schematic diagram of a communication system 2100 proposed in an embodiment of the present application. The communication system 2100 includes: a first device 2101, a second device 2102, and a controller 2103. The first device 2101 and the second device 2102 can be, for example, physical devices such as routers, switches, or gateways, or virtual devices that support route publishing and message forwarding. This embodiment does not limit the specific types of the first device 2101 and the second device 2102. The controller 2103 can be a server or computing device that manages the first device 2101 and the second device 2102. Optionally, the first device 2101 can be the communication device 1800, the communication device 1900, or the communication device 2000. Optionally, the second device 2102 can be the communication device 1800, the communication device 1900, or the communication device 2000.
[0337] The above describes the embodiments of the present application in detail. The steps in the method of the embodiments of the present application can be scheduled sequentially, merged or deleted according to actual needs; the modules in the device of the embodiments of the present application can be divided, merged or deleted according to actual needs.
[0338] It should be understood that “one embodiment” or “an embodiment” mentioned throughout the specification means that the specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, “in one embodiment” or “in an embodiment” appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in the various embodiments of the present application, the size of the sequence numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.
[0339] The term "and / or" in this document simply describes a relationship between related objects, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, or B exists alone. Additionally, the character " / " in this document generally indicates that the related objects are in an "or" relationship.
[0340] It should be understood that in the embodiments of the present application, "B corresponding to A" means that B is associated with A and B can be determined based on A. However, it should also be understood that determining B based on A does not mean determining B based solely on A, but B can also be determined based on A and / or other information.
[0341] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0342] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interface, device or unit, which can be electrical, mechanical or other forms.
[0343] Units described as separate components may or may not be physically separate, and components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0344] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
Claims
1. A congestion control method, characterized in that: The method is applied to a first device, and includes: Determining that network congestion occurs; In response to network congestion, a first message is sent to a second device, wherein the first message is used to request the second device to perform congestion control processing on a first forwarding path, and the second device is an upstream device of the first device on the first forwarding path.
2. The method according to claim 1, characterized in that The first message carries identification information of the first forwarding path.
3. The method according to claim 1 or 2, characterized in that The network congestion is located at an egress port of the first device, and the egress port of the first device corresponds to the first forwarding path.
4. The method according to any one of claims 1 to 3, characterized in that Determine if network congestion is occurring, including: Determining that network congestion occurs on a first egress port of the first device; The first forwarding path corresponding to the first egress port is determined according to the first egress port.
5. The method according to claim 4, characterized in that Determining, according to the first egress port, the first forwarding path corresponding to the first egress port includes: Determine, according to the first egress port, a first Ethernet virtual private network VPN instance, wherein the first VPN instance is bound to an access-side link corresponding to the first egress port; According to the first VPN instance, the first forwarding path having a mapping relationship with the first VPN instance is determined from a first mapping relationship set, where the first mapping relationship set includes a mapping relationship between at least one VPN instance and a forwarding path.
6. The method according to claim 4 or 5, characterized in that Determining, according to the first egress port, the first forwarding path corresponding to the first egress port includes: determining, according to the first egress port, at least one forwarding path carried by the first egress port; Based on at least one cache resource corresponding to the at least one forwarding path, the first forwarding path is determined from the at least one forwarding path, wherein each cache resource is used to cache data of a forwarding path, and the cache resource corresponding to the first forwarding path reaches a cache waterline threshold.
7. The method according to any one of claims 1 to 6, characterized in that The bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
8. The method according to any one of claims 1 to 7, characterized in that The second device is a previous hop node of the first device on the first forwarding path.
9. The method according to any one of claims 1 to 7, characterized in that The second device is a head node of the first forwarding path.
10. The method according to any one of claims 1 to 9, characterized in that The congestion control process includes any one or more of the following: Perform speed reduction processing on the first forwarding path, use the cache space of the second device to cache the data carried by the first forwarding path, use other forwarding paths to forward the data carried by the first forwarding path, or notify the sender of the first data stream to perform speed reduction processing on the first data stream, the first data stream is carried on the first forwarding path.
11. The method according to any one of claims 1 to 10, characterized in that The first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
12. The method according to any one of claims 1 to 11, characterized in that The first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
13. The method according to any one of claims 1 to 12, characterized in that The first message includes any one or more of the following information: identification information of a previous-hop node of the first device, information of an inbound interface corresponding to the first forwarding path on the first device, path information of a second forwarding path, network devices traversed by the second forwarding path including network devices requiring congestion control processing to be performed on the first forwarding path, or first status information, wherein the first status information instructs the second device to perform the congestion control processing.
14. The method according to any one of claims 1 to 13, characterized in that The first message is carried in a Transmission Control Protocol TCP message, a User Datagram Protocol UDP message, or an Internet Control Message Protocol ICMP message; Alternatively, the first message is carried in an Internet Protocol IP message; Alternatively, the first message is carried in a layer 2 message in the Open Systems Interconnection (OSI) model.
15. The method according to claim 14, characterized in that The payload field of the Transmission Control Protocol TCP message is used to carry the first message; Alternatively, the payload field of the User Datagram Protocol UDP message is used to carry the first message; Alternatively, the payload field of the Internet Control Message Protocol (ICMP) message is used to carry the first message; Alternatively, the hop-by-hop option header HBH of the Internet Protocol IP message is used to carry the first message; Alternatively, the destination options header DOH of the Internet Protocol IP message is used to carry the first message; Alternatively, the optional option field of the Internet Protocol IP message is used to carry the first message.
16. The method according to claim 14 or 15, characterized in that When the User Datagram Protocol UDP message carries the first message, the User Datagram Protocol UDP message further includes a first port number, where the first port number is used to indicate that the User Datagram Protocol UDP message is a congestion notification message carrying the first message; Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first destination media access control MAC address, and the first destination MAC address indicates that the layer 2 message is a congestion notification message carrying the first message; Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first Ethernet type Ethertype field, and the first Ethernet type Ethertype field indicates that the layer 2 message is a congestion notification message carrying the first message.
17. The method according to any one of claims 1 to 16, characterized in that The method further comprises: Determining that the first forwarding path relieves network congestion; In response to the first forwarding path releasing network congestion, a second message is sent to a second device, where the second message is used to request the second device to perform a process of releasing the congestion control on the first forwarding path.
18. The method according to claim 17, characterized in that The second message includes any one or more of the following information: identification information of the first forwarding path, identification information of the previous-hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, nodes traversed by the second forwarding path including nodes requiring decongestion control processing to be performed on the first forwarding path, or second state information, wherein the second state information instructs the second device to perform decongestion control processing.
19. A congestion control method, characterized in that: The method is applied to a second device, where the second device is an upstream device of the first device on a first forwarding path, and the method includes: receiving a first message sent by the first device, where the first message is used to request the second device to perform congestion control processing on the first forwarding path; The congestion control process is performed on the first forwarding path according to the first message.
20. The method according to claim 19, characterized in that The first message carries identification information of the first forwarding path.
21. The method according to claim 19 or 20, characterized in that The bandwidth value of the bandwidth resource used by the first forwarding path is allowed to be changed from a first bandwidth value to a second bandwidth value, and the second bandwidth value is greater than the first bandwidth value.
22. The method according to any one of claims 19 to 21, characterized in that The second device is a previous hop node of the first device on the first forwarding path.
23. The method according to any one of claims 19 to 21, characterized in that The second device is a head node of the first forwarding path.
24. The method according to any one of claims 19 to 23, wherein: The performing the congestion control process on the first forwarding path according to the first message includes: performing speed reduction processing on the first forwarding path; caching the data carried by the first forwarding path using the cache space of the second device; forwarding the data carried by the first forwarding path using another forwarding path; And / or, notifying a sender of a first data stream to perform speed reduction processing on the first data stream, where the first data stream is carried on the first forwarding path.
25. The method according to any one of claims 19 to 24, characterized in that The first message further includes first speed reduction information, where the first speed reduction information is used to indicate an expected speed reduction range of the first forwarding path.
26. The method according to any one of claims 19 to 25, characterized in that The first message further includes second speed reduction information, where the second speed reduction information is used to indicate an expected speed reduction time of the first forwarding path.
27. The method according to any one of claims 19 to 26, characterized in that The first message includes any one or more of the following information: identification information of a previous-hop node of the first device, information of an inbound interface corresponding to the first forwarding path on the first device, path information of a second forwarding path, network devices traversed by the second forwarding path including network devices requiring congestion control processing to be performed on the first forwarding path, or first status information, wherein the first status information instructs the second device to perform the congestion control processing.
28. The method according to any one of claims 19 to 27, characterized in that The first message is carried in a Transmission Control Protocol TCP message, a User Datagram Protocol UDP message, or an Internet Control Message Protocol ICMP message; Alternatively, the first message is carried in an Internet Protocol IP message; Alternatively, the first message is carried in a layer 2 message in the Open Systems Interconnection (OSI) model.
29. The method according to claim 28, characterized in that The payload field of the Transmission Control Protocol TCP message is used to carry the first message; Alternatively, the payload field of the User Datagram Protocol UDP message is used to carry the first message; Alternatively, the payload field of the Internet Control Message Protocol (ICMP) message is used to carry the first message; Alternatively, the hop-by-hop option header HBH of the Internet Protocol IP message is used to carry the first message; Alternatively, the destination options header DOH of the Internet Protocol IP message is used to carry the first message; Alternatively, the optional option field of the Internet Protocol IP message is used to carry the first message.
30. The method according to claim 28 or 29, characterized in that When the User Datagram Protocol UDP message carries the first message, the User Datagram Protocol UDP message further includes a first port number, where the first port number is used to indicate that the User Datagram Protocol UDP message is a congestion notification message carrying the first message; Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first destination media access control MAC address, and the first destination MAC address indicates that the layer 2 message is a congestion notification message carrying the first message; Alternatively, when the layer 2 message carries the first message, the layer 2 message further includes a first Ethernet type Ethertype field, and the first Ethernet type Ethertype field indicates that the layer 2 message is a congestion notification message carrying the first message.
31. The method according to any one of claims 19 to 30, characterized in that The method further comprises: receiving a second message sent by the first device, where the second message is used to request the second device to perform the congestion control release process on the first forwarding path; The congestion control process on the first forwarding path is released according to the second message.
32. The method according to claim 31, wherein The second message includes any one or more of the following information: identification information of the first forwarding path, identification information of the previous-hop node of the first device, inbound interface information corresponding to the first forwarding path on the first device, path information of the second forwarding path, nodes traversed by the second forwarding path including nodes requiring decongestion control processing to be performed on the first forwarding path, or second state information, wherein the second state information instructs the second device to perform decongestion control processing.
33. A communication device, characterized in that: The device includes multiple functional modules, which interact with each other to implement the method according to any one of claims 1 to 32.
34. A communication system, characterized in that The communication system includes a first device and / or a second device, the first device is configured to execute the method according to any one of claims 1 to 18, and the second device is configured to execute the method according to any one of claims 19 to 32.
35. A communication device comprising a processor and a memory, wherein the memory is configured to store program codes, and the processor is configured to call the program codes in the memory so that the communication device executes the method according to any one of claims 1 to 32.
36. A computer-readable storage medium storing instructions, which, when executed on a computer, cause the computer to execute the method according to any one of claims 1 to 32.
37. A computer program product, characterized in that The computer program product comprises program codes, which, when a computer runs the computer program product, causes the computer to perform the method according to any one of claims 1 to 32.