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 that 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 may 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. In order 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:
|client||A computer or process that accesses the data, services, or resources of another computer or process on the network.|
|host||A computer that is attached to an Internet network and can communicate with other Internet hosts. The local host for a particular user is the computer at which that user is working. A foreign host is any other host name on the network. From the point of view of the communications network, hosts are both the source and destination of packets. Any host can be a client, a server, or both. On an Internet network, a host is identified by its Internet name and address.|
|network||The combination of two or more hosts and the connecting links between them. A physical network is the hardware that makes up the network. A logical network is the abstract organization overlaid on all or part of one or more physical networks. The Internet network is an example of a logical network. The interface program handles translation of logical network operations into physical network operations.|
|packet||The block of control information and data for one transaction between a host and its network. Packets are the exchange medium used by processes to send and receive data through Internet networks. A packet is sent from a source to a destination.|
|port||A logical connecting point for a process. Data is transmitted between processes through ports (or sockets). Each port provides queues for sending and receiving data. In an interface program network, each port has an Internet port number based on how it is being used. A particular port is identified with an Internet socket address, which is the combination of an Internet host address and a port number.|
|process||A program that is running. A process is the active element in a computer. Terminals, files, and other I/O devices communicate with each other through processes. Thus, network communications is interprocess communications (that is, communication between processes).|
|protocol||A set of rules for handling communications at the physical or logical level. Protocols often use other protocols to provide services. For example, a connection-level protocol uses a transport-level protocol to transport packets that maintain a connection between two hosts.|
|server||A computer or process that provides data, services, or resources that can be accessed by other computers or processes on the network.|
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 may 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 may 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 once 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 that 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.
Communicating with Other Systems and Users