Topics covered in this tutorial
- What is TCP/IP?
- TCP/IP history and development
- TCP/IP as a standard
- ISOC, IANA and IAB
- Requests for Comment
- The TCP/IP protocol suite
What is TCP/IP?
TCP/IP is a two-layer program. The higher layer, Transmission Control Protocol (TCP), manages the
assembling of a message or file into smaller packets that are transmitted over the Internet and
received by a TCP layer that reassembles the packets into the original message. The lower layer,
Internet Protocol (IP),
handles the address part of each packet so that it gets to the right destination. Each gateway
computer on the network checks this address to see where to forward the message. Even though some
packets from the same message are routed differently than others, they'll be reassembled at the
Development of TCP/IP
The original research was performed in the late 1960s and early 1970s by the Advanced Research Projects Agency (ARPA), which is the research arm of the US Department of Defense (DOD). The DOD wanted to build a network to connect a number of military sites. The key requirements for the network were as follows:
- It must continue to function during nuclear war (development took place during the 'cold war'). The 7/8th rule required that the network should continue to function even when 7/8th of the network was not operational
- It must be completely decentralized with no key central installation that could be destroyed and bring down the whole network
- It must be fully redundant and able to continue communication between A and B even though intermediate sites and links might stop functioning during the conversation
- The architecture must be flexible as the envisaged range of applications for the network was wide (anything from file transfer to time-sensitive data such as voice)
ARPA hired a firm called BBN to design the network.
The prototype was a research network called ARPANET
(first operational in 1972). This connected four university sites using a system described as a
packet switching network.
Prior to this development, any two computers wanting to communicate had to open a direct channel (known as a circuit) and information was then sent. If this circuit were broken, the computers would stop communicating immediately, which the DOD specifically wanted to avoid.
One computer could forward information to another by using packet-switching, so it superseded circuit-switched networks. To ensure information reached the correct destination, each packet was addressed with a source and destination and the packet was then transferred using any available pathway to the destination computer.
It was divided into small chunks or packets (originally 1008 bits). Sending large chunks of information has always presented problems, often because the full message fails to reach its destination at the first attempt, and the whole message then has to be resent. The facilities within the new protocol to divide large messages into numerous small packets meant that a single packet could be resent if it was lost or damaged during transmission, rather than the whole message.
The new network was decentralized with no one computer controlling its operation where the packet switching protocol controlled most of the network operations.
TCP/IP is a very robust protocol and can automatically recover from any communication link failures. It re-routes data packets if transmission lines are damaged or if a computer fails to respond, utilizing any available network path. The figure below shows an example of an Internet system. A packet being sent from Network A to Network F may be sent via Network D (the quickest route). If this route becomes unavailable, the packet is routed using an alternate route (for example, A B C E F).
Once ARPANET was proven, the DOD built MILNET
(Military Installation in US) and MINET (Military Installation in Europe). To encourage the wide
adoption of TCP/IP, BBN and the University of California at Berkeley were funded by the US
Government to implement the protocol in the Berkeley version of Unix.
UNIX was given freely to US universities and colleges, allowing them to network their computers.
Researchers at Berkeley developed a program interface to the network protocol called sockets
and wrote many applications using this interface.
During the early 1980s, the National Science Foundation (NSF) used Berkeley TCP/IP to create the Computer Science Network (CSNET) to link US universities. They saw the benefit of sharing information between universities and ARPANET provided the infrastructure. Meanwhile, in 1974 a successor to ARPANET was developed named NSFNET. This was based on a backbone of six supercomputers into which many regional networks were allowed to connect.
The first stage in the commercial development of the Internet occurred in 1990 when a group of telecommunications and computer companies formed a non-profit making organization called Advanced Networks and Services (ANS). This organization took over NSFNET and allowed commercial organizations to connect to the system. The commercial Internet grew from these networks.
There are numerous reasons why TCP/IP was chosen to be the protocol that drives the Internet; some of these include:
- TCP/IP was accepted as an industry standard protocol
- It is a routable protocol suite
- It is provided on almost all network operating systems, and therefore allows connectivity between dissimilar systems (for instance, from a UNIX computer to a Windows NT computer)
- The protocols are in the public domain and are freely available, which makes it a popular choice for software companies. There are no restrictions on its use and no royalties to pay
- It is a well designed protocol
- It is an open standard where no single vendor has any control over the protocol and anyone is allowed to use it and develop applications based on it
TCP/IP as an Open Standard
TCP/IP and the Internet are inextricably linked. Although no organization owns the Internet or its technologies, a number of organizations are responsible for the development of the Internet and so TCP/IP.
Internet Society ( ISOC )
The purpose of the ISOC is to encourage the development and availability of the Internet.
Internet Architecture Board ( IAB )
The IAB is the technical committee of ISOC and is responsible for setting Internet standards
and publishing these standards as Request for Comments (RFCs).
The IAB governs three groups:
- Internet Research Task Force ( IRTF ) - responsible for TCP/IP related research projects
- Internet Engineering Task Force ( IETF ) - focuses on solutions to Internet problems and the adoption of new standards
- Internet Assigned Numbers Authority ( IANA ) - oversees the process of providing a unique number or port for each protocol used on the Internet
Request for Comment (RFC)
TCP/IP standards are not developed by a committee but rather by consensus. The process for adopting Internet standards revolves around the production of documents called Request for Comments (RFCs). When an RFC is published, it is assigned the next available number. Anyone can submit a document for publication as an RFC. A technical expert or task force then reviews all documents.
A period of time for comments is followed by an updated draft that responds to these comments. After several drafts, the proposed standard is either accepted or rejected.
The standards for TCP/IP are published via these RFCs. Some RFCs describe network services or protocols and their implementation while others summarize policies.
An older RFC is never updated. If changes are required, a new RFC is published with a new number. It is always important to verify you have the most recent RFC on a particular topic.
Internet Network Information Center (InterNIC)
For the Internet to function successfully, a central organization must assume two major responsibilities:
- Oversee the assignment of IP addresses
- Oversee the assignment of domain names to organizations wanting to connect to the Internet
InterNIC is responsible for ensuring the same IP
address or domain
name is not allocated twice. They partially delegate this responsibility by giving the Internet
Service Providers (ISPs)
a block of IP addresses that they can assign to customers.
The TCP/IP Protocol Suite
The figure below shows a comparison of the Open Systems Interconnection (OSI) model and the TCP/IP protocol suite. The TCP/IP protocol maps to a four layer conceptual model: application, transport, Internet and network interface. This model is referred to as the Internet Protocol Suite or the ARPA model. As shown below, each layer in the green Internet Protocol Suite corresponds to one or more layers of the white OSI model.
The network interface layer is the equivalent of the OSI physical and data link layers as it defines the host's connection to the network. This layer comprises the hardware and software involved in the interchange of frames between computers. The technologies used can be LAN-based (e.g. Ethernet) or WAN-based (e.g. ISDN)
The network layer uses a number of protocols to ensure the delivery of packets. These are described below:
IP (Internet Protocol)
IP is the protocol responsible for addressing and routing packets (on the basis of routing algorithms) between networks. It ensures they reach the correct destination network.
The Address Resolution Protocol (ARP) is responsible for obtaining hardware addresses and matching them to their IP address when the destination computer is on the same network.
The Internet Control Management Protocol (ICMP) is used to report errors and send messages about the delivery of a packet. It can also be used to test TCP/IP networks. Two examples of ICMP messages include:
- Destination unreachable - used when a router cannot locate the destination
- Time exceeded - used when the Time To Live (TTL) of a packet reaches zero
The TTL field in a packet has a maximum value of 255 and this value is reduced by one every time the packet crosses a router. The TTL is eventually reduced to zero if the packet is looping (because of a corrupted routing table) or when congestion causes considerable delays. The router then discards the packet and a warning packet is sent back to the source host.
The Transport layer provides communication between the source and destination computers, and breaks application layer information into packets. TCP/IP provides two methods of data delivery:
The Application layer is the layer at which many TCP/IP services (high level protocols) can be run (such as FTP, HTTP and SMTP). Two application programming interfaces (APIs) are commonly used within the TCP/IP environment:
The people at FreeSkills.com were nice enough to share one of their many free tutorials with us in order to make "Understanding TCP/IP" available to SearchNetworking.com readers. FreeSkills.com has more than 400 free tutorials and many reasonably-priced courses available for different IT subjects. We recommend you stop by and visit this wonderful resource!
This was first published in June 2007