March 17, 2006
Creating false congestion to selectively discourage sending on the Internet?
My first significant foray into research on incentive-centered design was my work with Hal Varian, Liam Murphy and others in the early-mid 1990s on incentives for congestion control in the Internet. Ed Felten in his popular "Freedom to Tinker" blog has brought up one of the key issues we in the networking community debated back then -- but the issue is still valid today!http://battellemedia.com/archives/002391.php
The issue is this: the primary mechanism for congestion control in the Internet (we're talking about the transport of packets here) is technological: a standard protocol called "slowstart" (developed by Van Jacobsen at LBL). All compliant TCP stacks implement slowstart. In simple terms, when a server or user starts sending packets (a file, a streaming video, whatever), the flow rate starts slowly, and slowstart checks how long it takes for ACK (acknowledgment) packets to return from the other end. If the return time is within the acceptable range, the flow rate ramps up. But if congestion at any point is high enough to delay the ACKs beyond the threshold, then slowstart immediately drops the sending rate (typically cutting it in half as I recall), what is known as "backing off".
If TCP software all implements this protocol, then senders are effectively playing a cooperative game, backing off to reduce traffic when there is congestion.
One problem with this: What if some users use a version of TCP that turns off slowstart? They would then hog all available bandwidth, while everyone else was backing off to give them room. Similarly, there is another protocol on the Internet called UDP that does not use slowstart: it is supposed to be available for a small number of special purposes, but from time to time people have written software that uses UDP to transmit regular traffic, thus hogging bandwidth.
Felten raises a variation on this problem: what if a network service provider started discriminating against senders by sending false congestion signals to them (actually, delaying or blocking the ACK packets so the senders think the network is congested)? Those users would back off (if they were slowstart-compliant), bearing more than their share of the cost of congestion. This might, for example, be one step towards implementing a non-neutral net charging scheme, which has been much in the news recently: "pay up or we'll cause you to send less traffic."
Of course, as Felten also points out, if network service providers started doing this, the willingness of senders to abide by the entirely voluntary slowstart protocol might quickly erode, and then everyone would be worse off as congestion skyrocketed.
(Thanks to Rick Wash for pointing out Felten's article.)
Posted by jmm at March 17, 2006 01:30 AM