The U.S. Federal Communications Committee (FCC) yesterday lost a U.S. Appeals Court case involving the regulation of Internet Security Providers (ISPs.) For those unfamiliar with U.S. bureaucracy, the FCC is the regulatory authority for all things telecommunication in the U.S., including the Internet. This particular suit was brought by Verizon and challenged the FCC authority to regulate ISPs; requiring them to treat all traffic equally on their portion of the Internet (their network in other words.) The FCC generally sees "equal" as allowing all traffic on the Internet to flow without hindrance or modification. That's my interpretation. The legal definition is somewhat more involved. Suffice it to say, Verizon challenged the FFCs authority to legally make such regulations and won.
That's the summary. The reaction was immediate and initially very lopsided toward those who feel this was a bad decision that endangers the Internet. The reason I bring this up on this blog is easy to explain. As an avid online gamer, I depend on my Internet connection to deliver the speed I need to play the games I love. If you are reading this, I wager you do to. I'll also wager that many of you are part of the "Save the Internet" ilk as well. Do you actually know what you are talking about? I mean that literally, not as some snide remark couched as a question. Do you know what the Internet is, how it works and what has to happen every second for your game to work properly?
[caption id="attachment_1429" align="alignright" width="800"] OSI Model[/caption]
I'm sure many of you know something about packets, and routing and protocols. However, only a few of you probably know about the layers known as the network stack, more formally called the Open Systems Interconnection (OSI) model. There's a simplified diagram of the OSI model on which the Internet is based to the right of this paragraph. You can't miss it. Now, this picture represents the OSI model from the network engineer's perspective. Let's look at it from your perspective.
Gamers play at the top most level of this architecture. We use programs that tie into the applications level: EVE Online or League of Legends or [insert your favorite online game here.] All the other Internet consumers also live at this top level. All the Facebook users, all the bloggers, all the Netflix watchers - all of them. We are all competing for a share of a single thing we call the Internet. And you know what? There is nothing neutral about it, something I'll try and convince you about in a moment. For now I need to address the other layers of the OSI model as they relate to you.
The next two layers, presentation and session, are within the purview of programmers for the most part. Many others get involved, but typically they work for companies like Riot and CCP and Google and any other company trying to make a dime from software or services.
The fourth level is where the thing we typically think of as the Internet starts. This is where the transport protocols live that get our data from place to place. When you hear the term packet used to describe Internet data, this is the point where the packed is fully encapsulated, addressed and sent on it's way ( that's very simplified BTW; there are exceptions.) This is also the layer where ISPs want to not treat all traffic equally.
They can do this by manipulating the next two layers. The network layer is what we all think about as the Internet physically. It's all the routers and wiring needed to make the Internet a physical entity. It's the train station linking all the seperate tracks together allowing that change over to the Rock Island line. Layer 2, data link, is the oldest version of the hardware layer that we typically see as the Internet. It's what the Internet started out as. It's like the subway system in New York. It a train that can take you just about anywhere in New York you want to go, but you're never going to get to Hoboken on it.
The last layer, physical, is actually your PC's network adapter. Or any other network adapter for that matter, and it doesn't have to include a wire. It's the WiFi transceiver in your MiFi as well as the Verizon transceiver in the same device. It's the WiFi transceiver in your Kindle Fire HD and your iPhone. It's the connection you use to get to everything else. In summary, you sit at layer one, but you are most interested in layer seven. Clear as mud so far?
Now, keeping that in mind, it's easy to believe if every application was treated equally by the ISPs, then everyone would get equal Internet service. We'd get what we want, when we wanted it, every time. And that might even be true if you only had to be concerned about layers seven and one. But there are five other layers that we must consider to get equal Internet service. Let's have an example of good Internet service. How many of you have ever dealt with a hung program? How many of you have dealt with a runaway process? Sometimes hung programs are actually run away processes. It is so busy doing something in the background, the foreground user interface won't respond. What is it doing in the background that has it so busy? What if it were a web browser stuck in a loop continuously requesting a specific web page? In the course of a few seconds it could make thousands of requests to the remote web server for the same page. That would translate into tens of thousands (or more) data packets asking for an acknowledgement (ACK) from the remote server. Unfortunately, your program can't respond to the ACK the web server sends each time because it's a runaway, so it just keeps asking. What's a web server to do? Well, it just drops the session. The hung program is now something only you have to deal with. This has always been what web servers do. It makes sense. Why should one runaway process cause so much work for the server? There are many other Internet users trying to get access to the server. They all have to wait while the server sends ACK after ACK to the runaway. If we required absolute equal treatment of all requests, the server wouldn't be allowed to simply disconnect the problematic browser. If it had to maintain every such runaway connection, sooner or later the web server would succomb to a denial of service (DoS) type situation. No one would get access to the server. It would be too busy trying to send ACKs to runaways. That makes no sense whatsoever, so the established norm is for the server to just drop the runaway's session. There is nothing neutral about it.
Yet that is exactly what we want ISPs not to do at layers two through four. We ask them to treat every single packet of data alike. But every single packet of data is NOT alike. The packet used for the Simple Mail Transport Protocol (SMTP, what we use for email) is small and there are only a few sent per email as emails are mostly text, and in their most basic form uncomplicated. The Hypertext Transfer Protocol (HTTP, what we use for web pages) is by comparison a monster requiring many more individual packets to complete a single web page request. And both of those are dwarfed by the newer packet structures required to stream any form of video across the network we call the Internet. Not only are the packets more complex, but they are constant and, to the hardware that must handle the moving of these packets across the Internet, unending. They consume huge amounts of bandwidth. An SMTP transaction, a single email, uses less than a kilobyte of bandwidth to complete. A single high definition (HD) Netflix movie consumes a gigabyte of bandwidth per hour, or more! That's not just a magnitude of difference, it's over one million times more bandwidth than a single text email.
What happens if the Roku on the other end of that stream has a bad cable from the Comcast router to the Roku? What if packets are lost? By default the Roku asks for a resend. That's standard protocol. It continues to ask for resends just like the runaway process above kept asking for ACKs. Now we are right back on that road called DoS. With the current rules, the ISP would have no choice but to allow all those resends to be sent. What's the cost of that? My game, my mother's Facebook and my brother's email would all have to compete in that environment. They would lag terribly as the Roku consumed more and more of a quickly vanishing limited resource. That's right, the Internet does not have unlimited bandwidth boys and girls. Even with a fibre backbone, there is a limit on how much traffic it can carry. That's a fact of life ISPs have to content with every day. But right now, they are not allowed to do the sensible thing, which is to curtail bandwidth hogs so the more well behaved applications can work for the rest of us. You see, it's not about allowing applications to have equal and unfettered access to the Internet. That misses the whole point. It's about giving users of the Internet equal an unfettered access and that isn't Netflix people - it's you and me. If my Netflix stops your EVE Online from working properly and you get blown up, you will not feel like you got a "neutral" deal would you?
Personally I do watch movies over my Internet connection. I also used to use BitTorrent over a Comcast connection. I remember when Comcast started choking off BitTorrent streams. I noticed it, catalogued it and was not happy. I called and complained but of course got the, "we don't do that" lie. But eventually Comcast finished putting in place a Quality of Service (QoS) plan that could distinguish those who consumed over 90% of their limited bandwidth from those like me who don't. A funny thing happened then. I no longer needed to use BitTorrent to speed up my downloads because the bandwidth I got was suddenly sufficient to do it without BitTorrent. Get it? Today my Internet speeds have never been faster. I'm not saying that will be possible with streaming video, but right now streaming video is a problem for ISPs to handle while still providing good service for everything else we do on the Internet. Therefore I welcome this ruling, not because it kills streaming video or might increase the cost of my Amazon Prime account, but because it gives the FCC one more chance to get it right.
You see, the FCC doesn't really understand any of what I just told you. They look at the Internet like it was some sort of glorious telephone system. It isn't. Regulating it as such does none of us any good. We need smarter regulations that work with ISPs to determine how to provide the best service to all, while we make the entire Internet more capable. Those regulations can also be used to address our concerns that some might see this as an opportunity to make unfettered profit at everyone else's expense. And it should require those that use a resource to help bolster and improve a resource. I happen to believe companies like Netflix should share in the cost of developing the faster, broader and better Internet future we all want. Currently they do nothing to increase Internet capabilities, and when ISPs complain about how much bandwidth their applications use, Netflix throws the Internet Neutrality card down. But Netflix only cares about the upper three levels of the OSI model though there are four others to worry about. They use and abuse the lower levels and claim they have no responsibility to improve them. In actuality, their business would not exist without those layers. They owe everything to them. They should step up to the plate and be part of the solution, rather than pretend it's not them causing the problem. Admittedly the solution will cost a lot of money, but many wallets make for a smaller proration, and it's the price of doing business.