We study operating systems because we cannot write large high-performance applications without a sound understanding of the functions and mechanisms of an operating system. It is fair to say that today we study networks for the same reason it is rare that a large application is written today that does not make some use of networking technology. Introduction to Computer Networks What was true of operating systems, in general, is also true of networks. If we do not have a sound understanding of the basics of networking we cannot build and deploy large distributed application systems.
WHY DO WE WANT TO NETWORK COMPUTERS?
At a more detailed level, there are several reasons why we might want to build an application that was distributed across a network. As computer systems were maturing the initial reason we wanted to use networks had to do with sharing access to expensive resources. At first, that resource was a mainframe computer and we accessed the computer with simple terminals rather than through a personal computer. Introduction to Computer Networks We were accessing data that was on the mainframe and programs that ran there. Later, as local area networks began to become common, we started using them to access other shared devices a departmental file server, an expensive laser printer, a pool of modems, and attached communication lines.
These resources were too expensive to provide to each user and were typically not used full time. Therefore, making them accessible through a network spread the cost over many users. A shared resource might not be as easy to use as a local one, but the price more than made up for that. Another specific instance of sharing an expensive device is backing up individual systems to a single machine that had a tertiary storage device attached probably a tape drive.
As networks became more common it became apparent that there were some special things that could be done with them. One of these special things was building a system by combining several smaller machines in a redundant configuration so that if one of the machines was lost, the system would continue to function, even if in a degraded manner.
In order to study and implement networks, models have traditionally been created that divided the subject into smaller topics by considering them as layers of software. In these models, each lower layer provides some set of services to the next higher layers. Introduction to Computer Networks While there is generally pretty good agreement about what functions are performed in what layers, the models are not perfect and they are not always followed exactly. As a result, functions are sometimes found in more than one layer.
For example, we can find security functions available in almost every layer. In addition, in some cases, it is useful to take a lower-level layer network protocol and run it as a layer on top of another higher-level protocol. In these cases, the layer models can become quite confusing. These models are still quite useful in organizing our thinking and a large part of the literature about networking is structured around them, so we discuss them briefly. Furthermore, OS software is often modularized along the lines of these layers.