Communication method and apparatus

Through the path adjustment request and response mechanism between Leaf and Spine devices, link failures or congestion can be quickly identified and adjusted, achieving real-time traffic adjustment at the 10ms level and solving the problem of slow centralized path selection by the SDN controller.

CN119363657BActive Publication Date: 2025-10-10NEW H3C TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411426143.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-12
Publication Date
2025-10-10
Estimated Expiration
2044-10-12

AI Technical Summary

Technical Problem

The existing method of using SDN controllers to centrally select and set paths has a slow path adjustment speed and is difficult to achieve end-to-end traffic adaptive routing and real-time control.

Method used

Leaf devices and spine devices send path adjustment request messages through interfaces. Available interfaces are identified based on traffic characteristics and occupied bandwidth. Spine devices then provide feedback on the path adjustment results and available bandwidth. Leaf devices then select the next-hop network device, enabling rapid traffic load adjustment.

Benefits of technology

In the Spine device-Leaf device networking topology, 10ms-level real-time performance is achieved, link failures or congestion are quickly detected, and traffic load is automatically adjusted, solving the problem of slow path adjustment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119363657B_ABST
    Figure CN119363657B_ABST
Patent Text Reader

Abstract

The application provides a communication method and device, the method comprises the following steps: receiving a first service flow, the first service flow comprising a first flow characteristic; sending a first path adjustment request message to each second Spine device through an interface other than the first interface and used for connecting with the at least one second Spine device, the first path adjustment request message comprising the first flow characteristic and a first occupied bandwidth; receiving a first path adjustment response message sent by each second Spine device, the first path adjustment response message comprising the first flow characteristic, a first path adjustment result and an available bandwidth of a second interface; selecting a third Spine device from the at least one second Spine device as a next hop network device for continuing forwarding the first service flow according to a preconfigured first selection strategy, the first path adjustment result and the available bandwidth of the second interface; and sending the first service flow to the selected third Spine device.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a communication method and device. Background Art

[0002] Adaptive routing is a technology that makes dynamic routing decisions based on network topology and traffic load. In complex topologies, forwarding service packets using the shortest path can easily lead to congestion on some links and idleness on others. It also makes it difficult to control traffic flow. Achieving end-to-end adaptive routing while ensuring real-time performance is technically challenging.

[0003] Currently, SDN controllers centrally collect basic information (topology, traffic statistics) and extended information (metrics such as traffic forwarding delay and packet loss rate), enabling centralized path selection and configuration. However, centralized control using SDN controllers typically only achieves sub-second adjustment speeds. Summary of the Invention

[0004] In view of this, the present application provides a communication method and apparatus to solve the problem of slow path adjustment speed in the existing method of centrally selecting and setting paths using an SDN controller.

[0005] In a first aspect, the present application provides a communication method, which is applied to a Leaf device, the Leaf device being connected to at least one Spine device, the Leaf device including a first interface, the first interface being connected to a first Spine device, the method comprising:

[0006] receiving a first service flow, wherein the first service flow includes a first flow characteristic;

[0007] Sending a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth;

[0008] Receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface;

[0009] Selecting a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface;

[0010] Sending the first service flow to the selected third Spine device;

[0011] Among them, the second interface is the outgoing interface for forwarding the first business flow determined by the second Spine device according to the first flow characteristics.

[0012] In a second aspect, the present application provides a communication method, which is applied to a Spine device, the Spine device being connected to at least one Leaf device, the Spine device including a first interface, and the method comprising:

[0013] receiving a first path adjustment request message sent by the Leaf device, where the first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow;

[0014] Acquire, according to the first flow feature, a first outbound interface identifier corresponding to the first flow feature, where the first outbound interface identifier indicates the first interface;

[0015] identifying, based on the first flow characteristics and the first occupied bandwidth, whether the first interface can be used to forward the first service flow;

[0016] If so, sending a first path adjustment response message to the Leaf device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the first interface, so that the Leaf device selects a Spine device as the one for forwarding the first service flow based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the first interface;

[0017] The first path adjustment result is accepting the path adjustment request.

[0018] In a third aspect, the present application provides a communication device, which is applied to a Leaf device, the Leaf device being connected to at least one Spine device, the Leaf device including a first interface, the first interface being connected to a first Spine device, the device including:

[0019] A receiving unit, configured to receive a first service flow, where the first service flow includes a first flow feature;

[0020] A sending unit is configured to send a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth;

[0021] The receiving unit is further configured to receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the second interface;

[0022] A selection unit is configured to select a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface;

[0023] The sending unit is further configured to send the first service flow to the selected third Spine device;

[0024] Among them, the second interface is the outgoing interface for forwarding the first business flow determined by the second Spine device according to the first flow characteristics.

[0025] In a fourth aspect, the present application provides a communication device, which is applied to a Spine device, the Spine device is connected to at least one Leaf device, the Spine device includes a first interface, and the device includes:

[0026] a receiving unit, configured to receive a first path adjustment request message sent by the Leaf device, where the first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow;

[0027] an acquiring unit, configured to acquire, according to the first flow feature, a first outbound interface identifier corresponding to the first flow feature, where the first outbound interface identifier indicates the first interface;

[0028] an identification unit, configured to identify, based on the first flow characteristics and the first occupied bandwidth, whether the first interface can be used to forward the first service flow;

[0029] A sending unit, configured to, if so, send a first path adjustment response message to the Leaf device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the first interface, so that the Leaf device selects a Spine device as the Spine device for forwarding the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the first interface;

[0030] The first path adjustment result is accepting the path adjustment request.

[0031] In a fifth aspect, the present application provides a network device comprising a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is prompted by the machine-executable instructions to execute the method provided in the first aspect of the present application.

[0032] In a sixth aspect, the present application provides a network device comprising a processor and a machine-readable storage medium, wherein the machine-readable storage medium stores machine-executable instructions that can be executed by the processor, and the processor is prompted by the machine-executable instructions to execute the method provided in the second aspect of the present application.

[0033] Therefore, by applying the communication method and device provided in the present application, the Leaf device receives a first business flow, which includes a first flow characteristic; through an interface other than the first interface for connecting to at least one second Spine device, the Leaf device sends a first path adjustment request message to each corresponding second Spine device respectively, and the first path adjustment request message includes the first flow characteristic and the first occupied bandwidth of the first business flow, so that each second Spine device identifies whether the second interface can be used to forward the first business flow based on the first flow characteristic and the first occupied bandwidth; the Leaf device receives a first path adjustment response message sent by each second Spine device, and the first path adjustment response message includes the first flow characteristic, the first path adjustment result and the available bandwidth of the second interface; according to the pre-configured first selection strategy, the first path adjustment result and the available bandwidth of the second interface, the Leaf device selects a third Spine device from at least one second Spine device as the next-hop network device for continuing to forward the first business flow; the Leaf device sends the first business flow to the selected third Spine device; wherein, the second interface is the output interface for forwarding the first business flow determined by the second Spine device based on the first flow characteristic.

[0034] In this way, in a spine-leaf network topology, leaf devices can quickly detect link failures or congestion between themselves and spine devices, as well as between spine devices and downstream leaf devices, and automatically adjust the traffic load on their interfaces, achieving real-time performance of 10ms or better. This solves the slow path adjustment problem of existing methods that use SDN controllers to centrally select and configure paths. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Figure 1 A flow chart of a communication method provided in an embodiment of the present application;

[0036] Figure 2 A flowchart of another communication method provided in an embodiment of the present application;

[0037] Figure 3 A schematic diagram of a Spine device-Leaf device network provided in an embodiment of the present application;

[0038] Figure 4 A schematic diagram of another Spine device-Leaf device networking provided in an embodiment of the present application;

[0039] Figure 5 A structural diagram of a communication device provided in an embodiment of the present application;

[0040] Figure 6 A structural diagram of a communication device provided in an embodiment of the present application;

[0041] Figure 7 The network device hardware structure provided in the embodiment of the present application. DETAILED DESCRIPTION

[0042] Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. In the following description, when referring to the drawings, identical numerals in different figures represent identical or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present application, as detailed in the appended claims.

[0043] The terms used in this application are for the purpose of describing specific embodiments only and are not intended to limit this application. As used in this application and the appended claims, the singular forms "a," "an," "the," and "the" are intended to include the plural forms, unless the context clearly indicates otherwise. It should also be understood that the term "and / or" as used herein refers to and encompasses any and all possible combinations of one or more of the corresponding listed items.

[0044] It should be understood that although the terms first, second, third, etc. may be used in this application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from each other. For example, without departing from the scope of this application, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0045] The communication method provided in the embodiment of the present application is described in detail below. Figure 1 , Figure 1 Flowchart of a communication method provided in an embodiment of the present application. The method is applied to a Leaf device, where the Leaf device is connected to at least one Spine device. The communication method provided in an embodiment of the present application may include the following steps.

[0046] Step 110: Receive a first service flow, where the first service flow includes a first flow feature;

[0047] Specifically, the host accesses a leaf device and sends a first service flow to the leaf device. The leaf device is connected to each spine device in at least one spine device. For example, the leaf device includes a first interface and is connected to the first spine device through the first interface.

[0048] The leaf device receives the first service flow.

[0049] Optionally, in an embodiment of the present application, after receiving the first service flow, the Leaf device generates a first flow monitoring table entry of the first service flow through the first service message of the first service flow.

[0050] Furthermore, after receiving the first service flow, the Leaf device generates a first flow monitoring table entry based on the first service packet included in the first service flow. The first flow monitoring table entry includes a flow feature field, an outbound interface field, and a metric parameter field. The first flow monitoring table entry may be generated by a forwarding chip included in the Leaf device and stored in the forwarding chip.

[0051] The flow characteristics field stores the message characteristics of the first service message, which are the first flow characteristics of the first service flow. The outgoing interface field stores the first interface identifier. The metric parameter field stores the first metric parameters representing the first service flow. The first metric parameters include metric parameters such as the first occupied bandwidth and the first forwarding delay of the first service flow.

[0052] Furthermore, the first flow monitoring table entry further includes an input interface field, and the input interface field stores an identifier of an interface for receiving the first service flow.

[0053] In an embodiment of the present application, the first flow feature includes a destination IP, a source IP, or the first flow feature includes a destination IP, a source IP, a source port, a destination port, and a protocol type. The first interface identifier indicates that the Leaf device forwards the first service flow to the first Spine device through the first interface indicated by the first interface identifier. The first interface identifier can be obtained from the outgoing interface identifier included in the first flow forwarding entry of the first flow feature. The first occupied bandwidth can be obtained by the traffic statistics of the service flow by the forwarding chip. The first forwarding delay can be obtained by measuring the time difference between the arrival and the forwarding of the service flow by the forwarding chip.

[0054] Optionally, in an embodiment of the present application, after receiving the first service flow, the Leaf device identifies the first service flow through the first flow characteristics and forwards the first service flow.

[0055] Furthermore, after the Leaf device receives the first service flow, based on the first flow characteristics, the Leaf device obtains a first flow forwarding table entry that matches the first flow characteristics from the flow forwarding table, and the first flow forwarding table entry includes a second outgoing interface identifier, and the second outgoing interface identifier also indicates the first interface; through the first interface, the Leaf device sends the first service flow to the first Spine device.

[0056] It is understandable that the Leaf device may generate the first flow monitoring entry and forward the first service flow in parallel.

[0057] Optionally, in an embodiment of the present application, the Leaf device detects and maintains the local status of the link between it and each Spine device. For example, the link status includes the congestion status and the bandwidth status. The congestion status is a parameter indicating the congestion level of the interface. It can be represented by the percentage of occupancy of the interface send buffer. For example, 1 represents 1%, 2 represents 2%, and 101 represents that the interface send buffer has overflowed. The bandwidth status includes the total bandwidth of the interface and the available bandwidth of the interface.

[0058] Optionally, in the embodiment of the present application, the Leaf device further monitors the flow status of the first service flow during the process of forwarding the first service flow.

[0059] Furthermore, the Leaf device monitors the first metric parameter during the process of forwarding the first service flow. For example, the Leaf device monitors the first forwarding delay.

[0060] When the first forwarding delay exceeds a preset first parameter threshold (e.g., 10 ms), the leaf device retrieves a first flow monitoring table entry that matches the first flow characteristic from the flow monitoring table based on the first flow characteristic. The first flow monitoring table entry includes a first outbound interface identifier and a first occupied bandwidth, where the first outbound interface identifier indicates the first interface.

[0061] It should be noted that when the first forwarding delay exceeds the first parameter threshold, the leaf device determines that it is no longer suitable to forward the first service flow through the first interface. The leaf device activates the adaptive routing adjustment function and executes step 120.

[0062] Optionally, in an embodiment of the present application, the Spine device may also enable an adaptive routing adjustment function.

[0063] Furthermore, after the first Spine device determines that the existing forwarding link for forwarding the first service flow is no longer suitable for forwarding the first service flow, it generates an adaptive routing notification message, the adaptive routing notification message including the first flow characteristics and the first occupied bandwidth. The first Spine device sends the adaptive routing notification message to the first interface.

[0064] After receiving the adaptive routing notification message sent by the first spine device through the first interface, the leaf device obtains the first flow characteristics and the first occupied bandwidth from the message. The leaf device determines that the first spine device is no longer suitable for forwarding the first service flow. The leaf device activates the adaptive routing adjustment function. The leaf device executes step 120.

[0065] It should be noted that the process of enabling the adaptive routing adjustment function of the Spine device will be described in detail in subsequent embodiments and will not be repeated here.

[0066] Step 120: Send a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth.

[0067] Specifically, according to the description of step 110, after the Leaf device starts the adaptive route adjustment function, it generates a first path adjustment request message. The first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow.

[0068] Through other interfaces for connecting to at least one second Spine device except the first interface, the Leaf device sends a first path adjustment request to each second Spine device corresponding to the other interfaces for connecting to at least one second Spine device. After receiving the first path adjustment request, each second Spine device identifies whether the second interface included in itself can be used to forward the first business flow based on the first flow characteristics and the first occupied bandwidth. The second interface is the outgoing interface for forwarding the first business flow determined by the second Spine device based on the first flow characteristics.

[0069] It should be noted that in subsequent embodiments, the process of the Spine device identifying whether the second interface can be used to forward the first business flow will be described in detail and will not be repeated here.

[0070] Optionally, the first path adjustment request message further includes a message identifier. When generating the first path adjustment request message, the leaf device automatically assigns the message identifier. The message identifier is typically a sequentially increasing sequence number, for example, a 32-bit value, assigned one by one from 1 to a maximum.

[0071] In one example, a Leaf device is connected to a first Spine device, a second Spine device, and a third Spine device. The Leaf device is connected to the first Spine device via a first interface and a second interface; the Leaf device is connected to the second Spine device via a third interface; and the Leaf device is connected to the third Spine device via a fourth interface.

[0072] In this example, a leaf device has forwarded the first service flow to the first spine device through its first interface. After the leaf device determines that the first interface is no longer suitable for forwarding the first service flow, it initiates adaptive routing adjustment. The leaf device generates a first path adjustment request message and sends it to the corresponding first, second, and third spine devices through its second, third, and fourth interfaces, respectively.

[0073] In another example, a Leaf device is connected to a first Spine device, a second Spine device, and a third Spine device, respectively. The Leaf device is connected to the first Spine device via a first interface, the Leaf device is connected to the second Spine device via a second interface, and the Leaf device is connected to the third Spine device via a third interface.

[0074] In this example, a leaf device has forwarded the first service flow to the first spine device through its first interface. After the leaf device determines that the first interface is no longer suitable for forwarding the first service flow, it initiates adaptive routing adjustment. The leaf device generates a first path adjustment request message and sends it to the corresponding second and third spine devices through its second and third interfaces, respectively.

[0075] Step 130: Receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface;

[0076] Specifically, according to the description of step 120, after identifying whether the second interface can be used to forward the first service flow, each second Spine device generates a first path adjustment response message. The first path adjustment response message includes the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface.

[0077] Each second Spine device sends a first path adjustment response message to a Leaf device through the interface that received the first path adjustment request message. After receiving the first path adjustment response message, the Leaf device obtains the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface.

[0078] Optionally, the first path adjustment response message further includes a message identifier. The message identifier is the same as the message identifier included in the first path adjustment request message. In this way, the leaf device can identify whether the first path adjustment response message is a response to the first path adjustment request message through the message identifier.

[0079] Step 140: Select a third Spine device from the at least one second Spine device as the next-hop network device for continuing to forward the first service flow based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface.

[0080] Specifically, according to the description of step 130, after the Leaf device receives at least one first path adjustment response message, the Leaf device selects a third Spine device from at least one second Spine device as the next-hop network device to continue forwarding the first service flow based on the preconfigured first selection strategy, the first path adjustment result and the available bandwidth of the second interface.

[0081] Optionally, the specific process of selecting, by the Leaf device, a third Spine device from at least one second Spine device as the next-hop network device for continuing to forward the first service flow based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface is as follows:

[0082] Based on at least one first path adjustment result, the Leaf device selects at least one fourth Spine device that sends the first path adjustment result to accept the path adjustment request; based on the first selection strategy, the Leaf device selects the third Spine device (Best-Fit) with the smallest available bandwidth of the second interface from the available bandwidth of the second interface sent by each fourth Spine device as the next-hop network device to continue forwarding the service flow.

[0083] Alternatively, according to the first selection strategy, the Leaf device selects the third Spine device with the largest available bandwidth of the second interface (Worst-Fit) from the available bandwidth of the second interface sent by each fourth Spine device as the next-hop network device to continue forwarding the service flow.

[0084] It should be noted that the first path adjustment result includes accepting the path adjustment request and rejecting the path adjustment request. If the first path adjustment result is rejecting the path adjustment request, the leaf device discards the first path adjustment response message including the first path adjustment result rejecting the path adjustment request.

[0085] Step 150: Send the first service flow to the selected third Spine device.

[0086] Specifically, according to the description of step 140, after the Leaf device selects the third Spine device, it sends the first service flow to the selected third Spine device. Subsequently, the selected third Spine device continues to forward the first service flow.

[0087] Therefore, by applying the communication method provided in the present application, the Leaf device receives a first business flow, which includes a first flow characteristic; through other interfaces other than the first interface for connecting to at least one second Spine device, the Leaf device sends a first path adjustment request message to each second Spine device respectively, and the first path adjustment request message includes the first flow characteristic and the first occupied bandwidth of the first business flow, so that each second Spine device identifies whether the second interface can be used to forward the first business flow based on the first flow characteristic and the first occupied bandwidth; the Leaf device receives a first path adjustment response message sent by each second Spine device, and the first path adjustment response message includes the first flow characteristic, the first path adjustment result and the available bandwidth of the second interface; according to the pre-configured first selection strategy, the first path adjustment result and the available bandwidth of the second interface, the Leaf device selects a third Spine device from at least one second Spine device as the next-hop network device to continue forwarding the first business flow; the Leaf device sends the first business flow to the selected third Spine device; wherein, the second interface is the output interface for forwarding the first business flow determined by the second Spine device based on the first flow characteristic.

[0088] In this way, in a spine-leaf network topology, leaf devices can quickly detect link failures or congestion between themselves and spine devices, as well as between spine devices and downstream leaf devices, and automatically adjust the traffic load on their interfaces, achieving real-time performance of 10ms or better. This solves the slow path adjustment problem of existing methods that use SDN controllers to centrally select and configure paths.

[0089] Optionally, in an embodiment of the present application, after the Leaf device selects the third Spine device, it will also update the flow monitoring table entries and the flow forwarding table entries.

[0090] Specifically, based on the selected third Spine device, the Leaf device generates a second flow monitoring table entry. The second flow monitoring table entry includes the first flow feature, the first metric parameter, and a third interface identifier. The third interface identifier indicates a third interface, and the third interface is connected to the selected third Spine device.

[0091] It is understandable that the second flow monitoring table entry further includes an input interface field, and the input interface field stores the identifier of the interface receiving the first service flow.

[0092] Based on the selected third Spine device, the Leaf device generates a second flow forwarding entry, wherein the second flow forwarding entry includes the first flow feature and the third outbound interface identifier.

[0093] The leaf device deletes the first flow monitoring entry and the first flow forwarding entry.

[0094] The communication method provided in the embodiment of the present application is described in detail below. Figure 2 , Figure 2 Flowchart of another communication method provided in an embodiment of the present application. The method is applied to a Spine device, where the Spine device is connected to at least one Leaf device. The communication method provided in an embodiment of the present application may include the following steps.

[0095] Step 210: Receive a first path adjustment request message sent by the Leaf device, where the first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow;

[0096] Specifically, according to the aforementioned embodiment, after the Leaf device starts the adaptive routing adjustment function, it generates and sends a first path adjustment request message to the Spine device. The first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow.

[0097] After receiving the first path adjustment request message, the Spine device obtains the first flow characteristics and the first occupied bandwidth therefrom.

[0098] Optionally, the first path adjustment request message further includes a message identifier. When generating the first path adjustment request message, the leaf device automatically assigns the message identifier. The message identifier is typically a sequentially increasing sequence number, for example, a 32-bit value, assigned one by one from 1 to a maximum.

[0099] Step 220: Acquire a first outbound interface identifier corresponding to the first flow feature according to the first flow feature, where the first outbound interface identifier indicates the first interface.

[0100] Specifically, according to the description of step 210, after the Spine device obtains the first flow feature, it queries the interface obtained by the flow load sharing forwarding hash (HASH) calculation when the service flow with the first flow feature is forwarded locally. The Spine device uses the interface identifier of the interface as the first outgoing interface identifier. For example, the first outgoing interface identifier indicates the first interface.

[0101] It should be noted that the above-mentioned first interface is specifically the outgoing interface used to forward the first business flow after the Spine device receives the first business flow.

[0102] Step 230: Identify, based on the first flow characteristics and the first occupied bandwidth, whether the first interface can be used to forward the first service flow;

[0103] Specifically, according to the description of step 220, after the Spine device determines the first interface, the Spine device identifies whether the first interface can be used to forward the first service flow according to the first flow feature and the first occupied bandwidth. If the first interface can be used to forward the first service flow, the Spine device performs step 240.

[0104] Optionally, the specific process of identifying whether the first interface can be used to forward the first service flow according to the first flow feature and the first occupied bandwidth is as follows:

[0105] According to the preconfigured second selection strategy, the Spine device identifies whether the available bandwidth of the first interface is greater than the first occupied bandwidth. If yes, the Spine device identifies the interface state of the first interface. If no, the Spine device determines that the first interface cannot be used to forward the first service flow.

[0106] If the interface state of the first interface is non-congestion (for example, the congestion state of the interface is in [0, 50%] to represent non-congestion, and the congestion state of the interface is in (51%, 100] to represent congestion), the Spine device identifies the interface state of the first interface after the first interface is used to forward the first service flow (assuming that the first interface is used to forward the first service flow). If the interface state of the first interface is congestion, the Spine device determines that the first interface cannot be used to forward the first service flow.

[0107] If the interface state of the first interface is non-congestion after the first interface is used to forward the first service flow, the Spine device determines that the first interface can be used to forward the first service flow. If the interface state of the first interface is congestion after the first interface is used to forward the first service flow, the Spine device determines that the first interface cannot be used to forward the first service flow.

[0108] Step 240, if yes, a first path adjustment response message is sent to the Leaf device, the first path adjustment response message including the first flow feature, the first path adjustment result, and the available bandwidth of the first interface, so that the Leaf device selects the Spine device as the Spine device forwarding the first service flow according to the preconfigured first selection strategy, the first path adjustment result, and the available bandwidth of the first interface.

[0109] Specifically, according to the description of step 230, if the first interface can be used to forward the first service flow, the Spine device generates and sends a first path adjustment response message to the Leaf device. The first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the first interface. The first path adjustment result is to accept the path adjustment request.

[0110] After receiving the first path adjustment response message, the leaf device selects a spine device to forward the first service flow based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the first interface.

[0111] In the above embodiment, the selection of the Spine device as the device for forwarding the first service flow by the Leaf device has been described in detail, which will not be repeated here.

[0112] Optionally, in an embodiment of the present application, if the first interface is unavailable for forwarding the first service flow, the spine device generates and sends a second path adjustment response message to the leaf device. The second path adjustment response message includes the first flow characteristics, the second path adjustment result, and the available bandwidth of the first interface. The second path adjustment result is that the path adjustment request is not accepted.

[0113] After receiving the second path adjustment response message, the leaf device abandons forwarding the first service flow through the spine device based on the preconfigured first selection policy, the second path adjustment result, and the available bandwidth of the first interface.

[0114] Optionally, both the first path adjustment response message and the second path adjustment response message further include a message identifier. The message identifier is the same as the message identifier included in the first path adjustment request message. In this way, the leaf device can identify whether the first path adjustment response message is a response to the first path adjustment request message through the message identifier.

[0115] Therefore, by applying the communication method provided in the present application, the Spine device receives a first path adjustment request message sent by the Leaf device, and the first path adjustment request message includes the first flow characteristics of the first business flow and the first occupied bandwidth of the first business flow; according to the first flow characteristics, the Spine device obtains the first output interface identifier corresponding to the first flow characteristics, and the first output interface identifier indicates the first interface; according to the first flow characteristics and the first occupied bandwidth, the Spine device identifies whether the first interface can be used to forward the first business flow; if so, the Spine device sends a first path adjustment response message to the Leaf device, and the first path adjustment response message includes the first flow characteristics, the first path adjustment result and the available bandwidth of the first interface, so that the Leaf device selects the Spine device as the one for forwarding the first business flow based on the pre-configured first selection strategy, the first path adjustment result and the available bandwidth of the first interface; wherein, the first path adjustment result is to accept the path adjustment request.

[0116] In this way, in a spine-leaf network topology, spine devices can quickly detect link failures or congestion between themselves and downstream leaf devices, triggering the leaf devices to automatically adjust the traffic load on their interfaces, achieving real-time performance of 10ms or better. This solves the problem of slow path adjustment speed in existing methods that use SDN controllers to centrally select and configure paths.

[0117] Optionally, in the embodiment of the present application, the Spine device further includes a second interface. Before the Spine device receives the first path adjustment request message sent by the Leaf device, the process further includes the Spine device starting an adaptive routing adjustment function.

[0118] Specifically, through the second interface, the Spine device receives the second service flow sent by the Leaf device, where the second service flow includes a second flow feature.

[0119] When forwarding the second service flow, the spine device monitors metric parameters, similar to the process performed by the leaf device. These metric parameters include the second occupied bandwidth and the second forwarding delay of the second service flow. For example, the spine device monitors the second forwarding delay.

[0120] When a second metric parameter representing the second service flow exceeds a preset first parameter threshold (e.g., 10ms), the Spine device obtains a first flow monitoring table entry that matches the second flow characteristic from the flow monitoring table based on the second flow characteristic. The first flow monitoring table entry includes an inbound interface identifier and a second occupied bandwidth, where the inbound interface identifier indicates the second interface.

[0121] In the embodiment of the present application, the format of the first flow monitoring table entry is the same as the format of the first flow monitoring table entry in the Leaf device in the aforementioned embodiment, and will not be repeated here.

[0122] It should be noted that, when the second forwarding delay exceeds the first parameter threshold, the Spine device determines that the existing outbound interface is no longer suitable for forwarding the second service flow, and the Spine device starts the adaptive routing adjustment function.

[0123] The Spine device generates an adaptive routing notification message including the second flow feature and the second occupied bandwidth, and sends the adaptive routing notification message to the Leaf device via the second interface.

[0124] After receiving the adaptive routing notification message, the leaf device obtains the second flow characteristics and the second occupied bandwidth from it. The leaf device determines that the spine device is no longer suitable for forwarding the second service flow. The leaf device activates the adaptive routing adjustment function. The leaf device generates and sends a second path adjustment request message to the corresponding spine device through an interface other than the interface connected to the second interface.

[0125] In the aforementioned embodiment, the process of a Leaf device generating and sending a path adjustment request message has been described in detail and will not be repeated here.

[0126] Optionally, in an embodiment of the present application, the Spine device also detects and maintains the local status of the link between the Spine device and the Leaf device. For example, the link status includes the congestion status and the bandwidth status. The congestion status is a parameter indicating the congestion level of the interface. It can be represented by the percentage of occupancy of the interface send buffer. For example: 1 represents 1%, 2 represents 2%, and 101 represents that the interface send buffer has overflowed. The bandwidth status includes the total bandwidth of the interface and the available bandwidth of the interface.

[0127] Optionally, in an embodiment of the present application, the process of generating flow monitoring table entries and flow forwarding table entries after the Spine device receives the business flow is also included.

[0128] Specifically, the Spine device receives the service flow sent by the Leaf device, which service flow can be specifically the first service flow or the second service flow mentioned above. Based on the first service message included in the service flow, the Spine device generates a flow monitoring table entry. The flow monitoring table entry includes a flow feature field, an input interface field, an output interface field, and a metric parameter field. The flow monitoring table entry can be generated by the forwarding chip included in the Spine device and stored in the forwarding chip.

[0129] The flow characteristics field stores the message characteristics of the first service message, which are the flow characteristics of the service flow. The inbound interface field stores the interface identifier for receiving the service flow. The outbound interface field stores the interface identifier for forwarding the service flow. The metric parameter field stores the metric parameters representing the service flow, including the occupied bandwidth and forwarding delay of the service flow.

[0130] A flow forwarding entry is generated according to the flow feature, wherein the flow forwarding entry includes the flow feature and an identifier of an interface for forwarding the service flow.

[0131] In the aforementioned embodiments, each field included in the flow monitoring table entry and the flow forwarding table entry is described and exemplified respectively, which will not be repeated here.

[0132] Optionally, in an embodiment of the present application, after the Spine device sends the adaptive routing notification message to the Leaf device, it starts a timer. When the timer expires, the Spine device deletes the second flow monitoring table entry and the matching flow forwarding table entry that matches the second service flow.

[0133] The communication method provided in the embodiment of the present application is described in detail below. Figure 3 , Figure 3 A schematic diagram of a Spine device-Leaf device network provided in an embodiment of the present application. Figure 3 In the example, the network includes Leaf1, Leaf2, Leaf3, Spine1, Spine2, and Spine3. Each Leaf device is fully connected to the Spine device, and each Leaf device is connected to two or three hosts.

[0134] The following uses Leaf1 and Spine1 as examples. The process on other Leaf and Spine devices is the same as that on Leaf1.

[0135] Leaf 1 includes Port 1, Port 2, and Port 3. Port 1 is connected to Spine 1, Port 2 is connected to Spine 2, and Port 3 is connected to Spine 3. Leaf 1 also includes Port 4, which is connected to Host 1. Spine 1 includes Port 5, Port 6, and Port 7. Port 5 is connected to Leaf 1, Port 6 is connected to Leaf 2, and Port 7 is connected to Leaf 3.

[0136] After connecting to Leaf 1, Host 1 wishes to communicate with Host 6, which is connected to Leaf 3. Host 1 sends Service Flow 1 to Leaf 1, as shown by the dotted line in the figure. After Service Flow 1 arrives at Leaf 1, Leaf 1 generates Flow Monitoring Table Entry 1 for Service Flow 1 based on its first service packet. Flow Monitoring Table Entry 1 includes a flow feature field, an inbound interface field, an outbound interface field, and a metric parameter field. Flow Monitoring Table Entry 1 can be generated and stored by the forwarding chip included in Leaf 1, as shown in Table 1.

[0137] Table 1 Leaf1 internal flow monitoring table

[0138] Flow characteristics Inbound interface Outbound interface Metrics Quintuple 1 Port4 Port2 delay1,bw1

[0139] The flow characteristic is a five-tuple 1, including a destination IP, a source IP, a source port, a destination port, and a protocol type. The flow forwarding table is configured in the Leaf 1 in advance, and the flow forwarding table item 1 is stored in the flow forwarding table according to the flow characteristic. The out interface can be obtained in the out interface field included in the flow forwarding table item 1. The metric parameters include the occupied bandwidth (bw) 1 and the forwarding delay (delay) 1 of the service flow 1. The occupied bandwidth (bw) 1 can be obtained by the forwarding chip counting the traffic of the service flow 1. The forwarding delay (delay) 1 can be obtained by measuring the time difference between the arrival and the output of the service flow 1 to the forwarding chip.

[0140] Meanwhile, the Leaf 1 receives the service flow 1, identifies the service flow 1 through the five-tuple 1, and forwards the service flow 1 according to the flow forwarding table item 1. The Leaf 1 sends the service flow 1 to the Spine 2 through the Port 2. It can be understood that the Spine 2 will forward the service flow 1 according to the existing forwarding rule, which will not be repeated here.

[0141] The Leaf 1 also detects and maintains the local state of the link between each Spine device. For example, the link state includes a congestion state and a bandwidth state. The congestion state is a parameter representing the congestion level of the interface. It can be represented by the percentage of the occupied interface sending buffer. For example: 1 represents 1%, 2 represents 2%, and 101 represents that the interface sending buffer has overflowed. The bandwidth state includes the total bandwidth of the interface and the available bandwidth of the interface.

[0142] The Leaf 1 also monitors the flow state of the service flow 1 in the process of forwarding the service flow 1. By monitoring the first metric parameter, the Leaf 1 monitors the flow state of the service flow 1. For example, the Leaf 1 monitors the forwarding delay 1.

[0143] When the forwarding delay 1 exceeds the preset parameter threshold 1 (for example, 10 ms), the Leaf 1 determines that it is no longer suitable to forward the service flow 1 through the Port 2. The Leaf 1 starts the adaptive routing adjustment function. According to the five-tuple 1, the Leaf 1 obtains the flow monitoring table item 1 from the flow monitoring table.

[0144] After the Leaf 1 starts the adaptive routing adjustment function, the path adjustment request message 1 is generated. The path adjustment request message 1 includes a message identifier (for example, ID 1), the five-tuple 1, and the occupied bandwidth 1.

[0145] The Leaf 1 sends the path adjustment request 1 to the corresponding Spine 1 and Spine 3 through the Port 1 and Port 3 respectively. It should be noted that if the Leaf 1 is connected to the Spine 2 through the Port X, the Leaf 1 also sends the path adjustment request message 1 to the Spine 2 through the Port X.

[0146] Spine1 and Spine3 receive the path adjustment request 1, and obtain the message identifier, the five-tuple 1 and the occupied bandwidth 1 therefrom.

[0147] According to the five-tuple 1, Spine1 obtains a flow monitoring table entry 2 matched with the five-tuple 1 from the flow monitoring table. The flow monitoring table entry 2 includes an out interface identifier, which indicates Port7. As shown in Table 2 below.

[0148] Table 2 Flow monitoring table in Spine1

[0149] Flow characteristics Inbound interface Outbound interface Metrics Quintuple 1 Port5 Port7 delay2,bw2

[0150] After Spine1 determines Port7, Spine1 identifies whether Port7 is available for forwarding the service flow 1. According to the preconfigured selection policy 1, Spine1 identifies whether the available bandwidth of Port7 (which can be obtained from the maintained link state) is greater than the occupied bandwidth 1; if yes, Spine1 identifies the interface state of Port7; if no, Spine1 determines that Port7 is unavailable for forwarding the service flow 1.

[0151] If the interface state of Port7 is non-congestion, Spine1 identifies the interface state of Port7 after Port7 is identified for forwarding the service flow 1; if the interface state of Port7 is congestion, Spine1 determines that Port7 is unavailable for forwarding the service flow 1.

[0152] If the interface state of Port7 after Port7 is identified for forwarding the service flow 1 is non-congestion, Spine1 determines that Port7 is available for forwarding the service flow 1; if the interface state of Port7 after Port7 is identified for forwarding the service flow 1 is congestion, Spine1 determines that Port7 is unavailable for forwarding the service flow 1.

[0153] After the above identification, Spine1 generates a path adjustment response message 1. The path adjustment response message 1 includes the message identifier (for example, ID 1, which is the same as the message identifier included in the path adjustment request message 1), the five-tuple 1, the path adjustment result and the available bandwidth of Port7.

[0154] The path adjustment result includes accepting the path adjustment request and not accepting the path adjustment request. In the embodiments of the present application, Spine1 identifies that Port7 is available for forwarding the service flow 1. Therefore, the path adjustment result included in the path adjustment response message 1 is accepting the path adjustment request.

[0155] Spine1 sends a path adjustment response message 1 to Leaf1. Similarly, Leaf1 also receives a path adjustment response message 1 sent by Spine3. In the embodiment of the present application, the path adjustment result included in the path adjustment response message 1 sent by Spine3 is also the acceptance of the path adjustment request.

[0156] Leaf 1 obtains the message identifier, quintuple 1, path adjustment result, and available interface bandwidth from each path adjustment response message 1. Based on the multiple path adjustment results, Leaf 1 selects the spine device that sent the path adjustment result to accept the path adjustment request, namely Spine 1 and Spine 3. Based on the preconfigured selection strategy 2, Leaf 1 selects the spine device with the smallest available bandwidth (Best-Fit) from the available bandwidth of the interface sent by each spine device as the next-hop network device to continue forwarding service flow 1, for example, Spine 1.

[0157] It should be noted that if the path adjustment result sent by Spine3 is that the path adjustment request is not accepted, Leaf1 discards the path adjustment response message 1 sent by Spine3. In addition, Leaf1 selects Spine1 as the next-hop network device to continue forwarding service flow 1.

[0158] After Leaf 1 selects Spine 1, it sends service flow 1 to Spine 1 through Port 1. Subsequently, Spine 1 forwards service flow 1 to Leaf 3 through Port 7.

[0159] After Leaf 1 selects Spine 1, it updates the stored flow monitoring entry 1 and flow forwarding entry 1. Leaf 1 generates flow monitoring entry 3, as shown in Table 3.

[0160] Table 3 Leaf1 inflow monitoring table

[0161] Flow characteristics Inbound interface Outbound interface Metrics Quintuple 1 Port4 Port1 delay1,bw1

[0162] Based on the selected third Spine device, the Leaf device generates a flow forwarding entry 2. The flow forwarding entry 2 includes a quintuple 1 and an outgoing interface identifier, which indicates Port 1, as shown in Table 4.

[0163] Table 4 Leaf1 internal flow forwarding table

[0164] Flow characteristics Outbound interface Quintuple 1 Port1

[0165] Leaf 1 deletes flow monitoring entry 1 and flow forwarding entry 1.

[0166] The communication method provided in the embodiment of the present application is described in detail below. Figure 4 , Figure 4 This is another Spine device - Leaf device networking diagram provided in the embodiment of this application. Figure 4 In the network, all devices and connection relationships are the same as Figure 3 The same as shown in , will not be repeated here.

[0167] Spine 2 includes Port 8, Port 9, and Port 10. Port 8 is connected to Leaf 1, Port 9 is connected to Leaf 2, and Port 10 is connected to Leaf 3.

[0168] The following uses Leaf1 and Spine2 as examples. The execution process on other Leaf and Spine devices is the same as that on Leaf1.

[0169] exist Figure 4 In the example, Leaf 1 sends service flow 1 to Spine 2 via Port 2. After receiving service flow 1, Spine 2 searches the flow forwarding table and forwards it to Leaf 3. While forwarding service flow 1, Spine 1 monitors the metrics of service flow 1, similar to the process performed by Leaf 1 above. These metrics include occupied bandwidth 2 and forwarding delay 2 for service flow 1. For example, Spine 1 monitors forwarding delay 2.

[0170] When forwarding delay 2 exceeds a preset parameter threshold 2 (eg, 10 ms), Spine 2 obtains flow monitoring entry 4 that matches quintuple 1 from the flow monitoring table according to quintuple 1, as shown in Table 5.

[0171] Table 5 Spine2 internal flow monitoring table

[0172] Flow characteristics Inbound interface Outbound interface Metrics Quintuple 1 Port8 Port10 delay2,bw2

[0173] When forwarding delay 2 exceeds parameter threshold 2, Spine2 determines that port 10 is no longer suitable for forwarding service flow 1. Spine2 initiates adaptive routing adjustment. Based on quintuple 1, Spine2 obtains the inbound interface identifier from flow monitoring entry 4, which indicates port 8. Spine2 generates an adaptive routing notification message, which includes quintuple 1 and occupied bandwidth 2. Spine2 sends the adaptive routing notification message to Leaf 1 via port 8.

[0174] After receiving the adaptive routing notification message, Leaf 1 obtains quintuple 1 and occupied bandwidth 2 from it. Leaf 1 determines that Spine 2 is no longer suitable for forwarding service flow 1. Leaf 1 initiates adaptive routing adjustment. Leaf 1 generates and sends a path adjustment request message 2 through Port 1 and Port 3 to the corresponding connected Spine 1 and Spine 3.

[0175] It can be understood that the subsequent path adjustment process of Spine1, Spine3, and Leaf1 is the same as the path adjustment process in the aforementioned embodiment, and will not be repeated here.

[0176] Based on the same inventive concept, the present application also provides a communication device corresponding to the communication method. Figure 5 , Figure 5 A communication device provided in an embodiment of the present application is applied to a Leaf device, the Leaf device being connected to at least one Spine device, the Leaf device including a first interface connected to a first Spine device, and the device including:

[0177] A receiving unit 510 is configured to receive a first service flow, where the first service flow includes a first flow feature;

[0178] A sending unit 520 is configured to send a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth;

[0179] The receiving unit 510 is further configured to receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface;

[0180] A selection unit 530 is configured to select a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface;

[0181] The sending unit 520 is further configured to send the first service flow to the selected third Spine device;

[0182] Among them, the second interface is the outgoing interface for forwarding the first business flow determined by the second Spine device according to the first flow characteristics.

[0183] Optionally, the device further comprises:

[0184] a generating unit (not shown in the figure), configured to generate a first flow monitoring table entry according to a first service packet included in the first service flow, wherein the first flow monitoring table entry includes a flow feature field, an outgoing interface field, and a metric parameter field; the first flow monitoring table entry is located in a forwarding chip included in the Leaf device;

[0185] The flow feature field stores a message feature of the service message, the message feature is the same as the first flow feature, the outgoing interface field stores the first interface identifier, and the metric parameter field stores a first metric parameter representing the first service flow, the first metric parameter including a first occupied bandwidth and a first forwarding delay of the first service flow;

[0186] an acquiring unit (not shown in the figure), configured to acquire, from a flow forwarding table, a first flow forwarding entry matching the first flow feature according to the first flow feature, wherein the first flow forwarding entry includes a second outgoing interface identifier, and the second outgoing interface identifier indicates the first interface;

[0187] The sending unit 520 is further configured to send the first service flow to the first Spine device through the first interface.

[0188] Optionally, the acquisition unit (not shown in the figure) is further used to, when the first metric parameter representing the first service flow exceeds a preset first parameter threshold, obtain, from a flow monitoring table, according to the first flow feature, a first flow monitoring table entry that matches the first flow feature, the first flow monitoring table entry including a first outgoing interface identifier and the first occupied bandwidth, where the first outgoing interface identifier indicates the first interface;

[0189] or,

[0190] The receiving unit 510 is further configured to receive, through the first interface, an adaptive routing notification message sent by the first Spine device, where the adaptive routing notification message includes the first flow feature and the first occupied bandwidth.

[0191] Optionally, the selection unit 530 is specifically configured to select, according to at least one first path adjustment result, at least one fourth Spine device that sends the first path adjustment result as an acceptance path adjustment request;

[0192] According to the first selection strategy, from the available bandwidth of the second interface sent by each fourth Spine device, the third Spine device with the smallest available bandwidth of the second interface is selected as the next-hop network device for continuing to forward the service flow, or the third Spine device with the largest available bandwidth of the second interface is selected as the next-hop network device for continuing to forward the service flow.

[0193] Optionally, the generating unit (not shown in the figure) is further used to generate a second flow monitoring table entry based on the selected third Spine device, where the second flow monitoring table entry includes the first flow feature, the first metric parameter, and a third interface identifier, where the third interface identifier indicates a third interface, and the third interface is connected to the selected third Spine device;

[0194] Generate a second flow forwarding entry according to the selected third Spine device, where the second flow forwarding entry includes the first flow feature and the third outbound interface identifier;

[0195] The apparatus further includes: a deleting unit configured to delete the first flow monitoring table entry and the first flow forwarding table entry.

[0196] Therefore, by applying the communication device provided by the present application, the Leaf device receives a first business flow, which includes a first flow characteristic; through an interface other than the first interface for connecting to at least one second Spine device, the Leaf device sends a first path adjustment request message to each corresponding second Spine device respectively, and the first path adjustment request message includes the first flow characteristic and the first occupied bandwidth of the first business flow, so that each second Spine device identifies whether the second interface can be used to forward the first business flow based on the first flow characteristic and the first occupied bandwidth; the Leaf device receives a first path adjustment response message sent by each second Spine device, and the first path adjustment response message includes the first flow characteristic, the first path adjustment result and the available bandwidth of the second interface; according to the pre-configured first selection strategy, the first path adjustment result and the available bandwidth of the second interface, the Leaf device selects a third Spine device from at least one second Spine device as the next-hop network device for continuing to forward the first business flow; the Leaf device sends the first business flow to the selected third Spine device; wherein, the second interface is the output interface for forwarding the first business flow determined by the second Spine device based on the first flow characteristic.

[0197] Therefore, in the Spine device-leaf device networking topology, the leaf device can quickly perceive the link failure or congestion between the leaf device and the spine device and between the spine device and the downstream leaf device, and automatically adjust the traffic load on the interface, so as to realize the real-time performance of 10 ms or higher. The problem of slow path adjustment speed in the prior art method of adopting an SDN controller to centrally select and set a path is solved.

[0198] Based on the same inventive concept, the embodiments of the present application also provide a communication method corresponding to a communication device. Referring to Figure 6 , Figure 6 Another communication device provided by the embodiments of the present application is applied to a spine device, the spine device is connected with at least one leaf device, the spine device comprises a first interface, and the device comprises:

[0199] The receiving unit 610 is configured to receive a first path adjustment request message sent by the leaf device, the first path adjustment request message comprising a first flow feature of a first service flow and a first occupied bandwidth of the first service flow.

[0200] The obtaining unit 620 is configured to obtain a first out-interface identifier corresponding to the first flow feature according to the first flow feature, the first out-interface identifier indicating the first interface.

[0201] The identifying unit 630 is configured to identify whether the first interface can be used to forward the first service flow according to the first flow feature and the first occupied bandwidth.

[0202] The sending unit 640 is configured to send a first path adjustment response message to the leaf device if the first interface can be used to forward the first service flow, the first path adjustment response message comprising the first flow feature, a first path adjustment result and an available bandwidth of the first interface, so that the leaf device selects a spine device as a device for forwarding the first service flow according to a preconfigured first selection strategy, the first path adjustment result and the available bandwidth of the first interface.

[0203] The first path adjustment result is an acceptance of the path adjustment request.

[0204] Optionally, the spine device further comprises a second interface.

[0205] The receiving unit 610 is further configured to receive a second service flow sent by the leaf device through the second interface, the second service flow comprising a second flow feature.

[0206] The acquiring unit 620 is further configured to, when a second metric parameter representing the second service flow exceeds a preset first parameter threshold, acquire, from a flow monitoring table, a first flow monitoring entry matching the second flow characteristic, based on the second flow characteristic, the first flow monitoring entry including an inbound interface identifier and a second occupied bandwidth, where the inbound interface identifier indicates the second interface;

[0207] The sending unit 640 is also used to send an adaptive routing notification message to the Leaf device through the second interface, where the adaptive routing notification message includes the second flow feature and the second occupied bandwidth, so that the Leaf device generates and sends a second path adjustment request message to the corresponding connected Spine device through other interfaces except the interface connected to the second interface.

[0208] Optionally, the receiving unit 610 is further configured to receive a service flow sent by the Leaf device;

[0209] The apparatus further includes: a generating unit (not shown in the figure), configured to generate a flow monitoring entry according to a first service message included in the service flow, wherein the flow monitoring entry includes a flow feature field, an input interface field, an output interface field, and a metric parameter field; the flow monitoring entry is located in a forwarding chip included in the spine device;

[0210] The flow feature field stores the message feature of the service message, which is the same as the flow feature. The input interface field stores the interface identifier for receiving the service flow, the output interface field stores the interface identifier for forwarding the service flow, and the metric parameter field stores the metric parameters representing the service flow, which include the occupied bandwidth and forwarding delay of the service flow.

[0211] The generating unit (not shown in the figure) is further configured to generate a flow forwarding entry according to the flow characteristics, wherein the flow forwarding entry includes the flow characteristics and an identifier of an interface for forwarding the service flow.

[0212] Optionally, the sending unit 640 is further configured to, if not, send a second path adjustment response message to the Leaf device, where the second path adjustment response message includes the first flow feature, the second path adjustment result, and the available bandwidth of the first interface, so that the Leaf device abandons forwarding the first service flow through the Spine device according to the preconfigured first selection policy, the second path adjustment result, and the available bandwidth of the first interface;

[0213] The second path adjustment result is that the path adjustment request is not accepted.

[0214] Optionally, the identification unit 630 is specifically configured to identify, according to a preconfigured second selection strategy, whether the available bandwidth of the first interface is greater than the first occupied bandwidth;

[0215] If yes, identifying the interface status of the first interface;

[0216] If the interface state of the first interface is non-congested, identifying the interface state of the first interface after the first interface is used to forward the first service flow;

[0217] If the interface state of the first interface is non-congested after the first interface is used to forward the first service flow, it is determined that the first interface can be used to forward the first service flow.

[0218] Optionally, the device further comprises:

[0219] a determining unit (not shown in the figure), configured to, if not, determine that the first interface is not usable for forwarding the first service flow;

[0220] The determining unit (not shown in the figure) is further configured to determine that the first interface is unavailable for forwarding the first service flow if the interface status of the first interface is congested;

[0221] The determining unit (not shown in the figure) is further used to determine that the first interface is not available for forwarding the first service flow if the interface status of the first interface is congested after the first interface is used to forward the first service flow.

[0222] Therefore, by applying the communication device provided in the present application, the Spine device receives a first path adjustment request message sent by the Leaf device, and the first path adjustment request message includes the first flow characteristics of the first business flow and the first occupied bandwidth of the first business flow; according to the first flow characteristics, the Spine device obtains the first output interface identifier corresponding to the first flow characteristics, and the first output interface identifier indicates the first interface; according to the first flow characteristics and the first occupied bandwidth, the Spine device identifies whether the first interface can be used to forward the first business flow; if so, the Spine device sends a first path adjustment response message to the Leaf device, and the first path adjustment response message includes the first flow characteristics, the first path adjustment result and the available bandwidth of the first interface, so that the Leaf device selects the Spine device as the one for forwarding the first business flow based on the pre-configured first selection strategy, the first path adjustment result and the available bandwidth of the first interface; wherein, the first path adjustment result is to accept the path adjustment request.

[0223] This allows Spine devices to quickly detect link failures or congestion between themselves and downstream leaf devices in a spine-leaf network topology, triggering the leaf devices to automatically adjust the traffic load on their interfaces, achieving real-time performance of 10ms or better. This addresses the slow path adjustment speed of existing methods that use SDN controllers to centrally select and configure paths.

[0224] Based on the same inventive concept, the embodiment of the present application further provides a network device, such as Figure 7 As shown, it includes a processor 710, a transceiver 720 and a machine-readable storage medium 730. The machine-readable storage medium 730 stores machine-executable instructions that can be executed by the processor 710. The processor 710 is prompted by the machine-executable instructions to execute the communication method provided in the embodiment of the present application. Figure 5 、 Figure 6 The communication device shown can be used as Figure 7 The network device hardware structure shown is implemented.

[0225] The computer-readable storage medium 730 may include random access memory (RAM) or non-volatile memory (NVM), such as at least one disk storage device. Alternatively, the computer-readable storage medium 730 may be at least one storage device located remotely from the processor 710.

[0226] The processor 710 may be a general-purpose processor, including a central processing unit (CPU), a network processor (NP), etc.; it may also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components.

[0227] In the embodiment of the present application, the processor 710 reads the machine-executable instructions stored in the machine-readable storage medium 730, and the machine-executable instructions enable the processor 710 itself and call the transceiver 720 to execute the communication method described in the aforementioned embodiment of the present application.

[0228] In addition, an embodiment of the present application provides a machine-readable storage medium 730, which stores machine-executable instructions. When called and executed by the processor 710, the machine-executable instructions prompt the processor 710 itself and the calling transceiver 720 to execute the communication method described in the aforementioned embodiment of the present application.

[0229] The implementation process of the functions and effects of each unit in the above-mentioned device is specifically described in the implementation process of the corresponding steps in the above-mentioned method, and will not be repeated here.

[0230] For the device embodiments, since they basically correspond to the method embodiments, the relevant parts can be referred to the partial description of the method embodiments. The device embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the present application scheme. A person of ordinary skill in the art can understand and implement it without paying any creative work.

[0231] As for the embodiments of the communication device and the machine-readable storage medium, since the method contents involved are basically similar to those of the aforementioned method embodiments, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiments.

[0232] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

Claims

1. A communication method, characterized in that: The method is applied to a Leaf device, where the Leaf device is connected to at least one Spine device. The Leaf device includes a first interface, where the first interface is connected to a first Spine device. The method includes: receiving a first service flow, wherein the first service flow includes a first flow characteristic; Sending a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth; Receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow characteristics, the first path adjustment result, and the available bandwidth of the second interface; Selecting a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface; Sending the first service flow to the selected third Spine device; The second interface is an outbound interface for forwarding the first service flow determined by the second Spine device according to the first flow characteristics; After receiving the first service flow, the method further includes: Generate a first flow monitoring table entry according to a first service packet included in the first service flow, the first flow monitoring table entry including a flow feature field, an outbound interface field, and a metric parameter field; the first flow monitoring table entry is located in a forwarding chip included in the leaf device; The flow feature field stores a message feature of the service message, the message feature is the same as the first flow feature, the outgoing interface field stores the first interface identifier, and the metric parameter field stores a first metric parameter representing the first service flow, the first metric parameter including a first occupied bandwidth and a first forwarding delay of the first service flow; According to the first flow feature, obtaining a first flow forwarding entry matching the first flow feature from a flow forwarding table, wherein the first flow forwarding entry includes a second outgoing interface identifier, and the second outgoing interface identifier indicates the first interface; Send the first service flow to the first Spine device through the first interface.

2. The method according to claim 1, characterized in that Before sending the first path adjustment request message to each second Spine device through another interface other than the first interface for connecting to at least one second Spine device, the method further includes: When a first metric parameter representing the first service flow exceeds a preset first parameter threshold, obtaining, from a flow monitoring table, a first flow monitoring table entry that matches the first flow feature, based on the first flow feature, the first flow monitoring table entry including a first outgoing interface identifier and the first occupied bandwidth, where the first outgoing interface identifier indicates the first interface; or, Before sending the first path adjustment request message to each second Spine device through another interface other than the first interface for connecting to at least one second Spine device, the method further includes: An adaptive routing notification message sent by the first Spine device is received through the first interface, where the adaptive routing notification message includes the first flow feature and the first occupied bandwidth.

3. The method according to claim 1, characterized in that The selecting, based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface, a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow specifically includes: Selecting, based on the at least one first path adjustment result, at least one fourth Spine device that sends the first path adjustment result as accepting a path adjustment request; According to the first selection strategy, from the available bandwidth of the second interface sent by each fourth Spine device, the third Spine device with the smallest available bandwidth of the second interface is selected as the next-hop network device for continuing to forward the service flow, or the third Spine device with the largest available bandwidth of the second interface is selected as the next-hop network device for continuing to forward the service flow.

4. The method according to claim 3, characterized in that The method further comprises: Generate a second flow monitoring table entry according to the selected third Spine device, where the second flow monitoring table entry includes the first flow feature, the first metric parameter, and a third interface identifier, where the third interface identifier indicates a third interface, and the third interface is connected to the selected third Spine device; Generate a second flow forwarding entry based on the selected third Spine device, where the second flow forwarding entry includes the first flow feature and a third outbound interface identifier; Delete the first flow monitoring table entry and the first flow forwarding table entry.

5. A communication method, characterized in that: The method is applied to a Spine device, where the Spine device is connected to at least one Leaf device and includes a first interface. The method includes: receiving a first path adjustment request message sent by the Leaf device, where the first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow; Acquire, according to the first flow feature, a first outbound interface identifier corresponding to the first flow feature, where the first outbound interface identifier indicates the first interface; identifying, based on the first flow characteristics and the first occupied bandwidth, whether the first interface can be used to forward the first service flow; If so, sending a first path adjustment response message to the Leaf device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the first interface, so that the Leaf device selects a Spine device as the one for forwarding the first service flow based on the preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the first interface; Wherein, the first path adjustment result is accepting the path adjustment request; The method further comprises: Receiving the service flow sent by the Leaf device; Generate a flow monitoring table entry according to a first service message included in the service flow, wherein the flow monitoring table entry includes a flow feature field, an input interface field, an output interface field, and a metric parameter field; the flow monitoring table entry is located in a forwarding chip included in the Spine device; The flow feature field stores the message feature of the service message, which is the same as the flow feature. The input interface field stores the interface identifier for receiving the service flow, the output interface field stores the interface identifier for forwarding the service flow, and the metric parameter field stores the metric parameters representing the service flow, which include the occupied bandwidth and forwarding delay of the service flow. A flow forwarding entry is generated according to the flow feature, wherein the flow forwarding entry includes the flow feature and an identifier of an interface for forwarding the service flow.

6. The method according to claim 5, characterized in that The Spine device also includes a second interface; Before receiving the first path adjustment request message sent by the Leaf device, the method further includes: receiving, through the second interface, a second service flow sent by the Leaf device, where the second service flow includes a second flow feature; When a second metric parameter representing the second service flow exceeds a preset first parameter threshold, obtaining, from a flow monitoring table, a first flow monitoring table entry that matches the second flow feature, based on the second flow feature, the first flow monitoring table entry including an inbound interface identifier and a second occupied bandwidth, where the inbound interface identifier indicates the second interface; An adaptive routing notification message is sent to the Leaf device through the second interface, where the adaptive routing notification message includes the second flow feature and the second occupied bandwidth, so that the Leaf device generates and sends a second path adjustment request message to the corresponding connected Spine device through other interfaces except the interface connected to the second interface.

7. The method according to claim 5, characterized in that The method further comprises: If not, sending a second path adjustment response message to the Leaf device, where the second path adjustment response message includes the first flow characteristics, the second path adjustment result, and the available bandwidth of the first interface, so that the Leaf device abandons forwarding the first service flow through the Spine device according to the preconfigured first selection policy, the second path adjustment result, and the available bandwidth of the first interface; The second path adjustment result is that the path adjustment request is not accepted.

8. The method according to claim 5, characterized in that The identifying, according to the first flow feature and the first occupied bandwidth, whether the first interface can be used to forward the first service flow specifically includes: identifying, according to a preconfigured second selection policy, whether the available bandwidth of the first interface is greater than the first occupied bandwidth; If yes, identifying the interface status of the first interface; If the interface state of the first interface is non-congested, identifying the interface state of the first interface after the first interface is used to forward the first service flow; If the interface state of the first interface is non-congested after the first interface is used to forward the first service flow, it is determined that the first interface can be used to forward the first service flow.

9. The method according to claim 8, characterized in that The method further comprises: If not, determining that the first interface is not available for forwarding the first service flow; If the interface status of the first interface is congested, determining that the first interface is unavailable for forwarding the first service flow; If the interface status of the first interface is congested after the first interface is used to forward the first service flow, it is determined that the first interface is not available for forwarding the first service flow.

10. A communication device, characterized in that: The apparatus is applied to a Leaf device, the Leaf device is connected to at least one Spine device, the Leaf device includes a first interface, the first interface is connected to a first Spine device, and the apparatus includes: A receiving unit, configured to receive a first service flow, where the first service flow includes a first flow feature; A sending unit is configured to send a first path adjustment request message to each corresponding second Spine device through an interface other than the first interface for connecting to at least one second Spine device, where the first path adjustment request message includes the first flow feature and the first occupied bandwidth of the first service flow, so that each second Spine device identifies whether the second interface can be used to forward the first service flow based on the first flow feature and the first occupied bandwidth; The receiving unit is further configured to receive a first path adjustment response message sent by each second Spine device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the second interface; A selection unit is configured to select a third Spine device from the at least one second Spine device as a next-hop network device for continuing to forward the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the second interface; The sending unit is further configured to send the first service flow to the selected third Spine device; The second interface is an outbound interface for forwarding the first service flow determined by the second Spine device according to the first flow characteristics; The device further comprises: a generating unit, configured to generate a first flow monitoring table entry according to a first service message included in the first service flow, wherein the first flow monitoring table entry includes a flow feature field, an outgoing interface field, and a metric parameter field; the first flow monitoring table entry is in a forwarding chip included in the Leaf device; The flow feature field stores a message feature of the service message, the message feature is the same as the first flow feature, the outgoing interface field stores the first interface identifier, and the metric parameter field stores a first metric parameter representing the first service flow, the first metric parameter including a first occupied bandwidth and a first forwarding delay of the first service flow; an acquiring unit, configured to acquire, from a flow forwarding table, a first flow forwarding entry matching the first flow feature according to the first flow feature, wherein the first flow forwarding entry includes a second outgoing interface identifier, and the second outgoing interface identifier indicates the first interface; The sending unit is further used to send the first service flow to the first Spine device through the first interface.

11. A communication device, characterized in that: The apparatus is applied to a Spine device, the Spine device is connected to at least one Leaf device, the Spine device includes a first interface, and the apparatus includes: a receiving unit, configured to receive a first path adjustment request message sent by the Leaf device, where the first path adjustment request message includes a first flow feature of a first service flow and a first occupied bandwidth of the first service flow; an acquiring unit, configured to acquire, according to the first flow feature, a first outbound interface identifier corresponding to the first flow feature, where the first outbound interface identifier indicates the first interface; an identification unit, configured to identify, based on the first flow characteristic and the first occupied bandwidth, whether the first interface can be used to forward the first service flow; A sending unit, configured to, if so, send a first path adjustment response message to the Leaf device, where the first path adjustment response message includes the first flow feature, the first path adjustment result, and the available bandwidth of the first interface, so that the Leaf device selects a Spine device as the Spine device for forwarding the first service flow based on a preconfigured first selection policy, the first path adjustment result, and the available bandwidth of the first interface; Wherein, the first path adjustment result is accepting the path adjustment request; The receiving unit is further configured to receive the service flow sent by the Leaf device; The apparatus further includes: a generating unit, configured to generate a flow monitoring table entry according to a first service message included in the service flow, wherein the flow monitoring table entry includes a flow feature field, an input interface field, an output interface field, and a metric parameter field; the flow monitoring table entry is located in a forwarding chip included in the spine device; The flow feature field stores the message feature of the service message, which is the same as the flow feature. The input interface field stores the interface identifier for receiving the service flow, the output interface field stores the interface identifier for forwarding the service flow, and the metric parameter field stores the metric parameters representing the service flow, which include the occupied bandwidth and forwarding delay of the service flow. The generating unit is further configured to generate a flow forwarding entry according to the flow feature, wherein the flow forwarding entry includes the flow feature and an identifier of an interface for forwarding the service flow.

Citation Information

Patent Citations

  • SDN based distributed control load balancing system and method

    CN107819695A

  • Network switches using centralized improvement of routing based on link capacity

    US10666580B1