Detection of Load Balancing Across Network Paths in a Communication Network

The present disclosure relates to methods, a system and an apparatus for detection of load balancing in a packet-switched communication network (10). According to an embodiment a plurality of test sessions(22, 23, 24, 25) are initiated, which differ with respect to at least one associated parameter value for a source address, a destination address, a source port, a destination port, or a protocol. Load detection in the packet-switched communication network (10) can be detected based on differences between measurement results (28) of different test sessions (22, 23, 24, 25) of the plurality of test sessions. Situations where one network path is measured, while application traffic (21) takes another unmeasured network path can be avoided by setting-up multiple simultaneous test sessions (22, 23, 24, 25) with differing parameter values such that the test sessions are routed differently by any hash algorithms(19a, 19b, 19c, 19d) used for load balancing across network paths.

DETAILED DESCRIPTION

The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which different exemplary embodiments are shown. These exemplary embodiments are provided so that this disclosure will be thorough and complete and not for purposes of limitation.

According to some of the embodiments to be described in further detail below multiple active performance monitoring test sessions are used in parallel to detect “hidden” load balancing in a packet-switched communication network such as illustrated inFIG. 1. The packet-switched communication network may be a switched or a routed network.

FIG. 1is a schematic block diagram of an exemplary packet-switched communication network10. Assume that it is of interest to measure network characteristics between a first node11and a second node12. It is apparent fromFIG. 1that traffic between the first node11and the second node12may take different network paths. Packets arriving in an intermediate node13from the first node11may be routed either to an intermediate node14or to an intermediate node17on the way towards the second node12. Correspondingly, packets arriving in an intermediate node16from the second node12may be routed either to an intermediate node15or to an intermediate node18on the way towards the first node11. Furthermore, as illustrated inFIG. 1there are three different links available between the intermediate node14and the intermediate node15, which further increases the number of possible network paths between the first node11and the second node12. The intermediate nodes13,14,15,16,17and18may e.g. be routers or switches. The first node11may e.g. be a radio base station (RBS) or evolved NodeB (eNB) and the second node12may e.g. be a radio network controller (RNC), Serving Gateway or public data network (PDN) gateway in a radio network scenario, or other types of nodes between which it is of interest to measure network characteristics in other types of scenarios, such as a host and a server, or Customer Located Equipment/Customer Premise Equipment (CLE/CPE) and a Broadband Network Gateway (BNG).

When several network paths between the same two nodes are known by the network10, load balancing may be used to share traffic among the network paths. According to load balancing techniques such as ECMP or LAG, the different network paths are considered as equally good and it is generally attempted to share traffic equally between the network paths using session hashing to avoid out-of-order packet delivery. LAG and ECMP is typically implemented such that, when there are several equally good network paths to choose from, a hash algorithm or function will check certain headers of the packets that have same values throughout a packet session flow and use a resulting output hash value to select a particular network path. If the hash function is chosen so that the output value has a uniform statistical distribution, it will generate a hash output value and share the traffic equally between the network paths provided that the number of different sessions is high. Many load balancing implementations use a 5-tuple consisting of destination address, source address, protocol, destination port and source port as input to the hash function to maximize the probability of evenly sharing the traffic over the network paths.

FIG. 1schematically illustrates that intermediate nodes13,14,15and16applies hash algorithms19a,19b,19cand19drespectively to implement load balancing in the network10.

As described above in the background section, when active performance monitoring using conventional tools is to be performed in a network with load balanced paths, there is a risk that no measurements are performed on the network path which carries the real data traffic. Such a scenario is illustrated inFIG. 1. Data packets of an application session21, i.e. real data traffic (illustrated as dotted lines) are routed between the first node11and the second node12via the intermediate nodes13,17,18and16. Test packets of a test session22(illustrated as dashed lines) are instead routed between the first node11and the second node12via the intermediate nodes13,14,15and16. Accordingly the test session22takes a different path than the application session21, which may lead to situations where the measurement results of the test session22e.g. indicates very good network characteristics while the application session in fact experiences very poor network characteristics or vice versa. Note that even if, the test session22and the application session21were routed via the same intermediate nodes it is not certain that the different sessions actually take the same network path. This is because there may be multiple alternative links between two adjacent nodes as illustrated inFIG. 1between the intermediate nodes14and15.

FIG. 2is a schematic block diagram of the network10with an embodiment for avoiding situations as the one illustrated inFIG. 1implemented. According to the illustrated embodiment, a plurality of test sessions22,23,24,25are generated in parallel with different characteristics to produce different hashing of the different test sessions22,23,24and25by the hash algorithms19a,19b,19cand19d.The different test sessions22,23,24and25will thus take different network paths between the first node11and the second node12. InFIG. 2it is illustrated that the test session25takes the same network path as the application session21. Accordingly measurement results are obtained for the network path which carries the application session21.

As mentioned above hash algorithms implementing load balancing generally operate based on parameters such as source and destination port, source and destination address and protocol. Thus by initiating many different test sessions with differing parameter values for one or several of the parameter types that the hash algorithms are expected to use for load balancing, it can be expected that at least some of the different sessions will take different network paths if load balancing is applied in the network. The plurality of test sessions22,23,24and25may thus be initiated with e.g. different source and/or destinations ports, or with different source and/or destination addresses, provided that the first node11and/or second node12can be associated with multiple addresses, typically Internet Protocol (IP) addresses. Since there are cases where packets according to different protocols are routed differently in the network10due to policy routing, the test sessions22,23,24and25may also be initiated with different protocol types. Some test sessions may e.g. use test packets according to User Datagram Protocol (UDP), while other test sessions are based on Transmission Control Protocol (TCP) packets or Stream Control Transmission Protocol (SCTP) packets. TWAMP and OWAMP are based on UDP packets. Accordingly if TWAMP and OWAMP were extended to support e.g. TCP measurements as well, this feature of differing protocol types between test sessions could be implemented using TWAMP or OWAMP sessions.

The likelihood of detecting and obtaining measurements for all of the available network paths between two nodes increases with the number of test sessions performed in parallel and with a higher variation in the values of the parameters upon which load balancing is expected to be based. Note that it is here assumed that it is not known whether load balancing is used in the network10and it is further assumed that it is not known how any load balancing, if present, would operate.

In the embodiment illustrated inFIG. 2, a control circuitry26comprised in the first network node11initiates the plurality of test sessions22,23,24and25in parallel to support automatic detection of load balancing and multiple network paths between the first node11and the second node12. It is in this example assumed that the first node11is the sending node.FIG. 2also illustrates that the first node11comprises processing circuitry27for processing measurement results28of the plurality of test sessions22,23,24,25. By analyzing the measurement results28, the processing circuitry27can detect load balancing in the network10. Based on differences between measurement results of different test sessions it can be detected if different test sessions have taken different network paths. Generally each test session comprises a plurality of test packets transmitted at intervals. By analyzing measurement results over time systematic differences in measurements results of different test sessions may be detected. These differences may then be interpreted as an indication that two different test sessions have taken different network paths or the same network path. Trains of test packets of different test sessions may e.g. be time-stamped to measure the delay between the first node11as sending node and the second node12as receiving node. The times associated with packets of the different test sessions are then compared to detect if the different test sessions have taken different paths. According to some exemplary embodiments, if the difference in measurements results of two test sessions is large, above a first threshold value, it is detected that the two sessions have traversed the network10over different network paths. Correspondingly, if the difference in measurement results of the two sessions is small, below a second threshold value, it is detected that the two test sessions have traversed the network10over the same network path. Suitable values of the first and second threshold value depends on several factors, such as type and size of the network and length of the network paths.

From the above example, it can be seen that the plurality of test sessions typically would lead to a learning process, where measurement results are grouped and conclusions regarding network characteristics, including load balancing, are drawn based on detected systematic differences between different test sessions. It should be noted that it is possible that each test session of the plurality of test sessions comprises a single test packet or merely a few test packets. However, a higher number of test packets per test session increases the reliability in the conclusions drawn from the measurements results of the test sessions.

FIG. 3is a schematic flow diagram illustrating a flow diagram of a method for detecting load balancing across network paths between two nodes in packet-switched network, such as between the first node11and the second node12of the network10illustrated inFIG. 2. The method comprises a step31of initiating a plurality of test sessions. Each test session of the plurality of test sessions comprises at least one test packet transmitted over the packet-switched communication network between the first node11and the second node12, and each test session of the plurality of test sessions is associated with a set of parameters. The set of parameters comprises at least one of a source address, a destination address, a source port, a destination port, and a protocol. The plurality of test sessions are initiated such that values of at least one parameter of the source address, the destination address, the source port, the destination port, and the protocol differ between each of the test sessions. The method further comprises a step32of detecting load balancing across network paths between the first node11and the second node12based on differences between measurement results of different test sessions of the plurality of test sessions.

When referring herein to a plurality of parallel or simultaneous test sessions this means that the test sessions are active at the same time. Typically at least one test packet from each of the plurality of test sessions is transmitted from the sending node substantially simultaneously. The sending node is typically not capable of transmitting packets of all the test sessions at exactly the same time, but the test packets could be transmitted adjacent to each other. The test packets are also time-stamped so a difference in actual transmission times of different test packets can be monitored.

According to some embodiments the test sessions comprises a plurality of test packets transmitted from the sending node at intervals, as mentioned above.FIG. 4illustrates a scenario with three test sessions41,42and43. The test sessions are associated with different source ports A, B and C respectively to produce different routing of the test sessions if load balancing is used in the network to be measured. The test sessions41,42and43comprises a plurality of test packets44transmitted at intervals in bursts. InFIG. 4, three consecutive bursts45,46and47are illustrated.FIG. 4schematically illustrates transmission times from the sending node of the test packets of the different test sessions41,42and43. The time between transmission times of packets within a burst is considerably smaller than the time between transmission times of packets of different bursts as illustrated inFIG. 4. In the exemplary embodiment illustrated inFIG. 4a packet of the test session41is transmitted first in each burst45,46,47, followed by a packet from the test session42and last a test packet from the test session43. To avoid that the measurement results of the different test sessions41,42,43depend on the order at which the test packets are transmitted in the bursts45,46,47the relative order between transmission times of the test packets of different test sessions may be varied between the different bursts e.g. as illustrated inFIG. 5.

FIG. 5illustrates a scenario similar to the one illustrated inFIG. 4, with three parallel test sessions51,52and53comprising test packets44transmitted in bursts55,56and57from the sending node. It can be seen fromFIG. 5that a relative order between transmission times of the test packets of different test sessions differs between the different bursts55,56and57. It can e.g. be seen that, in the burst55a test packet from the test session51is transmitted first, but in the burst56a test packet from the test session52is transmitted first. Thus the measurement results of the different test sessions, when seen over time, can be made independent on the relative order of transmission times within a burst.

According to the exemplary embodiment illustrated inFIG. 2, the processing circuitry27configured to detect load balancing across network paths is comprised in the first node11, which is the sending node. If round-trip measurements are of interest the test packets will be returned from the second node12, i.e. the receiving node, to the sending node11and the processing circuitry will thus be able to obtain the measurement results28of the plurality of test sessions22,23,24,25. If one-way measurements are of interest the receiving node12would need to transmit the measurement results28to the processing circuitry27in the sending node. The processing circuitry27may however be located in many different locations, such as in the receiving node, in a central operation and maintenance (O&M) node or at some other location. Similarly the control circuitry26which is configured to initiate the plurality of test sessions for load balance detection can be located at different locations. InFIG. 2it is illustrated that the control circuitry26and the processing circuitry27are co-located in a unit29.FIG. 6illustrates an exemplary embodiment according to which the control circuitry26and the processing circuitry27are comprised in different nodes. The control circuitry26is inFIG. 6still comprised in the sending node11, while the processing circuitry27is comprised in an apparatus60separate from the sending node11and the receiving node12. The measurement results28of the plurality of test sessions therefore need to be communicated from the sending and/or receiving nodes11,12to the apparatus60.

FIG. 7is a flow diagram illustrating an embodiment of a method in the apparatus60for detecting load balancing across network paths between the first node11and the second node12. The method comprises a step71of processing measurement results from a plurality of test sessions and a step72of detecting load balancing across network paths between the first node11and the second node12based on differences between the measurement results28of different test sessions of the plurality of test sessions.

The control circuitry26and the processing circuitry27mentioned above may be embodied in the form of one or more programmable processors programmed to perform the steps according to the methods described herein. However, any data processing circuitry or combination of different types of processing circuits that is capable of performing the mentioned steps could be used. Several of the embodiments described herein may thus be implemented by means providing appropriate network elements with new software, which may be comprised in one or several computer program products embodied in the form of a volatile or non-volatile memory, e.g. a RAM, an EEPROM, a flash memory or a disc drive.

From the above description it is apparent that an advantage of certain embodiments described herein is that load balancing in a packet-switched communication network may be detected.

Another advantage of some embodiments described herein is that the applicability of network measurements may be increased since it is possible to obtain measurements for the same network path that is used by application traffic. Situations where one network path is measured, while the application traffic takes another unmeasured network path can be avoided. By generating multiple parallel test sessions which uses different parameters, such as destination/source port, destination/source address and/or protocol type the different test sessions may be forced to take different network paths. Thus load balancing may be detected by comparing measurement results of the plurality of test sessions and measurement results may be obtained for different network paths.

A further advantage of some embodiments of this disclosure is that they can be easily combined with functions and features of different existing tools for active performance monitoring, such as e.g. OWAMP, TWAMP and BART. The plurality of test sessions that are initiated for detection of load balancing may thus be OWAMP sessions, TWAMP sessions BART sessions or some other type of test sessions.

For detection of load balancing based on the measurement results of the plurality of test sessions, different types of analysis methods may be used to analyze the measurement results. Kalman filtering, CUSUM (Cumulative sum) or a combination of both techniques may e.g. be used in a learning and detection process to detect systematic differences in measurement results between different test sessions.