I’m a director of BitTorrent Inc. (though not speaking for it) and so the recent debate about P2P applications and ISPs has been interesting to me. Comcast has tried to block off BitTorrent traffic by detecting it and severing certain P2P connections by forging TCP reset packets. Some want net neutrality legislation to stop such nasty activity, others want to embrace it. Brett Glass, who runs a wireless ISP, has become a vocal public opponent of P2P.
Some base their opposition on the fact that since BitTorrent is the best software for publishing large files, it does get used by copyright infringers a fair bit. But some just don’t like the concept at all. Let’s examine the issues.
A broadband connection consists of an upstream and downstream section. In the beginning, this was always symmetric, you had the same capacity up as down. Even today, big customers like universities and companies buy things like T-1 lines that give 1.5 megabits in each direction. ISPs almost always buy equal sized pipes to and from their peers.
With aDSL, the single phone wire is multiplexed so that you get much less upstream than downstream. A common circuit will give 1.5mbps down and say 256kb up — a 6 to 1 ratio. Because cable systems weren’t designed for 2 way data, they have it worse. They can give a lot down, but they share the upstream over a large block of customers under the existing DOCSIS system. They also will offer upstream on near the 6 to 1 ratio but unlike the DSL companies, there isn’t a fixed line there.
On ethernet there is no up and downstream, and the same is true on wireless internet, where all the people in the same radio zone and channel share a fixed amount of capacity. If I’m transmitting up you can’t be transmitting down at the same time to the same radio.
Your broadband link then goes into the ISP’s internal network. This network usually has lots of capacity, though it is all shared. Inside a server farm or DSLAM, there is gigabits of capacity.
This 6 to 1 ratio is tolerable because for most customers, most of the time, they like downstream and don’t use much upstream. Web surfing, receiving E-mail, downloads — these all use mostly downstream. Web hosting, uploads, sending E-mail and VoIP and P2P will use your upstream. Most people do a lot more of the former, so they are happy with aDSL and the like.
Bittorrent was clever. It realized that even with the limited upstream, most people don’t even use what they have. So BitTorrent forms a swarm of people downloading a file, and each downloader offers pieces of the file to others, using the upstream capacity they are otherwise not using at all. It’s a trade — I offer you some of my (otherwise unused) upstream and send you bits of the file, and you offer the same thing to me. At least in the DSL case, everybody wins. The original publisher of the file wins most of all, which means even a small publisher without a big server farm can serve up big files like videos and linux distributions. Otherwise they would have to buy a lot of serving capacity to do that well.
Let’s examine a simple case. Imagine ubuntu.com has a new linux distribution of size 1GB. Further imagine that two customers of AT&T DSL, Alice and Bob, both want to download it at the same time. In a traditional system, both users would fetch 1GB from ubuntu.com. It would send out 2GB, and the ISP would take in 2GB, and then it would send 1GB along Alice’s downstream and 1GB along Bob’s. 2GB would also move over the ISP’s internal network.
Now examine the BitTorrent case. Ubuntu.com sends 500MB to Alice and 500MB to Bob, so it only uses 1GB, not 2GB of outbound capacity. The ISP also only uses 1GB, not 2GB of inbound capacity — a huge win for both the ISP and Ubuntu so far. Alice uses 500mb of otherwise unused and wasted upstream capacity to send to Bob, and Bob does the reverse. So both Alice and Bob receive 1GB but now they each send out 500mb on their upstream. We still see 2GB gone on the ISP internal network, though it’s possible it goes over more links due to topology. It may go over fewer.
In the DSL case where the upstream channel is always present, this is a huge win. If it’s not used, it is just wasted. Alice send up 500mb, but in exchange she didn’t bring in 500mb from the outside world. For most ISPs, that’s a big win. And if the file is very popular, so that it has 10 downloaders, the savings are vast. 10 to 1 for ubuntu and the ISP’s incoming pipe, while the peers use more of their upstream, up to the point were they use, on average, almost a full GB of upstream each.
A wireless ISP is different. Because the total bandwidth there is fixed, they will see 3GB of data on their wireless net instead of 2GB, but they still save 1GB on the incoming pipe. But they may feel their wireless capacity is more expensive than their incoming pipe capacity. (If they had a wireless network that truly allowed peer to peer connections, they might get the savings but many WISPs will bring the traffic between customers into their central network and send it back out because of the way they use NAT.)
A Cable ISP is in the middle. They also save on the incoming bandwidth like the others. The poor design of their networks doesn’t mean the upstream takes capacity from the downstream, but their upstream is shared in pools, and high use of it reduces the upstream available to others. Again, it’s a trade-off of which is more expensive to have.
This has become an issue because almost all ISPs offer “unlimited” service. They know they can’t actually sell unlimited service to everybody. They bank on some users being above average and some being below, and giving them all the impression of unlimited service. This is called overselling, and it’s common in many fields, ranging from plane flights to all-you-can-eat buffets and lots of other arenas.
But because they know this, they see an incentive in trying to push away or punish those above average users, particularly above average upstream users on cable and wireless ISPs. If they can get rid of those high bandwidth users, their average drops and the number of times they can oversell their capacity goes up, and thus so does the bottom line.
When there are peers outside the ISP, we don’t get the same savings. It’s mostly a wash, though for many ISPs the upstream is available to make this work. While the clients connect at random, the inherently better connection between neighbours causes the P2P protocols to favour sending data locally. There has been much talk of making this more formal.
There is another solution to making big file distribution more efficient, which is a local cache. In this case, the local cache receives that 1GB file from Ubuntu.com and feeds it to the two users. This is also a very nice win for all ISPs, as almost no upstream capacity is used. For this reason many ISPs do run invisible “proxy” caches for HTTP downloads, and several big “CDN” companies such as Akamai sell cache services where they pre-store large files on servers at ISPs for their clients.
This is an excellent thing to do, but it does have a few flaws:
- ISPs must install and pay for these cache servers. P2P simply uses the otherwise wasted capacity of downloader’s computers.
- CDN cache services are only available to the customers of the CDN companies, who pay handsomely for it
- Caches only can cache protocols they know about. They require intelligence in the center of the network, while P2P systems put the smarts in end user computers. A proxy cache can’t cache encrypted downloads, or anything new that they haven’t planned and programmed for.
The latter point is the most interesting. The internet is so innovative because of its end-to-end nature. By putting the smarts at the endpoints, interesting new systems (BitTorrent being just one example) can spring up overnight.
It is interesting to note that ISPs that wish to detect Bittorrent could also create a cache for it, which effectively joins all BitTorrent swarms which are popular with ISP users, and pushes itself in as a very helpful peer, so that all the users peer with it and get most of their data from it. Of course, as some authors of Bittorent clients move to encrypt their traffic to stop ISPs interfering negatively, such positive proxying will become no longer possible.
Whose bandwidth is it?
We’ll often see ISPs rail against P2P because it is using “their bandwidth” to benefit a “third party” such as Ubuntu.com, the publisher of the big file in my examples. They allege they are being cheated.
But whose bandwidth is it? There is a compelling argument that the ISP has sold that bandwidth to the customer. How much have they sold? Well, in an unlimited plan, “as much as you want.”
What the P2P users do with their bandwidth is trade it. Every packet on the internet involves a source using their upstream bandwidth to get the packet to a midpoint, and the target using their downstream bandwidth to get it from the midpoint to them. In P2P, the two peers are making a deal — you feed me some of the file, and I’ll feed you a roughly equal amount. The alternative would be to ask the original publisher to feed those bits of file, which is why some ISPs confuse this with helping a third party. In fact, the two peers are helping each other.
That’s because in these cases, the file publisher is not offering that much capacity to begin with. Like ubuntu.com, they are usually not being paid, and in the cases where they are being paid, the payment is for the file, not for enough bandwidth for everybody. So the peers trade some of their unused upstream to other peers for some of the same.
Unfortunately, we have ISPs who say “we didn’t really want to sell you all that upstream, particularly for you to trade it with other people.” But that’s not what they say in their offers, which presents a problem for them.
The more honest ISPs disclose their limits, or with good warning charge you for use above them. They don’t call their service unlimited and thus don’t so overtly oversell. For them P2P should not be a burden but a source of more sales.
Now I have to admit, I do like the overselling in a way. I think paying a flat rate for bandwidth is part of what made the internet great. If ISPs really find they have to have caps or surcharges for very high usage, I hope they still provide 99% of users with flat rate service. For it is flat rate service which allows all this experimentation, the very thing that brought about useful tools like BitTorrent.