One of the biggest problems with TCP in a wireless network is that it assumes that loss is a result of congestion. In a wired network that is most certainly the case but, in a wireless network loss can be a result of interference, changes in the wind, or phases of the moon. A paper out of the University of Dortmund presents an adjusted version of TCP called TCP with Adaptive Pacing. It claims that it can achieve up to 84% more goodput than TCP New Reno and excellent fairness in almost all scenarios. Basically, the sender adaptively sets its transmission rate using an estimate propagation delay over 4 hops and a coefficient of variation calculated from round trip times. The whole idea is to reduce contention at the MAC layer so that more senders can send packets more frequently with more success.
Overall I think the idea seems to be solid. Their results seem to show that TCP convergence time is low, fairness is high and goodput is, well, good. They seemed to spend a lot of time tuning constants in the equations they were using to find an optimal setting. That’s okay, there are magic numbers like that in lots of algorithms. Like all algorithms similar to this, there is overhead associated with the adaptive pacing. For instance, the total goodput with New Reno is actually higher than TCP-AP. However, all that goodput is assigned to 1 or 2 nodes, but with TCP-AP the goodput is evenly distributed among the nodes. I think the overhead is a worthwhile trade off when more nodes get to send more frequently. It would be interesting to see this system work in practice.