Traffic distribution in space and time using futuristic signal for distributed machine learning

WO2026165937A1PCT designated stage Publication Date: 2026-08-13HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-02-10
Publication Date
2026-08-13

Smart Images

  • Figure CN2025076692_13082026_PF_FP_ABST
    Figure CN2025076692_13082026_PF_FP_ABST
Patent Text Reader

Abstract

Methods, apparatus, and systems for distributing and balancing traffic loads, especially machine learning workloads, in communication networks are provided. In embodiments, probe packets are sent by a network transmitter prior to sending a data transmission. The probe packets are sent through different communication paths to the network receiver. Each probe packet records the maximum traffic load expected for the network switches along the respective communication path. The information from the probe packets is aggregated and a target communication path that corresponds to the communication path with the lowest maximum traffic load. The network transmitter then sends its data transmission to the network receiver through the target communication path. In some embodiments, the network transmitter can update network switches along the target communication path on the forthcoming data transmission. Embodiments can facilitate more efficient distribution of traffic loads, especially machine learning workloads.
Need to check novelty before this filing date? Find Prior Art

Description

TRAFFIC DISTRIBUTION IN SPACE AND TIME USING FUTURISTIC SIGNAL FOR DISTRIBUTED MACHINE LEARNINGTECHNICAL FIELD

[0001] The present disclosure generally relates to communication networks, and more particularly methods, apparatus, and systems for load balancing in communication networks for distributed machine learning.BACKGROUND

[0002] Efficient load balancing in distributed machine learning (DML) is needed for fully utilizing redundant paths in modern data center networks (DCNs) . Whereas traditional traffic patterns of DCNs mostly involve short-lived data transfers and are highly entropic, DML workloads typically involve extensive, long-lived data transfers between the server racks of a DCN and are characterized by low entropy. Conventional load balancing techniques struggle to optimally distribute loads when presented with the traffic patterns of DML workloads. Notably, conventional techniques often rely on simplistic operating principles, such as to evenly distribute traffic or to react in real time to congestion signals. These principles are inadequate for handling the high-throughput, continuous flow characteristics of DML and result in inefficient use of network resources.

[0003] Among conventional techniques is the equal-cost multi-path approach, wherein paths for flows are randomly selected by hashing flow information. However, this approach often leads to hash collisions that force multiple flows to the same path, causing congestion. The low entropy of DML traffic exacerbates this problem. Another approach is to split flows by detecting temporal gaps and distributing the flows among several paths within the gaps. DML traffic, however, is rate-based with uniform gaps, and so gaps of sufficient length typically cannot be found. Other approaches that employ adaptive routing to reroute traffic to less congested paths typically face congestion mismatch problems, wherein congestion on one path may be mistakenly used to adjust the rate on another path, causing a mismatch between the sending rate and the state of the new path. These approaches also similarly rely on finding gaps for implementing rerouting decisions. Yet another approach is packet spraying, wherein traffic is distributed among all possible data paths. However, this technique performs poorly when the network is asymmetric or when network failure occurs, and it requires complicated algorithms for managing out-of-order packets and for differentiating those packets from lost packets.

[0004] Therefore, there is a need for methods, apparatus, and systems for load balancing, especially in DML, that obviate or mitigate one or more limitations of the prior art.

[0005] This background information is provided to reveal information believed by the applicant to be of possible relevance to the present invention. No admission is necessarily intended, nor should be construed, that any of the preceding information constitutes prior art against the present invention.SUMMARY

[0006] An object of embodiments of the present disclosure is to provide methods, apparatus, and systems for load balancing.

[0007] A first aspect of the present disclosure is to provide a method to support transmission of a data load. The method may be performed at a transmitter device connected to a receiver device through a set of one or more communication paths each including at least one respective switch. The method may comprise sending, to the receiver device through each communication path of the set of the one or more communication paths, a respective probe packet including: a respective maximum load value initialized to zero, a same time point for transmission of the data load, and a probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same time point when the respective local load value of the respective switch for the same time point exceeds the respective maximum load value. The method may further comprise obtaining a target communication path among the set of one or more communication paths, with the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths. The method may still further comprise sending, to the receiver device through the target communication path, at least one portion of the data load.

[0008] In some embodiments of the first aspect, obtaining the target communication path among the set of one or more communication paths may include receiving, from the receiver device, a response packet indicating the target communication path among the set of one or more communication paths. In some other embodiments, obtaining the target communication path among the set of one or more communication paths may include: receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, with each response packet indicating the maximum load value respective to the corresponding communication path; determining, in accordance with each maximum load value, the lowest maximum load value; and identifying, in accordance with the lowest maximum load value, the target communication path among the set of one or more communication paths.

[0009] In some embodiments of the first aspect, the method may further comprise, at the transmitter device, sending, to each of the at least one switch of the target communication path, an update packet including: a data load indicator for the data load; and an update type indicator indicating to each of the at least one switch of the target communication path to update the respective local load value of the respective switch for the same time point in accordance with the data load indicator. In some of these embodiments, the data load indicator may define one of: a load size for the data load, and a flow addition for the data load. In some embodiments, the update packet may further include an updated same time point.

[0010] In some embodiments of the first aspect, each probe packet may further include a respective one or more further maximum load values each initialized to zero, with each further maximum load value corresponding to a respective further time point of a same set of further time points. In these embodiments, the probe type indicator may further indicate to each of the at least one switch of the respective communication path to update, for each of the respective one or more further maximum load values, the respective further maximum load value to a respective local load value of the respective switch for the respective further time point when the respective local load value of the respective switch for the respective further time point exceeds the respective further maximum load value. In some of these embodiments, the method may further comprise, at the transmitter device, obtaining, for the same set of further time points, a corresponding set of further target communication paths among the set of one or more communication paths, each further target communication path corresponding to a respective lowest further maximum load value for the corresponding further time point among all further maximum load values respective to the set of one or more communication paths for the corresponding further time point.

[0011] In some embodiments with further time points, obtaining the target communication path among the set of one or more communication paths may include receiving, from the receiver device, a response packet indicating, for the same set of further time points, the corresponding set of further target communication paths among the set of one or more communication paths. In some other embodiments, obtaining the target communication path among the set of one or more communication paths may include: receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, with each response packet indicating, for each of the further time points of the same set of further time points, the corresponding further maximum load value respective to the communication path corresponding to the respective response packet; determining, for each further time point of the same set of further time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point; and identifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value.

[0012] In some embodiments with further time points, the same time point may be a time estimate for transmission of the data load, and the same set of further time points may depend from the time estimate and a same time interval of a respective cyclical register of each switch of the at least one respective switch of each of the one or more communication paths.

[0013] In some embodiments with further time points, sending, to the receiver device through the target communication path, the at least one portion of the data load may include sending, to the receiver device through the target communication path, the at least one portion of the data load at the same time point. In these embodiments, the method may further comprise, at the transmitter device, sending, to the receiver device through each of at least one further target communication paths of the set of further target communication paths, a respective further portion of the data load at the corresponding further time point. In some of these embodiments, the target communication path and each of the at least one further target communication paths may be a same target communication path, and the same time point and further time points corresponding to each of the at least one further target communication paths may be different.

[0014] In some embodiments with further time points, the target communication path may correspond to the lowest maximum load value among all maximum load values and all further maximum load values respective to the set of one or more communication paths. In some of these embodiments obtaining the target communication path among the set of one or more communication paths may include receiving, from the receiver device, a response packet indicating the target communication path among the set of one or more communication paths and the time point or further time point corresponding to the lowest maximum load value. In some other embodiments, obtaining the target communication path among the set of one or more communication paths may include: receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, with each response packet indicating, for each of the further time points of the same set of further time points, the corresponding further maximum load value respective to the communication path corresponding to the respective response packet; determining the lowest maximum load value in accordance with the maximum load value and each further maximum load value; and identifying, in accordance with the lowest maximum load value, the target communication path and the time point or further time point corresponding to the lowest maximum load value.

[0015] In some embodiments of the first aspect, the method may further comprise, at the transmitter device, identifying the set of one or more communication paths. In some embodiments, the method may further comprise, at the transmitter device, determining the same time point for transmission of the data load. In some of these embodiments, determining the same time point for transmission of the data load may include determining a same time estimate for transmission of the data load in accordance with a respective time estimate for at least one of data preparation, header addition, and checksum calculation. In some embodiments, the method may further comprise, at the transmitter device, generating the probe packet in accordance with the data load.

[0016] In some embodiments of the first aspect, the method may further comprise, at the transmitter device, receiving, from one switch respective to the target communication path, a re-probe packet including a surge time point and a re-probe type indicator indicating an expected traffic surge for the one switch at the surge time point. In some of these embodiments, the method may further comprise, at the transmitter device, sending, to the receiver device through each communication path of a further set of one or more communication paths, a respective probe packet including: a respective maximum load value initialized to zero, a same further time point for transmission of the data load determined in accordance with the surge time point, and the probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same further time point when the respective local load value of the respective switch for the same further time point exceeds the respective maximum load value. In these embodiments, the method may further comprise: obtaining a further target communication path among the further set of one or more communication paths, with the further target communication path corresponding to a further lowest maximum load value among all maximum load values respective to the further set of one or more communication paths; and sending, to the receiver device through the further target communication path, a further at least one portion of the data load.

[0017] A second aspect of the present disclosure is to provide a method to support transmission of a data load. The method may be performed at a switch device connecting a transmitter device to a receiver device along a communication path and may comprise: receiving, from the transmitter device through the communication path, a probe packet including a maximum load value for the communication path and a time point for transmission of the data load from the transmitter device to the receiver device; updating the maximum load value of the probe packet to a local load value of the switch device for the time point when the local load value of the switch device for the time point exceeds the maximum load value of the probe packet; and sending, to the receiver device through the communication path, the updated probe packet.

[0018] In some embodiments of the second aspect, the method may further comprise, at the switch device, obtaining the local load value of the switch device for the time point from a cyclical register of the switch device having recorded therein a respective local load indicator for each of one or more time intervals. In some of these embodiments, each local load indicator may represent a respective total number of data flows at the switch device for the respective time interval, and the local load value of the switch device for the time point may be the respective local load indicator for one time interval of the one or more time intervals corresponding to the time point. In some other embodiments, each local load indicator may represent a respective change in a total number of data flows at the switch device for the respective time interval, and the local load value of the switch device for the time point may depend from a sum of a set of local load indicators respective to a set of time intervals of the one or more time intervals, each time interval of the set of time intervals preceding the time point. In some embodiments, the set of local load indicators may include a respective local load indicator for each of a present time interval and one or more elapsed time intervals, or the set of local load indicators may include the respective local load indicator for the present time interval and the cyclical register includes a history register.

[0019] In some embodiments of the second aspect, the method may further comprise, at the switch device, identifying the probe packet by a probe type indicator thereof. In some embodiments, the method may further comprise, at the switch device: receiving, from the transmitter device through the communication path, an update packet including a data load indicator for the data load; and updating the local load value of the switch device for the time point in accordance with the data load indicator. In some of these embodiments, the method may further comprise, at the switch device, identifying the update packet by an update type indicator thereof. In some embodiments, the update packet may further include an updated time point; and updating the local load value of the switch device for the time point in accordance with the load indicator may include updating the local load value of the switch device for the time point in accordance with the load indicator and the updated time point. In some embodiments, the load indicator may be a flow addition. In these embodiments, the switch device may have a cyclical register having recorded therein a respective local load indicator for each of one or more time intervals, with each local load indicator representing a respective change in a total number of data flows at the switch device for the respective time interval; and updating the local load value of the switch device for the time point in accordance with the data load indicator may include incrementing the local load indicator respective to one time interval of the one or more time intervals in accordance with the flow addition, the one time interval corresponding to the time point.

[0020] In some embodiments of the second aspect, the probe packet may further include one or more further maximum load values each corresponding to a respective further time point of a set of further time points; and the method may further comprise, at the switch device, updating, for each further maximum load value of the probe packet, the respective further maximum load value to a respective local load value of the switch device for the respective further time point when the respective local load value of the switch device for the respective further time point exceeds the respective further maximum load value.

[0021] In some embodiments of the second aspect, the method may further comprise, at the switch device: receiving, from the transmitter device through the communication path, at least one portion of the data load; and sending, to the receiver device through the communication path, the at least one portion of the data load.

[0022] In some embodiments of the second aspect, sending, to the receiver device through the communication path, the updated probe packet may include sending, to a further switch device connecting the switch device to the receiver device along the communication path, the updated probe packet.

[0023] In some embodiments of the second aspect, receiving, from the transmitter device through the communication path, the probe packet may include receiving, from a further switch device connecting the transmitter device to the switch device along the communication path, the probe packet.

[0024] In some embodiments of the second aspect, the method may further comprise, at the switch device, sending, to the transmitter device through the communication path, a re-probe packet including a surge time point and a re-probe type indicator indicating an expected traffic surge for the switch device at the surge time point. In some of these embodiments, the switch device may have a cyclical register having recorded therein a respective local load indicator for each of one or more time intervals, and sending, to the receiver device through the communication path, the re-probe packet may include: sending, to the receiver device through the communication path, the re-probe packet when a difference in local load between the respective local load indicators of a consecutive pair of time intervals of the one or more time intervals exceeds a pre-determined load threshold and a difference in time between at least one time interval of the consecutive pair of time intervals and a present time exceeds a pre-determined look-ahead time threshold.

[0025] In some embodiments of the second aspect, the switch device may connect a further transmitter device to a further receiver device along a further communication path; and the method may further comprise: receiving, from the further transmitter device through the further communication path, a further probe packet including a further maximum load value for the further communication path and a further time point for transmission of a further data load from the further transmitter device to the further receiver device; updating the further maximum load value of the further probe packet to infinity when a difference in time of the further probe packet being received and the probe packet being received is less than a pre-determined arrival time threshold; and sending, to the further receiver device through the further communication path, the updated further probe packet. In some of these embodiments, the further transmitter device and the transmitter device may be a same transmitter device. In some other embodiments, the further receiver device and the receiver device may be a same receiver device.

[0026] A third aspect of the present disclosure is to provide a method to support transmission of a data load. The method may be performed at a receiver device connected to a transmitter device through a set of one or more communication paths each including at least one respective switch and may comprise: receiving, from the transmitter device through each communication path of the set of one or more communication paths, a respective probe packet including a respective maximum load value corresponding to a same time point for transmission of the data load from the receiver device; and sending, to the transmitter device through one communication path of the set of one or more communication paths, a response packet indicating a target communication path among the set of one or more communication paths, with the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths.

[0027] In some embodiments of the third aspect, the method may further comprise, at the receiver device, determining, in accordance with the maximum load value respective to each communication path of the set of one or more communication paths, the lowest maximum load value. In some of these embodiments, determining, in accordance with the maximum load value respective to each communication path of the set of one or more communication paths, the lowest maximum load value may include: setting the lowest maximum load value to the maximum load value respective to one communication path of the set of one or more communication paths, with the respective probe packet of the one communication path being received at the receiver device before the respective probe packet of a group of subsequent communication paths including each other communication path of the set of one or more communication paths; and updating, for each subsequent communication path, the lowest maximum load value to the respective maximum load value when the respective probe packet is received and when the respective maximum load value is less than the lowest maximum load value.

[0028] In some embodiments of the third aspect, the set of one or more communication paths may include a pre-determined number of communication paths.

[0029] In some embodiments of the third aspect, the respective probe packet of one communication path of the set of one or more communication paths is received at a first time, the respective probe packet of the one communication path being received at the receiver device before the respective probe packet of a group of subsequent communication paths including each other communication path of the set of one or more communication paths; and the respective probe packet of each subsequent communication path is received at a respective time being within a pre-determined duration from the first time.

[0030] In some embodiments of the third aspect, the method may further comprise, at the receiver device, identifying each probe packet by a respective probe type indicator thereof.

[0031] In some embodiments of the third aspect, each probe packet may further include a respective one or more further maximum load values each corresponding to a respective further time point of a same set of further time points, and sending, to the transmitter device through the one communication path of the set of one or more communication paths, the response packet indicating the target communication path among the set of one or more communication paths may include sending, to the transmitter device through the one communication path of the set of one or more communication paths, the response packet indicating the target communication path among the set of one or more communication paths and further indicating, for the same set of further time points, a corresponding set of further target communication paths among the set of one or more communication paths, with each further target communication path corresponding to a lowest further maximum load value respective to the corresponding further time point among all further maximum load values respective to the set of one or more communication paths for the corresponding further time point. In some of these embodiments, the method may further comprise, at the receiver device: determining, for each further time point of the same set of time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point, and identifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value. In some embodiments, each probe packet may further include a respective one or more further maximum load values each corresponding to a respective further time point of a same set of further time points; and the target communication path may correspond to the lowest maximum load value among all maximum load values respective to the set of one or more communication paths and among all further maximum load values respective to the set of communication of communication paths. In some of these embodiments, the method may further comprise, at the receiver device: determining, for each further time point of the same set of time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point, and identifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value. In some embodiments, the method may further comprise, at the receiver device, receiving, from the transmitter device through the target communication path, at least one portion of the data load. In some embodiments the method may further comprise receiving, from the transmitter device through the target communication path, at least one portion of the data load at the time point, and receiving, from the transmitter device through each of at least one further target communication path, a respective further at least one portion of the data load at the corresponding further time point. In some of these embodiments, the target communication path and each of the at least one further target communication paths may be a same target communication path, and the same time point and the further time points corresponding to each of the at least one further target communication paths are different.

[0032] A fourth aspect of the present disclosure is to provide a network system comprising: a receiver device; one or more switch devices; and a transmitter device connected to the receiver device through a set of one or more communication paths each including at least one respective switch device of the one or more switch devices. The transmitter device may be configured to send, to the receiver device through each communication path of the set of one or more communication paths, a respective probe packet including: a respective maximum load value initialized to zero, a same time point for transmission of a data load, and a probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same time point when the respective local load value of the respective switch for the same time point exceeds the respective maximum load value. The transmitter device may be further configured to obtain a target communication path among the set of one or more communication paths, the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths; and send, to the receiver device through the target communication path, at least one portion of the data load.

[0033] In some embodiments of the fourth aspect, each switch device may be configured to: receive, from the transmitter device through the respective communication path, the respective probe packet; update the respective maximum load value of the respective probe packet to the respective local load value of the respective switch device for the same time point when the respective local load value of the respective switch device for the same time point exceeds the respective maximum load value of the respective probe packet; and send, to the receiver device through the respective communication path, the updated respective probe packet.

[0034] In some embodiments of the fourth aspect, the receiver device may be configured to: receive, from the transmitter device through each communication path of the set of one or more communication paths, the respective probe packet; and send, to the transmitter device through one communication path of the set of one or more communication paths, a response packet indicating the target communication path among the set of one or more communication paths.

[0035] A fifth aspect of the present disclosure is to provide a transmitter device comprising a processor coupled to tangible, non-transitory processor-readable memory, with the memory having recorded thereon instructions to be executed by the processor to implement the method of the first aspect or any embodied variations thereof.

[0036] A sixth aspect of the present disclosure is to provide a switch device comprising a processor coupled to tangible, non-transitory processor-readable memory, with the memory having recorded thereon instructions to be executed by the processor to implement the method of the second aspect or any embodied variations thereof.

[0037] A seventh aspect of the present disclosure is to provide a receiver device comprising a processor coupled to tangible, non-transitory processor-readable memory, the memory having recorded thereon instructions to be executed by the processor to implement the method of the third aspect or any embodied variations thereof.

[0038] Embodiments of the first aspect may facilitate efficient load distribution, particularly for DML workloads. By providing a look-ahead capability, embodiments may facilitate proactive load balancing for more efficient use of network resources and higher throughput between transmitting and receiving devices

[0039] Embodiments have been described above in conjunction with aspects of the present invention upon which they can be implemented. Those skilled in the art will appreciate that embodiments may be implemented in conjunction with the aspect with which they are described but may also be implemented with other embodiments of that aspect. When embodiments are mutually exclusive, or are incompatible with each other, it will be apparent to those skilled in the art. Some embodiments may be described in relation to one aspect, but may also be applicable to other aspects, as will be apparent to those of skill in the art.BRIEF DESCRIPTION OF THE DRAWINGS

[0040] FIG. 1A shows an example of plot of transmission rate versus time for a plurality of traditional DCN traffic flows.

[0041] FIG. 1B shows an example of a plot of transmission rate versus time for a plurality of DML workloads.

[0042] FIG. 2 shows a schematic of a format for a probe packet, in accordance with embodiments of the present disclosure.

[0043] FIG. 3 shows a schematic of an example for probing traffic loads, in accordance with embodiments of the present disclosure.

[0044] FIG. 4 shows a schematic of another example for probing traffic loads, in accordance with embodiments of the present disclosure.

[0045] FIG. 5 shows a flowchart for a method for probing traffic loads, in accordance with embodiments of the present disclosure.

[0046] FIG. 6 shows a schematic of another format for a probe packet, in accordance with embodiments of the present disclosure.

[0047] FIG. 7A shows a schematic of an example for updating traffic loads at a switch, in accordance with embodiments of the present disclosure.

[0048] FIG. 7B shows a schematic of an example for maintaining a cyclical register at a switch, in accordance with embodiments of the present disclosure.

[0049] FIG. 7C shows a schematic of an example for updating a probe packet at a switch, in accordance with embodiments of the present disclosure.

[0050] FIG. 8 shows a schematic of an apparatus for distributing traffic loads according to embodiments of the present disclosure.

[0051] FIG. 9 shows a schematic of an embodiment of an electronic device that may implement at least part of the methods and features of the present disclosure.DETAILED DESCRIPTION

[0052] To enable efficient load balancing, particularly for DML workloads, embodiments of the present disclosure are generally directed towards providing methods, systems and apparatus for probing prospective traffic loads at network switches and directing transmissions accordingly. In embodiments, a transmitter device connected to a receiver device, to which the transmitter device intends to send a data load, may probe a plurality of communication paths connecting the transmitter device to the receiver device. To do this, the transmitter device may send, along each path, a probe packet that includes a data field to record the maximum load expected for a future time on the respective path. When a switch on a path receives a probe packet, the switch may update the maximum load field if its respective load expected for the future time exceeds the current value recorded in the field. The receiver device may then send the information on the expected loads of each path to the transmitter device. In some embodiments, the receiver device may aggregate the collected information and determine an optimal path for the transmission of the data load and communicate this to the transmitter device. In some other embodiments, the transmitter device may make this determination. In some embodiments, each probe may be used to record the expected loads for a plurality of future times, so that the transmitter device can send the data load along an optimal path and at an optimal time. In some embodiments, the transmitter device may divide the data load along multiple paths and / or by multiple transmission times. In some embodiments, each switch may have a cyclical register, known herein as a wheel-of-time register (WoT) , that may have recorded therein the expected traffic loads for future time slots. The WoT may be consulted when updating a received probe and may be updated according to intentions for data transmission. Embodiments of the present disclosure may provide a look-ahead capability that facilitates proactive load balancing for more efficient use of network resources and higher throughput between transmitting and receiving devices.

[0053] The present disclosure sets forth various embodiments via the use of block diagrams, flowcharts, and examples. Insofar as such block diagrams, flowcharts, and examples contain one or more functions and / or operations, it will be understood by a person skilled in the art that each function and / or operation within such block diagrams, flowcharts, and examples can be implemented, individually or collectively, by a wide range of hardware, software, firmware, or combination thereof. As used herein, the term “about” should be read as including variation from the nominal value, for example, a + / -10%variation from the nominal value. It is to be understood that such a variation is always included in a given value provided herein, whether or not it is specifically referred to. The terms in each of the following sets may be used interchangeably throughout the disclosure: WoT and cyclical register; response and reflected packet; tag and probe packet; and data flow and traffic flow.

[0054] FIG. 1A shows an example of a plot of transmission rate 101 versus time 102 for traffic flows 103 of a traditional DCN. Here, a large number of traffic flows 103 are present, most of which are short-lived. Thus, aggregate traffic 104 for the traditional DCN is highly entropic. FIG. 1B shows an example of a plot of transmission rate 101 versus time 102 for traffic flows 103 of typical DML workloads. In contrast with FIG. 1A, there are few traffic flows 103 for the DML workloads, which are also typically long-lived, and therefore aggregate traffic 104 is less entropic. Current techniques for balancing traffic loads under the low-entropy and continuous-flow conditions characteristic to DML workloads struggle to distribute flows, use network resources efficiently, and handle high-throughput.

[0055] Embodiments of the present disclosure provide a look-ahead mechanism to proactively anticipate traffic conditions and balance loads accordingly. Embodiments may enable applications to identify an optimal path for transmitting traffic through a network ahead of the transmission. In embodiments, the future state of a network may be determined by querying each switch along different paths of communication to collect data on expected congestion. This information may be aggregated at a data receiver or transmitter to select the path with the least predicted congestion. Each switch along the selected path may further be updated to ensure that each switch maintains accurate predictions of future traffic conditions. By considering future traffic demands and network conditions, embodiments may intelligently distribute traffic across multiple paths, minimizing congestion and improving overall network efficiency. This proactive capability may not only optimize path utilization but also enhance scalability and adaptability for dynamic, high-throughput workloads, such as those present in DML.

[0056] FIG. 2 shows a schematic of a format for a probe packet 200, in accordance with an embodiment of the present disclosure. The probe packet 200 may be used to query switches (or ‘switch devices’ ) along a communication path on their respective traffic loads and may alternatively be referred to as a tag. The probe packet 200 may comprise a type field 201, a time point field 202, a size field 203, and a load field 204. The type field may be set to provide an indication indicating that the packet is a probe packet 200 (i.e., a probe type indicator) . The time point field 202 may be used to provide an expected time estimate (i.e., a time point) for a transmission of a data load from a transmitter device. The time point field 202 may, for example, indicate a relative amount of time (ΔT) from the current time. The expected time estimate for transmission may be determined according to an intention from an application at the transmitter device to send the data load (e.g., ΔT may be the difference between the current time and the time expected for sending the data load) and may include respective time estimates for data preparation or serialization, header addition, checksum calculation, and other processing actions for data transmission. Propagation delay may not need to be included in the time estimate because the probe packets and the packets delivering the data load would experience the same propagation delays for a given communication path. In other words, the time point field may represent, to the transmitter device, the expected time for transmission of the data load and, to each switch and the receiver device, the expected time for receipt of the data load. The size field 203 may be optionally included in the probe packet 200 and may be used to indicate the size of the expected data transmission. A person of skill in the art will appreciate that the size would be available in typical application programming interfaces (APIs) for message-based communication, such as remote procedure call (RPC) APIs, the libverb library for remote direct memory access (RDMA) , and collective communication APIs for DML. The load field 204 may be used to record a maximum load value for the communication path being probed by the probe packet 200. It may be initialized to zero when sent from the transmitter device. Upon receipt of a probe packet 200, a switch may read the type field 201 and accordingly update the respective maximum load value to a respective local load value of the respective switch for the expected time of the time point field 202 when the respective local load value of the respective switch for the expected time exceeds the respective maximum load value. The probe packet 200 may be configured as a user datagram protocol (UDP) packet.

[0057] FIG. 3 shows a schematic for an example scenario of probing traffic conditions, in accordance with embodiments of the present disclosure. Here, a transmitter device 301 is connected to a receiver device 302 through a first communication path 303 and a second communication path 304. The first communication path 303 includes a first switch (SW) 305, and the second communication path 304 includes a second SW 306. The first communication path 303 and the second communication path 304 further include a same third SW 307. Each of the transmitter device 301 and the receiver device 302 may, for example, be a user equipment (UE) such as a mobile device or personal computer, or a server. The transmitter device 301, receiver device 302, first communication path 303, second communication path 304, first SW 305, second SW 306, and third SW 307 may belong to a communications network, such as a DML network, a cloud network, or an enterprise network. Each communication path may include one or more wireless and / or wired connections, such as optical, radio, WiFi, and electrical connections. The transmitter device 301 may host an application having an intention to send a data load to the receiver device 302, which may, for example, be a part of a DML workload.

[0058] Each of the first SW 305 and the second SW 306 may have a respective cyclical register, or more specifically a respective WoT. A first WoT 308 may belong to the first SW 305, and a second WoT 309 may belong to the second SW 306. Each WoT may have recorded therein, for each of a plurality of sequential time intervals, a respective expectation for the local traffic load (or more simply, ‘local load’ ) at the respective switch during the respective time interval. FIG. 3 shows each of the first WoT 308 and the second WoT 309 including eight time intervals (depicted as wedged sections) . In this example, the expected local loads are indicated by the numerical values in each time interval (i.e., by local load indicators) . Each local load indicator may represent, for example, a total number of data flows to the switch for the respective time interval (i.e., the local load value for the time interval) . Alternatively, each local load indicator may indicate a change in the number of data flows to the switch for the respective time interval, from which local load values may be determined. Each time interval in a WoT may, for example, span about one round-trip time for the propagation of a packet, which may, for example, be about 50 μs. Although each WoT is shown in FIG. 3 to have eight time intervals, the WoT may, in some embodiments, be implemented by a register array having a size large enough to record local load indicators for hundreds of intervals. The size of the WoT may, preferably, be large enough to account for the entire time used for flow communication and therefore may cover the communication size of the whole network system. For example, for a DML system having a flow size of 100 Mbytes and a 100 Gbps network, the WoT size may be set to cover about 1.05 ms or 21 timeslots spanning 50 μs. In FIG. 3, a first arrow 310 at the first WoT 308 and a second arrow 311 at the second WoT 309 each indicate the time interval of the respective WoT that corresponds to the present time. Because the third SW 307 is included in each of the first communication path 303 and the second communication path 304, it may not include a WoT and may not affect load balancing.

[0059] When the transmitter device 301 decides that it will need to send the data load to the receiver device 302, it may send a first probe packet 312 to the receiver device 302 through the first communication path 303 and a second probe packet 313 to the receiver device 302 through the second communication path 304. Path selection may be determined and indicated (e.g., as packet. pathID) according to a communications protocol, which may, for example, include using a source port for remote direct memory access over convergent ethernet (RoCE) protocols, a flow ID field for internet protocol version 6 (IPv6) protocols, or an entropy field for ultra ethernet transport (UET) protocols. Each of the first probe packet 312 and the second probe packet 313 may be configured as the probe packet 200 shown in FIG. 2 and may include a type field 201 identifying the probe packet, a time point field 202 providing a same time point (e.g., ΔT) that represents the expected time for transmission of the data load, a size field 203, and a load field 204 providing a respective maximum load value initialized to zero. The same time point may be determined at the transmitter device 301. The first probe packet 312 may be received by the first SW 305, and the second probe packet 313 may be received by the second SW 306. Each of the first SW 305 and the second SW 306 may identify the respective probe packet by the type field 201 and may read the time point field 202 and the load field 204. Each of the first SW 305 and the second SW 306 may then query its respective WoT to determine the local load respective to the time interval corresponding to the same time point provided in the time point field 202. In FIG. 3, a first arrow 314 indicates the local load value for the first SW 305 that corresponds to the same time point, and a second arrow 315 indicates the local load value for the second SW 306 that corresponds to the same time point. For the first SW 305, the local load value corresponding to the same time point is two, and for the second SW 306, the local load value corresponding to the same time point is three. Each of the first SW 305 and the second SW 306 may compare its respective local load value to the maximum load value read from the load field 204 of the respective probe packet. Each of the first SW 305 and the second SW 306 may update the maximum load value of the respective probe packet to the respective local load value for the same time point when the respective local load value for the same time point exceeds the maximum load value of the respective probe packet. In other words, the maximum load value for the jth communication path of n communication paths, Loadj, may be set at each SW according to: Loadj=max (Loadj, WoT [ΔT] )    (1) where WoT [ΔT] indicates the local load value for the time point (i.e., ΔT) at the respective SW. Because each of the first  SW 305 and the second SW 306 are directly connected to the transmitter device 301 in the example scenario of FIG. 3, and because the respective maximum load value of each probe packet sent from the transmitter device 301 is initialized to zero, each of the first SW 305 and the second SW 306 updates the maximum load value of the respective probe packet to the respective local load value for the same time point (i.e., two and three, respectively) . The first SW 305 may send, through the first communication path 303, its respective updated probe packet, as a first updated probe packet 316, to the third SW 307, which may subsequently send the first update probe packet 316 to the receiver device 302. The second SW 306 may send, through the second communication path 304, its respective updated probe packet, as a second updated probe packet 317, to the third SW 307, which may subsequently send the second updated probe packet 317 to the receiver device 302.

[0060] The receiver device 302, upon receiving the updated probe packets, may aggregate the information provided by the updated probe packets and determine a target communication path among the first communication path 303 and the second communication path 304 for the transmitter device 301 to send the data load. The receiver device 302 may identify each updated probe packet by the respective type field 201 and may read the respective load field 204. The receiver device 302 may determine, in accordance with the maximum load value read from each updated probe packet, a lowest maximum load value. It may then identify the target communication path as the communication path corresponding to the lowest maximum load value. In other words, the receiver device 302 may determine the target communication path, Target_Path, according to: Target_Path=argminj∈ {0, 1, …, n} (Loadj)     (2) . Alternatively, the receiver device 302 may determine the target communication path by comparing the maximum load  value read for each updated probe packet that is received to the lowest maximum load value as each updated probe packet is received. To do this, the receiver device 302 may maintain a record of the communication path corresponding to the current lowest maximum load value and may update this record, as well as the current lowest maximum load value, when a subsequent updated probe packet is received that has a respective maximum load value that is less than the current lowest maximum load value. The maximum load value of the updated probe packet that is received before each other update probe packet may initialize the lowest maximum load value. In the example of FIG. 3, the respective maximum load value of the first updated probe packet 316 is lower than that of the second updated probe packet 317, and so the receiver device 302 may determine the target communication path to be the first communication path 303.

[0061] The receiver device 302 may send, to the transmitter device 301, a packet (i.e., a ‘response packet’ ) that indicates the target communication path, such as according to the network protocol, as described previously. This may include sending (or reflecting) the updated probe packet that corresponds to the target communication path to the transmitter device 301. In this case, the respective type field 201 may be changed to identify the packet as being a response packet or ‘reflected’ . The load field 204 may provide the lowest maximum load value.

[0062] Upon receiving the response packet from the receiver device 302, the transmitter device 301 may obtain the indication of the target communication path. The transmitter device 301 may then send the data load (or at least one portion thereof) to the receiver device 302 through the target communication path. The transmitter device 301 may make the transmission according to the same time point (i.e., the ΔT) . In the example of FIG. 3, this may include the transmitter device 301 sending the data load to the first SW 305, which may then send the data load to the third SW 307 and subsequently the receiver device 302.

[0063] In some other embodiments, the transmitter device 301, rather than the receiver device 302, may aggregate the information provided by the updated probe packets and determine the target communication path. In these embodiments, the receiver device 302 may send to the transmitter device 301 one or more response packets corresponding to the communication paths between the transmitter device 301 and the receiver device 302. For example, in the context of the example shown in FIG. 3, the receiver device may send a first response packet for the first communication path 303 and a second response packet for the second communication path 304. Each response packet may be an updated probe packet having its type field 201 changed to identify it as being a response packet or ‘reflected’ .

[0064] In some other embodiments, the transmitter device 301 may update each SW along the target communication path of its intention to send the data load (or at least one portion thereof) to the receiver device 302 through the target communication path. In these embodiments, the transmitter device 301 may send an update packet to each SW along the target communication path. The update packet may be configured similarly to the probe packet 200 shown in FIG. 2. The update packet may include a type field 201 that may be set to indicate the packet as being an update packet. The update packet may further indicate the data load (or at least one portion thereof) by a size field 203. In other words, the update packet may include a data load indicator, which may provide the size for the data load or define a flow addition representing the data load. The update packet may further include a time point field 202 to provide the expected time for the transmission of the data load (or at least one portion thereof) , which may be updated from the time point provided in the probe packets. If the expected time for transmission provides a relative amount of time (ΔT) from the current time, the ΔT may be updated to indicate the time between the present time (Now) and when the transmission is expected (Appsnd) . In other words, ΔT may be set according to: ΔT= (Now-Appsnd)     (3) . Alternatively, ΔT may be updated by subtracting the time that has elapsed since the probe packets were sent from the  ΔTProbe provided in the probe packets. In other words, ΔT may be set according to: ΔT=ΔTprobe- (Now-TProbe)    (4) where TProbe is the time that the probe packets where sent from the transmitter device 301. The update packet may still  further include a load field 204 for consistency.

[0065] Upon receiving the update packet, each SW may update its respective local load value corresponding to the expected time for the transmission of the data load according to the size field 203 of the update packet.

[0066] In some other embodiments, one switch along the target communication path may send to the transmitter device 301 a re-probe packet. The re-probe packet may be configured similarly to the probe packet 200 shown in FIG. 2 and may include a type field 201 indicating that the re-probe packet is a re-probe type (i.e., a re-probe type indicator) and may further include a time point field 202 indicating a surge time point. The re-probe type indicator may indicate to the transmitter device 301 that a traffic surge is expected for the one switch at the surge time point. A traffic surge may be expected at the one SW when a difference in local load values of a consecutive pair of time intervals of the respective WoT exceeds a pre-determined threshold (i.e., ‘a pre-determined load threshold’ ) and when a difference in time between a present time and at least one time interval of the consecutive pair of time intervals exceeds a further pre-determined threshold (i.e., ‘a ‘pre-determined look-ahead time threshold’ ) . The pre-determined look-ahead time threshold may, for example, exceed the duration of three round-trip propagations of a packet (RTTs) , which may provide sufficient time for the one SW to notify the transmitter device 301 of the expected surge and for the transmitter device 301 to probe communication paths and identify a new target communication path. In response to receiving the re-probe packet, the transmitter device 301 may decide to probe the traffic loads of each communication path again. To do this, the transmitter device 301 may send, to the receiver device, through each communication path a respective probe packet. In this case, the selection of communication paths being probed may be the same as those initially probed or may be different. Probing of the communication paths may proceed as described previously and may result in a determination of a different target communication path.

[0067] In some other embodiments, each SW may query its respective WoT to determine the local load value respective to a time interval corresponding to a pre-determined duration from the present time (i.e., a ‘look-ahead time’ ) , rather than a same time point provided in a time point field 202 of a probe packet. In these embodiments, each probe packet may omit the time point field 202. The look-ahead time may be determined to be sufficiently long to ensure that each probe packet sent along its respective communication path can traverse the respective communication path and for a response packet to be sent to the transmitter device 301, while being sufficiently short to provide useful information on the traffic loads along the respective communication path.

[0068] In some embodiments, the transmitter device 301 may identify or select the set of communication paths to the receiver device 302 that are to be probed. For example, in the context of FIG. 3, the transmitter device 301 may have selected the first communication path 303 and the second communication path 304 from among three or more communication paths between the transmitter device 301 and the receiver device 302.

[0069] In some embodiments, if one SW were to receive a further probe packet within a pre-determined time (i.e., within a ‘pre-determined arrival time threshold’ ) of an initial probe packet, the one SW may update the maximum load value of the further probe packet to infinity (or other pre-determined value) . In other words, the one SW may reject a transmission from the transmitter device 301 to prevent multiple transmissions from being sent to the one SW coincidently. The pre-determined arrival time threshold may, for example, be set to correspond to two RTTs.

[0070] In some embodiments, the receiver device 302 may enforce a time limit for receiving updated probe packets. In these embodiments, the receiver device 302 may aggregate and analyze the information only from updated probe packets received within a pre-determined duration from when the earliest updated probe packet arrives (i.e., the update probe packet that arrives before all others) .

[0071] FIG. 4 shows a schematic for another example scenario of probing traffic conditions, in accordance with embodiments of the present disclosure. Here, like in FIG. 3, a transmitter device 301 is connected to a receiver device 302 through a first communication path 303 and a second communication path 304. However, unlike in FIG. 3, the first communication path 303 includes a first SW 401 and a second SW 402, and the second communication path 304 includes a third SW 403 and a fourth SW 404. In this example, the first SW 401 and the third SW 403 are each source top-of-rack (Src-Tor) SWs 405, and the second SW 402 and the fourth SW 404 are each spine SWs 406. Each of the first communication path 303 and the second communication path 304 include a respective destination top-of-rack (Dst-ToR) SW 407. Each Dst-ToR SW 407 serves only one respective connection to the receiver device 302. The transmitter device 301 may host an application having an intention to send a data load to the receiver device 302, which may, for example, be a part of a DML workload.

[0072] Each of the first SW 401, the second SW 402, the third SW 403, and the fourth SW 404 may have a respective cyclical register, or more specifically a respective WoT. A first WoT 411 may belong to the first SW 401, a second WoT 412 may belong to the second SW 402, a third WoT 413 may belong to the third SW 403, and a fourth WoT 414 may belong to the fourth SW 404. Each WoT may have recorded therein, for each of a plurality of sequential time intervals, a respective expectation for the local load at the respective SW during the respective time interval. FIG. 4 shows each WoT including eight time intervals (depicted as wedged sections) , with the expected local load values indicated by the numerical values in each time interval. In FIG. 4, a first arrow 421 at the first WoT 411, a second arrow 422 at the second WoT 412, a third arrow 423 at the third WoT 413, and a fourth arrow 424 at the fourth WoT 414 each indicate the time interval of the respective WoT that corresponds to the present time.

[0073] Similar to FIG. 3, when the transmitter device 301 decides that it will need to send the data load to the receiver device 302, it may first send a first probe packet 312 to the receiver device 302 through the first communication path 303 and a second probe packet 313 to the receiver device 302 through the second communication path 304. Each of the first probe packet 312 and the second probe packet 313 may be configured as the probe packet 200 shown in FIG. 2 and may include a type field 201 identifying the probe packet, a time point field 202 providing a same time point (e.g., ΔT) that represents the expected time for transmission of the data load, a size field 203, and a load field 204 providing a respective maximum load value initialized to zero. The first probe packet 312 may be received by the first SW 401, and the second probe packet 313 may be received by the third SW 403. Each of the first SW 401 and the third SW 403 may identify the respective probe packet by the type field 201 thereof and may read the time point field 202 and the load field 204 thereof. Each of the first SW 401 and the third SW 403 may then query its respective WoT to determine the local load value respective to the time interval corresponding to the same time point provided in the time point field 202 of the probe packet received. In FIG. 4, a first arrow 431 indicates the local load value for the first SW 401 that corresponds to the same time point, a second arrow 432 indicates the local load value for the second SW 402 that corresponds to the same time point, a third arrow 433 indicates the local load value for the third SW 403, and a fourth arrow 434 indicates the local load value for the fourth SW 404 that corresponds to the same time point. For the first SW 401, the local load value corresponding to the same time point is six, and for the third SW 403, the local load value corresponding to the same time point is seven. Each of the first SW 401 and the third SW 403 may compare its respective local load value to the maximum load value read from the load field 204 of the respective probe packet. Each of the first SW 401 and the third SW 403 may update the maximum load value of the respective probe packet to the respective local load value for the same time point when the respective local load value for the same time point exceeds the maximum load value of the respective probe packet, as described in relation to FIG. 3. Because each of the first SW 401 and the third SW 403 are directly connected to the transmitter device 301 in the example scenario of FIG. 4, and because the respective maximum load value of each probe packet sent from the transmitter device 301 is initialized to zero, each of the first SW 401 and the third SW 403 updates the maximum load value of the respective probe packet to the respective local load value for the same time point (i.e., six and seven, respectively) . The first SW 401 may send, through the first communication path 303, its respective updated probe packet, as a first updated probe packet 441, to the second SW 402. The third SW 403 may send, through the second communication path 304, its respective updated probe packet, as a second updated probe packet 442, to the fourth SW 404.

[0074] The first updated probe packet 441 may be received by the second SW 402, and the second updated probe packet 442 may be received by the fourth SW 404. Each of the second SW 402 and the fourth SW 404 may identify the respective updated probe packet by the type field 201 thereof and may read the time point field 202 and the load field 204 thereof. Each of the second SW 402 and the fourth SW 404 may then query its respective WoT to determine the local load value respective to the time interval corresponding to the same time point provided in the time point field 202 of the updated probe packet received. For the second SW 402, the local load value corresponding to the same time point is nine, and for the fourth SW 404, the local load value corresponding to the same time point is two. Each of the second SW 402 and the fourth SW 404 may compare its respective local load value to the maximum load value read from the load field 204 of the respective updated probe packet. Each of the second SW 402 and the fourth SW 404 may update the maximum load value of the respective updated probe packet to the respective local load value for the same time point when the respective local load value for the same time point exceeds the maximum load value of the respective updated probe packet, as described previously. Because the local load value of the second SW 402 for the same time point exceeds the maximum load value of the first updated probe packet 441, the second SW 402 updates the maximum load value of the first updated probe packet 441 to the local load value of the second SW 402 for the same time point (i.e., nine) . In contrast, because the local load value of the fourth SW 404 for the same time point is less than the maximum load value of the second updated probe packet 442, the fourth SW 404 does not update the maximum load value of the second updated probe packet 442. The second SW 402 may send, through the first communication path 303 and respective Dst-Tor 407, its respective updated probe packet, as a third updated probe packet 443, to the receiver device 302. In addition, the fourth SW 404 may send, through the second communication path 304 and respective Dst-Tor 407, the second updated probe packet 442 to the receiver device 302.

[0075] The receiver device 302, upon receiving the updated probe packets, may aggregate the information provided by the updated probe packets and determine a target communication path among the first communication path 303 and the second communication path 304 for the transmitter device 301 to send the data load, as described in relation to FIG. 3. The receiver device 302 may identify each updated probe packet by the respective type field 201 and may read the respective load field 204. The receiver device 302 may determine, in accordance with the maximum load value read from each updated probe packet, a lowest maximum load value. It may then identify the target communication path as the communication path corresponding to the lowest maximum load value. In the example of FIG. 4, the respective maximum load value of the third updated probe packet 443 is greater than that of the second updated probe packet 442, and so the receiver device 302 may determine the target communication path to be the second communication path 304.

[0076] The receiver device 302 may send, to the transmitter device 301, a packet (i.e., a ‘response packet’ ) that indicates the target communication path. Upon receiving the response packet from the receiver device 302, the transmitter device 301 may obtain the indication of the target communication path. The transmitter device 301 may then send the data load (or at least one portion thereof) to the receiver device 302 through the target communication path. The transmitter device 301 may make the transmission according to the same time point (i.e., the ΔT) . In the example of FIG. 4, this may include the transmitter device 301 sending the data load to the first SW 401 and in turn to the second SW 402.

[0077] FIG. 5 shows a flowchart of a method for probing communication paths and determining a target one, in accordance with embodiments of the present disclosure. The method may, for example, be implemented in the example scenarios shown in FIGS. 3 and 4. The method may be performed by a transmitter device 301, a receiver device 302 connected to the transmitter device 301 through one or more communication paths, and one or more SWs 500 located along the communication paths. At action 501, the transmitter device 301 may obtain an intention from an application (or more briefly, app) to transmit a data load, which may, for example, be a part of a DML workload, to the receiver device 302. At action 502, the transmitter device 301 may send a set of probe packets through a corresponding set of communication paths among the one or more communication paths. This may include, at action 503, generating the set of probe packets, which may in turn include: determining a same time point (e.g., a ΔT) for expected transmission of the data load, at action 504; selecting the set of communication paths, at action 505; and generating a respective probe packet for each communication path of the set of communication paths, at action 506. Each probe packet may be configured as the probe packet 200 shown in FIG. 2 and may include a type field 201 identifying the probe packet, a time point field 202 providing the same time point, a size field 203, and a load field 204 providing a respective maximum load value initialized to zero. The set of communication paths may include n communication paths among the one or more communication paths. The set of communication paths may, for example, be selected randomly from among the one or more communication paths or may be pre-determined. At action 507, the transmitter device 301 may send each probe packet to the receiver device 302 through the respective communication path. As each probe packet traverses the respective communication path, it may be processed by one or more SWs 500 located along the respective communication path.

[0078] Actions 508 to 513 may be performed by each SW 500 when one of the probe packets is received by the respective SW 500. When a SW 500 receives a packet, at action 508, the SW 500 may first read the type field 201 and accordingly determine, at action 509, whether the packet is a probe packet. If the packet is a probe packet, the SW 500 may read the time point field 202 to determine, at action 510, whether a same time point (e.g., ΔT) indicating a time for expected transmission of a data load is provided. If a same time point is provided, the SW 500 may update, at action 511, the maximum load value of the load field 204 to a local load value of the SW 500 that corresponds to the same time point when that local load value exceeds the maximum load value. The SW 500 may obtain its local load value by querying a cyclical register, such as a WoT, of the SW 500 that records therein, for a plurality of time intervals, respective local load values expected for the SW 500. The SW 500 may implement action 511 according to the following equation, like that presented in Equation 1 above: packet. load←max (packet. load, WoT [ΔT] )   (5) where packet. load is the maximum load value of the load field 204 of the probe packet and WoT [ΔT] is the local load  value of the SW 500 corresponding to the same time point. If a same time point is not provided by the probe packet, the SW 500 may instead update, at action 512, the probe packet according to a pre-determined look-ahead time (Lblkahd) . In this case, the SW 500 may update the maximum load value of the load field 204 to a local load value of the SW 500 that corresponds to the look-ahead time when that local load value exceeds the maximum load value. The SW 500 may implement action 512 according to the following: packet. load←max (packet. load, WoT [Lblkahd] )     (6) where WoT [Lblkahd] is the local load value of the SW 500 corresponding to the look-ahead time. At action 513, the SW  500 may process the probe packet or now updated probe packet, which may include sending it further along the respective communication path towards the receiver device 302.

[0079] The receiver device 302 may receive, at action 514, the probe packets that have been sent from the transmitter device 301 and updated by one or more SWs 500. The receiver device 302 may perform actions 515 to 519 for each probe packet received. At action 515, the receiver device 302 may read the maximum load value of the load field 204 from one probe packet (i.e., packet. load) . At action 516, the receiver device 302 may compare this maximum load value against a lowest maximum load value for all the probe packets (i.e., Target_Path. load) . If the maximum load value read from the one probe packet is less than the lowest maximum load value, then the receiver device 302 may update, at action 517, the lowest maximum load value to the maximum load value read from the one packet. In other words, the SW 500 may implement the following: Target_Path. load←min (Target_Path. load, packet. load)     (7) The receiver device 302 may maintain a record of the communication path that corresponds to the lowest maximum load  value (i.e., a target communication path or Target_Path) . When the receiver device 302 updates the lowest maximum load value, the receiver device 302 may further update this record to indicate an identifier for the communication path corresponding to the one probe packet (i.e., a packet. pathID) . The earliest probe packet to be received (i.e., the probe packet received before all others) may be used to initialize the Target_Path and Target_Path. load. If the maximum load value read from the one probe packet is not less than the lowest maximum load value, the receiver device 302 may, at action 518, perform no operation (NOP) but rather drop the packet. At action 519, the receiver device 302 may evaluate whether all the probe packets that had been sent from the transmitter device 301 have been received. If not all the probe packets have been received, the receiver device may continue performing actions 515 to 518 for further probe packets to be received. Action 519 may further include evaluating a time limit for receiving probe packets. In this case, a timer may be started when the earliest probe packet is received by the receiver device 302. Actions 515 to 518 may only continue from action 519 if the timer has not surpassed a pre-determined duration. In some alternative embodiments, the receiver device 302 may determine the target communication path according to Equation 2 and as further describe in relation to FIG. 3. At action 520, the receiver device 302 may send a response packet, or reflected probe packet, to the transmitter device 301. The response packet may indicate the target communication path according to a communications protocol; for example, by a source port for remote direct memory access over convergent ethernet (RoCE) protocols, a flow ID field for internet protocol version 6 (IPv6) protocols, or an entropy field for ultra ethernet transport (UET) protocols. Action 520 may include sending the updated probe packet that corresponds to the target communication path with its respective type field 201 changed to identify the packet as being a response packet or ‘reflected’ .

[0080] At action 521, the transmitter device 301 may receive the response packet from the receiver device 302. At action 522, the transmitter device 301 may identify the target communication path according to a communications protocol, as described previously. At action 523, the transmitter device may update its estimate for the expected time for transmission of the data load, such as in accordance with Equations 3 or 4, as described in relation to FIG. 3. At action 524, the transmitter device 301 may update each SW along the target communication path of its intention to send the data load (or at least one portion thereof) to the receiver device 302 through the target communication path by sending an update packet to each SW along the target communication path. The update packet may be configured similarly to the probe packet 200 shown in FIG. 2. The update packet may include a type field 201 set to indicate the packet as being an update packet. The update packet may further indicate the data load (or at least one portion thereof) by a size field 203. In other words, the update packet may include a data load indicator, which may provide the size for the data load or define a flow addition representing the data load. The update packet may further include a time point field 202 to provide the expected time for the transmission of the data load (or at least one portion thereof) , which may be updated from the time point provided in the probe packets.

[0081] Actions 508, 525, 526 and 513 may be performed by each SW 500 along the target communication path when the update packet is received by the respective SW 500. When a SW 500 receives a packet, at action 508, the SW 500 may first read the type field 201 and accordingly determine, at action 509, whether the packet is a probe packet. If the SW 500 determines that the packet is not a probe packet, the SW 500 may then determine, at action 525, whether the packet is an update packet according to the type field 201. If the packet is determined to be an update packet, the SW 500 may update its local load value for the expected time of transmission from the transmitter device 301, in accordance with the size field 203 and time point field 202 of the update packet. At action 513, the SW 500 may process the update packet, which may include sending the update packet further along the target communication path.

[0082] If a SW 500 determines that a received packet is neither a probe packet nor an update packet, the SW 500 may proceed to process the packet, at action 513, without updating its cyclical register or the packet.

[0083] FIG. 6 shows a schematic of another format for a probe packet 600, in accordance with an embodiment of the present disclosure. The probe packet 600 may be used to query switches along a communication path on their respective traffic loads over a plurality of time intervals. In other words, the probe packet 600 may enable a transmitter device 301 to probe both spatial and temporal dimensions prior to sending a data transmission. The probe packet 600 may comprise a type field 201, a time point field 202, a size field 203, a load field 204, and one or more further load fields 601. The load field 204 and one or more further load fields 601 may amount to k load fields, where k is a natural number and may be a pre-determined, fixed value or may be dynamically set. As shown in FIG. 6, each further load field 601 may be used to record a respective further maximum local load value that corresponds to a respective further time point of a same set of further time points. The same set of further time points may be a series of time points following the same time point of the time point field 202. The series of time points may increment according to a same time interval depending from the cyclical register of a SW 500. When the probe packet 600 is generated by a transmitter device 301, each further maximum load value may be initialized to zero, like the maximum load value. The probe packet 600 may be implemented in the example scenarios of FIGS. 3 and 4 and may be combined with the method described in relation to FIG. 5.

[0084] When a SW 500 receives a probe packet 600 from a receiver device 301, the SW 500 may read the type field 201 and accordingly identify the probe packet 600 as being a probe packet 600. The SW 500 may further read the time point field 202 to obtain the same time point (e.g., ΔT) indicating a time for expected transmission of a data load. The SW 500 may update, for each of the maximum load value and the one or more further maximum load values, the respective maximum load value or further maximum load value to a respective local load value of the SW 500 for the corresponding time point or further time point when that local load value exceeds the respective maximum load value or further maximum load value. In other words, the SW 500 may update each maximum load value and further maximum load value according to the local load values for the time intervals corresponding to the same time point and same set of further time points. The SW 500 may obtain each local load value by querying a cyclical register, such as a WoT, of the SW 500. In some embodiments, the SW 500 may implement the following equation for i ∈ {0, 1, …, k} to update the probe packet 600: Loadj [i] =max (Loadj [i] , WoT [ΔT+i] )   (8) where Loadj [i] is the maximum load value of the load field 204 (i = 0) or further maximum load value of a further load  field 601 (i > 0) of the probe packet and WoT [ΔT+i] is the corresponding local load value of the SW 500.

[0085] When a receiver device 302 receives probe packets 600 from a transmitter device 301, the receiver device 302 may aggregate the information provided by the probe packets 600 and determine a target communication path and one or more further target communication paths. In other words, the receiver device 302 may determine a respective target communication path for each time interval being probed. The receiver device 302 may identify each updated probe packet by the respective type field 201 and may read each respective load field 204 and further load field 601. The receiver device 302 may determine, for the same time point, a lowest maximum load value among the maximum load values and, for each further time point of the set of further time points, a respective lowest further maximum load value among the lowest further maximum load values corresponding to the respective further time point. The SW 500 may then identify the target communication path and one or more further target communication paths as those communication path corresponding to the lowest maximum load value and lowest further maximum load values. In some embodiments, the SW 500 may implement the following equation for i ∈ {0, 1, …, k} to determine the target communication path (Target_Path [0] ) and further target communication paths (Target_Path [i>0] ) : Target_Path [i] =argminj∈ {0, 1, …, n} (Loadj [i] )     (9) . Alternatively, the receiver device 302 may determine the target communication path and each further target communication  path by comparing the maximum load value and further maximum load values read for each probe packet 600 that is received to a record of current lowest maximum load value and one or more current lowest further maximum load values as each probe packet is received 600.

[0086] Table 1 provided below shows an example of respective target communication paths selected for each of a plurality of time points (ΔT) , and from among a set of three communication paths (path 1, path 2, and path 3) . Each target communication path corresponds to a respective lowest maximum load value for the respective time point (indicated by the values with asterisks in Table 1) . For example, at time point ΔT+3 (i.e., i = 3) , the lowest maximum load value is 1, so the target communication path may be determined to be path 2. In some embodiments, when a tie occurs among two or more communication paths at a given time point (e.g., ΔT+4 in Table 1) , the target communication path for the preceding time point (i.e., path 2) may be selected for continuity. If this is not possible or does not resolve the tie, the target communication path for the succeeding time point (i.e., path 3) may be selected for continuity. If this is also not possible or still does not resolve the tie, a target communication path for the given time point may be selected randomly. Table 1. Example of maximum load values for three paths at different time points.

[0087] The receiver device 302 may send, to the transmitter device 301, a packet (i.e., a ‘response packet’ ) that indicates the target communication path for the same time point and the one or more further target communication paths for the same set of further time points. In some embodiments, the receiver device 302 may send one or more response packets that each indicate, for a respective time point, the corresponding target communication path. In some other embodiments, the receiver device 302 may send each probe packet 600 to the transmitter device 301, so that the transmitter device 301 may aggregate the information from the probe packets 600 and determine the target communication path and the one or more further target communication paths.

[0088] In some embodiments using probe packets 600, one target communication path may be selected for all the time points. In these embodiments, the target communication path may correspond to the communication path having a lowest maximum load value among all the maximum load values and all the further maximum load values. In these embodiments, the transmitter device 301 may send the data load (or at least portion thereof) through the target communication path at the time point corresponding to the lowest maximum load value.

[0089] In some embodiments using probe packets 600, the transmitter device 301 may divide the data load and send portions of the data load to the receiver device 302 through a plurality of communication paths. In these embodiments, the transmitter device 301 may send, for each of one or more time points of the same time point and same set of time points, a respective portion of the data load through the target communication path or further target communication path corresponding to the respective time point. This may include sending at least one portion of the data load through the target communication path at the same time point and at least one further portion of the data load through a further target communication point at the corresponding further time point. In some of these embodiments, the target communication path and the further target communication path may be a same target communication path and the same time point and further time point may be different, such that the transmitter device 301 may only temporally divide the transmission of the data load.

[0090] In some other embodiments, a transmitter device 301 may probe different time points using different sets of probe packets. In these embodiments, a respective set of probe packets may be generated for each time point, and the same time point of the respective set of probe packets may be set to the respective time point.

[0091] In some embodiments of the present disclosure, the cyclical register at a SW 500 may be configured to indicate, for each time interval, a respective total of data flows being added or withdrawn. In other words, the cyclical register may indicate a respective change in the total number of data flows at the SW 500 for each time interval (i.e., a respective local load indicator) . The local load value for each time interval may then be determined by summing the respective total of data flows for the respective time interval and each preceding time interval. In these embodiments, to update a SW 500 of an intention to send a data load thereby, a transmitter device 301 may set the size field 203 of an update packet to the SW 500 to indicate a flow addition (e.g., +1) or arrival of a data flow at the time point of the update packet. In other words, the transmitter device 301 may set a data load indicator of the update packet to indicate the flow addition. Upon receiving the update probe, the SW 500 may increment the data load indicator for the time interval corresponding to the time point of the update packet in accordance with the flow addition. A transmitter device 301 may similarly update a SW 500 to a flow withdrawal or to an intention to end a data transmission by sending an update packet. In this case, the size field 203 of the update packet may, for example, be set to -1. In these embodiments, the cyclical register of a SW 500 (e.g., the WoT) may include a present time interval. It may further include one or more elapsed time intervals or a history register. The one or more elapsed time intervals may be used to track flows that have been added in time intervals that have passed but that have not yet been withdrawn (i.e., to track active data flows) . Alternatively, the history register may be used to aggregate active flow additions from elapsed time intervals.

[0092] FIGS. 7A, 7B, and 7C show schematics for an example scenario of updating and probing a WoT that records changes in data flows for each time interval, in accordance with an embodiment of the present disclosure. In FIG. 7A, a SW 500 is connected to a plurality of transmitter devices 301 through a corresponding plurality of communication paths 701. The SW 500 has a WoT 702 that has recorded therein, for each of a plurality of sequential time intervals, a respective expectation for changes in local load at the SW 500 during the respective time interval. FIG. 7A shows the WoT 702 including eight time intervals (depicted as wedged sections) , with the expected local load changes indicated by the numerical values in each time interval (i.e., local load indicators) . A first arrow 703 at the WoT 702 indicates the time interval that corresponds to the present time. The SW 500 further has a history register (WoTHistory) 704 that indicates an aggregate value of active flow additions from elapsed time intervals.

[0093] In the schematic of FIG. 7A, one transmitter device 301 of the plurality of transmitter devices 301 sends an update packet 705 to the SW 500 through the corresponding communication path 701 to update the SW 500 of an intention to send thereby a data load to a receiver device 302 (not depicted) . The update packet 705 may be configured similar to the probe packet 200 shown in FIG. 2 and may include a type field 201 set to indicate the packet as being an update packet, a size field 203 to indicate the data load, and a time point field 202 to provide the expected time point for the transmission of the data load. The size field 203 may be set to indicate a flow addition (i.e., +1) . When the SW 500 receives the update packet 705, the SW 500 may identify the update packet 705 as an update packet by the type field 201 and may further read the time point of the time point field 202 and the flow addition of the size field 203. In FIG. 7A, the time interval of the WoT 702 that corresponds to the time point is indicated by a second arrow 706. The SW 500 may then increment the respective data load indicator of the time interval corresponding to the time point in accordance with the flow addition (i.e., from 1 to 2) .

[0094] The schematic shown in FIG. 7B follows the example described in relation to FIG. 7A. In FIG. 7B, the WoT 702 has been updated according to the update packet 705 and time has progressed such that the next time interval of the WoT 702 has advanced to the present time (i.e., the WoT 702 has rotated counterclockwise by one time interval) . The history register 704 has further been updated to reflect the two flow additions that were previously indicated, in FIG. 7A, by the time interval corresponding to the then present time and that may still be active.

[0095] The schematic shown in FIG. 7C follows the example described in relation to FIGS. 7A and 7B. In FIG. 7C, one transmitter device 301 of the plurality of transmitter devices 301 sends a probe packet 707 to the receiver device 302 (not depicted) through the SW 500 and the corresponding communication path 701. The probe packet 312 may be configured as the probe packet 200 shown in FIG. 2 and may include a type field 201 identifying the probe packet, a time point field 202 providing a time point that represents the expected time for transmission of the data load, a size field 203, and a load field 204 providing a respective maximum load value initialized to zero. The SW 500 may identify the probe packet 707 by the type field 201 thereof and may read the time point field 202 and the load field 204 thereof. The SW 500 may then query its WoT 702 to determine the local load value respective to the time interval corresponding to the time point provided in the time point field 202 of the probe packet 707. In FIG. 7C, the second arrow 706 indicates the local load indicator for the SW 500 that corresponds to the time point. To determine the local load value, the SW 500 may sum this local load indicator with each preceding it and the value of the history register. In FIG. 7C, the local load value may be determined to be six (i.e., 2+3+2-1) . The SW 500 may compare its local load value to the maximum load value read from the load field 204 of the probe packet 707. As described previously, the SW 500 may update the maximum load value of the probe packet 707 to the local load value for the time point when the local load value for the time point exceeds the maximum load value of the probe packet 707. Because the SW 500 is directly connected to the one transmitter device 301 in the example scenario of FIG. 7C, and because the maximum load value of the probe packet 707 is initialized to zero, the SW 500 updates the maximum load value (i.e., to six) . The SW 500 may send the probe packet 707, as an updated probe packet 706, further through the communication path toward the receiver device 302.

[0096] Embodiments of the present disclosure may be implemented using electronics hardware, software, or a combination thereof. Some embodiments may be implemented by one or multiple computer processors executing program instructions stored in memory. Some embodiments may be implemented partially or fully in hardware, for example, using one or more field programmable gate arrays (FPGAs) or application specific integrated circuits (ASICs) to rapidly perform processing operations.

[0097] FIG. 8 shows an apparatus 800 for implementing, at least partly, methods for probing traffic congestion and updating network switches according to embodiments of the present disclosure. The apparatus 800 may be located at a network element 810 of a communication network. The apparatus 800 may include a network interface 820 and processing electronics 830. The processing electronics 830 may include a computer processer executing program instructions stored in memory, or other electronics components such as digital circuitry, including, for example, FPGAs and ASICs. The network interface 820 may include an optical communication interface or radio communication interface, such as a transmitter and receiver. The apparatus 800 may include several functional components, each of which may be partially or fully implemented using the underlying network interface 820 and processing electronics 830. Examples of functional components may include modules for sending 840 probe packets, updating 841 probe packets, aggregating 842 probe information, determining 843 target communication paths, and updating 844 network switches.

[0098] FIG. 9 is a schematic diagram of an electronic device 900 that may perform any or all of the operations of the above methods and features explicitly or implicitly described herein, according to different embodiments of the present disclosure. For example, a computer equipped with network functions may be configured as electronic device 900. The electronic device 900 may be used as part of one or more of: a transmitter device 301, a receiver device 302, and / or a SW 500.

[0099] As shown, the electronic device 900 includes a processor 910, such as a Central Processing Unit (CPU) or specialized processors such as a Graphics Processing Unit (GPU) or other such processor unit, memory 920, a network interface 930, and a bi-directional bus 940 to communicatively couple the components of electronic device 900. Electronic device 900 may also optionally include non-transitory mass storage 950, an I / O interface 960, and a transceiver 970. According to certain embodiments, any or all of the depicted elements may be utilized, or only a subset of the elements. Furthermore, the device 900 may contain multiple instances of certain elements, such as multiple processors, memories, or transceivers. In addition, elements of the hardware device may be directly coupled to other elements without the bi-directional bus. Additionally or alternatively to a processor 910 and memory 920, other electronics, such as integrated circuits, may be employed for performing the required logical operations.

[0100] The memory 920 may include any type of tangible, non-transitory memory such as static random access memory (SRAM) , dynamic random access memory (DRAM) , synchronous DRAM (SDRAM) , read-only memory (ROM) , any combination of such, or the like. Memory 920 may include more than one type of memory, such as ROM for use at boot-up, and DRAM for program and data storage for use while executing programs. The mass storage element 950 may include any type of tangible, non-transitory storage device, such as a solid state drive, hard disk drive, a magnetic disk drive, an optical disk drive, USB drive, or any computer program product configured to store data and machine executable program code. According to certain embodiments, the memory 920 or mass storage 950 may have recorded thereon statements and instructions executable by the processor 910 for performing any of the aforementioned method operations described above. In some embodiments, mass storage 950 may be remote to the electronic device 900 and accessible through use of a network interface such as interface 930. In the embodiment of FIG. 9, mass storage 950 is distinct from memory 920 and may generally perform storage tasks compatible with higher latency but may generally provide lesser or no volatility. In some embodiments, mass storage 950 may be integrated with the memory 920. The memory 920 may, for example, be configured to store a cyclical register such as a WoT.

[0101] Network interface 930 may include at least one of a wired network interface and a wireless network interface. The network interface 930 may include a wired network interface to connect to a communication network 980 and may also include a radio access network interface 990 for connecting to the communication network 980 or to other network elements over a radio link. The network interface 930 enables the electronic device 900 to communicate with remote entities such as those connected to the communication network 980.

[0102] The bi-directional bus 940 may be one or more of any type of several bus architectures, including a memory bus or memory controller, a peripheral bus, or a video bus.

[0103] It will be appreciated that, although specific embodiments of the technology have been described herein for purposes of illustration, various modifications may be made without departing from the scope of the technology. The specification and drawings are, accordingly, to be regarded simply as an illustration of the invention as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present invention. In particular, it is within the scope of the technology to provide a computer program product or program element, or a program storage or memory device such as a magnetic or optical wire, tape or disc, or the like, for storing signals readable by a machine, for controlling the operation of a computer according to the method of the technology and / or to structure some or all of its components in accordance with the system of the technology.

[0104] Acts associated with the method described herein may be implemented as coded instructions in a computer program product. In other words, the computer program product may be a computer-readable medium upon which software code may be recorded to execute the method when the computer program product is loaded into memory and executed on the microprocessor of the wireless communication device.

[0105] Further, each operation of the method may be executed on any computing device, such as a personal computer, server, PDA, or the like and pursuant to one or more, or a part of one or more, program elements, modules or objects generated from any programming language, such as C++, Java, or the like. In addition, each operation, or a file or object or the like implementing each said operation, may be executed by special purpose hardware or a circuit module designed for that purpose.

[0106] Embodiments of the present disclosure may be implemented by using hardware only or by using software and a necessary universal hardware platform. Based on such understandings, the technical solution of the present disclosure may be embodied in the form of a software product. The software product may be stored in a non-volatile or non-transitory storage medium, which may be a compact disk read-only memory (CD-ROM) , USB flash disk, or a removable hard disk. The software product includes a number of instructions that enable a computer device (personal computer, server, or network device) to execute the methods provided in the embodiments of the present disclosure. For example, such an execution may correspond to a simulation of the logical operations as described herein. The software product may additionally or alternatively include a number of instructions that enable a computer device to execute operations for configuring or programming a digital logic apparatus in accordance with embodiments of the present disclosure.

[0107] The word “a” or “an” when used in conjunction with the term “comprising” or “including” in the claims and / or the specification may mean “one” , but it is also consistent with the meaning of “one or more” , “at least one” , and “one or more than one” unless the content clearly dictates otherwise. Similarly, the word “another” may mean at least a second or more unless the content clearly dictates otherwise. The phrase "at least one" means one or more, and "a plurality of" means two or more. In addition, "and / or" describes an association relationship of associated objects, and indicates that there may be three relationships. For example, A and / or B may indicate cases including “only A” , “both A and B” , and “only B” , where A and B may be singular or plural. The character " / " generally indicates that the associated objects are in an OR relationship. "At least one of the following items" or a similar expression thereof refers to any combination of these items, including any combination of a single item or a plurality of items. For example, “at least one of a, b, or c” may represent “a” , “b” , “c” , “a and b” , “a and c” , “b and c” , or “a, b and c” , where a, b, and c may be a single or multiple form.

[0108] The terms “coupled” , “coupling” or “connected” as used herein can have several different meanings depending on the context in which these terms are used. For example, as used herein, the terms coupled, coupling, or connected can indicate that two elements or devices are directly connected to one another or connected to one another through one or more intermediate elements or devices via a mechanical element depending on the particular context. The term “and / or” herein when used in association with a list of items means any one or more of the items comprising that list.

[0109] Although a combination of features is shown in the illustrated embodiments, not all of them need to be combined to realize the benefits of various embodiments of this disclosure. In other words, a system or method designed according to an embodiment of this disclosure will not necessarily include all features shown in any one of the Figures or all portions schematically shown in the Figures. Moreover, selected features of one example embodiment may be combined with selected features of other example embodiments.

[0110] Although the present invention has been described with reference to specific features and embodiments thereof, it is evident that various modifications and combinations can be made thereto without departing from the invention. The specification and drawings are, accordingly, to be regarded simply as an illustration of the invention as defined by the appended claims, and are contemplated to cover any and all modifications, variations, combinations or equivalents that fall within the scope of the present invention.

Claims

1.A method to support transmission of a data load, the method comprising, at a transmitter device connected to a receiver device through a set of one or more communication paths each including at least one respective switch:sending, to the receiver device through each communication path of the set of the one or more communication paths, a respective probe packet including:a respective maximum load value initialized to zero,a same time point for transmission of the data load,anda probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same time point when the respective local load value of the respective switch for the same time point exceeds the respective maximum load value;obtaining a target communication path among the set of one or more communication paths, the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths;andsending, to the receiver device through the target communication path, at least one portion of the data load.2.The method of claim 1 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, a response packet indicating the target communication path among the set of one or more communication paths.3.The method of claim 1 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, each response packet indicating the maximum load value respective to the corresponding communication path;determining, in accordance with each maximum load value, the lowest maximum load value;andidentifying, in accordance with the lowest maximum load value, the target communication path among the set of one or more communication paths.4.The method of any one of claims 1 to 3 further comprising, at the transmitter device:sending, to each of the at least one switch of the target communication path, an update packet including:a data load indicator for the data load;andan update type indicator indicating to each of the at least one switch of the target communication path to update the respective local load value of the respective switch for the same time point in accordance with the data load indicator.5.The method of claim 4 wherein the data load indicator defines one of:a load size for the data load,anda flow addition for the data load.6.The method of any one of claims 4 and 5 wherein the update packet further includes an updated same time point.7.The method of any one of claims 1 and 4 to 6 wherein:each probe packet further includes a respective one or more further maximum load values each initialized to zero, each further maximum load value corresponding to a respective further time point of a same set of further time points;andthe probe type indicator further indicates to each of the at least one switch of the respective communication path to update, for each of the respective one or more further maximum load values, the respective further maximum load value to a respective local load value of the respective switch for the respective further time point when the respective local load value of the respective switch for the respective further time point exceeds the respective further maximum load value.8.The method of claim 7 further comprising, at the transmitter device:obtaining, for the same set of further time points, a corresponding set of further target communication paths among the set of one or more communication paths, each further target communication path corresponding to a respective lowest further maximum load value for the corresponding further time point among all further maximum load values respective to the set of one or more communication paths for the corresponding further time point.9.The method of claim 8 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, a response packet indicating, for the same set of further time points, the corresponding set of further target communication paths among the set of one or more communication paths.10.The method of claim 8 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, each response packet indicating, for each of the further time points of the same set of further time points, the corresponding further maximum load value respective to the communication path corresponding to the respective response packet;determining, for each further time point of the same set of further time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point;andidentifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value.11.The method of any one of claims 7 to 10 wherein the same time point is a time estimate for transmission of the data load, and the same set of further time points depend from the time estimate and a same time interval of a respective cyclical register of each switch of the at least one respective switch of each of the one or more communication paths.12.The method of claim 8 wherein:sending, to the receiver device through the target communication path, the at least one portion of the data load includes:sending, to the receiver device through the target communication path, the at least one portion of the data load at the same time point;andthe method further comprises, at the transmitter device:sending, to the receiver device through each of at least one further target communication paths of the set of further target communication paths, a respective further portion of the data load at the corresponding further time point.13.The method of claim 12 wherein:the target communication path and each of the at least one further target communication paths are a same target communication path;andthe same time point and further time points corresponding to each of the at least one further target communication paths are different.14.The method of claim 7 wherein the target communication path corresponds to the lowest maximum load value among all maximum load values and all further maximum load values respective to the set of one or more communication paths.15.The method of claim 14 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, a response packet indicating the target communication path among the set of one or more communication paths and the time point or further time point corresponding to the lowest maximum load value.16.The method of claim 14 wherein obtaining the target communication path among the set of one or more communication paths includes:receiving, from the receiver device, one or more response packets corresponding to the one or more communication paths, each response packet indicating, for each of the further time points of the same set of further time points, the corresponding further maximum load value respective to the communication path corresponding to the respective response packet;determining the lowest maximum load value in accordance with the maximum load value and each further maximum load value;andidentifying, in accordance with the lowest maximum load value, the target communication path and the time point or further time point corresponding to the lowest maximum load value.17.The method of any one of claims 1 to 16 further comprising, at the transmitter device:identifying the set of one or more communication paths.18.The method of any one of claims 1 to 17 further comprising, at the transmitter device:determining the same time point for transmission of the data load.19.The method of claim 18 wherein determining the same time point for transmission of the data load includes:determining a same time estimate for transmission of the data load in accordance with a respective time estimate for at least one of data preparation, header addition, and checksum calculation.20.The method of any one of claims 1 to 19 further comprising, at the transmitter device:generating the probe packet in accordance with the data load.21.The method of claim 1 further comprising, at the transmitter device:receiving, from one switch respective to the target communication path, a re-probe packet including a surge time point and a re-probe type indicator indicating an expected traffic surge for the one switch at the surge time point.22.The method of claim 21 further comprising, at the transmitter device:sending, to the receiver device through each communication path of a further set of one or more communication paths, a respective probe packet including:a respective maximum load value initialized to zero,a same further time point for transmission of the data load determined in accordance with the surge time point,andthe probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same further time point when the respective local load value of the respective switch for the same further time point exceeds the respective maximum load value;obtaining a further target communication path among the further set of one or more communication paths, the further target communication path corresponding to a further lowest maximum load value among all maximum load values respective to the further set of one or more communication paths;andsending, to the receiver device through the further target communication path, a further at least one portion of the data load.23.A method to support transmission of a data load, the method comprising, at a switch device connecting a transmitter device to a receiver device along a communication path:receiving, from the transmitter device through the communication path, a probe packet including a maximum load value for the communication path and a time point for transmission of the data load from the transmitter device to the receiver device;updating the maximum load value of the probe packet to a local load value of the switch device for the time point when the local load value of the switch device for the time point exceeds the maximum load value of the probe packet;andsending, to the receiver device through the communication path, the updated probe packet.24.The method of claim 23 further comprising, at the switch device:obtaining the local load value of the switch device for the time point from a cyclical register of the switch device having recorded therein a respective local load indicator for each of one or more time intervals.25.The method of claim 24 wherein:each local load indicator represents a respective total number of data flows at the switch device for the respective time interval;andthe local load value of the switch device for the time point is the respective local load indicator for one time interval of the one or more time intervals corresponding to the time point.26.The method of claim 24 wherein:each local load indicator represents a respective change in a total number of data flows at the switch device for the respective time interval;andthe local load value of the switch device for the time point depends from a sum of a set of local load indicators respective to a set of time intervals of the one or more time intervals, each time interval of the set of time intervals preceding the time point.27.The method of claim 26 wherein:the set of local load indicators includes a respective local load indicator for each of a present time interval and one or more elapsed time intervals;orthe set of local load indicators includes the respective local load indicator for the present time interval and the cyclical register includes a history register.28.The method of any one of claims 23 to 27 further comprising, at the switch device:identifying the probe packet by a probe type indicator thereof.29.The method of claim 23 further comprising, at the switch device:receiving, from the transmitter device through the communication path, an update packet including a data load indicator for the data load;andupdating the local load value of the switch device for the time point in accordance with the data load indicator.30.The method of claim 29 further comprising, at the switch device:identifying the update packet by an update type indicator thereof.31.The method of any one of claims 29 and 30 wherein:the update packet further includes an updated time point;andupdating the local load value of the switch device for the time point in accordance with the load indicator includes:updating the local load value of the switch device for the time point in accordance with the load indicator and the updated time point.32.The method of any one of claims 29 to 31 wherein:the load indicator is a flow addition;the switch device has a cyclical register having recorded therein a respective local load indicator for each of one or more time intervals, each local load indicator representing a respective change in a total number of data flows at the switch device for the respective time interval;andupdating the local load value of the switch device for the time point in accordance with the data load indicator includes:incrementing the local load indicator respective to one time interval of the one or more time intervals in accordance with the flow addition, the one time interval corresponding to the time point.33.The method of any one of claims 23 to 32 wherein:the probe packet further includes one or more further maximum load values each corresponding to a respective further time point of a set of further time points;andthe method further comprises, at the switch device:updating, for each further maximum load value of the probe packet, the respective further maximum load value to a respective local load value of the switch device for the respective further time point when the respective local load value of the switch device for the respective further time point exceeds the respective further maximum load value.34.The method of any one of claims 23 to 33 further comprising, at the switch device:receiving, from the transmitter device through the communication path, at least one portion of the data load;andsending, to the receiver device through the communication path, the at least one portion of the data load.35.The method of any one of claims 23 to 34 wherein sending, to the receiver device through the communication path, the updated probe packet includes:sending, to a further switch device connecting the switch device to the receiver device along the communication path, the updated probe packet.36.The method of any one of claims 23 to 34 wherein receiving, from the transmitter device through the communication path, the probe packet includes:receiving, from a further switch device connecting the transmitter device to the switch device along the communication path, the probe packet.37.The method of claim 23 further comprising, at the switch device:sending, to the transmitter device through the communication path, a re-probe packet including a surge time point and a re-probe type indicator indicating an expected traffic surge for the switch device at the surge time point.38.The method of claim 37 wherein:the switch device has a cyclical register having recorded therein a respective local load indicator for each of one or more time intervals;andsending, to the receiver device through the communication path, the re-probe packet includes:sending, to the receiver device through the communication path, the re-probe packet when:a difference in local load between the respective local load indicators of a consecutive pair of time intervals of the one or more time intervals exceeds a pre-determined load threshold,anda difference in time between at least one time interval of the consecutive pair of time intervals and a present time exceeds a pre-determined look-ahead time threshold.39.The method of any one of claims 23 to 31 wherein:the switch device connects a further transmitter device to a further receiver device along a further communication path;andthe method further comprises:receiving, from the further transmitter device through the further communication path, a further probe packet including a further maximum load value for the further communication path and a further time point for transmission of a further data load from the further transmitter device to the further receiver device;updating the further maximum load value of the further probe packet to infinity when a difference in time of the further probe packet being received and the probe packet being received is less than a pre-determined arrival time threshold;andsending, to the further receiver device through the further communication path, the updated further probe packet.40.The method of claim 39 wherein the further transmitter device and the transmitter device are a same transmitter device.41.The method of any one of claims 39 and 40 wherein the further receiver device and the receiver device are a same receiver device.42.A method to support transmission of a data load, the method comprising, at a receiver device connected to a transmitter device through a set of one or more communication paths each including at least one respective switch:receiving, from the transmitter device through each communication path of the set of one or more communication paths, a respective probe packet including a respective maximum load value corresponding to a same time point for transmission of the data load from the receiver device;andsending, to the transmitter device through one communication path of the set of one or more communication paths, a response packet indicating a target communication path among the set of one or more communication paths, the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths.43.The method of claim 42 further comprising, at the receiver device:determining, in accordance with the maximum load value respective to each communication path of the set of one or more communication paths, the lowest maximum load value.44.The method of claim 43 wherein determining, in accordance with the maximum load value respective to each communication path of the set of one or more communication paths, the lowest maximum load value includes:setting the lowest maximum load value to the maximum load value respective to one communication path of the set of one or more communication paths, the respective probe packet of the one communication path being received at the receiver device before the respective probe packet of a group of subsequent communication paths including each other communication path of the set of one or more communication paths;andupdating, for each subsequent communication path, the lowest maximum load value to the respective maximum load value when the respective probe packet is received and when the respective maximum load value is less than the lowest maximum load value.45.The method of claim 42 wherein the set of one or more communication paths includes a pre-determined number of communication paths.46.The method of claim 42 wherein:the respective probe packet of one communication path of the set of one or more communication paths is received at a first time, the respective probe packet of the one communication path being received at the receiver device before the respective probe packet of a group of subsequent communication paths including each other communication path of the set of one or more communication paths;andthe respective probe packet of each subsequent communication path is received at a respective time being within a pre-determined duration from the first time.47.The method of any one of claims 42 to 46 further comprising, at the receiver device:identifying each probe packet by a respective probe type indicator thereof.48.The method of claim 42 wherein:each probe packet further includes a respective one or more further maximum load values each corresponding to a respective further time point of a same set of further time points;andsending, to the transmitter device through the one communication path of the set of one or more communication paths, the response packet indicating the target communication path among the set of one or more communication paths includes:sending, to the transmitter device through the one communication path of the set of one or more communication paths, the response packet indicating the target communication path among the set of one or more communication paths and further indicating, for the same set of further time points, a corresponding set of further target communication paths among the set of one or more communication paths, each further target communication path corresponding to a lowest further maximum load value respective to the corresponding further time point among all further maximum load values respective to the set of one or more communication paths for the corresponding further time point.49.The method of claim 48 further comprising, at the receiver device:determining, for each further time point of the same set of time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point,andidentifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value.50.The method of claim 42 wherein:each probe packet further includes a respective one or more further maximum load values each corresponding to a respective further time point of a same set of further time points;andthe target communication path corresponds to the lowest maximum load value among all maximum load values respective to the set of one or more communication paths and among all further maximum load values respective to the set of communication of communication paths.51.The method of claim 50 further comprising, at the receiver device:determining, for each further time point of the same set of time points, the respective lowest further maximum load value in accordance with each further maximum load value corresponding to the respective further time point,andidentifying, for the same set of further time points, the corresponding set of further target communication paths in accordance with each lowest further maximum load value.52.The method of claim 42 further comprising, at the receiver device:receiving, from the transmitter device through the target communication path, at least one portion of the data load.53.The method of claim 48 further comprising, at the receiver device:receiving, from the transmitter device through the target communication path, at least one portion of the data load at the time point;andreceiving, from the transmitter device through each of at least one further target communication path, a respective further at least one portion of the data load at the corresponding further time point.54.The method of claim 53 wherein:the target communication path and each of the at least one further target communication paths are a same target communication path;andthe same time point and the further time points corresponding to each of the at least one further target communication paths are different.55.A network system comprising:a receiver device;one or more switch devices;anda transmitter device connected to the receiver device through a set of one or more communication paths each including at least one respective switch device of the one or more switch devices, the transmitter device configured to:send, to the receiver device through each communication path of the set of one or more communication paths, a respective probe packet including:a respective maximum load value initialized to zero,a same time point for transmission of a data load,anda probe type indicator indicating to each of the at least one switch of the respective communication path to update the respective maximum load value to a respective local load value of the respective switch for the same time point when the respective local load value of the respective switch for the same time point exceeds the respective maximum load value;obtain a target communication path among the set of one or more communication paths, the target communication path corresponding to a lowest maximum load value among all maximum load values respective to the set of one or more communication paths;andsend, to the receiver device through the target communication path, at least one portion of the data load.56.The network system of claim 55 wherein each switch device is configured to:receive, from the transmitter device through the respective communication path, the respective probe packet;update the respective maximum load value of the respective probe packet to the respective local load value of the respective switch device for the same time point when the respective local load value of the respective switch device for the same time point exceeds the respective maximum load value of the respective probe packet;andsend, to the receiver device through the respective communication path, the updated respective probe packet.57.The network system of any one of claims 55 and 56 wherein the receiver device is configured to:receive, from the transmitter device through each communication path of the set of one or more communication paths, the respective probe packet;andsend, to the transmitter device through one communication path of the set of one or more communication paths, a response packet indicating the target communication path among the set of one or more communication paths.58.A transmitter device comprising a processor coupled to tangible, non-transitory processor-readable memory, the memory having recorded thereon instructions to be executed by the processor to implement the method of any one of claims 1 to 22.59.A switch device comprising a processor coupled to tangible, non-transitory processor-readable memory, the memory having recorded thereon instructions to be executed by the processor to implement the method of any one of claims 23 to 41.60.A receiver device comprising a processor coupled to tangible, non-transitory processor-readable memory, the memory having recorded thereon instructions to be executed by the processor to implement the method of any one of claims 42 to 54.