This book does not pretend to be a comprehensive record; but it aims at helping to disentangle from an immense mass of material the crucial issues and cardinal decisions. Throughout I have set myself to explain faithfully and to the best of my ability. .
--The World Crisis, Winston Churchill
BACKGROUND
Data network communication and distributed applications rely on underlying communications software that is independent of applications and relieves the application of much of the burden of reliably exchanging data. This communications software is organized into a protocol architecture, the most important incarnation of which is the TCP/IP protocol suite. The TCP/IP protocol suite is now dominant, in terms of products, deployment in data networks, and ongoing computer network research. The most prominent incarnation of this suite is in the Internet and its millions of attached computers.
OBJECTIVES
The objective of this book is to provide an up-to-date survey of developments in the areas of computer networks and Internet-based protocols and algorithms. Central problems that confront the network designer are the need to support multimedia and real-time traffic, the need to control congestion, and the need to provide different levels of quality of service (QoS) to different applications.
The following basic themes serve to unify the discussion:
Principles: Although the scope of this book is broad, there are a number of basic principles that appear repeatedly as themes and that unify this field. Examples are multiplexing, flow control, and error control. The book highlights these principles and contrasts their application in specific areas of technology.
Design approaches: The book examines alternative approaches to meeting specific communication requirements.
Standards: Standards have come to assume an increasingly important, indeed dominant, role in this field. An understanding of the current status and future direction of technology requires a comprehensive discussion of the related standards.
INTENDED AUDIENCE
This book is intended for both a professional and an academic audience. For the professional interested in this field, the book serves as a basic reference volume and is suitable for self study.
As a textbook, it is suitable for an advanced undergraduate or graduate course. The book treats a number of advanced topics and provides a brief survey of the required elementary topics. After Part One, the parts are relatively independent. Fewer parts could be covered for a shorter course, and the parts can be covered in any order.
PLAN OF THE BOOK
The book is divided into seven parts:
Overview
Internet Applications
Transport Protocols
Quality of Service in IP Networks
Internet Rodting
. Network and Link Layers
Management Topics
In addition, the book includes an extensive glossary, a list of frequently used acronyms, and a bibliography. Each chapter includes a list of key words, review questions, problems, suggestions for further reading, and pointers to relevant Web sites.
The book is intended for both an academic and a professional audience. For the professional interested in this field, the book serves as a basic reference volume and is suitable for self-study. As a textbook, it can be used for a one-semester or two-semester course. It covers the material in the Communication and Networking core course of the joint ACM/IEEE Computing Curricula 2001. The chapters and parts of the book are sufficiently modular to provide a great deal of flexibility in the design of courses.
TOP-DOWN AND BOTTOM-UP APPROACHES
The book is laid out to present the material in a top-down fashion. This has the advantage of immediately focusing on the most visible part of the material, the applications, and then seeing, progressively, how each layer is supported by the next layer down. This approach makes the most sense for many instructors and students. The application layer is the most visible layer to the student and typically provides the most interest. An understanding of the applications motivates the mechanisms found at the transport layer. The treatment of the application and transport layers enables the student to understand the many design issues at the internet layer, including quality of service and routing issues. Finally, computer networks and data link mechanisms can be treated. ..
Some readers, and some instructors, are more comfortable with a bottom-up approach, With this approach, each part builds on the material in the previous part, so that it is always clear how a given layer of functionality is supported from below. Accordingly, the book is organized in a modular fashion. After reading Part One, the other parts can be read in a number ofpossible sequences. See Chapter 0 for a description of each Part and for a discussion of the order in which the book can be taught.
INTERNET SERVICES FOR INSTRUCTORS AND STUDENTS
There is a Web site for this book that provides support for students and instructors. The page includes links to relevant sites, transparency masters of figures and tables in the book in PDF (Adobe Acrobat) format, PowerPoint slides, and sign-up information for the book's Internet mailing list. The Web page is at WilliamStallings.com/CNIP/CNIPle.html; see the section, "Web Site for Computer Networking with Internet Protocols and Technology," following this Preface, for more information. An Internet mailing list has been set up so that instructors using this book can exchange information, suggestions, and questions with each other and with the author. As soon as typos or other errors are discovered, an errata list for this book will be available at WilliamStallings.com. Finally, I maintain the Computer Science Student Resource Site at WilliamStallings. com/StudentSupport.html.
PROJECTS FOR TEACHING COMPUTER NETWORKING
For many instructors, an important component of a computer networks/Internet protocol course is a project or set of projects by which the student gets hands-on experience to reinforce concepts from the text. This book provides an unparalleled degree of support for including a projects component in the course. The instructor's manual not only includes guidance on how to assign and structure the projects, but also includes a set of suggested projects that covers a broad range of topics from the text, including: Sockets programming projects: The manual includes series of assignments that instruct the student to research a particular topic on the Web or in the literature, and write a report.
Simulation projects: The manual provides support for the use of the cnet simulation package: The cnet network simulator enables experimentation with various data link layer, network layer, routing and transport layer protocols, and with various network configurations.
Performance modeling projects: An alternative to simulation for assessing the performance of a communications system or networking protocol is analytic modeling. The tools package of software serves as the basis for developing such projects.
Research projects: The manual includes series of assignments that instruct the student to research a particular topic on the Web or in the literature, and write a report.
Reading/report assignments: The manual includes a list of papers in the literature, one or more for each chapter, that can be assigned for the student to read and then write a short report.
See Appendix B for details.
ACKNOWLEDGMENTS
This book has benefited from review by a number of people, who gave generously of their time and expertise. The following people reviewed the original manuscript proposal and made numerous detailed suggestions: Paul Tymann (Rochester Institute of Technology), William Perrizo (North Dakota State), and Kenneth Weber (Mount Union College). The following people reviewed portions of the material in the book: Michael J. Donahoo (Baylor University), Gary Harkin (Montana State University), Larry Owens (California State U. Fresno), S. Hossein Hosseini (U. of Wisconsin--Milwaukee), and Dr. Charles Baker (South- ern Methodist University).
Thanks also to the many people who provided detailed technical reviews of a single chapter: David Bunde, Dan Li, lan Sutherland, Wei Zhou, Marc Tn-nme, Brian Borchers, Balbir Singh, Dean Newton, Paul A. Watters, Peter Rabinovitch, Stephen Campbell-Robson, Roger L. Bagula, Diet Ostry, Lars Kristensen, San Skulrattanakulchai, Lieven Marchand, Robert Kolter, Chris Pollett, and Stefan Katzenbeisser.
I would also like to acknowledge Fernando Ariel Gont, who contributed many excellent homework problems.
Finally, I would like to thank the many people responsible for the publication of the book, all of whom did their usual excellent job. This includes the staff at Prentice Hall, particularly my editor Alan Apt, his assistant Patrick Lindner, and production manager Rose Kernan. Also, Jake Warde of Warde Publishers managed the supplements and reviews; and Patricia M. Daly did the copy editing. ...