There are many electronic media by which information can be communicated, mostly through networks of some kind
  • Computer networks (Internet, ethernet, wifi)
  • Landline Phone Networks
  • Cellphone Networks
  • Satellite
  • Cable Lines
  • Wireless (analog or digital)

And there are many kinds of information we want to communicate
  • Voice
  • Radio and Television
  • Images, videos,etc
  • Data (scientific, computer, etc, etc)
  • Locations

Traditionally, each of these has been tied to one or a small number of media, for example:
  • Voice = PSTN (telephone), analog two way radio systems, cellular networks
  • Radio and Television = FM broadcast, analog cable
  • Images, videos,etc = specialized devices
  • Data (scientific, computer, text etc, etc) = computer or specialized networks
  • Location = GPS satellites, GIS, specialized equipment

However, the world is tending towards enabling all kinds of information on all media (e.g. voice on computer networks, data on two-way radios, locations on cellphones, etc). In particular, there is a tendency for everything to use computer networks and the internet as a medium (maybe except for the "last mile"). So, in our internet-centric world we have:
  • Voice = VoIP, P25 over Internet
  • Radio and Television = streaming media over internet
  • Images, videos,etc = streaming media or files over internet
  • Data (scientific, computer, text etc, etc) = internet, SMS
  • Location = GPS satellites, NMEA, internet

To understand how all this can be done using just the internet, we need to understand something basic about how the internet (and other networks work).

Circuit switching vs. Packet Switching

Before we talk about "packet switching" it helps to understand a little bit of history. Telephone networks are circuit switched. The telephone exchange is a means to creating a dedicated, end-to-end electric circuit between the caller and callee. Once this circuit is established, analog audio can be transmitted back and forth. While circuit switching provides a dedicated line between two callers it is not an efficient use of resources. For example, when the line is silent it could be used to carry other voice communications, but instead it is tied up for the dedicated call. This brings us to the other alternative, packet switching.

external image milestone_1927a_nwk.jpg
Image of a switchboard taken from AT&T's website

Packet switched networks are digital communication networks that route packets between end points. A packet is an encapsulated piece of information, with metadata to indicate where the information has come from, and where it is going. The key insight is that packets are small pieces of information that can be transmitted between routers quickly. Once a packet is transferred, the electric circuit can be used to transmit other users' packets, thus improving the utilization of the network. Thus a packet switched network like the Internet can carry all kinds of traffic as long as they are digitized into packets. The packet switching protocol you are most likely to come across is the Internet Protocol (IP). The nice thing is that anything that can be represented digitally can be split into packets; and thus can be transmitted on the internet with IP.

See an animation of packet switching on this page. Here is another animation (skip to position 4:30)

For all the advantages of packet switching, one major disadvantage is that such networks are "best effort", and if a router gets overwhelmed with packets, these packets are simply dropped. Contrast this with the dedicated line created in circuit switching. Thus, the end points need protocols to realize when packets are lost and retransmit them if necessary. Generally when packet switching is used, some form of session control protocol is used for real-time communications (e.g. SIP, Q931, TCP) Retransmission strategies will depend on the application: transferring documents will certainly need lost packets to be retransmitted, but real time video feeds may not require a retransmit because a lost video frame cannot be replayed if it comes in too late.

We will now take a closer look into the nature of packets and the various protocol layers used on the Internet:

Protocol Layering

Getting packets from a computer at IU to a webserver in India can be a very complicated process. To make this routing manageable the concept of layering is used. Here the communications system is subdivided into layers, i.e., a collection of similar functions that provides services to the layer above, and uses functions from the layer below. The most celebrate model is the OSI Model (Open Systems Interconnection), which specifies seven layers starting with the physical layer at the bottom and the application layer at the top. We will focus on the TCP/IP model (which has fewer layers) instead, since it is more relevant to the design of the Internet.

external image 500px-IP_stack_connections.svg.png
Image taken from Wikipedia

Layer 1 - Physical Layer (e.g., Ethernet cards and physical interconnects): This layer includes the electrical and physical specification of devices, and how these devices interact with the medium to transmit and receive digital signals. For example, the Ethernet network card on your computer (shown below, image source Wikipedia) is able to send and receive digital signals over an Ethernet cable.

Ethernet card (Layers 1 and 2)
Ethernet card (Layers 1 and 2)

Layer 2 - Link Layer (e.g., Ethernet protocol): This layer connects two or more devices operating at the physical layer. Using the services provided by the physical layer, this layer governs how devices connect to each other over the physical medium and transmit packets (or "frames") between the devices. For example, packets/frames sent by one Ethernet card are received by another Ethernet card. If an error in transmission is detected, these packets are retransmitted by the protocol at this layer.

Layer 3 - Network Layer (IP): This layer is responsible for delivering packets from a computer in one network (e.g., at IU) to a computer in another network (e.g., at the University of Illinois). Packets are navigated between several routers using the data link layer to communicate between each set of routers. IP is the network layer protocol for the Internet. This layer focuses on the routing in a best-effort manner. If packets are lost because of network congestion, higher layers (e.g., Layer 4) must handle retransmissions.

Layer 4 - Transport Layer (e.g., TCP, UDP): This layer implements an end-to-end transfer protocol between two applications. While the network layer gets packets from one computer to another, this layer handles delivery of packets to the correct application within the computer by using ports. UDP provides such basic functionality without handling retransmits and could be used by video streaming applications for example. TCP is the dominant protocol used on the Internet that ensures packets are delivered reliably, and in sequence between two applications. TCP features packet transmission along with acknowledgments from the other endpoint. If a packet loss is detected, the sender resends a packet. TCP also regulates the speed at which packets are transmitted, reacting to congestion by slowing down so as to relieve the congestion.

Layer 5 - Application Layer: Applications make use of the transport layer to transmit packets to an application on some other computer. For example, backup software may use TCP to reliably transfer files from your computer to a backup server in the cloud.

Data representation at the various layers

Each layer deals with its own representation of a packet, encapsulating the packet from the lower layer as data, and attaching a header to that data. This concept is called successive encapsulation. The following diagram taken from Wikipedia shows this process (also see Figure 85 here):

external image 500px-UDP_encapsulation.svg.png

Now let's take a deeper look at the packet structure for the various layers:

Transport layer: UDP packet structure, TCP/IP packet structure
Network layer: IP packet structure
Link layer: Ethernet frame structure

Summing it up with the end-to-end argument

The beauty of the Internet's design is that all applications operating at the upper layer are eventually "squeezed" into IP. By creating a "stupid network" that talks only one protocol at the network layer, specialized applications can be designed "end-to-end". This end-to-end approach keeps the Internet's architecture simple, efficient, cheap and fast, but still supports a rich set of applications such as VoIP, video, TV, file transfers, web traffic, and so on. Applications can make use of TCP/IP, UDP, or specialized protocols on top of IP depending on their unique needs.

Internet hourglass design. Image from Wikimedia.
Internet hourglass design. Image from Wikimedia.