IEEE Spectrum December, 2008 - 37

remarkable if this ploy had not become more common.
A number of such strategies evolved through innocent experimentation. Take peer-to-peer file sharing-
a common way to exchange movies over the Internet,
one that accounts for a large portion of all traffic. It
involves downloading a file from several peers at once.
This parallel scheme, sometimes known as swarming, had become routine by 2001, built into such protocols as BitTorrent.
The networking community didn't immediately
view connecting with many machines as a circumvention of the TCP-friendliness rule. After all, each
transfer used TCP, so each data flow "correctly" got
one share of any bottleneck it encountered. But using
parallel connections to multiple machines was a new
degree of freedom that hadn't been thought of when
the rules were first written. Fairness should be defined
as a relation between people, not data flows.
Peer-to-peer file sharing exposed both of TCP's
failings. First, a file-sharing program might be active
20 times as often as your Web browser, and second, it
uses many more TCP connections, typically 5 or even
50 times as many. Peer-to-peer thus takes 100 or 1000
times as many shares of Internet bottlenecks as a
browser does.
Returning to our 100 broadband customers:
if they were just browsing the Web and exchanging e-mail, each would get nearly the full benefit of a
2 Mb/s access pipe-if 5 customers were active at a time,
they'd just squeeze into the 10Mb/s shared pipe. But if
even 20 users started continuous parallel downloading, the TCP algorithm would send everyone else's bit
rate plummeting to an anemic 20 kilobits per second-
worse than dial-up! The problem isn't the peer-to-peer
protocols; it's TCP's sharing rules.

W

T

here's a far better solution than
fighting. It would allow light browsing to go
blisteringly fast but hardly prolong heavy
downloads at all. The solution comes in
two parts. Ironically, it begins by making it easier for programmers to run TCP multiple
times-a deliberate break from TCP-friendliness.
Programmers who use this new protocol to transfer data will be able to say "behave like 12 TCP flows"
or "behave like 0.25 of a TCP flow." They set a new
parameter-a weight-so that whenever your data
comes up against others all trying to get through
the same bottleneck, you'll get, say, 12 shares, or a
quarter of a share. Remember, the network did not
set these priorities. It's the new TCP routine in your
own computer that uses these weights to control the
number of shares it takes from the network.
At this point in my argument, people generally
ask why everyone won't just declare that they each
deserve a huge weight. The answer to the question
involves a trick that gives everyone good reason to
use the weights sparingly-a trick I'll get to in a minute. But first, let's check how this scheme ensures the
lightning-fast browsing rates I just promised.

Bit rate

h y ca n ' t t h e s e rv i c e prov i de r s i m p l y u p g r a d e t h a t
stingy 10 Mb/s shared pipe? Of
course, some upgrades are necessary from time to time. But as a general approach to the problem of sharing, adding capacity is like throwing water uphill.
Imagine two competing Internet service providers,
both with this 80:20 mix of light and heavy users. One
provider quadruples its capacity; the other doesn't. But
TCP still doles out the upgrader's capacity in the same
way. So the light users, who used to have a measly
20 kb/s share, now get a measly 80 kb/s-still barely

better than dial-up. But now the 80 light users must
pay substantially more for four times the long-distance
capacity, which they hardly get to use. No rational network operator would upgrade under these conditions-
it would lose most of its customers.
But there is plenty of evidence that Internet service
providers are continuing to add capacity. This is partly
explained by government subsidies, particularly in the
Far East. Equivalently, weak competition, typical in
the United States, allows providers to fund continued
investment through higher fees without the risk of losing customers. But in competitive markets, common in
Europe, service providers have had to attack the root
cause: the way their capacity is shared.
Network providers often don't allow TCP to give all
the new capacity straight to the heavy users. Instead
they impose their own sharing regimes on their customers, thus overriding the worst effects of TCP's broken regime. Some limit, or "throttle," the peak-time bit
rate of the peer-to-peer customers. Others partition
the pipe to prevent heavy users encroaching on lighter
ones. Increasingly, the share of Internet capacity you
actually get is the result of this tussle between TCP
and the service providers' allocation schemes.

Time

Time

Weighted TCP sharing
www.spectrum.ieee.org

DEcEmbEr 2008 * IEEE SpEcTrum * NA

45


http://www.spectrum.ieee.org

Table of Contents for the Digital Edition of IEEE Spectrum December, 2008

IEEE Spectrum December, 2008 - Cover1
IEEE Spectrum December, 2008 - Cover2
IEEE Spectrum December, 2008 - 1
IEEE Spectrum December, 2008 - 2
IEEE Spectrum December, 2008 - 3
IEEE Spectrum December, 2008 - 4
IEEE Spectrum December, 2008 - 5
IEEE Spectrum December, 2008 - 6
IEEE Spectrum December, 2008 - 7
IEEE Spectrum December, 2008 - 8
IEEE Spectrum December, 2008 - 9
IEEE Spectrum December, 2008 - 10
IEEE Spectrum December, 2008 - 11
IEEE Spectrum December, 2008 - 12
IEEE Spectrum December, 2008 - 13
IEEE Spectrum December, 2008 - 14
IEEE Spectrum December, 2008 - 15
IEEE Spectrum December, 2008 - 16
IEEE Spectrum December, 2008 - 17
IEEE Spectrum December, 2008 - 18
IEEE Spectrum December, 2008 - 19
IEEE Spectrum December, 2008 - 20
IEEE Spectrum December, 2008 - 21
IEEE Spectrum December, 2008 - 22
IEEE Spectrum December, 2008 - 23
IEEE Spectrum December, 2008 - 24
IEEE Spectrum December, 2008 - 25
IEEE Spectrum December, 2008 - 26
IEEE Spectrum December, 2008 - 27
IEEE Spectrum December, 2008 - 28
IEEE Spectrum December, 2008 - 29
IEEE Spectrum December, 2008 - 30
IEEE Spectrum December, 2008 - 31
IEEE Spectrum December, 2008 - 32
IEEE Spectrum December, 2008 - 33
IEEE Spectrum December, 2008 - 34
IEEE Spectrum December, 2008 - 35
IEEE Spectrum December, 2008 - 36
IEEE Spectrum December, 2008 - 37
IEEE Spectrum December, 2008 - 38
IEEE Spectrum December, 2008 - 39
IEEE Spectrum December, 2008 - 40
IEEE Spectrum December, 2008 - 41
IEEE Spectrum December, 2008 - 42
IEEE Spectrum December, 2008 - 43
IEEE Spectrum December, 2008 - 44
IEEE Spectrum December, 2008 - 45
IEEE Spectrum December, 2008 - Cover3
IEEE Spectrum December, 2008 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1017
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0917
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0817
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0717
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0617
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0517
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0417
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0317
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0217
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0117
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1016
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0916
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0816
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0716
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0616
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0516
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0416
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0316
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0216
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0116
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1015
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0915
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0815
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0715
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0615
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0515
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0415
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0315
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0215
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0115
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1014
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0914
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0814
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0714
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0614
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0514
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0414
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0314
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0214
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0114
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1013
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0913
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0813
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0713
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0613
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0513
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0413
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0313
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0213
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0113
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1012
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0912
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0812
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0712
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0612
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0512
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0412
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0312
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0212
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0112
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1011
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0911
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0811
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0711
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0611
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0511
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0411
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0311
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0211
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0111
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1010
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0910
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0810
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0710
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0610
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0510
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0410
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0310
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0210
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0110
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1009
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0909
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0809
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0709
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0609
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0509
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0409
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0309
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0209
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0109
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1008
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0908
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0808
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0708
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0608
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0508
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0408
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0308
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0208
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0108
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1107
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_1007
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0907
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0807
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0707
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0607
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0507
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0407
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0307
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0207
https://www.nxtbook.com/nxtbooks/ieee/spectrum_na_0107
https://www.nxtbookmedia.com