Flow load distribution method and device
By extracting the packet header, performing hash functions and applying load balancing functions in the network traffic management system, the problem of intermediate modules dropping packets is solved, asymmetric load balancing is achieved, and network performance and throughput are improved.
Patent Information
- Application Number
- CN202380084566.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-08
- Filing Date
- 2023-09-07
- Publication Date
- 2025-09-12
AI Technical Summary
When existing technologies distribute traffic loads through internal networks, intermediate modules may drop data packets, resulting in inefficient network performance and failing to effectively avoid overload of endpoints and intermediate modules.
By extracting the header of the data packet, performing a hash function and applying the load balancing function, the data packets are unevenly distributed to multiple endpoints based on the endpoint characteristics, and an asymmetric topology design is adopted to avoid intermediate module overload and packet drop.
It achieves asymmetric load balancing, avoids overload of endpoints and intermediate modules, improves network performance and throughput, avoids packet loss, and improves the overall efficiency of the network.
Smart Images

Figure CN120642309A_ABST
Abstract
Description
[0001] Cross-reference to prior applications
[0002] This application claims the benefit of U.S. non-provisional patent application No. 18 / 077,389, filed December 8, 2022, the entire contents of which are incorporated herein by reference for all purposes. Technical Field
[0003] The present technology relates to a method and system for distributing traffic load across a heterogeneous topology of a network. Background Art
[0004] Systems that distribute and distribute traffic load across an internal network typically distribute traffic evenly internally. Traffic received by the system can be stored for future use in traffic management systems. Systems with high traffic volumes may require multiple traffic management systems to manage the heavy traffic. Each traffic management system is referred to as an endpoint. To direct incoming traffic to different endpoints, intermediate modules can be used for internal routing. The problem with evenly distributing traffic internally is that intermediate modules may begin dropping packets from a flow, resulting in global backoff from clients. Dropping packets during traffic routing can lead to inefficient internal network performance. Summary of the Invention
[0005] A method for distributing traffic load over a heterogeneous network topology, implemented in cooperation with a network traffic management system including one or more network traffic management modules, server modules, or client modules, includes extracting a header of each of a plurality of received packets of a traffic flow. Each header includes fields. Next, the method includes performing a hash function on the fields of each header, applying a load balancing function to determine one of a plurality of endpoints to send each received packet based on one or more endpoint characteristics, and mapping an index of each corresponding packet in the received packets to a corresponding selected one of the endpoints. The received packets are not evenly divided among the plurality of endpoints. Finally, the method includes sending the received packets to the selected endpoint based on the mapping of the load balancing policy.
[0006] A network traffic management device includes: a memory including programmed instructions stored thereon; and one or more processors configured to execute the stored programmed instructions to extract a header of each of a plurality of received data packets of a traffic flow. Each header includes fields. Next, a hash function is performed on the fields of each header, a load balancing function is applied to determine one of a plurality of endpoints to send each of the received data packets based on one or more endpoint characteristics, and an index of each corresponding data packet in the received data packets is mapped to a corresponding selected one of the endpoints. The received data packets are not evenly divided among the plurality of endpoints. Finally, the received data packets are sent to the selected endpoint based on the mapping of the load balancing policy.
[0007] A non-transitory computer-readable medium having instructions stored thereon, the instructions comprising executable code that, when executed by one or more processors, causes the processors to extract a header for each of a plurality of received packets of a traffic flow. Each header comprises fields. Next, a hash function is performed on the fields of each header, a load balancing function is applied to determine an endpoint from a plurality of endpoints to which to send each of the received packets based on one or more endpoint characteristics, and an index of each corresponding packet in the received packets is mapped to a corresponding selected one of the endpoints. The received packets are unevenly divided among the plurality of endpoints. Finally, the received packets are sent to the selected endpoint based on the mapping according to the load balancing policy.
[0008] A network traffic management system includes: one or more traffic management modules, server modules, or client modules; a memory including programmed instructions stored thereon; and one or more processors configured to execute the stored programmed instructions to extract a header for each of a plurality of received packets of a traffic flow. Each header includes fields. Next, a hash function is performed on the fields of each header, a load balancing function is applied to determine one of a plurality of endpoints to send each of the received packets based on one or more endpoint characteristics, and an index of each corresponding packet in the received packets is mapped to a corresponding selected one of the endpoints. The received packets are not evenly divided among the plurality of endpoints. Finally, the received packets are sent to the selected endpoint based on the mapping of the load balancing policy.
[0009] This technology offers many advantages, including support for asymmetric load balancing schemes and topologies. The system effectively avoids overloading of endpoints and intermediate modules, and prevents global backoff from traffic flows due to packet loss. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] Figure 1is a block diagram of an exemplary network traffic management system having a network traffic management device;
[0011] Figure 2 is a flow chart of an exemplary method for asymmetrically distributing a traffic load;
[0012] Figure 3 is an exemplary environment for a network traffic management system; and
[0013] Figure 4 is an exemplary environment for a network traffic management system. DETAILED DESCRIPTION
[0014] Figure 1 、 Figure 3 and Figure 4 An example of a network environment 10 is shown in FIG. 1 that incorporates a network traffic management system that utilizes a network traffic manager device 14 to asymmetrically distribute traffic loads. The exemplary environment 10 includes a plurality of client computing devices 12(1) to 12(n), a network traffic manager device 14, and a plurality of servers 16(1) to 16(n) coupled together via a communications network 30, but the environment may include other types and numbers of systems, devices, components, and / or elements and employ other topologies and deployments. Although not shown, the exemplary environment 10 may include additional network components, such as routers, switches, and other devices, which are well known to those skilled in the art and, therefore, will not be described herein. The present technology provides numerous advantages, including asymmetrically distributing traffic loads.
[0015] More specifically, refer to Figure 1 The network traffic manager device 14 of the network traffic management system is coupled to a plurality of client computing devices 12(1) to 12(n) via a communication network 30, but the plurality of client computing devices 12(1) to 12(n) and the network traffic manager device 14 may also be coupled together via other topologies. In addition, the network traffic manager device 14 is coupled to a plurality of servers 16(1) to 16(n) via the communication network 30, but the servers 16(1) to 16(n) and the network traffic manager device 14 may also be coupled together via other topologies.
[0016] Now more specifically refer to Figure 3 and Figure 4, the network traffic manager device 14 of the network traffic management system may include multiple input / output modules or I / O modules 32 with set processing capabilities. The I / O modules 32 or high density modules ("HDEs") may also be connected to intermediate modules 34 with different processing capabilities and capacities. The intermediate modules 34 or packet direct memory access engines ("PDEs") may be connected to multiple endpoints 36 or traffic management system / microkernels ("TMMs"). In some examples, the network traffic management system may include an odd number of intermediate modules 34, or may include an even number of intermediate modules 34, with some of the intermediate modules 34 being inactive. This may result in an asymmetric topology. In some examples, a single endpoint 36 or TMM is connected to one intermediate module 34 or PDE. In some examples, multiple intermediate modules 34 or PDEs may be connected to a single endpoint 36 or TMM, such as Figure 3 and Figure 4 In other non-limiting examples, a single intermediate module 34 or PDE may be topologically connected to multiple endpoints 36 or TMMs.
[0017] The network traffic manager device 14 assists in asymmetrically distributing traffic loads as shown and described herein by way of example, but the network traffic manager device 14 may perform other types and / or numbers of functions. The network traffic manager device 14 may include a processor or central processing unit (CPU), memory, and a communication system coupled together by a bus arrangement, but the network traffic manager device 14 may include other types and numbers of elements in other configurations.
[0018] The processor within the network traffic manager device 14 may execute one or more computer-executable instructions stored in memory for the methods shown and described with reference to the examples herein, but the processor may execute other types and numbers of instructions and perform other types and numbers of operations. The processor may include one or more central processing units ("CPUs") or general-purpose processors having one or more processing cores, such as a processor. processor, but other types of processors may be used (e.g. ).
[0019] The memory within the network traffic manager device 14 may include one or more tangible storage media such as RAM, ROM, flash memory, CD-ROM, floppy disk, hard drive, solid-state memory, DVD, or any other memory storage type or device known to those of ordinary skill in the art, including combinations thereof. The memory may store one or more non-transitory computer-readable instructions that may be executed by a processor as shown and described with reference to the examples herein. Figure 2The exemplary flow charts shown in represent example steps or actions of the present technology, which may be embodied or expressed as one or more non-transitory computer or machine-readable instructions stored in a memory and executable by a processor.
[0020] Thus, the memory of the network traffic manager device 14 may store one or more applications that may include computer-executable instructions that, when executed by the network traffic manager device 14, cause the network traffic manager device 14 to perform actions, such as, for example, transmitting, receiving, or otherwise processing messages, and performing the operations described below with reference to Figure 2 Other actions described and shown. The application may be implemented as a module or component of another application. Furthermore, the application may be implemented as an operating system extension, module, plug-in, or the like. The application may be implemented as a module or component of another application. Furthermore, the application may be implemented as an operating system extension, module, plug-in, or the like. Still further, the application may operate in a cloud-based computing environment. The application may be executed in a virtual machine or virtual server that may be managed in a cloud-based computing environment. Furthermore, the application, including the network traffic manager device 14 itself, may be located in a virtual server that runs in a cloud-based computing environment rather than being tied to one or more specific physical network computing devices. Furthermore, the application may run in one or more virtual machines (VMs) executing on the network traffic manager device 14. Additionally, in at least one of the various examples, the virtual machines running on the network traffic manager device 14 may be managed or supervised by a hypervisor.
[0021] The plurality of I / O modules 32, the plurality of intermediate modules 34, and the plurality of endpoints 36 may each include a processor coupled to a memory, but the endpoints may include other types and / or numbers of other components and / or elements in other configurations. The processor may include one or more central processing units ("CPUs") or a general-purpose processor having one or more processing cores, such as a processor. processor, but other types of processors may be used (e.g. ). The memory may include RAM, ROM, flash memory, CD-ROM, floppy disk, hard drive, solid-state memory, DVD, or any other memory storage type or device known to a person of ordinary skill in the art (including combinations thereof). The memory of each of the multiple I / O modules 32, the multiple intermediate modules 34, and the multiple endpoints 36 can be executed by a corresponding one of the processors. The memory of the multiple I / O modules 32, the multiple intermediate modules 34, and the multiple endpoints 36 can be implemented as operating system extensions, modules, plug-ins, etc., and can also be operated in a cloud-based computing environment. In addition, the multiple I / O modules 32, the multiple intermediate modules 34, and the multiple endpoints 36 are not limited to a specific configuration. The capacity of the memory or the speed of the processor may vary. Limitations in the speed of circuits, internal / external chips, and module interconnections may impose upper limits or bandwidth limitations on network inputs or outputs, thereby preventing the intermediate modules 34 from having the same or symmetrical network path capacity to serve each endpoint 36, which may result in poor performance of the entire system.
[0022] The connections between the multiple I / O modules 32, the multiple intermediate modules 34, and the multiple endpoints 36 can be designed for asymmetric load balancing of data or traffic to achieve optimal performance and throughput. In this example, the network traffic management system may receive a large amount of traffic and need to store the received data packets in the traffic for future use. In order to store the large amount of received data packets, multiple endpoints 36 can be used as storage devices. The received data packets can travel through the multiple I / O modules 32 and the multiple intermediate modules 34 and then be routed to the multiple endpoints 36. In this example, the multiple I / O modules 32 can each be a direct memory access hardware circuit called an HDE, which is connected to one of the multiple intermediate modules 34. The multiple intermediate modules 34 can have different capacities as described above, and as Figure 3 and Figure 4 Shown are PDEs of different sizes. Figure 3 and Figure 4 The multiple endpoints 36, shown as TMMs in FIG. 3 , may also have different capacities as described above. Multiple intermediate modules 34 may be connected to a single endpoint 36. By providing different capacities for the multiple intermediate modules 34 and the multiple endpoints 36, and by not making one-to-one connections between the multiple intermediate modules 34 and the multiple endpoints 36, an asymmetric internal network traffic management system can be designed to achieve optimal performance and throughput.
[0023] The communication system 24 in the network traffic manager device 14 is used to operatively couple and communicate between the network traffic manager device 14, the plurality of client computing devices 12(1) to 12(n), and the plurality of servers 16(1) to 16(n), all coupled together via a communication network 30, such as one or more local area networks (LANs) and / or wide area networks (WANs), although other types and numbers of communication networks or systems having other types and numbers of connections and configurations with other devices and elements may be used. By way of example only, the communication network, such as the local area network (LAN) and / or wide area network (WAN), may use TCP / IP over Ethernet and industry standard protocols including NFS, CIFS, SOAP, XML, LDAP, and SNMP, although other types and numbers of communication networks may be used.
[0024] Each of the plurality of client computing devices 12(1) to 12(n) of the network traffic management system 10 includes a central processing unit (CPU) or processor, memory, input / display device interfaces, configurable logic devices, and input / output systems or I / O systems, which are coupled together via a bus or other link. In this example, the plurality of client computing devices 12(1) to 12(n) can run an interface application, such as a network request, which can provide an interface to issue requests to and send data to and / or receive data from a plurality of servers 16(1) to 16(n) via the network traffic manager device 14. In addition, the plurality of client computing devices 12(1) to 12(n) can include any type of computing device capable of receiving, presenting, and facilitating user interactions, such as a client computer, a network computer, a mobile computer, a mobile phone, a virtual machine (including a cloud-based computer), and the like. By way of example only, each of the plurality of client computing devices 12(1) to 12(n) utilizes the network traffic manager device 14 to conduct one or more operations with the servers 16(1) to 16(n), such as obtaining data and / or accessing an application from one of the servers 16(1) to 16(n), but other numbers and / or types of systems may utilize these resources and may perform other types and numbers of functions utilizing other types of protocols.
[0025] Each of the plurality of servers 16(1) to 16(n) of the network traffic management system includes a central processing unit (CPU) or processor, memory, and a communication system coupled together by a bus or other link, although other numbers and / or types of network devices may be used. Typically, the plurality of servers 16(1) to 16(n) process requests for providing access to one or more enterprise network applications received from the plurality of client computing devices 12(1) to 12(n), the network traffic manager device 14 via the communication network 30 according to an HTTP-based application RFC protocol or a CIFS or NFS protocol in this example, but the principles discussed herein are not limited to this example and may include other application protocols. A range of applications may be run on the servers 16(1) to 16(n), thereby allowing the transmission of applications requested by the plurality of client computing devices 12(1) to 12(n) or the network traffic manager device 14. The plurality of servers 16(1) to 16(n) may provide or receive data packets in response to requests for corresponding applications on the plurality of servers 16(1) to 16(n) from the plurality of client computing devices 12(1) to 12(n) or the network traffic manager device 14. It should be understood that the plurality of servers 16(1) to 16(n) may be hardware or software, or may represent a system having a plurality of external resource servers, which may include an internal network or an external network.
[0026] Although the plurality of servers 16(1) to 16(n) are shown as separate servers, each of the plurality of servers 16(1) to 16(n) may be distributed across one or more different network computing devices. Furthermore, the plurality of servers 16(1) to 16(n) is not limited to a particular configuration. Thus, the plurality of servers 16(1) to 16(n) may include a plurality of network computing devices that operate using a master / slave approach, whereby one of the network computing devices of the plurality of servers 16(1) to 16(n) operates to manage and / or otherwise coordinate the operations of the other network computing devices. The plurality of servers 16(1) to 16(n) may operate as a plurality of network computing devices within a cluster architecture, a peer-to-peer architecture, a virtual machine, or a cloud architecture.
[0027] Therefore, the technology disclosed herein should not be construed as limited to a single environment, and other configurations and architectures are also contemplated. For example, Figure 1 One or more of the plurality of servers 16(1)-16(n) shown in FIG may operate within the network traffic manager device 14 rather than as stand-alone servers communicating with the network traffic manager device 14 via the communication network 30. In this example, the plurality of servers 16(1)-16(n) operate within the memory 20 of the network traffic manager device 14.
[0028] Although the network traffic manager device 14 is shown in this example as comprising a single device, in other examples, the network traffic manager device 14 may include multiple devices or blades, each device or blade having one or more processors, each processor having one or more processing cores that implement one or more steps of the present technology. In these examples, one or more of the devices in the device may have a dedicated communication interface or memory. Alternatively, one or more of the devices in the device may utilize memory, communication interfaces, or other hardware or software components of one or more other devices in the device that are communicatively coupled. In addition, in other examples, one or more of the devices that collectively comprise the network traffic manager device 14 may be standalone devices or integrated with, for example, one or more other devices or applications, multiple servers 16(1) to 16(n), or the network traffic manager device 14 or an application coupled to a communication network. Furthermore, in these examples, one or more of the devices in the device of the network traffic manager device 14 may be in the same or different communication networks 30, including, for example, one or more public, private, or cloud networks.
[0029] Although an exemplary network traffic management system 10 having a plurality of client computing devices 12(1) to 12(n), a network traffic manager device 14, and a plurality of servers 16(1) to 16(n) is described and illustrated herein, other types and numbers of systems, devices, blades, components, and elements in other topologies may be used. It should be understood that the exemplary systems described herein are for exemplary purposes, as many variations in the specific hardware and software used to implement the examples are possible, as will be appreciated by those skilled in the relevant art.
[0030] Furthermore, each of these example systems can be conveniently implemented using one or more general purpose computer systems, microprocessors, digital signal processors, and microcontrollers programmed according to the teachings of the examples, as described and illustrated herein, and as will be appreciated by those of ordinary skill in the art.
[0031] One or more of the components shown in the network traffic management system (such as, for example, the network traffic manager device 14, the plurality of client computing devices 12(1) to 12(n), the plurality of servers 16(1) to 16(n)) may be configured to operate as virtual instances on the same physical machine. In other words, Figure 1 The network traffic manager device 14, the plurality of client computing devices 12(1) to 12(n), or one or more of the plurality of servers 16(1) to 16(n) shown in FIG. 1 may operate on the same physical device, rather than acting as a single physical device. Figure 1The client computing devices 12(1) to 12(n), the network traffic manager device 14, or the plurality of servers 16(1) to 16(n) may be more than Figure 1 The plurality of client computing devices 12 ( 1 ) to 12 ( n ) and the plurality of servers 16 ( 1 ) to 16 ( n ) may be implemented as applications on the network traffic manager device 14 .
[0032] In addition, in any example, two or more computing systems or devices can be replaced by any one of the systems or devices. Therefore, the principles and advantages of distributed processing, such as redundancy and replication, can also be implemented as needed to improve the robustness and performance of the devices and systems of the examples. These examples can also be implemented on a computer system extended across any suitable network using any suitable interface mechanism and flow technology, including (for example only) any suitable form of traffic (e.g., voice and modem), wireless traffic media, wireless traffic network, cellular traffic network, G3 traffic network, public switched telephone network (PSTN), packet data network (PDN), the Internet, intranet and combinations thereof.
[0033] The examples may also be embodied as a non-transitory computer-readable medium having stored thereon instructions for one or more aspects of the techniques described and illustrated herein by way of the examples, which, when executed by a processor (or configurable hardware), cause the processor to perform the steps necessary to implement the methods of the examples described and illustrated herein.
[0034] Now refer to Figures 1 to 4 An example of a method for distributing traffic loads across a heterogeneous topology is described. First, in step 205, the network traffic manager device 14 receives a received packet from a traffic flow from one of the plurality of client computing devices 12(1) to 12(n), but the network traffic manager device 14 may receive packets from other sources in other ways. In this example, the network traffic manager device 14 receives a received packet that needs to flow through one of the intermediate modules 34, shown as a PDE, to reach one of the endpoints 36, shown as a TMM. Figure 3 and Figure 4 shown.
[0035] In step 210, the network traffic manager device 14 extracts a header of each received data packet in a traffic flow received from one of the plurality of client computing devices 12(1) to 12(n). In this example, the network traffic manager device 14 extracts the header of the received data packet to subsequently generate an index corresponding to each received data packet. The header of the received data packet may include multiple fields. In some examples, the fields in the header may also be used to generate the index. In some examples, the network traffic manager device 14 may use the index generated from the header to identify how the received data packet needs to be properly routed.
[0036] In step 215, the network traffic manager device 14 performs a hash function on the fields of each header to generate an index for each corresponding data packet in the received data packets. When the network traffic manager device 14 performs the hash function on the fields of each header of each received data packet, the hash function can be used to generate an index for each header, which is stored in a column of the reallocation table. The hash function performed can be any function known in the art that can be used to map data of arbitrary size to a fixed-size value. In this example, the network traffic manager device 14 can obtain the fields from the header of each received data packet and can generate the index as an integer of a fixed-size value for use in the reallocation table.
[0037] In step 220, the network traffic manager device 14 applies a load balancing function to determine, based on one or more endpoint characteristics, one of the plurality of endpoints 36 to which to send each received data packet. The endpoint 36 selected for each received data packet is stored in another column of the corresponding row of the reallocation table, and the index generated in the previous step is stored in another column of the reallocation table to generate a mapping. Using a load balancing function known in the art, the network traffic manager device 14 can determine, for each received data packet, the selected one of the plurality of endpoints 36 to which to send the corresponding one of the received data packets. The network traffic manager device 14 can also determine how to distribute the received data packets to the intermediate modules 34 or endpoints 36 based on the application of the load balancing function. Therefore, the network traffic manager device 14 determines how to distribute the received data packets based on the generated index based on the application of the load balancing function. The network traffic manager device 14, when applying the load balancing function, does not automatically and evenly distribute the index generated for each received data packet in the traffic flow among the intermediate modules 34 or endpoints 36. For example, in the event that the capacity sizes of the intermediate modules 34 or endpoints 36 vary, the network traffic manager device 14 applying the load balancing function can take into account the different capacity sizes of the intermediate modules 34 or endpoints 36 by taking into account such intermediate and / or endpoint capacities when allocating indexed headers between the intermediate modules 34 or endpoints 36, and this may result in uneven but more effective and efficient allocation. As a non-limiting example, if Figure 3 and Figure 4 As shown, PDE 4 and PDE 5 have smaller capacities than the remaining PDEs. Due to the smaller capacities, network traffic manager device 14 may direct fewer received data packets through PDE 4 and PDE 5 than through the remaining PDEs. If the capacity of a selected one of endpoints 36 is also smaller than the capacity of the remaining endpoints 36, network traffic manager device 14 may similarly direct fewer received data packets through the selected one of endpoints 36 with the smaller capacity. Incidentally, a similar approach may be used based on the identified capacity of intermediate module 34.
[0038] Furthermore, the network traffic manager device 14, which applies load balancing functionality to optimize traffic, can also direct received packets routed through different intermediate modules 34 to the same endpoint 36. For example, packets routed through PDE 4 and PDE 5 can both be directed to TMM 4, rather than to different TMMs. By allowing different intermediate modules 34 to send packets to the same endpoint 36, traffic can be evenly distributed across endpoints 36, rather than evenly distributed across intermediate modules 34 or PDEs. In this example, the load balancing functionality does not assume that all endpoints 36 or TMMs have the same intermediate module 34 or PDE assignment.
[0039] In step 225, the network traffic manager device 14 sends each received packet to each corresponding selected endpoint 36 based on the mapping from the application of the load balancing policy, and the exemplary process may then end at step 230. More specifically, in this example, the network traffic manager device 14 obtains each index generated from the extracted header of each received packet, then uses the generated reallocation table with these indexes and sends the corresponding received packet to the selected endpoint mapped to the corresponding one of the indexes in the reallocation table. In some examples, the endpoints 36 may receive a balanced portion of the overall traffic flow, which may indicate that each endpoint 36 is mapped to an equal number of generated indexes stored in the reallocation table. In other examples, each endpoint 36 may be mapped to an unequal number of generated indexes stored in the reallocation table, which may indicate that there is an imbalanced portion of the overall traffic flow to each endpoint 36. By supporting asymmetric load balancing schemes and topologies, the system can effectively avoid overloading endpoints 36 and / or intermediate modules 34. Furthermore, the system can avoid dropping received packets, thereby avoiding global backoff from the traffic flow.
[0040] Having thus described the basic concepts of the present technology, it will be quite apparent to those skilled in the art that the foregoing detailed disclosure is intended to be presented by way of example only and is not restrictive. Although not expressly stated herein, various changes, improvements, and modifications will occur to and will be contemplated by those skilled in the art. Such changes, improvements, and modifications are intended to be made accordingly and are within the spirit and scope of the present technology. In addition, except as may be specified in the claims, the order of the listed processing elements or sequences, or the use of numbers, letters, or other designations is not intended to limit the claimed processes to any order. Therefore, the present technology is limited only by the following claims and their equivalents.
Claims
1. A method for distributing traffic load across a heterogeneous topology of a network, the method being implemented by a network traffic management system comprising one or more network traffic devices, client devices, or server devices, the method comprising: extracting a header of each of a plurality of received packets of a traffic flow, wherein each of said headers includes a field for directing a corresponding one of said received packets through said network; performing a hash function on the fields of each of the extracted headers to generate an index of each corresponding packet in the received packets, applying a load balancing function to determine an endpoint among a plurality of endpoints to send each of the received data packets based on one or more endpoint characteristics, wherein the load balancing function does not evenly divide the received plurality of data packets among the plurality of endpoints; mapping the index of each respective one of the received data packets to a respective selected one of the endpoints; and The received data packet is sent to each selected endpoint based on the mapping from the load balancing policy.
2. The method according to claim 1, wherein One of the endpoint characteristics includes an identified capacity of each of the plurality of endpoints.
3. The method according to claim 1, wherein The load balancing function also includes: selecting one of the intermediate modules based on one or more intermediate characteristics of each of the intermediate modules; and A route is determined for each of the received plurality of data packets to the selected endpoint by the selected one of the intermediate modules.
4. The method according to claim 3, wherein: The one intermediate characteristic of the one or more intermediate characteristics comprises a capacity of each of the intermediate modules.
5. The method according to claim 3, wherein: The load balancing function does not evenly divide the received plurality of data packets among the plurality of intermediate modules.
6. A non-transitory computer-readable medium having stored thereon instructions for distributing a traffic load across a heterogeneous topology of a network, the instructions comprising executable code that, when executed by one or more processors, causes the processors to: extracting a header of each of a plurality of received packets of a traffic flow, wherein each said header including a field for directing a corresponding one of said received data packets through said network; performing a hash function on the fields of each of the extracted headers to generate an index of each corresponding packet in the received packets, applying a load balancing function to determine an endpoint among a plurality of endpoints to send each of the received data packets based on one or more endpoint characteristics, wherein the load balancing function does not evenly divide the received plurality of data packets among the plurality of endpoints; mapping the index of each respective one of the received data packets to a respective selected one of the endpoints; and The received data packet is sent to each selected endpoint based on the mapping from the load balancing policy.
7. The medium according to claim 6, wherein One of the endpoint characteristics includes an identified capacity of each of the plurality of endpoints.
8. The medium according to claim 6, wherein The load balancing function also includes: selecting one of the intermediate modules based on one or more intermediate characteristics of each of the intermediate modules; and A route is determined for each of the received plurality of data packets to the selected endpoint by the selected one of the intermediate modules.
9. The medium according to claim 8, wherein The one intermediate characteristic of the one or more intermediate characteristics comprises a capacity of each of the intermediate modules.
10. The medium according to claim 8, wherein The load balancing function does not evenly divide the received plurality of data packets among the plurality of intermediate modules.
11. A network traffic manager device comprising: Memory, said memory including programmed instructions stored in said memory; and one or more processors configured to execute the programmed instructions stored in the memory to: extracting a header of each of a plurality of received packets of a traffic flow, wherein each of said headers includes a field for directing a corresponding one of said received packets through said network; performing a hash function on the fields of each of the extracted headers to generate an index of each corresponding packet in the received packets, applying a load balancing function to determine an endpoint among a plurality of endpoints to send each of the received data packets based on one or more endpoint characteristics, wherein the load balancing function does not evenly divide the received plurality of data packets among the plurality of endpoints; mapping the index of each respective one of the received data packets to a respective selected one of the endpoints; and The received data packet is sent to each selected endpoint based on the mapping from the load balancing policy.
12. The device according to claim 11, wherein One of the endpoint characteristics includes an identified capacity of each of the plurality of endpoints.
13. The device according to claim 11, wherein The load balancing function also includes: selecting one of the intermediate modules based on one or more intermediate characteristics of each of the intermediate modules; and A route is determined for each of the received plurality of data packets to the selected endpoint by the selected one of the intermediate modules.
14. The device according to claim 13, wherein The one intermediate characteristic of the one or more intermediate characteristics comprises a capacity of each of the intermediate modules.
15. The device according to claim 13, wherein The load balancing function does not evenly divide the received plurality of data packets among the plurality of intermediate modules.
16. A network traffic management system comprising one or more traffic management devices, client devices, or server devices, the network traffic management system comprising: a memory including programmed instructions stored thereon; and one or more processors configured to execute the stored programmed instructions to: extracting a header of each of a plurality of received packets of a traffic flow, wherein each of said headers includes a field for directing a corresponding one of said received packets through said network; performing a hash function on the fields of each of the extracted headers to generate an index of each corresponding packet in the received packets, applying a load balancing function to determine an endpoint among a plurality of endpoints to send each of the received data packets based on one or more endpoint characteristics, wherein the load balancing function does not evenly divide the received plurality of data packets among the plurality of endpoints; mapping the index of each respective one of the received data packets to a respective selected one of the endpoints; and The received data packet is sent to each selected endpoint based on the mapping from the load balancing policy.
17. The network traffic management system according to claim 16, wherein: One of the endpoint characteristics includes an identified capacity of each of the plurality of endpoints.
18. The network traffic management system according to claim 16, wherein: The load balancing function also includes: selecting one of the intermediate modules based on one or more intermediate characteristics of each of the intermediate modules; and A route is determined for each of the received plurality of data packets to the selected endpoint by the selected one of the intermediate modules.
19. The network traffic management system according to claim 18, wherein: The one intermediate characteristic of the one or more intermediate characteristics comprises a capacity of each of the intermediate modules.
20. The network traffic management system according to claim 18, wherein: The load balancing function does not evenly divide the received plurality of data packets among the plurality of intermediate modules.