BKAEATCN.RVW 980222 "An Engineering Approach to Computer Networking", S. Keshav, 1997, 0-201-63442-2 %A S. Keshav skeshav@cs.cornell.edu %C P.O. Box 520, 26 Prince Andrew Place, Don Mills, Ontario M3C 2T8 %D 1997 %G 0-201-63442-2 %I Addison-Wesley Publishing Co. %O 416-447-5101 fax: 416-443-0948 Fax: 617-944-7273 bkexpress@aw.com %P 660 p. %T "An Engineering Approach to Computer Networking" The term "engineering," when used as a book title, tends to mean different things to different authors. For some, it means heavily laden with mathematics. For others, it commands a formal, rigid, and rigorous approach. In the present case, engineering can probably be read as "based on reality." This book presents a course on networking concepts based on three networks that are arguably the most successful in the world. The telephone system is the world's largest network, the Internet is the world's most widely used data net, and Asynchronous Transfer Mode (ATM), while not yet widely implemented, is certainly the only protocol I can recall to have excited such interest among lay people. Part one is an introduction. Chapter one, oddly, takes on a task usually left to the introduction or preface, and gives an outline of the book. Chapters two, three, and four review the history and basic technologies of the telephone system, the Internet, and ATM. These background papers are quite readable, and raise the important points and problems that each system addresses, and faces. Section two looks at the tools and techniques that are represented by these networks. Chapter five discusses protocol layering, using the OSI (Open Systems Interconnection) model with examples from the real networks. System design is often dealt with very badly in supposedly "practical" books on networking. This "academic" work does substantially better in this regard, and chapter six provides clear and incisive explanations and examples of the factors that must be considered. Chapter seven looks at the problem of, and solutions to, the need for multiple entities to have access to the same transmission medium. Switching, in chapter eight, uses mostly examples from the telephone and ATM networks. Scheduling can be seen as a special case in multiple access, so, as good as chapter nine is, I'm not sure why it is separate from chapter seven. Naming and addressing in chapter ten is illustrated primarily by examples from the Internet, although the problem should be generic to all networks. Chapter eleven's discussion of routing benefits a great deal from the inclusion of examples from both voice and data networks. These complementary approaches are not always considered together. At first I thought the handling of error control, in chapter twelve, was incomplete. However, I realized that what I was missing was covered in the immediately following chapter on flow control (thirteen), since one very often affects the other. The section closes with traffic management in chapter fourteen, including not only the technical aspects, but also the economic framework. Section three returns again to the real world, to see how some of the technologies studies have worked out in practice. Chapter fifteen looks at common protocols, how they apply the concepts studied, and how well they have functioned. Protocol implementation, in chapter sixteen, considers the difficulties of translating concepts into products. The questions and exercises at the end of chapters don't appear until chapter seven. They do, however, cover a good range of difficulty, from simple repetitions of the text material to analytical problems. Answers to selected questions are given at the end of the book. An appendix of references at the end of the book provides a reasonable annotated bibliography, although it is rather heavily loaded with articles and papers. An interesting and valuable approach to the topic, with a number of strengths on its side. copyright Robert M. Slade, 1998 BKAEATCN.RVW 980222