TCP/IP primer
May 1, 2001 12:00 PM, By Ken Nos�
The Web pages you visit, the e-mail you read, the music you download and the radio stations you listen to on the Internet are all delivered to you by applications using TCP/IP. TCP/IP makes it possible for different types of computers and devices to talk to each other across multiple networks. TCP/IP is what makes the Internet work, and does so invisibly to the user.
TCP/IP stands for Transmission Control Protocol/Internet Protocol. TCP/IP actually consists of several protocols: TCP, IP and other support protocols. The specifications are in the public domain, so there are no license fees for their use, and any company is free to use TCP/IP in their products. Because it is an open standard, just about every computer system, and an increasing number of devices, can speak TCP/IP and can therefore talk to each other.
TCP/IP works with the Open Systems Interconnect (OSI) layered model. Its operation is broken down into layers with specific responsibilities. The concept of a layered model is fundamental to the ease-of-use and widespread adoption of technologies like e-mail and the World Wide Web. Each layer hides the details of the layers below it and provides additional services to the layer above it.
Using this type of approach may seem arbitrary at first, but the advantages are significant. For instance, it is possible to change or improve how things are done at any layer without having to change anything in the other layers. For example, when you visit a Web page, you don’t need to know anything about how you are connected to the Internet. You just type in the Web address of the site you want to visit, and your browser works in the same way whether you are using a laptop with a wireless modem or a computer with an Ethernet connection.
Piling on
In the layered model, programs such as the Web browser are at the application layer, the uppermost layer. The bottom layers manage raw data transmission over the physical link, which can be anything from a direct Ethernet connection to a modem over a telephone line or wireless link. In the middle are the TCP and IP protocols, and other support protocols that are part of the TCP/IP protocol suite. The TCP/IP protocol layers are what hide the details of your network connection from the browser. Figure 1 shows the different layers and the services they provide.
The Internet Protocol, or IP, is a network layer protocol, which has the responsibility of routing data from one computer to another across the Internet. Network layer routing is accomplished with IP addresses, which uniquely identify every device on the network. To send data from one device to another, you only need to specify the IP address of the destination device. An IP address is a 32-bit value, often expressed in dotted decimal form, for example 208.40.66.168. If the two machines are on the same physical network, the IP layer sends data to the destination directly. If the destination computer is on a distant network, the IP layer uses routers to find a path from the source to the destination.
The Internet consists of thousands of computer networks connected through routers and can be thought of as a network of networks. Routers transfer data from one network to another using complex algorithms and protocols to determine routes and optimal paths across networks. The IP layer handles routing invisibly, so that routers and the details of their operation are hidden to the upper layers. IP also hides the details of the underlying network architecture, so that sending data across dial-up connections, high-speed leased lines, or microwave links all looks the same at the higher level protocols.
Improving transmission
TCP/IP is a packet-switched protocol, which means that when you send a continuous stream or large file across the network, it is broken down into smaller pieces called packets before it is sent. The network layer may choose to route the packets that make up a single transmission along different paths to avoid network congestion or take advantage of optimal routes along the way. While the network layer provides services for routing data from one place to another invisibly, it doesn’t offer any guarantees that the data won’t get lost along the way, or that the packets will arrive in the same order in which they were sent. These are the responsibilities of the next layer up, called the transport layer.
In the TCP/IP protocol suite, the Transport Control Protocol provides reliable data transmission on top of IP. The TCP layer takes care of retransmission of any lost packets, and puts packets back together in order so that the receiver gets an exact copy of what was sent. Applications that can’t tolerate lost data typically make use of TCP. UDP, or User Datagram Protocol, is another transport layer protocol that is part of TCP/IP. While UDP is referred to as a transport layer protocol, it is just an interface for sending data over IP directly. UDP doesn’t offer any additional services beyond the best effort delivery attempts provided by IP, so it doesn’t guarantee that the data will arrive in the order it was transmitted, or that it will arrive at all. Applications such as Web browsers or e-mail clients use the reliable delivery service of TCP so that the Web pages you visit and the e-mail you receive are exact copies of what was sent.
As a user, you don’t need to know anything about TCP, UDP or IP addresses to use the Internet. IP addresses are invisible to the user in most cases because of a support protocol called Domain Name Service or DNS. DNS can translate a human readable hostname into IP address. When you access a website by typing a Web address like www.beradio.com into your browser, you’re telling your browser to contact a specific computer with the hostname �www.beradio.com.� The Web browser gives DNS that hostname and DNS returns the IP address, which allows the browser to connect to the Web server running on that machine.
Ken Nos� is chief software architect of NeoSonic Industries, Cleveland.