Preface

Previous editions of Computer Networks And Internets have received incredibly positive reviews; I especially thank readers who have taken the time to write to me personally. In addition to students who use the text in courses, networking professionals have written to praise its clarity and describe how it helped them pass professional certification exams. Many enthusiastic comments have also arrived about foreign translations. The success is especially satisfying in a market glutted with networking books. This book stands out because of its breadth of coverage, logical organization, explanation of concepts, focus on the Internet, and appeal to both professors and students.

In response to suggestions from readers and recent changes in networking, the new edition has been completely reorganized, revised, and updated. Descriptions of older technologies has been reduced or eliminated. Material on data communications, which is becoming an essential staple of networking courses, has been expanded and placed in Part II of the text. The networking chapters build on the data communication basics, and describe both wired and wireless networking. In addition, to emphasize the new 802.11 wireless standards, the discussion of wireless includes cellular telephone technologies because cellular systems currently offer data services and will soon be adopting Internet protocols.

Recent discussions about networking courses have engendered a debate about the bottom-up or top-down approach. In bottom-up, a student learns the lowest-level details, and then learns how the next higher levels use the lower-levels to provide expanded functionality. In top-down, one starts with a high-level application and only learns enough of the next lower layer to understand how the application can operate. This text combines the best of each. The text begins with a discussion of network applications and the communication paradigms that the Internet offers. It allows students to understand the facilities the Internet provides to applications before studying the underlying technologies that implement the facilities. Following the discussion of applications, the text presents networking in a logical manner so a reader understands how each new technology builds on lower layer technologies.

The text is intended for upper-division undergraduates or beginning graduate students, who have little or no background in networking. It does not use sophisticated mathematics, nor does it assume a knowledge of operating systems. Instead, the text defines concepts clearly, uses examples and figures to illustrate how the technology operates, and states results of analysis without providing mathematical proofs.

The text answers the basic question ``how do computer networks and internets operate?'' in the broadest sense. It provides a comprehensive, self-contained tour through all of networking that describes low-level details such as data transmission and wiring, network technologies such as LANs and WANs, internetworking protocols, and applications. It shows how protocols use the underlying hardware and how applications use the protocol stack to provide functionality for users.

The text is divided into five parts. The first part focuses on uses of the Internet and network applications. It describes protocol layering, the client-server model of interaction, the socket API, and gives examples of application-layer protocols used in the Internet.

The second part (Chapters 5 12) explains data communications and gives background on both the underlying hardware and concepts such as modulation, multiplexing, and channel coding. Chapters discuss transmission modes, and define terms such as bandwidth and baud . The final chapter in the second part presents access and interconnection technologies used in the Internet, and explains how each technology implements concepts from previous chapters.

The third part (Chapters 13 19) focuses on packet switching and packet switching technologies. Chapters give the motivation for using packets, introduce the IEEE model for layer 2 protocols, and consider wired and wireless networking technologies. The third part also introduces the four basic categories: LAN, MAN, PAN, and WAN, and discusses routing in WANs. The final chapter presents examples of network technologies that have been used in the Internet.

The fourth part (Chapters 20 27) focuses on the Internet protocols. After discussing the motivation for internetworking, the text describes Internet architecture, routers, Internet addressing, address binding, and the TCP/IP protocol suite. Protocols such as IP, TCP, UDP, ICMP, and ARP are reviewed in detail, allowing students to understand how the concepts relate to practice. Chapter 26 on TCP covers the important and deep topic of reliability in transport protocols.

The final part of the text (Chapters 28 32) considers topics that cross multiple layers of a protocol stack, including network performance, network security, network management, bootstrapping, and multimedia support. In each case, the chapter draws on topics from previous parts of the text. The placement of these chapters at the end of the text follows the approach of defining concepts before they are used, and does not imply that the topics are less important.

The text is ideally suited for a one-semester introductory course on networking taught at the junior or senior level. Designed for a comprehensive course, it covers the entire subject from wiring to applications. I encourage instructors to engage students with hands-on assignments. In the undergraduate course at Purdue, for example, students are given weekly lab assignments that span a wide range of topics: from network measurement and packet analysis to network programming. By the time they finish our course, each student is expected to: know how an IP router uses a table to forward IP datagrams; describe how a datagram crosses the Internet; identify and explain fields in an Ethernet frame; know how TCP identifies a connection and why a concurrent Web server can handle multiple connections to port 80; compute the length of a single bit as it travels across a gigabit Ethernet; explain why TCP is classified as end-to-end; and know why DSL can send data over wires that are also being used for an analog telephone call.

The goal of a single course is breadth, not depth to cover the subject, one cannot focus on a few technologies or a few concepts. Thus, the key to a successful course lies in maintaining a quick pace. To cover the most important topics in a semester, the lower-layer material in Part 2 can be condensed, and the sections on networks and internetworking can be allocated four weeks each, leaving two weeks for the introductory material on applications and topics such as network management and security. The details of socket programming can be covered in programming exercises.

Instructors should impress on students the importance of concepts and principles: specific technologies may become obsolete in a few years, but the principles will remain. In addition, instructors should give students a feeling for the excitement that pervades networking.

Although no single topic is challenging, students may find the quantity of material daunting. In particular, students are faced with a plethora of new terms. Networking acronyms and jargon can be especially confusing; students spend much of the time becoming accustomed to using proper terms. In classes at Purdue, we have found that a weekly vocabulary quiz helps students to learn terminology as the semester proceeds.

Because programming and experimentation are crucial to helping students learn about networks, hands-on experience is an essential part of any networking course . Footnote: A lab manual, Hands-On Networking , is available that describes possible experiments and assignments that can be performed on a variety of hardware, including a single computer or a set of computers on a local area network. At Purdue, we begin the semester by having students construct client software to access the Web and extract data (e.g., write a program to print the current temperature). Appendix 1 is extremely helpful in getting started: the appendix explains a simplified API. The API, which is available on the web site, allows students to write working code before they learn about protocols, addresses, sockets, or the (somewhat tedious) socket API. Later in the semester, of course, students learn socket programming. Eventually, they are able to write a concurrent web server (support for server-side scripting is optional, but most students complete it). In addition to application programming, students use our lab facilities to capture packets from a live network, write programs that decode packet headers (e.g., Ethernet, IP, and TCP), and observe TCP connections. If advanced lab facilities are not available, students can experiment with free software, such as Ethereal .

Giving students access to a network builds enthusiasm and encourages experimentation our experience shows that students who have access to a live network understand and appreciate the subject better. Thus, if a dedicated packet analyzer is not available, an analyzer can be created by installing appropriate shareware software on a standard PC.

The web site for the text contains materials that make teaching easier and help readers understand the material. For students without access to networking facilities, the web site contains examples of packet traces; students can write programs that read a trace and process packets as if they have been captured from the network. For instructors, the web site contains course materials, figures from the text that can be used in presentations, and animated figures that help clarify the concepts. The site also contains materials not in the text, including photographs of network wiring and equipment as well as files of data that can be used as input to student projects.

I thank all the people who have contributed to this edition of the book. Fred Baker and Dave Oran at Cisco suggested topics of importance. Lami Kaya suggested the overall reorganization, helped formulate the content of the data communications chapters, reviewed the text, and made many other valuable suggestions. Lami has agreed to manage the web site. Special thanks go to my wife and partner, Christine, whose careful editing and helpful suggestions made many improvements throughout.

Douglas E. Comer

March, 2008

Preface in PDF Format