Published on

The Internet Protocol Explained

Authors

What is a Internet Protocol (IP)?

An internet protocol is a set of rules and guidelines that determine the format of data sent over the Internet.

It defines an addressing system to identify each device on the network using network address translation (NAT).

It was an ad-hoc concept at the time there were no fully designed or engineered protocol stacks when the pioneers of computer networking came up with the idea of Internet Protocol. As a result, they started to use IP stack because it met their needs at that time.

tcp-ip

History

[arpanet.png]

The origins of the Internet Protocol can be traced back to the early days of the ARPANET (The U.S. Advanced Research Projects Agency Network), a predecessor to the modern Internet. Its primary goal was to create a network that could survive any condition, even in the event of a nuclear attack.

Vint Cerf and Bob Kahn, known as the "fathers of the internet," played a significant role in the development of IP. The first major version of IP, IPv4, was defined in 1981 by RFC 791.

With the growth of the Internet, it became evident that more addresses would be required than IPv4 could offer. This led to the development of IPv6, which was standardized in 1998 and offers a vastly larger address space.

Datagrams

IP uses datagram format. First impressions on the term 'datagram' may be confusing because it is an abstract concept to define the format of data. Imagine a book that is divided into sections, detailing the title, publisher, author, copyright information, and the main content. Similarly, IP datagrams have sections:

[ip-datagram.png]

These sections include the header, which contains routing and operational information, and the payload, which carries the actual data being transmitted.

IP Addressing

IP Address (IPv4 vs. IPv6)

IPv4 is a 32-bit identifier for the devices that use the Internet Protocol in a computer network. This addressing system is capable of supporting approximately 4.29 billion unique device addresses.

[ipv4]

In the initial stages of computer networks, there were only a modest number of devices being deployed and interconnected, leading to the adoption of IPv4 (Internet Protocol version 4) for assigning IP addresses.

However, this system did not suffice for long as the number of computer networks and connected devices rapidly increased.

As a response to this growing demand, IPv6, a 128-bit addressing protocol, began to be implemented in the 2000s, with its deployment continually increasing ever since.

This transition has been crucial in ensuring that the internet can accommodate the ever-expanding network of devices worldwide.

[ipv6]

Classless InterDomain Routing (CIDR)

CIDR is adopted as a method for assigning IP addresses that significantly enhances data routing across the internet.

Unlike the previous classful networking method, which divided IP addresses into five classes (A, B, C, D, E), CIDR operates using blocks of addresses, eliminating the issue of IP address wastage prevalent in the older system.

CIDR allows routers to fetch the network (e.g., subnet) and host address, leading to the following benefits:

  • efficient using of IP allocation resources
  • increased transmission speed
  • Flexible IP assignment for devices in the same subnet
  • Secure IP addresses for Virtual Private Clouds (VPCs)

Subnets

A subnet, short for subnetwork, is a designated, logical subdivision of an IP network.

It allows devices within the same subnet to communicate with each other directly, without the need for an intermediary router, which enables efficient data transmission.

For example, this network has 3 subnets connected to a router:

[subnet.png]

The network is divided into the subnets for various purposes:

  • reduced latency and network traffic
  • efficient network transmission
  • network security
  • more manageable segments within a larger IP network (Divide & Conquer)

How do you get an IP?

There are two components that get IP addresses: Network and host. Hosts can be routers, virtual machines, VPN tunnels, load balancers, etc., in a network.

Short answer:

  • Network: Internet Service Providers (ISPs) are responsible for allocating IP addresses to networks.
  • Hosts: Dynamic Host Configuration Protocol (DHCP) takes on the role of dynamically allocating IP addresses to individual hosts.

Dynamic Host Configuration Protocol (DHCP)

It is an Application Layer protocol used to dynamically allocate IP addresses and other network configuration parameters to devices on a network.

It basically works as follows:

  • A host searches for a DHCP server
  • During the broadcast , it sends a 'discover' message to the server.
  • The server accepts the request, and sends back an 'offer' message
  • If the host accepts the 'offer', it sends a request for an IP address
  • The server acknowledges the request and assigns an IP address.

What problems do Internet Protocols solve?

Finally we can deduce that computer networks were more localized before the invention of Internet Protocol due to limited capability to communicate with devices outside of their immediate network. Here's what IP brought to the table:

  1. Standardization and Interoperability: IP provided a standardized method for different networks to communicate, paving the way for the establishment of the global Internet.
  2. Scalability: IP was designed to be used on networks of all sizes, from small local networks to the vast global Internet.
  3. Resilience: IP's design ensures that if one path between two devices becomes unavailable, the data can be rerouted through another path.
  4. Addressing: IP introduced a robust addressing system, which made it possible to connect billions of devices to the Internet.

Examples

  • When you visit a website using a browser, your computer sends an IP request to the server hosting the website. The server responds with the necessary data, routed to your computer's IP address.
  • Voice over IP (VoIP) services, like Skype or Zoom, use IP to transmit voice and video over the Internet.
  • IP cameras send video data over the Internet or local networks using the IP protocol.

References