The term “network neutrality” is mentioned very often lately; also in the context of FCC ruling, such as here, and here. Since the definition of net neutrality is not always clear, this topic is not subject to as much public debate as it probably should. Here is my take of what network neutrality is, and why it is difficult to regulate and enforce. I will start with my proposed technical and service-related definition of “network neutrality", and will follow with a brief explanation of why this is both difficult and important.
Minimal technical background
The Internet, like any other computer network, is defined in terms of layers; these are the often-referenced “OSI Layers“. This division into layers is a logical (rather than physical) one; the data traversing the network is eventually one long series of bits – 0’s and 1’s. Such “layers” is how we address the representation of those many bits; their grouping into clusters of bits that have meaning. The different network layers are different levels of interpretation of this large set of bits moving along the wire. Understanding the same raw traffic at different layers allows us to bridge the semantic gap between a bunch of 0’s and 1’s and an e-mail being sent or to a web site being browsed. After all, all emails and browsing sessions end up as 0’s and 1’s on a wire. Processing those sequences of bits at different layers of abstraction is what makes the network as versatile as it is and technically manageable.
At Layer 1, called the “physical layer“, the bits are electronic signals on a wire (or air). At Layer 2, the “data link layer”, these same bits are grouped into objects, let us call them “frames“, that move from one network card to another one nearby (network-wise). Each such frame consists of bits of Layer 1, where some of the bits represent source and destination addresses of the source and destination network cards, some bits carry other information, and the rest of the bits in the frame are the “payload”, that is, the actual content that is being transferred.
Climbing up further, Layer 3 is the “Network Layer“. This layer speaks of “packets” that are information packages going from network point A to network point B (no longer just between network cards, but between globally networked locations which may be far apart.) Such a packet consists of a few bits representing a source Layer 3 address, a few bits representing the destination Layer 3 address, some more bits representing other routing information, and of course, the packet “payload”, which is the data itself that is being transferred. For a Layer 3 packet to be sent, it is conveyed as the payload of a Layer 2 frame, which is conveyed as Layer 1 physical bits.
This is an overly simplistic description of network layers. Reality is more complex, as it usually is. The Internet we use is described by no less than seven layers, one on top of the other, starting with Layer 1 which is the wire passing raw bits, ending with the “Application Layer", Layer 7, which is the representation of the data as it is generated by the applications using the Internet, such as Outlook or Firefox.
The same long series of bits that go from point A to point B is interpreted at multiple layers (levels), each layer introducing a new logical structure of data and using the underlying layer to carry it around. This layering does not only serve for easier understanding of what each bit on the wire is, but it is also what allows the network to be versatile and to support so many uses over the same infrastructure. Each network component (i.e., equipment or software) handles traffic at a certain layer and needs not be aware of any higher-layer meaning of the data it processes, or of the lower layer medium that is used to carry those bits around. For example, the Layer 1 wire carrying bits is only responsible for moving bits from point A to point B on that wire. It needs not care if those bits represent an e-mail to Guatemala or a downloaded video from Hulu. This is because the wire is Layer 1 and the application (email, video), is mostly Layer 7. Similarly, the Outlook program that packages e-mails to be sent at Layer 7, does not care if Layer 2 is facilitated by a Linksys router or by a D-Link router; or whether you use ADSL, a cable modem, or even GSM of your mobile phone. It is only thanks to this modularity and “separation of duties” among the various devices and programs that handle network traffic, that the same Internet network that was invented several decades ago for sending text-only e-mails over 1,200-baud modems is used today to send high-definition streaming movies to mobile devices.
To sum up this section, Internet traffic is interpreted at seven layers, where each layer introduces meaningful data objects and uses the underlying layer to transfer these objects. Each of the many components of the Internet (applications sending and receiving data, routers, modems, and wires) knows how to process data at its own layer and needs not be aware of what the data represents at higher layers or of how data is processed by the lower layers.
Understanding the layered architecture of the Internet allows us to define network neutrality, on page 2.
What is “net neutrality"?
We will start with a proposed technical definition.
Network neutrality is the adherence to the paradigm that operation at a certain layer, by a network component (or provider) that is chartered for operating at that layer, is not influenced by interpretation of the processed data at higher layers.
Reading the section above should make this statement seem trivial. After all, network neutrality is an intended feature of the Internet. As I wrote earlier, a component operating at a certain layer is not required to understand the data it processes at higher layers. The network card operating at Layer 2 does not need to know that it is sending an e-mail message (Layer 7). It only needs to know that it is sending a frame (Layer 2) with a certain opaque payload. Net-neutrality is thus built into the Internet.
When expanding the notion of net neutrality from the purely technical domain to the service domain, I propose to define network neutrality as the adherence to the paradigm that operation of a service at a certain layer is not influenced by any data other than the data interpreted at that layer, and in accordance with the protocol specification for that layer.
Therefore, a service provider is said to operate in net neutrality if it provides the service in a way what is strictly “by the book", where “the book” is the specification of the network protocol it implements as its service. Its operation is network-neutral if it is not impacted by any other logic other than that of implementing the network layer protocol that it is chartered at implementing. An ISP (Internet Service Provider) who is entrusted by you to deliver your packets at Layer 3 over the Internet, shall perform its duty according to the specification, without accounting for any other information other than the Layer 3 interpretation of the network traffic, and without influence by any other logic other than the Layer 3 networking specification. For example, an ISP that looks into the Layer 7 interpretation of the traffic sent through it to determine the contents of e-mail messages, and who blocks traffic based on such content, is violating net neutrality. Similarly, an ISP that is entrusted with sending your Layer 3 packets over the net but which blocks access to particular websites, is also violating net neutrality. The first case matches a violation of net neutrality also by the technical definition, because the violating ISP processed the data at Layer 7 (e-mail contents) although its role is to provide Internet routing at Layer 3. The second example does not violate net neutrality in the technical sense, because the destination address is part of Layer 3 data. However, it violates net neutrality as applied to a network service, because it used the interpreted data (destination address) in a way that is not part of the networking specification. The destination address is supposed to be used for routing traffic, not for discriminating between destination addresses.
Service net neutrality today
Service providers have mixed emotions when it comes to network neutrality. On one hand, they claim to exercise net neutrality when it serves them, but on the other hand, they seek ways to violate net neutrality whenever it makes economical sense. When the content industry complained to ISPs that their users use their service to illegally download copyrighted movies, the ISPs rightfully claimed that they are just the pipe, and are not responsible for the actual contents of whatever flows on their wires. On the other hand, ISPs regularly carry out “packet shaping” to manage their overall outgoing bandwidth. Packet shaping is the operation of assigning priorities to traffic based on its type. For instance, an ISP may send traffic of interactive sessions (such as web browsing) faster than traffic of user not-present operations, such as nightly file downloads, because the user will not notice anyway.
Packet shaping can barely be considered as legitimate. When you pay for a certain bandwidth, you expect to get that bandwidth regardless of what you choose to use it for. But if packet shaping is in the lighter shade of grey, some net neutrality violations are on the yet darker side.
Lately, we have seen attempts by ISPs to legalize packet shaping for direct commercial reasons. One plan ISPs have is to allow service providers to pay extra for having user traffic directed to them to be delivered with higher priority (i.e., often at a higher speed). For example, Netflix may one day be able to pay an ISP to have its users connect to Netflix faster than they would to competing services. This is a clear violation of net neutrality. You, as a user, expect the ISP to implement Internet routing for you, regardless of what you decide to do with this connectivity. Moreover, the service provider trusts that whoever connects his customers to the Internet, does that with impartiality and does not play favorites among service providers based on who pays more.
Next, we are to learn why net neutrality is important enough to be legally enforced, in brief, and yet why it is so difficult, all on page 3.
The importance of net neutrality
A lot has been written about the importance of net neutrality to society and to economy, and I do not wish to unnecessarily repeat those messages. I will just raise a few points as food for thought for newcomers.
The Internet is an open ecosystem that does not favor anyone over the other. As such, it fuels the open economy that we all enjoy. A company with merit can be launched today by two people in a garage, and take over Facebook tomorrow. If Netflix, for example, can use its cash “to buy the Internet” away from a young promising competitor but who is not as funded, are we as society better off?
Net neutrality violations are a slippery slope. If ISPs can downgrade the service to parts of the Internet at their own discretion, what would it do to free speech tomorrow?
If ISPs can sell premium connectivity to certain players, it will imply that those ISPs will not invest in improving the Internet speed and stability for all communication, but only for those connections that pay extra; that is simple economics.
Network neutrality is the notion of having service providers provide connectivity service with impartiality and transparency. The openness of the Internet, on which a lot of its value is reliant, is intrinsically based on net neutrality.
Why is the legal enforcement of net neutrality so challenging?
It did not take us much to be able to define net neutrality in the technical and service domains, but there still are some loose ends that prevent this definition from being applicable as a normative regulation; that is, other than lobbies and politics. I wrote that the service provider, to exercise network neutrality, has to avoid exploiting any data for providing its service, other than the data specified by the networking protocol. However, this is not realistically achievable to the fullest extent. The ISP has to carry out some business-oriented packet shaping to prevent one user from absorbing all bandwidth, not leaving anything for other users. Obviously, there is some business logic involved in preference of packets which is acceptable. If you pay for a certain bandwidth, some network neutrality is violated by merely enforcing this deal. So where does the line cross? How is restricting a user to only use the bandwidth he pays for is okay, while preferring traffic based on payment by service providers is not?
Usually, when we encounter such situations in which we cannot make up sustainable rules, one approach is to revert to demanding transparency. The ISP can do whatever it wishes, but it must openly disclose its operations and thus let economy control what is acceptable by the public and what is not, and penalize the ISPs that are below the norm. This could work. We could require that any ISP can do whatever it wishes with its traffic: prioritize, block sites at its own will, etc., just as long as it openly publishes its practices to the users, who may elect to take their business elsewhere. The reason this approach is not favorable is that network neutrality has too much significance to economy and to democracy to have it left to user preferences. There are too many potential “market failures” here: users may not understand the trade-offs well enough, the ISPs may form cartels that allow them all to offer the same terms of service in this respect; or in some cases there is just not enough choice between ISPs in the first place. Transparency is a good requirement; but it is not enough.
We need to protect network neutrality by law. Even if we cannot get it a hundred percent right at first, we need to pose a firm start.