WO2023169407A1 - Method for issuing routing table and related apparatus - Google Patents
Method for issuing routing table and related apparatus Download PDFInfo
- Publication number
- WO2023169407A1 WO2023169407A1 PCT/CN2023/080043 CN2023080043W WO2023169407A1 WO 2023169407 A1 WO2023169407 A1 WO 2023169407A1 CN 2023080043 W CN2023080043 W CN 2023080043W WO 2023169407 A1 WO2023169407 A1 WO 2023169407A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- forwarding device
- flowlet
- measurement information
- flow
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
Definitions
- the embodiments of the present application relate to the field of communication technology, and in particular, to a method of delivering a routing table and related devices.
- multiple switches and routers form a forwarding network for network traffic.
- a single data packet in network traffic can be routed and forwarded through different paths through the forwarding device ( routing) to the destination network device (such as a computer).
- the forwarding device uses Layer 3 Load balance technology.
- the forwarding device equipped with Layer 3 load balancing technology chooses to forward all or part of the packets of the flow to different paths to achieve traffic balancing on different paths.
- each forwarding device needs to maintain a flow segment (Flowlet) routing table and a full path quality table.
- the full path quality table indicates all the traffic in the current layer 3 load balancing network.
- the network quality status of the forwarding path (such as queuing status, interface rate, packet loss, delay or flow count, etc.).
- the forwarding device determines the next hop port of the packet based on the Flowlet routing table and the full path quality table.
- Embodiments of the present application provide a method and related devices for delivering routing tables to improve the effect of load balancing.
- embodiments of the present application provide a method for delivering a routing table.
- the controller manages each forwarding device in the network.
- the controller needs to understand the topology of the network, and the forwarding device needs to report the initialized Flowlet routing table to the controller, so that the controller can subsequently use the Flowlet routing table of all forwarding devices in the network (i.e., the global Flowlet routing table) to perform route calculations.
- the controller can obtain the physical topology of the network during the initialization phase by forwarding device reports or controller discovery.
- the method of delivering the routing table in this application is only performed on large flows in the network traffic, that is, in this application, the flow to which the target message belongs is a large flow.
- the forwarding device sends network measurement information to the controller.
- the network measurement information includes flow measurement information for large flows. For example, it may be delay information, packet loss information, or next hop information.
- a flow in network traffic, is a group of packets containing the same flow identifier (such as a five-tuple or a flow label, etc.).
- a large flow refers to a flow in which the number of packets or the flow rate in a unit period exceeds the threshold.
- a group of packets in a flow in which the number of packets in the flow exceeds a threshold within a period of time is identified as a large flow.
- a flow that satisfies the large flow condition can be considered a large flow or a large burst.
- the corresponding flows that do not meet the large flow conditions can It can be considered as a small flow, or it can be considered as a small burst.
- a large flow can also be called an elephant flow, and a small flow can also be called a mouse flow.
- Scheduling for large flows can significantly improve the load on the network, while small flows have less impact on the load of the forwarding device due to the small number of messages.
- the forwarding device receives When packets come from small flows, they can be routed based on the equal-cost multi-path routing (ECMP) mechanism. Therefore, the forwarding device does not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller.
- the amount of data in the Flowlet table item is not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller.
- the forwarding device referred to in the embodiment of this application may be a network device (such as a switch or router, etc.) with an IP packet forwarding function.
- Each of the steps implemented by the forwarding device can also be implemented by components in the network device, for example, by a chip system in the network device.
- the chip system includes logic circuits.
- the logic circuit can be coupled with the input/output interface and transmit messages through the input/output interface to implement each step in the above method embodiment.
- the logic circuit can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a network processor (network processor, NP), or other possible Programmed logic devices, discrete gate or transistor logic devices, discrete hardware components, or other integrated chips, etc.
- the controller needs to maintain a global Flowlet routing table and a global network measurement table.
- the global Flowlet routing table includes the Flowlet routing table of each forwarding device, and the global network measurement table includes the network measurement information of each forwarding device.
- the controller After receiving the network measurement information of the forwarding device, the controller updates the entry corresponding to the forwarding device in the global network measurement table based on the network measurement information.
- the controller performs routing calculations based on the global Flowlet routing table and the updated global network measurement table.
- the controller generates a routing decision through the above routing calculation process.
- the routing decision indicates the aging time threshold of the Flowlet entry in the Flowlet routing table of the forwarding device. Furthermore, it can also indicate the next step for the target packet in the Flowlet routing table of the forwarding device.
- One-hop port field One-hop port field.
- the aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid.
- the aging flag of the Flowlet entry matching the target packet is set to 1, so that the Flowlet entry is considered valid; when the forwarding device If the time interval for receiving the target packet exceeds the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 0, and the Flowlet entry is considered invalid.
- controller can set different time thresholds for a Flowlet entry or a group of Flowlet entries on each forwarding device, so that the above Flowlet entries have a better load under the corresponding next-hop route. Balance effect to avoid congestion.
- the controller After the controller generates a new routing decision, it updates the Flowlet routing table for the forwarding device in the global Flowlet routing table.
- the updated global Flowlet routing table can continue to be used in subsequent routing calculations to generate routing decisions.
- the forwarding device After the forwarding device receives the routing decision from the controller, it updates the Flowlet entry in the Flowlet routing table locally saved by the forwarding device based on the routing decision, specifically including updating the aging time threshold of the Flowlet entry or the Flowlet The next hop port field in the entry. After the forwarding device receives the target message, it can The packet is forwarded based on the next hop port indicated in the updated Flowlet entry.
- the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device.
- the forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller.
- the network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
- the routing decision further includes a next-hop port field for the target packet in the Flowlet entry.
- each Flowlet entry in the Flowlet routing table mainly includes the following fields: identification field, valid information field, and next hop port field.
- the identification field in the Flowlet entry includes identification. If the flow identity information of the target packet is hashed and the obtained ID is the same as the ID included in the ID field of a Flowlet entry, then the target packet can be considered to match the Flowlet entry. In this case, you can further determine how to process the packet based on the valid information field and next hop port field in the matching Flowlet entry.
- the valid information field in the Flowlet entry is used to indicate whether the Flowlet entry is currently valid, thereby determining whether matching packets can be forwarded based on the next hop port recorded in the next hop port field in the Flowlet entry.
- the aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid. Therefore, in addition to delivering the aging time threshold of the Flowlet entry to the forwarding device, the controller can also deliver the next-hop port field for the target packet to the forwarding device, thus improving the update of the Flowlet entry of the forwarding device. Efficiency also improves the efficiency of message forwarding.
- the number of forwarding devices is not limited, that is, the forwarding device may include a first forwarding device, a second forwarding device, or other forwarding devices. Therefore, there may be multiple forwarding devices that send network measurement information to the controller, or there may be only one. If the controller receives the network measurement information of a forwarding device (i.e., the first forwarding device in this application), it generates a routing decision based on the network measurement information of the forwarding device (the first forwarding device) and issues it to the forwarding device.
- a forwarding device i.e., the first forwarding device in this application
- first forwarding device if the controller receives multiple network measurement information from multiple forwarding devices (such as all forwarding devices or part of the forwarding devices in the entire network), where each forwarding device corresponds to one network measurement information, The controller then performs routing calculations based on the received multiple network measurement information, thereby generating routing decisions and issuing them to each forwarding device.
- the controller generates a routing decision based on network measurement information from the second forwarding device and/or the first forwarding device, and sends the routing decision to the second forwarding device and/or the first forwarding device.
- the controller can perform routing calculations based on multiple network measurement information from multiple forwarding devices and generate routing decisions corresponding to each forwarding device, which improves the flexibility of routing calculations and is more suitable for networks with many network devices. , complex network topology.
- the forwarding device when the forwarding device is forwarding messages and network congestion occurs on the port of the forwarding device, the forwarding device needs to obtain the network measurement information of its own device and report it to the controller.
- the network measurement information also includes port information on the forwarding device where network congestion occurs, which is used to reflect the network status of the forwarding device itself or the network quality of the next-hop port of the forwarding device, and so on.
- Exemplary, specific content forms of network measurement information include but are not limited to: port traffic where network congestion occurs, queue information, or other information reflecting network quality. One or more types of information, the specifics are not limited here. For those forwarding devices that do not experience network congestion, there is no need to report their network measurement information to the controller.
- the forwarding device can forward packets according to the local Flowlet routing table, thereby reducing the network overhead of the forwarding device and reducing the time required by the controller.
- the amount of network measurement information that needs to be collected reduces the computing overhead required by the controller to generate routing decisions.
- the network measurement information reported by the forwarding device in addition to the information of the ports in the forwarding device where network congestion occurs, may also include the information of the ports in the forwarding device where network congestion does not occur, so that the controller can more comprehensively Understand the network quality of the forwarding device to perform routing calculations.
- embodiments of the present application provide a method for updating a routing table, including:
- the forwarding device sends network measurement information to the controller, where the network measurement information includes flow measurement information for large flows, where the large flow is a flow whose number of packets or flow rate exceeds a threshold in a unit period;
- the forwarding device receives a routing decision from the controller, where the routing decision is generated by the controller based on the network measurement information;
- the forwarding device updates the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision.
- the Flowlet entry is used to indicate the next hop port of the target message in the large flow, where, The flow identity information of the target packet matches the Flowlet entry.
- the method further includes: the forwarding device updating the next hop port field in the Flowlet entry according to the routing decision.
- the routing decision includes multiple next-hop port fields in the Flowlet entry for the target message, and the method further includes: forwarding The device determines the target next hop port used to forward the target message according to the multiple next hop port fields.
- the forwarding device sends network measurement information to the controller, including: in response to network congestion occurring on a port of the forwarding device, the forwarding device sends The network measurement information further includes port information where network congestion occurs.
- the flow to which the target packet belongs is a large flow
- the large flow is a flow whose number of packets or flow rate in a unit period exceeds a threshold.
- the flow to which the target packet belongs is a large flow
- a large flow is a flow in which the number of packets in a unit period exceeds a threshold.
- embodiments of the present application provide a controller, including:
- the transceiver unit is used to receive network measurement information from the forwarding device.
- the network measurement information includes flow measurement information for large flows.
- a large flow is a flow in which the number of packets or the flow rate in a unit period exceeds a threshold;
- a processing unit for generating routing decisions based on network measurement information
- the transceiver unit is also used to send routing decisions to the forwarding device.
- the routing decisions include flow segmentation Flowlet in the forwarding device.
- the Flowlet entry is used to indicate the next hop port of the target packet in the large flow.
- the flow identity information of the target packet matches the Flowlet entry.
- the routing decision further includes a next-hop port field for the target packet in the Flowlet entry.
- the number of forwarding devices is multiple, and the processing unit is specifically used for:
- the network measurement information is sent by the forwarding device where the port where network congestion occurs is located, and the network measurement information also includes information about the port where network congestion occurs.
- embodiments of the present application provide a device for updating a routing table, including:
- the transceiver unit is used to send network measurement information to the controller.
- the network measurement information includes flow measurement information for large flows.
- a large flow is a flow whose number of packets or flow rate exceeds a threshold in a unit period;
- the transceiver unit is also used to receive routing decisions from the controller.
- the routing decisions are generated by the controller based on network measurement information;
- the processing unit is used to update the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision.
- the Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the target packet's The flow identity information matches the Flowlet entry.
- processing unit is also used to:
- the routing decision includes multiple next-hop port fields for the target packet in the Flowlet entry, and the processing unit is also used to:
- the transceiver unit is specifically used for:
- network measurement information is sent to the controller, and the network measurement information also includes information on the port where network congestion occurs.
- embodiments of the present invention provide a computer device, including a communication interface and a processor; the communication interface is used to communicate with other devices under the control of the processor; the processor is used to execute the computer Programs or instructions to cause the computer device to execute the method described in any of the above aspects.
- embodiments of the present application provide a computer-readable storage medium that stores a computer program that, when run on a computer, causes the computer to execute the following steps described in any of the above aspects.
- Method to distribute routing table
- inventions of the present application provide a computer program product or computer program.
- the computer program product or computer program includes a computer program or instructions that, when run on a computer, cause the computer to execute any of the above aspects.
- inventions of the present application provide a chip system.
- the chip system includes a processor for implementing the functions involved in the above aspects, for example, sending or processing the data and/or information involved in the above methods.
- the chip system further includes a memory, and the memory is used to store necessary program instructions and data for the server or communication device.
- the chip system may be composed of chips, or may include chips and other discrete devices.
- the controller receives network measurement information from the first forwarding device.
- the network measurement information includes flow measurement information for large flows.
- a large flow is a flow within a unit period. The number of packets or the flow rate exceeds the threshold; the controller generates a routing decision based on the network measurement information; the controller sends the routing decision to the first forwarding device, and the routing decision includes the aging of the Flowlet entries in the flow segmentation Flowlet routing table in the first forwarding device.
- Time threshold, Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the flow identity information of the target packet matches the Flowlet entry.
- the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device.
- the forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller.
- the network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
- Figure 1 is a schematic diagram of a message forwarding scenario based on Flowlet routing table
- Figure 2 is a schematic diagram of the architecture of a load balancing network based on network quality measurement
- Figure 3 is a schematic diagram of a forwarding device making routing decisions based on the full path quality table
- Figure 4 is a schematic diagram of an application scenario of the method of delivering a routing table in the embodiment of the present application
- Figure 5 is a schematic flowchart of a method for delivering a routing table in an embodiment of the present application
- Figure 6 is a schematic diagram of routing calculation based on the load balancing algorithm in this application.
- Figure 7 is a schematic diagram of a scenario in which the controller delivers the next hop port field and time threshold in this embodiment of the present application;
- Figure 8 is a schematic structural diagram of a controller provided by an embodiment of the present application.
- Figure 9 is a schematic structural diagram of a device for updating a routing table provided by an embodiment of the present application.
- Figure 10 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- Embodiments of the present application provide a method and related devices for delivering routing tables to improve the effect of load balancing.
- At least one refers to one or more
- plural refers to two or more.
- “And/or” describes the relationship between associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
- the character “/” generally indicates that the related objects are in an “or” relationship.
- “At least one of the following” or similar expressions thereof refers to any combination of these items, including any combination of a single item (items) or a plurality of items (items).
- At least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple .
- multiple switches and routers form a forwarding network for network traffic.
- a single data packet in network traffic can be routed and forwarded through different paths through the forwarding device ( routing) to the destination network device (such as a computer).
- the forwarding device uses Layer 3Load balance technology.
- the forwarding device equipped with Layer 3 load balancing technology chooses to forward all or part of the packets of the flow to different paths to achieve traffic balancing on different paths.
- ECMP equal-cost multi-path routing
- the forwarding device After receiving the data packet, the forwarding device calculates an index (index) based on the flow identity information of the data packet, and then queries the ECMP routing table for an entry matching the index. Based on the next hop included in the entry, the forwarding device The port forwards the data packet.
- index index
- the bandwidth, delay and reliability of each path in the network are different, and the ECMP mechanism treats the cost of each path as the same and cannot make good use of bandwidth, especially when the differences between paths are large. It would be very unsatisfactory. For example, if the router has two exits and two paths, one has a bandwidth of 100M and the other has a bandwidth of 2M. If ECMP is deployed, the total network bandwidth can only achieve a utilization rate of 4M.
- FIG. 1 is a schematic diagram of a packet forwarding scenario based on the Flowlet routing table. As shown in Figure 1, the forwarding device selects a forwarding path for the packet based on querying the Flowlet routing table.
- each forwarding device needs to maintain a Flowlet routing table and a full path quality table.
- the full path quality table indicates the network quality of all forwarding paths in the current layer 3 load balancing network. Status (such as queuing status, interface rate, packet loss, delay or flow count, etc.).
- the forwarding device determines the next hop port of the packet based on the Flowlet routing table and full path quality table.
- FIG 2 is a schematic diagram of the architecture of a load balancing network based on network quality measurement.
- the load balancing network includes multiple forwarding devices.
- each forwarding device needs to maintain the Flowlet routing table and the full path quality table.
- the forwarding device obtains all forwarding by maintaining the full path quality table.
- Real-time network quality status of the path (such as queuing status, interface rate, packet loss, delay or flow count, etc.), so as to make routing decisions based on the quality of each forwarding path.
- forwarding device 1 when a packet reaches the ingress port of forwarding device 1, forwarding device 1 selects different egress ports for it based on the Flowlet routing table and full path quality table, thereby forwarding the packet to different next-hop devices (forwarding device 1). Device 2 or forwarding device 3), so that the packet finally reaches the destination device through different paths in the network.
- each forwarding device stores a Flowlet routing table and a full path quality table.
- the full path quality table needs to be maintained based on the real-time network quality status so that the forwarding device can select the forwarding path with better network quality status.
- Forward the message The following takes forwarding device 1 in Figure 2 as an example to introduce the processing flow of packets after they pass through forwarding device 1. Please refer to Figure 3.
- Figure 3 is a schematic diagram of a forwarding device making routing decisions based on the full path quality table. As shown in Figure 3, forwarding device 1 stores a Flowlet routing table and a full path quality table. After receiving the message, the forwarding device 1 obtains the identifier of the message by performing a hash operation on the flow identity information of the message.
- Forwarding device 1 uses this identifier to retrieve the Flowlet entry in the Flowlet routing table. If the identifier can match a certain Flowlet entry in the Flowlet routing table, the next destination indicated by the matched Flowlet entry can be used. Hop ports to forward the packet.
- the Flowlet entry in the Flowlet routing table includes a valid bit field to indicate whether the Flowlet entry is valid.
- Forwarding device 1 maintains a timer, which can set a time threshold T.
- the time threshold T is the minimum time interval to determine whether two messages belong to the same Flowlet.
- the value of the aging flag field in the Flowlet entry is determined based on whether the time interval between two packet processing exceeds the time threshold T.
- the aging flag of the Flowlet entry matching the message is set to 1, thus considering the Flowlet entry to be valid; when forwarding device 1 receives the If the time interval between packets has exceeded the time threshold T, the aging flag of the Flowlet entry matching the packet is set to 0, and the Flowlet entry is considered invalid.
- forwarding device 1 When forwarding device 1 receives the message, if the matched Flowlet entry is shown to be valid, forwarding device 1 can forward the matched message based on the next hop port recorded in the next hop port field in the Flowlet entry. packet; if the matched Flowlet entry is invalid, the Flowlet entry cannot be used as a routing entry for processing packets matching the Flowlet entry. In this case, it indicates that the routing table entry records the next hop record of the previous Flowlet, and forwarding device 1 regards the message received this time as the first message of a new Flowlet.
- the forwarding device when the load balancing algorithm is enabled on the forwarding device, the network quality of all forwarding paths needs to be queried through the full path quality table. Since the network quality of each path changes in real time, the forwarding device also needs to update and maintain the full path quality table in real time.
- the specific process for the forwarding device to update and maintain the full path quality table is as follows:
- the network measurement information is transmitted to the target device along with the packet forwarding.
- the target device calculates the network quality along the entire path and returns it to the corresponding forwarding device along the path.
- FIG. 4 is a schematic diagram of an application scenario of the method of delivering a routing table in an embodiment of the present application.
- the controller receives network measurement information from each forwarding device (such as forwarding device 1, forwarding device 2 or forwarding device 3 in Figure 4) for the port where network congestion occurs, and then generates a The routing decision is sent to each forwarding device.
- the routing decision includes the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table of the forwarding device.
- the Flowlet entry is used to indicate the next hop of the target packet in the large flow. port, where the flow identity information of the target packet matches the Flowlet entry.
- Each forwarding device forwards packets according to the received routing policy.
- Figure 5 is a schematic flow chart of a method of delivering a routing table in an embodiment of the present application. As shown in Figure 5, the method of delivering a routing table in an embodiment of the present application includes:
- the forwarding device sends network measurement information to the controller.
- the forwarding device in the network has basic telemetry capabilities.
- the forwarding device can collect the delay flow size or packet loss information of specific traffic in real time.
- Telemetry technology generally refers to the remote real-time high-speed collection of data from physical network elements or virtual network elements to achieve real-time, high-speed and more sophisticated information collection technology for the network.
- SNMP simple network management protocol
- Telemetry actively pushes data information to the controller as a collector through push mode, providing more real-time, faster and more accurate information. Accurate network information collection function.
- the controller manages each forwarding device in the network.
- the controller needs to master the topology of the network, and the forwarding device needs to initialize
- the optimized Flowlet routing table is reported to the controller so that the controller can subsequently perform route calculations based on the Flowlet routing tables of all forwarding devices in the network (i.e., the global Flowlet routing table).
- the controller can obtain the physical topology of the network during the initialization phase by forwarding device reports or controller discovery.
- the method of delivering the routing table in this application is only performed on large flows in the network traffic, that is, in this application, the flow to which the target message belongs is a large flow.
- the forwarding device sends network measurement information to the controller.
- the network measurement information includes flow measurement information for large flows. For example, it may be delay information, packet loss information, or next hop information.
- a flow in network traffic, is a group of packets containing the same flow identifier (such as a five-tuple or a flow label, etc.).
- a large flow refers to a flow in which the number of packets or the flow rate in a unit period exceeds the threshold.
- a group of packets in a flow in which the number of packets in the flow exceeds a threshold within a period of time is identified as a large flow.
- a flow that satisfies the large flow condition can be considered a large flow or a large burst.
- the corresponding flow that does not meet the large flow condition can be considered as a small flow or a small burst.
- a large flow can also be called an elephant flow, and a small flow can also be called a mouse flow.
- Scheduling for large flows can significantly improve the load on the network, while small flows have less impact on the load of the forwarding device due to the small number of messages.
- the forwarding device receives When packets come from small flows, they can be routed based on the ECMP mechanism. Therefore, the forwarding device does not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller.
- the amount of data in the Flowlet table item is not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller.
- the forwarding device when the forwarding device is forwarding messages, when network congestion occurs on the port of the forwarding device, the forwarding device needs to obtain the network measurement information of its own device and report it to the controller, where the network measurement information It also includes port information on the forwarding device where network congestion occurs, which is used to reflect the network status of the forwarding device itself or the network quality of the next hop port of the forwarding device, etc.
- the specific content form of the network measurement information includes but is not limited to: one or more of port traffic where network congestion occurs, queue information, or other information reflecting network quality, which is not limited here. For those forwarding devices that do not experience network congestion, there is no need to report their network measurement information to the controller.
- the forwarding device can forward packets according to the local Flowlet routing table, thereby reducing the network overhead of the forwarding device and reducing the time required by the controller.
- the amount of network measurement information that needs to be collected reduces the computing overhead required by the controller to generate routing decisions.
- the network measurement information reported by the forwarding device in addition to the information of the ports in the forwarding device where network congestion occurs, may also include the information of the ports in the forwarding device where network congestion does not occur, so that the controller can more comprehensively Understand the network quality of the forwarding device to perform routing calculations.
- the forwarding device can obtain its network measurement information in a variety of ways. For example, the forwarding device can discover the network quality of the forwarding path from the forwarding device to the neighbor forwarding device through network measurements; or the forwarding device can determine the network quality of the forwarding path based on a flow. The device status when passing through the forwarding device is used to update the network measurement information of the forwarding device itself; or other methods of obtaining network measurement information may be used, which are not limited here.
- the network measurement information may also include load conditions of the computing power of the forwarding device.
- the forwarding device referred to in the embodiment of this application may be a network device (such as a switch or router) with a network protocol IP packet forwarding function.
- Each of the steps implemented by the forwarding device can also be implemented by components in the network device, for example, by a chip system in the network device.
- the chip system includes logic circuits.
- the logic circuit can be coupled with the input/output interface and transmit messages through the input/output interface to implement each step in the above method embodiment. steps.
- the logic circuit can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a network processor (NP), or other possible Programmed logic devices, discrete gate or transistor logic devices, discrete hardware components, or other integrated chips, etc.
- the number of forwarding devices is not limited, that is, the forwarding device may include a first forwarding device, a second forwarding device, or other forwarding devices. Therefore, there may be multiple forwarding devices that send network measurement information to the controller, or there may be only one. If the controller receives the network measurement information of a forwarding device (i.e., the first forwarding device in this application), it generates a routing decision based on the network measurement information of the forwarding device (the first forwarding device) and issues it to the forwarding device.
- a forwarding device i.e., the first forwarding device in this application
- first forwarding device if the controller receives multiple network measurement information from multiple forwarding devices (such as all forwarding devices or part of the forwarding devices in the entire network), where each forwarding device corresponds to one network measurement information, The controller then performs routing calculations based on the received multiple network measurement information, thereby generating routing decisions and issuing them to each forwarding device.
- the controller generates a routing decision based on network measurement information from the second forwarding device and/or the first forwarding device, and sends the routing decision to the second forwarding device and/or the first forwarding device.
- the controller can perform routing calculations based on multiple network measurement information from multiple forwarding devices and generate routing decisions corresponding to each forwarding device, which improves the flexibility of routing calculations and is more suitable for networks with many network devices. , complex network topology.
- the controller generates routing decisions based on network measurement information.
- the controller needs to maintain a global Flowlet routing table and a global network measurement table.
- the global Flowlet routing table includes its own Flowlet routing for each forwarding device (such as forwarding device 1 and forwarding device 2 in Figure 5).
- the global network measurement table includes the network measurement information of each forwarding device (for example, forwarding device 1 and forwarding device 2 in Figure 5).
- the controller After receiving the network measurement information of the forwarding device, the controller updates the entry corresponding to the forwarding device in the global network measurement table based on the network measurement information.
- the controller performs routing calculations based on the global Flowlet routing table and the updated global network measurement table.
- the controller generates a routing decision through the above routing calculation process.
- the routing decision indicates the aging time threshold of the Flowlet entry in the Flowlet routing table of the forwarding device. Furthermore, it can also indicate the next step for the target packet in the Flowlet routing table of the forwarding device.
- One-hop port field the route calculation process can also be further combined with historical network data. For example, based on historical network data, it can be concluded that there is obvious congestion on some paths in certain time periods, and you can give priority to avoid these future routes in advance. Paths where congestion may occur.
- Figure 6 is a schematic diagram of route calculation based on the load balancing algorithm in this application.
- a packet when a packet is transmitted from the source device to the destination device, it needs to pass through forwarding path 1, forwarding path 2, forwarding path 3, and forwarding path 4. Because the load on forwarding path 2 and forwarding path 3 is too large at this time, network congestion occurs.
- the controller After receiving the network measurement information reported by the forwarding device where the port where the network congestion occurs is located, the controller performs route calculation based on the load balancing algorithm. , generate a new routing decision, thereby selecting forwarding path 5 and forwarding path 6 with less load as new forwarding paths, thereby replacing forwarding path 2 and forwarding path 3 where network congestion occurs. Based on the instructions of the new routing decision, the packet is delivered from the source device to the destination device and passes through forwarding path 1, forwarding path 5, forwarding path 6, and forwarding path 4 in sequence.
- the controller After the controller generates a new routing decision, it updates the global Flowlet routing table for the forwarding The device's Flowlet routing table.
- the updated global Flowlet routing table can continue to be used in subsequent routing calculations to generate routing decisions.
- the routing decision includes the aging time threshold of the Flowlet entry in the Flowlet routing table in the forwarding device.
- the Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the flow identity information of the target packet Matches the Flowlet entry.
- the routing decision also includes the next-hop port field for the target packet in the Flowlet entry.
- each Flowlet entry in the Flowlet routing table mainly includes the following fields: identification field, valid information field, and next hop port field.
- the identification field in the Flowlet entry includes identification.
- the target packet can be considered to match the Flowlet entry. In this case, you can further determine how to process the packet based on the valid information field and next hop port field in the matching Flowlet entry.
- the valid information field in the Flowlet entry is used to indicate whether the Flowlet entry is currently valid, thereby determining whether matching packets can be forwarded based on the next hop port recorded in the next hop port field in the Flowlet entry.
- the aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid.
- the controller can also deliver the next-hop port field for the target packet to the forwarding device, thus improving the update of the Flowlet entry of the forwarding device. Efficiency also improves the efficiency of message forwarding.
- the aging flag of the Flowlet entry matching the target packet is set to 1, thereby considering the Flowlet entry to be valid; when If the time interval at which the forwarding device receives the target packet exceeds the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 0, and the Flowlet entry is considered invalid.
- Figure 7 is a schematic diagram of a scenario in which the controller delivers the next hop port field and time threshold in this embodiment of the present application.
- forwarding device 1 and forwarding device 2 send their respective network measurement information to the controller, and the controller generates the next hop port field and the next hop port field of each forwarding device based on the global Flowlet routing table and global network measurement table. time threshold, and then send the next hop port field and time threshold to each forwarding device for execution by the forwarding device.
- the controller can set different time thresholds for a Flowlet entry or a group of Flowlet entries on each forwarding device, so that the above Flowlet entries have better performance under the corresponding next-hop route. Load balancing effect to avoid congestion.
- the forwarding device updates the Flowlet entry in the Flowlet routing table based on the routing decision.
- the forwarding device After the forwarding device receives the routing decision from the controller, it updates the Flowlet entry in the Flowlet routing table locally saved by the forwarding device based on the routing decision, specifically including updating the aging time threshold of the Flowlet entry or the Flowlet The next hop port field in the entry. After the forwarding device receives the target packet, it can forward the packet based on the next hop port indicated in the updated Flowlet entry.
- the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device.
- the forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller.
- the network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
- the routing decision generated by the controller indicates multiple next-hop ports for one Flowlet entry. That is, after the controller calculates the route, it considers that multiple next-hop ports can be used to deliver the target packet. Therefore, after receiving the routing policy, the forwarding device updates the Flowlet entry in the locally saved Flowlet routing table, and obtains the next-hop port field in the updated Flowlet entry, which includes the above instructions indicated by the controller. Multiple next hop ports. After receiving a target packet that matches the Flowlet entry, one port (target next hop port) is determined from multiple next hop ports to forward the target packet.
- the forwarding device may determine the target next-hop port for forwarding the target message from multiple next-hop ports based on random selection; or may use other methods to determine the target next-hop port, such as , when the controller delivers the routing policy, it also indicates the network quality of each next-hop port, so that the forwarding device can select the next-hop port with the best (or better) network quality from multiple next-hop ports.
- the target next hop port This application does not limit the way in which the forwarding device selects a target next-hop port from multiple next-hop ports. Therefore, the controller instructs multiple next-hop ports to the forwarding device, and the forwarding device selects one of them to perform packet forwarding based on the needs of the actual scenario, thus improving the flexibility of packet forwarding.
- Figure 8 is a schematic structural diagram of a controller provided by an embodiment of the present application.
- the controller includes:
- the transceiver unit 201 is configured to receive network measurement information from the forwarding device.
- the network measurement information includes flow measurement information for large flows.
- a large flow is a flow in which the number of packets or the flow rate in a unit period exceeds a threshold;
- the processing unit 202 is used to generate routing decisions based on network measurement information
- the transceiver unit 201 is also used to send routing decisions to the forwarding device.
- the routing decisions include the aging time threshold of the Flowlet entries in the flow segmentation Flowlet routing table in the forwarding device.
- the Flowlet entries are used to indicate the next destination of the target packet in the large flow. Hop port, where the flow identity information of the target packet matches the Flowlet entry.
- the routing decision also includes the next-hop port field of the target packet in the Flowlet entry.
- the number of forwarding devices is multiple, and the processing unit 202 is specifically used to:
- the network measurement information is sent by the forwarding device where the port where network congestion occurs is located, and the network measurement information also includes information about the port where network congestion occurs.
- Figure 9 is a schematic structural diagram of a device for updating a routing table provided by an embodiment of the present application.
- the device for updating a routing table includes:
- the transceiver unit 301 is configured to send network measurement information to the controller and receive routing decisions from the controller.
- the network measurement information includes flow measurement information for large flows.
- the large flow is the number of packets in a unit period or the flow rate exceeds Threshold flow,routing decisions are generated by the controller based on,network measurement information;
- the processing unit 302 is configured to update the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision.
- the Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the target packet The flow identity information matches the Flowlet entry.
- processing unit 302 is also used to:
- the routing decision includes multiple next-hop port fields for the target packet in the Flowlet entry.
- the processing unit 302 is also used to:
- the transceiver unit 301 is specifically used for:
- network measurement information is sent to the controller, and the network measurement information also includes information on the port where network congestion occurs.
- the embodiment of the present application also provides a computer device. Please refer to Figure 10.
- Figure 10 is a schematic structural diagram of the computer device provided by the embodiment of the present application.
- the controller described in the corresponding embodiment of Figure 8 can be deployed on the computer device.
- the message forwarding device described in the embodiment corresponding to Figure 9 is used to implement various steps performed by the controller and/or the forwarding device in the embodiment corresponding to Figure 5.
- the computer equipment is implemented by one or more servers.
- the computer equipment may vary greatly due to different configurations or performance, and may include one or more central processing units (CPU) 422 (for example, one or one or more processors) and memory 432, one or more storage media 430 (eg, one or more mass storage devices) that stores applications 442 or data 444.
- CPU central processing units
- storage media 430 eg, one or more mass storage devices
- the memory 432 and the storage medium 430 may be short-term storage or persistent storage.
- the program stored in the storage medium 430 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the computer device.
- the central processor 422 may be configured to communicate with the storage medium 430 and execute a series of instruction operations in the storage medium 430 on the computer device 400 .
- the computer device may also include one or more power supplies 426, one or more wired or wireless network interfaces 450, one or more input and output interfaces 458, and/or, one or more operating systems 441, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM and more.
- An embodiment of the present application also provides a computer program product that, when run on a computer, causes the computer to perform the steps performed by the controller and/or the steps performed by the forwarding device in the method described in the embodiment shown in Figure 5. .
- Embodiments of the present application also provide a computer-readable storage medium.
- the computer-readable storage medium stores a program for performing signal processing. When it is run on a computer, it causes the computer to execute the embodiment shown in Figure 5. Steps performed by the controller and/or steps performed by the forwarding device in the described method.
- the image processing device provided by the embodiment of the present application may specifically be a chip.
- the chip may include a processing unit and a communication unit.
- the processing unit may be, for example, a processor.
- the communication unit may be, for example, an input/output interface, a pin or a circuit, etc. .
- the processing unit can execute computer execution instructions stored in the storage unit, so that the chip executes the method described in the embodiment shown in FIG. 5 .
- the storage unit is a storage unit within the chip, such as a register, cache, etc.
- the storage unit may also be a storage unit located outside the chip in the wireless access device, such as Read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (random access memory, RAM), etc.
- ROM Read-only memory
- RAM random access memory
- the device embodiments described above are only illustrative.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physically separate. Rather than being a physical unit, it can be located in one place, or it can be distributed across multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
- the connection relationship between modules indicates that there are communication connections between them, which can be specifically implemented as one or more communication buses or signal lines.
- the present application can be implemented by software plus necessary general hardware. Of course, it can also be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memories, Special components, etc. to achieve. In general, all functions performed by computer programs can be easily implemented with corresponding hardware. Moreover, the specific hardware structures used to implement the same function can also be diverse, such as analog circuits, digital circuits or special-purpose circuits. circuit etc. However, for this application, software program implementation is a better implementation in most cases. Based on this understanding, the technical solution of the present application can be embodied in the form of a software product in essence or that contributes to the existing technology.
- the computer software product is stored in a readable storage medium, such as a computer floppy disk. , U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., including several instructions to cause a computer device (which can be a personal computer, training device, or network device, etc.) to execute the steps described in various embodiments of this application. method.
- a computer device which can be a personal computer, training device, or network device, etc.
- the computer program product includes one or more computer instructions.
- the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, the computer instructions may be transferred from a website, computer, training device, or data
- the center transmits to another website site, computer, training equipment or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) means.
- wired such as coaxial cable, optical fiber, digital subscriber line (DSL)
- wireless such as infrared, wireless, microwave, etc.
- the computer-readable storage medium may be any available medium that a computer can store, or a data storage device such as a training device or a data center integrated with one or more available media.
- the available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (Solid State Disk, SSD)), etc.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本申请要求于2022年03月08日提交中国专利局、申请号为202210227513.0、发明名称为“一种下发路由表的方法及相关装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application submitted to the China Patent Office on March 8, 2022, with the application number 202210227513.0 and the invention title "A method of delivering routing tables and related devices", the entire content of which is incorporated by reference. in this application.
本申请实施例涉及通信技术领域,尤其涉及一种下发路由表的方法及相关装置。The embodiments of the present application relate to the field of communication technology, and in particular, to a method of delivering a routing table and related devices.
在数据通信网络中,由多台交换机、路由器(以下统称转发设备)组成了网络流量(network traffic)的转发网络,网络流量中的单个数据报文可以通过转发设备经过不同的路径被路由转发(routing)到目的网络设备(如一台计算机)。当大量的网络流量通过一个转发设备时,为了减少网络拥塞,降低报文的转发时延,转发设备使用了3层负载均衡(Layer 3 Load balance)技术。对于同一条流(flow)有多个转发路径时,具备3层负载均衡技术的转发设备选择将该流的全部或者部分报文转发给不同的路径,以实现不同路径上流量的均衡。In a data communication network, multiple switches and routers (hereinafter collectively referred to as forwarding devices) form a forwarding network for network traffic. A single data packet in network traffic can be routed and forwarded through different paths through the forwarding device ( routing) to the destination network device (such as a computer). When a large amount of network traffic passes through a forwarding device, in order to reduce network congestion and reduce packet forwarding delays, the forwarding device uses Layer 3 Load balance technology. When there are multiple forwarding paths for the same flow, the forwarding device equipped with Layer 3 load balancing technology chooses to forward all or part of the packets of the flow to different paths to achieve traffic balancing on different paths.
现有的基于网络质量测量的负载均衡技术中,每个转发设备都需要维护流分段(Flowlet)路由表和全路径质量表,其中,全路径质量表指示了当前3层负载均衡网络中所有转发路径的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等)。每个报文到达转发设备后,由该转发设备根据Flowlet路由表和全路径质量表来决定该报文的下一跳端口。In the existing load balancing technology based on network quality measurement, each forwarding device needs to maintain a flow segment (Flowlet) routing table and a full path quality table. Among them, the full path quality table indicates all the traffic in the current layer 3 load balancing network. The network quality status of the forwarding path (such as queuing status, interface rate, packet loss, delay or flow count, etc.). After each packet reaches the forwarding device, the forwarding device determines the next hop port of the packet based on the Flowlet routing table and the full path quality table.
由于全路径质量表需要每个转发设备实时测量当前网络中所有转发路径的网络质量,因此给每个转发设备带来了巨大的网络资源的开销,转发设备的负载过大,导致负载均衡的效果降低。Since the full path quality table requires each forwarding device to measure the network quality of all forwarding paths in the current network in real time, it brings a huge overhead of network resources to each forwarding device. The load of the forwarding device is too large, resulting in a load balancing effect. reduce.
发明内容Contents of the invention
本申请实施例提供了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。Embodiments of the present application provide a method and related devices for delivering routing tables to improve the effect of load balancing.
第一方面,本申请实施例提供了一种下发路由表的方法,控制器对网络中的各个转发设备管理,在初始阶段(即转发设备和控制器刚被部署到网络中且尚未接收到任何报文)控制器需要掌握网络的拓扑结构,而转发设备需要将初始化的Flowlet路由表上报给控制器,便于控制器后续基于网络中的所有转发设备的Flowlet路由表(即全局Flowlet路由表)来进行路由计算。换句话说,可以通过转发设备上报或者控制器发现的形式,控制器在初始化阶段获取网络的物理拓扑。本申请中,仅对网络流量中的大流来执行本申请的下发路由表的方法,即本申请中目标报文所属的流为大流。转发设备向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,示例性的,可以是时延信息、丢包信息或下一跳信息。In the first aspect, embodiments of the present application provide a method for delivering a routing table. The controller manages each forwarding device in the network. In the initial stage (that is, the forwarding device and the controller have just been deployed to the network and have not yet received the Any message) The controller needs to understand the topology of the network, and the forwarding device needs to report the initialized Flowlet routing table to the controller, so that the controller can subsequently use the Flowlet routing table of all forwarding devices in the network (i.e., the global Flowlet routing table) to perform route calculations. In other words, the controller can obtain the physical topology of the network during the initialization phase by forwarding device reports or controller discovery. In this application, the method of delivering the routing table in this application is only performed on large flows in the network traffic, that is, in this application, the flow to which the target message belongs is a large flow. The forwarding device sends network measurement information to the controller. The network measurement information includes flow measurement information for large flows. For example, it may be delay information, packet loss information, or next hop information.
在一些实施例中,在网络流量中,一条流是包含相同流标识(例如五元组或流标签等)的一组报文。大流是指在单位周期内的报文数量或流速超过阈值的流。在一些实施例中,一段时间内流中报文数量超过阈值的流中的一组报文被识别为大流。满足该大流条件的流可以认为是大流,也可以认为是一个大的突发(burst)。相应的不满足该大流条件的流可 以认为是一个小流,也可以认为是一个小的突发。大流也可以称为大象流(elephant flow),小流也可以称为老鼠流(mice flow)。而针对于大流的调度,可以对网络中的负载得到较为明显的改善,而小流由于报文数量较少,对于转发设备的负载的影响较小,则本申请中,转发设备在接收到来自小流的报文时,可以基于等价多路径路由(equal-cost multi-path routing,ECMP)机制来对其进行路由。因此,转发设备便不需要为小流保存相应的Flowlet表项,也不需要向控制器上报小流的Flowlet表项和流测量信息,从而进一步减少转发设备的网络开销,减少控制器所需要采集的Flowlet表项的数据量。In some embodiments, in network traffic, a flow is a group of packets containing the same flow identifier (such as a five-tuple or a flow label, etc.). A large flow refers to a flow in which the number of packets or the flow rate in a unit period exceeds the threshold. In some embodiments, a group of packets in a flow in which the number of packets in the flow exceeds a threshold within a period of time is identified as a large flow. A flow that satisfies the large flow condition can be considered a large flow or a large burst. The corresponding flows that do not meet the large flow conditions can It can be considered as a small flow, or it can be considered as a small burst. A large flow can also be called an elephant flow, and a small flow can also be called a mouse flow. Scheduling for large flows can significantly improve the load on the network, while small flows have less impact on the load of the forwarding device due to the small number of messages. In this application, the forwarding device receives When packets come from small flows, they can be routed based on the equal-cost multi-path routing (ECMP) mechanism. Therefore, the forwarding device does not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller. The amount of data in the Flowlet table item.
本申请实施例中所称的转发设备可以是一个具有IP报文转发功能的网络设备(例如交换机或路由器等)。上述转发设备实现的各个步骤也可以由网络设备中的部件实现,例如,可以由网络设备中的芯片系统实现。该芯片系统包括逻辑电路。该逻辑电路可以与输入/输出接口耦合,通过输入输出接口传输报文,以实现上述方法实施例中的各个步骤。该逻辑电路可以是现场编程门阵列(field programmable gate array,FPGA),可以是专用集成电路(application specific integrated circuit,ASIC),还可以是网络处理器(network processor,NP),还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片等。The forwarding device referred to in the embodiment of this application may be a network device (such as a switch or router, etc.) with an IP packet forwarding function. Each of the steps implemented by the forwarding device can also be implemented by components in the network device, for example, by a chip system in the network device. The chip system includes logic circuits. The logic circuit can be coupled with the input/output interface and transmit messages through the input/output interface to implement each step in the above method embodiment. The logic circuit can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a network processor (network processor, NP), or other possible Programmed logic devices, discrete gate or transistor logic devices, discrete hardware components, or other integrated chips, etc.
控制器需要维护全局Flowlet路由表以及全局网络测量表,其中,全局Flowlet路由表包括了各个转发设备其自身的Flowlet路由表,全局网络测量表则包括了各个转发设备的网络测量信息。The controller needs to maintain a global Flowlet routing table and a global network measurement table. The global Flowlet routing table includes the Flowlet routing table of each forwarding device, and the global network measurement table includes the network measurement information of each forwarding device.
控制器接收到转发设备的网络测量信息之后,便根据该网络测量信息,对全局网络测量表中该转发设备对应的表项进行更新。控制器根据全局Flowlet路由表以及更新后的全局网络测量表来进行路由计算。控制器通过上述路由计算流程生成路由决策,路由决策指示了转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,进一步的,还可以指示转发设备的Flowlet路由表中针对于目标报文的下一跳端口字段。Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。示例性的,当转发设备接收到目标报文的时间间隔未超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备接收到该目标报文的时间间隔已经超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。After receiving the network measurement information of the forwarding device, the controller updates the entry corresponding to the forwarding device in the global network measurement table based on the network measurement information. The controller performs routing calculations based on the global Flowlet routing table and the updated global network measurement table. The controller generates a routing decision through the above routing calculation process. The routing decision indicates the aging time threshold of the Flowlet entry in the Flowlet routing table of the forwarding device. Furthermore, it can also indicate the next step for the target packet in the Flowlet routing table of the forwarding device. One-hop port field. The aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid. For example, when the time interval between the forwarding device receiving the target packet does not exceed the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 1, so that the Flowlet entry is considered valid; when the forwarding device If the time interval for receiving the target packet exceeds the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 0, and the Flowlet entry is considered invalid.
需要说明的是,控制器可以为每个转发设备上的一个Flowlet表项或者一组Flowlet表项设置不同的时间阈值,从而使得上述Flowlet表项在对应的下一跳路由下拥有较好的负载均衡效果,避免发生拥塞。It should be noted that the controller can set different time thresholds for a Flowlet entry or a group of Flowlet entries on each forwarding device, so that the above Flowlet entries have a better load under the corresponding next-hop route. Balance effect to avoid congestion.
进一步的,控制器生成新的路由决策之后,更新全局Flowlet路由表中针对于该转发设备的Flowlet路由表。更新后的全局Flowlet路由表,便可以继续用于后续的路由计算,从而生成路由决策。Further, after the controller generates a new routing decision, it updates the Flowlet routing table for the forwarding device in the global Flowlet routing table. The updated global Flowlet routing table can continue to be used in subsequent routing calculations to generate routing decisions.
转发设备接收到来自控制器的路由决策之后,便根据路由决策,对该转发设备本地所保存的Flowlet路由表中的Flowlet表项进行更新,具体包括更新该Flowlet表项老化的时间阈值或该Flowlet表项中的下一跳端口字段。当转发设备接收到目标报文后,便可以 根据更新后的Flowlet表项中所指示的下一跳端口来进行报文转发。After the forwarding device receives the routing decision from the controller, it updates the Flowlet entry in the Flowlet routing table locally saved by the forwarding device based on the routing decision, specifically including updating the aging time threshold of the Flowlet entry or the Flowlet The next hop port field in the entry. After the forwarding device receives the target message, it can The packet is forwarded based on the next hop port indicated in the updated Flowlet entry.
本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。In this application, the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device. The forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller. The network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
基于第一方面,一种可选的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。具体的,转发设备中,Flowlet路由表中的每个Flowlet表项主要包括以下字段:标识字段、有效信息字段以及下一跳端口字段。Flowlet表项中的标识字段包括标识。如果目标报文的流身份信息经过哈希计算后,所得到的标识与一个Flowlet表项中的标识字段包括的标识相同,那么可以认为目标报文与该Flowlet表项相匹配。在此情况下,可以进一步根据匹配的Flowlet表项中的有效信息字段以及下一跳端口字段确定如何处理该报文。而Flowlet表项中的有效信息字段,则用于指示该Flowlet表项目前是否有效,从而确定是否能够根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发匹配的报文。而Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。因此,控制器除了向转发设备下发Flowlet表项老化的时间阈值之外,还可以向转发设备下发针对于目标报文的下一跳端口字段,从而提高了转发设备的Flowlet表项的更新效率,也提高了报文转发的效率。Based on the first aspect, in an optional implementation manner, the routing decision further includes a next-hop port field for the target packet in the Flowlet entry. Specifically, in the forwarding device, each Flowlet entry in the Flowlet routing table mainly includes the following fields: identification field, valid information field, and next hop port field. The identification field in the Flowlet entry includes identification. If the flow identity information of the target packet is hashed and the obtained ID is the same as the ID included in the ID field of a Flowlet entry, then the target packet can be considered to match the Flowlet entry. In this case, you can further determine how to process the packet based on the valid information field and next hop port field in the matching Flowlet entry. The valid information field in the Flowlet entry is used to indicate whether the Flowlet entry is currently valid, thereby determining whether matching packets can be forwarded based on the next hop port recorded in the next hop port field in the Flowlet entry. The aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid. Therefore, in addition to delivering the aging time threshold of the Flowlet entry to the forwarding device, the controller can also deliver the next-hop port field for the target packet to the forwarding device, thus improving the update of the Flowlet entry of the forwarding device. Efficiency also improves the efficiency of message forwarding.
基于第一方面,一种可选的实施方式中,并不限定转发设备的数量,即上述转发设备可以包括第一转发设备,也还可以包括第二转发设备或者其他转发设备。因此,向控制器发送网络测量信息的转发设备的数量有多个,或者,也可以只有一个。若控制器接收到一个转发设备(即本申请中的第一转发设备)的网络测量信息,则根据该转发设备(第一转发设备)的网络测量信息生成路由决策,并下发给到该转发设备(第一转发设备);若控制器接收到多个转发设备(例如整个网络中的全部转发设备或部分转发设备)的多个网络测量信息,其中,每个转发设备对应一个网络测量信息,则控制器根据接收到的多个网络测量信息一起进行路由计算,从而生成路由决策,并下发给到其中的每个转发设备。在一些可能的实施方式中,控制器根据来自第二转发设备和/或第一转发设备的网络测量信息生成路由决策,并将路由决策发送给第二转发设备和/或第一转发设备。本申请中,控制器可以根据来自多个转发设备的多个网络测量信息进行路由计算,生成对应每个转发设备的路由决策,提高了路由计算的灵活性,从而更加适用于网络设备较多的、复杂的网络拓扑结构。Based on the first aspect, in an optional implementation, the number of forwarding devices is not limited, that is, the forwarding device may include a first forwarding device, a second forwarding device, or other forwarding devices. Therefore, there may be multiple forwarding devices that send network measurement information to the controller, or there may be only one. If the controller receives the network measurement information of a forwarding device (i.e., the first forwarding device in this application), it generates a routing decision based on the network measurement information of the forwarding device (the first forwarding device) and issues it to the forwarding device. device (first forwarding device); if the controller receives multiple network measurement information from multiple forwarding devices (such as all forwarding devices or part of the forwarding devices in the entire network), where each forwarding device corresponds to one network measurement information, The controller then performs routing calculations based on the received multiple network measurement information, thereby generating routing decisions and issuing them to each forwarding device. In some possible implementations, the controller generates a routing decision based on network measurement information from the second forwarding device and/or the first forwarding device, and sends the routing decision to the second forwarding device and/or the first forwarding device. In this application, the controller can perform routing calculations based on multiple network measurement information from multiple forwarding devices and generate routing decisions corresponding to each forwarding device, which improves the flexibility of routing calculations and is more suitable for networks with many network devices. , complex network topology.
基于第一方面,在一些可能的实施方式中,转发设备在转发报文的过程中,当转发设备的端口发生网络拥塞时,转发设备才需要获取自身设备的网络测量信息并向控制器上报,其中,网络测量信息还包括转发设备中发生网络拥塞的端口信息,用于反映该转发设备自身的网络状态或该转发设备的下一跳端口的网络质量等等。示例性的,网络测量信息具体的内容形式包括但不限于:发生网络拥塞的端口流量、队列信息、或其他反映网络质量的 信息中的一种或多种,具体此处不做限定。而对于那些未发生网络拥塞的转发设备,则无需向控制器上报其网络测量信息,该转发设备根据本地的Flowlet路由表来进行报文转发即可,从而减少转发设备的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销。进一步的,转发设备所上报的网络测量信息,除了包括该转发设备中发生网络拥塞的端口信息之外,还可以包括该转发设备中未发生网络拥塞的端口信息,从而便于控制器能够更加全面地掌握该转发设备的网络质量,从而进行路由计算。Based on the first aspect, in some possible implementations, when the forwarding device is forwarding messages and network congestion occurs on the port of the forwarding device, the forwarding device needs to obtain the network measurement information of its own device and report it to the controller. The network measurement information also includes port information on the forwarding device where network congestion occurs, which is used to reflect the network status of the forwarding device itself or the network quality of the next-hop port of the forwarding device, and so on. Exemplary, specific content forms of network measurement information include but are not limited to: port traffic where network congestion occurs, queue information, or other information reflecting network quality. One or more types of information, the specifics are not limited here. For those forwarding devices that do not experience network congestion, there is no need to report their network measurement information to the controller. The forwarding device can forward packets according to the local Flowlet routing table, thereby reducing the network overhead of the forwarding device and reducing the time required by the controller. The amount of network measurement information that needs to be collected reduces the computing overhead required by the controller to generate routing decisions. Furthermore, the network measurement information reported by the forwarding device, in addition to the information of the ports in the forwarding device where network congestion occurs, may also include the information of the ports in the forwarding device where network congestion does not occur, so that the controller can more comprehensively Understand the network quality of the forwarding device to perform routing calculations.
第二方面,本申请实施例提供了一种更新路由表的方法,包括:In the second aspect, embodiments of the present application provide a method for updating a routing table, including:
转发设备向控制器发送网络测量信息,所述网络测量信息包括针对于大流的流测量信息,所述大流为在单位周期内的报文数量或者流速超过阈值的流;The forwarding device sends network measurement information to the controller, where the network measurement information includes flow measurement information for large flows, where the large flow is a flow whose number of packets or flow rate exceeds a threshold in a unit period;
所述转发设备接收来自所述控制器的路由决策,所述路由决策是由所述控制器根据所述网络测量信息生成的;The forwarding device receives a routing decision from the controller, where the routing decision is generated by the controller based on the network measurement information;
所述转发设备根据所述路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,所述Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,所述目标报文的流身份信息与所述Flowlet表项相匹配。The forwarding device updates the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision. The Flowlet entry is used to indicate the next hop port of the target message in the large flow, where, The flow identity information of the target packet matches the Flowlet entry.
基于第二方面,一种可选的实施方式中,所述方法还包括:所述转发设备根据所述路由决策更新所述Flowlet表项中的下一跳端口字段。Based on the second aspect, in an optional implementation, the method further includes: the forwarding device updating the next hop port field in the Flowlet entry according to the routing decision.
基于第二方面,一种可选的实施方式中,所述路由决策包括所述Flowlet表项中针对于所述目标报文的多个下一跳端口字段,所述方法还包括:所述转发设备根据所述多个下一跳端口字段,确定用于转发所述目标报文的目标下一跳端口。Based on the second aspect, in an optional implementation, the routing decision includes multiple next-hop port fields in the Flowlet entry for the target message, and the method further includes: forwarding The device determines the target next hop port used to forward the target message according to the multiple next hop port fields.
基于第二方面,一种可选的实施方式中,所述转发设备向控制器发送网络测量信息,包括:响应于所述转发设备的端口发生网络拥塞,所述转发设备向所述控制器发送所述网络测量信息,所述网络测量信息还包括发生网络拥塞的端口信息。Based on the second aspect, in an optional implementation manner, the forwarding device sends network measurement information to the controller, including: in response to network congestion occurring on a port of the forwarding device, the forwarding device sends The network measurement information further includes port information where network congestion occurs.
基于第二方面,一种可选的实施方式中,所述目标报文所属的流为大流,所述大流为在单位周期内的报文数量或者流速超过阈值的流。Based on the second aspect, in an optional implementation manner, the flow to which the target packet belongs is a large flow, and the large flow is a flow whose number of packets or flow rate in a unit period exceeds a threshold.
基于第二方面,一种可选的实施方式中,目标报文所属的流为大流,大流为在单位周期内的报文数量超过阈值的流。Based on the second aspect, in an optional implementation manner, the flow to which the target packet belongs is a large flow, and a large flow is a flow in which the number of packets in a unit period exceeds a threshold.
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。The information interaction and execution process of the embodiment shown in this aspect are based on the same concept as the embodiment shown in the first aspect. Therefore, for a description of the beneficial effects shown in this aspect, please refer to the above-mentioned first aspect. The details will not be described here.
第三方面,本申请实施例提供了一种控制器,包括:In a third aspect, embodiments of the present application provide a controller, including:
收发单元,用于接收来自转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;The transceiver unit is used to receive network measurement information from the forwarding device. The network measurement information includes flow measurement information for large flows. A large flow is a flow in which the number of packets or the flow rate in a unit period exceeds a threshold;
处理单元,用于根据网络测量信息生成路由决策;a processing unit for generating routing decisions based on network measurement information;
收发单元,还用于向转发设备发送路由决策,路由决策包括转发设备中流分段Flowlet 路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。The transceiver unit is also used to send routing decisions to the forwarding device. The routing decisions include flow segmentation Flowlet in the forwarding device. The aging time threshold of the Flowlet entry in the routing table. The Flowlet entry is used to indicate the next hop port of the target packet in the large flow. The flow identity information of the target packet matches the Flowlet entry.
基于第三方面,一种可选的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。Based on the third aspect, in an optional implementation manner, the routing decision further includes a next-hop port field for the target packet in the Flowlet entry.
基于第三方面,一种可选的实施方式中,转发设备的数量为多个,处理单元,具体用于:Based on the third aspect, in an optional implementation manner, the number of forwarding devices is multiple, and the processing unit is specifically used for:
根据多个转发设备的网络测量信息生成路由决策。Generate routing decisions based on network measurement information from multiple forwarding devices.
基于第三方面,一种可选的实施方式中,网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,网络测量信息还包括发生网络拥塞的端口信息。Based on the third aspect, in an optional implementation manner, the network measurement information is sent by the forwarding device where the port where network congestion occurs is located, and the network measurement information also includes information about the port where network congestion occurs.
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。The information interaction and execution process of the embodiment shown in this aspect are based on the same concept as the embodiment shown in the first aspect. Therefore, for a description of the beneficial effects shown in this aspect, please refer to the above-mentioned first aspect. The details will not be described here.
第四方面,本申请实施例提供了一种更新路由表的装置,包括:In the fourth aspect, embodiments of the present application provide a device for updating a routing table, including:
收发单元,用于向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;The transceiver unit is used to send network measurement information to the controller. The network measurement information includes flow measurement information for large flows. A large flow is a flow whose number of packets or flow rate exceeds a threshold in a unit period;
收发单元,还用于接收来自控制器的路由决策,路由决策是由控制器根据网络测量信息生成的;The transceiver unit is also used to receive routing decisions from the controller. The routing decisions are generated by the controller based on network measurement information;
处理单元,用于根据路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。The processing unit is used to update the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision. The Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the target packet's The flow identity information matches the Flowlet entry.
基于第四方面,一种可选的实施方式中,处理单元,还用于:Based on the fourth aspect, in an optional implementation, the processing unit is also used to:
根据路由决策更新Flowlet表项中的下一跳端口字段。Update the next hop port field in the Flowlet entry based on the routing decision.
基于第四方面,一种可选的实施方式中,路由决策包括Flowlet表项中针对于目标报文的多个下一跳端口字段,处理单元,还用于:Based on the fourth aspect, in an optional implementation, the routing decision includes multiple next-hop port fields for the target packet in the Flowlet entry, and the processing unit is also used to:
根据多个下一跳端口字段,确定用于转发目标报文的目标下一跳端口。Determine the target next-hop port used to forward the target packet based on multiple next-hop port fields.
基于第四方面,一种可选的实施方式中,收发单元,具体用于:Based on the fourth aspect, in an optional implementation, the transceiver unit is specifically used for:
当报文转发装置的端口发生网络拥塞时,向控制器发送网络测量信息,网络测量信息还包括发生网络拥塞的端口信息。When network congestion occurs on a port of the packet forwarding device, network measurement information is sent to the controller, and the network measurement information also includes information on the port where network congestion occurs.
本方面所示实施例的信息交互和执行过程等内容,与第一方面所示的实施例基于同一构思,因此,本方面所示的有益效果的说明,请详见上述第一方面所示,具体此处不做赘述。The information interaction and execution process of the embodiment shown in this aspect are based on the same concept as the embodiment shown in the first aspect. Therefore, for a description of the beneficial effects shown in this aspect, please refer to the above-mentioned first aspect. The details will not be described here.
第五方面,本发明实施例提供了一种计算机设备,包括通信接口及处理器;所述通信接口用于在所述处理器的控制下与其他设备进行通信所述处理器用于执行所述计算机程序或指令,以使得所述计算机设备执行上述任一方面所述的方法。 In a fifth aspect, embodiments of the present invention provide a computer device, including a communication interface and a processor; the communication interface is used to communicate with other devices under the control of the processor; the processor is used to execute the computer Programs or instructions to cause the computer device to execute the method described in any of the above aspects.
第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行上述任一方面所述的下发路由表的方法。In a sixth aspect, embodiments of the present application provide a computer-readable storage medium that stores a computer program that, when run on a computer, causes the computer to execute the following steps described in any of the above aspects. Method to distribute routing table.
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机程序或指令,当其在计算机上运行时,使得计算机执行上述任一方面所述的下发路由表的方法。In the seventh aspect, embodiments of the present application provide a computer program product or computer program. The computer program product or computer program includes a computer program or instructions that, when run on a computer, cause the computer to execute any of the above aspects. Method for delivering routing tables.
第八方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,用于实现上述各个方面中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。In an eighth aspect, embodiments of the present application provide a chip system. The chip system includes a processor for implementing the functions involved in the above aspects, for example, sending or processing the data and/or information involved in the above methods. . In a possible design, the chip system further includes a memory, and the memory is used to store necessary program instructions and data for the server or communication device. The chip system may be composed of chips, or may include chips and other discrete devices.
从以上技术方案可以看出,本申请实施例具有以下优点:It can be seen from the above technical solutions that the embodiments of the present application have the following advantages:
本申请公开了一种下发路由表的方法及相关装置,控制器接收来自第一转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;控制器根据网络测量信息生成路由决策;控制器向第一转发设备发送路由决策,路由决策包括第一转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。This application discloses a method and related devices for delivering a routing table. The controller receives network measurement information from the first forwarding device. The network measurement information includes flow measurement information for large flows. A large flow is a flow within a unit period. The number of packets or the flow rate exceeds the threshold; the controller generates a routing decision based on the network measurement information; the controller sends the routing decision to the first forwarding device, and the routing decision includes the aging of the Flowlet entries in the flow segmentation Flowlet routing table in the first forwarding device. Time threshold, Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the flow identity information of the target packet matches the Flowlet entry. In this application, the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device. The forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller. The network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。In order to explain the embodiments of the present application or the technical solutions in the prior art more clearly, the drawings needed to be used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings in the following description are only This is an embodiment of the present application. For those of ordinary skill in the art, other drawings can be obtained based on the provided drawings without exerting creative efforts.
图1为基于Flowlet路由表的报文转发场景示意图;Figure 1 is a schematic diagram of a message forwarding scenario based on Flowlet routing table;
图2为基于网络质量测量的负载均衡网络的架构示意图;Figure 2 is a schematic diagram of the architecture of a load balancing network based on network quality measurement;
图3为转发设备根据全路径质量表来进行路由决策的示意图;Figure 3 is a schematic diagram of a forwarding device making routing decisions based on the full path quality table;
图4为本申请实施例中下发路由表的方法的一种应用场景示意图;Figure 4 is a schematic diagram of an application scenario of the method of delivering a routing table in the embodiment of the present application;
图5为本申请实施例中下发路由表的方法的流程示意图;Figure 5 is a schematic flowchart of a method for delivering a routing table in an embodiment of the present application;
图6为本申请中基于负载均衡算法的路由计算示意图;Figure 6 is a schematic diagram of routing calculation based on the load balancing algorithm in this application;
图7为本申请实施例中控制器下发下一跳端口字段和时间阈值的场景示意图;Figure 7 is a schematic diagram of a scenario in which the controller delivers the next hop port field and time threshold in this embodiment of the present application;
图8为本申请实施例提供的一种控制器的结构示意图;Figure 8 is a schematic structural diagram of a controller provided by an embodiment of the present application;
图9为本申请实施例提供的更新路由表的装置的结构示意图;Figure 9 is a schematic structural diagram of a device for updating a routing table provided by an embodiment of the present application;
图10为本申请实施例提供的计算机设备一种结构示意图。 Figure 10 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
本申请实施例提供了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。Embodiments of the present application provide a method and related devices for delivering routing tables to improve the effect of load balancing.
下面结合本发明实施例中的附图对本发明实施例进行描述。本发明的实施方式部分使用的术语仅用于对本发明的具体实施例进行解释,而非旨在限定本发明。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。The embodiments of the present invention will be described below with reference to the drawings in the embodiments of the present invention. The terms used in the embodiments of the present invention are only used to explain specific embodiments of the present invention and are not intended to limit the present invention. Persons of ordinary skill in the art know that with the development of technology and the emergence of new scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。In this application, "at least one" refers to one or more, and "plurality" refers to two or more. "And/or" describes the relationship between associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural. The character "/" generally indicates that the related objects are in an "or" relationship. "At least one of the following" or similar expressions thereof refers to any combination of these items, including any combination of a single item (items) or a plurality of items (items). For example, at least one of a, b, or c can mean: a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, c can be single or multiple .
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。The terms "first", "second", "third", "fourth", etc. (if present) in the description and claims of the present invention and the above-mentioned drawings are used to distinguish similar objects without necessarily using Used to describe a specific order or sequence. It is to be understood that the figures so used are interchangeable under appropriate circumstances so that the embodiments of the invention described herein, for example, can be practiced in sequences other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, e.g., a process, method, system, product, or apparatus that encompasses a series of steps or units and need not be limited to those explicitly listed. Those steps or elements may instead include other steps or elements not expressly listed or inherent to the process, method, product or apparatus.
在数据通信网络中,由多台交换机、路由器(以下统称转发设备)组成了网络流量(network traffic)的转发网络,网络流量中的单个数据报文可以通过转发设备经过不同的路径被路由转发(routing)到目的网络设备(如一台计算机)。当大量的网络流量通过一个转发设备时,为了减少网络拥塞,降低报文的转发时延,转发设备使用了3层负载均衡(Layer 3Load balance)技术。对于同一条流(flow)有多个转发路径时,具备3层负载均衡技术的转发设备选择将该流的全部或者部分报文转发给不同的路径,以实现不同路径上流量的均衡。In a data communication network, multiple switches and routers (hereinafter collectively referred to as forwarding devices) form a forwarding network for network traffic. A single data packet in network traffic can be routed and forwarded through different paths through the forwarding device ( routing) to the destination network device (such as a computer). When a large amount of network traffic passes through a forwarding device, in order to reduce network congestion and reduce packet forwarding delays, the forwarding device uses Layer 3Load balance technology. When there are multiple forwarding paths for the same flow, the forwarding device equipped with Layer 3 load balancing technology chooses to forward all or part of the packets of the flow to different paths to achieve traffic balancing on different paths.
传统的3层负载均衡技术使用等价多路径路由(equal-cost multi-path routing,ECMP)。使用ECMP的转发设备会保存ECMP路由表。转发设备在接收到数据报文后,根据数据报文的流身份信息计算出一个索引(index),然后查询ECMP路由表中与该索引匹配的表项,根据该表项中包括的下一跳端口转发该数据报文。在实际应用中,网络中各路径的带宽、时延和可靠性等不一样,而ECMP机制把各路径的开销都视为相同,不能很好地利用带宽,尤其在路径间差异大时,效果会非常不理想。例如,路由器两个出口,两路径,一个带宽是100M,一个是2M,如果部署是ECMP,则网络总带宽只能达到4M的利用率。Traditional Layer 3 load balancing technology uses equal-cost multi-path routing (ECMP). Forwarding devices that use ECMP will save ECMP routing tables. After receiving the data packet, the forwarding device calculates an index (index) based on the flow identity information of the data packet, and then queries the ECMP routing table for an entry matching the index. Based on the next hop included in the entry, the forwarding device The port forwards the data packet. In practical applications, the bandwidth, delay and reliability of each path in the network are different, and the ECMP mechanism treats the cost of each path as the same and cannot make good use of bandwidth, especially when the differences between paths are large. It would be very unsatisfactory. For example, if the router has two exits and two paths, one has a bandwidth of 100M and the other has a bandwidth of 2M. If ECMP is deployed, the total network bandwidth can only achieve a utilization rate of 4M.
针对上述基于ECMP技术做负载均衡的显著缺点,基于流分段(Flowlet)的负载均衡技术被提出。使用该技术的转发设备的负载均衡系统将属于一条流的所有报文根据两两报文之间的间隔时长切分成一到多个Flowlet。转发设备中有一个Flowlet路由表,每一个 表项指明了下一跳的路由。请参阅图1,图1为基于Flowlet路由表的报文转发场景示意图。如图1所示,转发设备根据查询Flowlet路由表来为报文选择转发路径。In view of the above-mentioned significant shortcomings of load balancing based on ECMP technology, load balancing technology based on flow segmentation (Flowlet) was proposed. The load balancing system of the forwarding device using this technology divides all packets belonging to a flow into one or multiple Flowlets based on the interval between two packets. There is a Flowlet routing table in the forwarding device, and each The table entry specifies the next hop route. Please refer to Figure 1, which is a schematic diagram of a packet forwarding scenario based on the Flowlet routing table. As shown in Figure 1, the forwarding device selects a forwarding path for the packet based on querying the Flowlet routing table.
现有的基于网络质量测量的负载均衡系统中,每个转发设备都需要维护Flowlet路由表和全路径质量表,其中,全路径质量表指示了当前3层负载均衡网络中所有转发路径的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等)。报文到达转发设备时,由该转发设备根据Flowlet路由表和全路径质量表来决定该报文的下一跳端口。In the existing load balancing system based on network quality measurement, each forwarding device needs to maintain a Flowlet routing table and a full path quality table. Among them, the full path quality table indicates the network quality of all forwarding paths in the current layer 3 load balancing network. Status (such as queuing status, interface rate, packet loss, delay or flow count, etc.). When a packet reaches the forwarding device, the forwarding device determines the next hop port of the packet based on the Flowlet routing table and full path quality table.
请参阅图2,图2为基于网络质量测量的负载均衡网络的架构示意图。如图2所示,负载均衡网络包括了多个转发设备,为了实现负载均衡,每个转发设备都需要维护Flowlet路由表和全路径质量表,转发设备通过维护全路径质量表,来获取所有转发路径的实时的网络质量状态(例如排队情况、接口速率、丢包情况、时延或流计数等),从而基于每条转发路径的质量来进行路由决策。图2中,报文到达转发设备1的入端口时,转发设备1根据Flowlet路由表和全路径质量表为其选择不同的出端口,从而将该报文转发到不同的下一跳设备(转发设备2或转发设备3),使得该报文最终经过网络的不同路径到达目的端设备。Please refer to Figure 2, which is a schematic diagram of the architecture of a load balancing network based on network quality measurement. As shown in Figure 2, the load balancing network includes multiple forwarding devices. In order to achieve load balancing, each forwarding device needs to maintain the Flowlet routing table and the full path quality table. The forwarding device obtains all forwarding by maintaining the full path quality table. Real-time network quality status of the path (such as queuing status, interface rate, packet loss, delay or flow count, etc.), so as to make routing decisions based on the quality of each forwarding path. In Figure 2, when a packet reaches the ingress port of forwarding device 1, forwarding device 1 selects different egress ports for it based on the Flowlet routing table and full path quality table, thereby forwarding the packet to different next-hop devices (forwarding device 1). Device 2 or forwarding device 3), so that the packet finally reaches the destination device through different paths in the network.
具体的,每个转发设备中,存储有Flowlet路由表和全路径质量表,其中,全路径质量表需要根据实时的网络质量状态来进行维护,以便转发设备选择网络质量状态较优的转发路径来进行转发报文。下面以图2中的转发设备1为例,介绍报文经过转发设备1后的处理流程。请参阅图3,图3为转发设备根据全路径质量表来进行路由决策的示意图。如图3所示,转发设备1中存储有Flowlet路由表和全路径质量表。转发设备1接收到报文后,通过对报文的流身份信息进行哈希(hash)运算得到该报文的标识。转发设备1使用该标识来检索Flowlet路由表中的Flowlet表项,如果该标识能够与Flowlet路由表中的某个Flowlet表项进行匹配,则便可以根据匹配到的Flowlet表项所指示的下一跳端口来执行该报文的转发。Specifically, each forwarding device stores a Flowlet routing table and a full path quality table. Among them, the full path quality table needs to be maintained based on the real-time network quality status so that the forwarding device can select the forwarding path with better network quality status. Forward the message. The following takes forwarding device 1 in Figure 2 as an example to introduce the processing flow of packets after they pass through forwarding device 1. Please refer to Figure 3. Figure 3 is a schematic diagram of a forwarding device making routing decisions based on the full path quality table. As shown in Figure 3, forwarding device 1 stores a Flowlet routing table and a full path quality table. After receiving the message, the forwarding device 1 obtains the identifier of the message by performing a hash operation on the flow identity information of the message. Forwarding device 1 uses this identifier to retrieve the Flowlet entry in the Flowlet routing table. If the identifier can match a certain Flowlet entry in the Flowlet routing table, the next destination indicated by the matched Flowlet entry can be used. Hop ports to forward the packet.
如图3所示,Flowlet路由表中的Flowlet表项包括了有效位字段,从而指示该Flowlet表项是否有效。转发设备1维护一个定时器,该定时器可以设置一个时间阈值T。时间阈值T是决定两个报文是否属于同一个Flowlet的最小时间间隔。而Flowlet表项中的老化标记字段的值根据两个报文处理时间间隔是否超过时间阈值T来确定。当转发设备1接收到该报文的时间间隔未超出时间阈值T,则将与该报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备1接收到该报文的时间间隔已经超出时间阈值T,则将与该报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。As shown in Figure 3, the Flowlet entry in the Flowlet routing table includes a valid bit field to indicate whether the Flowlet entry is valid. Forwarding device 1 maintains a timer, which can set a time threshold T. The time threshold T is the minimum time interval to determine whether two messages belong to the same Flowlet. The value of the aging flag field in the Flowlet entry is determined based on whether the time interval between two packet processing exceeds the time threshold T. When the time interval between forwarding device 1 receiving the message does not exceed the time threshold T, the aging flag of the Flowlet entry matching the message is set to 1, thus considering the Flowlet entry to be valid; when forwarding device 1 receives the If the time interval between packets has exceeded the time threshold T, the aging flag of the Flowlet entry matching the packet is set to 0, and the Flowlet entry is considered invalid.
当转发设备1接收到该报文时,若所匹配到的Flowlet表项显示有效,则转发设备1可以根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发所匹配到的报文;若所匹配到的Flowlet表项显示无效,则该Flowlet表项不可以作为用于处理与该Flowlet表项匹配的报文的路由表项。在此情况下,表明该路由表项记录的是上一个Flowlet的下一跳记录,转发设备1将本次接收到的报文作为一个新的Flowlet的第一个报文。此时,为了实现负载均衡,需要在全路径质量表中查找通往该报文的目的设备的网络质量最好(或较好的)的出端口,来作为该Flowlet表项中的下一跳端口字段的新值,并将新的Flowlet 表项的有效位字段设置为1,从而根据该Flowlet表项中新的下一跳端口字段来转发该报文。When forwarding device 1 receives the message, if the matched Flowlet entry is shown to be valid, forwarding device 1 can forward the matched message based on the next hop port recorded in the next hop port field in the Flowlet entry. packet; if the matched Flowlet entry is invalid, the Flowlet entry cannot be used as a routing entry for processing packets matching the Flowlet entry. In this case, it indicates that the routing table entry records the next hop record of the previous Flowlet, and forwarding device 1 regards the message received this time as the first message of a new Flowlet. At this time, in order to achieve load balancing, it is necessary to find the egress port with the best (or better) network quality leading to the destination device of the packet in the full path quality table as the next hop in the Flowlet entry. The new value of the port field and the new Flowlet The valid bit field of the entry is set to 1, so that the packet is forwarded based on the new next-hop port field in the Flowlet entry.
由上可知,在转发设备启用负载均衡算法时,需要通过全路径质量表来查询所有转发路径的网路质量。而由于各个路径的网络质量都是实时变化的,因此也需要转发设备实时地更新维护全路径质量表。具体转发设备更新维护全路径质量表的过程如下:It can be seen from the above that when the load balancing algorithm is enabled on the forwarding device, the network quality of all forwarding paths needs to be queried through the full path quality table. Since the network quality of each path changes in real time, the forwarding device also needs to update and maintain the full path quality table in real time. The specific process for the forwarding device to update and maintain the full path quality table is as follows:
1.根据单个转发设备的网络测量,发现该转发设备到邻居转发设备的转发路径的网络测量信息;或者,根据一条流经过转发设备时的设备状态,更新该转发设备自身的网络测量信息。1. Based on the network measurement of a single forwarding device, discover the network measurement information of the forwarding path from the forwarding device to the neighbor forwarding device; or, based on the device status when a flow passes through the forwarding device, update the network measurement information of the forwarding device itself.
2.将网络测量信息跟随报文的转发一起传递到目标设备,目标设备将整个路径上的网络质量计算后沿路返回给相应的转发设备。2. The network measurement information is transmitted to the target device along with the packet forwarding. The target device calculates the network quality along the entire path and returns it to the corresponding forwarding device along the path.
3.所有转发设备在收到网络测量信息的反馈后,更新本地的全路径质量表。3. After receiving feedback from the network measurement information, all forwarding devices update the local full path quality table.
由于全路径质量表需要每个转发设备实时测量当前网络中所有转发路径的网络质量,因此给每个转发设备带来了巨大的网络资源的开销,转发设备的负载过大,导致负载均衡的效果降低。另一方面,过于繁琐、开销巨大的转发流程,其适用场景也受限,难以支撑起大规模的网络拓扑。Since the full path quality table requires each forwarding device to measure the network quality of all forwarding paths in the current network in real time, it brings a huge overhead of network resources to each forwarding device. The load of the forwarding device is too large, resulting in a load balancing effect. reduce. On the other hand, the forwarding process that is too cumbersome and expensive has limited applicable scenarios, making it difficult to support large-scale network topologies.
有鉴于此,本申请公开了一种下发路由表的方法及相关装置,用于提高负载均衡的效果。本申请的下发路由表的方法中,在整个负载均衡网络中部署一个或多个控制器。请参阅图4,图4为本申请实施例中下发路由表的方法的一种应用场景示意图。如图4所示,控制器接收来自各个转发设备(例如图4中的转发设备1、转发设备2或转发设备3)的针对于发生网络拥塞的端口的网络测量信息,然后根据网络测量信息生成路由决策并下发给各个转发设备,其中,该路由决策包括转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。各个转发设备根据接收到的路由策略进行报文转发。In view of this, this application discloses a method and related device for delivering a routing table to improve the load balancing effect. In the method of delivering routing tables in this application, one or more controllers are deployed in the entire load balancing network. Please refer to Figure 4. Figure 4 is a schematic diagram of an application scenario of the method of delivering a routing table in an embodiment of the present application. As shown in Figure 4, the controller receives network measurement information from each forwarding device (such as forwarding device 1, forwarding device 2 or forwarding device 3 in Figure 4) for the port where network congestion occurs, and then generates a The routing decision is sent to each forwarding device. The routing decision includes the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table of the forwarding device. The Flowlet entry is used to indicate the next hop of the target packet in the large flow. port, where the flow identity information of the target packet matches the Flowlet entry. Each forwarding device forwards packets according to the received routing policy.
接下来,对上述下发路由表的方法的流程进行介绍。请参阅图5,图5为本申请实施例中下发路由表的方法的流程示意图,如图5所示,本申请实施例中下发路由表的方法包括:Next, the process of the above method of delivering routing tables is introduced. Please refer to Figure 5. Figure 5 is a schematic flow chart of a method of delivering a routing table in an embodiment of the present application. As shown in Figure 5, the method of delivering a routing table in an embodiment of the present application includes:
101.转发设备向控制器发送网络测量信息。101. The forwarding device sends network measurement information to the controller.
网络中的转发设备具备基本的遥测(Telemetry)能力,在转发设备上可以实时采集特定流量的时延流大小或丢包信息等。遥测(Telemetry)技术,一般是指从物理网元或者虚拟网元上远程实时高速采集数据,实现对网络实时、高速和更精细的信息采集技术。相比于传统的网络信息采集技术,如简单网络管理协议(simple network management protocol,SNMP),Telemetry通过推(push)模式,主动向作为采集器的控制器推送数据信息,提供更实时更高速更精确的网络信息采集功能。The forwarding device in the network has basic telemetry capabilities. The forwarding device can collect the delay flow size or packet loss information of specific traffic in real time. Telemetry technology generally refers to the remote real-time high-speed collection of data from physical network elements or virtual network elements to achieve real-time, high-speed and more sophisticated information collection technology for the network. Compared with traditional network information collection technologies, such as simple network management protocol (SNMP), Telemetry actively pushes data information to the controller as a collector through push mode, providing more real-time, faster and more accurate information. Accurate network information collection function.
控制器对网络中的各个转发设备管理,在初始阶段(即转发设备和控制器刚被部署到网络中且尚未接收到任何报文)控制器需要掌握网络的拓扑结构,而转发设备需要将初始 化的Flowlet路由表上报给控制器,便于控制器后续基于网络中的所有转发设备的Flowlet路由表(即全局Flowlet路由表)来进行路由计算。换句话说,可以通过转发设备上报或者控制器发现的形式,控制器在初始化阶段获取网络的物理拓扑。本申请中,仅对网络流量中的大流来执行本申请的下发路由表的方法,即本申请中目标报文所属的流为大流。转发设备向控制器发送网络测量信息,网络测量信息包括针对于大流的流测量信息,示例性的,可以是时延信息、丢包信息或下一跳信息。The controller manages each forwarding device in the network. In the initial stage (that is, the forwarding device and the controller have just been deployed to the network and have not yet received any messages) the controller needs to master the topology of the network, and the forwarding device needs to initialize The optimized Flowlet routing table is reported to the controller so that the controller can subsequently perform route calculations based on the Flowlet routing tables of all forwarding devices in the network (i.e., the global Flowlet routing table). In other words, the controller can obtain the physical topology of the network during the initialization phase by forwarding device reports or controller discovery. In this application, the method of delivering the routing table in this application is only performed on large flows in the network traffic, that is, in this application, the flow to which the target message belongs is a large flow. The forwarding device sends network measurement information to the controller. The network measurement information includes flow measurement information for large flows. For example, it may be delay information, packet loss information, or next hop information.
在一些实施例中,在网络流量中,一条流是包含相同流标识(例如五元组或流标签等)的一组报文。大流是指在单位周期内的报文数量或流速超过阈值的流。在具体实施中,一段时间内流中报文数量超过阈值的流中的一组报文被识别为大流。满足该大流条件的流可以认为是大流,也可以认为是一个大的突发(burst)。相应的不满足该大流条件的流可以认为是一个小流,也可以认为是一个小的突发。大流也可以称为大象流(elephant flow),小流也可以称为老鼠流(mice flow)。而针对于大流的调度,可以对网络中的负载得到较为明显的改善,而小流由于报文数量较少,对于转发设备的负载的影响较小,则本申请中,转发设备在接收到来自小流的报文时,可以基于ECMP机制来对其进行路由。因此,转发设备便不需要为小流保存相应的Flowlet表项,也不需要向控制器上报小流的Flowlet表项和流测量信息,从而进一步减少转发设备的网络开销,减少控制器所需要采集的Flowlet表项的数据量。In some embodiments, in network traffic, a flow is a group of packets containing the same flow identifier (such as a five-tuple or a flow label, etc.). A large flow refers to a flow in which the number of packets or the flow rate in a unit period exceeds the threshold. In a specific implementation, a group of packets in a flow in which the number of packets in the flow exceeds a threshold within a period of time is identified as a large flow. A flow that satisfies the large flow condition can be considered a large flow or a large burst. The corresponding flow that does not meet the large flow condition can be considered as a small flow or a small burst. A large flow can also be called an elephant flow, and a small flow can also be called a mouse flow. Scheduling for large flows can significantly improve the load on the network, while small flows have less impact on the load of the forwarding device due to the small number of messages. In this application, the forwarding device receives When packets come from small flows, they can be routed based on the ECMP mechanism. Therefore, the forwarding device does not need to save the corresponding Flowlet entries for the small flows, nor does it need to report the Flowlet entries and flow measurement information of the small flows to the controller, thereby further reducing the network overhead of the forwarding device and reducing the collection required by the controller. The amount of data in the Flowlet table item.
在一些可能的实施方式中,转发设备在转发报文的过程中,当转发设备的端口发生网络拥塞时,转发设备才需要获取自身设备的网络测量信息并向控制器上报,其中,网络测量信息还包括转发设备中发生网络拥塞的端口信息,用于反映该转发设备自身的网络状态或该转发设备的下一跳端口的网络质量等等。示例性的,网络测量信息具体的内容形式包括但不限于:发生网络拥塞的端口流量、队列信息、或其他反映网络质量的信息中的一种或多种,具体此处不做限定。而对于那些未发生网络拥塞的转发设备,则无需向控制器上报其网络测量信息,该转发设备根据本地的Flowlet路由表来进行报文转发即可,从而减少转发设备的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销。进一步的,转发设备所上报的网络测量信息,除了包括该转发设备中发生网络拥塞的端口信息之外,还可以包括该转发设备中未发生网络拥塞的端口信息,从而便于控制器能够更加全面地掌握该转发设备的网络质量,从而进行路由计算。In some possible implementations, when the forwarding device is forwarding messages, when network congestion occurs on the port of the forwarding device, the forwarding device needs to obtain the network measurement information of its own device and report it to the controller, where the network measurement information It also includes port information on the forwarding device where network congestion occurs, which is used to reflect the network status of the forwarding device itself or the network quality of the next hop port of the forwarding device, etc. For example, the specific content form of the network measurement information includes but is not limited to: one or more of port traffic where network congestion occurs, queue information, or other information reflecting network quality, which is not limited here. For those forwarding devices that do not experience network congestion, there is no need to report their network measurement information to the controller. The forwarding device can forward packets according to the local Flowlet routing table, thereby reducing the network overhead of the forwarding device and reducing the time required by the controller. The amount of network measurement information that needs to be collected reduces the computing overhead required by the controller to generate routing decisions. Furthermore, the network measurement information reported by the forwarding device, in addition to the information of the ports in the forwarding device where network congestion occurs, may also include the information of the ports in the forwarding device where network congestion does not occur, so that the controller can more comprehensively Understand the network quality of the forwarding device to perform routing calculations.
在实际应用中,转发设备可以有多种方式来获取其网络测量信息,例如,转发设备可以通过网络测量,发现该转发设备到邻居转发设备的转发路径的网络质量;或者,转发设备根据一条流经过该转发设备时的设备状态,更新该转发设备自身的网络测量信息;又或者还可以是其他的获取网络测量信息的方式,具体此处不做限定。In practical applications, the forwarding device can obtain its network measurement information in a variety of ways. For example, the forwarding device can discover the network quality of the forwarding path from the forwarding device to the neighbor forwarding device through network measurements; or the forwarding device can determine the network quality of the forwarding path based on a flow. The device status when passing through the forwarding device is used to update the network measurement information of the forwarding device itself; or other methods of obtaining network measurement information may be used, which are not limited here.
在一些可能的实施方式中,网络测量信息还可以包括转发设备的计算力的负载情况。In some possible implementations, the network measurement information may also include load conditions of the computing power of the forwarding device.
本申请实施例中所称的转发设备可以是一个具有网络协议IP报文转发功能的网络设备(例如交换机或路由器等)。上述转发设备实现的各个步骤也可以由网络设备中的部件实现,例如,可以由网络设备中的芯片系统实现。该芯片系统包括逻辑电路。该逻辑电路可以与输入/输出接口耦合,通过输入输出接口传输报文,以实现上述方法实施例中的各个步 骤。该逻辑电路可以是现场编程门阵列(field programmable gate array,FPGA),可以是专用集成电路(application specific integrated circuit,ASIC),还可以是网络处理器(network processor,NP),还可以是其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,或其他集成芯片等。The forwarding device referred to in the embodiment of this application may be a network device (such as a switch or router) with a network protocol IP packet forwarding function. Each of the steps implemented by the forwarding device can also be implemented by components in the network device, for example, by a chip system in the network device. The chip system includes logic circuits. The logic circuit can be coupled with the input/output interface and transmit messages through the input/output interface to implement each step in the above method embodiment. steps. The logic circuit can be a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a network processor (NP), or other possible Programmed logic devices, discrete gate or transistor logic devices, discrete hardware components, or other integrated chips, etc.
本申请中,并不限定转发设备的数量,即上述转发设备可以包括第一转发设备,也还可以包括第二转发设备或者其他转发设备。因此,向控制器发送网络测量信息的转发设备的数量有多个,或者,也可以只有一个。若控制器接收到一个转发设备(即本申请中的第一转发设备)的网络测量信息,则根据该转发设备(第一转发设备)的网络测量信息生成路由决策,并下发给到该转发设备(第一转发设备);若控制器接收到多个转发设备(例如整个网络中的全部转发设备或部分转发设备)的多个网络测量信息,其中,每个转发设备对应一个网络测量信息,则控制器根据接收到的多个网络测量信息一起进行路由计算,从而生成路由决策,并下发给到其中的每个转发设备。在一些可能的实施方式中,控制器根据来自第二转发设备和/或第一转发设备的网络测量信息生成路由决策,并将路由决策发送给第二转发设备和/或第一转发设备。本申请中,控制器可以根据来自多个转发设备的多个网络测量信息进行路由计算,生成对应每个转发设备的路由决策,提高了路由计算的灵活性,从而更加适用于网络设备较多的、复杂的网络拓扑结构。In this application, the number of forwarding devices is not limited, that is, the forwarding device may include a first forwarding device, a second forwarding device, or other forwarding devices. Therefore, there may be multiple forwarding devices that send network measurement information to the controller, or there may be only one. If the controller receives the network measurement information of a forwarding device (i.e., the first forwarding device in this application), it generates a routing decision based on the network measurement information of the forwarding device (the first forwarding device) and issues it to the forwarding device. device (first forwarding device); if the controller receives multiple network measurement information from multiple forwarding devices (such as all forwarding devices or part of the forwarding devices in the entire network), where each forwarding device corresponds to one network measurement information, The controller then performs routing calculations based on the received multiple network measurement information, thereby generating routing decisions and issuing them to each forwarding device. In some possible implementations, the controller generates a routing decision based on network measurement information from the second forwarding device and/or the first forwarding device, and sends the routing decision to the second forwarding device and/or the first forwarding device. In this application, the controller can perform routing calculations based on multiple network measurement information from multiple forwarding devices and generate routing decisions corresponding to each forwarding device, which improves the flexibility of routing calculations and is more suitable for networks with many network devices. , complex network topology.
102.控制器根据网络测量信息生成路由决策。102. The controller generates routing decisions based on network measurement information.
如图5所示,控制器需要维护全局Flowlet路由表以及全局网络测量表,其中,全局Flowlet路由表包括了各个转发设备(例如图5中的转发设备1和转发设备2)其自身的Flowlet路由表,全局网络测量表则包括了各个转发设备(例如图5中的转发设备1和转发设备2)的网络测量信息。As shown in Figure 5, the controller needs to maintain a global Flowlet routing table and a global network measurement table. The global Flowlet routing table includes its own Flowlet routing for each forwarding device (such as forwarding device 1 and forwarding device 2 in Figure 5). The global network measurement table includes the network measurement information of each forwarding device (for example, forwarding device 1 and forwarding device 2 in Figure 5).
控制器接收到转发设备的网络测量信息之后,便根据该网络测量信息,对全局网络测量表中该转发设备对应的表项进行更新。控制器根据全局Flowlet路由表以及更新后的全局网络测量表来进行路由计算。控制器通过上述路由计算流程生成路由决策,路由决策指示了转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,进一步的,还可以指示转发设备的Flowlet路由表中针对于目标报文的下一跳端口字段。可选的,路由计算的过程中,还可以进一步结合历史的网络数据,例如基于历史的网络数据可以得出某些时间段存在部分路径明显拥塞的情况下,则可以优先选择提前避开这些未来可能发生拥塞的路径。After receiving the network measurement information of the forwarding device, the controller updates the entry corresponding to the forwarding device in the global network measurement table based on the network measurement information. The controller performs routing calculations based on the global Flowlet routing table and the updated global network measurement table. The controller generates a routing decision through the above routing calculation process. The routing decision indicates the aging time threshold of the Flowlet entry in the Flowlet routing table of the forwarding device. Furthermore, it can also indicate the next step for the target packet in the Flowlet routing table of the forwarding device. One-hop port field. Optionally, the route calculation process can also be further combined with historical network data. For example, based on historical network data, it can be concluded that there is obvious congestion on some paths in certain time periods, and you can give priority to avoid these future routes in advance. Paths where congestion may occur.
示例性的,请参阅图6,图6为本申请中基于负载均衡算法的路由计算示意图。如图6所示,报文从源设备传递至目的设备,需要经过转发路径1、转发路径2、转发路径3以及转发路径4。而由于此时转发路径2和转发路径3的负载过大,发生网络拥塞,控制器在接收到发生网络拥塞的端口所在的转发设备所上报的网络测量信息之后,便基于负载均衡算法进行路由计算,生成新的路由决策,从而选择负载较小的转发路径5和转发路径6作为新的转发路径,从而替换发生网络拥塞的转发路径2和转发路径3。则基于新的路由决策的指示,报文从源设备传递至目的设备,则依次经过转发路径1、转发路径5、转发路径6以及转发路径4。For example, please refer to Figure 6, which is a schematic diagram of route calculation based on the load balancing algorithm in this application. As shown in Figure 6, when a packet is transmitted from the source device to the destination device, it needs to pass through forwarding path 1, forwarding path 2, forwarding path 3, and forwarding path 4. Because the load on forwarding path 2 and forwarding path 3 is too large at this time, network congestion occurs. After receiving the network measurement information reported by the forwarding device where the port where the network congestion occurs is located, the controller performs route calculation based on the load balancing algorithm. , generate a new routing decision, thereby selecting forwarding path 5 and forwarding path 6 with less load as new forwarding paths, thereby replacing forwarding path 2 and forwarding path 3 where network congestion occurs. Based on the instructions of the new routing decision, the packet is delivered from the source device to the destination device and passes through forwarding path 1, forwarding path 5, forwarding path 6, and forwarding path 4 in sequence.
进一步的,控制器生成新的路由决策之后,更新全局Flowlet路由表中针对于该转发 设备的Flowlet路由表。更新后的全局Flowlet路由表,便可以继续用于后续的路由计算,从而生成路由决策。Further, after the controller generates a new routing decision, it updates the global Flowlet routing table for the forwarding The device's Flowlet routing table. The updated global Flowlet routing table can continue to be used in subsequent routing calculations to generate routing decisions.
本申请中,路由决策包括转发设备中Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。在一些可能的实施方式中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。具体的,转发设备中,Flowlet路由表中的每个Flowlet表项主要包括以下字段:标识字段、有效信息字段以及下一跳端口字段。Flowlet表项中的标识字段包括标识。如果目标报文的流身份信息经过哈希计算后,所得到的标识与一个Flowlet表项中的标识字段包括的标识相同,那么可以认为目标报文与该Flowlet表项相匹配。在此情况下,可以进一步根据匹配的Flowlet表项中的有效信息字段以及下一跳端口字段确定如何处理该报文。而Flowlet表项中的有效信息字段,则用于指示该Flowlet表项目前是否有效,从而确定是否能够根据该Flowlet表项中的下一跳端口字段记录的下一跳端口转发匹配的报文。而Flowlet表项老化的时间阈值,则决定了该Flowlet表项是否有效。因此,控制器除了向转发设备下发Flowlet表项老化的时间阈值之外,还可以向转发设备下发针对于目标报文的下一跳端口字段,从而提高了转发设备的Flowlet表项的更新效率,也提高了报文转发的效率。In this application, the routing decision includes the aging time threshold of the Flowlet entry in the Flowlet routing table in the forwarding device. The Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the flow identity information of the target packet Matches the Flowlet entry. In some possible implementations, the routing decision also includes the next-hop port field for the target packet in the Flowlet entry. Specifically, in the forwarding device, each Flowlet entry in the Flowlet routing table mainly includes the following fields: identification field, valid information field, and next hop port field. The identification field in the Flowlet entry includes identification. If the flow identity information of the target packet is hashed and the obtained ID is the same as the ID included in the ID field of a Flowlet entry, then the target packet can be considered to match the Flowlet entry. In this case, you can further determine how to process the packet based on the valid information field and next hop port field in the matching Flowlet entry. The valid information field in the Flowlet entry is used to indicate whether the Flowlet entry is currently valid, thereby determining whether matching packets can be forwarded based on the next hop port recorded in the next hop port field in the Flowlet entry. The aging time threshold of a Flowlet entry determines whether the Flowlet entry is valid. Therefore, in addition to delivering the aging time threshold of the Flowlet entry to the forwarding device, the controller can also deliver the next-hop port field for the target packet to the forwarding device, thus improving the update of the Flowlet entry of the forwarding device. Efficiency also improves the efficiency of message forwarding.
在一些实施例中,当转发设备接收到目标报文的时间间隔未超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置1,从而认为该Flowlet表项有效;当转发设备接收到该目标报文的时间间隔已经超出上述时间阈值,则将与该目标报文匹配的Flowlet表项的老化标记置0,从而认为该Flowlet表项无效。In some embodiments, when the time interval between the forwarding device receiving the target packet does not exceed the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 1, thereby considering the Flowlet entry to be valid; when If the time interval at which the forwarding device receives the target packet exceeds the above time threshold, the aging flag of the Flowlet entry matching the target packet is set to 0, and the Flowlet entry is considered invalid.
示例性的,请参阅图7,图7为本申请实施例中控制器下发下一跳端口字段和时间阈值的场景示意图。如图7所示,转发设备1和转发设备2向控制器发送各自的网络测量信息,由控制器根据全局Flowlet路由表和全局网络测量表,来生成每个转发设备的下一跳端口字段和时间阈值,然后将下一跳端口字段和时间阈值发送给各个转发设备,由转发设备执行。For example, please refer to Figure 7. Figure 7 is a schematic diagram of a scenario in which the controller delivers the next hop port field and time threshold in this embodiment of the present application. As shown in Figure 7, forwarding device 1 and forwarding device 2 send their respective network measurement information to the controller, and the controller generates the next hop port field and the next hop port field of each forwarding device based on the global Flowlet routing table and global network measurement table. time threshold, and then send the next hop port field and time threshold to each forwarding device for execution by the forwarding device.
在一些实施例中,控制器可以为每个转发设备上的一个Flowlet表项或者一组Flowlet表项设置不同的时间阈值,从而使得上述Flowlet表项在对应的下一跳路由下拥有较好的负载均衡效果,避免发生拥塞。In some embodiments, the controller can set different time thresholds for a Flowlet entry or a group of Flowlet entries on each forwarding device, so that the above Flowlet entries have better performance under the corresponding next-hop route. Load balancing effect to avoid congestion.
103.转发设备根据路由决策更新Flowlet路由表中的Flowlet表项。103. The forwarding device updates the Flowlet entry in the Flowlet routing table based on the routing decision.
转发设备接收到来自控制器的路由决策之后,便根据路由决策,对该转发设备本地所保存的Flowlet路由表中的Flowlet表项进行更新,具体包括更新该Flowlet表项老化的时间阈值或该Flowlet表项中的下一跳端口字段。当转发设备接收到目标报文后,便可以根据更新后的Flowlet表项中所指示的下一跳端口来进行报文转发。After the forwarding device receives the routing decision from the controller, it updates the Flowlet entry in the Flowlet routing table locally saved by the forwarding device based on the routing decision, specifically including updating the aging time threshold of the Flowlet entry or the Flowlet The next hop port field in the entry. After the forwarding device receives the target packet, it can forward the packet based on the next hop port indicated in the updated Flowlet entry.
本申请中,由控制器根据来自转发设备的针对于大流的流测量信息来生成路由决策,转发设备对于小流的流测量信息则无需向控制器上报,从而减少转发设备向控制器发送网络测量信息的网络开销,减少控制器需要采集的网络测量信息的数据量,降低控制器生成路由决策所需的算力开销,提高了负载均衡的效果。 In this application, the controller generates routing decisions based on the flow measurement information for large flows from the forwarding device. The forwarding device does not need to report the flow measurement information for small flows to the controller, thereby reducing the number of network messages sent by the forwarding device to the controller. The network overhead of measurement information reduces the amount of network measurement information that the controller needs to collect, reduces the computing overhead required by the controller to generate routing decisions, and improves the load balancing effect.
在一些可能的实施方式中,控制器所生成的路由决策中,针对于一个Flowlet表项指示了多个下一跳端口。即控制器经过路由计算后,认为有多个下一跳端口均可用于传递目标报文。因此转发设备接收到该路由策略之后,对本地所保存的Flowlet路由表中的Flowlet表项进行更新,得到更新后的Flowlet表项中的下一跳端口字段中,包括了上述由控制器所指示的多个下一跳端口。当接收到与该Flowlet表项相匹配的目标报文后,从多个下一跳端口中确定其中一个端口(目标下一跳端口),来用于转发该目标报文。具体的,转发设备可以基于随机选择的方式,从多个下一跳端口中确定用于转发该目标报文的目标下一跳端口;或者可以是其他的确定目标下一跳端口的方式,例如,控制器在下发路由策略时,也指示每个下一跳端口的网络质量,从而转发设备便可以从多个下一跳端口中选择其中网络质量最好(或较好)的下一跳端口作为目标下一跳端口。本申请对于转发设备从多个下一跳端口中选择目标下一跳端口的方式不做限定。因此,控制器指示多个下一跳端口给转发设备,由转发设备根据实际场景的需要来选择其中一个来执行报文转发,从而提高了报文转发的灵活性。In some possible implementations, the routing decision generated by the controller indicates multiple next-hop ports for one Flowlet entry. That is, after the controller calculates the route, it considers that multiple next-hop ports can be used to deliver the target packet. Therefore, after receiving the routing policy, the forwarding device updates the Flowlet entry in the locally saved Flowlet routing table, and obtains the next-hop port field in the updated Flowlet entry, which includes the above instructions indicated by the controller. Multiple next hop ports. After receiving a target packet that matches the Flowlet entry, one port (target next hop port) is determined from multiple next hop ports to forward the target packet. Specifically, the forwarding device may determine the target next-hop port for forwarding the target message from multiple next-hop ports based on random selection; or may use other methods to determine the target next-hop port, such as , when the controller delivers the routing policy, it also indicates the network quality of each next-hop port, so that the forwarding device can select the next-hop port with the best (or better) network quality from multiple next-hop ports. As the target next hop port. This application does not limit the way in which the forwarding device selects a target next-hop port from multiple next-hop ports. Therefore, the controller instructs multiple next-hop ports to the forwarding device, and the forwarding device selects one of them to perform packet forwarding based on the needs of the actual scenario, thus improving the flexibility of packet forwarding.
在图5所对应的实施例的基础上,为了更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关设备。具体的,请参阅图8,图8为本申请实施例提供的一种控制器的结构示意图,控制器包括:On the basis of the embodiment corresponding to Figure 5, in order to better implement the above solution of the embodiment of the present application, the following also provides relevant equipment for implementing the above solution. Specifically, please refer to Figure 8, which is a schematic structural diagram of a controller provided by an embodiment of the present application. The controller includes:
收发单元201,用于接收来自转发设备的网络测量信息,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过阈值的流;The transceiver unit 201 is configured to receive network measurement information from the forwarding device. The network measurement information includes flow measurement information for large flows. A large flow is a flow in which the number of packets or the flow rate in a unit period exceeds a threshold;
处理单元202,用于根据网络测量信息生成路由决策;The processing unit 202 is used to generate routing decisions based on network measurement information;
收发单元201,还用于向转发设备发送路由决策,路由决策包括转发设备中流分段Flowlet路由表的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。The transceiver unit 201 is also used to send routing decisions to the forwarding device. The routing decisions include the aging time threshold of the Flowlet entries in the flow segmentation Flowlet routing table in the forwarding device. The Flowlet entries are used to indicate the next destination of the target packet in the large flow. Hop port, where the flow identity information of the target packet matches the Flowlet entry.
在一种可能的设计中,路由决策还包括Flowlet表项中针对于目标报文的下一跳端口字段。In one possible design, the routing decision also includes the next-hop port field of the target packet in the Flowlet entry.
在一种可能的设计中,转发设备的数量为多个,处理单元202,具体用于:In one possible design, the number of forwarding devices is multiple, and the processing unit 202 is specifically used to:
根据多个转发设备的网络测量信息生成路由决策。Generate routing decisions based on network measurement information from multiple forwarding devices.
在一种可能的设计中,网络测量信息是由发生网络拥塞的端口所在的转发设备所发送的,网络测量信息还包括发生网络拥塞的端口信息。In a possible design, the network measurement information is sent by the forwarding device where the port where network congestion occurs is located, and the network measurement information also includes information about the port where network congestion occurs.
报文转发装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。The information interaction, execution process, etc. between the modules/units in the message forwarding device are based on the same concept as the method embodiment corresponding to Figure 5 in this application. For specific content, please refer to the method embodiments shown above in this application. Narration will not be repeated here.
请参阅图9,图9为本申请实施例提供的更新路由表的装置的结构示意图,更新路由表的装置包括:Please refer to Figure 9. Figure 9 is a schematic structural diagram of a device for updating a routing table provided by an embodiment of the present application. The device for updating a routing table includes:
收发单元301,用于向控制器发送网络测量信息以及接收来自控制器的路由决策,网络测量信息包括针对于大流的流测量信息,大流为在单位周期内的报文数量或者流速超过 阈值的流,路由决策是由控制器根据网络测量信息生成的;The transceiver unit 301 is configured to send network measurement information to the controller and receive routing decisions from the controller. The network measurement information includes flow measurement information for large flows. The large flow is the number of packets in a unit period or the flow rate exceeds Threshold flow,routing decisions are generated by the controller based on,network measurement information;
处理单元302,用于根据路由决策更新流分段Flowlet路由表中的Flowlet表项老化的时间阈值,Flowlet表项用于指示大流中的目标报文的下一跳端口,其中,目标报文的流身份信息与Flowlet表项相匹配。The processing unit 302 is configured to update the aging time threshold of the Flowlet entry in the flow segment Flowlet routing table according to the routing decision. The Flowlet entry is used to indicate the next hop port of the target packet in the large flow, where the target packet The flow identity information matches the Flowlet entry.
在一种可能的设计中,处理单元302,还用于:In a possible design, the processing unit 302 is also used to:
根据路由决策更新Flowlet表项中的下一跳端口字段。Update the next hop port field in the Flowlet entry based on the routing decision.
在一种可能的设计中,路由决策包括Flowlet表项中针对于目标报文的多个下一跳端口字段,处理单元302,还用于:In one possible design, the routing decision includes multiple next-hop port fields for the target packet in the Flowlet entry. The processing unit 302 is also used to:
根据多个下一跳端口字段,确定用于转发目标报文的目标下一跳端口。Determine the target next-hop port used to forward the target packet based on multiple next-hop port fields.
在一种可能的设计中,收发单元301,具体用于:In one possible design, the transceiver unit 301 is specifically used for:
当报文转发装置的端口发生网络拥塞时,向控制器发送网络测量信息,网络测量信息还包括发生网络拥塞的端口信息。When network congestion occurs on a port of the packet forwarding device, network measurement information is sent to the controller, and the network measurement information also includes information on the port where network congestion occurs.
报文转发装置中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。The information interaction, execution process, etc. between the modules/units in the message forwarding device are based on the same concept as the method embodiment corresponding to Figure 5 in this application. For specific content, please refer to the method embodiments shown above in this application. Narration will not be repeated here.
本申请实施例还提供了一种计算机设备,请参阅图10,图10为本申请实施例提供的计算机设备一种结构示意图,计算机设备上可以部署有图8对应实施例中所描述的控制器和/或图9对应实施例中所描述的报文转发装置,用于实现图5对应实施例中控制器和/或转发设备执行的各个步骤。具体的,计算机设备由一个或多个服务器实现,计算机设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在计算机设备400上执行存储介质430中的一系列指令操作。The embodiment of the present application also provides a computer device. Please refer to Figure 10. Figure 10 is a schematic structural diagram of the computer device provided by the embodiment of the present application. The controller described in the corresponding embodiment of Figure 8 can be deployed on the computer device. And/or the message forwarding device described in the embodiment corresponding to Figure 9 is used to implement various steps performed by the controller and/or the forwarding device in the embodiment corresponding to Figure 5. Specifically, the computer equipment is implemented by one or more servers. The computer equipment may vary greatly due to different configurations or performance, and may include one or more central processing units (CPU) 422 (for example, one or one or more processors) and memory 432, one or more storage media 430 (eg, one or more mass storage devices) that stores applications 442 or data 444. Among them, the memory 432 and the storage medium 430 may be short-term storage or persistent storage. The program stored in the storage medium 430 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations on the computer device. Furthermore, the central processor 422 may be configured to communicate with the storage medium 430 and execute a series of instruction operations in the storage medium 430 on the computer device 400 .
计算机设备还可以包括一个或一个以上电源426,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,和/或,一个或一个以上操作系统441,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。The computer device may also include one or more power supplies 426, one or more wired or wireless network interfaces 450, one or more input and output interfaces 458, and/or, one or more operating systems 441, such as Windows Server ™ , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM and more.
需要说明的是,计算机设备中各模块/单元之间的信息交互、执行过程等内容,与本申请中图5对应的方法实施例基于同一构思,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。It should be noted that the information interaction, execution process, etc. between various modules/units in the computer equipment are based on the same concept as the method embodiment corresponding to Figure 5 in this application. For specific content, please refer to the method implementation shown above in this application. The description in the example will not be repeated here.
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图5所示实施例描述的方法中控制器执行的步骤和/或转发设备执行的步骤。An embodiment of the present application also provides a computer program product that, when run on a computer, causes the computer to perform the steps performed by the controller and/or the steps performed by the forwarding device in the method described in the embodiment shown in Figure 5. .
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有用于进行信号处理的程序,当其在计算机上运行时,使得计算机执行如前述图5所示实施例 描述的方法中控制器执行的步骤和/或转发设备执行的步骤。Embodiments of the present application also provide a computer-readable storage medium. The computer-readable storage medium stores a program for performing signal processing. When it is run on a computer, it causes the computer to execute the embodiment shown in Figure 5. Steps performed by the controller and/or steps performed by the forwarding device in the described method.
本申请实施例提供的图像处理装置具体可以为芯片,芯片包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使芯片执行上述图5所示实施例描述的方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。The image processing device provided by the embodiment of the present application may specifically be a chip. The chip may include a processing unit and a communication unit. The processing unit may be, for example, a processor. The communication unit may be, for example, an input/output interface, a pin or a circuit, etc. . The processing unit can execute computer execution instructions stored in the storage unit, so that the chip executes the method described in the embodiment shown in FIG. 5 . Optionally, the storage unit is a storage unit within the chip, such as a register, cache, etc. The storage unit may also be a storage unit located outside the chip in the wireless access device, such as Read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (random access memory, RAM), etc.
所另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。It should be noted that the device embodiments described above are only illustrative. The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physically separate. Rather than being a physical unit, it can be located in one place, or it can be distributed across multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the solution of this embodiment. In addition, in the drawings of the device embodiments provided in this application, the connection relationship between modules indicates that there are communication connections between them, which can be specifically implemented as one or more communication buses or signal lines.
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。Through the above description of the embodiments, those skilled in the art can clearly understand that the present application can be implemented by software plus necessary general hardware. Of course, it can also be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memories, Special components, etc. to achieve. In general, all functions performed by computer programs can be easily implemented with corresponding hardware. Moreover, the specific hardware structures used to implement the same function can also be diverse, such as analog circuits, digital circuits or special-purpose circuits. circuit etc. However, for this application, software program implementation is a better implementation in most cases. Based on this understanding, the technical solution of the present application can be embodied in the form of a software product in essence or that contributes to the existing technology. The computer software product is stored in a readable storage medium, such as a computer floppy disk. , U disk, mobile hard disk, ROM, RAM, magnetic disk or optical disk, etc., including several instructions to cause a computer device (which can be a personal computer, training device, or network device, etc.) to execute the steps described in various embodiments of this application. method.
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。In the above embodiments, it may be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。 The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in or transmitted from one computer-readable storage medium to another, for example, the computer instructions may be transferred from a website, computer, training device, or data The center transmits to another website site, computer, training equipment or data center through wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store, or a data storage device such as a training device or a data center integrated with one or more available media. The available media may be magnetic media (eg, floppy disk, hard disk, magnetic tape), optical media (eg, DVD), or semiconductor media (eg, solid state disk (Solid State Disk, SSD)), etc.
Claims (20)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210227513.0A CN116781624A (en) | 2022-03-08 | 2022-03-08 | A method and related devices for delivering routing tables |
| CN202210227513.0 | 2022-03-08 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023169407A1 true WO2023169407A1 (en) | 2023-09-14 |
Family
ID=87935980
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/080043 Ceased WO2023169407A1 (en) | 2022-03-08 | 2023-03-07 | Method for issuing routing table and related apparatus |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN116781624A (en) |
| WO (1) | WO2023169407A1 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119520378B (en) * | 2024-12-03 | 2025-12-09 | 南京航空航天大学 | Multi-sub-flow parallel forwarding scheduling method for novel intelligent computation center network |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103716208A (en) * | 2013-12-31 | 2014-04-09 | 北京邮电大学 | Network management method and system supporting elephant flow, interchanger and network |
| US20150281085A1 (en) * | 2014-01-23 | 2015-10-01 | InMon Corp. | Method and system of large flow control in communication networks |
| CN105610709A (en) * | 2016-02-03 | 2016-05-25 | 西安电子科技大学 | SDN-based high-volume data stream load balancing system and method |
| CN106487676A (en) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | A kind of dynamic ECMP chip implementing method flowed based on elephant |
| CN112311674A (en) * | 2019-07-31 | 2021-02-02 | 北京华为数字技术有限公司 | Message sending method, device and storage medium |
| CN114268584A (en) * | 2020-09-16 | 2022-04-01 | 华为技术有限公司 | Method and related device for forwarding message |
-
2022
- 2022-03-08 CN CN202210227513.0A patent/CN116781624A/en active Pending
-
2023
- 2023-03-07 WO PCT/CN2023/080043 patent/WO2023169407A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103716208A (en) * | 2013-12-31 | 2014-04-09 | 北京邮电大学 | Network management method and system supporting elephant flow, interchanger and network |
| US20150281085A1 (en) * | 2014-01-23 | 2015-10-01 | InMon Corp. | Method and system of large flow control in communication networks |
| CN105610709A (en) * | 2016-02-03 | 2016-05-25 | 西安电子科技大学 | SDN-based high-volume data stream load balancing system and method |
| CN106487676A (en) * | 2016-10-27 | 2017-03-08 | 盛科网络(苏州)有限公司 | A kind of dynamic ECMP chip implementing method flowed based on elephant |
| CN112311674A (en) * | 2019-07-31 | 2021-02-02 | 北京华为数字技术有限公司 | Message sending method, device and storage medium |
| CN114268584A (en) * | 2020-09-16 | 2022-04-01 | 华为技术有限公司 | Method and related device for forwarding message |
Non-Patent Citations (3)
| Title |
|---|
| LI LONG, FU BIN-ZHANG; CHEN MING-YU; ZHANG LI-XIN: "Nimble: A Fast Flow Scheduling Strategy for OpenFlow Networks", CHINESE JOURNAL OF COMPUTERS, vol. 38, no. 5, 31 May 2015 (2015-05-31), pages 1056 - 1068, XP093091343, DOI: 10.3724/SP.J.1016.2015.01056 * |
| WANG CHANGPING, CAI YUE-PING: "Classified Flow Routing Scheme for Data Center Networks", JOURNAL OF CHINESE COMPUTER SYSTEMS, GAI-KAN BIANJIBU , SHENYANG, CN, vol. 37, no. 11, 30 November 2016 (2016-11-30), CN , pages 2488 - 2492, XP093091345, ISSN: 1000-1220 * |
| WANG HONGYUN, YONG' AN SHU: "Dynamic Multipath Load Balancing Based on Ant Colony Algorithm in DCN", APPLICATION RESEARCH OF COMPUTERS, CHENGDU, CN, vol. 37, no. 7, 31 July 2020 (2020-07-31), CN , XP093091337, ISSN: 1001-3695, DOI: 10.19734/j.issn.1001-3695.2018.11.0945 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116781624A (en) | 2023-09-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10454830B2 (en) | System and method for load balancing in a data network | |
| Wang et al. | Luopan: Sampling-based load balancing in data center networks | |
| US20190068484A1 (en) | Method to route packets in a distributed direct interconnect network | |
| EP3399703B1 (en) | Method for implementing load balancing, apparatus, and network system | |
| CN106031094B (en) | Accurate measurement of distributed counters | |
| CN114500354B (en) | Switch control method, device, control equipment and storage medium | |
| US20160197812A1 (en) | Network status mapping | |
| US20140153443A1 (en) | Per-Address Spanning Tree Networks | |
| JP2015503274A (en) | System and method for mitigating congestion in a fat tree topology using dynamic allocation of virtual lanes | |
| Wang et al. | Expeditus: Congestion-aware load balancing in clos data center networks | |
| EP4325800A1 (en) | Packet forwarding method and apparatus | |
| CN111147372B (en) | Downlink message sending and forwarding method and device | |
| US11228524B1 (en) | Methods and apparatus for efficient use of link aggregation groups | |
| US20070230369A1 (en) | Route selection in a network | |
| Cui et al. | Scalable and load-balanced data center multicast | |
| CN114157595B (en) | Communication system, data processing method and related equipment | |
| CN107078953A (en) | Method for scalable computer network partitioning | |
| CN105207908B (en) | A kind of message processing method and system | |
| WO2023169407A1 (en) | Method for issuing routing table and related apparatus | |
| CN117278567A (en) | Cluster load balancing method and device | |
| CN116723147A (en) | A forwarding control method, message forwarding method and device based on segment routing | |
| JP5935897B2 (en) | COMMUNICATION NODE, COMMUNICATION SYSTEM, CONTROL DEVICE, PACKET TRANSFER METHOD, AND PROGRAM | |
| Alanazi et al. | CAFT: Congestion-aware fault-tolerant load balancing for three-tier clos data centers | |
| Ren et al. | Flowtable-free routing for data center networks: A software-defined approach | |
| WO2021218352A1 (en) | Traffic monitoring method, related device and system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23765985 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23765985 Country of ref document: EP Kind code of ref document: A1 |