Protecting network neutrality: both important and hard

2014-08-19

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.