A Quick Guide to TCP/IP

N.B. This article was originally written in 1996 and was intended as an introduction for mainframe personnel to the world of TCP/IP. Although it may not reflect the latest technology it is still relevant to the communication protocols currently in use. If you have no idea what TCP/IP is then it is (in the most general terms) the connection method used to transmit and receive data between computers linked by the Internet and related networks. If you would like to read a full selection of my network related documentation then please feel free to me. See the SNA page for a TCP/IPers guide to SNA.

Contents

1.0 General Background

Transmission Control Protocol/Internet Protocol (TCP/IP) is a suite of protocols designed to allow communication between networks regardless of the technologies implemented in each network. The concept that underlies the creation and development of TCP/IP is that of internetworking, a topic which has recently developed as a major focus of commercial, technological and cultural interest. However, within the area of business applications there are undoubted benefits and fundamental changes to be considered.

The explosion in network design in the late 1960s and 70s led to the development of multiple network models (e.g. packet switching, collision detection LANs, hierarchical networks, etc.), as well as the emergence of protocol layering (allowing data exchange between applications). This evolution has led to the creation of multifarious physical network designs as transports for many different protocols. Considered individually these networks are proven designs; unfortunately the downside of this vast proliferation has been the development of a great many diverse networks which are isolated from one another due to physical differences and non-standard protocols. These issues are addressed by the principle of internetworking, i.e. the definition of a set of protocols to allow inter-application communication regardless of underlying network technology and operating systems.

Contemporary to these developments the (American) Defense Advanced Research Projects Agency (DARPA) instigated research into network connectivity with a view to creating a large network. The requirement was for a network that could link sites of various platforms and operating systems and that could withstand the loss of major components (e.g. in the event of a "nuclear incident" as it is referred to in RFC 1000 - The History of the Internet & TCP/IP, more details on the history of the Internet are available here). The robust functionality of the network was provided by dynamic re-routing, i.e. automatic routing around lost hosts in the network.

In 1978 DARPA adopted TCP/IP as their standard protocol for the handling of internetwork communication, via a backbone known as ARPANET. In 1983 TCP/IP became the mandatory suite of protocols for anyone wishing to connect to the ARPANET. Originally this network could only support 256 addresses (the maximum number possible from 8 bit addressing). The adoption of different classes of networks (Class A, B or C) and addressing based on dotted decimal notation has greatly increased the number of possible addresses.

The original network has proliferated globally into a plethora of sites providing a huge array of information and services based on the ubiquitous Internet. The network itself is overseen by the Internet Activities Board (IAB) and this body sets the standards for TCP/IP. Under the IAB are several groups, two of which are charged with the future development of TCP/IP - the Internet Engineering Steering Group (IESG) and the Internet Research Task Force (IRTF). The standards that define the Internet and TCP/IP are referred to as RFCs (Request For Comments) and these are available online (go to the Internet Society website for full details). References to RFCs are commonplace in TCP/IP; we have already mentioned the text RFC 1000.

As well as achieving the original connectivity goals, TCP/IP concepts are at the core of the development of client/server based systems. The traditional mainframe has also found new areas of development along the lines of client/server relationships, as well as the emerging data-warehousing approach. TCP/IP also played a large role in the emergence of UNIX based systems and this networking capability is one of the most notable features of the UNIX systems. Whichever data-processing solution does emerge ahead of it's competitors in the next few years it would appear that TCP/IP will be fundamental to it.

2.0 BasicInternetworking Concepts

2.1 TCP/IP - The Concept of "Layering"

An important fundamental idea that defines the internetwork architecture is the concept of layering. Below is a model representing layering when applied specifically to TCP/IP.

This concept is also known as modularity. The above architectural model can be broken down as follows;

2.2 TCP/IP - Comparison to the OSI Model

The International Standards Organisation (ISO) developed the Open Systems Interconnect (OSI) as a model for vendors. The ISO was (by the late 1970's) promoting OSI as the de facto standard for creating what it referred to as interoperability between systems between different network architectures. OSI failed to catch on in the way the ISO had hoped, partly due to the complexity of the technical specification but also due to the success of TCP/IP (TCP/IP actually had a ten year head-start in terms of development).. However, the modular approach that laid the foundation of OSI has given TCP/IP a definitive model to follow. The OSI model actually specifies more layers than TCP/IP, but both models are basically analogous (the shaded area in the table represents the TCP/IP suite of protocols).

TCP/IP Model OSI Model Function Example Protocols
Application Application The "user" level, e.g. e-mail & FTP.  
Presentation Converts files from between formats (if required). RPC, SMTP, FTP, TFTP, DNS, NFS & telnet.
Session Co-ordinates sessions between hosts in the internetwork.  
Transport Transport Verifies correct reception of packets & places them in the correct order (TCP does this "better" than UDP - see later). TCP, UDP & ICMP.
Internetwork Network Routes packets to correct address. Also optimises routing when possible. IP, IPng, ARP & RARP.
Data-Link Data-Link Splits data into packets & is hardware-based (e.g. Token-Ring or ethernet). n/a.
Physical Physical Cable, radio-wave, satellite, etc. and network interface card. n/a.

2.3 Packet Movement within the TCP/IP Stack

As a packet is received by a host it enters the stack (i.e. the sequence of layers that make up the TCP/IP model) at the lowest point, i.e. the physical. Each layer then proceeds to "strip-out" the data it needs and passes the remaining packet (if it is required to) to the next layer up in the stack. Likewise, when the application layer creates a packet it will pass it down to the next layer where further information is added by it and every subsequent layer until it emerges onto the physical cable as a "full" packet.

Below is an example of an application to application connection, in this case it is the "put" command under FTP.

2.4 Internetwork Addresses

To be able to identify an internetwork host each host is assigned an address, the IP address. TCP/IP associates each host name with an IP address. In turn, the IP address is associated with a unique hardware address. This IP to hardware association is made by the Address Resolution Protocol (ARP) and can be supplemented by the Routing Information Protocol (RIP) and Open Shortest Path First (OSPF) protocols.

ARP stores this network information in ARP tables and compiles these from information held on other hosts network interface cards. This information is extracted from the network interface cards via an ARP request being generated. This is done when a physical address is found to be missing from a host's ARP table following a connection request. The ARP request is a broadcast message asking a host to respond with it's physical address. Each host maintains an ARP table and benefits from responses to all ARP requests, even ones it didn't issue.

Any one host's IP address (or internetwork address) consists of two parts;

IP Address = Network Address / Host Address

The Domain Name Systems (DNS) translates (or resolves) the host name into a numeric value (represented as dotted decimal notation). For example;

This website = www.francome.com

The same address when translated by DNS into a value recognisable to the hosts;

This website = 216.137.150.191

Each host in the internet must have access to either DNS or maintain its own hosts file (it is preferable to have both and update the hosts file with the most frequently used addresses from DNS).

2.5 Internet Gateway Connections

Building on the previously discussed concepts, below is an example of how a LAN based user may connect to an external address through two physical networks. This can be compared with the previous architectural model. The diagram refers to IP datagrams, these are the fundamental units of information passed across the internetwork. They contain source and destination addresses, the actual data and several fields that flag the datagram disposition. As shown below, the actual gateway function is performed by the IP protocol.

The source address here is address A (network address X/local host A), the destination address B (network address Y/local host B).

2.6 TCP/IP - The Protocol Suite

When referring to TCP/IP it is important to bear in mind that it is a suite of protocols, services and applications. The TCP part, in fact, may not necessarily be involved in the transmission of a packet. Below are listed some of the more important protocols, however this list is by no means comprehensive;