An Engineering Approach to Computer Networking: ATM Networks, the Internet, and the Telephone Network / Edition 1

Paperback (Print)
Buy New
Buy New from BN.com
$58.16
Buy Used
Buy Used from BN.com
$43.04
(Save 38%)
Item is in good condition but packaging may have signs of shelf wear/aging or torn packaging.
Condition: Used – Good details
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 97%)
Other sellers (Paperback)
  • All (23) from $1.99   
  • New (8) from $54.40   
  • Used (15) from $1.99   

Overview

This practical introduction to computer networking takes a unique and highly effective "engineering" approach that not only describes how networks operate but also offers insight into the principles of network design.

An Engineering Approach to Computer Networking simultaneously studies all three major network technologies-Asynchronous Transfer Mode (ATM), Internet, and telephony. You will find clear overviews of these technologies and extensive, up-to-date coverage of all essential networking topics: protocol layering; multiple access; switching; scheduling; naming, addressing, and routing; error and flow control; and traffic management. For each topic, the book identifies fundamental constraints and analyzes the pros and cons of several alternative solutions. Through detailed descriptions of common protocols used in telephone, Internet, and ATM networks-as well as a tour of system design and protocol implementation techniques-this book shows you how these concepts are put to use in real networks.

Practical in focus, An Engineering Approach to Computer Networking features many real-world examples and is supported with on-line material including:

  • Microsoft PowerPoint slides covering the material in the book.
  • A multithreaded, packet-level network simulator that allows users to simulate arbitrary protocols.
  • Simulation exercises covering multiple access, error control, flow control, routing, and scheduling.
  • A bibliography with links to Web sites referred to in the text.
  • A searchable glossary.
  • Solutions to all exercises.

With this deeper understanding of network structure and hands-on experience implementing protocols, you will have an excellent command of the field and be better equipped to design powerful and efficient networks and leading-edge networking software.

S. Keshav, Associate Professor of Computer Science at Cornell University, has employed the engineering approach with great success in networking courses he has taught at the Indian Institute of Technology, Delhi, and Columbia University. Formerly a Member of the Technical Staff at AT&T Bell Laboratories, Dr. Keshav received his Ph.D. in 1991 from the University of California at Berkeley. He can be reached at keshav@ensim.com.


Designed for computer science and electrical engineering majors, this advanced text introduces computer networks. The author takes an engineering approach to the study of networks; he focuses on conceptual understanding and network design tradeoffs -- definitely not the usual protocol or algorithmic approach. This approach removes the need for simplification and inaccurate toy models. These simplified models often lack details on network behavior and alternative solutions.

Read More Show Less

Editorial Reviews

From Barnes & Noble

Fatbrain Review

Designed for computer science and electrical engineering majors, this advanced text introduces computer networks. The author takes an engineering approach to the study of networks; he focuses on conceptual understanding and network design tradeoffs -- definitely not the usual protocol or algorithmic approach. This approach removes the need for simplification and inaccurate toy models. These simplified models often lack details on network behavior and alternative solutions.

With a top down approach, the author overviews today`s global Asynchronous Transfer Mode (ATM), Internet and Telephony networks. He first discusses their histories and technical challenges. He then examines specific system design techniques and requirements such as protocol layering, multiple access, addressing and routing. Here, problems and possible solutions are included. His discussion of system design emphasizes the significance of error and flow control for growing and more complex networks. By the last section, students have the background to delve into the details of protocols, headers, stack performance, interfaces and implementations.

The associated Web site contains additional information, support materials and exercises.

Read More Show Less

Product Details

  • ISBN-13: 9780201634426
  • Publisher: Addison-Wesley
  • Publication date: 5/5/1997
  • Series: Addison-Wesley Professional Computing Series
  • Edition description: New Edition
  • Edition number: 1
  • Pages: 688
  • Product dimensions: 7.48 (w) x 8.89 (h) x 1.49 (d)

Meet the Author

S. Keshav, Associate Professor of Computer Science at Cornell University, has employed the engineering approach with great success in networking courses he has taught at the Indian Institute of Technology, Delhi, and Columbia University. Formerly a Member of the Technical Staff at AT&T Bell Laboratories, Dr. Keshav received his Ph.D. in 1991 from the University of California at Berkeley. He can be reached at skeshav@cs.cornell.edu.

0201634422AB04062001

Read More Show Less

Read an Excerpt

The world is surging toward a digital revolution where computer networks mediate every aspect of modern life, from paying bills to buying real estate, and from reading a book to watching a film. Computer networks are complex systems that almost magically link tens of millions of computers and more than a billion telephones around the world. A single mouse-click in a Web browser can download text, images, and animations from a computer hundreds or thousands of miles away. With a satellite or cellular telephone, even the most intrepid explorer in the remotest corner of the Earth can call home. How do we build these marvelous webs of interconnection? The goal of this book is to introduce readers to what lies at the basis of computer networks, and why they work the way they do. This book is based on a course that I taught at the Indian Institute of Technology, Delhi, India, in the spring of 1993. My aim was to teach students why networks were built the way they were. I wanted them to question every design decision, and to understand how these decisions would change if we changed the assumptions. I call this an engineering approach to computer networking.

Perhaps it is easiest to appreciate this approach by comparing it with some other approaches. Suppose you wanted to route packets in a computer network. A protocol approach would describe the routing protocols in common use and their packet formats and algorithms, and perhaps compare several routing protocols. An analytical approach would model the network as a graph, assume a traffic distribution from every source to every destination, then compute optimal routing. In my opinion, both these approaches, though important, miss thepoint. A purely protocol approach tells the reader how routing works, but not why it was designed that way. The success of an analytical approach depends critically on the assumptions it makes. Unfortunately, because of the complexities of the real world, to make the problem tractable, the analyst must make many simplifying assumptions. In my experience, this simplification leads to "toy" models that do not explain what is really important, and what details we can ignore. In contrast, the engineering approach is to begin by identifying the fundamental constraints on the problem, make reasonable "real-world" assumptions, and then examine several alternative solutions, trading off their pros and cons. An engineer recognizes that no solution is perfect, but that every solution represents a particular trade-off between cost and benefit. This book focuses on identifying the fundamental problems and the trade-offs in solving them.

The second aspect of an engineering approach is to learn by doing. This book is meant to be used with implementation exercises on the Internet and on the REAL network simulator. These exercises, which are available on-line at http://www.aw.com/cp/keshav/engcom.html, allow students to learn protocol design and implementation hands-on. Unlike other textbooks in the area, this book simultaneously studies the principles underlying the Internet, the telephone network, and asynchronous transfer mode (ATM) networks. The Internet is the most successful embodiment of a data network, and its study needs no further justification. The global telephone network is arguably the world's largest computer network, though it is specialized to carry voice. Unfortunately, few outside the telephone industry know much about how the telephone network operates, perhaps because of the layers of acronyms and arcana that surround its operations. This book is a small attempt to rectify the situation. Finally, many see ATM networks as the future of computer networking. Although this may not be true, ATM networks are interesting because they draw on experience with the telephone network and the Internet to build an integrated services network that provides end-to-end quality of service. This ambitious goal has led to a unique set of design decisions that have influenced both networking research and commercial networking products. Thus, ATM networks are well worth studying. Target audience

I assume that readers will have some familiarity with data structures and algorithms, operating systems, elementary algebra, and computer architecture. Deeper material assumes knowledge of calculus and probability. However, most concepts do not require mathematical sophistication beyond a first undergraduate course. In particular, the book almost completely avoids use of queuing theory. Although an appreciation of queuing theory is important in engineering computer networks, I feel queuing theory is best studied as a separate course: to really understand its strengths and its domain of applicability, one needs a deep understanding of the topic that cannot be provided by a book such as this.

The bulk of this book is written at a level suitable for first-year graduate students in computer science or electrical engineering. It is also suitable for advanced undergraduate seniors. Students who intend to work in the area of computer networking or related areas should probably read through the entire text and attempt all the exercises. A number of features make it easy to use for a first undergraduate course. First, every chapter is self-contained, so that instructors can skip entire chapters if necessary. Second, each topic is developed from first principles, with little assumption about the background of the reader, other than some familiarity with mathematics and operating systems. A more sophisticated development that follows from these first principles is marked with vertical sidebars and can be ignored in a first course. Third, most topics are presented at an intuitive level, with little mathematical or algorithmic formalism. Finally, complete solutions are provided to instructors for all numerical exercises.

The book is also targeted at professionals in the field, and at researchers in other areas who want an introduction to the current research frontiers in computer networking. A comprehensive index helps in locating a topic quickly. Moreover, the glossary is keyed to the section or subsection that describes the topic, so that one can rapidly look up the context for a technical term. For those interested in pursuing a topic further, an extensive annotated bibliography references key papers in the field. Organization

The book has three sections. The first section is an overview of three important networking technologies: telephony (Chapter 2), Internet (Chapter 3), and ATM (Chapter 4). Each introductory chapter describes key elements in the technology, some history, and my perception of the important challenges for the technology.

The second section describes the pieces that come together to form a network. Most chapters in this section begin with an overview of a problem and a taxonomy of possible solutions. We then study a number of representative solutions, concentrating on the set of trade-offs they represent. We can apply most of these solutions to any protocol layer, so we study them independently of protocol layering.

The second section starts with an introductory chapter on protocol layering (Chapter 5) and an overview of the art and science of system design (Chapter 6). These chapters provide a "toolkit" of common system design techniques that we will use in subsequent chapters. Chapter 7 introduces the issue of multiple access, which arises in contexts as diverse as satellite networks, cellular telephony, and local area networks. Chapter 8 describes switching, which is fundamental to the operation of all nontrivial networks. In order to provide end-to-end quality of service, switches (and other multiplexing points) must implement a scheduling algorithm. We study scheduling algorithms in Chapter 9. The next two chapters cover naming, addressing, and routing. At this point, the reader knows enough about how to put together a wide-area network. But, for the network to work efficiently, we need to add two more functionalities: error control and flow control. We study these in Chapters 12 and 13. As we build larger and larger networks, the problem of network control becomes significant. We study this in Chapter 14.

The third section applies the tools and techniques discussed in the preceding chapters to understanding and implementing some common protocols. Chapter 15 presents a detailed description of protocol headers in the telephone network, Internet, and ATM networks, tying together the material in the previous chapters. Finally, Chapter 16 is a survey of protocol implementation techniques. Style conventions

Textbooks, almost by definition, tend to be boring. A dry assemblage of facts does little to bring out the controversies, the intellectual fights, and the wide-eyed what-if questions that make networking such an interesting and challenging field. I have attempted to capture some of these in what I call engineering boxes. These boxes go off on a tangent from the text, question standard assumptions, and present viewpoints on the fringe of the mainstream. They offer a subjective commentary on the objective and dry material in the text.

I firmly believe in the use of numerical examples to explain concepts. Solved numerical examples throughout the book reinforce the use of back-of-the-envelope calculations in system design, and simultaneously introduce the student to "real-world" constants that engineers use in their calculations. I hope these examples will motivate readers to do their own rough calculations as they embark on a system design.

Advanced material is in smaller font and set off with vertical sidebars as shown in this paragraph. Such material can be ignored in a first reading, or in an undergradute course, with no loss of continuity. Usage guidelines

In a graduate class, I recommend that the instructor assign Chapters 1-5 as a single reading assignment at the end of the first class. The material here should serve primarily as a review. Subsequent chapters, starting with Chapter 6, can be covered in two or three one-hour lectures per chapter, except Chapter 11, which will require four lectures. In my courses, I used the first hour to cover principles, and the second (and, if necessary, third) to cover specific solutions. I also recommend choosing some exercises for homework and assigning one implementation exercise every two weeks.

In an undergraduate class, the instructor could spend the first several lectures on the first six chapters. The remaining chapters could be covered at the discretion of the instructor, perhaps skipping advanced material. In a first course, Chapters 13, 14, and 16 and advanced topics in Chapters 7, 8, 9, 11, and 12 can be left out entirely.

A reader unfamiliar with the field should probably first read Chapters 1-4. Subseqent chapters may be read as the occasion arises. Much of the material can also be accessed by way of the keyed glossary. Acknowledgments

I have drawn upon many people in the course of writing this book. During my visit to the Indian Institute of Technology, Delhi, where work on this book began, I had the good fortune to interact with Professors B. N. Jain, S. N. Maheshwari, and Huzur Saran. Detailed class notes by Rajeev Leekha and V. N. Padmanabhan gave me the confidence to start writing this book and formed the core of the first draft. My thanks to them.

I gratefully acknowledge the support and good advice from my friends and colleagues at AT&T Bell Laboratories: Joe Condon, Sandy Fraser, Milan Jukl, Chuck Kalmanek, Hemant Kanakia, Alan Kaplan, Brian Kernighan, Rajiv Laroia, Bill Marshall, Partho Mishra, Sam Morgan, K. K. Ramakrishnan, Bob Restrick, Norm Schryer, Ravi Sethi, David Tse, John Venutolo, and Mihalis Yannakakis. In particular, Alan Kaplan's detailed review of the first two drafts cleared up many errors and inconsistencies, and added an insider's perspective on telephone networking. I also drew upon many colleagues to clear up specific questions. These include Tony Ballardie (UC London), Alan Berenbaum (Bell Labs), Jean Bolot (INRIA), Tony DeSimone (AT&T Research), Bharat Doshi (AT&T Research), Andrew Odlyzsko (AT&T Research), Craig Partridge (BBN), K. K. Ramakrishnan (AT&T Research), Nambi Seshadri (AT&T Research), and Sandeep Sibal (AT&T Research). Special thanks to Pawan Goel at UT Austin for his detailed and perceptive comments on Chapter 9.

I received insightful comments from a number of reviewers on earlier drafts of the book. I received comments on the first draft from Rajeev Agrawal (U Wisconsin, Madison), Cagatay Buyukkoc (AT&T Research), Mark Clement (Brigham Young), Matthias Grossglauser (AT&T Research), Peter Haverlock (Bay Networks), Sugih Jamin (U Michigan, Ann Arbor), Alan Kaplan (AT&T Research), Brian Kernighan (Bell Labs), Doug McIlroy (Bell Labs), Sam Morgan (Bell Labs), Will Morse (BHP Petroleum), Badri Nathan (Andersen Consulting), Craig Partridge (BBN), Vern Paxson (Lawrence Berkeley Lab), Daniel Pitt (HP), Huzur Saran (IIT Delhi), Matthew Scott (Fore Systems), Rosen Sharma (Stanford), Harry Singh (Hitachi), David Tse (UC Berkeley), Roya Ulrich (ICSI), and Hui Zhang (Carnegie Mellon U). I received comments on the second draft from John Gulbenkian (Cerf Net), Alan Kaplan (AT&T Research), Brian Kernighan (Bell Labs), Sugih Jamin (U Michigan, Ann Arbor), Will Morse (BHP Petroleum), Daniel Pitt (HP), Ravi Prakash (FTP Software), Matthew Scott (Fore Systems), Huzur Saran (IIT Delhi), and Hui Zhang (Carnegie Mellon U). My thanks to them all.

Read More Show Less

Table of Contents

(Most chapters contain a Summary.)

Preface xiii.

SECTION II. INTRODUCTION.

1. Atoms, Bits, and Networks.

Introduction.

Common Network Technologies.

Networking Concepts and Techniques.

Engineering Computer Networks.

In Closing.

2. The Telephone Network: Concepts, History, and Challenges.

Concepts.

End-Systems.

Transmission.

Switching.

Signaling.

Cellular Communications.

Historical Sketch.

Challenges.

Summary.

3. The Internet: Concepts, History, and Challenges.

Concepts.

Basic Internet Technology.

Addressing.

Routing.

Endpoint Control.

History.

Challenges.

Summary.

4. Atm Networks: Concepts, History, and Challenges.

Virtual Circuits.

Fixed-Size Packets.

Small Packet Size.

Statistical Multiplexing.

Integrated Service.

History.

Challenges.

Summary.

SECTION II. TOOLS AND TECHNIQUES.

5. Protocol Layering.

Protocols and Protocol Layering.

Importance of Layering.

Problems With Layering.

Iso-Osi Reference Model.

The Seven Layers.

Summary.

6. System Design.

Introduction.

Resource Constraints and Their Metrics.

Common Design Techniques.

Performance Analysis and Tuning.

Summary.

7. Multiple Access.

Introduction.

Choices and Constraints.

Base Technologies.

Centralized Access Schemes.

Distributed Schemes.

Summary.

8. Switching.

Introduction.

Circuit Switching.

Packet Switching.

Switch Fabrics.

Buffering.

Multicasting.

Summary.

9. Scheduling.

Introduction.

Requirements.

Fundamental Choices.

Scheduling Best-Effort Connections.

Scheduling Guaranteed-Service Connections.

Comparison.

Packet Dropping.

Summary.

10. Naming and Addressing.

Introduction.

Naming and Addressing.

Hierarchical Naming.

Addressing.

Addressing in the Telephone Network.

Addressing in the Internet.

Nsaps: Addressing in ATM Networks.

Name Resolution.

Datalink Layer Addressing.

Finding Datalink Layer Addresses.

Summary.

11. Routing.

Introduction.

Routing Protocol Requirements.

Choices.

Routing in the Telephone Network.

Distance-Vector Routing.

Link-State Routing.

Choosing Link Costs.

Hierarchical Routing.

Internet Routing Protocols.

Routing Within a Broadcast Lan.

Multicast Routing.

Routing With Policy Constraints.

Routing for Mobile Hosts.

Summary.

12. Error Control.

Causes of Bit Errors.

Bit-Error Detection and Correction.

Causes of Packet Errors.

Packet-Error Detection and Correction.

Summary.

13. Flow Control.

Model.

Classification.

Open-Loop Flow Control.

Closed-Loop Flow Control.

Hybrid Flow Control.

Summary.

14. Traffic Management.

Introduction.

An Economic Framework for Traffic Management.

Traffic Models.

Traffic Classes.

Time Scales of Traffic Management.

Scheduling.

Renegotiation.

Signaling.

Admission Control.

Peak-Load Pricing.

Capacity Planning.

Summary.

SECTION III. PRACTICE.

15. Common Protocols.

Introduction.

Telephone Network Protocols.

Internet Protocols.

Atm Network Protocols.

Ip Over Atm.

Summary.

16. Protocol Implementation.

Introduction.

Factors Affecting Protocol Stack Performance.

Common Protocol Stack Procedures.

Partitioning Strategies.

Interface Among Protocol Layers.

Protocol Implementation.

Some Rules of Thumb.

Summary.

References.

Glossary.

Answers to Review Questions and Selected Exercises.

Index. 0201634422T04062001

Read More Show Less

Preface

The world is surging toward a digital revolution where computer networks mediate every aspect of modern life, from paying bills to buying real estate, and from reading a book to watching a film. Computer networks are complex systems that almost magically link tens of millions of computers and more than a billion telephones around the world. A single mouse-click in a Web browser can download text, images, and animations from a computer hundreds or thousands of miles away. With a satellite or cellular telephone, even the most intrepid explorer in the remotest corner of the Earth can call home. How do we build these marvelous webs of interconnection? The goal of this book is to introduce readers to what lies at the basis of computer networks, and why they work the way they do. This book is based on a course that I taught at the Indian Institute of Technology, Delhi, India, in the spring of 1993. My aim was to teach students why networks were built the way they were. I wanted them to question every design decision, and to understand how these decisions would change if we changed the assumptions. I call this an engineering approach to computer networking.

Perhaps it is easiest to appreciate this approach by comparing it with some other approaches. Suppose you wanted to route packets in a computer network. A protocol approach would describe the routing protocols in common use and their packet formats and algorithms, and perhaps compare several routing protocols. An analytical approach would model the network as a graph, assume a traffic distribution from every source to every destination, then compute optimal routing. In my opinion, both these approaches, though important, miss the point. A purely protocol approach tells the reader how routing works, but not why it was designed that way. The success of an analytical approach depends critically on the assumptions it makes. Unfortunately, because of the complexities of the real world, to make the problem tractable, the analyst must make many simplifying assumptions. In my experience, this simplification leads to "toy" models that do not explain what is really important, and what details we can ignore. In contrast, the engineering approach is to begin by identifying the fundamental constraints on the problem, make reasonable "real-world" assumptions, and then examine several alternative solutions, trading off their pros and cons. An engineer recognizes that no solution is perfect, but that every solution represents a particular trade-off between cost and benefit. This book focuses on identifying the fundamental problems and the trade-offs in solving them.

The second aspect of an engineering approach is to learn by doing. This book is meant to be used with implementation exercises on the Internet and on the REAL network simulator. These exercises, which are available on-line at http://www.aw.com/cp/keshav/engcom.html, allow students to learn protocol design and implementation hands-on. Unlike other textbooks in the area, this book simultaneously studies the principles underlying the Internet, the telephone network, and asynchronous transfer mode (ATM) networks. The Internet is the most successful embodiment of a data network, and its study needs no further justification. The global telephone network is arguably the world's largest computer network, though it is specialized to carry voice. Unfortunately, few outside the telephone industry know much about how the telephone network operates, perhaps because of the layers of acronyms and arcana that surround its operations. This book is a small attempt to rectify the situation. Finally, many see ATM networks as the future of computer networking. Although this may not be true, ATM networks are interesting because they draw on experience with the telephone network and the Internet to build an integrated services network that provides end-to-end quality of service. This ambitious goal has led to a unique set of design decisions that have influenced both networking research and commercial networking products. Thus, ATM networks are well worth studying.

Target audience

I assume that readers will have some familiarity with data structures and algorithms, operating systems, elementary algebra, and computer architecture. Deeper material assumes knowledge of calculus and probability. However, most concepts do not require mathematical sophistication beyond a first undergraduate course. In particular, the book almost completely avoids use of queuing theory. Although an appreciation of queuing theory is important in engineering computer networks, I feel queuing theory is best studied as a separate course: to really understand its strengths and its domain of applicability, one needs a deep understanding of the topic that cannot be provided by a book such as this.

The bulk of this book is written at a level suitable for first-year graduate students in computer science or electrical engineering. It is also suitable for advanced undergraduate seniors. Students who intend to work in the area of computer networking or related areas should probably read through the entire text and attempt all the exercises. A number of features make it easy to use for a first undergraduate course. First, every chapter is self-contained, so that instructors can skip entire chapters if necessary. Second, each topic is developed from first principles, with little assumption about the background of the reader, other than some familiarity with mathematics and operating systems. A more sophisticated development that follows from these first principles is marked with vertical sidebars and can be ignored in a first course. Third, most topics are presented at an intuitive level, with little mathematical or algorithmic formalism. Finally, complete solutions are provided to instructors for all numerical exercises.

The book is also targeted at professionals in the field, and at researchers in other areas who want an introduction to the current research frontiers in computer networking. A comprehensive index helps in locating a topic quickly. Moreover, the glossary is keyed to the section or subsection that describes the topic, so that one can rapidly look up the context for a technical term. For those interested in pursuing a topic further, an extensive annotated bibliography references key papers in the field.

Organization

The book has three sections. The first section is an overview of three important networking technologies: telephony (Chapter 2), Internet (Chapter 3), and ATM (Chapter 4). Each introductory chapter describes key elements in the technology, some history, and my perception of the important challenges for the technology.

The second section describes the pieces that come together to form a network. Most chapters in this section begin with an overview of a problem and a taxonomy of possible solutions. We then study a number of representative solutions, concentrating on the set of trade-offs they represent. We can apply most of these solutions to any protocol layer, so we study them independently of protocol layering.

The second section starts with an introductory chapter on protocol layering (Chapter 5) and an overview of the art and science of system design (Chapter 6). These chapters provide a "toolkit" of common system design techniques that we will use in subsequent chapters. Chapter 7 introduces the issue of multiple access, which arises in contexts as diverse as satellite networks, cellular telephony, and local area networks. Chapter 8 describes switching, which is fundamental to the operation of all nontrivial networks. In order to provide end-to-end quality of service, switches (and other multiplexing points) must implement a scheduling algorithm. We study scheduling algorithms in Chapter 9. The next two chapters cover naming, addressing, and routing. At this point, the reader knows enough about how to put together a wide-area network. But, for the network to work efficiently, we need to add two more functionalities: error control and flow control. We study these in Chapters 12 and 13. As we build larger and larger networks, the problem of network control becomes significant. We study this in Chapter 14.

The third section applies the tools and techniques discussed in the preceding chapters to understanding and implementing some common protocols. Chapter 15 presents a detailed description of protocol headers in the telephone network, Internet, and ATM networks, tying together the material in the previous chapters. Finally, Chapter 16 is a survey of protocol implementation techniques.

Style conventions

Textbooks, almost by definition, tend to be boring. A dry assemblage of facts does little to bring out the controversies, the intellectual fights, and the wide-eyed what-if questions that make networking such an interesting and challenging field. I have attempted to capture some of these in what I call engineering boxes. These boxes go off on a tangent from the text, question standard assumptions, and present viewpoints on the fringe of the mainstream. They offer a subjective commentary on the objective and dry material in the text.

I firmly believe in the use of numerical examples to explain concepts. Solved numerical examples throughout the book reinforce the use of back-of-the-envelope calculations in system design, and simultaneously introduce the student to "real-world" constants that engineers use in their calculations. I hope these examples will motivate readers to do their own rough calculations as they embark on a system design.

Advanced material is in smaller font and set off with vertical sidebars as shown in this paragraph. Such material can be ignored in a first reading, or in an undergradute course, with no loss of continuity.

Usage guidelines

In a graduate class, I recommend that the instructor assign Chapters 1-5 as a single reading assignment at the end of the first class. The material here should serve primarily as a review. Subsequent chapters, starting with Chapter 6, can be covered in two or three one-hour lectures per chapter, except Chapter 11, which will require four lectures. In my courses, I used the first hour to cover principles, and the second (and, if necessary, third) to cover specific solutions. I also recommend choosing some exercises for homework and assigning one implementation exercise every two weeks.

In an undergraduate class, the instructor could spend the first several lectures on the first six chapters. The remaining chapters could be covered at the discretion of the instructor, perhaps skipping advanced material. In a first course, Chapters 13, 14, and 16 and advanced topics in Chapters 7, 8, 9, 11, and 12 can be left out entirely.

A reader unfamiliar with the field should probably first read Chapters 1-4. Subseqent chapters may be read as the occasion arises. Much of the material can also be accessed by way of the keyed glossary.

Acknowledgments

I have drawn upon many people in the course of writing this book. During my visit to the Indian Institute of Technology, Delhi, where work on this book began, I had the good fortune to interact with Professors B. N. Jain, S. N. Maheshwari, and Huzur Saran. Detailed class notes by Rajeev Leekha and V. N. Padmanabhan gave me the confidence to start writing this book and formed the core of the first draft. My thanks to them.

I gratefully acknowledge the support and good advice from my friends and colleagues at AT&T Bell Laboratories: Joe Condon, Sandy Fraser, Milan Jukl, Chuck Kalmanek, Hemant Kanakia, Alan Kaplan, Brian Kernighan, Rajiv Laroia, Bill Marshall, Partho Mishra, Sam Morgan, K. K. Ramakrishnan, Bob Restrick, Norm Schryer, Ravi Sethi, David Tse, John Venutolo, and Mihalis Yannakakis. In particular, Alan Kaplan's detailed review of the first two drafts cleared up many errors and inconsistencies, and added an insider's perspective on telephone networking. I also drew upon many colleagues to clear up specific questions. These include Tony Ballardie (UC London), Alan Berenbaum (Bell Labs), Jean Bolot (INRIA), Tony DeSimone (AT&T Research), Bharat Doshi (AT&T Research), Andrew Odlyzsko (AT&T Research), Craig Partridge (BBN), K. K. Ramakrishnan (AT&T Research), Nambi Seshadri (AT&T Research), and Sandeep Sibal (AT&T Research). Special thanks to Pawan Goel at UT Austin for his detailed and perceptive comments on Chapter 9.

I received insightful comments from a number of reviewers on earlier drafts of the book. I received comments on the first draft from Rajeev Agrawal (U Wisconsin, Madison), Cagatay Buyukkoc (AT&T Research), Mark Clement (Brigham Young), Matthias Grossglauser (AT&T Research), Peter Haverlock (Bay Networks), Sugih Jamin (U Michigan, Ann Arbor), Alan Kaplan (AT&T Research), Brian Kernighan (Bell Labs), Doug McIlroy (Bell Labs), Sam Morgan (Bell Labs), Will Morse (BHP Petroleum), Badri Nathan (Andersen Consulting), Craig Partridge (BBN), Vern Paxson (Lawrence Berkeley Lab), Daniel Pitt (HP), Huzur Saran (IIT Delhi), Matthew Scott (Fore Systems), Rosen Sharma (Stanford), Harry Singh (Hitachi), David Tse (UC Berkeley), Roya Ulrich (ICSI), and Hui Zhang (Carnegie Mellon U). I received comments on the second draft from John Gulbenkian (Cerf Net), Alan Kaplan (AT&T Research), Brian Kernighan (Bell Labs), Sugih Jamin (U Michigan, Ann Arbor), Will Morse (BHP Petroleum), Daniel Pitt (HP), Ravi Prakash (FTP Software), Matthew Scott (Fore Systems), Huzur Saran (IIT Delhi), and Hui Zhang (Carnegie Mellon U). My thanks to them all.

0201634422P04062001

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)