How to Implement Network Non-Neutrality

By Jeff Silverman

I wrote this essay to explain what Network Neutrality is. I describe how the network is supposed to work. Then some ways to cheat are exposed. Finally, there is a plea for the carriers to Do The Right Thing.

When you make a connection from the browser on your computer to some other computer on the web, you use a protocol called HTTP, the Hypertext Transfer Protocol. HTTP defines how the browser starts a connection and how the remote computer responds to that connection request. HTTP, in turn, uses ransmission Control Protocol, TCP. TCP makes sure that your connection works reliably, by breaking the transmission into packets of data and reassembling them, in order, at the other end. TCP, in turn, uses Internet Protocol, IP. IP is responsible for routing packets across the network.

How do the packets “know” where they are supposed to go? The answer is, they don't. There are computers in the middle of the network, called “routers”; they switch the packets from network to network (that's why it's called the “internet protocol”: it's a combination of lots of networks). The routers exchange information with one another and figure out how to route the packets the most efficient way. That's how the internet is supposed to work.

Now, “most efficient” is a dynamic thing. Networks fail, or they get congested. Some networks are faster than others. Different kinds of traffic have different requirements: streaming video needs to move a lot of bits really fast, but delays in that stream are okay because the client has a buffer that smooths out the flow of information. So streaming video can travel via satellite. Electronic mail can go very slowly because if a mail message is delayed a few seconds, nobody knows. So E-mail is slipped in between the other packets when there are idle moments. Surfing is somewhat in the middle, neither really fast nor really slow. So surfing packets travel over land. The routers try to take all of these demands into consideration as they make their routing decisions.

How do the routers know where to route packets? The routers exchange information using a protocol called Open Shortest Path First, or OSPF. This protocol works reasonably well at keeping the routers working. The result of OSPF is a table in the memory of the router, which is called “the routing table”.

But, what if somebody cheated and modified the routing tables for their own selfish ends? That would not necessarily wreck the internet, but it might make it less efficient. There are all sorts of subtle things that could be done that would be very hard to detect.

Why would a carrier cheat? For money, obviously. If a carrier is running a website and it derives revenue from that site, then it will profit if people go to its own site instead of a competitor's site. So, for example, suppose AT&T™, which runs part of the internet, has a search engine which competes with Google™, which does not run any part of the internet. Yet. AT&T could detect packets destined for Google and misroute them. People who use Google would decide that Google was slow, and start using AT&T's search engine instead. AT&T would get the revenue instead of Google, thus giving AT&T a competitive advantage. I am not suggesting that AT&T would actually do such a thing, but they have the power to do so.

The carriers tell us that the cost of running the internet exceeds the revenue they receive from the individual Internet Service Providers, ISPs. That might or might not be true. If it is true, then the carriers could raise their rates for carrying traffic. The reason why they don't do that is because the internet is a competitive marketplace. Competition is a good thing for the customers of the competitors, not such a good thing for the competitors themselves. Nobody who provides a service really wants competition. Oh, they frequently say they do, but if they were really serious about that, then their investors would flee, because competition eats into profit and profit is what drives investors.

Right now, the internet is a world of “polite competition”, where the competitors cooperate with one another. For example, there are 25 ISPs in the Westin building and they comnpete with one another but they also cooperate using the Seattle Internet Exchange, the SIX. The SIX was relatively cheap to build, because the cable runs from the top to the bottom of a single building and yet is connected to by dozens of ISPs. Everybody on the SIX contributes to the cost of its care and feeding, and its existence saves a lot of traffic going over the rest of the country. The same business practice applies to conventional telephones: Qwest customers have no problem calling customers of T-mobile. This model is the way a network ought to work.

Until now, all of the players engaged in “polite competition”, because everybody recognized that it was The Right Thing To Do. Apparently, the recognition is no longer universal, so we have to mandate it into law. As a network expert, more or less, I think I could build a system which would recognize when the carriers were playing dirty pool. Such a system would have to run within the existing internet and it would require thousands of measurement points, communicating with one another using encrypted protocols. This would be a cybernetic pain in the ass. I'm cynical: we'll probably have to build it. And guess who's going to pay for it?