We propose a method called PacketTwins for estimating the capacity of heavy-loaded paths. Unlike popular packet pair methods, which probe a path with a series of two equal-sized packets, PacketTwins uses a series of twin probe packets that are slightly different in size. By sending twin probe packets alternately, we can obtain new information about selecting valid samples for capacity estimation when a network path is heavy loaded.

1. Introduction

Several packet pair methods have been proposed for estimating the bottleneck capacity of an end-to-end path with help of the dispersion of probe packet pair. Moveover, to deal with disruptions caused by cross traffic, various filter algorithms designed to find uncontaminated probe samples have been proposed. For example, in [1], CapProbe was proposed to find valid probe samples with the help of end-to-end delay information. While CapProbe is very accurate and converges quickly when the path is light-loaded, its performance degrades when the path is heavy loaded.

In this letter, we propose a method called PacketTwins for estimating the capacity of heavy loaded paths. Instead of using packet pairs, PacketTwins uses twin packets whose sizes are slightly different to probe a path's capacity. Existing approaches, such as [2–4], use different sized packets to measure the capacity of each intermediate link and other metrics along the path. In contrast, PacketTwins focuses on the estimation of the path capacity (i.e., the bottleneck link capacity) by exploiting the different sizes of the twin probe packets, in addition to the traditional parameters like dispersion and delay. Moreover, PacketTwins preserves the simplicity of CapProbe, and it is less intrusive than packet train-based tools (e.g., Pathrate [5]).

2. PacketTwins

2.1. Feasibility

Consider the scenario where two packets sent back-to-back cross a path with capacities (𝐢1,𝐢2,…,𝐢𝑛). The path consists of 𝑛 links, and the bottleneck link falls on the π‘˜th link. Mathematically, the path capacity 𝐢=πΆπ‘˜=min{𝐢1,𝐢2,…,𝐢𝑛}. Suppose that the two packets leave the 𝑖th link at 𝑑1𝑖 and 𝑑2𝑖, respectively. Packet dispersion is defined as the time interval between the departure times of the two packets. While crossing the bottleneck link, the two probe packets still remain back-to-back; however, the dispersion of the packets changes at the bottleneck link. The new dispersion can be expressed as Ξ”π‘˜=𝐿2πΆπ‘˜,(1) where 𝐿2 is the size of the second probe packet.

Specifically, the time that each packet leaves the 𝑖th link can be expressed as follows: 𝑑𝑗𝑖=π‘‘π‘—π‘–βˆ’1+𝐿𝑗𝐢𝑖,𝑗=1,2.(2)

Therefore, the dispersion after the 𝑖th link can be calculated by Δ𝑖=𝑑2π‘–βˆ’π‘‘1𝑖=Ξ”π‘–βˆ’1+𝐿2βˆ’πΏ1ξ€Έ1𝐢𝑖.(3) Recursively, the dispersion measured at the end of the path can be expressed as Ξ”=Ξ”π‘˜+𝐿2βˆ’πΏ1𝑛𝑖=π‘˜+11𝐢𝑖=𝐿2πΆπ‘˜+𝐿2βˆ’πΏ1𝑛𝑖=π‘˜+11𝐢𝑖.(4)

Equation (4) shows that if the two probe packets are of equal size (𝐿1=𝐿2), the packet dispersion after the bottleneck link remains the same as 𝐿2/πΆπ‘˜ until the end of the path. However, if the two packets are different in size, the dispersion will be disrupted by links after the bottleneck link. This may be the reason that most packet pair methods use two equal-sized packets.

In this work, we find that when we transmit two different sized probe packets alternately, the disturbance in the second part of (4) can be eliminated. Specifically, when the sending order of the two packets is changed (i.e., the packet of size 𝐿2 is sent first), the dispersion can be expressed as follows: Ξ”ξ…ž=Ξ”ξ…žπ‘˜+𝐿1βˆ’πΏ2𝑛𝑖=π‘˜+11𝐢𝑖=𝐿1πΆπ‘˜+𝐿1βˆ’πΏ2𝑛𝑖=π‘˜+11𝐢𝑖.(5)

Combining (4) and (5), the path capacity can be calculated by 𝐢=πΆπ‘˜=𝐿1+𝐿2Ξ”+Ξ”ξ…ž.(6)

2.2. Size Difference of Twin Packets

The assumption made in the above deduction is that the packet dispersion calculated in (3) is always larger than the transmission time of the second probe packet. Therefore, to use (3), the following constraint must be satisfied: Ξ”π‘–βˆ’1+𝐿2βˆ’πΏ1ξ€Έ1𝐢𝑖β‰₯𝐿2πΆπ‘–βŸΉΞ”π‘–βˆ’1β‰₯𝐿1𝐢𝑖.(7)

Similarly, when the sending order of the twin packets is changed, the following constraint must be met: Ξ”ξ…žπ‘–βˆ’1+𝐿1βˆ’πΏ2ξ€Έ1𝐢𝑖β‰₯𝐿1πΆπ‘–βŸΉΞ”ξ…žπ‘–βˆ’1β‰₯𝐿2𝐢𝑖.(8)

Specifically, for 𝑖=π‘˜+1, the inequalities become 𝐿2𝐿1β‰₯πΆπ‘˜πΆπ‘˜+1,𝐿1𝐿2β‰₯πΆπ‘˜πΆπ‘˜+1.(9)

Without loss of generality, we assume that 𝐿2 is larger than 𝐿1. Since πΆπ‘˜<πΆπ‘˜+1 and their differences are normally in the scale of Mbs, the above inequalities can be easily resolved by setting 𝐿1 and 𝐿2 very close to each other. Recursively, there will always be a Ξ”π‘˜ term in the dispersion; therefore, for the subsequent downstream links, when the sizes of twin packets are slightly different (e.g., by two bits), the constraints in (7) and (8) will always be satisfied. In addition, bottleneck link capacity estimation based on (6) will yield valid results.

2.3. Dispersion Variance of Twin Local Modes

When a path is heavy loaded, probe packets may experience queueing delays after the bottleneck link. Suppose that the delay experienced by two probe packets at the 𝑖th link is 𝑑1𝑖 and 𝑑2𝑖, respectively. When the sending order is changed, the queueing delay of the twin packets becomes 𝑑1π‘–ξ…ž and 𝑑2π‘–ξ…ž. Thus, the departure time of probe packets from the 𝑖th link in (2) should be modified as follows: 𝑑𝑗𝑖=π‘‘π‘—π‘–βˆ’1+𝐿𝑗𝐢𝑖+𝑑𝑗𝑖,𝑗=1,2.(10)

Consequently, the dispersion in (3) should be revised as Δ𝑖=Ξ”π‘–βˆ’1+𝐿2βˆ’πΏ1ξ€Έ1𝐢𝑖+𝑑2π‘–βˆ’π‘‘1𝑖.(11)

Similarly, when the sending order of twin packets is changed, the dispersion becomes Ξ”ξ…žπ‘–=Ξ”ξ…žπ‘–βˆ’1+𝐿1βˆ’πΏ2ξ€Έ1𝐢𝑖+𝑑2π‘–ξ…žβˆ’π‘‘1π‘–ξ…žξ‚.(12)

If a number of sample packets experience the same delay after the bottleneck link, they form a local mode [5] in the dispersion distribution. However, as the sending order of twin probes alternates, there are actually two similar local modes even though the samples experience the same delay as shown in (11) and (12). In other words, the different sizes of twin packets and the alternating sending order split each local mode into two similar local modes, which we call twin local modes.

We observe that the variance of twin local modes actually provides an additional clue for filtering valid probe samples. Specifically, the dispersion variance of twin local modes after the 𝑖th link is ΔΔ𝑖=Ξ”π‘–βˆ’Ξ”ξ…žπ‘–=Ξ”Ξ”π‘–βˆ’1+2𝐿2βˆ’πΏ1ξ€ΈπΆπ‘–βˆ’ξ‚€π‘‘1π‘–βˆ’π‘‘1π‘–ξ…žξ‚βˆ’ξ‚€π‘‘2π‘–ξ…žβˆ’π‘‘2𝑖.(13)

Consider the sample probes of twin local modes crossing the 𝑖th link. For ease of analysis, we assume that all the samples of the same local mode experience exactly the same processing delays after the bottleneck link. The delays experienced by the first probe packets are all the same (𝑑1π‘–ξ…ž=𝑑1𝑖), since neither the probe size nor the sending order has any influence. However, the queueing delays of the second probe packets fall into two categories depending on whether they are influenced by the first packets or not.

First, if the dispersion of twin packets is β€œsaturated” by cross traffic, the delay of the second probe packet will be influenced by the cross packets that saturate the dispersion as well as by the first probe packet. In this situation, the variance of packet dispersion of the twin local modes after the 𝑖th link can be easily calculated by ΔΔ𝑖=𝑦+𝐿2πΆπ‘–βˆ’π‘¦+𝐿1𝐢𝑖=𝐿2βˆ’πΏ1𝐢𝑖,(14) where 𝑦 denotes to the size of packets that saturate the dispersion.

Second, if the dispersion is not β€œsaturated”, the queueing delay should be same for all the second probe packets (𝑑2π‘–ξ…ž=𝑑2𝑖) if they belong to twin local modes. According to (13), the dispersion variance after the 𝑖th link can be expressed as ΔΔ𝑖=Ξ”Ξ”π‘–βˆ’1+2𝐿2βˆ’πΏ1𝐢𝑖.(15)

In summary, the dispersion variance after the 𝑖th link can be classified into two categories. Clearly, the dispersion variance in the nonsaturated category is much larger than that in the saturated case. Therefore, the maximal dispersion variance occurs when the dispersion of twin packets is never saturated after the bottleneck link. Specifically, the maximal dispersion variance at the end of the path can be expressed as follows: maxΔΔ=𝐿2βˆ’πΏ11πΆπ‘˜+2𝑛𝑖=π‘˜+11𝐢𝑖ξƒͺ.(16)

We observe that nonsaturated cases hardly ever occur when 𝑑1𝑖>𝑑2𝑖. This is because the dispersion is rather tightly compressed, and so it can be easily saturated by heavy cross traffic. In other words, the maximal dispersion variance only occurs for 𝑑1𝑖≀𝑑2𝑖. When 𝑑1𝑖=𝑑2𝑖, the dispersion variance reaches the maximum with the smallest dispersion. Consequently, we can conclude that twin local modes that achieve the maximal dispersion variance with the smallest dispersion correspond to valid samples when the path is heavy loaded.

2.4. Algorithm Description

Based on above analysis, we outline the steps of the PacketTwins algorithm. First we send out twin probe packets alternately. To minimize the impact of variations in cross traffic, we alternate the sending order of the twin packets sample by sample so that twin local modes will have similar strength. The second step finds the twin local modes. Since the twin local modes are very close to each other and have similar occurrence patterns, they can be found easily. If it is difficult to distinguish twin local modes, one can send some packet pair probes of size (𝐿1+𝐿2)/2 and use the corresponding local modes for reference. In the third step, valid samples are discovered with help of information about the variance of twin local modes. The path's capacity can be calculated by (6).

3. Simulation Results and Analysis

We simulate PacketTwins in NS-2 [6] on a 6-link path with capacities of {8,3,2,4,5,6} Mbps. The nonpersistent cross traffic on each link consists of three Pareto-distributed traffic with the same shape parameter 𝛼=1.9, different packet sizes (40, 550, 1500 bytes), and corresponding packet weights (0.5,0.25,0.25). In each measurement, both CapProbe and PacketTwins send 2000 probe samples. We use a large number of probes because valid samples are rather rare when a path is heavy loaded. For CapProbe, we use 200-byte probes, and for PacketTwins, we use 199- and 201-byte twin probes.

Figure 1 shows the dispersion distributions when all links on the path are 80% utilized. We observe that the dispersion distributions are very complicated, as discussed in [5], but existing packet pair methods do not provide a simple indicator to find the right capacity mode (CM) [5] with packet pair methods.

However, PacketTwins enables us to obtain more information. First, the twin local modes under PacketTwins correspond to the local modes under CapProbe. Moreover, the twin local modes sit on the two sides of the corresponding local mode of the packet pair and are equidistant to it. Therefore, if twin local modes are hard to distinguish with PacketTwins, we can seek extra information from the dispersion distribution of packet pairs. Second, the dispersion variance of twin local modes achieves the maximum value with valid samples. Specifically, the dispersion variance of twin capacity local modes around CM (0.8 millisecond) is 0.02773 millisecond which complies with our calculations by (16). The dispersion variances of other twin local modes also comply with our analysis; however, they never achieve the maximal value in this scenario.

Figure 2 shows the estimation results derived by PacketTwins and CapProbe under different traffic loads. In each case, 30 independent simulations are performed, and the estimation results have a 95% confidence interval. Clearly, PacketTwins performs much better than CapProbe when the path is heavy loaded. In fact, as long as there are samples for the twin capacity local modes, accurate estimation can be achieved by PacketTwins. However, CapProbe may not yield accurate estimations, as valid samples may experience prolonged delays before crossing the bottleneck link.

We also simulate PacketTwins with different probe sizes. Since the path is already heavy loaded, it is observed that large probes perform badly because no valid samples are available in the dispersion distribution. However, when we probe the path with small twin packets, even if the capacity mode is very weak, we can still find corresponding valid samples and estimate the capacity accurately.

4. Conclusion

In this letter, we present a novel path capacity estimation approach called PacketTwins. By splitting each local mode under packet pair methods into twin local modes under packet twins, PacketTwins obtains new filter information about the dispersion variance of twin local modes. The results of simulations show that PathTwins is superior to CapProbe because it can achieve more accurate capacity estimation, even when a network is heavy loaded.


This work was supported by the National 863 project (Grant no. 2007AA01Z297) and the National Science Foundation of China (Grant no. 60773137). The author would like to gratefully thank Ling-Jyh Chen for his valuable input.