Computer Networks (Third Edition)

Author: Andrew S. Tanenbaum
Translator: Xiong Guoxi et al.
Publisher:
Publish Date: 2004-03-01
Features:
Abstract
"Computer Networks" (3rd Edition) is one of the most widely used textbooks on computer networks abroad. This book systematically introduces the basic concepts of computer networks in a layered manner according to the network model, including the physical layer, data link layer, medium access sublayer, network layer, transport layer, and application layer. When introducing the basic principles and implementation methods of each network layer, the book incorporates rapidly developing network technologies in recent years, such as the Internet, ATM, ISDN, mobile communication, satellite communication, and more. The target audience for this book is very broad. For students at vocational colleges, undergraduate, and graduate levels studying computer network courses, it can serve as a textbook or reference material. For researchers, engineers, technical service personnel, and users engaged in network research, network engineering, technical services, and network usage, it is also an excellent foundational reference.
Excerpt:
In a network, users must explicitly specify which machine to log into, remotely submit tasks, and explicitly designate the source and destination of file transfers, as well as manage the entire network. In distributed systems, there is no need to explicitly specify these details; the system automatically completes them without user intervention. Functionally, distributed systems are software systems built on top of networks. They exhibit high integrity and transparency. Therefore, the distinction between networks and distributed systems often depends more on software (especially the operating system) than on hardware. However, there are also many similarities between these two topics. For example, both distributed systems and networks require file transfer. The difference lies in who initiates the transfer—the system or the user? Although the main focus of this book is on computer networks, many of the issues discussed are also important for distributed systems. If users wish to learn about distributed systems, refer to (Cou-Louris et al., 1994; Mullender, 1993; and Tanenbaum, 1995).
Applications of Computer Networks
Before delving into technical analysis, it is worth mentioning why people are interested in computer networks and what their uses are.
1.1.1 Networks for Businesses
Many organizations operate a certain number of computers, most of which are geographically dispersed. For example, a company with multiple factories may have a computer installed in each factory to record inventory, monitor production conditions, and manage local payroll. Initially, each computer operates independently, but later, management may decide to connect these independent computers to share and verify information across the entire company. Broadly speaking, the core issue here is resource sharing. The goal is to allow users on the network, regardless of their location or the physical location of the resources, to access and use programs, devices, and especially data on the network. In other words, users can access data thousands of miles away just as easily as local data. The purpose of a network can be summarized as its attempt to break free from "geographical constraints."
The second purpose is to provide high reliability by relying on redundant resources. For example, all files can be stored as copies on two or three computers. If one fails (due to hardware failure), the others can still be used. Additionally, the emergence of multiprocessors means that if one machine goes down, the remaining processors can still share its tasks, albeit with some performance degradation. For example, the ability to continue operating after hardware failures is extremely important in applications such as military, banking, aviation, air traffic control, nuclear reactor safety equipment, and many others.
Another purpose is to save money. Small computers offer a higher price-performance ratio than large computers. A mainframe (a room-sized computer) is about ten times faster than a personal computer, but its price is a thousand times higher. This imbalance leads many system designers to use multiple powerful personal computers to build systems, with each user having their own personal computer, while data is stored on one or more shared file servers. In this model, users are referred to as clients, and the entire structure is called a client-server model, as shown in Figure 1-1.
In the client-server model, communication typically works as follows: the client sends a request to the server indicating the task to be completed. After the server completes the task, it sends a response. Generally, multiple clients use a small number of servers.
Another purpose of a network is scalability, meaning that as the workload increases, system performance can be gradually improved by adding more processors. In contrast, with a central host approach, when system capacity reaches its limit, a more powerful host must be replaced. This replacement is usually costly and has a greater impact on users. In the client-server model, new clients and servers can be added as needed.
The motivation for establishing a network is also somewhat unrelated to technology. Computer networks can provide powerful communication tools for employees distributed across different locations. Through a network, two or more people living in different places can collaborate on reports. When someone modifies a part of an online document, others can see the change immediately, without having to wait for days for letters. This speed improvement makes it much easier for people to collaborate widely, something that was previously impossible. From a long-term perspective, using networks to enhance interpersonal communication may be more important than its technical goals (such as increasing reliability).
1.1.2 Public Networks
The motivations for building networks discussed above are essentially economic and technical. If sufficiently large and powerful hosts can be purchased at an acceptable price, most companies would choose to store all their data on the host and connect their employees via terminals. Most companies operated this way in the 1970s and early 1980s. It wasn't until personal computer networks offered a much higher price-performance ratio than mainframes that computer networks began to become popular. Starting in the 1990s, computer networks began to serve individual home users. The services and motivations behind these services differ greatly from the "business efficiency" model discussed earlier. Below is a brief introduction to three emerging and exciting services:
1. Access to remote information.
2. Personal communication.
3. Interactive entertainment.

📌 Related Posts