Determining a turning point in the congestion of a network path

By filtering noise in one-way delay measurements using a slope filter and variable condition, the method accurately determines network path congestion inflection points, enhancing network efficiency and user satisfaction.

DE112018008106B4Active Publication Date: 2025-10-16HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
DE112018008106
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Filing Date
2018-10-26
Publication Date
2025-10-16
Estimated Expiration
2038-10-26

AI Technical Summary

Technical Problem

Existing methods for determining network path congestion inflection points are inaccurate due to noise in one-way delay measurements, leading to incorrect estimates of available bandwidth, which affects network efficiency and user satisfaction.

Method used

A method that filters out noise in one-way delay measurements by using a slope filter based on inter-packet time differences and a variable condition (α) to accurately identify inflection points, thereby improving bandwidth estimation.

Benefits of technology

This approach enhances network performance by reducing delays and improving user satisfaction through more accurate bandwidth estimation and congestion prediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method (100) comprising: Determining (102) a packet congestion on a network path (356; 356-1; 356-N) using an inflection point detection mechanism, IPDM, by a network controller (342; 442); detecting (104) a possible inflection point (580; 582) by the network controller (342; 442) in response to a one-way delay, OWD, of a first packet (P.1 214) being less than an OWD of the second packet (P.2 216) by a value that is greater than a function of a difference in the inter-start time, IDT, between the first packet (P.1 214) and a second packet (P.2 216); and Determining (106) a turning point (582) in the congestion of the network path (356; 356-1; 356-N) by the network controller (342; 442) based on the possible turning point (580; 582).
Need to check novelty before this filing date? Find Prior Art

Description

background

[0001] A network provides a communications system that directly or indirectly connects two or more computers and / or peripheral devices, allowing users to access resources on other computing devices and exchange messages with other users. A network can be, for example, a software-defined wide area network (SD-WAN), a local area network (LAN), a wireless LAN (WLAN), a virtual private network (VPN), the Internet, or similar, or a combination thereof.

[0002] Network bandwidth is a speed limit for network data transmission over a given path. In other words, network bandwidth is the capacity of a network communication link to send a limit amount of data from one point to another across the network or other link in a given time (e.g., one second).

[0003] US 2007 / 0217448 A1 relates to systems and methods for estimating available bandwidth in the case of multiple congested streams.

[0004] CN 108011771 A relates to methods, apparatus and devices for detecting the available bandwidth of a network connection.

[0005] US 9143454 B2 relates to systems and methods for a TCP mapper.

[0006] The present invention aims to at least partially overcome the disadvantages of the prior art and relates in particular to known methods and networks for determining a turning point of congestion of a network path.

[0007] This object is achieved by a method according to independent claim 1 and a network according to independent claim 6. Brief description of the drawings Fig. 1 shows an exemplary method for determining a turning point in the congestion of a network path according to the disclosure. Fig. 2 shows an example of a packet flow sequence of a particular packet structure for determining a turning point in the congestion of a network path according to the disclosure. Fig. 3 shows an example of a network including a network controller and network paths for determining a turning point in the congestion of a network path, according to the disclosure. Fig. 4 shows an example of a network controller including a memory and processing circuit for determining an inflection point in the congestion of a network path, according to the disclosure. Fig. 5 shows a diagram including exemplary inflection points according to the disclosure. Detailed description

[0008] Network bandwidth measurements are used to determine how much of the network path capacity is available on a network path before deciding where to place and / or route network traffic and how to balance the load. In a closed system, direct network bandwidth measurements on network devices on network paths are collected from network traffic in the closed system. However, in some cases, direct network bandwidth measurements cannot be used, for example, when network devices are located in different administrative domains or are hidden by tunneling or encapsulation. This occurs, for example, in an SD-WAN environment, where the SD-WAN gateway attempts to route traffic to a desired direct, encapsulated, or tunneled path over the internet.As used herein, a network device may include a computing device that is communicatively coupled to, or capable of being communicatively coupled to, a computing network. For example, a network device may include a network controller, an access point, a data transmission device, etc.

[0009] When direct measurements are not possible, some approaches to bandwidth measurement involve bandwidth estimation from endpoints that can be controlled for bandwidth measurement testing. This may involve testing a network path with test packets sent from one end of the network path (sender) to the other end (receiver). The receiving end measures the reception time of the packets and changes in packet delays and / or timing patterns to estimate network path properties, such as network path capacity, available bandwidth, and / or volume transfer capacity, which will be further described herein.

[0010] Some approaches include the use of excursion detection mechanisms (EDMs) to measure when a network path is congested. An EDM can be referred to as an inflection point detection mechanism (IPDM) because it can measure an inflection point where a network path changes from uncongested to congested during an estimation of network path properties (e.g., available bandwidth). As used herein, the terms EDM and IPDM are interchangeable. Test packets are sent at an increasing rate, and the inflection point is measured. In such an example, the IPDM may be sensitive to noise in the packet timing, which can prevent the IPDM from finding an accurate inflection point, leading to inaccurate estimates of network path properties (e.g., available bandwidth) (e.g., increasing errors in the estimation).

[0011] For example, with such approaches, an increase in a one-way delay (OWD) in a test suite (described further herein) during measurement may indicate increasing congestion, but OWD measurements are noisy, which affects the accuracy of the indication. This noise is due to errors and non-ideal behavior of various network elements and other constraints in the scheduling of packets (e.g., during batch processing of packets). Such noise in the OWD measurements directly affects the IPDM. For example, noisy OWD values ​​may cause the IPDM to identify deviations where no congestion exists. Noisy OWD values ​​may also cause the IPDM to misidentify an inflection point, resulting in inaccurate estimates of the available bandwidth.As used herein, an OWD, which will be further described herein, includes the time taken for a packet to travel from a sender device to a receiver device in a network path.

[0012] In contrast, examples of the present disclosure filter out noise in packet scheduling and increase the accuracy of inflection point determination and bandwidth estimates. For example, OWD noise is mitigated in an IPDM by only considering a test packet as a possible inflection point if the increase in OWD is higher than a slope filter based on the packet's inter-departure time (IDT). Furthermore, examples of the present disclosure can mitigate issues of batch processing packets, which can lead to OWD noise, increasing inaccuracies in inflection point determination and bandwidth estimates.

[0013] By reducing noise and improving the accuracies of inflection point determinations and bandwidth estimates, examples of the present disclosure improve the performance of a network and network paths. For example, because bandwidth estimates are more accurate than other approaches, better determinations are made about how many users and / or network devices can efficiently access the network. As a result, network efficiency / utilization improves. By better predicting network congestion (e.g., by accurately determining an inflection point), network delays are reduced (e.g., backlog queues are reduced), which can lead to improved user satisfaction, in addition to improving the performance of the network device and the network.

[0014] The figures illustrated herein follow a numbering convention in which the first digit corresponds to the number of the drawing figure, and the remaining digits identify an element or component in the drawing. For example, reference numeral 342 refers to element '42' in Fig. 3 and an analogous element can be identified by the reference number 442 in Fig. 4. Analogous elements within a figure may be designated with a hyphen and an additional number or letter. See, for example, elements 214-1 and 214-2 in Fig. 2. Such analogous elements may be generally referred to without the hyphen and the additional number or letter. For example, elements 214-1 and 214-2 may be collectively referred to as 214. Elements illustrated in the various figures herein may be added, interchanged, and / or omitted to provide a number of additional examples of the disclosure. Furthermore, the proportions and relative scale of the elements illustrated in the figures are intended to illustrate the examples of the disclosure and should not be construed as limiting.

[0015] Fig. 1 illustrates an example method 100 for determining an inflection point in the congestion of a network path according to the disclosure. As used herein, an inflection point is a point where a network path changes from uncongested to congested with network traffic. Stated another way, an inflection point is a point where the OWD of test packets changes from relatively constant to steadily increasing, thereby indicating congestion in the network path. In particular, for the test packet from the test sequence where the particular network path being tested changes from uncongested to congested. Determining the inflection point may enable an estimation of network bandwidth, as it may be determined how much network traffic the network can handle before congestion and / or delays begin.

[0016] At 102, the method 100 includes determining packet congestion on a network path by a network controller using an IPDM. Packet congestion, as used herein, includes a queue of packets within a network path. For example, if packets are being sent faster than a network path can handle, the packets are queued along the path until they can traverse the network path. Network control is described herein with respect to Fig. 3 and Fig. 4. The method 100 may be performed by a network controller such as the network controllers 342, 442.

[0017] An IPDM is a mechanism used to determine a packet that indicates the beginning of congestion on the network path. Bandwidth measurement techniques such as testing (e.g., active or passive) are based on IPDM. Active testing involves end-to-end network path estimation, in which a device at one end of a network path (sender) sends special test packets to a device at another end of the network path (receiver). These packets are used to estimate bandwidth and carry no additional data beyond payload data used for the network path estimation itself. Passive testing involves measuring delays experienced by existing data sent on the network path or modulating data to exhibit special characteristics.Another variation is a single-ended measurement, which involves reflecting test packets from the receiver back to the transmitter in some way.

[0018] Other bandwidth measurement techniques estimate other properties of the network path. For example, network bandwidth estimation is a subset of network path estimation. Path capacity is a bound on the network traffic bandwidth that can be sent when the network path is empty (e.g., with no competing network traffic). Available network bandwidth is the remaining / remaining path capacity (e.g., the capacity not currently being used by traffic). Volume transfer capacity is the network bandwidth that a send control protocol connection receives when placed on the network path. Latency is the overhead time from the sender to the receiver, and round-trip time is the two-way delay.

[0019] In active testing, the sender sends a series of custom-designed test packet structures. The packet structure is defined by the estimation technique and designed to trigger specific behaviors of the network elements along the network path. For example, in some cases, the packet structure is a test sequence, so that the packets and an interval between consecutive packets are used to test different bandwidths across the packet structure. The receiver measures the reception time of the packets, calculates the OWD and / or other properties of each packet, and examines the changes to the packets across the packet structure. The estimation technique uses a simplified network model to convert these measurements into estimates of various network path properties.

[0020] An IPDM analyzes the OWD of packets by comparing the OWD of one packet with the OWD of a previous packet. As stated above, OWD includes the time it takes for a packet to travel from the sender device to the receiver device in a network path. OWD can be absolute or relative. An absolute OWD is an actual measurement of the OWD of the packets. A relative OWD can be used instead of an absolute OWD because it can be more difficult to accurately measure an absolute OWD due to differences in the transmitter and receiver clocks. A relative OWD includes the measured OWD of a current packet minus the measured OWD of a previous packet sent through the network path. If there is no packet loss and no packet reordering, the packets are sent and received in the same order.In such an example, the inter-arrival time (IAT), IDT, and OWD of each packet are related. For example, if OWDp is the OWD of a previous packet and OWDc is the OWD of a current packet, the following holds: IAT=OWDc−OWDp+IDT, where the IAT is a time duration between the reception of a previous packet and a current packet at the receiver. In some examples, the OWD is measured for each packet, along with a time difference between the time the packet was sent ("transmission time") and the time the packet was received ("reception time"), such as with respect to Fig. 2, which is further described herein.

[0021] IPDM determines packet congestion in a network path when there is an increase in OWD in the test sequence. IPDM uses OWD increases to detect transient congestion and complete congestion. Transient congestion can be a queue that clears within a time threshold (e.g., 5 milliseconds), while complete congestion can be a queue that does not clear within the time threshold. Typically, complete congestion is detected by a network path property estimation mechanism.

[0022] In response to a determination of packet congestion, the method 100 includes, at 104, detecting, by the network controller, a possible inflection point in response to a one-way delay (OWD) of a first packet being less than an OWD of a second packet by a value that is higher than the value of a function of a difference in IDT between the first packet and the second packet. For example, in IPDM, a packet is considered a possible inflection point only if the increase in OWD is higher than a slope filter based on the IDT of the packet. As used herein, a slope filter includes a certain factor (e.g., an α-condition, described further herein) that is multiplied by a difference between an IDT of a current packet and an IDT of a previous packet.

[0023] As used herein, the IDT includes the time between the transmission of a previous packet (e.g., the immediately preceding packet) and the transmission of a current packet. The IDT can be calculated from a desired test speed: IDT=Packet size / tested speed

[0024] Test speed refers to how fast packets are sent (or intended to be sent) during active testing. A transmitter may not be completely accurate when sending packets, so an actual IDT of the packet may differ from a desired IDT. In examples of the present disclosure, the desired IDT or the actual IDT may be used. In some cases, measurements are taken from received packets.

[0025] As used herein, a possible inflection point is a point in a sequence of OWD measurements where the OWD trend has or shows the ability to become or develop into an inflection point. For example, an inflection point is a point of a threshold change in OWD between packets. It can, for example, be a point at which the OWD begins to increase or decrease between packets by a threshold value. For example, the threshold is a point at which the OWD of a first packet is less than an OWD of a second packet by a value that is greater than a function of a difference in IDT between the first packet and the second packet. For example, a possible inflection point occurs when: OWDc−OWDp>α(IDTp−IDTc), where IDTp is an IDT of a previous packet, IDTc is an IDT of a current packet, and α is a condition. α can be a variable or a function.

[0026] If α = 0, the result is the same as with an IPDM where the IDT is not considered, and α = 1 is strict, forcing a selection of packets into complete congestion. In some examples, α = 0.5 allows for a Bottleneck Minimum Inter Packet Time (BMIPT) to be midway between IDTc and IDTp. The BMIPT, which will be described further herein, is determined by dividing a packet size by a Bottleneck Available Bandwidth (BAB). A bottleneck is a phenomenon where the performance of a network is limited because there is not enough bandwidth available to ensure that data packets in the network reach their destination in a timely manner. The BAB sets an upper bound on how quickly the network can send the data from the sender to the receiver. The available network bandwidth cannot exceed the BAB.In some cases, detecting the possible inflection point involves the network controller filtering OWD measurement data before detecting the possible inflection point. For example, a packet with an unwanted IDT may be removed from a group of packets, the OWD may be smoothed (e.g., averaged), or if mitigation is applied when batch processing packets, a single packet is selected per test segment. However, even after such filtering, remaining OWD measurement noise may trigger detection of possible inflection points if an IDT slope filter as described herein is not used. Due to the noise, a delay experienced by a packet in a non-congested part of a network could increase and / or decrease instead of remaining constant. By introducing the α-condition, the OWD measurement data is filtered out of its noise, which introduces inaccuracies.

[0027] In some examples, detecting the potential inflection point comprises multiplying the function of the differences in IDT between the first packet and the second packet by multiple packets having the same desired IDT of the second packet, before the second packet and including the second packet. Multiplying the function of the differences comprises multiplying the difference by a predetermined factor (e.g., a factor between 0 and 1, such as α). Such an example may be applied when the network path is amenable to batch processing of packets.

[0028] Batch processing of packets occurs when packets in a queue are processed as a group instead of individually. This can affect the OWD of packets because earlier packets in the group must wait for the group to be processed, causing their OWD to artificially increase, while the last packet in the group waits the least and has a lower OWD.

[0029] To address this, in examples of the present disclosure, multiple packets are sent per test with the same IDT. A current packet Pc within the test has a packet probe index (ppi). Within the same test, there are (ppi - 1) packets before Pc. The ppi packets may be sent at an interval IDTc, and the packets of a previous test may be sent at the interval IDTp. Under congestion, each packet increases the latency by the difference between BMIPT and IDTc, resulting in: WAITc=backflow+ppi*(BMIPT−IDTc)>ppi*(IDTp−IDTc) where WAITc indicates a current wait and backpressure indicates a backpressure rate. For batch processing of packets, the following condition can be used to determine a possible turning point: OWDc−OWDp>α(ppi*(IDTp−IDTp)), where α is a variable condition or a function.

[0030] In some cases, the potential inflection point is detected in response to the OWD of the second packet being greater than the OWD of the first packet by a value that is greater than a function of the difference in IDT between the second packet and a third packet, if the IDT of the first packet is erroneous. For example, the third packet may be a packet sent through the network path after the second packet.

[0031] In such an example, an IDT from a previous packet cannot be used. For example, if the actual IDT is used, the IDT of the previous packet may be in error. If the IDT of the test sequence increases exponentially, an IDT from the next packet can be used. For example, Pn is the next packet received after Pc. If the IDT decreases exponentially, then: IDTp−IDTc>IDTc−IDTn and the following condition can be used: OWDc−OWDp>α(IDTc−IDTn), where α is a variable condition (e.g. a value from 0 to 1) or a function.

[0032] At 106, method 100 includes determining, by the network controller, an inflection point in the congestion of the network path based on the potential inflection point. For example, an inflection point may be determined based on the detected potential inflection point(s). In some examples, if only one potential inflection point is detected, that point is used as the inflection point. If multiple potential inflection points are detected, they may be filtered. For example, if a potential inflection point appears too small (e.g., below a threshold, smaller than other detected potential inflection points, etc.), it may be filtered out (e.g., ignored) from the other possible inflection points.

[0033] In some examples, the network controller determines an available network bandwidth associated with the network path based on the inflection point determination. The multiple possible inflection points can be used to identify a deviation, and the available network bandwidth associated with the network path can be determined based on the inflection point determination and the identified deviations. A deviation can start with a point showing increasing delay, continue until it returns to its starting point, and end before increasing delay is detected. As used herein, the available network bandwidth is the unused capacity of the network path. Knowing the inflection point enables a determination of when network traffic congestion will occur and at what point the congestion is triggered. Congestion may suggest that there is no available network bandwidth.By knowing at which point (the inflection point) the congestion occurs, a test speed corresponding to the inflection point can be used to estimate the available bandwidth.

[0034] Fig. Figure 2 illustrates an example of a network path for determining a turning point in the congestion of a network path according to the disclosure. The network path may, in some cases, be tested by a sequence of test packets. Fig. Figure 2 illustrates that the transmitter 208 sends packets P.1 214, P.2 216, P.3 224, and P.4 226 to the receiver 210. IDTs indicating a time between the transmission of a previous packet and the transmission of the current packet are shown as IDT.1 211, IDT.2 212, IDT.3 221, and IDT.4 222. OWDs for various packets are shown as OWD.1 220, OWD.2 218-2, and OWD.3 226.

[0035] In the example shown in Fig. As shown in Figure 2, packets P.1 214, P.2 216, P.3 224, and P.4 226 are sent at increasing speed and decreasing IDT. If the IDT of packets is greater than one BMIPT, there is a bottleneck in which there is time to completely send the previous packet before the current packet arrives, and therefore no queues are created and the OWD is almost constant. For example, OWD.1 220 and OWD.2 218-2 are equal, indicating that there are no packet queues. Furthermore, no queues are created because IDT.2 212-1 is longer than BMIPT 232.

[0036] However, if the IDT is less than the BMIPT, packets arrive faster than they can be sent, and they are queued. The packets wait for the bottleneck to finish sending the previous packet, and because of the queue, these packets have increasing OWDs. For example, IDT.3 221 and IDT.4 222 are less than IDT.2 212-1. Furthermore, a queue is created because both IDT.3 221 and IDT.4 222 are less than BMIPT 234, indicated by an increased OWD.3 226 compared to OWD.1 220 and OWD.2 218-2. The IDT.2 212-2 and OWD.2 218-1 show that without P.3 224-1, the IDTs and OWDs remained constant. However, as the speed at which packets are sent increases, IDTs decrease, queues form, and OWDs increase. Using these IDTs and OWDs, a congestion tipping point can be determined for the network path. For example, (OWD.3−OWD.2)>α(IDT.3−IDT.2), where α is a variable condition (e.g. 0.5) or a function, a possible inflection point can be indicated.

[0037] Fig. Figure 3 shows an example of a network 340 including a network controller 342 and network paths 356-1, 356-N for determining a turning point in the congestion of a network path according to the disclosure. The network 340 may, for example, include an SD-WAN, a LAN, a WLAN, a VPN, the Internet, or the like, or a combination thereof. The network paths 356 include a transmitter 358 and a receiver 360. Packets are sent between the transmitter 358 and the receiver 360 to estimate an available bandwidth of each of the network paths 356. Although in Fig. 3, two network paths 356 are illustrated, there may be more or fewer network paths 356 in the network 340. A network path, as used herein, includes an Internet path or other path in which network connections are used to transmit network traffic across the network (e.g., the network 340).

[0038] Network devices 359-1, 359-2, ..., 359-m are located along the network paths 356. There may be more or fewer network devices along the network paths 356. As in Fig. 3, the network controller 342 includes a processing circuitry 344 and a memory 346. The network controller, in some examples, includes a network bandwidth estimator and may be implemented on a network device and / or node, or may be a network device. The processing circuitry 344 may be a hardware processing unit, e.g., a microprocessor, a microcontroller, a processor with an application-specific instruction set, a coprocessor, a network processor, or a similar hardware circuitry capable of executing machine-readable instructions. In some examples, the processing circuitry 344 may be multiple hardware processing units capable of executing machine-readable instructions.Processing circuitry 344 may include central processing units (CPUs), among other types of processing units. Memory 346 may be any type of volatile or non-volatile memory, such as random access memory (RAM), flash memory, read-only memory (ROM), storage volumes, a hard disk, or a combination thereof.

[0039] Instructions are stored in memory 346, such as instructions 348, 350, 352, and 354. When executed by processing circuitry 344, the instructions cause network controller 342 to perform specific tasks and / or functions. For example, memory stores instructions 348 that are executed by processing circuitry 344 to cause network controller 342 to determine packet congestion on at least one of the plurality of network paths 356 using IPDM. For example, in IPDM, packet congestion is determined in a network path when there is an increase in OWD between packets. In IPDM, OWD increases are used to detect transient congestion and complete congestion.

[0040] In some examples, multiple packets having the same desired IDT are sent through at least one of the plurality of network paths 356 to overcome an effect of batching packets. For example, one source of noise in bandwidth measurement is batching packets, which occurs when packets are processed as a group rather than individually. As discussed above with respect to Fig. 1, packets with the same desired IDT can be sent together in a test, and a condition for a possible inflection point can be applied that takes batch processing of packets into account. For example, the condition can include an α condition and a ppi.

[0041] In some examples, memory 346 stores instructions 350 that are executed by processing circuitry 344 to cause network controller 342 to detect a plurality of possible inflection points of at least one of the plurality of network paths 356. This detection may be performed in response to an OWD of a first packet of at least one of the plurality of network paths 356 being less than an OWD of a second packet of at least one of the plurality of network paths 356 by a value that is greater than a function of an IDT difference between the first packet and the second packet. Additionally or alternatively, the detection may be performed in response to multiplying the function of the IDT difference between the first packet and the second packet by a plurality of packets having the same desired IDT of the second packet prior to and including the second packet (e.g.,if the impact of batch processing of packets is reduced).

[0042] The first packet, the second packet, and the third packet are sent sequentially in this example (e.g., the second packet is sent after the first packet, the third packet is sent after the second packet, etc.). The order may apply to the same network path or different network paths of the multiple network paths 356. In some cases, the order of the sent packets may be different and / or vary.

[0043] In some examples, memory 346 stores instructions 352 that are executed by processing circuitry 344 to cause network controller 342 to determine an inflection point in the congestion of at least one of the plurality of network paths 356 based on the plurality of possible inflection points. For example, each of the plurality of network paths 356 may have its own inflection point. The inflection points may have the same value for the network paths or different values. The inflection points may be one of the possible inflection points determined for each of the plurality of network paths 356. For example, an inflection point for a particular network path may be a possible inflection point determined for that particular network path that is above a threshold value (e.g., a particular value of the increase, the highest of the plurality of possible inflection points, etc.).In some cases, OWD measurement noise can be filtered out before capturing the multiple possible inflection points.

[0044] In some examples, memory 346 stores instructions 354 that are executed by processing circuitry 344 to cause network controller 342 to estimate an available bandwidth of at least one of the plurality of network paths 356 based on the determined inflection point. For example, knowing the inflection point reveals the point at which no more network traffic can be sent through the network path without queuing. This may indicate the point at which no more network bandwidth is available.

[0045] In some cases, packet transmission is adjusted based on the estimated available bandwidth. For example, adjusting packet transmission may include, among other things, balancing the traffic load through the at least one of the plurality of network paths 356 or rerouting a portion of the traffic through the at least one of the plurality of network paths 356. In other words, the network 340 may be reconfigured to implement a desired distribution of network traffic based on the estimated available bandwidth of multiple network paths between a sender and a receiver.

[0046] Fig. 4 shows an example of a network controller 442, including a memory 446 and a processing circuit system 444, for determining an inflection point in the congestion of a network path according to the disclosure. The network controller 442 is, in some examples, analogous to the network controller 342, which is described with respect to Fig. 3. The network controller 442 includes the processing circuitry 444 and the memory 446. Instructions are stored in the memory 446, such as instructions 464, 466, 468, and 470. When executed by the processing circuitry 444, the instructions cause the network controller 442 to perform specific tasks and / or functions.

[0047] For example, memory 446 stores instructions 462 that are executed by processing circuitry 444 to cause network controller 442 to determine packet congestion on a network path using IPDM. For example, in IPDM, packet congestion is determined on a network path when there is an increase in OWD between packets. In IPDM, OWD increases are used to detect transient congestion and complete congestion.

[0048] In some examples, memory 446 stores instructions 463 that are executed by processing circuitry 444 to cause network controller 442 to select a group of test packets from among multiple test packets received during application of IPDM to filter the OWD measurement noise. However, after such filtering, remaining OWD measurement noise may trigger detection of possible inflection points if an IDT slope filter as described herein is not used. Due to the noise, OWD may increase and decrease in a non-congested portion of a network path, rather than the OWD remaining constant. By introducing the α condition, the noise causing the inaccuracy is filtered out of the OWD measurement data.

[0049] In some examples, memory 446 stores instructions 464 that are executed by processing circuitry 444 to cause network controller 442 to detect a possible inflection point in response to an OWD of a first packet being less than an OWD of a second packet by a certain factor, compared to an IDT difference between the first packet and the second packet. The first packet is a packet sent through the network path before the second packet. In some examples, detecting the possible inflection point includes detecting the possible inflection point in response to an OWD of the first packet being less than an OWD of the second packet by a certain factor (e.g., from 0 to 1), compared to an IDT difference between the first packet and the second packet. The certain factor may, for example, comprise an α-condition, which may be a variable condition or a function.

[0050] The IDT can include an actual IDT or a desired IDT. For example, the IDT difference is a difference in actual IDTs or a difference in desired IDTs between the first packet and the second packet. An actual IDT can be measured, and a desired IDT can be determined or calculated based on a desired test speed.

[0051] In some examples, memory 446 stores instructions executed by processing circuitry 444 to cause network controller 442 to detect another possible inflection point in response to an OWD of a third packet being less than an OWD of a fourth packet by the determined factor, compared to an IDT difference between the third packet and the fourth packet. The third packet is a packet sent through the network path before the fourth packet. Similar to the possible inflection point described above, detecting the another possible inflection point includes detecting the another possible inflection point in response to an OWD of the third packet being less than an OWD of the fourth packet by a determined factor, compared to an IDT difference between the third packet and the fourth packet.The specific factor may, for example, include an α-condition, which may be a variable condition or a function.

[0052] In some examples, memory 446 stores instructions 468 that are executed by processing circuitry 444 to cause network controller 442 to determine an inflection point in the congestion of the network path based on the potential inflection point. For example, the inflection point in the congestion of the network path is determined to be the potential inflection point. In examples where two potential inflection points are detected, the potential inflection points are filtered. For example, if a potential inflection point appears too small (e.g., below a threshold, smaller than other detected potential inflection points, etc.), it may be filtered out from the other possible inflection points (e.g., ignored). In this example, the other possible inflection point becomes the inflection point.

[0053] In some cases, determining the inflection point involves filtering out OWD measurement noise. For example, if the α condition is not considered, OWD measurement data can trigger the detection of potential inflection points. Due to the noise, OWD increases and decreases may occur in a non-congested part of a network path, rather than the OWD remaining constant. By introducing the α condition, the noise causing the inaccuracy is filtered out of the OWD measurement data.

[0054] In some examples, memory 446 stores instructions 470 that are executed by processing circuitry 444 to cause network controller 442 to estimate an available bandwidth of the network path based on the determined inflection point. The inflection point can be used to determine a speed limit at which packets can be sent through the network path before congestion occurs. This information is used to determine an estimated available network path bandwidth. In some examples, potential inflection points can be used to identify an deviation, and the available network bandwidth associated with the network path can be determined based on the inflection point determination and the identified deviations.

[0055] In some cases, packet transmission is adjusted based on the estimated available bandwidth. For example, adjusting packet transmission may include, among other things, balancing the traffic load through the network path or rerouting a portion of the traffic through the network path (or another network path). A network including the network path may be reconfigured to achieve a desired distribution of network traffic based on the estimated available bandwidth.

[0056] Fig.5 shows a graph 574 including example inflection points 580, 582, according to the disclosure. The y-axis of graph 574 represents the inter-packet OWD in microseconds, and the x-axis of graph 574 represents the probe number (pbn). The group of packets has already been filtered, and the pbn represents the ppi selected as input to the IPDM. Line 578 represents the slope filter and indicates a change in IDT divided by 2 (or multiplied by α = 0.5). For example, line 578 represents 0.5(IDTp - IDTc). Line 576 follows the inter-packet OWDs. Two inflection points 580 and 582 are shown on graph 574. The inflection point 580 represents an inflection point 580 for which no gradient filter is taken into account (e.g.no IDTs are considered), but instead a possible turning point and an eventual turning point are determined based on an increase in OWD. For example, OWD increased between pbn 10 and pbn 12, leading to a possible turning point and the determination of an inflection point.

[0057] However, when the slope filter is taken into account, at pbn 12, line 578 is still higher than the OWD difference. Only at pbn 14, at inflection point 582, is line 578 higher than the OWD difference. Thus, inflection point 580 and the pbn estimate of 12 are an inaccurate estimate and an underestimation of the bandwidth. The more accurate estimate of inflection point 582 at pbn 14 may indicate more available bandwidth, which can improve the performance and function of the network and associated network devices, as well as user satisfaction. In such an example, costs can also be reduced because, unlike in a case of underestimation, no additional bandwidth may be required.

[0058] As used herein, the designation "n," particularly with respect to reference numbers in the drawings, indicates that several of the specific features so designated may be included in examples of the disclosure. The designations may represent the same or different numbers of the specific features. Furthermore, as used herein, "several" of an element and / or feature may refer to more than one such element and / or feature.

[0059] In the foregoing detailed description of the present disclosure, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration how examples of the disclosure may be practiced. These examples are described in sufficient detail to enable one skilled in the art to practice the examples of the present disclosure, and it is understood that other examples may be utilized and that process changes, electrical changes, and / or structural changes may be made without departing from the scope of the present disclosure.

Claims

[1] Procedure (100), comprising: Determining (102) a packet congestion on a network path (356; 356-1; 356-N) using a turning point detection mechanism, IPDM, by a network controller (342; 442); Detection (104) of a possible turning point (580; 582) by the network control (342; 442) in response to the fact that a one-way delay, OWD, of a first packet (P.1 214) by a value greater than a function of an intermediate start time difference, IDT, between the first packet (P.1 214) and a second packet (P.2 216) is less than an OWD of the second packet (P.2 216); and Determining (106) an inflection point (582) in the network path overload (356; 356-1; 356-N) by the network control (342; 442), based on the possible inflection point (580; 582). [2] Method (100) according to claim 1, further comprising estimating an available network bandwidth belonging to the network path (356; 356-1; 356-N) by the network controller (342; 442), based on the inflection point determination. [3] Method (100) according to claim 1 or 2, further comprising filtering OWD measurement noise by the network control (342; 442) prior to detecting the possible inflection point (580; 582). [4] Method (100) according to any one of claims 1 to 3, wherein, if an IDT of the first packet (P.1 214) is faulty, the detection (104) of the possible turning point (580; 582) comprises: the detection (104) of the possible inflection point (580; 582) in response to the fact that the OWD of the second packet (P.2 216) is greater than an OWD of the first packet (P.1 214) by an amount greater than a function of an IDT difference between the second packet (P.2 216) and a third packet (P.3 224). [5] Method (100) according to any one of claims 1 to 4, wherein the IDT difference comprises at least one of the following: a difference in the actual IDT between the first package (P.1 214) and the second package (P.2 216) and a difference in the desired IDT between the first package (P.1 214) and the second package (P.2 216). [6] Network (340), comprising: multiple network paths (356; 356-1; 356-N) and a network controller (342; 442) connected for data exchange with the multiple network paths (356; 356-1; 356-N), comprising a processing circuit system (344; 444) and a memory (346; 446) containing instructions (348; 350; 352; 354; 463; 464, 466, 468; 470) which, when executed by the processing circuit system (344; 444), cause the processing circuit system (344; 444) to perform the following: Determining packet congestion on at least one of the multiple network paths (356; 356-1; 356-N) using a turning point detection mechanism, IPDM; Detecting a possible turning point (580; 582) of at least one of the multiple network paths (356; 356-1; 356-N) in response to a one-way delay, OWD, of a first packet (P.1 214) of at least one of the multiple network paths (356; 356-1; 356-N) by a value greater than a function of a difference in the inter-departure time, IDT, between the first packet (P.1 214) and a second packet (P.2 216), less than an OWD of the second packet (P.2 216) of at least one of the multiple network paths (356; 356-1; 356-N); Determining an inflection point (582) in the congestion of at least one of the multiple network paths (356; 356-1; 356-N) based on the multiple inflection points (580; 582); and Estimating the available bandwidth of at least one of the multiple network paths (356; 356-1; 356-N) based on the determined inflection point (582). [7] Network (340) according to claim 6, further comprising the commands (348; 350; 352; 354; 463; 464, 466, 468; 470) for adjusting the packet transmission through the at least one of the multiple network paths (356; 356-1; 356-N) based on the estimated available bandwidth. [8] Network (340) according to claim 6 or 7, further comprising commands (348; 350; 352; 354; 463; 464, 466, 468; 470) for filtering the OWD measurement noise before detecting the possible inflection point (580; 582).

Citation Information

Patent Citations

  • Method, apparatus and device for detection of available bandwidth of network link

    CN108011771A

  • Estimating Available Bandwidth With Multiple Overloading Streams

    US20070217448A1

  • System and method for a TCP mapper

    US9143454B2

  • CN000108011771A