Understanding TCP/IP functionality

Many times we forget to stop and understand the principles underlying the technology we take for granted. In this Daily Feature, Eddie Tolle breaks apart TCP/IP functionality for your edification.

We’re all aware that the Internet depends on the functions of the TCP/IP protocol. But do you understand what makes TCP/IP so terrific? Do you know how your client workstations connect with and are serviced by the Internet and other TCP/IP-based servers? In this Daily Feature, we’ll take a quick look at how TCP/IP functions and how it uses two of its underlying components that make up the TCP/IP protocol stack: the Transmission Control Protocol (TCP) and User Datagram Protocol (UDP).

Starting from scratch
In the beginning, computers didn’t have any means to connect with each other and share information. Every computer operated in a standalone environment, and most of the time, due to operating system limitations, you couldn’t even pass applications or data back and forth without a whole lot of floppies and a bunch of luck. (Remember the term Sneaker Net?) It was a no-brainer that for computers to continue evolving, a solution would have to be created. That’s when the International Standards Organization (ISO) designed the Open System Interconnection (OSI) model to serve as a guideline for independent vendors building communications platforms for computers (networks). The OSI model broke the sequence of networking computers into these seven basic parts:
  1. Application
  2. Presentation
  3. Session
  4. Transport
  5. Network
  6. Data link
  7. Physical

Each part (or layer) performed specific functions and then passed on the necessary information to the layer above or below (according to how the information was flowing). In other words, to communicate with another computer, the sending computer would assemble a packet from possibly all seven layers, starting with the application layer and flowing all the way down to the physical layer. The receiving computer would accept the packet of information at the physical layer and decode it as it passed up through its seven layers until the application received it in a recognizable form. Whether information packets were moving up the model or down, each layer had to perform its function while communicating with the surrounding layers.

Enter the super protocol (TCP/IP)
When TCP/IP arrived on the scene, it had to conform to the seven layers in the OSI model, but it made things easier on everyone by combining them into the following layers:
  • Application layer
  • Transport layer
  • Internet layer
  • Network access layer (Subnet)

Figure A shows how these two models compare. As you can see, TCP/IP integrated the functions of the Application, Presentation, and Session layers into a more practical Application layer that contains many of the basic applications we now take for granted on the Internet.

Figure A
Compare how the OSI and TCP/IP models carry out many of the basic functions for today’s networks.

The Network layer was basically renamed to reflect the Internet capabilities of the entire protocol stack and the Data link and Physical layers’ functionality combined into the Network access or Subnet layer. That left the Transport layer, which uses the TCP and UDP protocols, depending on the type of application being run.

Dissecting the Transport layer
As shown in Figure A, the Transport layer of the TCP/IP protocol stack is made up of the TCP and UDP protocols. According to the type of application you’re running and the demands it makes on your network, you’ll use one or the other and in some cases, both. No matter which one you use, they are both dependant on the Internet layer and its Internet Protocol (IP) to communicate across packet-switched networks. This protocol (IP) provides a means of identifying each computer on the network through the use of addresses and transmits the data it receives from the upper layer applications using a connectionless delivery mechanism. This boils down to the simple fact that IP doesn’t guarantee any one packet will arrive at its final destination; it just keeps sending the packets back and forth between the appropriate addresses.

This means that the applications can’t really depend on IP to get their packets to the receiving computer or to do it in the right order, if that’s important. That’s where TCP and UDP start to perform their magic. UDP takes advantage of IP to establish the proper route for the data it’s sending to the receiving computer. UDP is also a connectionless protocol and doesn’t ensure data integrity, provide for error correction, or seek an acknowledgement of receipt as it sends packets out across the network. It just sends the data as fast as the available bandwidth will allow. This makes it especially effective for Domain Name Service (DNS) and Network File System (NFS) applications, which depend on fast responses to client requests for data.

If the application requires that the packets arrive in a certain order or considers every packet sent valuable, then the TCP protocol will be employed to ensure delivery. TCP is a connection-oriented protocol that inspects each packet sent across the network and also guarantees the integrity of each and every packet and its encapsulated data. Basically, the TCP protocol establishes a two-way stream of information between computers and waits for a response from the receiving computer before sending out the next sequenced packet of data. Once the data is completely sent and positively received, it closes the stream.

The TCP/IP protocol is actually made up of several different protocols that interoperate to provide the functionality we expect from our networks and the Internet. There are a great many resources out there to help you learn more about TCP/IP. Take a further look at the TechProGuild Infrastructure track to find many more Daily Drill Downs and Daily Features on this issue.

Editor's Picks