Analyzing ab_estimations for the experiment with 300Mbps CBR cross traffic(LINK), we found that AB estimations are consistently higher than actual ab when sending rate exceeds actual ab, which cause packet loss immediately.

Sample pstreams when (1) send rate < ab; and (2) send rate > ab

## A new AB_estimation algorithm

Proposal: After smoothing, if the excursion lasts to the end of the pstream, then use the sending rate ahead of the excursion as abest; otherwise abest is the highest probing rate. Use "gap_ns_epsilon= 1us" in this algorithm.

## A new pruning heuristic:

Proposal: When average sending rate is high, the buffer fails to drain quickly in the beginning of the next pstream, which makes the first few recvgaps extremely smaller than sendgaps after smoothing. The first few small values affect the result of exponential smoothing. So before exponential smoothing is applied, spike_removal_recv_gap=max(spike_removal_recv_gap,spike_removal_sendgap*0.875

## Comparison in Analysis

### ABestimations:

(1) arithmatic smoothing is so variant, which should be taken out of consideration. (2) The new abest algorithm lowers abests when average sending rate is high. But it brings out some low values when sending rate is smaller than ab. Fortunately that's rare events which can be smoothed away by TAO and ETA filters. (3) new pruning heuristics brings a little lower abests when avg send rate is high.

To access the matlab file abest.fig

### CDF of ABests:

(exponential smoothing, 1us, new abest algorithm, w/o new pruning algorithm) is a fairly better choice.

## Experimental Results with 300Mbps CBR Cross Traffic

eps file
```(1) exponential smoothing, gap_ns_epsilon=1us, old abest algorithm. 24 packet losses
(2) exponential smoothing, gap_ns_epsilon=1us, new abest algorithm. 24 packet losses
(3) exponential smoothing, gap_ns_epsilon=1.5us, new abest algorithm. 80 packet losses
(4) exponential smoothing, gap_ns_epsilon=1us, old abest algorithm. 298 packet losses
```

The new abest algorithm fails to improve the performance without cross traffic because there are only a little portion of pstreams which have excursions terminating before the last index:

```#pstreams with one excursion lasts to the end: otherwise
7678:208 (gap=1.5us, exp) in a 10s run
7867:231 (gap=1us, exp) in a 10s run
```