CN112825512A - Load balancing method and device - Google Patents

Load balancing method and device Download PDF

Info

Publication number
CN112825512A
CN112825512A CN201911140120.0A CN201911140120A CN112825512A CN 112825512 A CN112825512 A CN 112825512A CN 201911140120 A CN201911140120 A CN 201911140120A CN 112825512 A CN112825512 A CN 112825512A
Authority
CN
China
Prior art keywords
available
path
resource information
paths
information
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.)
Pending
Application number
CN201911140120.0A
Other languages
Chinese (zh)
Inventor
张娇
刘克非
张劲声
魏德惠
肖诗汉
李丰林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911140120.0A priority Critical patent/CN112825512A/en
Publication of CN112825512A publication Critical patent/CN112825512A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The load balancing method and device provided by the embodiment of the application comprise the following steps: the method comprises the steps of respectively sending detection packets to destination end equipment through part of available paths in all the available paths so as to detect path information of the available paths passed by each detection packet, determining path available resource information and weight coefficients of each available path in all the available paths according to the received path information of the available paths fed back by the destination end equipment, and further transmitting data packets to the destination end equipment through at least one available path in all the available paths. According to the technical scheme, the detection packets are sent to part of the available paths in all the available paths, link oscillation caused by a full detection algorithm is effectively solved, data traffic can be distributed according to the path available resource information and the weight coefficient of the available paths, and the load balancing effect is improved.

Description

Load balancing method and device
Technical Field
The present application relates to the field of communications technologies, and in particular, to a load balancing method and apparatus.
Background
A Metropolitan Area Network (MAN) is a computer network established in a city, and an important purpose of the MAN is to serve as a backbone network, and a host, a database, a Local Area Network (LAN) and the like located at different places in the same city are connected with each other through the MAN to form a multimedia communication network with high bandwidth, multiple functions and multiple service access, so as to provide services such as calculation, transmission, storage and the like to the outside.
In the network transmission process, if the metropolitan area network cannot timely and accurately schedule the large flow coming suddenly to a proper link, link congestion can be caused, and the throughput of the network is seriously influenced. Therefore, in the related art, load balancing is mainly performed by using a load balancing algorithm of an equal-cost multi-path protocol (ECMP). Specifically, the flows are randomly and equally probabilistically allocated to different available paths according to the five-tuple of the data flow (source IP address, destination IP address, source port number, destination port number, protocol number).
However, due to the static load balancing algorithm in which the ECMP uses the number of flows as the load balancing granularity, when the length of the traffic arriving in a burst is large, even if a serious imbalance condition occurs between paths, the ECMP is unaware of the path condition, so that the network throughput is seriously affected, and the load balancing effect of the ECMP is poor.
Disclosure of Invention
The embodiment of the application provides a load balancing method and device, and aims to solve the problem that an existing load balancing method is poor in load balancing effect.
In a first aspect, the present application provides a load balancing method, applied to a source device, where the method includes:
sending K detection packets to a destination device through K available paths in N available paths, wherein each detection packet is used for detecting path information of the passed available path, N is the total number of the available paths between the source device and the destination device, N and K are positive integers, and N is greater than K;
receiving M path information of M available paths fed back by the destination device, wherein M is a positive integer less than or equal to K;
determining N path available resource information and N weight coefficients of the N available paths according to the M path information;
and transmitting a data packet to the destination device through at least one of the N available paths according to the N weight coefficients and the N path available resource information.
In this embodiment, the source device sends the probe packet to a part of the available paths, which not only effectively solves link oscillation caused by the full probe algorithm, but also distributes data traffic according to the path available resource information and the weight coefficient of the available paths, thereby improving the load balancing effect.
In one possible design of the first aspect, the path information of each available path includes: available bottleneck resource information for the available path;
the available bottleneck resource information is determined by the destination device according to the available resource information of all links included by the available path;
or
The available bottleneck resource information is determined by sequentially comparing the path available resource information in the received probe packet and the available resource information of the respective output link by each intermediate device on the available path.
Optionally, the determining, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths includes:
updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain available resource information of the N paths of the N available paths;
and determining N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
In the embodiment of the application, when the path information received by the source end device includes available bottleneck resource information of available paths, the source end device may update the path available resource information of each available path accordingly, and then determine N weight coefficients of N available paths, so that the source end device can timely balance incoming data streams into different available paths, thereby ensuring the throughput of a network in a metropolitan area network and improving load balance.
In another possible design of the first aspect, the path information includes, for each available path: available resource information of all links on the available path;
the determining, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths includes:
determining M available bottleneck resource information of the M available paths according to the available resource information of all links on each of the M available paths;
updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain available resource information of the N paths of the N available paths;
and determining N weight coefficients of the N available paths according to the N path available resource information.
In the embodiment of the present application, when the path information received by the source end device includes available resource information of all links on an available path, the source end device may first determine available bottleneck resource information of each available path, and then update the path available resource information of each available path, thereby determining N weight coefficients of N available paths, so that when a data stream arrives, the data stream can be timely and uniformly distributed to different available paths, thereby ensuring throughput of a network in a metropolitan area network, and improving load balance.
In yet another possible design of the first aspect, the method further includes:
and if the response information fed back by the destination end equipment is not received after a first available path in the K available paths sends a detection packet or a data packet for a preset number of times to the destination end equipment, marking the first available path as a fault path.
In yet another possible design of the first aspect, the method further includes:
for a fault path between the source end device and the destination end device, periodically sending a detection packet to the fault path;
and when the positive response information fed back by the destination terminal equipment can be received in a plurality of continuous preset detection periods, updating the fault path to be a normal available path, and updating the path information in the positive response information received in the last detection period to be the path information of the normal available path.
In yet another possible design of the first aspect, before the sending N probe packets to the destination device through K available paths of the N available paths, the method further includes:
determining the N available paths according to the topological structure of the metropolitan area network and the current load information;
and determining the K available paths from the N available paths according to the total resource information, the total available resource information and the value of the N of the metropolitan area network.
Optionally, K satisfies the following condition:
Figure BDA0002280674640000021
wherein, B is the total resource information of the metropolitan area network, and S is the available resource information of the metropolitan area network.
In the embodiment of the application, the source device may determine the value of K according to the total resource information and the available resource information of the metropolitan area network and the total number of available paths between the source device and the destination device, and when the total load of the network decreases or the total number of available paths increases, the value of K may be appropriately increased, so as to improve the load balancing effect of the network.
In a second aspect, the present application provides a load balancing method, which is applied to a destination device, and the method includes:
receiving M update detection packets from M available paths, wherein each update detection packet comprises detection information of a passed available path, the M available paths are M available paths in K available paths determined by a source end device from the N available paths, M, K and N are positive integers, M is smaller than or equal to K, K is smaller than N, and N is the total number of available paths between the source end device and the destination end device;
determining M path information of the M available paths according to the detection information in the M update detection packets;
and feeding back the M pieces of path information to the source end equipment.
In the embodiment of the application, when the destination device receives M update detection packets from M available paths, M path information of the M available paths can be determined according to detection information in the M update detection packets, and then the M path information is fed back to the source device, so that when the source device receives a data stream, the data stream can be distributed to different available paths in a balanced manner in time, thereby improving a load balancing effect and further improving the throughput of a network.
In one possible design of the second aspect, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available resource information for all links on the available path.
In this embodiment, when the update detection packet received by the destination device is the available resource information of all links on the available path, the destination device may directly feed back the available resource information to the source device, so that the source device updates the path available resource information of each available path according to the path available resource information, and then updates the weight coefficient of each available path, where at this time, the processing load of the destination device and the intermediate device is low.
In another possible design of the second aspect, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available bottleneck resource information for the available path;
then, the determining M path information of the M available paths according to the probe information in the M update probe packets includes:
and determining the M available bottleneck resource information of the M available paths according to the available resource information of all links on the available path passed by each update detection packet in the M update detection packets.
In this embodiment, when the update detection packet received by the destination device is the available resource information of all links on the available path, the destination device determines M available bottleneck resource information of the M received available paths based on the available resource information, and transmits the M available bottleneck resource information to the source device, so that the source device can determine the available resource information of each available path, and further update the weight coefficient of each available path. In the technical scheme, the scheme of updating the available resource information and the weight coefficient of the path is distributed to different devices for processing, and the pressure of the source end device and the target end device is balanced.
In yet another possible design of the second aspect, each update probe packet includes: available bottleneck resource information of available paths traversed;
the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received update probe packet and the available resource information of the respective egress link by each intermediate device on the available path.
In this embodiment, when the update probe packet received by the destination device is directly the available bottleneck resource information of the available path, that is, when receiving each probe packet, the intermediate device updates the available bottleneck resource information of the available path according to the path available resource information in the update probe packet and the available resource information of the respective egress link, without the need of processing by the destination device and the source device, thereby reducing the pressures of the source device and the destination device, and improving the processing efficiency.
In a third aspect, the present application provides a load balancing method, applied to any one intermediate device in any available path between a source device and a destination device, where the method includes:
receiving an update probe packet sent by a previous device, where the update probe packet includes: the updated path available resource information of the previous device, where the previous device is a first hop device or the source device located before the intermediate device on an available path through which the update probe packet passes;
determining available resource information of an egress link of the intermediate device on an available path through which the update probe packet passes, where the available resource information of the egress link is the available resource information of the egress link determined in a previous probe period of the available path;
updating the detection information in the updated detection packet according to the updated path available resource information of the previous device and the available resource information of the exit link;
and transmitting the updated update detection packet to a next device, wherein the next device is a first hop device or the destination device which is positioned behind the intermediate device on an available path where the update detection packet is positioned.
In the embodiment of the present application, when receiving an update probe packet sent by a previous device, an intermediate device may update probe information in the received update probe packet by comparing updated path available resource information of the previous device with available resource information of an egress link of the intermediate device, and transmit the probe information to a next device. That is, the intermediate device updates the detection information in the update detection packet in real time in the transmission process, so that the processing efficiency is improved, and the processing pressure of the source end device and the destination end device is reduced.
In a possible design of the third aspect, when the intermediate device is a first intermediate device of the available path, the previous device is the source device, and the next device is a first hop device located after the intermediate device on the available path through which the probe packet passes.
In another possible design of the third aspect, when the intermediate device is a last intermediate device of the available path, the previous device is a closest hop device located before the intermediate device on the available path in the current probing cycle, and the next device is the destination device.
In a fourth aspect, the present application provides a load balancing apparatus, applied to a source device, where the apparatus includes: the device comprises a sending module, a receiving module and a processing module;
the sending module is configured to send K detection packets to a destination device through K available paths in N available paths, where each detection packet is used to detect path information of a passed available path, N is a total number of available paths between the source device and the destination device, N and K are positive integers, and N is greater than K;
the receiving module is configured to receive M pieces of path information of M available paths fed back by the destination device, where M is a positive integer smaller than or equal to K;
the processing module is configured to determine, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths;
the sending module is further configured to transmit a data packet to the destination device through at least one of the N available paths according to the N weight coefficients and the N path available resource information.
In one possible design of the fourth aspect, the path information of each available path includes: available bottleneck resource information for the available path;
the available bottleneck resource information is determined by the destination device according to the available resource information of all links included by the available path;
or
The available bottleneck resource information is determined by sequentially comparing the path available resource information in the received probe packet and the available resource information of the respective output link by each intermediate device on the available path.
Optionally, the processing module is specifically configured to update, according to the M available bottleneck resource information of the M available paths, the M path available resource information of the M available paths stored by the source device to obtain N path available resource information of the N available paths, and determine N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
In another possible design of the fourth aspect, the path information includes, for each available path: available resource information of all links on the available path;
the processing module is specifically configured to determine, according to the available resource information of all links on each of the M available paths, M available bottleneck resource information of the M available paths, update, according to the M available bottleneck resource information of the M available paths, the M path available resource information of the M available paths stored by the source end device, obtain N path available resource information of the N available paths, and determine, according to the N path available resource information, N weight coefficients of the N available paths.
In yet another possible design of the fourth aspect, the processing module is further configured to mark the first available path as a failed path when the receiving module does not receive response information fed back by the destination device after the sending module sends a probe packet or a data packet to the destination device for a preset number of times through the first available path in the K available paths.
In yet another possible design of the fourth aspect, for the faulty path between the source end device and the destination end device, the processing module is further configured to update the faulty path to a normal available path and update path information in the acknowledgement information received in the last detection period to the path information of the normal available path after the sending module periodically sends a detection packet to the faulty path and the receiving module receives acknowledgement information fed back by the destination end device in a predetermined number of consecutive detection periods.
In yet another possible design of the fourth aspect, the processing module is further configured to determine, before the sending module sends N probe packets to the destination device through K available paths of the N available paths, the N available paths according to a topology structure of a metropolitan area network and current load information, and determine, according to total resource information of the metropolitan area network, the total available resource information, and a value of the N, the K available paths from the N available paths.
Optionally, K satisfies the following condition:
Figure BDA0002280674640000051
wherein, B is the total resource information of the metropolitan area network, and S is the available resource information of the metropolitan area network.
In a fifth aspect, the present application provides a load balancing apparatus, which is applied to a destination device, and the apparatus includes: the device comprises a receiving module, a processing module and a sending module;
the receiving module is configured to receive M update probe packets from M available paths, where each update probe packet includes probe information of a traversed available path, where the M available paths are M available paths in K available paths determined by a source end device from N available paths, M, K and N are positive integers, M is smaller than or equal to K, K is smaller than N, and N is a total number of available paths between the source end device and the destination end device;
the processing module is configured to determine, according to the probe information in the M update probe packets, M path information of the M available paths;
the sending module is configured to feed back the M pieces of path information to the source end device.
In one possible design of the fifth aspect, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available resource information for all links on the available path.
In another possible design of the fifth aspect, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available bottleneck resource information for the available path;
the processing module is specifically configured to determine, according to the available resource information of all links on the available path through which each of the M update probe packets passes, M available bottleneck resource information of the M available paths.
In yet another possible design of the fifth aspect, each update probe packet includes: available bottleneck resource information of available paths traversed;
the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received update probe packet and the available resource information of the respective egress link by each intermediate device on the available path.
In a sixth aspect, the present application provides a load balancing apparatus, applied to any one intermediate device in any available path between a source device and a destination device, where the apparatus includes: the device comprises a receiving module, a processing module and a sending module;
the receiving module is configured to receive an update probe packet sent by a previous device, where the update probe packet includes: the updated path available resource information of the previous device, where the previous device is a first hop device or the source device located before the intermediate device on an available path through which the update probe packet passes;
the processing module is configured to determine available resource information of an egress link of the intermediate device on an available path through which the update probe packet passes, where the available resource information of the egress link is the available resource information of the egress link determined in a previous probe period of the available path, and update the probe information in the update probe packet according to the updated available resource information of the path of the previous device and the available resource information of the egress link;
the sending module is configured to transmit the updated update detection packet to a next device, where the next device is a first hop device or the destination device located after the intermediate device on an available path where the update detection packet is located.
In a possible design of the sixth aspect, when the intermediate device is a first intermediate device of the available path, the previous device is the source device, and the next device is a first hop device located after the intermediate device on the available path through which the probe packet passes.
In another possible design of the sixth aspect, when the intermediate device is the last intermediate device of the available path, the previous device is the closest hop device located before the intermediate device on the available path in the current probing cycle, and the next device is the destination device.
For the beneficial technical effects of the fourth to sixth aspects that may not be elaborated, reference may be made to the descriptions of the first to third aspects, and details are not repeated here.
In a seventh aspect, the present application provides a source device, including: a processor, a memory, a transceiver and a system bus, wherein the memory and the transceiver are connected to the processor for mutual communication via the system bus, the memory is used for storing computer program instructions, the transceiver is used for communicating with other devices, and the processor implements the method provided by the first aspect and each possible design when executing the computer program instructions stored in the memory.
Alternatively, the processor may be a chip.
In an eighth aspect, the present application provides a destination device, including: a processor, a memory, a transceiver and a system bus, the memory and the transceiver being connected to communicate with the processor via the system bus, the memory being configured to store computer program instructions, the transceiver being configured to communicate with other devices, the processor implementing the method provided by the second aspect and possible designs when executing the computer program instructions stored by the memory.
In a ninth aspect, the present application provides an intermediate device, disposed on any available path between a source device and a destination device, where the intermediate device includes: a processor, a memory, a transceiver and a system bus, the memory and the transceiver being connected to communicate with the processor via the system bus, the memory being configured to store computer program instructions, the transceiver being configured to communicate with other devices, the processor implementing the method provided by the third aspect and possible designs when executing the computer program instructions stored by the memory.
Optionally, in a specific implementation of the seventh aspect to the ninth aspect, the processor may be a chip.
In a tenth aspect, embodiments of the present application may provide a computer-readable storage medium having stored therein computer program instructions for implementing the method of the first aspect and each of the possible designs when executed by a processor.
In an eleventh aspect, embodiments of the present application may provide a computer-readable storage medium having stored therein computer program instructions for implementing the method provided by the second aspect and various possible designs when the computer program instructions are executed by a processor.
In a twelfth aspect, embodiments of the present application may provide a computer-readable storage medium, in which computer program instructions are stored, and when the computer program instructions are executed by a processor, the computer program instructions are used to implement the method provided by the third aspect and each possible design.
In a thirteenth aspect, embodiments of the present application provide a program, which when executed by a processor, is configured to perform the method as provided in the first aspect and various possible designs.
In a fourteenth aspect, embodiments of the present application provide a program, which when executed by a processor, is configured to perform the method as provided in the second aspect and various possible designs.
In a fifteenth aspect, embodiments of the present application provide a program that, when executed by a processor, is configured to perform the method as provided by the third aspect and various possible designs.
In a sixteenth aspect, embodiments of the present application provide a computer program product comprising program instructions for implementing the method as provided in the first aspect and various possible designs.
In a seventeenth aspect, the present application provides a computer program product including program instructions for implementing the method as provided in the second aspect and various possible designs.
In an eighteenth aspect, embodiments of the present application provide a computer program product comprising program instructions for implementing a method as provided in the third aspect and possible designs
In a nineteenth aspect, an embodiment of the present application provides a chip, including: a processing module is interfaced with the communication, the processing module being capable of performing the method provided by the first aspect and each of the possible designs.
Further, the chip further comprises a storage module (e.g., a memory) for storing instructions, a processing module for executing the instructions stored by the storage module, and the execution of the instructions stored in the storage module causes the processing module to execute the method provided by the first aspect and each possible design.
In a twentieth aspect, an embodiment of the present application provides a chip, including: a processing module capable of performing the method provided by the second aspect and each of the possible designs is interfaced with the communication.
Further, the chip also includes a storage module (e.g., a memory) for storing instructions, a processing module for executing the instructions stored by the storage module, and execution of the instructions stored in the storage module causes the processing module to perform the methods provided by the second aspect and possible designs.
In a twenty-first aspect, an embodiment of the present application provides a chip, including: a processing module is interfaced with the communication, the processing module being capable of performing the method provided by the third aspect and each of the possible designs.
Further, the chip further includes a storage module (e.g., a memory) for storing instructions, the processing module is for executing the instructions stored by the storage module, and the execution of the instructions stored in the storage module causes the processing module to execute the method provided by the third aspect and each possible design.
In a twenty-second aspect, the present application provides a load balancing system, comprising: the source end device and the destination end device form at least one available path through the intermediate device;
the source device is the apparatus in the fourth aspect and various possible designs, the destination device is the apparatus in the fifth aspect and various possible designs, and the intermediate device is the apparatus in the sixth aspect and various possible designs.
The load balancing method and apparatus provided in the embodiment of the present application detect path information of an available path that each detection packet passes through by determining all available paths between a source device and a destination device and sending the detection packet to the destination device through a part of the available paths among all available paths, and then determine path available resource information and a weight coefficient of each available path among all available paths according to the received path information of the available path fed back by the destination device, thereby transmitting a data packet to the destination device through at least one available path among all available paths. According to the technical scheme, the detection packets are sent to part of the available paths in all the available paths, link oscillation caused by a full detection algorithm is effectively solved, data traffic can be distributed according to the path available resource information and the weight coefficient of the available paths, and the load balancing effect is improved.
Drawings
Fig. 1 is a schematic view of a topology of a metropolitan area network;
FIG. 2 is a schematic diagram of another topology of a metropolitan area network;
fig. 3 is a schematic diagram of bottleneck bandwidths of different links in different paths between a source end device and a destination end device;
FIG. 4 is a schematic diagram of an architecture of a load balancing system;
fig. 5 is an interaction diagram of an embodiment of a load balancing method according to the present application;
FIG. 6 is a schematic diagram of a simulation of a metropolitan area network topology;
FIG. 7 is a schematic diagram illustrating the effect of different load balancing methods on the flow transmission time with the number of probing paths;
FIG. 8 is a schematic diagram illustrating the effect of different load balancing methods on the flow transmission time as a function of network load;
fig. 9 is a schematic structural diagram of a first load balancing apparatus according to an embodiment of the present application;
fig. 10 is a schematic structural diagram of a second embodiment of a load balancing apparatus according to the present application;
fig. 11 is a schematic structural diagram of a third embodiment of a load balancing apparatus according to the present application;
fig. 12 is a schematic structural diagram of a source device according to an embodiment of the present application;
fig. 13 is a schematic structural diagram of a destination device according to an embodiment of the present application;
fig. 14 is a schematic structural diagram of an intermediate device provided in an embodiment of the present application;
fig. 15 is a schematic structural diagram of a load balancing system according to an embodiment of the present application.
Detailed Description
Fig. 1 is a schematic diagram of a topology of a metropolitan area network. As an example, as shown in fig. 1, the topology of the metro network may include: backbone networks (backbones), Data Centers (DCs), metropolitan area networks, and user equipment. The backbone network is a high-speed network for connecting a plurality of areas or regions, and can connect different cities. Metropolitan Area Networks (MANs) are computer networks established on a metropolitan area scale, ranging between local area networks and wide area networks. The concept of the metropolitan area network is developed from the local area network, the coverage area and the number of users are larger than those of the local area network, and the amount of data and information carried by the metropolitan area network are increased.
Referring to fig. 1, in this embodiment, the metropolitan area network may be connected to a backbone network or a data center, and may transmit data, information, and the like of the backbone network and the data center to the user equipment, so as to provide services such as data, voice, video, and the like for the user. Optionally, the data center may also be connected to a backbone network for managing data and information in the backbone network.
Illustratively, fig. 2 is a schematic diagram of another topology of a metropolitan area network. Alternatively, as shown in fig. 2, the topology may include an access network, a metropolitan area network, and a backbone network, according to network coverage. For example, networks with a coverage range of less than 20km are called access networks, networks with a coverage range between 20km and 300km are called metropolitan area networks, and networks with a coverage range of more than 300km are called backbone networks.
Referring to fig. 2, the backbone network includes a Core Router (CR) mainly responsible for communication with the metro network. Metropolitan networks are divided into 3 levels: the core layer includes a Core Router (CR), and mainly provides high-bandwidth service bearer and transmission, completes interconnection and interworking with an existing network (e.g., an Asynchronous Transfer Mode (ATM) network, a Frame Relay (FR) network, a Digital Data Network (DDN), and an Internet Protocol (IP) network), and implements broadband transmission and high-speed scheduling. The convergence layer includes a convergence router (BR), and mainly functions to provide convergence and distribution processing of user service data to a service access node, and implement service class classification of services. The access layer includes an Access Router (AR), which performs bandwidth and service allocation using multiple access technologies to implement access of users. The access network includes an Optical Line Terminal (OLT) and a user equipment, and the OLT is mainly responsible for connecting the AR and the user equipment.
Illustratively, a Data Center (DC) may also be included in the backbone network. The DC may include a central DC (central DC) connected to the CR of the backbone network and the CR of the metro network, respectively, and a regional DC (regional DC) connected to the BR of the metro network. The DC (central DC and/or regional DC) is connected to the core layer and the convergence layer, and is mainly responsible for data storage, calculation and other functions. The metro network may further include a Broadband Network Gateway (BNG) mainly used in an IPoE authentication scenario.
In the embodiment of the present application, the CR deployed in the metro network is mainly utilized to balance the traffic of the metro network (between two virtual lines), that is, the traffic between the CR and the AR is uniformly distributed to each available path.
Before describing the specific scheme of the present application, first, an application scenario of the present application is described as follows:
in practical applications, with the maturity of 5G networks and the popularization of emerging applications, metropolitan area networks have become the bottleneck of the whole network. When a large burst flow arrives, if the flow cannot be scheduled in time, link congestion may be caused, and the throughput of the network is seriously affected, so that it is very important to rapidly and uniformly distribute the flow of data, information and the like of a backbone network to different paths by using a load balancing algorithm to improve the throughput of the metropolitan area network.
Currently, the equal-cost multipath protocol (ECMP) is the mainstream multipath load balancing algorithm used in the present metropolitan area network, and is a simpler and effective load balancing algorithm. For the same < source-destination > node pair, the conventional routing algorithm usually selects an optimal path between a source end device and a destination end device, unless the path is severely congested or a link failure occurs, the traffic between the < source-destination > pair is transmitted on the path, so that the throughput of the network is reduced, and the ECMP algorithm adds a multi-hop principle when the source end device finds other optimal paths between the < source-destination > nodes, and distributes the arriving data flows to the paths averagely, that is, distributes the traffic to different available paths randomly and with equal probability according to the quintuple (source IP address, destination IP address, source port number, destination port number, protocol number) of the data flows. It is worth noting that these available paths must be equivalent and optimal paths, e.g., equal and minimal in number of hops. The equal probability distribution can be implemented by using a polling or hashing algorithm, and can also be implemented by using other algorithms, which are not limited herein.
However, in this embodiment, because the ECMP algorithm uses data flows as a load balancing granularity, and because of uncertainty of the length of the data flows, when some data flows with longer lengths have hash collision, a serious imbalance condition may be caused, and moreover, because the ECMP is a static load balancing algorithm, it is unaware of the condition of a link, and when a link is congested or an asymmetric condition occurs due to link disconnection, a source end device cannot perceive the condition, which may seriously affect the throughput of a network, and cause a poor load balancing effect. But the ECMP algorithm has simple thought, is easy to deploy, and has better load balancing effect under the conditions of small phase difference and symmetrical network topology.
Furthermore, the bottleneck bandwidth may be very different due to the two paths having the same weight. Illustratively, fig. 3 is a schematic diagram of bottleneck bandwidths of different links in different paths between a source end device and a destination end device. As shown in fig. 3, two selectable paths are formed from the source end device L0 to the destination end device L1 through the intermediate device S0 and the intermediate device S1, respectively, and the lengths of the two selectable paths are the same, however, the bottleneck bandwidth of the first selectable path (thin solid line) is 20Gbps, and the bottleneck bandwidth of the second selectable path (thin dotted line) is 80 Gbps. If there is a load of 100Gbps data traffic between L0 and L1, 50Gbps data traffic load is allocated to each of the first optional path and the second optional path according to the ECMP algorithm, and since the bottleneck bandwidth of the first optional path is 20Gbps less than the allocated 50Gbps, the first optional path will be congested. Thus, in practical applications, if the bottleneck bandwidth of all links is considered, the first alternative path and the second alternative path should be allocated with data traffic loads of 20Gbps and 80Gbps, respectively.
Further, since ECMP is completely unaware of the congestion level of the path, the congestion level of a certain path may be severe, but the source device still sends data traffic to the optional path, which may cause the congestion level of the path to be increased. Moreover, the load balancing capability of the ECMP algorithm is also poor in the face of long flows, and the hash collision of the long flows also affects the load balancing efficiency of the ECMP to a great extent, resulting in poor load balancing effect of the ECMP.
Optionally, the TeXCP, Traffic Engineering with an XCP-like Protocol, is a distributed, stable, and responsive online Traffic Engineering Protocol, and in the scheme, the minimum link utilization of all available paths may be detected by periodically sending a probe packet. The source end device may obtain the weighted link utilization rate of each available path according to the link utilization rate obtained by detection and the load information of each path obtained by statistics, and adjust the load proportion allocated to each available path in the next period through a formula. The principle of the adjustment is as follows: if the weighted utilization of a path is higher than the average utilization, the proportion of the load allocated to the path is reduced in the next cycle, otherwise the proportion is increased. When the number of available paths is small, the method can acquire more comprehensive path information, and the load balancing effect is good. However, the TeXCP algorithm adopts a full probing method and is complex, so that great bandwidth overhead is incurred when probing packets are sent to all available paths under the condition that the network topology is complex, and when the number of available paths increases, great link overhead is incurred when probing packets to all paths, and a flock effect is incurred when probing all available paths, which causes oscillation of link conditions, and reduces the throughput of the network.
In summary, the load balancing method in the prior art has the problems of poor load balancing effect and low network throughput. Aiming at the problems, the application provides a distributed load balancing method facing the metropolitan area network aiming at the topological structure and the flow characteristic of the metropolitan area network and the problem that the existing load balancing mechanism is difficult to obtain the congestion information of the metropolitan area network in real time.
Specifically, an embodiment of the present application provides a load balancing method, where a source device determines all available paths between the source device and a destination device, and sends a probe packet to the destination device through a part of the available paths to probe path information of an available path that each probe packet passes through, and then determines path available resource information and a weight coefficient of each available path in all available paths according to received path information of the available path fed back by the destination device, so as to transmit a data packet to the destination device through at least one available path in all available paths. According to the technical scheme, the detection packets are sent to part of the available paths in all the available paths, link oscillation caused by a full detection algorithm is effectively solved, data traffic can be distributed according to the path available resource information and the weight coefficient of the available paths, and the load balancing effect is improved.
For example, the load balancing method provided in each of the following embodiments of the present application may be applied to a load balancing system. Fig. 4 is a schematic diagram of a load balancing system. As shown in fig. 4, the load balancing system may include a source device 41, a destination device 42, and an intermediate device 43 connected between the source device 41 and the destination device 42. It is to be understood that the embodiments of the present application do not limit the number of the source end device 41, the destination end device 42, and the intermediate devices 43, and may be determined according to actual situations, for example, the number of the source end device 41, the destination end device 42, and the intermediate devices 43 may be at least one, and the number of the source end device 41, the destination end device 42, and the intermediate devices 43 may be the same or different. In practical applications, multiple paths may be formed between the source end device 41 and the destination end device 42 based on the number of intermediate devices 43.
Optionally, referring to fig. 4, the load balancing system exemplarily shows one source device 41, one destination device 42, and N intermediate devices (intermediate device 431 to intermediate device 43N), and this schematic diagram illustrates an example that each path between the source device 41 and the destination device 42 passes through one intermediate device. It is to be understood that the number of intermediate devices in each path between the source device 41 and the destination device 42 is not limited in this embodiment, and the number of intermediate devices in multiple paths may be completely the same, may also be partially the same, and may also be different.
For example, referring to the schematic diagrams shown in fig. 1 and fig. 2, in this embodiment, the source end device 41 is a core router CR, the destination end device 42 is an access router AR, and the intermediate device 43 between the source end device 41 and the destination end device 42 may be an aggregation router, a switch, or other switching devices. The embodiment of the present application does not limit the specific representation forms of the source device, the destination device, and the center device, and may be selected according to an actual application scenario.
Optionally, in this embodiment, the source device may periodically send a probe packet to some of all available paths to probe path information of each available path, and receive path information fed back by the destination device, where the path information may include available bottleneck resource information of the available paths, or the path information may include available resource information of all links on the available paths, and if the path information includes available bottleneck resource information of the available paths, the source device may directly update and store the path available resource information and weight coefficients of all available paths according to the available bottleneck resource information of each available path, and if the path information includes available resource information of all links on the available paths, the source device first calculates available bottleneck resource information of each available path according to the available resource information of all links on the available paths, and updating and storing the path available resource information and the weight coefficients of all available paths according to the available bottleneck resource information of each available path.
Accordingly, when a new data stream arrives, the source device may determine at least one available path for transmitting the data stream using a preset algorithm according to the stored weight coefficients of each available path. The preset algorithm may be a weighted multipath protocol WCMP algorithm. It is understood that the preset algorithm is mainly used to balance utilization rates of the core links, and thus, the preset algorithm may be other load balancing algorithms besides the WCMP algorithm, which is not limited in this embodiment of the present invention.
The technical solution of the present application will be described in detail below with reference to specific examples. It should be noted that the following specific embodiments may be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.
Fig. 5 is an interaction diagram of an embodiment of a load balancing method according to the present application. The load balancing method is explained by information interaction of a source end device and a destination end device. It will be appreciated that there is at least one hop intermediate device in each available path between a source end device and a destination end device. Referring to fig. 5, the load balancing method may include the steps of:
step 51: the source end device sends K detection packets to the destination end device through K available paths in the N available paths, and each detection packet is used for detecting the path information of the available path passed by.
Wherein, N is the total number of available paths between the source end device and the destination end device, N and K are positive integers, and N is greater than K.
In an application scenario of a metropolitan area network, at least one available path may be formed between a source device and a destination device through at least one hop of intermediate device, and the source device and the destination device may perform information interaction through any available path of the at least one available path. Optionally, in order to determine the path available resource information of each available path between the source end device and the destination end device and avoid a large fluctuation range of the path, the source end device may first determine all available paths between the source end device and the destination end device, and randomly determine a part of available paths through which the probe packet may be sent.
For example, the embodiment of the present application explains that the total number of available paths between a source device and a destination device is N, to detect K available paths among the N available paths.
Optionally, as shown in fig. 5, in the embodiment of the present application, before step 51, the load balancing method may further include the following steps:
step 50 a: the source end device determines the N available paths according to the topological structure of the metropolitan area network and the current load information.
Due to the large number of nodes in the metropolitan area network, a plurality of available paths can be formed between the source end device and the destination end device in the metropolitan area network for information transmission. In order to allow a data stream received from the backbone network to be transmitted from a source end device to a destination end device, a total number of available paths between the source end device and the destination end device needs to be determined.
For example, the source device may first obtain a topology structure diagram of the metropolitan area network, determine all paths between the source device and the destination device according to node information in the topology structure diagram, and determine the total number of available paths between the source device and the destination device, that is, N available paths, by combining current load information of each path.
Step 50 b: and the source end equipment determines K available paths from the N available paths according to the total resource information, the total available resource information and the value of N of the metropolitan area network.
Optionally, in an embodiment of the present application, for N available paths between a source end device and a destination end device, when it is necessary to determine path information of each available path and avoid that more available paths all use the same adjustment policy, so that link fluctuation is large, the source end device may determine K available paths from the N available paths to detect the path information of the K available paths.
For example, the source device may randomly determine K available paths from N available paths, or determine K available paths according to a preset screening method.
In this embodiment, the source device may obtain, in the metropolitan area network, total resource information, total available resource information, and a value of N of the metropolitan area network, and determine a value of K. In practical applications, K is proportional to the metro network's available resources information, the total number of available paths N, and inversely proportional to the metro network's total resources information. Illustratively, this K satisfies the following condition:
Figure BDA0002280674640000121
wherein, B is total resource information of the metropolitan area network, S is available resource information of the metropolitan area network, and N is total number of available paths between the source end device and the destination end device.
In an embodiment of the present application, when the resource information of the metro network is characterized by a bandwidth of the network, the total resource information B of the metro network may be a total bandwidth of the metro network, that is, a sum of all bandwidths of the network, and the available resource information S of the metro network is a total available bandwidth of the network (B minus a total network load, i.e., a used bandwidth), and thus, the selection of the value K may be inversely proportional to the total bandwidth of the network and directly proportional to a total number of available paths from the source end device to the destination end device and the total available bandwidth.
For example, when there are currently six available paths between a certain source device and a certain destination device < CR-AR >, the source device (CR) may randomly determine two available paths from the six available paths for detecting the path information of each available path every period. When the total load of the network is reduced or the total number of available paths is increased, the value of K should be appropriately increased, that is, the number of detection paths is increased to improve the load balancing effect.
Step 52: the destination device receives M update probe packets from M available paths, each update probe packet including probe information of the available path traversed.
The M available paths are M available paths in K available paths determined by the source device from the N available paths, M, K and N are positive integers, M is less than or equal to K, K is less than N, and N is the total number of available paths between the source device and the destination device.
In an embodiment of the present application, after a source device sends a probe packet to a destination device through K available paths in N available paths, when each probe packet passes through each hop of intermediate devices between the source device and the destination device, each hop of intermediate devices updates probe information in the probe packet according to available resource information of an egress link of each hop of intermediate devices, so as to form an updated probe packet.
As an example, when the source device determines that the path states of K available paths from N available paths are all normal, K probe packets may be transmitted to the destination device after being updated by at least one hop of intermediate device in the K available paths, and correspondingly, the destination device may receive K updated probe packets from the K available paths.
As another example, when there is an available path with an abnormal or failed path state in K available paths determined by the source end device from the N available paths, for example, the path state of M available paths in the K available paths is normal, so that after the K probe packets are updated by at least one hop of intermediate devices in the K available paths, only the M update probe packets may be transmitted to the destination end device, and accordingly, the destination end device may receive the M update probe packets.
As another example, when the path statuses of K available paths determined by the source end device from the N available paths are all normal, but for some reason, for example, the processing speed of the intermediate device per hop is slow, so that the destination end device cannot receive the update probe packets within the set time range, for example, the destination end device can only receive the update probe packets from M available paths within the set time range, it may also be considered that the destination end device can only receive M update probe packets from M available paths.
In summary, the update probe packet received by the destination device includes probe information of the available path that the destination device has traveled. For example, the probe information may be available resource information of all links on an available path, or may be available bottleneck resource information of the available path after being processed by the intermediate devices of each hop.
Step 53: and the destination terminal equipment determines M pieces of path information of the M usable paths according to the detection information in the M updated detection packets.
In this embodiment, when the destination device receives M update probe packets from M available paths, the destination device may determine the path information of each available path by analyzing the probe information in each update probe packet.
Optionally, in a possible design of the present application, each update probe packet includes: information of available resources for all links on the available path traversed.
Specifically, as an example, the destination device may not process the probe information in the update probe packet, but directly feed back, as the path information of the available path, the available resource information of all links on the available path that passes through and is included in each update probe packet to the source device, so that the source device determines, according to the available resource information of all links on each available path, the available bottleneck resource information of each available path, and thus, for each available path, the path information may include: available resource information for all links on the available path.
As another example, the destination device parses M received update probe packets, after acquiring the probe information in each update probe packet, may determine M available bottleneck resource information of the M available paths according to the available resource information of all links on the available path through which each update probe packet in the M update probe packets passes, where, for each available path, the path information includes: available bottleneck resource information for available paths.
Optionally, in another possible design of the present application, each update probe packet includes: and bottleneck available resource information of the passed available path, wherein the available bottleneck resource information is determined by each intermediate device on the available path sequentially comparing the path available resource information in the received update probe packet with the available resource information of the respective egress link.
Specifically, for any intermediate device applied in any available path between the source device and the destination device, the following operations may be performed:
a1: receiving an update probe packet sent by a previous device, wherein the update probe packet comprises: and the previous device is the first hop device or the source device located before the intermediate device on the available path through which the update detection packet passes, according to the updated path available resource information of the previous device.
A2: determining available resource information of an egress link of the intermediate device on an available path through which the update probe packet passes, where the available resource information of the egress link is the available resource information of the egress link determined in a previous probe period of the available path;
a3: updating the detection information in the updated detection packet according to the updated path available resource information of the previous device and the available resource information of the exit link;
a4: and transmitting the updated update detection packet to the next device, wherein the next device is the first hop device or the destination device which is positioned behind the intermediate device on the available path where the update detection packet is positioned.
As an example, when the intermediate device is a first-hop intermediate device on an available path through which the update probe packet passes, the previous device is an originating device, and the next device is a first-hop device located after the intermediate device on the available path through which the update probe packet passes.
As another example, when the intermediate device is the last intermediate device of the available path, the previous device is the closest hop device located before the intermediate device on the available path through which the update probe packet passes, and the next device is the destination device.
In summary, in the embodiment of the present application, when the path information of each available path includes: when available bottleneck resource information of an available path is obtained, the available bottleneck resource information is determined by the destination device according to available resource information of all links included in the available path, or the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received detection packet and available resource information of respective output links by each intermediate device on the available path; alternatively, the path information of each available path includes: and determining and updating, by the source end device, the M available bottleneck resource information of the M available paths stored by the source end device according to the available resource information of all links on each of the M available paths, thereby obtaining the N available bottleneck resource information of the N available paths.
Step 54: and the destination device feeds back the M pieces of path information to the source device.
In the embodiment of the application, in order to enable the source end device to timely obtain the path information of the detected K available paths, after the destination end device determines M path information of the M available paths, the destination end device feeds back the M path information to the source end device.
It should be noted that the destination device may feed back the M pieces of path information to the source device through the original available path, or may feed back the M pieces of path information to the source device through other available paths, and the update detection packets of different available paths may be transmitted to the source device through the same available path, or may be transmitted to the source device through different available paths. The embodiment of the present application does not limit the available path that each path information passes through, and may be determined according to actual settings.
For example, after the destination device determines M pieces of path information, each piece of path information may be fed back to the source device through an Acknowledgement (ACK) response. Optionally, each positive acknowledgement response carries path information of one available path. It can be understood that, the embodiment of the present application does not limit the way in which the destination device feeds back the path information, and the path information may be determined according to an actual situation, and is not described herein again.
Step 55: the source end device determines N path available resource information and N weight coefficients of the N available paths according to the M path information.
In this embodiment, when the destination device feeds back the M pieces of path information to the source device, the source device may correspondingly receive the M pieces of path information, and update the path available resource information of the M available paths according to the M pieces of path information.
For example, for N available paths between the source end device and the destination end device, at an initial time, the source end device may determine and store initial path available resource information and an initial weight coefficient of each available path by using an ECMP algorithm. For example, in a certain probing period, when the source device sends a probe packet to the destination device through K available paths of N available paths and receives M path information of M available paths, the source device may first update the path available resource information of the M available paths, and then update the weight coefficients of the N available paths based on the path available resource information of the remaining (N-M) available paths determined in the previous probing period and the updated path available resource information of the M available paths, so as to obtain N path available resource information and N weight coefficients of the N available paths in the probing period.
As an example, for each available path, if the path information includes: the available bottleneck resource information of the available path, the step 55 can be implemented by the following steps:
step B1: and updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain the available resource information of the N paths of the N available paths.
Step B2: and determining N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
In this embodiment of the present application, when the source device receives available bottleneck resource information of M available paths, the source device may update path available resource information of the M available paths in the N available paths by using the available bottleneck resource information, and correspondingly update path available resource information of each available path stored in the source device.
For example, in order to enable the source device to balance load information of each available path when receiving a data stream transmitted by an upper-level application (e.g., a backbone network), the source device further needs to determine N weight coefficients of the N available paths according to N path available resource information of the N available paths. Wherein the path states of the N available paths are all normal, and the sum of the N weight coefficients is 1.
As another example, for each available path, if the path information includes: the available resource information of all links on the available path, then the step 55 can be implemented by the following steps:
step C1: determining M available bottleneck resource information of the M available paths according to the available resource information of all links on each of the M available paths;
step C2: and updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain the available resource information of the N paths of the N available paths.
Step C3: and determining N weight coefficients of the N available paths according to the N path available resource information.
In this embodiment of the present application, when the source device receives available resource information of all links on M available paths, for each available path, the source device may first compare the available resource information of all links on the available path, and determine available bottleneck resource information of the available path from the available resource information of all links, where the available bottleneck resource information is the available resource information with the smallest value in the available resource information of all links, and then update M path available resource information of the M available paths stored in the source device, so as to obtain N path available resource information of the N available paths.
Similarly, in order to ensure the throughput of the network in the metropolitan area network and improve load balancing, the source device needs to determine N weight coefficients of N available paths according to the information of the available resources of the N paths of the N available paths, so that when a data stream arrives, the data stream can be timely and uniformly distributed to different available paths.
Step 56: and the source end equipment transmits the data packet to the destination end equipment through at least one available path in the N available paths according to the N weight coefficients and the N path available resource information.
In this embodiment, when the source device obtains the data packet to be transmitted, at least one available path may be selected from the N available paths according to the N weight coefficients and the N path available resource information, so as to transmit the data packet to the destination device.
Specifically, when a data packet (data stream) arrives, the source device may select at least one available path to the destination device for the arriving data packet based on the N weight coefficients and the N path available resource information, so as to uniformly distribute the data packet between the source device and the destination device to each available path.
It will be appreciated that the source device first selects N available paths for each < source device-destination device > pair based on the topology and load information of the metro network. The source device selects K available paths randomly from the N available paths for sending a detection packet, based on the total resource information, the total available resource information, and the value of N of the metropolitan area network periodically, so as to detect the available bandwidth of the available path through which the source device passes. The detection packet sent by the source end device comes and goes between the source end device and the destination end device according to a specific path, and the path information of the available path is fed back to the source end device. When the source end device receives an update detection packet returned by an available path, the path available resource information of the available path and the weight coefficients of all available paths are updated.
It should be noted that, when the source device receives a data packet sent by the upper device, the same data flow may be divided into a plurality of sub-flows (flows) according to the arrival time interval between the data packet and the data packet, each sub-flow is composed of a plurality of data packets, and then at least one available path is selected for the sub-flow by using the WCMP algorithm according to the weight coefficient of the available path.
Illustratively, in a metropolitan network topology, a table of information is maintained between each < source-destination device > pair. For example, table 1 is an information table between < source device-destination device > pairs, and referring to table 1, there are three columns of information in the information table, which are path status, path available resource information (available bandwidth), and path weight coefficient, respectively. There are two path states, Normal (Normal) and failure (Fail), where the path available resource information of available path 1 is available bandwidth of 5000bps, the path available resource information of available path 2 is available bandwidth of 3000bps, and the path available resource information of available path 3 is available bandwidth of 2000bps, and accordingly, the weighting factor of available path 1 is 0.5, the weighting factor of available path 2 is 0.3, and the weighting factor of available path 3 is 0.2, as shown in the following table.
TABLE 1 table of information between source-destination device pairs
Figure BDA0002280674640000161
In this embodiment, when the source device receives an update probe packet returned by a certain available path, the source device updates the available bandwidth of the available path, and calculates the weight coefficient of each path according to the normalization of the available bandwidth of all Normal paths. It is worth noting that the failed path does not participate in the weight coefficient calculation, i.e. it is not allocated a data stream in the next transmission cycle. The weighting coefficient of each available normal path is positive and is added to be 1, and the weighting coefficient represents the flow rate proportion which each available path should be distributed to in the next transmission period. When a new subflow Flowet arrives, the source device allocates a Normal path to the new subflow Flowet through the WCMP algorithm, and if the path does not fail, all data packets included in the Flowet are transmitted on the available path.
Optionally, in this embodiment, for each data packet, it is assumed that a sub-stream corresponding to the data packet is f, an available path is p, and { p '} is a set of all available paths between the source end device and the destination end device, if a path state of the available path p is a failure, an available path with a largest bandwidth is selected from the selected available paths as an available path of the data packet, and if the sub-stream f is a new stream, a normal path is randomly selected from { p' } by using a WCMP algorithm as an available path of the data packet, where specific program codes are as follows:
Figure BDA0002280674640000162
further, in the embodiment of the present application, the reason why the source device sends the probe packet through K available paths of the N available paths may be summarized as follows: the first is to avoid the herd effect, that is, since the link sharing situation in the metropolitan area network is very common, the available paths between different < source device-destination device > pairs may share some same link. When probe packets are sent over all available paths between a source end device and a destination end device, different source end devices are likely to make the same decision to direct data streams to a link with a larger available bandwidth at the same time, resulting in congestion of the link. In the next transmission period, the flow is simultaneously guided to other paths, so that serious link oscillation is repeatedly generated, and therefore, the phenomenon can be effectively avoided by selecting part of available paths from all available paths between the source end equipment and the destination end equipment to send the detection packets, and the problem of link oscillation is solved; secondly, the number of nodes in the metropolitan area network is large, the topology structure is complex, the source end equipment can bring large bandwidth overhead when sending the detection packets to all available paths, the cost is high, and the cost performance of the load balancing problem of the metropolitan area network can be improved by selecting part of the available paths to send the detection packets.
To sum up, in the load balancing method provided in this embodiment of the present application, a source device sends K detection packets to a destination device through K available paths in N available paths, where each detection packet is used to detect path information of an available path that passes through, and receive M path information of M available paths fed back by the destination device, where M is a positive integer less than or equal to K, and according to the M path information, N path available resource information and N weight coefficients of the N available paths are determined, and according to the N weight coefficients and the N path available resource information, a data packet is transmitted to the destination device through at least one available path in the N available paths. According to the technical scheme, the detection packet is sent by using part of available paths between the source end equipment and the destination end equipment, link oscillation caused by a full detection algorithm is effectively solved, data flow can be distributed according to the path available resource information and the weight coefficient of the available paths, and the load balancing effect is improved.
Further, in this embodiment of the present application, the source device may also find a path fault problem in time, and specifically, the load balancing method provided in this embodiment may further include the following steps:
and if the response information fed back by the destination end equipment is not received after the first available path in the K available paths sends the detection packet or the data packet for the preset times to the destination end equipment, marking the first available path as a fault path.
Illustratively, in order to ensure the stability of the load balancing method in this scheme, the source device needs to be able to find a network fault in time and perform corresponding processing to ensure the normal operation of the network when the network is in an abnormal or unpredictable environment, such as a hardware fault, a path damage, or an operation error.
For example, for determining a path failure, when a source end device continuously sends a probe packet to a destination end device through an available path a preset number of times, no path information fed back by the destination end device is received, at this time, the first available path may be marked as a failed path, and a probe packet is sent through the path in each subsequent probing cycle to probe whether the state of the available path is recovered to normal. Or, when the source device continuously sends a preset number of data packets to the destination device through a certain available path, it does not receive the response information fed back by the destination device, at this time, the first available path may also be marked as a failed path, and stops sending the data packet to the available path, and sends the data packet that has not been sent to the failed path from another available path, and does not send the data packet to the failed path within a period of time after that time until the available path returns to normal. Alternatively, the available path selected additionally may be the available path with the largest available bandwidth after the failed path is removed.
Optionally, the preset number may be 3, or may be other values, for example, 2, 5, and the like, which may be set according to an actual scene, and will not be described herein again.
In this embodiment, when it is determined that a certain available path has a fault, the path is marked as a fault state, and no data packet is sent in the following time, so that the problem of data packet transmission failure is effectively avoided, and the transmission efficiency and the transmission integrity of the data packet are improved.
Further, in an embodiment of the present application, the load balancing method may further include the following steps:
and for a fault path between the source end equipment and the destination end equipment, periodically sending a detection packet to the fault path, if a plurality of detection periods which are preset continuously can receive path information fed back by the destination end equipment, updating the fault path to be a normal available path, and updating the path information received in the last detection period to be the path information of the normal available path.
Specifically, when it is determined that a certain available path has a fault, the source device sends a probe packet to the faulty path in each probe period Tp, that is, periodically and continuously sends the probe packet. If the source end device can receive the path information or the response information for a preset number of detection cycles, the path is considered to be recovered to Normal, the state of the fault path in the source end device is updated to Normal, the path information of the path is updated according to the detection information in the finally received response information, and then the weight coefficients of all available paths are updated.
For example, in this embodiment, for each detection period Tp, it is assumed that { p "} is a set of all failure paths between the source end device and the destination end device, if { p" } is not an empty set, a detection packet is sent to each available path in { p "}, if a path p can receive response information ACK fed back by the destination end device in all three consecutive detection periods, it is determined that the path p is a normal path, and the path p is added to the normal path set { p '}, and then, in a subsequent detection process, K available paths are randomly selected from the normal path set { p' }tosend the detection packet. The specific program code is as follows:
Figure BDA0002280674640000171
Figure BDA0002280674640000181
the scheme of the embodiment of the application periodically detects the path state of the fault path, and when the path state is recovered to be normal, the path state can be attributed to the normal path set, so that the path available resource information of the available path is determined, and the weight coefficient is distributed to the path available resource information. The available path set is updated in time, the transmission efficiency of the data packet is improved, and the throughput of the metropolitan area network is improved.
Fig. 6 is a schematic diagram of a simulation of a metro network topology. Referring to fig. 6, the topology may include a server, a source device (CR), an intermediate device (BR), a destination device (one-layer AR and two-layer AR), and an OLT. The server sends the data stream to the CR, and the CR transmits the data stream to the first layer of AR through the BR and then sequentially transmits the data stream to the second layer of AR and the OLT.
Optionally, as shown in fig. 6, it is assumed that the schematic diagram of the metro network topology includes 2 CRs, 6 BRs, 6 first-layer ARs and 4 second-layer ARs, traffic is sent from top to bottom, that is, from the CRs to the second-layer ARs, bandwidth of each link is 10Gbps, and there are six available paths between each < CR-AR > pair.
Based on the diagram shown in fig. 6, fig. 7 is a diagram illustrating the influence of different load balancing methods on the flow transmission time according to the number of probing paths. Alternatively, in the schematic diagram shown in fig. 7, assuming that the metro network is under the condition of 80% of the total bandwidth, by changing the number of probe paths, the efficiencies of the partial load-balancing (PLB) algorithm with variable number of probe paths and the load-balancing algorithm with fixed number of probe paths (for example, Hermes) of the present application may be compared. Referring to fig. 7, it can be found that the overall performance of the PLB algorithm is better than that of the Hermes algorithm based on the simulation result, and the PLB algorithm has a shorter Flow Completion Time (FCT), and furthermore, based on the simulation result, the PLB algorithm can achieve the optimal performance when the number of detection paths is 3, thereby confirming that the performance of the PLB algorithm with a variable number of detection strips is better than that of the Hermes algorithm with a fixed number of detection strips.
Based on the schematic diagram shown in fig. 6, fig. 8 is a schematic diagram illustrating the influence of different load balancing methods on the flow transmission time according to the network load. Alternatively, in the schematic diagram shown in fig. 8, assuming that the number of the probing paths is kept to be 3 for explanation (i.e., 3 probing paths are randomly selected from 6 available paths between the source device and the destination device in each probing cycle), it can be seen that under high load conditions (70%, 80%, 90%), the average Flow Completion Time (FCT) of the Partial Load Balancing (PLB) of the present application is optimal in three schemes (Hermes, ECMP, and PLB), thereby confirming that the partial probing algorithm has high load balancing efficiency.
In summary, in the embodiment of the present application, the method only needs to detect the minimum available bandwidth of the path when detecting the path information, and does not need to use the link utilization rate as the congestion index, which not only reduces the calculation overhead of the source device, but also can converge the scheme, thereby avoiding the problem that the link utilization rate index cannot be converged by simply using the link utilization rate index.
The following are embodiments of the apparatus of the present application that may be used to perform embodiments of the method of the present application. For details which are not disclosed in the embodiments of the apparatus of the present application, reference is made to the embodiments of the method of the present application.
Fig. 9 is a schematic structural diagram of a first embodiment of a load balancing apparatus according to the present application. The device is applied to source end equipment. As shown in fig. 9, the apparatus of the present embodiment may include: a sending module 91, a receiving module 92 and a processing module 93.
The sending module 91 is configured to send K detection packets to a destination device through K available paths in N available paths, where each detection packet is used to detect path information of a passed available path, N is a total number of available paths between the source device and the destination device, N and K are positive integers, and N is greater than K;
the receiving module 92 is configured to receive M pieces of path information of M available paths fed back by the destination device, where M is a positive integer smaller than or equal to K;
the processing module 93 is configured to determine, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths;
the sending module 94 is further configured to transmit a data packet to the destination device through at least one of the N available paths according to the N weight coefficients and the N path available resource information.
For example, in one possible design of the embodiment of the present application, the path information of each available path includes: available bottleneck resource information for the available path;
the available bottleneck resource information is determined by the destination device according to the available resource information of all links included by the available path;
or
The available bottleneck resource information is determined by sequentially comparing the path available resource information in the received probe packet and the available resource information of the respective output link by each intermediate device on the available path.
In an embodiment of the present application, the processing module 93 is specifically configured to update, according to the M available bottleneck resource information of the M available paths, the M path available resource information of the M available paths stored by the source end device to obtain N path available resource information of the N available paths, and determine N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
Illustratively, in another possible design of the embodiment of the present application, the path information includes, for each available path: available resource information of all links on the available path;
the processing module 93 is specifically configured to determine, according to the available resource information of all links on each of the M available paths, M available bottleneck resource information of the M available paths, update, according to the M available bottleneck resource information of the M available paths, the M path available resource information of the M available paths stored by the source end device, obtain N path available resource information of the N available paths, and determine, according to the N path available resource information, N weight coefficients of the N available paths.
For example, in another possible design of the embodiment of the present application, the processing module 93 is further configured to mark the first available path as a failed path when none of the receiving modules 92 receives the response information fed back by the destination device after the sending module 91 sends the probe packet or the data packet to the destination device for a preset number of times through the first available path in the K available paths.
Optionally, in another possible design of the embodiment of the present application, for the fault path between the source end device and the destination end device, the processing module 93 is further configured to update the fault path to a normal available path and update path information in the acknowledgement information received in the last detection period to the path information of the normal available path when the sending module 91 periodically sends a detection packet to the fault path and the receiving module 92 receives acknowledgement information fed back by the destination end device in a predetermined number of consecutive detection periods.
For example, in another possible design of the embodiment of the present application, the processing module 93 is further configured to determine, before the sending module 91 sends N probe packets to the destination device through K available paths in the N available paths, the N available paths according to a topology structure of a metropolitan area network and current load information, and determine, according to total resource information of the metropolitan area network, the total available resource information, and a value of the N, the K available paths in the N available paths.
Optionally, K satisfies the following condition:
Figure BDA0002280674640000191
wherein, B is the total resource information of the metropolitan area network, and S is the available resource information of the metropolitan area network.
The apparatus of this embodiment may be used to execute the implementation scheme of the source end device in the method embodiment shown in fig. 5, and the specific implementation manner and the technical effect are similar, and are not described here again.
Fig. 10 is a schematic structural diagram of a second embodiment of a load balancing apparatus according to the present application. The device is applied to destination equipment. As shown in fig. 10, the apparatus of the present embodiment may include: a receiving module 101, a processing module 102 and a sending module 103.
The receiving module 101 is configured to receive M update probe packets from M available paths, where each update probe packet includes probe information of a traversed available path, where the M available paths are M available paths in K available paths determined by a source end device from N available paths, M, K and N are positive integers, M is less than or equal to K, K is less than N, and N is a total number of available paths between the source end device and the destination end device;
the processing module 102 is configured to determine, according to the probe information in the M update probe packets, M path information of the M available paths;
the sending module 103 is configured to feed back the M pieces of path information to the source end device.
For example, in one possible design of the embodiment of the present application, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available resource information for all links on the available path.
For example, in another possible design of the embodiment of the present application, each update probe packet includes: available resource information of all links on the available path;
for each available path, the path information includes: available bottleneck resource information for the available path;
the processing module 102 is specifically configured to determine, according to the available resource information of all links on the available path through which each of the M update probe packets passes, M available bottleneck resource information of the M available paths.
For example, in another possible design of the embodiment of the present application, each update probe packet includes: available bottleneck resource information of available paths traversed;
the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received update probe packet and the available resource information of the respective egress link by each intermediate device on the available path.
The apparatus of this embodiment may be used to execute the implementation scheme of the destination device in the method embodiment shown in fig. 5, and the specific implementation manner and the technical effect are similar and will not be described again here.
Fig. 11 is a schematic structural diagram of a third embodiment of a load balancing apparatus according to the present application. The device is applied to any intermediate device in any available path between a source device and a destination device. As shown in fig. 11, the apparatus of the present embodiment may include: a receiving module 111, a processing module 112 and a transmitting module 113.
The receiving module 111 is configured to receive an update probe packet sent by a previous device, where the update probe packet includes: the updated path available resource information of the previous device, where the previous device is a first hop device or the source device located before the intermediate device on an available path through which the update probe packet passes;
the processing module 112 is configured to determine available resource information of an egress link of the intermediate device on an available path through which the update probe packet passes, where the available resource information of the egress link is determined by the available path in a previous probe period, and update the probe information in the update probe packet according to updated path available resource information of the previous device and available resource information of the egress link;
the sending module 113 is configured to transmit the updated update detection packet to a next device, where the next device is a first hop device or the destination device located after the intermediate device on an available path where the update detection packet is located.
Optionally, in a possible design of the embodiment of the present application, when the intermediate device is a first intermediate device of the available path, the previous device is the source device, and the next device is a first hop device located after the intermediate device on the available path through which the probe packet passes.
Optionally, in a possible design of the embodiment of the present application, when the intermediate device is a last intermediate device of the available path, the previous device is a closest hop device located before the intermediate device on the available path in a current probing cycle, and the next device is the destination device.
The apparatus of this embodiment may be used to execute the implementation scheme of the intermediate device in the method embodiment shown in fig. 5, and the specific implementation manner and the technical effect are similar and will not be described again here.
It should be noted that the division of the modules of the above apparatus is only a logical division, and the actual implementation may be wholly or partially integrated into one physical entity, or may be physically separated. And these modules can be realized in the form of software called by processing element; or may be implemented entirely in hardware; and part of the modules can be realized in the form of calling software by the processing element, and part of the modules can be realized in the form of hardware. For example, the processing module may be a processing element separately set up, or may be implemented by being integrated in a chip of the apparatus, or may be stored in a memory of the apparatus in the form of program code, and a function of the processing module may be called and executed by a processing element of the apparatus. Other modules are implemented similarly. In addition, all or part of the modules can be integrated together or can be independently realized. The processing element described herein may be an integrated circuit having signal processing capabilities. In implementation, each step of the above method or each module above may be implemented by an integrated logic circuit of hardware in a processor element or an instruction in the form of software.
For example, the above modules may be one or more integrated circuits configured to implement the above methods, such as: one or more Application Specific Integrated Circuits (ASICs), or one or more microprocessors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs), among others. For another example, when some of the above modules are implemented in the form of a processing element scheduler code, the processing element may be a general-purpose processor, such as a Central Processing Unit (CPU) or other processor that can call program code. As another example, these modules may be integrated together, implemented in the form of a system-on-a-chip (SOC).
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the application to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored in a readable storage medium or transmitted from one readable storage medium to another readable storage medium, for example, the computer instructions may be transmitted from one website site, computer, server, or data center to another website site, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The readable storage medium may be any available medium that can be accessed by a computer or a data storage device including one or more available media integrated servers, data centers, and the like. The usable medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., Solid State Disk (SSD)), among others.
Fig. 12 is a schematic structural diagram of a source device according to an embodiment of the present application. As shown in fig. 12, the apparatus may include: a processor 121, a memory 122, a transceiver 123 and a system bus 124, where the memory 122 and the transceiver 123 are connected to the processor 121 through the system bus 124 and perform mutual communication, the memory 122 is used for storing computer program instructions, the transceiver 123 is used for communicating with other devices, and the processor 121 implements the implementation scheme of the source device in the method embodiment shown in fig. 5 when executing the computer program instructions stored in the memory 122.
Optionally, in terms of hardware implementation, the sending module 91 and the receiving module 92 in the embodiment shown in fig. 9 correspond to the transceiver 123 in the embodiment, and the transceiver 123 forms a communication interface.
Fig. 13 is a schematic structural diagram of a destination device according to an embodiment of the present application. As shown in fig. 13, the apparatus may include: a processor 131, a memory 132, a transceiver 133 and a system bus 134, wherein the memory 132 and the transceiver 133 are connected to the processor 131 through the system bus 134 and perform communication with each other, the memory 132 is used for storing computer program instructions, the transceiver 133 is used for communicating with other devices, and the processor 131 implements the implementation scheme of the destination device in the method embodiment shown in fig. 5 when executing the computer program instructions stored in the memory 132.
Optionally, in terms of hardware implementation, the receiving module 101 and the sending module 103 in the embodiment shown in fig. 10 correspond to the transceiver 133 in this embodiment, and the transceiver 133 forms a communication interface.
Fig. 14 is a schematic structural diagram of an intermediate device according to an embodiment of the present application. The intermediate device is any device in any available path between the source device and the destination device. As shown in fig. 14, the apparatus may include: a processor 141, a memory 142, a receiver 143, and a system bus 144. The memory 142 and the receiver 143 are connected to the processor 141 through the system bus 144 and perform communication with each other, the memory 142 is used for storing computer program instructions, the receiver 143 is used for communicating with other devices, and the processor 141 executes the computer program instructions stored in the memory 142 to implement the implementation scheme of the intermediate device in the method embodiment shown in fig. 5.
Optionally, in terms of hardware implementation, the receiving module 111 and the sending module 113 in the embodiment shown in fig. 11 correspond to the transceiver 143 in this embodiment, and the transceiver 143 constitutes a communication interface.
It is understood that in the embodiments shown in fig. 12-14, the transceiver (transceiver 123, transceiver 133, or transceiver 133) may include: a transmitter and a receiver. The transmitter may also be referred to as a transmitter, a transmitting port, a transmitting interface, or the like, and the receiver may also be referred to as a receiver, a receiving port, or a receiving interface, or the like, which are not limited in this embodiment of the application.
The system bus mentioned in fig. 12, fig. 13 or fig. 14 may be a Peripheral Component Interconnect (PCI) bus, an Extended Industry Standard Architecture (EISA) bus or the like. The system bus may be divided into an address bus, a data bus, a control bus, and the like. For ease of illustration, only one thick line is shown, but this does not mean that there is only one bus or one type of bus. The transceiver is used to enable communication between the database access device and other devices (e.g., clients, read-write libraries, and read-only libraries). The memory may comprise Random Access Memory (RAM) and may also include non-volatile memory (non-volatile memory), such as at least one disk memory.
The processor may be a general-purpose processor, including a central processing unit CPU, a Network Processor (NP), and the like; but also a digital signal processor DSP, an application specific integrated circuit ASIC, a field programmable gate array FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components.
Optionally, an embodiment of the present application provides a computer-readable storage medium, where computer program instructions are stored in the computer-readable storage medium, and when the computer program instructions are executed on a computer, the computer is caused to execute implementation of the source end device in the method embodiment as shown in fig. 5.
Optionally, an embodiment of the present application further provides a computer-readable storage medium, where computer program instructions are stored in the computer-readable storage medium, and when the computer program instructions are run on a computer, the computer is caused to execute an implementation scheme of the destination device in the method embodiment shown in fig. 5.
Optionally, an embodiment of the present application further provides a computer-readable storage medium, where computer program instructions are stored in the computer-readable storage medium, and when the computer program instructions are executed on a computer, the computer is caused to execute an implementation scheme of the intermediate device in the method embodiment shown in fig. 5.
The embodiment of the present application further provides a program, and when the program is executed by a processor, the program is configured to execute the technical solution of the source device side in the foregoing method embodiment.
The embodiment of the present application further provides a program, and when the program is executed by a processor, the program is configured to execute the technical solution on the destination device side in the foregoing method embodiment.
The embodiment of the present application further provides a program, and when the program is executed by a processor, the program is configured to execute the technical solution on the side of the intermediate device in the foregoing method embodiment.
An embodiment of the present application further provides a computer program product, which includes a program instruction, where the program instruction is used to implement the technical solution of the source device side in the foregoing method embodiment.
The embodiment of the present application further provides a computer program product, which includes program instructions, where the program instructions are used to implement the technical solution of the destination device side in the foregoing method embodiment.
The embodiment of the present application further provides a computer program product, which includes program instructions, where the program instructions are used to implement the technical solution on the side of the intermediate device in the foregoing method embodiment.
An embodiment of the present application further provides a chip, including: the processing module and the communication interface, the processing module can execute the technical scheme of the source device side in the foregoing method embodiments.
Further, the chip further includes a storage module (e.g., a memory), where the storage module is configured to store an instruction, and the processing module is configured to execute the instruction stored by the storage module, and execute the instruction stored in the storage module so that the processing module executes the technical solution on the source device side.
An embodiment of the present application further provides a chip, including: and the processing module and the communication interface, wherein the processing module can execute the technical scheme of the destination device in the method embodiment.
Further, the chip further includes a storage module (e.g., a memory), where the storage module is configured to store instructions, the processing module is configured to execute the instructions stored by the storage module, and the execution of the instructions stored in the storage module causes the processing module to execute the technical solution on the destination device side.
An embodiment of the present application further provides a chip, including: and the processing module and the communication interface are used for executing the technical scheme of the intermediate equipment in the method embodiment.
Further, the chip further includes a storage module (e.g., a memory), where the storage module is configured to store instructions, and the processing module is configured to execute the instructions stored by the storage module, and execute the instructions stored in the storage module so that the processing module executes the technical solution on the intermediate device side.
In the several embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other manners. For example, the above-described apparatus embodiments are merely illustrative, and for example, a division of a unit is merely a logical division, and an actual implementation may have another division, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
Fig. 15 is a schematic structural diagram of a load balancing system according to an embodiment of the present application. As shown in fig. 15, the load balancing system may include: a source end device 151, a destination end device 152, and an intermediate device 153 connected between the source end device 151 and the destination end device 152. The source end device 151 and the destination end device 152 may form at least one available path through the intermediate device 153.
The source device 151 may be the load balancing apparatus in the embodiment shown in fig. 9 or the source device in the embodiment shown in fig. 12; the destination device 152 may be the load balancing apparatus in the embodiment shown in fig. 10 or the destination device in the embodiment shown in fig. 13; the intermediate device 153 may be the load balancing apparatus of the embodiment shown in fig. 11 or the intermediate device of the embodiment shown in fig. 14.
For example, in this embodiment, the source device 151 may send probe packets to the destination device 152 through K available paths of N available paths, and receive M update probe packets fed back by the destination device, where at least one intermediate device exists on each available path. Wherein N is the total number of available paths between the source device and the destination device, K is smaller than N, M is smaller than or equal to K, M, K and N are positive integers.
In this embodiment, for specific implementation manners of the source device 151, the destination device 152, and the intermediate device 153, reference may be made to the descriptions in the foregoing embodiments, and details are not described here.
In the present application, "at least one" means one or more, "a plurality" means two or more. "and/or" describes the association relationship of the associated objects, meaning that there may be three relationships, e.g., a and/or B, which may mean: a exists alone, A and B exist simultaneously, and B exists alone, wherein A and B can be singular or plural. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship; in the formula, the character "/" indicates that the preceding and following related objects are in a relationship of "division". "at least one of the following" or similar expressions refer to any combination of these items, including any combination of the singular or plural items. For example, at least one (one) of a, b, or c, may represent: a, b, c, a-b, a-c, b-c, or a-b-c, wherein a, b, c may be single or multiple.
It is to be understood that the various numerical references referred to in the embodiments of the present application are merely for descriptive convenience and are not intended to limit the scope of the embodiments of the present application.
It should be understood that, in the embodiment of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiment of the present application.

Claims (22)

1. A method of load balancing, the method comprising:
sending K detection packets to a destination device through K available paths in N available paths, wherein each detection packet is used for detecting path information of the passed available path, N is the total number of the available paths between a source device and the destination device, N and K are positive integers, and N is greater than K;
receiving M path information of M available paths fed back by the destination device, wherein M is a positive integer less than or equal to K;
determining N path available resource information and N weight coefficients of the N available paths according to the M path information;
and transmitting a data packet to the destination device through at least one of the N available paths according to the N weight coefficients and the N path available resource information.
2. The method of claim 1, wherein the path information for each available path comprises: available bottleneck resource information for the available path;
the available bottleneck resource information is determined by the destination device according to the available resource information of all links included by the available path;
or
The available bottleneck resource information is determined by sequentially comparing the path available resource information in the received probe packet and the available resource information of the respective output link by each intermediate device on the available path.
3. The method according to claim 2, wherein said determining N path available resource information and N weight coefficients of the N available paths according to the M path information comprises:
updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain available resource information of the N paths of the N available paths;
and determining N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
4. The method of claim 1, wherein the path information comprises, for each available path: available resource information of all links on the available path;
the determining, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths includes:
determining M available bottleneck resource information of the M available paths according to the available resource information of all links on each of the M available paths;
updating the available resource information of the M paths of the M available paths stored by the source end device according to the available bottleneck resource information of the M paths to obtain available resource information of the N paths of the N available paths;
and determining N weight coefficients of the N available paths according to the N path available resource information.
5. The method according to any one of claims 1-4, further comprising:
and if the response information fed back by the destination end equipment is not received after a first available path in the K available paths sends a detection packet or a data packet for a preset number of times to the destination end equipment, marking the first available path as a fault path.
6. The method according to any one of claims 1-5, wherein before said sending N probe packets to the destination device over K of the N available paths, the method further comprises:
determining the N available paths according to the topological structure of the metropolitan area network and the current load information;
and determining the K available paths from the N available paths according to the total resource information, the total available resource information and the value of the N of the metropolitan area network.
7. The method of claim 6, wherein K satisfies the following condition:
Figure FDA0002280674630000021
wherein, B is the total resource information of the metropolitan area network, and S is the available resource information of the metropolitan area network.
8. A method of load balancing, the method comprising:
receiving M update detection packets from M available paths, wherein each update detection packet comprises detection information of a passed available path, the M available paths are M available paths in K available paths determined by a source end device from the N available paths, M, K and N are positive integers, M is smaller than or equal to K, K is smaller than N, and N is the total number of available paths between the source end device and a destination end device;
determining M path information of the M available paths according to the detection information in the M update detection packets;
and feeding back the M pieces of path information to the source end equipment.
9. The method of claim 8, wherein each update probe packet comprises: available resource information of all links on the available path;
for each available path, the path information includes: available resource information for all links on the available path.
10. The method of claim 8, wherein each update probe packet comprises: available resource information of all links on the available path;
for each available path, the path information includes: available bottleneck resource information for the available path;
then, the determining M path information of the M available paths according to the probe information in the M update probe packets includes:
and determining the M available bottleneck resource information of the M available paths according to the available resource information of all links on the available path passed by each update detection packet in the M update detection packets.
11. The method of claim 8, wherein each update probe packet comprises: available bottleneck resource information of available paths traversed;
the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received update probe packet and the available resource information of the respective egress link by each intermediate device on the available path.
12. A load balancing apparatus, the apparatus comprising: the device comprises a sending module, a receiving module and a processing module;
the sending module is configured to send K detection packets to a destination device through K available paths in N available paths, where each detection packet is used to detect path information of a passed available path, N is a total number of available paths between a source device and the destination device, N and K are positive integers, and N is greater than K;
the receiving module is configured to receive M pieces of path information of M available paths fed back by the destination device, where M is a positive integer smaller than or equal to K;
the processing module is configured to determine, according to the M pieces of path information, N pieces of path available resource information and N pieces of weight coefficients of the N pieces of available paths;
the sending module is further configured to transmit a data packet to the destination device through at least one of the N available paths according to the N weight coefficients and the N path available resource information.
13. The apparatus of claim 12, wherein the path information for each available path comprises: available bottleneck resource information for the available path;
the available bottleneck resource information is determined by the destination device according to the available resource information of all links included by the available path;
or
The available bottleneck resource information is determined by sequentially comparing the path available resource information in the received probe packet and the available resource information of the respective output link by each intermediate device on the available path.
14. The apparatus according to claim 13, wherein the processing module is specifically configured to update, according to M available bottleneck resource information of the M available paths, M path available resource information of the M available paths stored by the source device, to obtain N path available resource information of the N available paths, and determine N weight coefficients of the N available paths according to the N path available resource information of the N available paths.
15. The apparatus of claim 12, wherein the path information comprises, for each available path: available resource information of all links on the available path;
the processing module is specifically configured to determine, according to the available resource information of all links on each of the M available paths, M available bottleneck resource information of the M available paths, update, according to the M available bottleneck resource information of the M available paths, the M path available resource information of the M available paths stored by the source end device, obtain N path available resource information of the N available paths, and determine, according to the N path available resource information, N weight coefficients of the N available paths.
16. The apparatus according to any one of claims 12 to 15, wherein the processing module is further configured to mark the first available path as a failed path when no response information fed back by the destination device is received by the receiving module after the sending module sends a probe packet or a data packet to the destination device for a preset number of times through the first available path in the K available paths.
17. The apparatus according to any one of claims 12 to 16, wherein the processing module is further configured to determine, before the sending module sends N probe packets to the destination device through K available paths of the N available paths, the N available paths according to a topology structure of a metropolitan area network and current load information, and determine, according to total resource information of the metropolitan area network, the total available resource information, and a value of the N, the K available paths among the N available paths.
18. The apparatus of claim 17, wherein K satisfies the following condition:
Figure FDA0002280674630000031
wherein, B is the total resource information of the metropolitan area network, and S is the available resource information of the metropolitan area network.
19. A load balancing apparatus, the apparatus comprising: the device comprises a receiving module, a processing module and a sending module;
the receiving module is configured to receive M update probe packets from M available paths, where each update probe packet includes probe information of a passed available path, where the M available paths are M available paths in K available paths determined by a source end device from N available paths, M, K and N are positive integers, M is smaller than or equal to K, K is smaller than N, and N is a total number of available paths between the source end device and a destination end device;
the processing module is configured to determine, according to the probe information in the M update probe packets, M path information of the M available paths;
the sending module is configured to feed back the M pieces of path information to the source end device.
20. The apparatus of claim 19, wherein each update probe packet comprises: available resource information of all links on the available path;
for each available path, the path information includes: available resource information for all links on the available path.
21. The apparatus of claim 19, wherein each update probe packet comprises: available resource information of all links on the available path;
for each available path, the path information includes: available bottleneck resource information for the available path;
the processing module is specifically configured to determine, according to the available resource information of all links on the available path through which each of the M update probe packets passes, M available bottleneck resource information of the M available paths.
22. The apparatus of claim 19, wherein each update probe packet comprises: available bottleneck resource information of available paths traversed;
the available bottleneck resource information is determined by sequentially comparing the path available resource information in the received update probe packet and the available resource information of the respective egress link by each intermediate device on the available path.
CN201911140120.0A 2019-11-20 2019-11-20 Load balancing method and device Pending CN112825512A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911140120.0A CN112825512A (en) 2019-11-20 2019-11-20 Load balancing method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911140120.0A CN112825512A (en) 2019-11-20 2019-11-20 Load balancing method and device

Publications (1)

Publication Number Publication Date
CN112825512A true CN112825512A (en) 2021-05-21

Family

ID=75906250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911140120.0A Pending CN112825512A (en) 2019-11-20 2019-11-20 Load balancing method and device

Country Status (1)

Country Link
CN (1) CN112825512A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115529225A (en) * 2022-09-26 2022-12-27 浙江大华技术股份有限公司 Equipment fault diagnosis method and device
WO2023109794A1 (en) * 2021-12-16 2023-06-22 Huawei Technologies Co., Ltd. Methods and systems for adaptive stochastic-based load balancing
CN116647878A (en) * 2023-07-21 2023-08-25 北京最终前沿深空科技有限公司 Load balancing method, device, equipment and storage medium for satellite network

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023109794A1 (en) * 2021-12-16 2023-06-22 Huawei Technologies Co., Ltd. Methods and systems for adaptive stochastic-based load balancing
CN115529225A (en) * 2022-09-26 2022-12-27 浙江大华技术股份有限公司 Equipment fault diagnosis method and device
CN116647878A (en) * 2023-07-21 2023-08-25 北京最终前沿深空科技有限公司 Load balancing method, device, equipment and storage medium for satellite network

Similar Documents

Publication Publication Date Title
US10153985B2 (en) Dragonfly processor interconnect network
CN100518106C (en) Multi-path dynamic routing algorithm
US9197562B2 (en) Congestion control in packet data networking
WO2017128945A1 (en) Method and device for allocating service traffic
CN112825512A (en) Load balancing method and device
Guay et al. vFtree-A fat-tree routing algorithm using virtual lanes to alleviate congestion
US10887217B2 (en) Routing packets based on congestion metric thresholds and weights
CN108337184A (en) Flow equalization dispatching method and device
US20230096063A1 (en) Communication method and apparatus
CN109257282B (en) Data transmission method and device
US20160301612A1 (en) Iterative max-min fairness algorithms
US9185038B2 (en) Technique for controlling a load state of a physical link carrying a plurality of virtual links
Nithin et al. Efficient load balancing for multicast traffic in data center networks using SDN
US20230017561A1 (en) Network Device, System and Method For Cycle-Based Load Balancing
WO2021197196A1 (en) Route information transmission method and apparatus, and system and storage medium
CN112910795B (en) Edge load balancing method and system based on many sources
Farrugia et al. Multi-stream TCP: leveraging the performance of a per-packet multipath routing algorithm when using TCP and SDN
Zhang et al. Congestion-aware adaptive forwarding in datacenter networks
CN107592269B (en) Method and network node for transmitting load information of path
CN113630319B (en) Data distribution method, device and related equipment
Nejadnik et al. Load Balancing in Software-Defined Networking using Controller Placement
CN117097633A (en) Message transmission method, transmission control method, device and system
Han et al. A Novel Multipath Load Balancing Algorithm in Fat-Tree Data Center
Abramkina Analysis of the effectiveness of the eigrp routing protocol
JP2015095735A (en) Communication device and communication method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination