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 (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access
to the Internet, your computer is provided with a copy of the TCP/IP
program just as every other computer that you may send messages to or
get information from also has a copy of 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 destination.
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.
Why TCP/IP?
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.
Network Interface
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)
Internet Layer
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.
ARP
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.
ICMP
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.
Transport Layer
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:
- Connection-orientated delivery using TCP
- Connectionless delivery using UDP
Application Layer
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:
- sockets
- NetBIOS
Additional links:
Meet Vint Cerf
and Robert
Kahn, co-authors of the TCP/IP protocol.
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!