Updated 8:00 PM The discussion on Comcast actively resetting BitTorrent connections to manage its network for its cable broadband service has gotten hot in recent weeks and there hasn't been a whole lot of accurate reporting on the subject because of the complexity of the issue. The subject of Net Neutrality has once again surfaced with Comcast's actions being the latest rallying cry of Internet "discrimination". This isn't the first time an ISP was used as an example of Internet discrimination, extremists concocted a story that Cox was blocking Craigslist when the problem was arguably Craigslist own making all along.
Much like the debate on Net Neutrality, I sat on the sidelines for a while to get a handle on the situation. I had mixed feelings on the issue and I didn't jump in until I saw the debate get out of hand with outright nonsense. Since June of 2006 I've written a series of articles on the issue of Net Neutrality culminating in "A rational debate on Net Neutrality" which I can proudly say got a lot of linking from reasonable proponents on both sides of the issue. Now that extremist groups like SaveTheInternet.com is lobbying the FCC to stop Comcast's network management practices without fully understanding what they are asking for, I'm going to try and start a rational debate on the issue.
I will start by summarizing the Comcast situation and how it all started. Comcast was found to be actively resetting TCP connections on BitTorrent peer-to-peer file trading connections by forging TCP reset packets that appear to be coming from the BitTorrent peers. When most of us hear the term "forged TCP reset packets", it sounds like Comcast has crossed the line of reasonable network management Comcast is guilty of application discrimination. So when word of this got out, all hell broke loose and the knifes were out for Comcast's blood.
The Free Press has gone as far as demanding an FCC enjoinment before the merits are even decided and they are demanding fines of $195,000 per infraction which would amount to $2.3 TRILLION dollars if we only counted Comcast customers.
The FCC should act immediately to enjoin Comcast’s secret discrimination and, even before deciding the merits, issue a temporary injunction requiring Comcast to stop degrading any applications. Upon deciding the merits, the Commission should issue a permanent injunction ending Comcast’s discrimination. The Commission should also impose the maximum forfeitures to deter Comcast and other network providers and to ensure society is fully compensated for the harms imposed by Internet discrimination.
I have to admit that when I first heard about the issue, I too thought Comcast crossed the line of reasonable network management in to abusive behavior but after speaking to Richard Bennett who had a hand in creating some of the technology used to build the Internet, I'm not so certain that my initial assessment was correct.
Web hogs plus shared cable equals network meltdownI consider myself somewhat knowledgeable on networking technology since I was an IT consultant who designed and built switching and routing infrastructure for clients, but I'm certainly no match for Richard Bennett. So when I argued with Richard on why Comcast had gone too far, Richard explained that my arguments didn't apply to a shared medium network. The type of networks that I designed and deployed in the last 6 years were all switched and routed networks and I had the luxury of dedicated 100-megabit or gigabit interconnects between each user and the switch. With switches being ubiquitous within the last 6 years, I had almost forgotten about the bad old days of hub topology where every device shared a single physical connection with a single collision domain where data collided if too many end points transmitted data at once.
There is no advanced queuing capability on a shared cable medium (contention traffic is dropped, not queued) and whenever there was excessive traffic, you had a situation of degraded aggregate performance and everyone suffered. If the traffic went past a certain point of critical mass, the problems amplified and we use to call those broadcast storms where the network basically melted down and you pretty much couldn't transmit anything. Comcast is a cable broadband company and cable broadband is fundamentally a shared medium network where cable customers in the same neighborhood share a single network connection. As a matter of fact, SBC (currently AT&T) use to lambaste their Cable broadband competitors with the jargon "Web hog" in the following hilarious video commercial that most people probably remember.
Since this is obviously something Comcast would rather not talk about, it probably explains why Comcast hasn't been more forthcoming. I should note that Cable isn't nearly as bad as the kind of experiences I've had with AT&T DSL service.
Comcast doesn't actually block BitTorrent usage and several people I know have no issues getting BitTorrent to work with legal or illegal copyrighted content. What Comcast does is actively reduce the dozens of simultaneous BitTorrent upload connections that a user can have. As Richard Bennett explained it to me, this is content- and viewpoint-neutral and it isn't "content-based discrimination" as so many make it out to be. In fact the more I examine this issue, the more it looks like reasonable network management to me.
We can think of it as a freeway onramp that has lights on it to rate limit the number of cars that may enter a freeway. Those lights aren't there to say people of a certain race can pass through or people of a certain race must wait longer in line; everyone must wait their turn. If you didn't have the lights and everyone tries to pile on to the freeway at the same time, everyone ends up with worse traffic. Comcast doesn't block you from using BitTorrent, it simply limits the number of simultaneous uploads you can perform at once.
How cable modems workRichard Bennett explained to me that cable modems have to send an RTS (Request To Send) anytime it wants to transmit data. When two or more cable modems happen to send an RTS at the same time and collide, the RTS is dropped and then no one gets to transmit anything. The problem actually compounds since the more collisions there are the more send requests pile up on the cable modems throughout the network which increases the chances of even more RTS collisions. The only way to stop this problem get the users to reduce the number of transmissions and there simply is no other mechanism that can manage this type of a network other than forcing overly aggressive clients to reduce the number of simultaneous connections with forged TCP reset packets.
Richard Bennett: Cable modems have a crappy upstream protocol. When it wants to send, it sends a request to send packet to the controller, and waits for a reply that gives it a time slot. But the RTS packet is sent in a contention slot, such that any two stations sending RTS in the same cycle will collide, and then nobody gets to transmit. The more data you have queued at the cable modem, the more likely a collision.
The network is physically large, with a long propagation delay relative to the size of the collision window. And when collisions start to happen, they ripple as more and more stations have data queued for transmission. So the only way to make this protocol stable is to actively limit the amount of data queued at the cable modem for upstream delivery, and only way to do that for Torrent is to stifle connections at the TCP level. I've tried to scheme up a better way to do this, and there isn't one.
Simply put, there is no queue for you to prioritize in the first place on a cable broadand network.This isn't the prettiest solution in the world but there is nothing pretty about a shared collision domain network topology and there aren't any other solutions other than active network management. Conventional QoS (Quality of Service) priority queuing works on a router which comprises most of the Internet but it has no effect on a shared last-mile collision domain network where packets are simply discarded if they collide. Simply put, there is no queue for you to prioritize in the first place. Actively managing the number of simultaneous uploads cable broadband BitTorrent users improves performance for everyone and every application including BitTorrent. In fact a well known trick among advanced BitTorrent users is to limit the number of simultaneous connections to optimize and increase performance but Comcast is doing this at the cable network level to optimize and increase everyone's performance.
The Free Press is demanding that Comcast implement mechanisms that simply don't exist.
Free Press: More importantly, if Comcast is concerned that the collective set of users running P2P applications are affecting quality of service for other users on a cable loop, they could readily set dynamic quotas for each user on the loop, so as to ensure that there is always bandwidth available for users who are not running P2P applications – and they could do so without interfering in protocol choice. Or they could also charge by usage, provide more bandwidth to all users, or actually offer high symmetric broadband speeds.
The fact that Free Press would suggest that network carriers "charge by usage" (metered Internet) goes against every principle of the InternetOf course it would be nice if there were a dynamic network management protocol built in to the cable modems that actively manage traffic without the use of ugly TCP reset to manage excessive traffic, but such a mechanism doesn't exist and the Free Press is being ignorant about reality. Not only are they reckless for demanding the FCC shut down the current traffic management system, their proposed solutions simply have no effect on the RTS collision problem and their solution harms the consumer. The fact that Free Press would suggest that network carriers "charge by usage" goes against every principle of the Internet and it would actually put a big fat smile on network carrier executives. I can't believe that true consumer advocate groups haven't picked up on this since it would greatly harm the Internet and the consumer.
BitTorrent is by far the largest consumer of bandwidth and a single BitTorrent user is capable of generating hundreds of times more network load than conventional applications. Throttling the number of BitTorrent connections or any application that has similarly aggressive characteristics is critical to keeping the network healthy with reasonable round-trip response times. That means a better gaming and VoIP (Voice over Internet Protocol) experience since they are both highly sensitive to network latency despite the fact that they are low-bandwidth. If the Net Neutrality extremists get their way and get the Government to ban active network management, cable broadband customers will suffer and those web hog TV commercials might just come true.
Update 11/8/2007 - Speaking of rational debates, here's a great discussion on this Comcast issue.