Tuesday, December 21, 2010

net neutrality

I have been following the debate on "net neutrality" since it surfaced a couple of years ago.  It is heating up now because the FCC seems about to issue some regulations on this subject.  So far I have yet to find anyone who knows what they are talking about.  This is one of those classic situations where lots of people think they know what they are talking about but they don't.

First, everyone knows what "net neutrality" is, right?  The idea is a simple one.  There are bytes.  They travel across the Internet.  All bytes are equal.  Specifically, some bytes are not given preferential treatment so that they are delivered before other, less privileged, bytes.  That's what most people think when they think "net neutrality".  And the problem is that a lot of people who are technically knowledgeable or have a business interest have a different definition.  The definition varies with the actor but it's not "all bytes are equal".  So if you are trying to follow the discussion carefully and an "expert" starts spouting, make sure he is means "all bytes are equal" when he says "net neutrality".  If he's one of the ones using some other definition you might have to "translate" the rest of his remarks.  He's probably just obscuring the fact that he's really saying "my company/group want's to pretend it's for net neutrality when it's not".

The second problem is not political.  It's fundamental.  Most people think we currently have net neutrality, as defined above.  They are wrong.  Right now the net is fundamentally NOT neutral.  It really has never been neutral.  Back in the day when the Federal government ran ARPANET, NSFNET, and the other networks that eventually became the Internet there was some discrimination.  But it was an accident of how the Internet came to be and of various decisions that were made as the net evolved.  In short, it was a side effect of what was going on.  And there was no systematic plan to discriminate for or against certain traffic.  Things just worked out that way.  Since the Internet has become a commercial enterprise this accidental discrimination has been replaced by wilful discrimination.  The Internet discriminates in favor of some traffic at the expense of other traffic as a fundamental matter of how it now works.  Understanding why this is so is simply a matter of adhering to that old tried and true saw, "follow the money".

Where does the money come from that funds the Internet?  It comes from two sources.  First there are fees paid by ISPs.  I get my Internet connection through Comcast.  Part of the monthly fee I pay to Comcast gets sent on my behalf by Comcast to various Internet "long haul providers".  These are the people who provide the connections between cities and countries.  The original long haul provider was AT&T.  The Federal government contracted with AT&T to provide the long distance connections between sites for the original ARPANET.  As the early net grew the new entities contracted with AT&T for various links.  And other players like MCI got into the business.  When the various Federally funded networks were flipped over to private hands AT&T did various deals with various organizations using the government network to continue to provide the same service for a fee.  MCI and the other players did similar deals.  These early deals have continued to set the pattern.  Since then things have gotten a lot more complicated and there are many more players but the pattern has held.  ISPs by subsidizing other players provided the money that funds the Internet.  But the additional complexity opened the door for another funding source.

Say you're Amazon.  You want to make sure people connecting to your web site get quick response.  Now you could depend on the deals done by ISPs like Comcast do with long haul providers like AT&T but this puts you at the mercy of a bunch of players you don't control.  So if you are smart you do a deal like the ISP players do with the long haul providers.  A long haul provider like Level 3 has a fast nationwide network.  They will agree to provide fast service for your traffic for a fee.  They have local hookups into the Internet at lots of locations like New York City.  Level 3 sets things up so that traffic originating in NYC going to an  Amazon server located in Seattle is pulled off the Internet after traveling only a short distance in NYC.  This traffic is put on the high speed Level 3 network and goes across the country to Seattle.  There it is dumped onto the local Internet for delivery to the Amazon server.  The result is that the NYC customer gets lightning fast response even though he is accessing a server way across the country.  For a company like Amazon there are sound business reasons for signing up for preferential service from long haul providers like Level 3 so they do.  Companies willing and able to pay for premium service represent a second revenue stream.

Now I don't know if Amazon has a deal with Level 3.  I used Amazon and Level 3 in my example just to make it easier for people to understand what's possible.  But companies like Amazon, Microsoft, Apple, Google, and others have made companies like Level 3 that can deliver premium service very profitable.  And the services these companies are paying for and getting result in an Internet that is very much NOT neutral.

And, like a lot of things, the real situation is actually a lot more complicated.  There are lots of ways to provide preferential treatment.  Google, for instance, has not one but many data centers.  It makes sense that my Google request should be serviced by a different data center than someone else's.  And it makes sense to use a sophisticated strategy that depends on distance, data center load, and other factors to pick the data center that gets my request.  And there is a service for that.  It is provided by a company called Akami - "The leader in Web Application Acceleration and Performance".  It goes without saying that if your company has not signed up with Akami the "Acceleration and Performance" of your web site will be not as good.  Your bytes will be treated as second class bytes.

Akami is well known for providing these kinds of services.  Akami is not alone in providing "preferential treatment".  F5 takes a different approach but the result is the same.  Your F5 enhanced site will perform better than the other guy's.  There are lots of other companies, many that I've never even heard of, coming at the problem in lots of ways, ways that I would not even think of.

But even if we ignore the "preferential treatment" provided by Akami, F5, and others, and just focus on the problem of moving bytes from point A to point B, all bytes are still not treated equally.  It took me several years to figure out a basic attribute of the Internet, namely what specific path a set of bytes going  from point A to point B will take.  Say point A is NYC and point B is Seattle (to stick with something similar to the example I used above).  Most people assume that  "all bytes are equal" and that some random path is chosen, perhaps the one that looks like the best path at the moment.  It turns out that the Internet doesn't work that way.  If a message, a "packet" in Internet speak, is going from your PC in NYC to a web server in Seattle it always takes the same path.  And that path is determined solely by business considerations.

Begin tech content
(You can skip to "End tech content" without missing anything important if you trust me on what I just said).

A message as it transits the Internet spends most of its life going from router to router.  Your PC is connected to a router.  The server on the other end is connected to a router.  Pretty much everything in between is routers.  A router is a connection device.  It works something like freeway interchange.  A freeway interchange connects roads while a router connects network wiring.  The business of figuring out how to get from one place to another on the Internet is done by routers.  And these decisions are determined by "routing tables".  Navigating on a trip from NYC to Seattle on the Interstate Highway System can be thought of as selecting the right "on" ramps and "off" ramps to get to the right roads that connect NYC to Seattle.  The rest of the time you just follow the road you are on.  The only time you have to make a decision is when you get to an interchange.  On the Internet the only time a decision needs to be made about where a message should be sent next is when it is being handled by a router.  On our road trip the driver would make the decisions about which ramp to take, possibly by consulting an AAA map and road signs.  On the Internet routers consult routing tables.  A driver can chose to ignore the map and signs.  Routers can't chose to ignore the routing tables.

Hidden away in nondescript buildings across the country are facilities called  IXPs, Internet Exchange Points. IXPs are the highway interchanges of the Internet.  The way a message gets from NYC to Seattle is that the local ISP in NYC sends it to a local IXP.  The IXP contains routers from other ISPs and from long haul providers.  So the message could be sent to any one of the other routers connected at the IXP.  And there are probably several long haul providers connected to the IXP that could get the message to Seattle.  Once we pick a long haul provider by sending the message to a specific router then the bytes will be sent via that long haul provider to an IXP that is closer to Seattle.  After transiting more IXPs the bytes will eventually end up at an IXP in Seattle that is connected to the ISP that handles Amazon.  Each of the routers, the router operated by the ISP in NYC, the routers at each of the IXPs, and the router at the ISP in Seattle, has a routing table.  There is nothing random or "neutral" about these routing tables.  Together they specify the exact route your message will take as it crosses the country.  So how are the contents of these routing tables determined?

The answer is that all the parties have done business deals with all the other parties.  There are layers and layers to these deals.  But the bottom line is that the routing tables are set up so that the bytes take the path that is specified by the appropriate deals.  Your NYC ISP might have done a deal with AT&T.  So AT&T will carry the message on its local routers in NYC to a specific IXP.  If Amazon has done a deal with Level 3 then AT&T is going to send the message to a Level 3 to router at that NYC IXP.  Then Level 3 will figure out internally which of its routers to use to get the message through Level 3 routers at the various IXPs to eventually get it to an IXP in Seattle.  Then say Amazon uses Qwest as its ISP.  Then the Qwest/Amazon (and perhaps Level 3) deal will cause Level 3 to route the message to a Qwest router.  Then Qwest will get the message to the Amazon server.  The routing tables implement the deals between the various parties.  Speed or congestion or anything else does not enter into the process for building the routing tables.

You can see how this works if you have a Microsoft PC.  (I think this works on Macs too but I am not a Mac person).  On a PC you need to know how to open a "Command Prompt" window.  Once there you want to use a command called "tracert".  TRACERT is a standard Internet command so you can do a web search to find out more about it.  And TRACERT is a little cranky and will often appear to be hung up.  That's because TRACERT tries a lot of things that fail.  It has to wait for processes to time out before it knows that something has failed and it's time to try something else.  I will ignore the details and just stick to the basics.

If you run say "tracert www.mit.edu" (for the Massachusetts Institute of Technology) the command will show you all the routers the message goes through to the MIT server.  It will show you the name of most of the routers along the way.  From the name you can usually figure out who owns the router.  When I send a message to an MIT server it needs to go from where I am on the West Coast to the MIT campus on the East Coast.  When I issue this command it turns out that the cross country part of the trip is handled by Level 3.  Now if I enter "tracert www.bc.edu" (for Boston College) it turns out that the cross country part of the trip is handled by a company called "cogentco" (Cogent Communications).  Now my PC doesn't move between commands and MIT and Boston College are only separated by a few miles.  What's going on?  The MIT message always goes through the same path using Level 3 and the BC message always goes through the same path using COGENTCO.  Well, whatever ISP MIT uses has a deal with Level 3 and whatever ISP BC uses has a deal with COGENTCO.  Which path is faster?  It doesn't matter.  The web of deals specify the route.  Which route might be faster or less congested or whatever are not part of the calculation.

BTW, you may be wondering why I didn't use Harvard University as my second example.  When I tried "tracert www.harvard.edu".  I found out that Harvard also uses Level 3 for long haul but the path is different than the one for MIT.  Why?  Because the Harvard servers are located in Washington DC.  Who knew?

end tech content

So what's the prospects for net neutrality?  Be afraid!  Be very afraid!  All of the pundit types talking about this that I am familiar with don't know what they are talking about.  And I think they know more about this than the politicians and bureaucrats.  So there is exactly no chance the politicians and bureaucrats will get it right.  And the chances of improving the current mess are extremely small. Unfortunately, the best we can hope for is that they will only make it a little worse than it already is.  And we don't even have the "do nothing" option to fall back on.  There's money in that there Internet.  And the companies attached to the money have lobbyist in DC and lawyers to make deals with each other.  They actually know what's going on.  Left to their own devices they will make things much worse in pursuit of higher profits.
 

No comments:

Post a Comment