All network communications involve use of hardware and software. Hardware consists of the physical equipment connected to the physical network. Software consists of the programs, and device drivers pertaining to the operation of a particular system.
The system hardware consists of adapter cards or other devices that provide a path or interface between the system software and the physical network. An adapter card requires an input/output (I/O) card slot in the system. Other devices, such as modems, may attach to one of the standard ports on the computer.
Adapter cards support the standards required by the physical network (for example, EIA 232D, Smartmodem, V.25 bis, EIA 422A, X.21, or V.35) and may, at the same time, support software protocols (for example, synchronous data link control or SDLC, high-level data link control or HDLC, and bisynchronous protocols). If the adapter does not contain software support, then this support must be provided by the adapter's device driver.
All communications software uses protocols, sets of semantic and syntactic rules that determine the behavior of functional units in achieving communication. Protocols define how information is delivered, how it is enclosed to reach its destination safely, and what path it should follow. Protocols also coordinate the flow of messages and their acknowledgments.
Protocols exist at different levels within the kernel and cannot be manipulated directly. However, they are manipulated indirectly by what the user chooses to do at the application programming interface (API) level. The choices a user makes when invoking file transfer, remote login, or terminal emulation programs define the protocols used in the execution of those programs.
A third feature common to communications networks is addresses. Addresses are associated with both software and hardware. The address is the means by which the sending or control station selects the station to which it sends data. In effect, addresses are a means of identifying receiving or storage locations. A physical address is a unique code assigned to each device or workstation connected to a network.
For example, on a token-ring network, the netstat -iv command displays the token-ring card address. This is the physical network address. The netstat -iv command also displays class-level and user-level address information. Addresses are often defined by software but can be created by the user as well.
An aspect of addresses common to many communications networks is the concept of domains. For example, the structure of the Internet illustrates how domains define the Internet Protocol (IP) address. The Internet is an extensive network that comprises many different smaller networks. To facilitate routing and addressing, Internet addresses are hierarchically structured in domains, with very broad categories at the top such as com for commercial users, edu for educational users, and gov for government users.
Within the com domain are many smaller domains corresponding to individual businesses; for example, ibm. Within the ibm.com domain are even smaller domains corresponding to the Internet addresses for various locations, such as austin.ibm.com or raleigh.ibm.com. At this level, we start seeing names of hosts. A host, in this context, is any computer connected to the network. Within austin.ibm.com, there may be hosts with the names hamlet and lear, which are addressed hamlet.austin.ibm.com and lear.austin.ibm.com.
A wide variety of networks reside on the Internet, often using different hardware and running different software. Gateways and bridges enable these different networks to communicate with each other. A bridge is a functional unit that connects two LANs that possibly use the same logical link control (LLC) procedure, such as Ethernet, but different medium access control (MAC) procedures. A gateway has a broader range than a bridge. It operates above the link layer and translates, when required, the interface and protocol used by one network into those used by another distinct network. Gateways allow data transfers across the various networks that constitute the Internet.
Using domain names for addressing and gateways for translation greatly facilitates the routing of the data being transferred. Routing is the assignment of a path by which a message reaches its destination. The domain name effectively defines the message destination. In a large network like the Internet, information is routed from one communications network to the next until that information reaches its destination. Each communications network checks the domain name and, based on the domains with which that network is familiar, then routes the information on to the next logical stop. In this way, each communications network that receives the data contributes to the routing process.
A physical network is used by the hosts that reside on that network. Each host can be said to be a node on the network. A node is an addressable location in a communications network that provides host-processing services. The intercommunication of these various nodes gives rise to the concepts of local and remote. Local pertains to a device, file, or system accessed directly from your system, without the use of a communications line. Remote pertains to a device, file, or system accessed by your system over a communications line. Local files reside on your system, while remote files reside on a file server or at another node with which you communicate using a physical network, for example, Ethernet, token-ring, or phone lines.
Related to the concepts of local and remote are those of client and server. A server is a computer that contains data or provides facilities to be accessed by other computers on the network. Common server types are file servers, which store files; name servers, which store names and addresses; and code servers, which store programs and applications.
A client is a computer requesting services or data from a server. A client, for example, could request updated program code or the use of applications from a code server. To obtain a name or address, a client contacts a name server. A client could also request files and data for data entry, inquiry, or record updating from a file server.