What is TCP/IP?

Invictus
In the industrialized nations of the world, virtually everyone has heard of the Internet by now, and many people are using it in some form every day (such as reading this article). However, how many people actually have an idea how it works? How is the information passed along, and what tells the computers how to translate the information? Whole books have been written about this subject, but the aim of this article is more prosaic: to shed a little light on TCP/IP, the software foundation of the Internet.

Put simply, Transmission Control Protocol/Internet Protocol, or TCP/IP, is the language of the Internet. A protocol is a set of rules that define and determine communication between devices (usually computers, but can also include network hardware like routers and hubs), much as the rules of English grammar, syntax and vocabulary define verbal communication between two English-speaking people. Every machine on the Internet communicates via TCP/IP, whether it is a Web server, a router or your own PC at home. Most corporate networks also run on TCP/IP, although there are several viable alternatives in use all over the world.

In the late 1960's, when the U.S. Department of Defense was developing the original ARPAnet (which evolved into the Internet), it became clear that a flexible, robust protocol would need to be developed to fulfill ARPAnet's original purpose: create a decentralized computer network capable of withstanding large-scale damage to its infrastructure and still maintain functionality. Through the efforts of Vint Cerf and other programmers, a series of simple conventions evolved over time into an open standard of networking, which came to be known collectively as TCP/IP.

Note: Although referred to under a single nomenclature, TCP/IP is actually a complete suite of network protocols that operate at different levels of the OSI network model. See below for more information on the OSI model. The open standard was one reason for TCP/IP's quick popularity as a networking standard. Another was its inclusion into UNIX, the premier operating system of the time and still a preferred favorite of many Webmasters and system administrators. BSD UNIX included a full implementation of TCP/IP, and other flavors of UNIX soon followed. Today, it is a standard feature in all releases of UNIX, as well as Linux, the Windows family and Macintosh systems.

Some of the sub-protocols of the TCP/IP suite are familiar to long-time users of the Internet, particularly FTP and telnet. Others, like UDP or ARP, will be familiar only to network gurus. Below is a table listing of the sub-protocols and their functions:

Internet Protocol (IP)

IP is a packet-switching protocol, which means that it handles addressing and route selection for packets (small units that a message is broken into for ease of transmission). IP also handles error checking of transmissions, and the disassembly and reassembly of packets.

Internet Control Message Protocol (ICMP)

ICMP is essentially a double-check system for IP. IP is a connectionless protocol, which means that data is simply transmitted without using a synchronizing signal to check whether the data arrived or not. ICMP can detect connection errors such as congestion or line breaks, and pass that information to upper-level protocols.

Routing Information Protocol (RIP)

RIP uses broadcast distance vectoring to calculate the best path for a packet transmission, based on the number of hops a packet must take to reach a terminus. For example, a person who flies from L.A. to New York with stopovers in Salt Lake City, Chicago and St. Louis has made three hops on their journey.

Open Shortest Path First (OSPF)

OSPF performs the same functions of RIP, but uses a link-state algorithm instead of distance vectoring. This method, which queries only the nearest network node for routing information instead of all nodes on the local segment, is a more efficient method and works better on large internetworks than RIP.

Transmission Control Protocol (TCP)

TCP insures transmission integrity by providing a full duplex (meaning two-way communication), end-to-end connection. Since a full logical connection is maintained, a lower incidence of data loss is maintained.

User Datagram Protocol (UDP)

UDP performs the same basic function as TCP, but as a connectionless protocol. Thus, the probability of data loss is higher, but network overhead is much less and transmissions are faster. Both UDP and TCP use port addresses to deliver packets.

Address Resolution Protocol (ARP)

ARP maintains tables of address resolution information that can be used to route packets from one type of addressing system to another. There are three types used on networks: physical addresses (usually expressed as hexadecimal numbers), IP addresses (expressed as four octets, or xxx.xxx.xxx.xxx) and logical names, expressed as alphanumeric names.

Domain Name Service (DNS)

DNS allows people to search for network computers using English names by using name and address resolution to associate alphanumeric terms with the proper network assets.

File Transfer Protocol (FTP)

FTP enables users to log onto remote machines and browse directories, run commands and transfer files between machines, regardless of operating system. Before the advent of HTTP, FTP was the only method of transferring files, and is still in heavy use today.

Simple Mail Transfer Protocol (SMTP)

SMTP allows the exchange of e-mail through interconnected networks. Nearly every e-mail client available uses SMTP.

Remote Terminal Emulation (Telnet)

Telnet allows remote logging to different machines, thus emulating a dumb terminal (a workstation that can only perform input to a remote machine and view output) via sessions. Nearly all operating systems feature a variant of Telnet.

Network File Access (NFS)

NFS is a high-end family of protocols that supplant FTP and Telnet. There are two sub-protocols: External Data Representation (XDR), which handles data encoding into a format that is independent of operating system platform, and Remote Procedure Calls (RPC), which acts as a redirector of services that essentially decides whether a function call can be performed using local resources or if the call must be redirected to a remote network host.

OSI, which stands for Open Systems Interconnect, is a model for network architecture standards that was created by the International Standards Organization (ISO) and released in 1984. There are seven layers to the OSI model, and each layer utilizes the layer below it while providing a service to the layer above. While TCP/IP does not precisely conform to the OSI model, as TCP/IP was developed long before the OSI standards, a basic understanding of the OSI model is important in understanding how TCP/IP operates.

The following table lists the layers in the OSI standard, and what each layer's function is:
Application

Handles user perception of network functions. Some tasks handled here include resource allocation and network transparency (allowing access to a resource and disguising whether it is local or remote).

Presentation

Allows disparate hosts or operating systems to communicate and eliminate potential difficulties. Processes like text compression or code/format conversion are performed at the presentation layer.

Session

Establishes connections (or sessions) between processes on disparate hosts. Handles data security and formation of sessions.

Transport

Establishes and terminates connections between host machines. Determines most efficient and errorless pathways for connections.

Network

Determines optimal route between hosts for packet transmissions. IP operates at this level.

Data Link

Performs error checking and fragmentation of transmission of frames (groupings of packets that can be tracked and utilized via the header/trailer information that defines the frame). Retransmits incorrect frame transmissions and receives acknowledgement frames. This layer is subdivided into the Logical Link Control (LLC) and Media Access Control (MAC) sub-layers.

Physical

Monitors and controls the electro-mechanical connections to the actual network media (i.e. cabling).

Since TCP/IP predates the OSI model, some of the concepts that were incorporated into the standard were not addressed by TCP/IP. There is not a direct correlation for all levels of the OSI networking model, but all the sub-protocols of TCP/IP correspond to at least one level. Some protocols, such as FTP, span two or more levels. The following table shows the various protocols of TCP/IP and the levels of the OSI model where they operate.

FTP

Application, Presentation, Session

Telnet

Application, Presentation, Session

SMTP

Application, Presentation, Session

NFS

Application, Presentation, Session

RIP

Presentation, Session

OSPF

Session

TCP

Transport

UDP

Transport

DNS

Transport

IP

Network

ICMP

Network

ARP

Network
No road has ever been traveled on as much as TCP/IP. Every day, millions of people send billions of transmissions to every corner of the globe, covering every language and almost every country on the planet. And yet, while roads are not generally subjects for thought or discussion, none have been so invisible as this one network protocol, created humbly in a series of labs and universities across America over three decades ago. Hopefully, this article will illuminate in part that silent electronic highway.

Published by Invictus

To paraphrase Aerosmith, let the writing do the talking.  View profile

To comment, please sign in to your Yahoo! account, or sign up for a new account.