When designing networked applications one key protocol stands out as the foundation for making it possible. That protocol is TCP/IP. There are many protocols out there that allow two applications to communicate. What makes TCP/IP a nice protocol is that it allows applications on two physically separate computers to talk. What makes TCP/IP great is that it can do with two computers across a room or across the world. In this paper I will show you how TCP/IP allows a wide array of computer hardware to work together without ever having to knowing what the other machine is or how it even works. At the same time you will learn how it allows information to find its way around the world in a faction of a second without knowing in advance how to get there.
Before we go too far it should be noted that TCP/IP is really two protocols. The first is the Transmission Control Protocol or TCP. The second protocol is IP which stands for Internet Protocol. These two combined provide the basis for the virtual level of most of the networks we use today. The roots of the protocols reach back into the 1970’s. At that time networks were built by wires connecting one computer to the next directly. This is called direct connect. If you wanted information to get to a computer that yours was not direct connected to you would have to create a bridge on a common machine you are both connected to. This way messages you send in one connection are transferred in the computer to the other connection and sent to the computer you were trying to talk to. This is sometimes called a gateway.
In 1973 the Defense Advanced Research Projects Agency (DARPA) tasked two engineers to design a way for information to travel more easily between these early networks. The engineers were Robert Kahn and Vinton Cerf. In the summer of 1973 the pair worked out what is now IP. This protocol works in a virtual layer of networks. Networks and computers at a fundamental level work on bits. Bits are nothing more than a way of representing information in a series of 1s and 0s. At a physical layer this can be done by a lot of different ways. In copper networks it is done by turning power on and off to a wire to represent 1 and 0 to a computer on the far end of the wire. In fiber networks it is done by turning a laser on and off. The point being that there are lots of ways to physically pass data between computers. What Kahn and Cerf had invented was not a physical way for computers to talk to each other. Instead they provided a common format for the data that was passed independent of the physical means.
A common way to analyze networks is with the OSI Network model which breaks networks down into 7 layers. We are going to focus on layers 1through 4. For more information on the OSI model you may reference www.iso.org. In an effort to simplify the principles of what Kahn and Cerf created we will talk about the network and the OSI model in terms of mailing a package through the postal...