logo资料库

Computer Networking A Top-Down Approach (7th Edition).pdf

第1页 / 共856页
第2页 / 共856页
第3页 / 共856页
第4页 / 共856页
第5页 / 共856页
第6页 / 共856页
第7页 / 共856页
第8页 / 共856页
资料共856页,剩余部分请下载后查看
Computer Networking: A Top-Down Approach, 7th Edition
Content
Chapter 1 Computer Networks and the Internet
1.1 What Is the Internet?
1.2 The Network Edge
1.3 The Network Core
1.4 Delay, Loss, and Throughput in Packet-Switched Networks
1.5 Protocol Layers and Their Service Models
1.6 Networks Under Attack
1.7 History of Computer Networking and the Internet
1.8 Summary
Homework Problems and Questions
Chapter 2 Application Layer
2.1 Principles of Network Applications
2.2 The Web and HTTP
2.3 Electronic Mail in the Internet
2.4 DNS—The Internet’s Directory Service
2.5 Peer-to-Peer File Distribution
2.6 Video Streaming and Content Distribution Networks
2.7 Socket Programming: Creating Network Applications
2.8 Summary
Homework Problems and Questions
Chapter 3 Transport Layer
3.1 Introduction and Transport-Layer Services
3.2 Multiplexing and Demultiplexing
3.3 Connectionless Transport: UDP
3.4 Principles of Reliable Data Transfer
3.5 Connection-Oriented Transport: TCP
3.6 Principles of Congestion Control
3.7 TCP Congestion Control
3.8 Summary
Homework Problems and Questions
Chapter 4 The Network Layer: Data Plane
4.1 Overview of Network Layer
4.2 What’s Inside a Router?
4.3 The Internet Protocol (IP): IPv4, Addressing, IPv6, and More
4.4 Generalized Forwarding and SDN
4.5 Summary
Homework Problems and Questions
Chapter 5 The Network Layer: Control Plane
5.1 Introduction
5.2 Routing Algorithms
5.3 Intra-AS Routing in the Internet: OSPF
5.4 Routing Among the ISPs: BGP
5.5 The SDN Control Plane
5.6 ICMP: The Internet Control Message Protocol
5.7 Network Management and SNMP
5.7 Summary
Homework Problems and Questions
Chapter 6 The Link Layer and LANs
6.1 Introduction to the Link Layer
6.2 Error-Detection and -Correction Techniques
6.3 Multiple Access Links and Protocols
6.4 Switched Local Area Networks
6.5 Link Virtualization: A Network as a Link Layer
6.6 Data Center Networking
6.7 Retrospective: A Day in the Life of a Web Page Request
6.8 Summary
Homework Problems and Questions
Chapter 7 Wireless and Mobile Networks
7.1 Introduction
7.2 Wireless Links and Network Characteristics
7.3 WiFi: 802.11 Wireless LANs
7.4 Cellular Internet Access
7.5 Mobility Management: Principles
7.6 Mobile IP
7.7 Managing Mobility in Cellular Networks
7.8 Wireless and Mobility: Impact on ­Higher-Layer Protocols
7.9 Summary
Homework Problems and Questions
Chapter 8 Security in Computer Networks
8.1 What Is Network Security?
8.2 Principles of Cryptography
8.3 Message Integrity and Digital Signatures
8.4 End-Point Authentication
8.5 Securing E-Mail
8.6 Securing TCP Connections: SSL
8.7 Network-Layer Security: IPsec and Virtual Private Networks
8.8 Securing Wireless LANs
8.9 Operational Security: Firewalls and Intrusion Detection Systems
8.10 Summary
Homework Problems and Questions
Chapter 9 Multimedia Networking
9.1 Multimedia Networking Applications
9.2 Streaming Stored Video
9.3 Voice-over-IP
9.4 Protocols for Real-Time Conversational Applications
9.5 Network Support for Multimedia
9.6 Summary
Homework Problems and Questions
References
Index
Computer Networking A Top-Down Approach Seventh Edition James F. Kurose University of Massachusetts, Amherst Keith W. Ross NYU and NYU Shanghai Boston  Columbus Indianapolis New York San Francisco Hoboken Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montréal Toronto Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo Vice President, Editorial Director, ECS: Marcia Horton Acquisitions Editor: Matt Goldstein Editorial Assistant: Kristy Alaura Vice President of Marketing: Christy Lesko Director of Field Marketing: Tim Galligan Product Marketing Manager: Bram Van Kempen Field Marketing Manager: Demetrius Hall Marketing Assistant: Jon Bryant Director of Product Management: Erin Gregg Team Lead, Program and Project Management: Scott Disanno Program Manager: Joanne Manning and Carole Snyder Project Manager: Katrina Ostler, Ostler Editorial, Inc. Senior Specialist, Program Planning and Support: Maura Zaldivar-Garcia
Cover Designer: Joyce Wells Manager, Rights and Permissions: Ben Ferrini Project Manager, Rights and Permissions: Jenny Hoffman, Aptara Corporation Inventory Manager: Ann Lam Cover Image: Marc Gutierrez/Getty Images Media Project Manager: Steve Wright Composition: Cenveo Publishing Services Printer/Binder: Edwards Brothers Malloy Cover and Insert Printer: Phoenix Color/ Hagerstown Credits and acknowledgments borrowed from other sources and reproduced, with ­permission, in this textbook appear on appropriate page within text. Copyright © 2017, 2013, 2010 Pearson Education, Inc. All rights reserved. Manufactured in the United States of America. This publication is protected by Copyright, and permission should be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, request forms and the appropriate contacts within the Pearson Education Global Rights & Permissions Department, please visit www.pearsoned.com/permissions/. Many of the designations by manufacturers and seller to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed in initial caps or all caps. Library of Congress Cataloging-in-Publication Data Names: Kurose, James F. | Ross, Keith W., 1956- Title: Computer networking: a top-down approach / James F. Kurose, University of Massachusetts, Amherst, Keith W. Ross, NYU and NYU Shanghai. Description: Seventh edition. | Hoboken, New Jersey: Pearson, [2017] | Includes bibliographical references and index. Identifiers: LCCN 2016004976 | ISBN 9780133594140 | ISBN 0133594149 Subjects: LCSH: Internet. | Computer networks. Classification: LCC TK5105.875.I57 K88 2017 | DDC 004.6-dc23
LC record available at http://lccn.loc.gov/2016004976 ISBN-10:     0-13-359414-9 ISBN-13: 978-0-13-359414-0 About the Authors Jim Kurose Jim Kurose is a Distinguished University Professor of Computer Science at the University of Massachusetts, Amherst. He is currently on leave from the University of Massachusetts, serving as an Assistant Director at the US National Science Foundation, where he leads the Directorate of Computer and Information Science and Engineering. Dr. Kurose has received a number of recognitions for his educational activities including Outstanding Teacher Awards from the National Technological University (eight times), the University of Massachusetts, and the Northeast Association of Graduate Schools. He received the IEEE Taylor Booth Education Medal and was recognized for his leadership of Massachusetts’ Commonwealth Information Technology Initiative. He has won several conference best paper awards and received the IEEE Infocom Achievement Award and the ACM Sigcomm Test of Time Award. Dr. Kurose is a former Editor-in-Chief of IEEE Transactions on Communications and of IEEE/ACM Transactions on Networking. He has served as Technical Program co-Chair for IEEE Infocom, ACM SIGCOMM, ACM Internet Measurement Conference, and ACM SIGMETRICS. He is a Fellow of the IEEE and the ACM. His research ­interests include network protocols and architecture, network measurement, multimedia communication, and modeling and performance ­evaluation. He holds a PhD in Computer Science from Columbia University. Keith Ross
Keith Ross is the Dean of Engineering and Computer Science at NYU Shanghai and the Leonard J. Shustek Chair Professor in the Computer Science and Engineering Department at NYU. Previously he was at University of Pennsylvania (13 years), Eurecom Institute (5 years) and Polytechnic University (10 years). He received a B.S.E.E from Tufts University, a M.S.E.E. from Columbia University, and a Ph.D. in Computer and Control Engineering from The University of Michigan. Keith Ross is also the co-founder and original CEO of Wimba, which develops online multimedia applications for e-learning and was acquired by Blackboard in 2010. Professor Ross’s research interests are in privacy, social networks, peer-to-peer networking, Internet measurement, content distribution networks, and stochastic modeling. He is an ACM Fellow, an IEEE Fellow, recipient of the Infocom 2009 Best Paper Award, and recipient of 2011 and 2008 Best Paper Awards for Multimedia Communications (awarded by IEEE Communications Society). He has served on numerous journal editorial boards and conference program committees, including IEEE/ACM Transactions on Networking, ACM SIGCOMM, ACM CoNext, and ACM Internet Measurement Conference. He also has served as an advisor to the Federal Trade Commission on P2P file sharing. To Julie and our three precious ones—Chris, Charlie, and Nina JFK A big THANKS to my professors, colleagues, and students all over the world. KWR Preface Welcome to the seventh edition of Computer Networking: A Top-Down Approach. Since the publication of the first edition 16 years ago, our book has been adopted for use at many hundreds of colleges and universities, translated into 14 languages, and used by over one hundred thousand students and practitioners worldwide. We’ve heard from many of these readers and have been overwhelmed by the ­positive ­response.
What’s New in the Seventh Edition? We think one important reason for this success has been that our book continues to offer a fresh and timely approach to computer networking instruction. We’ve made changes in this seventh edition, but we’ve also kept unchanged what we believe (and the instructors and students who have used our book have confirmed) to be the most important aspects of this book: its top-down approach, its focus on the Internet and a modern treatment of computer networking, its attention to both principles and practice, and its accessible style and approach toward learning about computer networking. Nevertheless, the seventh edition has been revised and updated substantially. Long-time readers of our book will notice that for the first time since this text was published, we’ve changed the organization of the chapters themselves. The network layer, which had been previously covered in a single chapter, is now covered in Chapter 4 (which focuses on the so-called “data plane” component of the network layer) and Chapter 5 (which focuses on the network layer’s “control plane”). This expanded coverage of the network layer reflects the swift rise in importance of software-defined networking (SDN), arguably the most important and exciting advance in networking in decades. Although a relatively recent innovation, SDN has been rapidly adopted in practice—so much so that it’s already hard to imagine an introduction to modern computer networking that doesn’t cover SDN. The topic of network management, previously covered in Chapter 9, has now been folded into the new Chapter 5. As always, we’ve also updated many other sections of the text to reflect recent changes in the dynamic field of networking since the sixth edition. As always, material that has been retired from the printed text can always be found on this book’s Companion Website. The most important updates are the following: Chapter 1 has been updated to reflect the ever-growing reach and use of the ­Internet. Chapter 2, which covers the application layer, has been significantly updated. We’ve removed the material on the FTP protocol and distributed hash tables to make room for a new section on application-level video streaming and ­content distribution networks, together with Netflix and YouTube case studies. The socket programming sections have been updated from Python 2 to Python 3. Chapter 3, which covers the transport layer, has been modestly updated. The ­material on asynchronous transport mode (ATM) networks has been replaced by more modern material on the Internet’s explicit congestion notification (ECN), which teaches the same principles. Chapter 4 covers the “data plane” component of the network layer—the per-router forwarding function that determine how a packet arriving on one of a router’s input links is forwarded to one of that router’s output links. We updated the material on traditional Internet forwarding found in all previous editions, and added material on packet scheduling. We’ve also added a new section on generalized forwarding, as practiced in SDN. There are also numerous updates throughout the chapter. Material on multicast and broadcast communication has been removed to make way for the new material. In Chapter 5, we cover the control plane functions of the network layer—the ­network-wide logic that controls how a datagram is routed along an end-to-end path of routers from the source host to the destination host. As in previous ­editions, we cover routing algorithms, as well as routing protocols (with an updated treatment of BGP) used in today’s Internet. We’ve added a significant new section on the SDN control plane, where routing and other functions are implemented in so-called SDN controllers. Chapter 6, which now covers the link layer, has an updated treatment of Ethernet, and of data center networking. Chapter 7, which covers wireless and mobile networking, contains updated ­material on 802.11 (so-called “WiFi) networks and cellular networks, including 4G and LTE. Chapter 8, which covers network security and was extensively updated in the sixth edition, has only
modest updates in this seventh edition. Chapter 9, on multimedia networking, is now slightly “thinner” than in the sixth edition, as material on video streaming and content distribution networks has been moved to Chapter 2, and material on packet scheduling has been incorporated into Chapter 4. Significant new material involving end-of-chapter problems has been added. As with all previous editions, homework problems have been revised, added, and removed. As always, our aim in creating this new edition of our book is to continue to provide a focused and modern treatment of computer networking, emphasizing both principles and practice. Audience This textbook is for a first course on computer networking. It can be used in both computer science and electrical engineering departments. In terms of programming languages, the book assumes only that the student has experience with C, C++, Java, or Python (and even then only in a few places). Although this book is more precise and analytical than many other introductory computer networking texts, it rarely uses any mathematical concepts that are not taught in high school. We have made a deliberate effort to avoid using any advanced calculus, probability, or stochastic process concepts (although we’ve included some homework problems for students with this advanced background). The book is therefore appropriate for undergraduate courses and for first-year graduate courses. It should also be useful to practitioners in the telecommunications industry. What Is Unique About This Textbook? The subject of computer networking is enormously complex, involving many concepts, protocols, and technologies that are woven together in an intricate manner. To cope with this scope and complexity, many computer networking texts are often organized around the “layers” of a network architecture. With a layered organization, students can see through the complexity of computer networking—they learn about the distinct concepts and protocols in one part of the architecture while seeing the big picture of how all parts fit together. From a pedagogical perspective, our personal experience has been that such a layered approach indeed works well. Nevertheless, we have found that the traditional approach of teaching—bottom up; that is, from the physical layer towards the application layer—is not the best approach for a modern course on computer networking. A Top-Down Approach Our book broke new ground 16 years ago by treating networking in a top-down ­manner—that is, by beginning at the application layer and working its way down toward the physical layer. The feedback we received from teachers and students alike have confirmed that this top-down approach has many advantages and does indeed work well pedagogically. First, it places emphasis on the application layer (a “high growth area” in networking). Indeed, many of the recent revolutions in ­computer networking—including the Web, peer-to-peer file sharing, and media streaming—have taken place at the application layer. An early emphasis on application-layer issues differs from the approaches taken in most other texts, which have only a small amount of material on network applications, their requirements, application-layer paradigms (e.g., client-server and peer-to-peer), and application programming ­interfaces. ­Second, our experience as instructors (and that of many instructors who have used this text) has been that teaching networking applications near the beginning of the course is a powerful motivational tool. Students are thrilled to learn about how networking
applications work—applications such as e-mail and the Web, which most students use on a daily basis. Once a student understands the applications, the student can then understand the network services needed to support these applications. The student can then, in turn, examine the various ways in which such services might be provided and implemented in the lower layers. Covering applications early thus provides motivation for the remainder of the text. Third, a top-down approach enables instructors to introduce network application development at an early stage. Students not only see how popular applications and protocols work, but also learn how easy it is to create their own network ­applications and application-level protocols. With the top-down approach, students get early ­exposure to the notions of socket programming, service models, and ­protocols—important concepts that resurface in all subsequent layers. By providing socket programming examples in Python, we highlight the central ideas without confusing students with complex code. Undergraduates in electrical engineering and computer science should not have difficulty following the Python code. An Internet Focus Although we dropped the phrase “Featuring the Internet” from the title of this book with the fourth edition, this doesn’t mean that we dropped our focus on the Internet. Indeed, nothing could be further from the case! Instead, since the Internet has become so pervasive, we felt that any networking textbook must have a significant focus on the Internet, and thus this phrase was somewhat unnecessary. We continue to use the Internet’s architecture and protocols as primary vehicles for studying fundamental computer networking concepts. Of course, we also include concepts and protocols from other network architectures. But the spotlight is clearly on the Internet, a fact reflected in our organizing the book around the Internet’s five-layer architecture: the application, transport, network, link, and physical layers. Another benefit of spotlighting the Internet is that most computer science and electrical engineering students are eager to learn about the Internet and its protocols. They know that the Internet has been a revolutionary and disruptive technology and can see that it is profoundly changing our world. Given the enormous relevance of the Internet, students are naturally curious about what is “under the hood.” Thus, it is easy for an instructor to get students excited about basic principles when using the Internet as the guiding focus. Teaching Networking Principles Two of the unique features of the book—its top-down approach and its focus on the Internet—have appeared in the titles of our book. If we could have squeezed a third phrase into the subtitle, it would have contained the word principles. The field of networking is now mature enough that a number of fundamentally important issues can be identified. For example, in the transport layer, the fundamental issues include reliable communication over an unreliable network layer, connection establishment/ teardown and handshaking, congestion and flow control, and multiplexing. Three fundamentally important network-layer issues are determining “good” paths between two routers, interconnecting a large number of heterogeneous networks, and managing the complexity of a modern network. In the link layer, a fundamental problem is sharing a multiple access channel. In network security, techniques for providing confidentiality, authentication, and message integrity are all based on cryptographic fundamentals. This text identifies fundamental networking issues and studies approaches towards addressing these issues. The student learning these principles will gain knowledge with a long “shelf life”—long after today’s network standards and protocols have become obsolete, the principles they embody will remain important and relevant. We believe that the combination of using the Internet to get the student’s foot in the door and then emphasizing fundamental issues and solution approaches will allow the student to
分享到:
收藏