Transmission Control Protocol/Internet Protocol (TCP/IP) is a suite of protocols that specify communications standards between computers and detail conventions for routing and interconnecting networks. It is used extensively on the Internet and consequently allows research institutions, colleges and universities, government, and industry to communicate with each other.
TCP/IP allows communication between a number of computers (called hosts) connected on a network. Each network can be connected to another network to communicate with hosts on that network. Although there are many types of network technologies, many of which operate with packet-switching and stream transport, TCP/IP offers one major advantage: hardware independence.
Because Internet protocols define the unit of transmission and specify how to send it, TCP/IP can hide the details of network hardware, allowing many types of network technologies to connect and exchange information. Internet addresses allow any machine on the network to communicate with any other machine on the network. TCP/IP also provides standards for many of the communications services that users need.
TCP/IP provides facilities that make the computer system an Internet host, which can attach to a network and communicate with other Internet hosts. TCP/IP includes commands and facilities that allow you to:
Note: TCP/IP provides basic network management capability. The Simple Network Management Protocol (SNMP) provides more network management commands and functions.
Local networks are designed to serve the needs of a particular set of users. For example, a university might typically need a system containing hundreds of hosts of various types so that students can complete their assignments while professors conduct research. Meanwhile, a computer company with offices across the country might need a number of high-powered workstations to design a new computer. In both cases, system managers and programmers choose hardware and communications protocols based on their particular communication problems and their computational needs.
However, because the needs of computer networks are varied, there is no such thing as the ultimate network system. Generally, networks are classified into two categories: local area networks and wide area networks. Local area networks (LANs) are typically faster than wide area networks, but limited in range. Wide area networks (WANs) are typically slower than LANs, but can connect to hosts across the world. To allow a user on a local host to communicate with remote networks, regardless of hardware differences or network configuration, the Internet protocol was created.
Throughout the 1970s and early 1980s, the US Department of Defense Advanced Research Projects Agency (ARPA) funded research to create standards on how computers communicate by setting conventions for interconnecting networks, sending and receiving information, and transporting data. Since then, some of the largest research institutions, including the National Science Foundation, the Department of Energy, and the National Aeronautics and Space Administration, have adopted the ARPA standards, requiring their contractors to follow them as well. These standards are known as the Transmission Control Protocol/Internet Protocol.
The following features distinguish TCP/IP from previous internetworking protocols, which were more limited in their capabilities:
TCP/IP was created to bridge the gaps created by preexisting protocols. As networking requirements change, TCP/IP will surely evolve new or modified sets of protocols.
Before continuing, you may find it useful to become familiar with the following Internet terms as they are used in this book:
In any communications environment, each host must follow certain rules (called protocols) that allow other hosts to receive and interpret messages sent to them. TCP/IP supports a suite of protocols, each of which provides a different service. These protocols are the mechanism that allows networking communication to be independent of the network hardware.
The TCP/IP protocol suite is organized into the following groups:
Information is sent over the Internet in small blocks called packets. Protocols break information into smaller chunks called datagrams, add headers, and then transmit the datagrams over the network to a destination. In this documentation, the term datagram is associated with the Internet layer protocols; the term packet is associated with the physical network layer. However, in the industry, these terms are sometimes used interchangeably.
For reliable communications, each Internet host is assigned at least one unique Internet address. This 32-bit address is used by protocols for routing packets properly across a network that uses TCP/IP. Each network interface to the Internet network is assigned its own unique address. The machine specified as the gateway host between two or more networks can have more than one interface address. When a packet is transported over the network, the packet includes the Internet address of the source host as well as the destination host. Internet addresses identify both the network address and the local host address.
Each computer, or host, on an Internet network is assigned at least one Internet host name and can have several aliases. In TCP/IP, names are translated, or resolved into Internet addresses using the /etc/hosts file for a local network, or a name server in a remote network.
Routing allows information to be directed from a source host to a destination host. There are two types of routing in TCP/IP: static routing and dynamic routing. Static routes can be defined on each Internet host for common destinations. Routes can be defined dynamically by routing daemons, which find routes to destinations that have not been defined in the routing tables.
If you want two networks to communicate with each other, you can connect them through one machine, called a gateway machine. This machine must physically be on both networks. A gateway contains the addressing and routing information for each host on its network, and may use routing daemons to broadcast routing information to, and receive routing information from, other gateways. TCP/IP routes information to the appropriate computer on the network using address information carried in a packet or stream of information.
TCP/IP provides two types of message delivery for commands, services, and application programs: connectionless packet delivery and reliable stream delivery. These two data transport services provide the backbone of the Internet and TCP/IP.
User Datagram Protocol (UDP) provides connectionless packet delivery in TCP/IP. UDP considers the delivery complete when it places the packet on the network. This type of delivery is considered to be unreliable because each packet is addressed and routed individually.
Transmission Control Protocol (TCP) provides reliable stream delivery in TCP/IP. This type of delivery allows an application program on one machine to connect to an application program on another machine. This type of connection allows a large stream of data to be sent to the receiving machine. The stream actually contains many packets of data, which are sent one at a time to the receiving machine.
TCP is considered to be reliable because, unlike UDP, after each packet is sent, the receiving machine acknowledges the receipt of that packet. TCP notifies the source that the message has reached its destination. TCP can recover from transmission errors, lost packets, or the failure of an intermediate host in the path.
The sockets application programming interface (API) allows you to develop programs using components of TCP/IP. The sockets API provides three types of communications services: reliable stream delivery, connectionless datagram delivery, and raw socket delivery.
Protocol library routines (such as tcpm, tcp, and udp) supported in previous releases of the operating system are not supported in this release. All TCP/IP applications must be written using the sockets API.
Note: The sockets API serves as the application programming interface for TCP/IP.
The mail user command, the Message Handling (MH) user commands, and the sendmail server command can use TCP/IP for sending and receiving mail between systems, and the Basic Network Utilities (BNU) can use TCP/IP for sending and receiving files and commands between systems.