WO2020103727A1 - Flowlet load sharing method and device - Google Patents

Flowlet load sharing method and device

Info

Publication number
WO2020103727A1
WO2020103727A1 PCT/CN2019/117627 CN2019117627W WO2020103727A1 WO 2020103727 A1 WO2020103727 A1 WO 2020103727A1 CN 2019117627 W CN2019117627 W CN 2019117627W WO 2020103727 A1 WO2020103727 A1 WO 2020103727A1
Authority
WO
WIPO (PCT)
Prior art keywords
flowlet
load
link pointer
transmitted
current
Prior art date
Application number
PCT/CN2019/117627
Other languages
French (fr)
Chinese (zh)
Inventor
路小刚
高红亮
佟兴
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020103727A1 publication Critical patent/WO2020103727A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath

Definitions

  • the embodiments of the present application relate to the technical field of traffic forwarding, and in particular, to a flowlet load sharing method and device.
  • data transmission equipment needs to be able to quickly and accurately adjust the load sharing of traffic to improve its forwarding performance and enhance the reliability of the network, so as to better serve users .
  • the existing load sharing method mainly uses flow-by-flow load sharing, that is, the device passes the quintuple, including: source IP address, destination IP address, protocol number, source port and destination port, to divide the original packet into different flows, according to the binding Determine the sending interface and path in the same way.
  • the packets of the same flow will be sent on the same interface and route; or use the flow table load sharing method based on the flow table to send the flowlet through the specified sending interface in the flow table.
  • Embodiments of the present application provide a flowlet load sharing method and device, which can provide high-efficiency flowlet data transmission and load balancing while realizing real-time link load sharing adjustment.
  • a flowlet load sharing method is provided.
  • the method is applied to a flowlet load sharing device.
  • the method may include: the flowlet load sharing device transforms an original stream into an aggregated stream according to a hash hash algorithm, and the aggregated stream includes N Flow clusters, N is an integer, N ⁇ 2; query the FIB table of the forwarding information database to obtain the equivalent load routing information of the current flowlet to be transmitted, where the equivalent load routing information includes M that can transmit the current flowlet to be transmitted Equivalent load routing, the current flowlet to be transmitted belongs to N flow cluster flowlets; link pointer configuration information is determined according to the equivalent load routing information, where the link pointer configuration information includes the link corresponding to each equivalent load route The number of pointers; determine the link pointer corresponding to the current flowlet to be transmitted, and the link pointer is used to indicate the load route for transmitting the current flowlet to be transmitted; the load route corresponding to the determined link pointer transmits the current flowlet to be transmitted .
  • the technical solution provided in the first aspect above determines the link pointer configuration information by two-level hashing based on the original flow and time stamp or random number, and through the equivalent load routing information of the current flowlet to be transmitted, and uniformly hash the flowlet in one
  • Each link pointer in the link pointer sequence is used to transmit each flowlet by the load route corresponding to the link pointer, which can ensure the transmission efficiency while achieving an even distribution of each load route.
  • determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the first time stamp according to the time stamp t 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 ' ⁇ t, according to the time stamp t i determined corresponding to the i-th link pointer flowlet; wherein, t i is the time stamp for the i-th flowlet appears, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is
  • the transmission time of the i-1th flowlet, ⁇ t is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet.
  • determining the link pointer corresponding to the current flowlet to be transmitted may further include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the random number according to the random number l 1 Link pointer corresponding to the first flowlet; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 ' ⁇ t, according to the random number l i determine the i th flowlet corresponding link pointer; wherein, t i for the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'Is the transmission time of the i-1th flowlet, and ⁇ t is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet.
  • the method may further include: separately counting the amount of flowlet data carried on the link pointer; and separately counting the amount of flowlet data carried on each equal-cost load route; calculating each equivalent separately The ratio of the amount of flowlet data carried on the load route to the total amount of flowlet data on the M equivalent load routes; according to the amount of flowlet data carried on each equivalent load route, the total load on the M equivalent load routes The proportion of flowlet data volume and the amount of flowlet data carried on the link pointer are adjusted for load sharing. Real-time load sharing adjustment can be achieved by real-time statistics of the amount of flowlet data transmitted by the load route and the flow pointer to be allocated to the link pointer.
  • the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, which may include: When the flowlet is the i + 1th flowlet, if the proportion of the flowlet data carried on the current jth load route to the total loadlet data quantity carried on the current M equivalent load routes is greater than the preset value, and is equal to the preset load The absolute value of the sharing ratio difference is greater than the preset threshold, and the traffic pointer transmission identifier is placed in front of the link pointer corresponding to the jth load route; the jth load route stops transmitting the i + 1th flowlet and caches the i +1 flowlet; if the link pointer corresponding to the jth load route deferred forwarding time is greater than ⁇ t, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm; the i + 1th flowlet determined by the The load route corresponding
  • load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and may further include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total loadlet data quantity carried on the M equivalent load routes is greater than the preset value, and the Set the absolute value of the load sharing ratio difference to be greater than the preset threshold, and adjust the link pointer corresponding to the i + 1th flowlet; the load corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment is transmitted by the load The i + 1th flowlet; where the jth load route is any of the M equivalent load routes.
  • Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
  • a flowlet load sharing device may include: a hash module for transforming an original stream into an aggregated stream according to a hash algorithm, the aggregated stream including N flow cluster flowlets, where N is an integer, N ⁇ 2; query module, used to query the FIB table of the forwarding information database to obtain the equivalent load routing information of the current flowlet to be transmitted, where the equivalent load routing information includes M equivalent loads that can transmit the current flowlet to be transmitted Routing, the current flowlet to be transmitted belongs to the N flow cluster flowlets; the analysis module is used to determine the link pointer configuration information according to the equivalent load routing information, wherein the link pointer configuration information includes each corresponding load routing The number of link pointers; and determine the link pointer corresponding to the current flowlet to be transmitted, the link pointer is used to indicate the load route for transmitting the current flowlet to be transmitted; the transmission device is used to correspond to the determined link pointer The load route transmits the current flowlet to be transmitted.
  • the flowlet load sharing device determines the link pointer configuration information by two-level hashing based on the original flow and timestamp or random number, and through the equivalent load routing information of the current flowlet to be transmitted, to uniformize the flowlet It is hashed on each link pointer in a link pointer sequence, so that each flowlet is transmitted by the load route corresponding to the link pointer, and the transmission efficiency can be ensured, and the uniform distribution of each load route can be achieved.
  • determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the first time stamp according to the time stamp t 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 ' ⁇ t, according to the time stamp t i determining that the corresponding i-th flowlet link pointer; wherein, t i is the i-th time stamp appears flowlet, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is The transmission time of the i-1th flowlet, ⁇ t is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet.
  • determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the first number according to the random number l 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 ' ⁇ t, according to the random number l i determining that the corresponding i-th flowlet link pointer; wherein, t i is the i-th time stamp appears flowlet, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is The transmission time of the i-1th flowlet, ⁇ t is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet.
  • the device may further include: a statistics module for separately counting the amount of flowlet data carried on the link pointer; and separately counting the amount of flowlet data carried on each equivalent load route; respectively Calculate the proportion of the amount of flowlet data carried on each equivalent load route to the total amount of flowlet data carried on the M equivalent load routes; according to the amount of flowlet data carried on each equivalent load route accounted for the M pieces, etc.
  • the proportion of the total amount of flowlet data carried on the cost load route and the amount of flowlet data carried on the link pointer are adjusted for load sharing. Real-time load sharing adjustment can be achieved by real-time statistics of the amount of flowlet data transmitted by the load route and the flow pointer to be allocated to the link pointer.
  • the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, which may include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, and the preset The absolute value of the difference in load sharing ratio is greater than the preset threshold, and the link pointer corresponding to the jth load route is in front of the traffic suspension transmission identifier; the jth load route stops transmitting the i + 1th flowlet, and caches the first i + 1 flowlets; if the link pointer corresponding to the jth load route is temporarily forwarded longer than ⁇ t, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm; the i + th flowlet determined by the The load route corresponding to the link point point
  • load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and may further include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total loadlet data quantity carried on the M equivalent load routes is greater than the preset value, and the Set the absolute value of the load sharing ratio difference to be greater than the preset threshold, and adjust the link pointer corresponding to the i + 1th flowlet; the load corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment is transmitted by the load The i + 1th flowlet; where the jth load route is any of the M equivalent load routes.
  • Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
  • a flowlet load sharing device may include: a memory for storing computer-executed instructions; and a processor for executing the computer-executed instructions to implement the method as in any possible implementation manner of the first aspect Flowlet load sharing method.
  • a computer-readable storage medium characterized in that computer-executable instructions are stored on the computer-readable storage medium, and when the computer-executed instructions are executed by a processor, they are implemented as any possible implementation of the first aspect Flowlet load sharing method in the method.
  • FIG. 1 is a schematic diagram of functional modules and function implementation of a flowlet load sharing device provided by an embodiment of the present application
  • FIG. 2 is a schematic diagram of a hardware structure of a flowlet load sharing device provided by an embodiment of the present application
  • FIG. 3 is a flowchart of a flowlet load sharing method provided by an embodiment of this application.
  • FIG. 4 is a diagram of an example of hashing provided by an embodiment of the present application.
  • FIG. 5 is a flowchart of a method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of this application;
  • FIG. 6 is a schematic diagram of a flowlet transmission provided by an embodiment of the present application.
  • FIG. 7 is a diagram illustrating an example of determining a link pointer provided by an embodiment of this application.
  • FIG. 8 is a flowchart of another method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present application
  • FIG. 9 is a schematic diagram of a load sharing adjustment process provided by an embodiment of the present application.
  • FIGS. 10A and 10B are diagrams illustrating an example of load sharing adjustment provided by an embodiment of the present invention.
  • 11A is a diagram of an example of load routing switching according to an embodiment of the present invention.
  • 11B is another exemplary diagram of load route switching according to an embodiment of the present invention.
  • FIG. 13 is a schematic diagram of a functional module of a flowlet load sharing device according to an embodiment of the present invention.
  • An embodiment of the present application provides a flowlet load sharing method.
  • the basic principle is that the original flow is hashed into several flowlets, and the flowlet is further hashed to the corresponding link pointer based on a time stamp or a random number.
  • the flowlet to be transmitted is hashed to the load route corresponding to the corresponding link pointer for transmission.
  • the load sharing device 1 may include an interface board 10 and a main control board 20.
  • the interface board 10 may be divided into two Function modules: control plane 11 and forwarding plane 12, where forwarding plane 12 can be used to make the original flow enter the device through the forwarding plane 12, complete FIB table query and load sharing on the equivalent load route, and the forwarding
  • the plane 12 flows out and is transmitted to the destination;
  • the control plane 11 may include several CPUs, and the control plane 11 may be used to allocate the amount of flowlet data on the link pointer according to the statistics reported by the forwarding plane 12 and each equal-cost load route.
  • the proportion of flowlet data carried to the total amount of flowlet data carried on all equivalent load routes makes an instruction to control load sharing adjustment, and instructs the forwarding plane 12 to make adaptive adjustments in time to perform load sharing to meet the preset load Sharing ratio.
  • the flowlet load sharing device may be a router, or may be another device having the above functions, which is not limited in this embodiment of the present invention.
  • FIG. 1 is only a schematic diagram, and does not limit the specific structure of each unit in the device, nor does it limit the specific connection method and connection form of each unit in the device.
  • FIG. 2 it is a schematic diagram of the hardware structure of a flowlet load sharing device according to an embodiment of the present invention.
  • the flowlet load sharing device 1 includes a processor 201, a communication line 202, a memory 203, and at least one communication interface (in FIG. 2 only Exemplarily taking the communication interface 204 as an example).
  • the processor 201 may be a general-purpose central processing unit (central processing unit, CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more of which are used to control the execution of the program program of this application
  • the integrated circuit, the processor 201 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 2.
  • the communication line 202 may include a path for transferring information between the above components.
  • Communication interface 204 using any device such as a transceiver, for communicating with other devices or communication networks, such as Ethernet, wireless access network (RAN), wireless local area networks (WLAN), etc. .
  • RAN wireless access network
  • WLAN wireless local area networks
  • the memory 203 may be read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (random access memory, RAM), or other types of information and instructions that can be stored
  • the dynamic storage device can also be electrically erasable programmable read-only memory (electrically erasable programmable-read-only memory (EEPROM), read-only compact disc (compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (Including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can be used by a computer Access to any other media, but not limited to this.
  • the memory may exist independently, and is connected to the processor through the communication line 202. The memory can also be integrated with the processor.
  • the memory 203 is used to store computer-executable instructions for implementing the solution of the present application, wherein the memory 203 can store instructions for implementing three modular functions: hash instruction, query instruction, analysis instruction, transmission instruction and statistical instruction, and
  • the processor 201 controls execution.
  • the processor 201 is used to execute computer-executed instructions stored in the memory 203, thereby implementing the trajectory tracking and three-dimensional reconstruction method provided by the following embodiments of the present application.
  • the memory 203 shown in FIG. 2 is only a schematic diagram, and the memory may further include other functionalized instructions, which is not limited by the present invention.
  • FIG. 3 shows a flowchart of a flowlet load sharing method according to an embodiment of the present invention. The method is applied to a flowlet load sharing device 1.
  • the method may include:
  • the processor 201 executes a hash instruction in the memory 203, and transforms the original stream into an aggregate stream according to a hash hash algorithm.
  • the aggregate stream includes N flow cluster flowlets, N is an integer, and N ⁇ 2.
  • the hash hash algorithm refers to the conversion of any length of input through the hash algorithm into a fixed-length output, the output is the hash value.
  • This conversion is a kind of compression mapping.
  • the space of the hash value is usually much smaller than the space of the input.
  • Different inputs may be hashed into the same output.
  • the algorithm is a function of compressing any length of message to a certain length of message digest.
  • the input is an original flow
  • the output is an aggregate flow including several flow cluster flowlets.
  • FIG. 4 it is an example of hashing provided by an embodiment of the present invention.
  • the processor 201 executes the query instruction in the memory 203.
  • a flowlet needs to be transmitted, it queries the forwarding information base FIB table to obtain the equivalent load routing information of the current flowlet to be transmitted.
  • the equivalent load routing information includes M equal-cost load routes of flowlets.
  • the current flowlet to be transmitted is any one of N flowlet flowlets.
  • the Forwarding Information Base (FIB) table is a forwarding information copied from the routing table. It does not include any routing protocol information. If there is any addition or deletion of the routing table, the FIB table will change accordingly.
  • the FIB table can be composed of a four-layer tree, which is layered according to the dotted decimal system used by IPv4 of the Internet Protocol version 4.
  • the processor 201 executes the analysis instruction in the memory 203, and determines link pointer configuration information according to the equivalent load routing information, where the link pointer configuration information includes the number of link pointers corresponding to each equivalent load route;
  • the link pointer configuration information of each equivalent load route may be determined according to the percentage of the bandwidth of each equivalent load route to the total bandwidth of the equivalent load route, that is, the number of link pointers corresponding to each equivalent load route.
  • the link pointers corresponding to all equal-cost load routes will form a link pointer sequence. It can also be determined according to other methods, which is not limited in this embodiment of the present invention.
  • the processor 201 executes an analysis instruction in the memory 203 to determine a link pointer corresponding to the flowlet to be transmitted; the link pointer is used to indicate a load route for transmitting the flowlet to be transmitted.
  • a load route needs to be selected to transmit the flowlet to be transmitted.
  • the link pointer can be used to determine the pending The transmitted load route.
  • the processor 201 executes the transmission instruction in the memory 203, and the loadlet corresponding to the determined link pointer is routed to transmit the flowlet to be transmitted.
  • the data in the same flowlet is transmitted by the load corresponding to the same link pointer.
  • FIG. 5 shows a flowchart of a method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present invention, that is, step 304 may include:
  • timestamp usually a sequence of characters, uniquely identifies the time of a certain moment.
  • the process of generating timestamps can be: the user first encrypts the file that needs to be timestamped with Hash encoding to form an abstract, and then sends the abstract to the digital timestamp service (digita1time stamp service, DTS). After the date and time information is encrypted (digital signature), the file is sent back to the user.
  • DTS digital timestamp service
  • a link pointer to the first timestamp t 1 corresponding to flowlet determine.
  • T 2 is determined corresponding to the second link pointer in accordance flowlet stamp. If not, the link pointer corresponding to the second flowlet is the same as the link pointer assigned by the first flowlet.
  • t 1 ′ is the transmission time of the first flowlet
  • ⁇ t is a preset value, which can be set according to the delay difference of the link or according to other rules. Be limited.
  • the second flowlet is assigned to the first The load route corresponding to the link pointer other than the link pointer corresponding to the load routing of the flowlet.
  • the present embodiment schematic diagram of an embodiment of the present invention flowlet transmitted in time T i-1, i-1 starts to transmit the first flowlet th, the i-th transmission flowlet Total time t i-1 ', the At time t i , the i-th flowlet needs to be transmitted, and the time interval between the two flowlets can be calculated as t i -t i-1 -t i-1 '.
  • t i -t i-1 -t i-1 ' ⁇ t determine the link pointer corresponding to the i-th flowlet according to the time stamp t i .
  • the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet. If not, the link pointer corresponding to the i-th flowlet is the same as the link pointer allocated to the i-1th flowlet.
  • t 1 ' is the transmission time of the first flowlet
  • ⁇ t is a preset value.
  • the aggregation flow is hashed to the corresponding link pointer by time stamp, as shown in FIG. 7, which is an example diagram of determining a link pointer according to an embodiment of the present invention.
  • FIG. 8 shows another method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present invention. That is, step 304 may further include:
  • the random number l 1 can be generated by the random number generator.
  • t 1 ′ is the transmission time of the first flowlet
  • ⁇ t is a preset value, which can be set according to the delay difference of the link or according to other rules. Be limited.
  • the second flowlet is assigned to the first The load route corresponding to the link pointer other than the link pointer corresponding to the load routing of the flowlet.
  • t i -t i-1 -t i-1 ' ⁇ t determine the link pointer corresponding to the i-th flowlet according to the random number l i .
  • T i is the i-th time-stamp when flowlet occurs
  • the i-1 T i-1 timestamp occurs when flowlet
  • t i-1 ' is the first time the i-1 th transmission flowlet
  • ⁇ t is a preset value
  • the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet. If not, the link pointer corresponding to the i-th flowlet is the same as the link pointer allocated to the i-1th flowlet.
  • FIG. 9 it is a schematic diagram of a load sharing adjustment process according to an embodiment of the present invention, that is, while step 305 is performed, the method may further include:
  • a statistics module can be set at each link pointer.
  • the data on the statistics module can be cleared every fixed time T.
  • a statistics module can be set at each equal-cost load route.
  • the load sharing adjustment may be implemented by adjusting the link pointer, or the load sharing adjustment may also be implemented by other methods such as delayed transmission.
  • the embodiment of the present invention does not perform adjustment.
  • step 904 may include:
  • FIGS. 10A and 10B it is a diagram of an example of load sharing adjustment according to an embodiment of the present invention.
  • FIG. 10A shows three load routes and the amount of data carried by each, and the corresponding amount of data allocated on each link pointer. It can be seen from this example figure that the amount of flowlet data carried on the current preset load path 3 accounts for all equivalent loads
  • FIG. 10A shows three load routes and the amount of data carried by each, and the corresponding amount of data allocated on each link pointer.
  • the traffic suspend transmission indicator is placed in front of the link pointer, and a timer is started. After the ⁇ t time, the traffic suspend transmission indicator is automatically erased. During this period, the flowlet to be transmitted will be cached. Re-determine the link pointer after ⁇ t time.
  • FIG. 11A it is a diagram of an example of load route switching according to an embodiment of the present invention.
  • the delay T1 of load route 1 is 500 ⁇ s
  • 100, in the delay After 100 ⁇ s, the flowlet to be transmitted switches from load route 1 to load route 2 during transmission, and the transmission arrives at the same time as the load route 1 completely.
  • FIG. 11B it is another exemplary diagram of load route switching according to an embodiment of the present invention.
  • the delay T1 of load route 1 is 400 ⁇ s
  • the delay T2 of load route 2 is 500 ⁇ s.
  • 100, flowlet to be transmitted During the transmission process, the time interval between the switch from load route 1 to load route 2 and the complete arrival on load route 1 is within an acceptable range.
  • step 904 may also include:
  • FIG. 12 it is another exemplary diagram of load sharing adjustment according to an embodiment of the present invention.
  • the same situation as in FIG. 10A can be achieved by modifying the link pointer, that is, the flowlet that needs to be transmitted on the original link pointer 1 is allocated to the link pointer 3, and the flowlet that needs to be transmitted on the original link pointer 3 is allocated to the link Pointer 1.
  • the flowlet load sharing device 1 includes a hardware structure and / or a software module corresponding to each function.
  • the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed by hardware or computer software driven hardware depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
  • the embodiments of the present application may divide the function modules of the flowlet load sharing device according to the above method example.
  • each function module may be divided corresponding to each function, or two or more functions may be integrated into one processing module.
  • the above integrated modules may be implemented in the form of hardware or software function modules. It should be noted that the division of the modules in the embodiments of the present application is schematic, and is only a division of logical functions. In actual implementation, there may be another division manner.
  • FIG. 13 shows a schematic diagram of a functional module of a flowlet load sharing device 1.
  • the flowlet load sharing device 1 may include a hash module 1301, a query module 1302, an analysis module 1303, and a transmission module 1304.
  • the hash module 1301 is used to transform the original stream into an aggregate stream according to the hash hash algorithm; the query module 1302 is used to query the forwarding information base FIB table to obtain the equivalent load routing information of the current flowlet to be transmitted; the analysis module 1303 is used to To determine the link pointer configuration information according to the equivalent load routing information and determine the link pointer corresponding to the current to-be-transmitted flowlet; the transmission device 1304 is used to transmit the current to-be-transmitted by the determined load routing corresponding to the link pointer flowlet.
  • determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the chain corresponding to the first flowlet according to the time stamp t 1 Road pointer; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 ' ⁇ t, the corresponding i-th flowlet is determined according to the time stamp t i link pointer; wherein, t i is the i th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 for the first transmission of a flowlet Time, ⁇ t is a preset value; the determined link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  • determining the link pointer corresponding to the current flowlet to be transmitted may further include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the link corresponding to the first flowlet according to the random number l 1 Pointer; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 ' ⁇ t, the chain corresponding to the i-th flowlet is determined according to the random number l i Road pointer; wherein, T i is the i th time-stamp when flowlet occurs, the i-1 T i-1 timestamp occurs when flowlet, t i-1 'i-1 is the first time a transmission flowlet, ⁇ t is a preset value; the determined link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  • the device may further include a statistics module 1305 for separately counting the amount of flowlet data carried on each link pointer; and separately counting the amount of flowlet data carried on each equivalent load route; calculating each, etc. separately The proportion of the amount of flowlet data carried on the equal-cost load route to the total amount of flowlet data on all equal-cost load routes; according to the amount of flowlet data carried on each equal-cost load route, the total amount of flowlet data on all equal-cost load routes Adjust the load sharing based on the proportion of the amount and the amount of flowlet data carried on the link pointer.
  • a statistics module 1305 for separately counting the amount of flowlet data carried on each link pointer; and separately counting the amount of flowlet data carried on each equivalent load route; calculating each, etc. separately The proportion of the amount of flowlet data carried on the equal-cost load route to the total amount of flowlet data on all equal-cost load routes; according to the amount of flowlet data carried on each equal-cost load route, the total amount of flowlet data on all equal-cost load routes Adjust the load
  • the load sharing adjustment is performed according to the proportion of the flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all equal-cost load routes, which may include: if the current load carried on the j-th load route The proportion of flowlet data volume to the total loadlet data volume of all current equal-cost load routes is greater than the preset value, and the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold.
  • the corresponding The link pointer is in front of the traffic suspension transmission identifier; the jth load route stops transmitting the current flowlet to be transmitted, and the current flowlet is cached; if the link pointer suspension forwarding time corresponding to the jth load route is greater than ⁇ t, the hash hash algorithm The link pointer corresponding to the current flowlet to be transmitted is determined; the current flowlet to be transmitted is transmitted by the load routing transmission corresponding to the determined link pointer.
  • the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all equal-cost load routes, and may also include: if the current j-th load route carries The proportion of the flowlet data volume in the total loadlet data volume of all current equal-cost load routes is greater than the preset value, and the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, adjust the current flowlet corresponding to the transmission chain Route pointer; the current loadlet to be transmitted is transmitted by the load route corresponding to the adjusted link pointer.
  • the disclosed device and method may be implemented in other ways.
  • the device embodiments described above are only schematic.
  • the division of the modules or units is only a division of logical functions.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components displayed as units may be one physical unit or multiple physical units, that is, may be located in one place, or may be distributed in multiple different places . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the above integrated unit may be implemented in the form of hardware or software functional unit.
  • the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium.
  • the technical solutions of the embodiments of the present application may essentially be part of or contribute to the existing technology, or all or part of the technical solutions may be embodied in the form of software products, which are stored in a storage medium
  • several instructions are included to enable a device (which may be a single-chip microcomputer, chip, etc.) or processor to execute all or part of the steps of the methods described in the embodiments of the present application.
  • the foregoing storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .

Abstract

The embodiments of the present application relate to the technical field of traffic forwarding. Disclosed are a flowlet load sharing method and device, for use in solving the problems in the prior art of high consumption of flowlet transmission resources and adjustment untimeliness. The specific solution is that: a load sharing device performs first hash on the basis of an original flow to hash said flow into an aggregate flow comprising a plurality of flowlets, hashes the flowlets in the aggregate flow to specific link pointers in a link pointer sequence on the basis of a timestamp or a random number, determines load routes for transmitting the flowlets, and finally transmits the flowlets by the determined load routes; in addition, real-time load sharing adjustment is implemented by actively generating flowlets on the basis of real-time statistics on the data quantity of the flowlets having been transmitted by the load routes and the data quantity of the flowlets carried by the link pointers, in combination with the preset value of the load proportion of each load route. The embodiments of the present application are used in a data transmission process.

Description

一种flowlet负载分担方法及装置Flowlet load sharing method and device
本申请要求于2018年11月19日提交国家知识产权局、申请号为201811375795.9、发明名称为“一种flowlet负载分担方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application requires the priority of the Chinese patent application submitted to the State Intellectual Property Office on November 19, 2018, with the application number 201811375795.9 and the invention titled "a flowlet load sharing method and device", the entire contents of which are incorporated herein by reference Applying.
技术领域Technical field
本申请实施例涉及流量转发技术领域,尤其涉及一种flowlet负载分担方法及装置。The embodiments of the present application relate to the technical field of traffic forwarding, and in particular, to a flowlet load sharing method and device.
背景技术Background technique
目前,随着数据传输业务的高速化以及实时性要求,需要数据传输设备能够快速、准确地进行流量的负载分担调整,来提高其转发性能,增强网络的可靠性,从而更好的为用户服务。At present, with the high speed and real-time requirements of data transmission services, data transmission equipment needs to be able to quickly and accurately adjust the load sharing of traffic to improve its forwarding performance and enhance the reliability of the network, so as to better serve users .
现有的负载分担方法主要是采用逐流负载分担,即设备通过五元组,包括:源IP地址、目的IP地址、协议号、源端口和目的端口将原始报文分成不同的流,根据捆绑的方式确定发送接口和路径,同一条流的报文将在同一个接口和路由上发送;或者采用基于流表的flowlet负载分担方法,通过流表中指定的发送接口来发送flowlet。但是,上述逐流负载分担的方法,在面对大象流和老鼠流共存的情况时,容易造成流量负载不均、网络利用率低的问题,还往往会导致不必要的单链路扩容;而基于流表的flowlet负载分担方法,每一次在新的flowlet出现时,都需要重新根据链路带宽比例生成流表,根据该更新后的额刘表确定发送接口,容易导致流表资源不足,降低发送效率。The existing load sharing method mainly uses flow-by-flow load sharing, that is, the device passes the quintuple, including: source IP address, destination IP address, protocol number, source port and destination port, to divide the original packet into different flows, according to the binding Determine the sending interface and path in the same way. The packets of the same flow will be sent on the same interface and route; or use the flow table load sharing method based on the flow table to send the flowlet through the specified sending interface in the flow table. However, the above flow-by-flow load sharing method, when faced with the coexistence of elephant flow and mouse flow, is likely to cause uneven traffic load and low network utilization, and often leads to unnecessary single link expansion; The flowlet load sharing method based on the flow table, each time a new flowlet appears, it is necessary to re-generate the flow table according to the link bandwidth ratio, and determine the sending interface according to the updated amount table, which may easily lead to insufficient flow table resources and reduce Send efficiency.
发明内容Summary of the invention
本申请实施例提供flowlet负载分担方法及装置,能够在提供高效率flowlet数据传输和均衡负载的同时,实现实时的链路负载分担调整。Embodiments of the present application provide a flowlet load sharing method and device, which can provide high-efficiency flowlet data transmission and load balancing while realizing real-time link load sharing adjustment.
为达到上述目的,本申请实施例采用如下技术方案:To achieve the above purpose, the embodiments of the present application adopt the following technical solutions:
第一方面,提供一种flowlet负载分担方法,该方法应用于一种flowlet负载分担装置,该方法可以包括:flowlet负载分担装置依据hash散列算法将原始流变换成聚合流,该聚合流包括N个流簇flowlet,N为整数,N≥2;查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息,其中,该等价负载路由信息包括可以传输该当前待传输flowlet的M个等价负载路由,该当前待传输flowlet属于N个流簇flowlet;根据该等价负载路由信息确定链路指针配置信息,其中,链路指针配置信息包括每一个等价负载路由对应的链路指针数量;确定该当前待传输flowlet对应的链路指针,该链路指针用于指示传输该当前待传输flowlet的负载路由;由确定出的该链路指针对应的负载路由传输该当前待传输flowlet。In a first aspect, a flowlet load sharing method is provided. The method is applied to a flowlet load sharing device. The method may include: the flowlet load sharing device transforms an original stream into an aggregated stream according to a hash hash algorithm, and the aggregated stream includes N Flow clusters, N is an integer, N ≥ 2; query the FIB table of the forwarding information database to obtain the equivalent load routing information of the current flowlet to be transmitted, where the equivalent load routing information includes M that can transmit the current flowlet to be transmitted Equivalent load routing, the current flowlet to be transmitted belongs to N flow cluster flowlets; link pointer configuration information is determined according to the equivalent load routing information, where the link pointer configuration information includes the link corresponding to each equivalent load route The number of pointers; determine the link pointer corresponding to the current flowlet to be transmitted, and the link pointer is used to indicate the load route for transmitting the current flowlet to be transmitted; the load route corresponding to the determined link pointer transmits the current flowlet to be transmitted .
上述第一方面提供的技术方案,通过基于原始流和时间戳或者随机数的两级hash,以及通过当前待传输flowlet的等价负载路由信息确定链路指针配置信息,将flowlet均匀散列在一个链路指针序列中的各个链路指针上,从而由该链路指针对应的负载路 由传输各个flowlet,可以在保证传输效率同时,实现各个负载路由的均匀分配。The technical solution provided in the first aspect above determines the link pointer configuration information by two-level hashing based on the original flow and time stamp or random number, and through the equivalent load routing information of the current flowlet to be transmitted, and uniformly hash the flowlet in one Each link pointer in the link pointer sequence is used to transmit each flowlet by the load route corresponding to the link pointer, which can ensure the transmission efficiency while achieving an even distribution of each load route.
在一种可能的实现方式中,确定当前待传输flowlet对应的链路指针,可以包括:当当前待传输flowlet为第1个flowlet时,获取时间戳t 1;根据该时间戳t 1确定该第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,获取时间戳t i;若t i-t i-1-t i-1’≥Δt,根据该时间戳t i确定第i个flowlet对应的链路指针;其中,t i为该第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为该第i-1个flowlet传输的时间,Δt为预设值;第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。通过由时间戳将flowlet hash到对应的指针,可以在保证传输时序同时,实现各个负载路由的均匀分配。 In a possible implementation, determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the first time stamp according to the time stamp t 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 '≥Δt, according to the time stamp t i determined corresponding to the i-th link pointer flowlet; wherein, t i is the time stamp for the i-th flowlet appears, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is The transmission time of the i-1th flowlet, Δt is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet. By hashing the flowlet to the corresponding pointer by the timestamp, the distribution of each load route can be evenly distributed while ensuring the transmission timing.
在一种可能的实现方式中,确定当前待传输flowlet对应的链路指针,还可以包括:当当前待传输flowlet为第1个flowlet时,生成随机数l 1;根据该随机数l 1确定该第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,生成随机数l i;若t i-t i-1-t i-1’≥Δt,根据该随机数l i确定该第i个flowlet对应的链路指针;其中,t i为该第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为该第i-1个flowlet传输的时间,Δt为预设值;第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。通过由随机数将flowlet hash到对应的指针,可以在保证传输时序同时,实现各个负载路由的均匀分配。 In a possible implementation manner, determining the link pointer corresponding to the current flowlet to be transmitted may further include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the random number according to the random number l 1 Link pointer corresponding to the first flowlet; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 '≥Δt, according to the random number l i determine the i th flowlet corresponding link pointer; wherein, t i for the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'Is the transmission time of the i-1th flowlet, and Δt is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet. By hashing the flowlet to the corresponding pointer by a random number, it is possible to achieve uniform distribution of each load route while ensuring transmission timing.
在一种可能的实现方式中,该方法还可以包括:分别统计该链路指针上承载的flowlet数据量;以及分别统计每一条等价负载路由上承载的flowlet数据量;分别计算每一条等价负载路由上承载的flowlet数据量占M条等价负载路由上的总承载flowlet数据量的比例;根据每一条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例,以及该链路指针上承载的flowlet数据量进行负载分担调整。通过对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,可以实现实时的负载分担调整。In a possible implementation manner, the method may further include: separately counting the amount of flowlet data carried on the link pointer; and separately counting the amount of flowlet data carried on each equal-cost load route; calculating each equivalent separately The ratio of the amount of flowlet data carried on the load route to the total amount of flowlet data on the M equivalent load routes; according to the amount of flowlet data carried on each equivalent load route, the total load on the M equivalent load routes The proportion of flowlet data volume and the amount of flowlet data carried on the link pointer are adjusted for load sharing. Real-time load sharing adjustment can be achieved by real-time statistics of the amount of flowlet data transmitted by the load route and the flow pointer to be allocated to the link pointer.
在一种可能的实现方式中,根据M条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,可以包括:在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在第j条负载路由对应的链路指针前置流量暂缓传输标识;该第j条负载路由停止传输该第i+1个flowlet,缓存该第i+1个flowlet;若第j条负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定该第i+1个flowlet对应的链路指针;由确定出的该第i+1个flowlet对应的链路指针对应的负载路由传输该第i+1个flowlet;其中,第j条负载路由为该M条等价负载路由中的任一条。通过根据实时统计的对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,以及各个负载路由负荷比例预设值,可以实现实时的负载分担调整。In a possible implementation, the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, which may include: When the flowlet is the i + 1th flowlet, if the proportion of the flowlet data carried on the current jth load route to the total loadlet data quantity carried on the current M equivalent load routes is greater than the preset value, and is equal to the preset load The absolute value of the sharing ratio difference is greater than the preset threshold, and the traffic pointer transmission identifier is placed in front of the link pointer corresponding to the jth load route; the jth load route stops transmitting the i + 1th flowlet and caches the i +1 flowlet; if the link pointer corresponding to the jth load route deferred forwarding time is greater than Δt, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm; the i + 1th flowlet determined by the The load route corresponding to the link pointer corresponding to each flowlet transmits the i + 1th flowlet; where the jth load route is any one of the M equivalent load routes. Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
在一种可能的实现方式中,根据M条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,还可以包括:在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据 量占当前该M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整该第i+1个flowlet对应的链路指针;由调整之后的该第i+1个flowlet对应的链路指针对应的负载路由传输该第i+1个flowlet;其中,第j条负载路由为该M条等价负载路由中的任一条。通过根据实时统计的对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,以及各个负载路由负荷比例预设值,可以实现实时的负载分担调整。In a possible implementation manner, load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and may further include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total loadlet data quantity carried on the M equivalent load routes is greater than the preset value, and the Set the absolute value of the load sharing ratio difference to be greater than the preset threshold, and adjust the link pointer corresponding to the i + 1th flowlet; the load corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment is transmitted by the load The i + 1th flowlet; where the jth load route is any of the M equivalent load routes. Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
第二方面,提供一种flowlet负载分担装置,该装置可以包括:散列模块,用于依据hash散列算法将原始流变换成聚合流,该聚合流包括N个流簇flowlet,N为整数,N≥2;查询模块,用于查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息,其中,该等价负载路由信息包括可以传输该当前待传输flowlet的M个等价负载路由,该当前待传输flowlet属于该N个流簇flowlet;分析模块,用于根据该等价负载路由信息确定链路指针配置信息,其中,链路指针配置信息包括每一个该等价负载路由对应的链路指针数量;以及确定该当前待传输flowlet对应的链路指针,该链路指针用于指示传输该当前待传输flowlet的负载路由;传输装置,用于由确定出的该链路指针对应的负载路由传输该当前待传输flowlet。In a second aspect, a flowlet load sharing device is provided. The device may include: a hash module for transforming an original stream into an aggregated stream according to a hash algorithm, the aggregated stream including N flow cluster flowlets, where N is an integer, N≥2; query module, used to query the FIB table of the forwarding information database to obtain the equivalent load routing information of the current flowlet to be transmitted, where the equivalent load routing information includes M equivalent loads that can transmit the current flowlet to be transmitted Routing, the current flowlet to be transmitted belongs to the N flow cluster flowlets; the analysis module is used to determine the link pointer configuration information according to the equivalent load routing information, wherein the link pointer configuration information includes each corresponding load routing The number of link pointers; and determine the link pointer corresponding to the current flowlet to be transmitted, the link pointer is used to indicate the load route for transmitting the current flowlet to be transmitted; the transmission device is used to correspond to the determined link pointer The load route transmits the current flowlet to be transmitted.
上述第二方面提供的技术方案,flowlet负载分担装置通过基于原始流和时间戳或者随机数的两级hash,以及通过当前待传输flowlet的等价负载路由信息确定链路指针配置信息,将flowlet均匀散列在一个链路指针序列中的各个链路指针上,从而由该链路指针对应的负载路由传输各个flowlet,可以在保证传输效率同时,实现各个负载路由的均匀分配。In the technical solution provided in the second aspect above, the flowlet load sharing device determines the link pointer configuration information by two-level hashing based on the original flow and timestamp or random number, and through the equivalent load routing information of the current flowlet to be transmitted, to uniformize the flowlet It is hashed on each link pointer in a link pointer sequence, so that each flowlet is transmitted by the load route corresponding to the link pointer, and the transmission efficiency can be ensured, and the uniform distribution of each load route can be achieved.
在一种可能的实现方式中,确定当前待传输flowlet对应的链路指针,可以包括:当当前待传输flowlet为第1个flowlet时,获取时间戳t 1;根据该时间戳t 1确定该第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,获取时间戳t i;若t i-t i-1-t i-1’≥Δt,根据该时间戳t i确定该第i个flowlet对应的链路指针;其中,t i为第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为第i-1个flowlet传输的时间,Δt为预设值;第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。通过由时间戳将flowlet hash到对应的指针,可以在保证传输时序同时,实现各个负载路由的均匀分配。 In a possible implementation, determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the first time stamp according to the time stamp t 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 '≥Δt, according to the time stamp t i determining that the corresponding i-th flowlet link pointer; wherein, t i is the i-th time stamp appears flowlet, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is The transmission time of the i-1th flowlet, Δt is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet. By hashing the flowlet to the corresponding pointer by the timestamp, the distribution of each load route can be evenly distributed while ensuring the transmission timing.
在一种可能的实现方式中,确定当前待传输flowlet对应的链路指针,可以包括:当当前待传输flowlet为第1个flowlet时,生成随机数l 1;根据该随机数l 1确定该第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,生成随机数l i;若t i-t i-1-t i-1’≥Δt,根据该随机数l i确定该第i个flowlet对应的链路指针;其中,t i为第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为第i-1个flowlet传输的时间,Δt为预设值;第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。通过由随机数将flowlet hash到对应的指针,可以在保证传输时序同时,实现各个负载路由的均匀分配。 In a possible implementation manner, determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the first number according to the random number l 1 Link pointer corresponding to 1 flowlet; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 '≥Δt, according to the random number l i determining that the corresponding i-th flowlet link pointer; wherein, t i is the i-th time stamp appears flowlet, t i-1 is the time stamp when the first i-1 th flowlet appears, t i-1 'is The transmission time of the i-1th flowlet, Δt is a preset value; the link pointer corresponding to the ith flowlet is different from the link pointer corresponding to the i-1 flowlet. By hashing the flowlet to the corresponding pointer by a random number, it is possible to achieve uniform distribution of each load route while ensuring transmission timing.
在一种可能的实现方式中,该装置还可以包括:统计模块,用于分别统计该链路指针上承载的flowlet数据量;以及分别统计每一条等价负载路由上承载的flowlet数据量;分别计算每一条等价负载路由上承载的flowlet数据量占该M条等价负载路由 上的总承载flowlet数据量的比例;根据该每一条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例,以及该链路指针上承载的flowlet数据量进行负载分担调整。通过对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,可以实现实时的负载分担调整。In a possible implementation, the device may further include: a statistics module for separately counting the amount of flowlet data carried on the link pointer; and separately counting the amount of flowlet data carried on each equivalent load route; respectively Calculate the proportion of the amount of flowlet data carried on each equivalent load route to the total amount of flowlet data carried on the M equivalent load routes; according to the amount of flowlet data carried on each equivalent load route accounted for the M pieces, etc. The proportion of the total amount of flowlet data carried on the cost load route and the amount of flowlet data carried on the link pointer are adjusted for load sharing. Real-time load sharing adjustment can be achieved by real-time statistics of the amount of flowlet data transmitted by the load route and the flow pointer to be allocated to the link pointer.
在一种可能的实现方式中,根据M条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,可以包括:在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前该M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在第j条负载路由对应的链路指针前置流量暂缓传输标识;该第j条负载路由停止传输该第i+1个flowlet,缓存该第i+1个flowlet;若第j条负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定该第i+1个flowlet对应的链路指针;由确定出的该第i+1个flowlet对应的链路指针对应的负载路由传输该第i+1个flowlet;其中,第j条负载路由为该M条等价负载路由中的任一条。通过根据实时统计的对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,以及各个负载路由负荷比例预设值,可以实现实时的负载分担调整。In a possible implementation, the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, which may include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, and the preset The absolute value of the difference in load sharing ratio is greater than the preset threshold, and the link pointer corresponding to the jth load route is in front of the traffic suspension transmission identifier; the jth load route stops transmitting the i + 1th flowlet, and caches the first i + 1 flowlets; if the link pointer corresponding to the jth load route is temporarily forwarded longer than Δt, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm; the i + th flowlet determined by the The load route corresponding to the link pointer corresponding to one flowlet transmits the i + 1th flowlet; where the jth load route is any one of the M equivalent load routes. Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
在一种可能的实现方式中,根据M条等价负载路由上承载的flowlet数据量占该M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,还可以包括:在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前该M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整该第i+1个flowlet对应的链路指针;由调整之后的该第i+1个flowlet对应的链路指针对应的负载路由传输该第i+1个flowlet;其中,第j条负载路由为该M条等价负载路由中的任一条。通过根据实时统计的对负载路由已传输flowlet数据量和链路指针待分配flowlet的实时统计,以及各个负载路由负荷比例预设值,可以实现实时的负载分担调整。In a possible implementation manner, load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on the M equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and may further include: When the flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total loadlet data quantity carried on the M equivalent load routes is greater than the preset value, and the Set the absolute value of the load sharing ratio difference to be greater than the preset threshold, and adjust the link pointer corresponding to the i + 1th flowlet; the load corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment is transmitted by the load The i + 1th flowlet; where the jth load route is any of the M equivalent load routes. Real-time load sharing adjustment can be achieved by real-time statistics on the amount of flowlet data transmitted by the load route and the flow pointers to be distributed according to the link pointer, and the preset value of the load ratio of each load route.
第三方面,提供一种flowlet负载分担装置,该装置可以包括:存储器,用于存储计算机执行指令;处理器,用于执行该计算机执行指令实现如第一方面任一种可能的实现方式中的flowlet负载分担方法。In a third aspect, a flowlet load sharing device is provided. The device may include: a memory for storing computer-executed instructions; and a processor for executing the computer-executed instructions to implement the method as in any possible implementation manner of the first aspect Flowlet load sharing method.
第四方面,提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机执行指令,该计算机执行指令被处理器执行时实现如第一方面任一种可能的实现方式中的flowlet负载分担方法。According to a fourth aspect, a computer-readable storage medium is provided, characterized in that computer-executable instructions are stored on the computer-readable storage medium, and when the computer-executed instructions are executed by a processor, they are implemented as any possible implementation of the first aspect Flowlet load sharing method in the method.
附图说明BRIEF DESCRIPTION
图1为本申请实施例提供的一种flowlet负载分担装置的功能模块及功能实现示意图;1 is a schematic diagram of functional modules and function implementation of a flowlet load sharing device provided by an embodiment of the present application;
图2为本申请实施例提供的一种flowlet负载分担装置的硬件结构示意图;2 is a schematic diagram of a hardware structure of a flowlet load sharing device provided by an embodiment of the present application;
图3为本申请实施例提供的一种flowlet负载分担方法流程图;3 is a flowchart of a flowlet load sharing method provided by an embodiment of this application;
图4为本申请实施例提供的一种散列示例图;4 is a diagram of an example of hashing provided by an embodiment of the present application;
图5为本申请实施例提供的一种确定待传输flowlet对应的链路指针的方法流程图;5 is a flowchart of a method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of this application;
图6为本申请实施例提供的一种flowlet传输示意图示意图;6 is a schematic diagram of a flowlet transmission provided by an embodiment of the present application;
图7为本申请实施例提供的一种确定链路指针示例图;7 is a diagram illustrating an example of determining a link pointer provided by an embodiment of this application;
图8本申请实施例提供的另一种确定待传输flowlet对应的链路指针的方法流程图;8 is a flowchart of another method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present application;
图9本申请实施例提供的一种负载分担调整流程示意图;9 is a schematic diagram of a load sharing adjustment process provided by an embodiment of the present application;
图10A、图10B为本发明实施例提供的一种负载分担调整示例图;10A and 10B are diagrams illustrating an example of load sharing adjustment provided by an embodiment of the present invention;
图11A为本发明实施例的一种负载路由切换示例图;11A is a diagram of an example of load routing switching according to an embodiment of the present invention;
图11B为本发明实施例的另一种负载路由切换示例图;11B is another exemplary diagram of load route switching according to an embodiment of the present invention;
图12为本发明实施例提供的另一种负载分担调整示例图;12 is another exemplary diagram of load sharing adjustment provided by an embodiment of the present invention;
图13为本发明实施例提供的一种flowlet负载分担装置功能模块示意图。13 is a schematic diagram of a functional module of a flowlet load sharing device according to an embodiment of the present invention.
具体实施方式detailed description
本申请实施例提供一种flowlet负载分担方法,其基本原理是:将原始流hash为若干flowlet,基于时间戳或随机数将flowlet进一步hash到对应的链路指针上,根据预设负载分担比例将待传输flowlet散列到对应的链路指针对应的负载路由上进行传输。An embodiment of the present application provides a flowlet load sharing method. The basic principle is that the original flow is hashed into several flowlets, and the flowlet is further hashed to the corresponding link pointer based on a time stamp or a random number. The flowlet to be transmitted is hashed to the load route corresponding to the corresponding link pointer for transmission.
如图1所示,为本发明实施例的一种flowlet负载分担装置的功能模块及功能实现示意图,该载分担装置1可以包括接口板10和主控板20,该接口板10可以分为两个功能模块:控制面11和转发面12,其中,转发面12可以用于使原始流通过该转发面12进入该装置,完成FIB表查询以及在等价负载路由上进行负载分担,以及该转发面12流出,传输至目的地;控制面11可以包括若干个CPU,控制面11可以用于根据转发面12上报的统计的链路指针上分配的flowlet数据量,以及每条等价负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例作出控制负载分担调整的指令,指示转发面12在进行负载分担时,及时的进行适应性调整,来满足预设负载分担比例。As shown in FIG. 1, it is a schematic diagram of functional modules and function implementation of a flowlet load sharing device according to an embodiment of the present invention. The load sharing device 1 may include an interface board 10 and a main control board 20. The interface board 10 may be divided into two Function modules: control plane 11 and forwarding plane 12, where forwarding plane 12 can be used to make the original flow enter the device through the forwarding plane 12, complete FIB table query and load sharing on the equivalent load route, and the forwarding The plane 12 flows out and is transmitted to the destination; the control plane 11 may include several CPUs, and the control plane 11 may be used to allocate the amount of flowlet data on the link pointer according to the statistics reported by the forwarding plane 12 and each equal-cost load route. The proportion of flowlet data carried to the total amount of flowlet data carried on all equivalent load routes makes an instruction to control load sharing adjustment, and instructs the forwarding plane 12 to make adaptive adjustments in time to perform load sharing to meet the preset load Sharing ratio.
该flowlet负载分担装置可以为路由器,也可以为具备上述功能的其他装置,对此,本发明实施例不进行限定。本领域普通技术人员可以理解,图1所示的仅为示意图,并不对该装置中各个单元的具体结构进行限定,也不对该装置中各个单元的具体连接方法和连接形式进行限定。The flowlet load sharing device may be a router, or may be another device having the above functions, which is not limited in this embodiment of the present invention. Those of ordinary skill in the art may understand that FIG. 1 is only a schematic diagram, and does not limit the specific structure of each unit in the device, nor does it limit the specific connection method and connection form of each unit in the device.
如图2所示,为本发明实施例的一种flowlet负载分担装置硬件结构示意图,该flowlet负载分担装置1包括处理器201,通信线路202,存储器203以及至少一个通信接口(图2中仅是示例性的以包括通信接口204为例进行说明)。As shown in FIG. 2, it is a schematic diagram of the hardware structure of a flowlet load sharing device according to an embodiment of the present invention. The flowlet load sharing device 1 includes a processor 201, a communication line 202, a memory 203, and at least one communication interface (in FIG. 2 only Exemplarily taking the communication interface 204 as an example).
处理器201可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。The processor 201 may be a general-purpose central processing unit (central processing unit, CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more of which are used to control the execution of the program program of this application The integrated circuit, the processor 201 may include one or more CPUs, such as CPU0 and CPU1 in FIG. 2.
通信线路202可包括一通路,在上述组件之间传送信息。The communication line 202 may include a path for transferring information between the above components.
通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local area networks,WLAN)等。 Communication interface 204, using any device such as a transceiver, for communicating with other devices or communication networks, such as Ethernet, wireless access network (RAN), wireless local area networks (WLAN), etc. .
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器 (electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路202与处理器相连接。存储器也可以和处理器集成在一起。The memory 203 may be read-only memory (ROM) or other types of static storage devices that can store static information and instructions, random access memory (random access memory, RAM), or other types of information and instructions that can be stored The dynamic storage device can also be electrically erasable programmable read-only memory (electrically erasable programmable-read-only memory (EEPROM), read-only compact disc (compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (Including compact discs, laser discs, optical discs, digital versatile discs, Blu-ray discs, etc.), magnetic disk storage media or other magnetic storage devices, or can be used to carry or store desired program code in the form of instructions or data structures and can be used by a computer Access to any other media, but not limited to this. The memory may exist independently, and is connected to the processor through the communication line 202. The memory can also be integrated with the processor.
其中,存储器203用于存储执行本申请方案的计算机执行指令,其中,存储器203可以存储用于实现三个模块化功能的指令:散列指令、查询指令、分析指令、传输指令和统计指令,并由处理器201来控制执行。处理器201用于执行存储器203中存储的计算机执行指令,从而实现本申请下述实施例提供的轨迹跟踪与三维重建方法。图2中示出的存储器203仅为示意图,该存储器还可以包括其他功能化的指令,对此,本发明对此不进行限定。Among them, the memory 203 is used to store computer-executable instructions for implementing the solution of the present application, wherein the memory 203 can store instructions for implementing three modular functions: hash instruction, query instruction, analysis instruction, transmission instruction and statistical instruction, and The processor 201 controls execution. The processor 201 is used to execute computer-executed instructions stored in the memory 203, thereby implementing the trajectory tracking and three-dimensional reconstruction method provided by the following embodiments of the present application. The memory 203 shown in FIG. 2 is only a schematic diagram, and the memory may further include other functionalized instructions, which is not limited by the present invention.
下面将结合图1和图2对本申请实施例提供的flowlet负载分担方法进行具体阐述。The flowlet load sharing method provided by the embodiment of the present application will be specifically described below with reference to FIGS. 1 and 2.
本发明实施例提供一种flowlet负载分担方法,图3示出了本发明实施例的一种flowlet负载分担方法流程图,该方法应用于一种flowlet负载分担装置1,该方法可以包括:An embodiment of the present invention provides a flowlet load sharing method. FIG. 3 shows a flowchart of a flowlet load sharing method according to an embodiment of the present invention. The method is applied to a flowlet load sharing device 1. The method may include:
301、处理器201执行存储器203中的散列指令,依据hash散列算法将原始流变换成聚合流,该聚合流包括N个流簇flowlet,N为整数,N≥2。301. The processor 201 executes a hash instruction in the memory 203, and transforms the original stream into an aggregate stream according to a hash hash algorithm. The aggregate stream includes N flow cluster flowlets, N is an integer, and N ≥ 2.
其中,hash散列算法是指把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。该算法是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。具体到步骤301,输入为原始流,输出为包括若干个流簇flowlet的聚合流。如图4所示,为本发明实施例提供的一种散列示例图。Among them, the hash hash algorithm refers to the conversion of any length of input through the hash algorithm into a fixed-length output, the output is the hash value. This conversion is a kind of compression mapping. The space of the hash value is usually much smaller than the space of the input. Different inputs may be hashed into the same output. The algorithm is a function of compressing any length of message to a certain length of message digest. Specifically, in step 301, the input is an original flow, and the output is an aggregate flow including several flow cluster flowlets. As shown in FIG. 4, it is an example of hashing provided by an embodiment of the present invention.
302、处理器201执行存储器203中的查询指令,当需要传输flowlet时,查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息,其中,该等价负载路由信息包括可以传输该flowlet的M个等价负载路由,该当前待传输flowlet为N个流簇flowlet中的任意一个。302. The processor 201 executes the query instruction in the memory 203. When a flowlet needs to be transmitted, it queries the forwarding information base FIB table to obtain the equivalent load routing information of the current flowlet to be transmitted. Among them, the equivalent load routing information includes M equal-cost load routes of flowlets. The current flowlet to be transmitted is any one of N flowlet flowlets.
其中,转发信息库(Forwarding Information Base,FIB)表是一个从路由选择表中拷贝过来的转发信息,不包括任何路由选择协议信息,路由表有任何增删变化,FIB表均会随之变化。FIB表可以由一棵四层的树组成,是按照互联网协议第四版IPv4所使用的点分十进制来分层的。Among them, the Forwarding Information Base (FIB) table is a forwarding information copied from the routing table. It does not include any routing protocol information. If there is any addition or deletion of the routing table, the FIB table will change accordingly. The FIB table can be composed of a four-layer tree, which is layered according to the dotted decimal system used by IPv4 of the Internet Protocol version 4.
303、处理器201执行存储器203中的分析指令,根据等价负载路由信息确定链路指针配置信息,其中,该链路指针配置信息包括每一个等价负载路由对应的链路指针数量;303. The processor 201 executes the analysis instruction in the memory 203, and determines link pointer configuration information according to the equivalent load routing information, where the link pointer configuration information includes the number of link pointers corresponding to each equivalent load route;
具体的,可以根据每一个等价负载路由的带宽占等价负载路由总带宽的百分比确定每一个等价负载路由的链路指针配置信息,即每一个等价负载路由对应的链路指针数量。所有的等价负载路由对应的链路指针会组成一个链路指针序列。也可以根据其他方法确定,对此,本发明实施例不进行限定。Specifically, the link pointer configuration information of each equivalent load route may be determined according to the percentage of the bandwidth of each equivalent load route to the total bandwidth of the equivalent load route, that is, the number of link pointers corresponding to each equivalent load route. The link pointers corresponding to all equal-cost load routes will form a link pointer sequence. It can also be determined according to other methods, which is not limited in this embodiment of the present invention.
304、处理器201执行存储器203中的分析指令,确定该待传输flowlet对应的链 路指针;该链路指针用于指示传输该待传输flowlet的负载路由。304. The processor 201 executes an analysis instruction in the memory 203 to determine a link pointer corresponding to the flowlet to be transmitted; the link pointer is used to indicate a load route for transmitting the flowlet to be transmitted.
在获取待传输flowlet的M个等价负载路由以及各个等价负载路由的链路指针配置之后,需要从中选择一个负载路由来传输该待传输flowlet,具体的,可以通过确定链路指针来确定待传输的负载路由。After obtaining the M equivalent load routes of the flowlet to be transmitted and the link pointer configuration of each equivalent load route, a load route needs to be selected to transmit the flowlet to be transmitted. Specifically, the link pointer can be used to determine the pending The transmitted load route.
305、处理器201执行存储器203中的传输指令,由确定出的链路指针对应的负载路由传输该待传输flowlet。305. The processor 201 executes the transmission instruction in the memory 203, and the loadlet corresponding to the determined link pointer is routed to transmit the flowlet to be transmitted.
具体的,同一个flowlet中的数据由同一个链路指针对应的负载路由传输。Specifically, the data in the same flowlet is transmitted by the load corresponding to the same link pointer.
进一步的,图5示出了本发明实施例确定待传输flowlet对应的链路指针的方法流程图,即步骤304可以包括:Further, FIG. 5 shows a flowchart of a method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present invention, that is, step 304 may include:
501、当需要传输第1个flowlet时,获取时间戳t 1501. When the first flowlet needs to be transmitted, a time stamp t 1 is obtained .
其中,时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间。时间戳产生的过程可以为:用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该摘要发送到数字时间戳服务(digita1time stamp service,DTS),DTS在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。Among them, timestamp (timestamp), usually a sequence of characters, uniquely identifies the time of a certain moment. The process of generating timestamps can be: the user first encrypts the file that needs to be timestamped with Hash encoding to form an abstract, and then sends the abstract to the digital timestamp service (digita1time stamp service, DTS). After the date and time information is encrypted (digital signature), the file is sent back to the user.
502、根据时间戳t 1确定第1个flowlet对应的链路指针。 502, a link pointer to the first timestamp t 1 corresponding to flowlet determine.
具体的,确定链路指针的方法可以为:将时间戳t 1作为一个数值,假设为x;链路指针数量假设为n项,确定第1个flowlet对应的链路指针为,链路指针序列的第y项;那么y=x%n,即对x取余来确定对应的链路指针。 Specifically, the method for determining the link pointer may be: taking the timestamp t 1 as a value, assuming x; assuming that the number of link pointers is n, and determining the link pointer corresponding to the first flowlet as the link pointer sequence The y item of y; then y = x% n, that is, take the remainder of x to determine the corresponding link pointer.
503、当需要传输第2个flowlet时,获取时间戳t 2503. When the second flowlet needs to be transmitted, obtain the time stamp t 2 ;
504、判断t 2-t 1-t 1’≥Δt是否成立。 504. Determine whether t 2 -t 1 -t 1 '≥Δt holds.
505、若
Figure PCTCN2019117627-appb-000001
根据时间戳t 2确定第2个flowlet对应的链路指针。若不成立,第2个flowlet对应的链路指针与第1个flowlet分配的链路指针相同。其中,t 1’为第1个flowlet传输的时间,Δt为预设值,可以根据链路的时延差设置该预设值,也可以根据其他规则进行设置,对此,本发明实施例不进行限定。
505, if
Figure PCTCN2019117627-appb-000001
T 2 is determined corresponding to the second link pointer in accordance flowlet stamp. If not, the link pointer corresponding to the second flowlet is the same as the link pointer assigned by the first flowlet. Where, t 1 ′ is the transmission time of the first flowlet, and Δt is a preset value, which can be set according to the delay difference of the link or according to other rules. Be limited.
若第1个flowlet传输完成与第2个flowlet需要传输时的时刻间隔时间大于预设值,为了保证均匀分配以及为了保证有序的传输各个flowlet,将第2个flowlet分配至除传输第1个flowlet的负载路由对应的链路指针之外的其他链路指针对应的负载路由。If the time interval between the completion of the transmission of the first flowlet and the transmission of the second flowlet is greater than the preset value, in order to ensure uniform distribution and to ensure the orderly transmission of each flowlet, the second flowlet is assigned to the first The load route corresponding to the link pointer other than the link pointer corresponding to the load routing of the flowlet.
具体的,如何确定第2个flowlet对应的链路指针,与确定第1个flowlet对应的链路指针方法相同,即y=x%n。Specifically, how to determine the link pointer corresponding to the second flowlet is the same as the method for determining the link pointer corresponding to the first flowlet, that is, y = x% n.
同样的方法,完成第3个flowlet到第i-1个flowlet的传输。In the same way, complete the transfer from the third flowlet to the i-1th flowlet.
506、当需要传输第i个flowlet时,获取时间戳t i506. When the i-th flowlet needs to be transmitted, a time stamp t i is obtained ;
507、判断t i-t i-1-t i-1’≥Δt是否成立。 507. Determine whether t i -t i-1 -t i-1 '≥Δt holds.
如图6所示,为本发明实施例的一种flowlet传输示意图,在t i-1时刻,开始传输第i-1个flowlet,该第i个flowlet传输共耗时t i-1’,在t i时刻,需要传输传输第i个flowlet,则可以计算出两个flowlet的时间间隔为t i-t i-1-t i-1’。 As shown in FIG 6, the present embodiment schematic diagram of an embodiment of the present invention flowlet transmitted in time T i-1, i-1 starts to transmit the first flowlet th, the i-th transmission flowlet Total time t i-1 ', the At time t i , the i-th flowlet needs to be transmitted, and the time interval between the two flowlets can be calculated as t i -t i-1 -t i-1 '.
508、若t i-t i-1-t i-1’≥Δt,根据时间戳t i确定第i个flowlet对应的链路指针。该第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。若不成立,第i个flowlet对应的链路指针与第i-1个flowlet分配的链路指针相同。其中,t 1’为第1个flowlet传输的时间,Δt为预设值。 508. If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the time stamp t i . The link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet. If not, the link pointer corresponding to the i-th flowlet is the same as the link pointer allocated to the i-1th flowlet. Among them, t 1 'is the transmission time of the first flowlet, and Δt is a preset value.
通过时间戳将聚合流hash到对应的链路指针,如图7所示,为本发明实施例的一种确定链路指针示例图。The aggregation flow is hashed to the corresponding link pointer by time stamp, as shown in FIG. 7, which is an example diagram of determining a link pointer according to an embodiment of the present invention.
同样的方法,完成所有待传输flowlet的传输。In the same way, complete the transmission of all the flowlet to be transmitted.
进一步的,图8示出了本发明实施例另一种确定待传输flowlet对应的链路指针的方法,即步骤304还可以包括:Further, FIG. 8 shows another method for determining a link pointer corresponding to a flowlet to be transmitted according to an embodiment of the present invention. That is, step 304 may further include:
801、当需要传输第1个flowlet时,生成随机数l 1801. When the first flowlet needs to be transmitted, a random number l 1 is generated.
具体的,可以通过随机数生成器生成随机数l 1Specifically, the random number l 1 can be generated by the random number generator.
802、根据随机数l 1确定第1个flowlet对应的链路指针。 802, a determination of a corresponding link pointer flowlet random number l.
具体的,确定链路指针的方法可以为:链路指针数量假设为n项,确定第1个flowlet对应的链路指针为,链路指针序列的第y项;那么y=l 1%n即对l 1取余来确定对应的链路指针。 Specifically, the method for determining the link pointer may be: the number of link pointers is assumed to be n items, and the link pointer corresponding to the first flowlet is determined to be the y item of the link pointer sequence; then y = l 1 % n Take the remainder of l 1 to determine the corresponding link pointer.
803、当需要传输第2个flowlet时,生成随机数l 2803. When the second flowlet needs to be transmitted, a random number l 2 is generated;
804、判断t 2-t 1-t 1’≥Δt是否成立。 804. Determine whether t 2 -t 1 -t 1 '≥Δt holds.
805、若
Figure PCTCN2019117627-appb-000002
根据随机数l 2确定第2个flowlet对应的链路指针。若不成立,第i个flowlet对应的链路指针与第i-1个flowlet分配的链路指针相同。其中,t 1’为第1个flowlet传输的时间,Δt为预设值,可以根据链路的时延差设置该预设值,也可以根据其他规则进行设置,对此,本发明实施例不进行限定。
805, if
Figure PCTCN2019117627-appb-000002
Determine the link pointer corresponding to the second flowlet according to the random number l 2 . If not, the link pointer corresponding to the i-th flowlet is the same as the link pointer allocated to the i-1th flowlet. Where, t 1 ′ is the transmission time of the first flowlet, and Δt is a preset value, which can be set according to the delay difference of the link or according to other rules. Be limited.
若第1个flowlet传输完成与第2个flowlet需要传输时的时刻间隔时间大于预设值,为了保证均匀分配以及为了保证有序的传输各个flowlet,将第2个flowlet分配至除传输第1个flowlet的负载路由对应的链路指针之外的其他链路指针对应的负载路由。If the time interval between the completion of the transmission of the first flowlet and the transmission of the second flowlet is greater than the preset value, in order to ensure uniform distribution and to ensure the orderly transmission of each flowlet, the second flowlet is assigned to the first The load route corresponding to the link pointer other than the link pointer corresponding to the load routing of the flowlet.
具体的,如何确定第2个flowlet对应的链路指针,与确定第1个flowlet对应的链路指针方法相同,即:y=l 2%n。 Specifically, how to determine the link pointer corresponding to the second flowlet is the same as the method to determine the link pointer corresponding to the first flowlet, that is: y = l 2 % n.
同样的方法,完成第3个flowlet到第i-1个flowlet的传输。In the same way, complete the transfer from the third flowlet to the i-1th flowlet.
806、当需要传输第i个flowlet时,生成随机数l i806. When the i-th flowlet needs to be transmitted, a random number l i is generated;
807、判断t i-t i-1-t i-1’≥Δt是否成立。 807. Determine whether t i -t i-1 -t i-1 '≥Δt holds.
808、若t i-t i-1-t i-1’≥Δt,根据随机数l i确定第i个flowlet对应的链路指针。其中,t i为所述第i个flowlet出现时的时间戳,t i-1第i-1个flowlet出现时的时间戳,t i-1’为所述第i-1个flowlet传输的时间,Δt为预设值;所述第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。若不成立,第i个flowlet对应的链路指针与第i-1个flowlet分配的链路指针相同。 808. If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the random number l i . Wherein, T i is the i-th time-stamp when flowlet occurs, the i-1 T i-1 timestamp occurs when flowlet, t i-1 'is the first time the i-1 th transmission flowlet , Δt is a preset value; the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet. If not, the link pointer corresponding to the i-th flowlet is the same as the link pointer allocated to the i-1th flowlet.
同样的方法,完成所有待传输flowlet的传输。In the same way, complete the transmission of all the flowlet to be transmitted.
进一步的,如图9所示,为本发明实施例的一种负载分担调整流程示意图,即在步骤305进行的同时,所述方法还可以包括:Further, as shown in FIG. 9, it is a schematic diagram of a load sharing adjustment process according to an embodiment of the present invention, that is, while step 305 is performed, the method may further include:
901、统计每一个链路指针上承载的flowlet数据量。901. Count the amount of flowlet data carried on each link pointer.
具体的,可以在每一个链路指针处设置统计模块。每隔固定时间T可以将该统计模块上的数据清零。Specifically, a statistics module can be set at each link pointer. The data on the statistics module can be cleared every fixed time T.
902、统计每一条等价负载路由上承载的flowlet数据量。902. Count the amount of flowlet data carried on each equal-cost load route.
具体的,可以在每一条等价负载路由处设置统计模块。Specifically, a statistics module can be set at each equal-cost load route.
903、计算每一条等价负载路由上承载的flowlet数据量占所有等价负载路由上的 总承载flowlet数据量的比例。903. Calculate the ratio of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all the equal-cost load routes.
904、根据每一条等价负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例,以及每一个链路指针上承载的flowlet数据量进行负载分担调整。904. Perform load sharing adjustment according to the proportion of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all equal-cost load routes, and the amount of flowlet data carried on each link pointer.
通过不断统计负载分担结果,调整flowlet流量所走负载路由,保证在变化的流量模型下,始终保持系统指定的负载分担比例,可以保证在短时间内完成调节。具体的,可以通过调整链路指针来实现负载分担调整,也可以通过延时传输等其他方法来实现负载分担调整,对此,本发明实施例不进行调整。By constantly counting the results of load sharing and adjusting the load routing of flowlet traffic, it is ensured that under the changing flow model, the load sharing ratio specified by the system is always maintained, which can ensure that the adjustment is completed in a short time. Specifically, the load sharing adjustment may be implemented by adjusting the link pointer, or the load sharing adjustment may also be implemented by other methods such as delayed transmission. For this, the embodiment of the present invention does not perform adjustment.
进一步的,步骤904可以包括:Further, step 904 may include:
在需要传输某一个flowlet时,若当前某一条负载路由上承载的flowlet数据量占当前所有等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在该负载路由对应的链路指针前置流量暂缓传输标识;该负载路由停止传输flowlet,并对需要传输的缓存flowlet进行缓存;计时器计时,若该负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定已缓存的flowlet对应的链路指针;由确定出的已缓存的flowlet对应的链路指针对应的负载路由传输该已缓存的flowlet。When a flowlet needs to be transmitted, if the proportion of the current flowlet data carried by a current load route to the total loadlet data volume of all current equivalent load routes is greater than the preset value, and the difference between the preset load sharing ratio The absolute value of is greater than the preset threshold, and the traffic pointer transmission identifier is placed in front of the link pointer corresponding to the load route; the load route stops transmitting the flowlet and caches the cache flowlet that needs to be transmitted; the timer counts if the load route corresponds The link forwarding time of the link pointer is greater than Δt, and the link pointer corresponding to the cached flowlet is determined according to the hash hash algorithm; the load flow corresponding to the link pointer corresponding to the determined cached flowlet is transmitted to the cached flowlet.
如图10A、图10B所示,为本发明实施例的一种负载分担调整示例图。图10A示出了三条负载路由以及各自承载的数据量,和各个链路指针上对应分配的数据量,通过该示例图可知,当前预设负载路径3上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例为450/(350+400+450)=0.375,预设值为1/(1+1+1)=0.333,0.375-0.333=0.042大于0.02,那么需要对负载路由3对应的超负荷的链路指针进行暂缓传输。具体的,如图10B所示,在该链路指针前置流量暂缓传输标识,并启动计时器,Δt时间后自动擦除该流量暂缓传输标识,在这期间的待传输flowlet会进行缓存,待Δt时间后重新确定链路指针。As shown in FIGS. 10A and 10B, it is a diagram of an example of load sharing adjustment according to an embodiment of the present invention. FIG. 10A shows three load routes and the amount of data carried by each, and the corresponding amount of data allocated on each link pointer. It can be seen from this example figure that the amount of flowlet data carried on the current preset load path 3 accounts for all equivalent loads The ratio of the total amount of flowlet data on the route is 450 / (350 + 400 + 450) = 0.375, the default value is 1 / (1 + 1 + 1) = 0.333, 0.375-0.333 = 0.042 is greater than 0.02, then you need to The overloaded link pointer corresponding to load route 3 is temporarily suspended. Specifically, as shown in FIG. 10B, the traffic suspend transmission indicator is placed in front of the link pointer, and a timer is started. After the Δt time, the traffic suspend transmission indicator is automatically erased. During this period, the flowlet to be transmitted will be cached. Re-determine the link pointer after Δt time.
如图11A所示,为本发明实施例的一种负载路由切换示例图。负载路由1的时延T1为500μs,负载路由2的时延T2为400μs,假设Δt根据负载路由1与负载路由2的时延差设置,即Δt=|T1-T2|=100,在时延100μs后,待传输flowlet在传输过程中从负载路由1切换到负载路由2上传输与完全在负载路由1上传输到达的时间相同。As shown in FIG. 11A, it is a diagram of an example of load route switching according to an embodiment of the present invention. The delay T1 of load route 1 is 500 μs, and the delay T2 of load route 2 is 400 μs, assuming that Δt is set according to the delay difference between load route 1 and load route 2, that is, Δt = | T1-T2 | = 100, in the delay After 100 μs, the flowlet to be transmitted switches from load route 1 to load route 2 during transmission, and the transmission arrives at the same time as the load route 1 completely.
当从传输较快的负载路由切换到较慢得到负载路由时,还可以不进行延时,而是利用两个链路传输自然形成的时延来进行负载分担调整。如图11B所示,为本发明实施例的另一种负载路由切换示例图。负载路由1的时延T1为400μs,负载路由2的时延T2为500μs,假设Δt根据负载路由1与负载路由2的时延差设置,即Δt=|T1-T2|=100,待传输flowlet在传输过程中从负载路由1切换到负载路由2上传输与完全在负载路由1上传输到达的时间间隔在一个可以接收的范围之内。When switching from a load route with a faster transmission to a slower one to obtain a load route, it is also possible to adjust the load sharing by using the delay naturally formed by the two link transmissions without delay. As shown in FIG. 11B, it is another exemplary diagram of load route switching according to an embodiment of the present invention. The delay T1 of load route 1 is 400 μs, and the delay T2 of load route 2 is 500 μs. Assume that Δt is set according to the delay difference between load route 1 and load route 2, ie Δt = | T1-T2 | = 100, flowlet to be transmitted During the transmission process, the time interval between the switch from load route 1 to load route 2 and the complete arrival on load route 1 is within an acceptable range.
进一步的,步骤904还可以包括:Further, step 904 may also include:
在需要传输某一个flowlet时,若当前某一条负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整下一个需要传输的flowlet对应的链路指针;由调整之后的链路指针对应的负载路由传输该需要传输的flowlet。When a certain flowlet needs to be transmitted, if the proportion of the flowlet data carried by a current load route to the total amount of flowlet data carried by all equivalent load routes is greater than the preset value, and the difference between the load sharing ratio and the preset load If the absolute value is greater than the preset threshold, adjust the link pointer corresponding to the next flowlet to be transmitted; the load corresponding to the adjusted link pointer will be routed to transmit the flowlet to be transmitted.
如图12所示,为本发明实施例的另一种负载分担调整示例图。与图10A中同样的情况,可以通过修改链路指针来实现,即将原链路指针1上需要传输的flowlet分配给链路指针3,将原链路指针3上需要传输的flowlet分配给链路指针1。As shown in FIG. 12, it is another exemplary diagram of load sharing adjustment according to an embodiment of the present invention. The same situation as in FIG. 10A can be achieved by modifying the link pointer, that is, the flowlet that needs to be transmitted on the original link pointer 1 is allocated to the link pointer 3, and the flowlet that needs to be transmitted on the original link pointer 3 is allocated to the link Pointer 1.
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,上述flowlet负载分担装置1为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。The above mainly introduces the solutions provided by the embodiments of the present application from the perspective of interaction between various network elements. It can be understood that, in order to realize the above-mentioned functions, the flowlet load sharing device 1 includes a hardware structure and / or a software module corresponding to each function. Those skilled in the art should easily realize that, in combination with the exemplary units and algorithm steps described in the embodiments disclosed herein, the present application can be implemented in the form of hardware or a combination of hardware and computer software. Whether a function is executed by hardware or computer software driven hardware depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
本申请实施例可以根据上述方法示例对flowlet负载分担装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。The embodiments of the present application may divide the function modules of the flowlet load sharing device according to the above method example. For example, each function module may be divided corresponding to each function, or two or more functions may be integrated into one processing module. The above integrated modules may be implemented in the form of hardware or software function modules. It should be noted that the division of the modules in the embodiments of the present application is schematic, and is only a division of logical functions. In actual implementation, there may be another division manner.
比如,以采用集成的方式划分各个功能模块的情况下,图13示出了一种flowlet负载分担装置1的功能模块示意图。该flowlet负载分担装置1可以包括散列模块1301、查询模块1302、分析模块1303和传输模块1304。散列模块1301,用于依据hash散列算法将原始流变换成聚合流;查询模块1302,用于查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息;分析模块1303,用于根据该等价负载路由信息确定链路指针配置信息,以及确定该当前待传输flowlet对应的链路指针;传输装置1304,用于由确定出的该链路指针对应的负载路由传输当前待传输flowlet。For example, in the case of dividing each functional module in an integrated manner, FIG. 13 shows a schematic diagram of a functional module of a flowlet load sharing device 1. The flowlet load sharing device 1 may include a hash module 1301, a query module 1302, an analysis module 1303, and a transmission module 1304. The hash module 1301 is used to transform the original stream into an aggregate stream according to the hash hash algorithm; the query module 1302 is used to query the forwarding information base FIB table to obtain the equivalent load routing information of the current flowlet to be transmitted; the analysis module 1303 is used to To determine the link pointer configuration information according to the equivalent load routing information and determine the link pointer corresponding to the current to-be-transmitted flowlet; the transmission device 1304 is used to transmit the current to-be-transmitted by the determined load routing corresponding to the link pointer flowlet.
可选的,确定当前待传输flowlet对应的链路指针可以包括:当当前待传输flowlet为第1个flowlet时,获取时间戳t 1;根据该时间戳t 1确定该第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,获取时间戳t i;若t i-t i-1-t i-1’≥Δt,根据时间戳t i确定该第i个flowlet对应的链路指针;其中,t i为第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为第i-1个flowlet传输的时间,Δt为预设值;确定出的第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Optionally, determining the link pointer corresponding to the current flowlet to be transmitted may include: when the current flowlet to be transmitted is the first flowlet, acquiring a time stamp t 1 ; determining the chain corresponding to the first flowlet according to the time stamp t 1 Road pointer; when the current flowlet to be transmitted is the i-th flowlet, the time stamp t i is obtained ; if t i -t i-1 -t i-1 '≥Δt, the corresponding i-th flowlet is determined according to the time stamp t i link pointer; wherein, t i is the i th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 for the first transmission of a flowlet Time, Δt is a preset value; the determined link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
可选的,确定当前待传输flowlet对应的链路指针还可以包括:当当前待传输flowlet为第1个flowlet时,生成随机数l 1;根据随机数l 1确定第1个flowlet对应的链路指针;当当前待传输flowlet为第i个flowlet时,生成随机数l i;若t i-t i-1-t i-1’≥Δt,根据随机数l i确定第i个flowlet对应的链路指针;其中,t i为第i个flowlet出现时的时间戳,t i-1第i-1个flowlet出现时的时间戳,t i-1’为第i-1个flowlet传输的时间,Δt为预设值;确定出的第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Optionally, determining the link pointer corresponding to the current flowlet to be transmitted may further include: when the current flowlet to be transmitted is the first flowlet, generating a random number l 1 ; determining the link corresponding to the first flowlet according to the random number l 1 Pointer; when the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated; if t i -t i-1 -t i-1 '≥Δt, the chain corresponding to the i-th flowlet is determined according to the random number l i Road pointer; wherein, T i is the i th time-stamp when flowlet occurs, the i-1 T i-1 timestamp occurs when flowlet, t i-1 'i-1 is the first time a transmission flowlet, Δt is a preset value; the determined link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
可选的,该装置还可以包括统计模块1305,用于分别统计每一个链路指针上承载的flowlet数据量;以及分别统计每一条等价负载路由上承载的flowlet数据量;分别计算每一条等价负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例;根据每一条等价负载路由上承载的flowlet数据量占所有等价负 载路由上的总承载flowlet数据量的比例,以及链路指针上承载的flowlet数据量进行负载分担调整。Optionally, the device may further include a statistics module 1305 for separately counting the amount of flowlet data carried on each link pointer; and separately counting the amount of flowlet data carried on each equivalent load route; calculating each, etc. separately The proportion of the amount of flowlet data carried on the equal-cost load route to the total amount of flowlet data on all equal-cost load routes; according to the amount of flowlet data carried on each equal-cost load route, the total amount of flowlet data on all equal-cost load routes Adjust the load sharing based on the proportion of the amount and the amount of flowlet data carried on the link pointer.
可选的,根据每一条等价负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,可以包括:若当前第j条负载路由上承载的flowlet数据量占当前所有等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在该第j条负载路由对应的链路指针前置流量暂缓传输标识;第j条负载路由停止传输当前待传输flowlet,缓存当前待传输flowlet;若第j条负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定当前待传输flowlet对应的链路指针;由确定出的链路指针对应的负载路由传输所当前待传输flowlet。Optionally, the load sharing adjustment is performed according to the proportion of the flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all equal-cost load routes, which may include: if the current load carried on the j-th load route The proportion of flowlet data volume to the total loadlet data volume of all current equal-cost load routes is greater than the preset value, and the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold. In the jth load route, the corresponding The link pointer is in front of the traffic suspension transmission identifier; the jth load route stops transmitting the current flowlet to be transmitted, and the current flowlet is cached; if the link pointer suspension forwarding time corresponding to the jth load route is greater than Δt, the hash hash algorithm The link pointer corresponding to the current flowlet to be transmitted is determined; the current flowlet to be transmitted is transmitted by the load routing transmission corresponding to the determined link pointer.
可选的,根据每一条等价负载路由上承载的flowlet数据量占所有等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,还可以包括:若当前第j条负载路由上承载的flowlet数据量占当前所有等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整当前待传输flowlet对应的链路指针;由调整之后的链路指针对应的负载路由传输当前待传输flowlet。Optionally, the load sharing adjustment is performed according to the ratio of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on all equal-cost load routes, and may also include: if the current j-th load route carries The proportion of the flowlet data volume in the total loadlet data volume of all current equal-cost load routes is greater than the preset value, and the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, adjust the current flowlet corresponding to the transmission chain Route pointer; the current loadlet to be transmitted is transmitted by the load route corresponding to the adjusted link pointer.
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。Through the description of the above embodiments, those skilled in the art can clearly understand that, for convenience and conciseness of description, only the above-mentioned division of each functional module is used as an example for illustration. In practical applications, the above-mentioned functions can be allocated as needed It is completed by different functional modules, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above.
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。In the several embodiments provided in this application, it should be understood that the disclosed device and method may be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the modules or units is only a division of logical functions. In actual implementation, there may be other divisions, for example, multiple units or components may be The combination can either be integrated into another device, or some features can be ignored, or not implemented. In addition, the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。The units described as separate components may or may not be physically separated, and the components displayed as units may be one physical unit or multiple physical units, that is, may be located in one place, or may be distributed in multiple different places . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit. The above integrated unit may be implemented in the form of hardware or software functional unit.
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only  Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium. Based on such an understanding, the technical solutions of the embodiments of the present application may essentially be part of or contribute to the existing technology, or all or part of the technical solutions may be embodied in the form of software products, which are stored in a storage medium In it, several instructions are included to enable a device (which may be a single-chip microcomputer, chip, etc.) or processor to execute all or part of the steps of the methods described in the embodiments of the present application. The foregoing storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。The above is only the specific implementation of this application, but the scope of protection of this application is not limited to this, any changes or replacements within the technical scope disclosed in this application should be covered within the scope of protection of this application . Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (14)

  1. 一种flowlet负载分担方法,其特征在于,所述方法包括:A flowlet load sharing method, characterized in that the method includes:
    依据hash散列算法将原始流变换成聚合流,所述聚合流包括N个流簇flowlet,N为整数,N≥2;Transform the original stream into an aggregated stream according to a hash hash algorithm, the aggregated stream includes N flow cluster flowlets, N is an integer, and N ≥ 2;
    查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息,其中,所述等价负载路由信息包括可以传输所述当前待传输flowlet的M个等价负载路由,所述当前待传输flowlet属于所述N个流簇flowlet;Query the FIB table of the forwarding information library to obtain the equivalent load routing information of the current flowlet to be transmitted, wherein the equivalent load routing information includes M equivalent load routes that can transmit the current flowlet to be transmitted, and the current to-be-transmitted flowlet belongs to the N flow cluster flowlets;
    根据所述等价负载路由信息确定链路指针配置信息,其中,所述链路指针配置信息包括每一个所述等价负载路由对应的链路指针数量;Determining link pointer configuration information according to the equivalent load routing information, wherein the link pointer configuration information includes the number of link pointers corresponding to each of the equivalent load routes;
    确定所述当前待传输flowlet对应的链路指针,所述链路指针用于指示传输当前待传输flowlet的负载路由;Determining a link pointer corresponding to the current flowlet to be transmitted, where the link pointer is used to indicate a load route for transmitting the current flowlet to be transmitted;
    由确定出的所述链路指针对应的负载路由传输所述当前待传输flowlet。The current loadlet to be transmitted is routed and transmitted by the determined load corresponding to the link pointer.
  2. 根据权利要求1所述的flowlet负载分担方法,其特征在于,所述确定所述当前待传输flowlet对应的链路指针,包括:The flowlet load sharing method according to claim 1, wherein the determining a link pointer corresponding to the current flowlet to be transmitted includes:
    当所述当前待传输flowlet为第1个flowlet时,获取时间戳t 1When the current flowlet to be transmitted is the first flowlet, a time stamp t 1 is obtained ;
    根据所述时间戳t 1确定所述第1个flowlet对应的链路指针; Determine the link pointer corresponding to the first flowlet according to the time stamp t 1 ;
    当所述当前待传输flowlet为第i个flowlet时,获取时间戳t iWhen the current flowlet to be transmitted is the i-th flowlet, a time stamp t i is obtained ;
    若t i-t i-1-t i-1’≥Δt,根据所述时间戳t i确定所述第i个flowlet对应的链路指针; If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the time stamp t i ;
    其中,t i为所述第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为所述第i-1个flowlet传输的时间,Δt为预设值;所述第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Wherein, t i is the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 is the first one transmitted flowlet Time, Δt is a preset value; the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  3. 根据权利要求2所述的flowlet负载分担方法,其特征在于,所述确定所述当前待传输flowlet对应的链路指针,包括:The flowlet load sharing method according to claim 2, wherein the determining the link pointer corresponding to the current flowlet to be transmitted includes:
    当所述当前待传输flowlet为第1个flowlet时,生成随机数l 1When the current flowlet to be transmitted is the first flowlet, a random number l 1 is generated;
    根据所述随机数l 1确定所述第1个flowlet对应的链路指针; Determine the link pointer corresponding to the first flowlet according to the random number l 1 ;
    当所述当前待传输flowlet为第i个flowlet时,生成随机数l iWhen the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated;
    若t i-t i-1-t i-1’≥Δt,根据所述随机数l i确定所述第i个flowlet对应的链路指针; If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the random number l i ;
    其中,t i为所述第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为所述第i-1个flowlet传输的时间,Δt为预设值;所述第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Wherein, t i is the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 is the first one transmitted flowlet Time, Δt is a preset value; the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  4. 根据权利要求2或3所述的flowlet负载分担方法,其特征在于,所述方法还包括:The flowlet load sharing method according to claim 2 or 3, wherein the method further comprises:
    分别统计所述链路指针上承载的flowlet数据量;以及Separately count the amount of flowlet data carried on the link pointer; and
    分别统计每一条等价负载路由上承载的flowlet数据量;Count the amount of flowlet data carried on each equal-cost load route separately;
    分别计算所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例;Separately calculating the proportion of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on the M equal-cost load routes;
    根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例,以及所述链路指针上承载的flowlet数据量进行负载分担调整。Adjust load sharing according to the proportion of the amount of flowlet data carried on each of the equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and the amount of flowlet data carried on the link pointer .
  5. 根据权利要求4所述的flowlet负载分担方法,其特征在于,所述根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,包括:The flowlet load sharing method according to claim 4, wherein the amount of flowlet data carried on each equal-cost load route accounts for the total amount of flowlet data carried on the M equal-cost load routes Adjust the load sharing ratio, including:
    在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前所述M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在所述第j条负载路由对应的链路指针前置流量暂缓传输标识;When the to-be-transmitted flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, And the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, and the traffic pointer transmission identifier is placed in front of the link pointer corresponding to the jth load route;
    所述第j条负载路由停止传输所述第i+1个flowlet,缓存所述第i+1个flowlet;The jth load route stops transmitting the i + 1th flowlet, and caches the i + 1th flowlet;
    若第j条负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定所述第i+1个flowlet对应的链路指针;If the link pointer corresponding to the jth load route is temporarily forwarded for more than Δt, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm;
    由确定出的所述第i+1个flowlet对应的链路指针对应的负载路由传输所述第i+1个flowlet;Transmitting the i + 1th flowlet by the load corresponding to the determined link pointer corresponding to the i + 1th flowlet;
    其中,第j条负载路由为所述M条等价负载路由中的任一条。Wherein, the jth load route is any one of the M equal-cost load routes.
  6. 根据权利要求4所述的flowlet负载分担方法,其特征在于,所述根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,包括:The flowlet load sharing method according to claim 4, wherein the amount of flowlet data carried on each equal-cost load route accounts for the total amount of flowlet data carried on the M equal-cost load routes Adjust the load sharing ratio, including:
    在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前所述M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整所述第i+1个flowlet对应的链路指针;When the to-be-transmitted flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, And the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, adjusting the link pointer corresponding to the i + 1th flowlet;
    由调整之后的所述第i+1个flowlet对应的链路指针对应的负载路由传输所述第i+1个flowlet;Transmitting the i + 1th flowlet by the load route corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment;
    其中,第j条负载路由为所述M条等价负载路由中的任一条。Wherein, the jth load route is any one of the M equal-cost load routes.
  7. 一种flowlet负载分担装置,其特征在于,所述装置包括:A flowlet load sharing device, characterized in that the device includes:
    散列模块,用于依据hash散列算法将原始流变换成聚合流,所述聚合流包括N个流簇flowlet,N为整数,N≥2;A hashing module, used to transform the original stream into an aggregated stream according to a hash hashing algorithm, the aggregated stream including N flow cluster flowlets, N is an integer, and N≥2;
    查询模块,用于查询转发信息库FIB表,获取当前待传输flowlet的等价负载路由信息,其中,所述等价负载路由信息包括可以传输所述当前待传输flowlet的M个等价负载路由,所述当前待传输flowlet属于所述N个流簇flowlet;The query module is used to query the FIB table of the forwarding information library to obtain the equivalent load routing information of the current flowlet to be transmitted, wherein the equivalent load routing information includes M equivalent load routes that can transmit the current flowlet to be transmitted, The current flowlet to be transmitted belongs to the N flow cluster flowlets;
    分析模块,用于根据所述等价负载路由信息确定链路指针配置信息,其中,所述链路指针配置信息包括每一个所述等价负载路由对应的链路指针数量;以及An analysis module, configured to determine link pointer configuration information according to the equivalent load routing information, wherein the link pointer configuration information includes the number of link pointers corresponding to each of the equivalent load routes; and
    确定所述当前待传输flowlet对应的链路指针,所述链路指针用于指示传输所述当前待传输flowlet的负载路由;Determining a link pointer corresponding to the current flowlet to be transmitted, where the link pointer is used to indicate a load route for transmitting the current flowlet to be transmitted;
    传输装置,用于由确定出的所述链路指针对应的负载路由传输所述当前待传输flowlet。A transmission device, configured to route the current flowlet to be transmitted by the determined load corresponding to the link pointer.
  8. 根据权利要求7所述的flowlet负载分担装置,其特征在于,所述确定所述当前待传输flowlet对应的链路指针,包括:The flowlet load sharing device according to claim 7, wherein the determining a link pointer corresponding to the current flowlet to be transmitted includes:
    当所述当前待传输flowlet为第1个flowlet时,获取时间戳t 1When the current flowlet to be transmitted is the first flowlet, a time stamp t 1 is obtained ;
    根据所述时间戳t 1确定所述第1个flowlet对应的链路指针; Determine the link pointer corresponding to the first flowlet according to the time stamp t 1 ;
    当所述当前待传输flowlet为第i个flowlet时,获取时间戳t iWhen the current flowlet to be transmitted is the i-th flowlet, a time stamp t i is obtained ;
    若t i-t i-1-t i-1’≥Δt,根据所述时间戳t i确定所述第i个flowlet对应的链路指针; If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the time stamp t i ;
    其中,t i为所述第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为所述第i-1个flowlet传输的时间,Δt为预设值;所述第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Wherein, t i is the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 is the first one transmitted flowlet Time, Δt is a preset value; the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  9. 根据权利要求8所述的flowlet负载分担装置,其特征在于,所述确定所述当前待传输flowlet对应的链路指针,包括:The flowlet load sharing device according to claim 8, wherein the determining the link pointer corresponding to the current flowlet to be transmitted includes:
    当所述当前待传输flowlet为第1个flowlet时,生成随机数l 1When the current flowlet to be transmitted is the first flowlet, a random number l 1 is generated;
    根据所述随机数l 1确定所述第1个flowlet对应的链路指针; Determine the link pointer corresponding to the first flowlet according to the random number l 1 ;
    当所述当前待传输flowlet为第i个flowlet时,生成随机数l iWhen the current flowlet to be transmitted is the i-th flowlet, a random number l i is generated;
    若t i-t i-1-t i-1’≥Δt,根据所述随机数l i确定所述第i个flowlet对应的链路指针; If t i -t i-1 -t i-1 '≥Δt, determine the link pointer corresponding to the i-th flowlet according to the random number l i ;
    其中,t i为所述第i个flowlet出现时的时间戳,t i-1为第i-1个flowlet出现时的时间戳,t i-1’为所述第i-1个flowlet传输的时间,Δt为预设值;所述第i个flowlet对应的链路指针与第i-1个flowlet对应的链路指针不同。 Wherein, t i is the i-th time-stamp when flowlet occurs, t i-1 to i-1 th timestamp occurs when flowlet, t i-1 'i-1 is the first one transmitted flowlet Time, Δt is a preset value; the link pointer corresponding to the i-th flowlet is different from the link pointer corresponding to the i-1th flowlet.
  10. 根据权利要求8或9所述的flowlet负载分担装置,其特征在于,所述装置还包括:The flowlet load sharing device according to claim 8 or 9, wherein the device further comprises:
    统计模块,用于分别统计所述链路指针上承载的flowlet数据量;以及A statistics module for separately counting the amount of flowlet data carried on the link pointer; and
    分别统计每一条等价负载路由上承载的flowlet数据量;Count the amount of flowlet data carried on each equal-cost load route separately;
    分别计算所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例;Separately calculating the proportion of the amount of flowlet data carried on each equal-cost load route to the total amount of flowlet data carried on the M equal-cost load routes;
    根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例,以及所述链路指针上承载的flowlet数据量进行负载分担调整。Adjust load sharing according to the proportion of the amount of flowlet data carried on each of the equivalent load routes to the total amount of flowlet data carried on the M equivalent load routes, and the amount of flowlet data carried on the link pointer .
  11. 根据权利要求10所述的flowlet负载分担装置,其特征在于,所述根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,包括:The flowlet load sharing device according to claim 10, wherein the amount of flowlet data carried on each equal-cost load route accounts for the total amount of flowlet data carried on the M equal-cost load routes Adjust the load sharing ratio, including:
    在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前所述M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,在所述第j条负载路由对应的链路指针前置流量暂缓传输标识;When the to-be-transmitted flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, And the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, and the traffic pointer transmission identifier is placed in front of the link pointer corresponding to the jth load route;
    所述第j条负载路由停止传输所述第i+1个flowlet,缓存所述第i+1个flowlet;The jth load route stops transmitting the i + 1th flowlet, and caches the i + 1th flowlet;
    若第j条负载路由对应的链路指针暂缓转发时间大于Δt,依据hash散列算法确定所述第i+1个flowlet对应的链路指针;If the link pointer corresponding to the jth load route is temporarily forwarded for more than Δt, the link pointer corresponding to the i + 1th flowlet is determined according to the hash hash algorithm;
    由确定出的所述第i+1个flowlet对应的链路指针对应的负载路由传输所述第i+1个flowlet;Transmitting the i + 1th flowlet by the load corresponding to the determined link pointer corresponding to the i + 1th flowlet;
    其中,第j条负载路由为所述M条等价负载路由中的任一条。Wherein, the jth load route is any one of the M equal-cost load routes.
  12. 根据权利要求10所述的flowlet负载分担装置,其特征在于,所述根据所述每一条等价负载路由上承载的flowlet数据量占所述M条等价负载路由上的总承载flowlet数据量的比例进行负载分担调整,包括:The flowlet load sharing device according to claim 10, wherein the amount of flowlet data carried on each equal-cost load route accounts for the total amount of flowlet data carried on the M equal-cost load routes Adjust the load sharing ratio, including:
    在待传输flowlet为第i+1个flowlet时,若当前第j条负载路由上承载的flowlet数据量占当前所述M条等价负载路由上的总承载flowlet数据量的比例大于预设值,且与预设负载分担比例差值的绝对值大于预设阈值,调整所述第i+1个flowlet对应的链路指针;When the to-be-transmitted flowlet is the i + 1th flowlet, if the proportion of the current flowlet data carried on the jth load route to the current total amount of flowlet data carried on the M equivalent load routes is greater than the preset value, And the absolute value of the difference from the preset load sharing ratio is greater than the preset threshold, adjusting the link pointer corresponding to the i + 1th flowlet;
    由调整之后的所述第i+1个flowlet对应的链路指针对应的负载路由传输所述第i+1个flowlet;Transmitting the i + 1th flowlet by the load route corresponding to the link pointer corresponding to the i + 1th flowlet after adjustment;
    其中,第j条负载路由为所述M条等价负载路由中的任一条。Wherein, the jth load route is any one of the M equal-cost load routes.
  13. 一种flowlet负载分担装置,其特征在于,所述装置包括:A flowlet load sharing device, characterized in that the device includes:
    存储器,用于存储计算机执行指令;Memory, used to store computer execution instructions;
    处理器,用于执行所述计算机执行指令实现如权利要求1-6任一项所述的flowlet负载分担方法。A processor, configured to execute the computer-executed instructions to implement the flowlet load sharing method according to any one of claims 1-6.
  14. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,所述计算机执行指令被处理器执行时实现如权利要求1-6任一项所述的flowlet负载分担方法。A computer-readable storage medium, characterized in that computer-executable instructions are stored on the computer-readable storage medium, and when the computer-executed instructions are executed by a processor, the flowlet according to any one of claims 1-6 is implemented Load sharing method.
PCT/CN2019/117627 2018-11-19 2019-11-12 Flowlet load sharing method and device WO2020103727A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811375795.9A CN111200558B (en) 2018-11-19 2018-11-19 Method and device for sharing flow load
CN201811375795.9 2018-11-19

Publications (1)

Publication Number Publication Date
WO2020103727A1 true WO2020103727A1 (en) 2020-05-28

Family

ID=70746151

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/117627 WO2020103727A1 (en) 2018-11-19 2019-11-12 Flowlet load sharing method and device

Country Status (2)

Country Link
CN (1) CN111200558B (en)
WO (1) WO2020103727A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111817973B (en) * 2020-06-28 2022-03-25 电子科技大学 Data center network load balancing method
CN115412499B (en) * 2022-08-24 2024-03-22 新华三人工智能科技有限公司 Flow transmission method, device and controller

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150124652A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. Weighted equal cost multipath routing
CN106385362A (en) * 2016-08-30 2017-02-08 迈普通信技术股份有限公司 Non-load-balancing route switching method and device
US20170085485A1 (en) * 2015-09-23 2017-03-23 Cisco Technology, Inc. Load balancing with flowlet granularity
CN108476208A (en) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 Multi-path transmission designs
US10097467B1 (en) * 2016-08-11 2018-10-09 Amazon Technologies, Inc. Load balancing for multipath groups routed flows by re-associating routes to multipath groups

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7506067B2 (en) * 2005-07-28 2009-03-17 International Business Machines Corporation Method and apparatus for implementing service requests from a common database in a multiple DHCP server environment
CN101022413B (en) * 2007-03-26 2010-10-13 杭州华三通信技术有限公司 Load equalizing method and route server
CN103236986B (en) * 2013-04-07 2016-06-08 杭州华三通信技术有限公司 Load sharing method and device
CN108270687B (en) * 2016-12-30 2020-08-25 华为技术有限公司 Load balancing processing method and device
CN107819697B (en) * 2017-11-27 2020-03-27 锐捷网络股份有限公司 Data transmission method, switch and data center

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150124652A1 (en) * 2013-11-05 2015-05-07 Cisco Technology, Inc. Weighted equal cost multipath routing
US20170085485A1 (en) * 2015-09-23 2017-03-23 Cisco Technology, Inc. Load balancing with flowlet granularity
CN108476208A (en) * 2015-12-28 2018-08-31 亚马逊技术股份有限公司 Multi-path transmission designs
US10097467B1 (en) * 2016-08-11 2018-10-09 Amazon Technologies, Inc. Load balancing for multipath groups routed flows by re-associating routes to multipath groups
CN106385362A (en) * 2016-08-30 2017-02-08 迈普通信技术股份有限公司 Non-load-balancing route switching method and device

Also Published As

Publication number Publication date
CN111200558A (en) 2020-05-26
CN111200558B (en) 2021-05-18

Similar Documents

Publication Publication Date Title
WO2017070970A1 (en) Route determining method and corresponding apparatus and system
US10218618B2 (en) Method and apparatus for processing operation request in storage system
Rojas-Cessa et al. Schemes for fast transmission of flows in data center networks
TWI477127B (en) Computer-implemented method,machine-readable medium and client device for scheduling packet transmission
Zheng et al. Minimizing transient congestion during network update in data centers
WO2021114793A1 (en) Data forwarding method, data buffering method, device, and related apparatus
US8929372B2 (en) Grid router
Wang et al. Freeway: Adaptively isolating the elephant and mice flows on different transmission paths
WO2020103727A1 (en) Flowlet load sharing method and device
JP6414455B2 (en) Data relay apparatus, server apparatus, data relay method, data transmission method, and program
WO2018040816A1 (en) Method for acquiring resource, and terminal and server
Yan et al. A survey of low-latency transmission strategies in software defined networking
WO2012109910A1 (en) Routing method and device for link aggregation
WO2016082603A1 (en) Scheduler and dynamic multiplexing method for scheduler
Kang et al. Application of adaptive load balancing algorithm based on minimum traffic in cloud computing architecture
US20220311711A1 (en) Congestion control based on network telemetry
TW201351933A (en) System for performing data cut-through
Hu et al. Adjusting switching granularity of load balancing for heterogeneous datacenter traffic
US20180302329A1 (en) Output rates for virtual output queues
CN116708280B (en) Data center network multipath transmission method based on disorder tolerance
CN110784417A (en) Congestion control method, equipment and system
Jiang et al. Tailor: Trimming coflow completion times in datacenter networks
CN113765812A (en) Method and device for marking message
CN112751776A (en) Congestion control method and related device
Khan et al. RecFlow: SDN-based receiver-driven flow scheduling in datacenters

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19887753

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19887753

Country of ref document: EP

Kind code of ref document: A1