TCP/IP Architecture and Operation
When communication among computers from different vendors is desired, the software development effort can be a nightmare. Different vendors use different data formats and data exchange protocols. Even within one vendor's product line, different model computers may communicate in unique ways.
As the use of computer communications and computer networking proliferates, a one-at-a-time, special-purpose approach to communications software development is too costly to be acceptable. The only alternative is for computer vendors to adopt and implement a common set of conventions. For this to happen, standards are needed. Such standards would have two benefits:
Vendors feel encouraged to implement the standards because of an expectation that, because of wide usage of the standards, their products would be less marketable without them.
Customers are in a position to require that the standards be implemented by any vendor wishing to propose equipment to them.
However, no single standard will suffice. Any distributed application, such as electronic mail or client/server interaction, requires a complex set of communications functions for proper operation. Many of these functions, such as reliability mechanisms, are common across many or even all applications. Thus, the communications task is best viewed as consisting of a modular architecture, in which the various elements of the architecture perform the various required functions. Hence, before standards can be developed, there should be a structure, or protocol architecture, that defines the communications tasks.
Two protocol architectures have served as the basis for the development of interoperable communications standards: the TCP/IP protocol suite and the Open Systems Interconnection (OSI) reference model. TCP/IP is the most widely used interoperable architecture, and has won the "protocol wars." Although some useful standards have been developed in the context of OSI, TCP/IP is now the universal interoperable protocol architecture. No product should be considered as part of a business information system that does not support TCP/IP.
TCP/IP is a result of protocol research and development conducted on the experimental packet-switched network, ARPANET, funded by the Defense Advanced Research Projects Agency (DARPA), and is generally referred to as the TCP/IP protocol suite. This protocol suite consists of a large collection of protocols that have been issued as Internet standards by the Internet Activities Board (IAB).
There is no official TCP/IP protocol model, as there is in the case of OSI. However, based on the protocol standards that have been developed, we can organize the communication task for TCP/IP into five relatively independent layers:
- Application layer
- Host-to-host, or transport layer
- Internet layer
- Network access layer
- Physical layer
The physical layer covers the physical interface between a data transmission device (such as a workstation or computer) and a transmission medium or network. This layer is concerned with specifying the characteristics of the transmission medium, the nature of the signals, the data rate, and related matters.
The network access layer is concerned with the exchange of data between an end system and the network to which it's attached. The sending computer must provide the network with the address of the destination computer, so that the network can route the data to the appropriate destination. The sending computer may need to invoke certain services, such as priority, that might be provided by the network. The specific software used at this layer depends on the type of network to be used; different standards have been developed for circuit-switching, packet-switching (for example, frame relay), local area networks (such as Ethernet), and others. Thus, it makes sense to separate those functions having to do with network access into a separate layer. By doing this, the remainder of the communications software, above the network access layer, need not be concerned about the specifics of the network to be used. The same higher-layer software should function properly regardless of the particular network to which the computer is attached.
The network access layer is concerned with access to and routing data across a network for two end systems attached to the same network. In those cases where two devices are attached to different networks, procedures are needed to allow data to traverse multiple interconnected networks. This is the function of the Internet layer. The Internet protocol (IP) is used at this layer to provide the routing function across multiple networks. This protocol is implement not only in the end systems but also in routers. A router is a processor that connects two networks; its primary function is to relay data from one network to the other on its route from the source to the destination end system.
Regardless of the nature of the applications that are exchanging data, there is usually a requirement that data be exchanged reliably. That is, we want to be assured that all of the data arrives at the destination application, in the order in which it was sent. The mechanisms for providing reliability are essentially independent of the nature of the applications. Thus, it makes sense to collect those mechanisms in a common layer shared by all applications; this is referred to as the host-to-host or transport layer. The transmission control protocol (TCP) is the most commonly used protocol to provide this functionality.
Finally, the application layer contains the logic needed to support the various user applications. For each type of application, such as file transfer, a separate module is needed that's peculiar to that application.