As the Internet has grown, three main protocols have reigned supreme in sending data online: IP (Internet Protocol), UDP (User Datagram Protocol), and TCP (Transmission Control Protocol). Understanding these protocols is key to both designing computer networks and keeping data secure. Foremost among these three protocols is IP, as both UDP and TCP use IP as a base layer for sending their information.
The IP protocol is used to transmit most of the data on the Internet. The fundamental concept behind IP is that each computer, or node, has an IP address. Computers can send data to and from each other by addressing the messages, or “packets”, with both a source address and the destination address.
IP is very similar to the system used by the United State Post Office. Each house has one address, and when a letter is sent, the destination address is marked in the middle of the envelope, and the source address is in top left. With this technique, when the receiver gets the letter, they can know where to address their response. Just as the envelope encloses the letter, the IP packet envelope encloses the network message.
As each IP packet is then sent over the network, it travels over several “hops”. Much like every home has a postman who first picks up the letter, and then sends it to the correct outbound truck after sorting at the post office, similarly each network packet goes out through the first router, and then travels through a number of intermediate routers before getting to its destination.
Traditionally, each IP address consisted of a set of four numbers, such as 220.127.116.11. Each subsequent number narrowed down to a specific part of the Internet. The first number usually referenced the top-level Internet Service Provider or big businesses, such as AT&T or IBM. The next number narrowed down to a sub-network, or subnet, of that provider. As the landscape of the Internet changed, so have the subnets and groups of addresses, and they are now distributed in a much more haphazard structure across the world.
The big challenge facing the IP protocol is that as billions of people have connected to the Internet, we have exceeded the number of available addresses. In order to fix the problem, computer scientists have introduced a new technology called IPv6, which uses 16 numbers instead of 4. Although the technology is promising, it is being adopted comparatively slowly. The main problem with IPv6 is the difficulty for network engineers to remember and retype 16 numbers instead of 4.
Another solution to the shortage of IP addresses is a technology called NAT – or Network Address Translation. This technique lets many computers sit behind one address, similar to an apartment building. When the letter comes in, the person handling the mail for that apartment building looks at the envelopes and decides where the letter should go. The caveat of NAT is that most tenants in the apartment building can only get information back once they have sent a letter out. For instance, a computer would have to first start requesting information from Facebook, before Facebook could send information back to that computer.
Although theoretically simple, the IP protocol is the backbone of the Internet, and its flexible format has helped the Internet grow from a niche military experiment into what it is today. Join us in the coming weeks when we will look at the TCP and UDP protocols, which use IP to send data between clients and servers.
Written by Andrew Palczewski
About the Author
Andrew Palczewski is CEO of apHarmony, a Chicago software development company. He holds a Master's degree in Computer Engineering from the University of Illinois at Urbana-Champaign and has over ten years' experience in managing development of software projects.