Let's dig into the layer cake that is the Internet
Conceptually speaking, the Internet can be viewed as consisting of four functional layers: the Link Layer, the Internet Layer, the Transport Layer, and the Application Layer. Each layer has several protocols, sets of rules that define how data is formatted and transmitted, which are known collectively as the Internet Protocol Suite. We’ll discuss all four layers here, but we’ll dive deepest into the Internet Layer and its associated Internet Protocol (IP)—because this is the worldwide network’s most fundamental component.
The Link Layer is the lowest layer and is responsible for delivering data over whatever hardware is in use. A link consists of the physical and logical components that are used to interconnect host computers and other types of network nodes (a node is any electronic device that’s connected to the network, including hosts). Link Layer protocols, including Address Resolution Protocol and Media Access Control, operate only on a host’s link.
When you interact with the Internet—by accessing a website, downloading a file, streaming media, and so forth—your communications flow through four network layers, each of which has several protocols designed for the task at hand. Internet Protocol, which comes into play on the Internet Layer, defines the structure and addressing of data packets traveling over the network.
The Internet Layer sits on top of the Link Layer, but we’ll return to it later since its collection of protocols includes Internet Protocol, the primary focus of this white paper. The Transport Layer comes next, and it is responsible for encapsulating blocks of data into packets—an information payload bracketed by control information that informs the network how to deliver the data—and delivering it to the appropriate application program running on the host computer. The two most common protocols used in the Transport Layer are Transport Control Protocol (TCP) and User Datagram Protocol (UDP).
The Application Layer is the highest level of the Internet’s architectural model, and it contains all the protocols concerned with process-to-process communications via an IP network. You’ll likely be familiar with many of the protocols that operate at this level, since they include HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol), POP3 (Post Office Protocol, version 3), and even BitTorrent.
Internet Protocol (IP) defines addressing methods and packet structures and is used to deliver packets from a source host to a destination host based on the hosts’ respective addresses. Internet Protocol is considered a connectionless protocol because, unlike a voice telephone network, it doesn’t rely on a circuit being established before one host can transmit packets to another.
Internet Protocol can be used on heterogeneous networks, meaning that information can travel over any combination of Ethernet, ATM, Wi-Fi, Token Ring, and many other types of networks. Version 4 (IPv4) is the most common version of Internet Protocol in use today, but its successor (IPv6) is being deployed rapidly; the two coexist in the meantime.
The genius of Internet Protocol lies in its assumption that the entire network infrastructure is both inherently unreliable and dynamic: Links and nodes can disappear at any time while new links and nodes are constantly coming into existence, but none of this can prevent a data transmission from reaching its destination.
The Internet is designed according to an end-to-end principle: The bulk of its intelligence is located at the ends of its transmission paths; the routers in between simply forward packets to the next closest gateway based on the ultimate destination’s address. Because of this, Internet Protocol provides only what’s known as “best effort delivery,” meaning that it does not guarantee that data will be delivered or that the user can expect any particular quality of service. In fact, packets can be corrupted, duplicated, arrive in a different order from that in which they were sent (perhaps because one took a longer path), or be lost altogether without the node at either end of the transmission path being notified.
IPv4 can ensure that the IP packet header is free from errors by computing a checksum at each routing node, but IPv6 dropped this feature in order to increase the speed at which packets travel through network routers. In any event, it is the responsibility of upper-layer protocols—such as TCP—to correct reliability issues, such as data corruption, lost or duplicate packets, and out-of-order packet delivery.
The primary difference between IPv4 and IPv6 resides in their address systems. A unique IP address is assigned to every device participating in the network. These are stored as binary numbers, but typically displayed in a human-readable format: 126.96.36.199, for instance. IPv4 uses a 32-bit structure (capable of establishing four billion unique addresses), while IPv6 uses a 128-bit scheme (capable of creating 340 undecillion unique addresses—an undecillion is a one followed by 36 zeroes).
As private local-area networks began to proliferate in the 1990s—primarily in homes and businesses—it began to look as though the world might run out of IPv4 addresses, so a set of private IP addresses was set aside and reserved exclusively for that purpose (private IPv4 addresses range from 192.168.0.0 to 192.168.255.255). Unlike a conventional IP address, a private IP address is not assigned to a specific individual or organization and it can be used without the approval of a regional Internet registry.
Using a technique known as IP masquerading, an entire collection of private network addresses can be hidden behind a single public IP address that is assigned to a specific individual or organization. Since private IP addresses cannot be routed on the public Internet, network address translation (NAT) is used to modify the IP address contained in the packet header as the packet passes through the router, so that it matches that public IP address. A process called port forwarding can be used to allow traffic from the Internet to reach hosts with private IP addresses within the masqueraded network.