Subsections


A Multi-Packet Model

In this section we describe a deterministic multi-packet model that is more powerful than the models described in the previous section and show how it can be used to measure link bandwidths along a path. The new model takes into account all the packets in a single flow as well as latency. We developed the multi-packet model as a result of attempting to unify the one-packet and packet pair models. In fact, as we show below, the multi-packet model can derive both the one-packet and packet pair models as well as the new tailgating technique.


Multi-Packet Delay Equation

The multi-packet model consists of a delay equation derived from two other equations: an arrival time equation and a queueing delay equation. The following arrival time equation is a slight variation on the one-packet equation (1) (variables defined in Table 1):

tkl = tk0 + $\displaystyle \sum_{i=0}^{l-1}$$\displaystyle \left(\vphantom{\frac{s^k}{b_i} + d_i + q^k_i}\right.$$\displaystyle {\frac{s^k}{b_i}}$ + di + qki$\displaystyle \left.\vphantom{\frac{s^k}{b_i} + d_i + q^k_i}\right)$ (3)

This equation predicts that packet k arrives at link l at its transmission time (tk0) plus the sum over all the previous links of the latencies (di), transmission delays $ \left(\vphantom{\frac{s^k}{b_i}}\right.$$ {\frac{s^k}{b_i}}$$ \left.\vphantom{\frac{s^k}{b_i}}\right)$, and queueing delays (qki) of those links. Equation 3 differs from the one-packet equation (1) in that it considers k - 1 packets in the same flow and the queueing delays of those packets.

Figure: This figure shows the amount of time several packets from a flow spend on links l - 1 and l. In this example, sk - 1 = 4000 bits, sk = 2000 bits, sk + 1 = 12000 bits, bl - 1 = 2Mb/s, dl - 1 = 2ms, bl = 1 Mb/s, dl = 3ms. Packet k is queued at link l for qkl = max$ \left(\vphantom{0, 11 - 3 - 5}\right.$0, 11 - 3 - 5$ \left.\vphantom{0, 11 - 3 - 5}\right)$ = 3ms. Packet k + 1 arrives 1ms after packet k leaves because something delayed it earlier in the path.
\includegraphics[angle=0,width=8cm]{graphics/visio/MultiPacketModel}

We model the queueing delay due to other packets in the same flow using the following equation:

qkl = max$\displaystyle \left(\vphantom{0, t^{k-1}_{l+1} - d_l - t^k_l}\right.$0, tk - 1l + 1 - dl - tkl$\displaystyle \left.\vphantom{0, t^{k-1}_{l+1} - d_l - t^k_l}\right)$ (4)

This equation predicts that packet k is queued at the router just before link l from the time it arrives at that router (tkl) until it can begin transmitting, which is the time when the previous packet (k - 1) arrives at the next router ( tk - 1l + 1) minus the latency of this link (dl). We assume that the first packet is never queued ( q00 = ... = q0n - 1 = 0). An example of using Equation 4 to compute queueing delay is shown in Figure 4. This equation is equivalent to those described by Paxson [15] and Stoica [18]. Notice that packet k + 1 in the figure is not queued at all because it arrives at link l after packet k has been transmitted. Queueing delay cannot be negative, so the max() function in the queueing equation causes it to be 0 in this case.

We combine Equations 3 and 4 to form the multi-packet delay equation:

tkl = tk0 + $\displaystyle \sum_{i=0}^{l-1}$$\displaystyle \left(\vphantom{\frac{s^k}{b_i} + d_i +
\max\left(0, t^{k-1}_{i+1} - d_i - t^k_i\right)}\right.$$\displaystyle {\frac{s^k}{b_i}}$ + di + max$\displaystyle \left(\vphantom{0, t^{k-1}_{i+1} - d_i - t^k_i}\right.$0, tk - 1i + 1 - di - tki$\displaystyle \left.\vphantom{0, t^{k-1}_{i+1} - d_i - t^k_i}\right)$$\displaystyle \left.\vphantom{\frac{s^k}{b_i} + d_i +
\max\left(0, t^{k-1}_{i+1} - d_i - t^k_i\right)}\right)$ (5)

The multi-packet equation is as least as powerful as both the one-packet and packet pair models because we can derive both of those models from Equation 5. We reduce the multi-packet equation to the one-packet equation (1) by taking k = 0. To derive the packet pair equation from Equation 5 we reformulate the packet pair equation as the following property:

Theorem 3.1 (Packet Pair Property)   Let
bmin(l)$ \le$bi,($ \forall$i, 0$ \le$i$ \le$l ), then if we send two packets of the same size (s0 = s1) with a small time difference ( t10 - t00 < = $ {\frac{s^1}{b_{min(n-1)}}}$) and there is no cross traffic, they will arrive with a difference in time equal to the size of the second packet divided by the smallest bandwidth on the path ( t1n - t0n = $ {\frac{s^1}{b_{min(n-1)}}}$).

Using Equation 5, we derive the Packet Pair Property in Appendix A.

As well as combining the advantages of previous models, the multi-packet model combines the assumptions of previous models. The model assumes that packets from other flows do not cause queueing in the modeled flow. As with previous models, this assumption can be worked around by using the minimum of several observed delays of particular packet size. Like previous models, it assumes that transmission delay is linear with respect to packet size and that routers are store-and-forward.


Link Bandwidth Measurement

In addition to deriving previous models, we use the multi-packet model to develop a new technique for link bandwidth measurement. To do so we assume that we can send one packet with no queueing and a second packet that queues behind the first packet at a specific link, but not at any later link. We describe how we ensure this assumption in practice in Section 4.

The basic approach we take is to start with the multi-packet delay equation and try to solve for the bandwidth blq of the link lq at which queueing occurs. We rewrite Equation (5) to state the time packet k takes to arrive at the destination link n (with variables defined in Table 1):

tkn = tk0 + $\displaystyle \sum_{i=0}^{n-1}$$\displaystyle \left(\vphantom{\frac{s^k}{b_i} + d_i +
\max\left(0, t^{k-1}_{i+1} - d_i - t^k_i\right)}\right.$$\displaystyle {\frac{s^k}{b_i}}$ + di + max$\displaystyle \left(\vphantom{0, t^{k-1}_{i+1} - d_i - t^k_i}\right.$0, tk - 1i + 1 - di - tki$\displaystyle \left.\vphantom{0, t^{k-1}_{i+1} - d_i - t^k_i}\right)$$\displaystyle \left.\vphantom{\frac{s^k}{b_i} + d_i +
\max\left(0, t^{k-1}_{i+1} - d_i - t^k_i\right)}\right)$

Assuming no queuing except at the queuing link, we can split this delay into the time to travel to the queueing link, the time spent at the queueing link, and the time spent after the queueing link:

\begin{displaymath}\begin{split}
t^k_n & = \left[t^k_0 + \sum_{i=0}^{l_q-1}\left...
...+ 1}^{n-1}\left(\frac{s^k}{b_i} + d_i\right)\right]
\end{split}\end{displaymath}

We substitute using (5) and simplify:

\begin{displaymath}\begin{split}
& = t^{k}_{l_q} + \frac{s^k}{b_{l_q}} + t^{k-1...
...=l_q +
1}^{n-1}\left(\frac{s^k}{b_i} + d_i\right)
\end{split}\end{displaymath}

We substitute using (5), include the assumption that the first packet experiences no queueing, and simplify:

\begin{displaymath}\begin{split}
& = \frac{s^k}{b_{l_q}} + \sum_{i=0}^{l_q}\lef...
...ght) + t^{k-1}_0 +
\sum_{i=0}^{n-1}\left(d_i\right)
\end{split}\end{displaymath}

Before continuing with the derivation, we define the following variables for more compact notation:

dl = $\displaystyle \sum_{i=0}^{l}$di    $\displaystyle {\frac{1}{b^{l}}}$ = $\displaystyle \sum_{i=0}^{l}$$\displaystyle \left(\vphantom{\frac{1}{b_i}}\right.$$\displaystyle {\frac{1}{b_i}}$$\displaystyle \left.\vphantom{\frac{1}{b_i}}\right)$

Using these definitions, we continue simplifying the equation:

\begin{displaymath}\begin{split}
& = \frac{s^{k-1}}{b_{l_q}} +
s^{k-1}\sum_{i=0}...
...frac{1}{b^{l_q-1}}\right) + t^{k-1}_0 + d^{n-1} \\
\end{split}\end{displaymath}

Solving for blq and collecting terms,

\begin{displaymath}\begin{split}
b_{l_q} & = \frac{s^{k-1}}{(t^k_n + \frac{s^k -...
...q-1}} -
\frac{s^k}{b^{n-1}} - t^{k-1}_0 - d^{n-1})}
\end{split}\end{displaymath} (6)

This shows that we can compute the bandwidth of a link at which queuing occurs (blq) from the sizes of the two packets ( sk - 1, sk), the arrival time of the second packet (tkn), the transmission time of the first packet (tk - 10), the bandwidth of all earlier links (blq - 1) and (bn - 1), and the delay of all earlier links (dn - 1). To use this equation in practice, we have to solve various problems including calculating the inter-packet transmission time, dealing with clock skew, and using round trip measurements. We describe our solutions to these and other implementation problems in the next section.

Kevin Lai 2001-04-04