6.5. A Packet’s Journey
Have you ever wondered how information is transmitted over the internet? In this example, a server on the left sends a webpage to the user on the right. The application (the web server) passes the contents of the page to TCP (which is built into the server’s operating system). TCP slices the webpage into smaller chunks of data called packets. The packets are like little envelopes containing part of the entire transmission—they’re labeled with a destination address (where it’s going) and a source address (where it came from).
Then IP takes over, forwarding packets from router to router across the internet until it arrives at the user’s computer. Routers speak to each other and to other computers using IP. Since routers are connected to the internet, they have IP addresses, too. Every computer on the internet is connected to a router, and all routers are connected to at least one (and usually more than one) other router, linking up the networks that make up the internet. This chatter between the routers also keeps the internet decentralized and fault-tolerant. Even if one path out of a router goes down (a networking cable gets cut, a router breaks, the power to a router goes out), as long as there’s another connection out of that router, then your packet will get forwarded. Networks fail, so good, fault-tolerant network design involves having alternate paths into and out of a network.
Routers try and find the optimal route for each packet’s journey, so sometimes packets take different routes, and occasionally arrive out of order. TCP running on the receiving system on the right checks that all packets have arrived, requests that damaged or lost packets be resent, puts them in the right order, and sends a perfect, exact copy of the web page to your browser. TCP (Transmission Control Protocol) works its magic at the start and endpoint of the trip—on both your computer and on the destination computer you’re communicating with.
This progression—application at the source to TCP at the source (slice up the data being sent), to IP (for forwarding among routers), to TCP at the destination (put the transmission back together and make sure it’s perfect), to application at the destination—takes place in both directions, starting at the server for messages coming to you, and starting on your computer when you’re sending messages to another computer.
IP Addresses and Domain Names
Every device on the internet (personal computer, a tablet, a smartphone, etc.) is assigned a unique identifying number called an IP (Internet Protocol) address. Originally, the IPv4 (version 4) standard was used. It had a format of four numbers with values ranging from 0 and 255 separated by a period. For example, the domain Dell.com has the IPv4 address 184.108.40.206. The IPv4 standard has a limit of 4,294,967,296 possible addresses. As the use of the internet has grown, the number of IP addresses needed has increased to the point where the use of IPv4 addresses will be exhausted. This has led to the new IPv6 standard. The IPv6 standard is formatted as eight groups of four hexadecimal digits, such as 2001:0db8:85a3:0042:1000:8a2e:0370:7334. The IPv6 standard has a limit of 3.4×1038 possible addresses. For example, the domain LinkedIn.com has an IPv6 address of: [2620:109:c002::6cae:a0a]. You probably noticed that the address has only five groups of numbers. That’s because IPv6 allows the use of two semi-colons ( :: ) to indicate groups that are all zeroes and do not need to be displayed.
Domain Name System
If you had to try to remember the IP address of every web site you wanted to access, the internet would not be nearly as easy to use. A domain name is a user-friendly name, convenient for remembering a website. These names generally consist of a descriptive word followed by a dot (period) and the Top-Level Domain (TLD). For example, Wikipedia’s domain name is wikipedia.org. Wikipedia describes the organization and .org is the TLD. Other well-known TLDs include .com, .net, and .gov. The Domain Name System (DNS) acts as the directory of websites on the internet.