Additional Information
Book Details
Abstract
For courses in Networking/Communications.
Motivate your students with a top-down, layered approach to computer networking
Unique among computer networking texts, the Seventh Edition of the popular Computer Networking: A Top Down Approach builds on the author’s long tradition of teaching this complex subject through a layered approach in a “top-down manner.” The text works its way from the application layer down toward the physical layer, motivating students by exposing them to important concepts early in their study of networking. Focusing on the Internet and the fundamentally important issues of networking, this text provides an excellent foundation for students in computer science and electrical engineering, without requiring extensive knowledge of programming or mathematics. The Seventh Edition has been updated to reflect the most important and exciting recent advances in networking.
MasteringComputerScience™ not included. Students, if MasteringComputerScience is a recommended/mandatory component of the course, please ask your instructor for the correct ISBN and course ID. MasteringComputerScience should only be purchased when required by an instructor. Instructors, contact your Pearson representative for more information.
MasteringComputerScience is an online homework, tutorial, and assessment program designed to work with this text to engage students and improve results. Interactive, self-paced tutorials provide individualized coaching to help students stay on track. With a wide range of activities available, students can actively learn, understand, and retain even the most difficult concepts.
Table of Contents
Section Title | Page | Action | Price |
---|---|---|---|
Cover | Cover | ||
Title Page | 1 | ||
Copyright Page | 2 | ||
About the Authors | 3 | ||
Preface | 7 | ||
Contents | 19 | ||
Chapter 1: Computer Networks and the Internet | 29 | ||
1.1. What Is the Internet? | 30 | ||
1.1.1. A Nuts-and-Bolts Description | 30 | ||
1.1.2. A Services Description | 33 | ||
1.1.3. What Is a Protocol? | 35 | ||
1.2. The Network Edge | 37 | ||
1.2.1. Access Networks | 40 | ||
1.2.2. Physical Media | 46 | ||
1.3. The Network Core | 49 | ||
1.3.1. Packet Switching | 51 | ||
1.3.2. Circuit Switching | 55 | ||
1.3.3. A Network of Networks | 59 | ||
1.4. Delay, Loss, and Throughput in Packet-Switched Networks | 63 | ||
1.4.1. Overview of Delay in Packet-Switched Networks | 63 | ||
1.4.2. Queuing Delay and Packet Loss | 67 | ||
1.4.3. End-to-End Delay | 69 | ||
1.4.4. Throughput in Computer Networks | 71 | ||
1.5. Protocol Layers and Their Service Models | 75 | ||
1.5.1. Layered Architecture | 75 | ||
1.5.2. Encapsulation | 81 | ||
1.6. Networks Under Attack | 83 | ||
1.7. History of Computer Networking and the Internet | 87 | ||
1.7.1. The Development of Packet Switching: 1961–1972 | 87 | ||
1.7.2. Proprietary Networks and Internetworking: 1972–1980 | 88 | ||
1.7.3. A Proliferation of Networks: 1980–1990 | 90 | ||
1.7.4. The Internet Explosion: The 1990s | 91 | ||
1.7.5. The New Millennium | 92 | ||
1.8. Summary | 93 | ||
Homework Problems and Questions | 95 | ||
Wireshark Lab | 105 | ||
Interview: Leonard Kleinrock | 107 | ||
Chapter 2: Application Layer | 111 | ||
2.1. Principles of Network Applications | 112 | ||
2.1.1. Network Application Architectures | 114 | ||
2.1.2. Processes Communicating | 116 | ||
2.1.3. Transport Services Available to Applications | 118 | ||
2.1.4. Transport Services Provided by the Internet | 121 | ||
2.1.5. Application-Layer Protocols | 124 | ||
2.1.6. Network Applications Covered in This Book | 125 | ||
2.2. The Web and HTTP | 126 | ||
2.2.1. Overview of HTTP | 126 | ||
2.2.2. Non-Persistent and Persistent Connections | 128 | ||
2.2.3. HTTP Message Format | 131 | ||
2.2.4. User-Server Interaction: Cookies | 136 | ||
2.2.5. Web Caching | 138 | ||
2.3. Electronic Mail in the Internet | 144 | ||
2.3.1. SMTP | 146 | ||
2.3.2. Comparison with HTTP | 149 | ||
2.3.3. Mail Message Formats | 149 | ||
2.3.4. Mail Access Protocols | 150 | ||
2.4. DNS—The Internet’s Directory Service | 154 | ||
2.4.1. Services Provided by DNS | 155 | ||
2.4.2. Overview of How DNS Works | 157 | ||
2.4.3. DNS Records and Messages | 163 | ||
2.5. Peer-to-Peer Applications | 168 | ||
2.5.1. P2P File Distribution | 168 | ||
2.6. Video Streaming and Content Distribution Networks | 175 | ||
2.6.1. Internet Video | 175 | ||
2.6.2. HTTP Streaming and DASH | 176 | ||
2.6.3. Content Distribution Networks | 177 | ||
2.6.4. Case Studies: Netflix, YouTube, and Kankan | 181 | ||
2.7. Socket Programming: Creating Network Applications | 185 | ||
2.7.1. Socket Programming with UDP | 187 | ||
2.7.2. Socket Programming with TCP | 192 | ||
2.8. Summary | 198 | ||
Homework Problems and Questions | 199 | ||
Socket Programming Assignments | 208 | ||
Wireshark Labs: HTTP, DNS | 210 | ||
Interview: Marc Andreessen | 212 | ||
Chapter 3: Transport Layer | 215 | ||
3.1. Introduction and Transport-Layer Services | 216 | ||
3.1.1. Relationship Between Transport and Network Layers | 216 | ||
3.1.2. Overview of the Transport Layer in the Internet | 219 | ||
3.2. Multiplexing and Demultiplexing | 221 | ||
3.3. Connectionless Transport: UDP | 228 | ||
3.3.1. UDP Segment Structure | 232 | ||
3.3.2. UDP Checksum | 232 | ||
3.4. Principles of Reliable Data Transfer | 234 | ||
3.4.1. Building a Reliable Data Transfer Protocol | 236 | ||
3.4.2. Pipelined Reliable Data Transfer Protocols | 245 | ||
3.4.3. Go-Back-N (GBN) | 249 | ||
3.4.4. Selective Repeat (SR) | 254 | ||
3.5. Connection-Oriented Transport: TCP | 261 | ||
3.5.1. The TCP Connection | 261 | ||
3.5.2. TCP Segment Structure | 264 | ||
3.5.3. Round-Trip Time Estimation and Timeout | 269 | ||
3.5.4. Reliable Data Transfer | 272 | ||
3.5.5. Flow Control | 280 | ||
3.5.6. TCP Connection Management | 283 | ||
3.6. Principles of Congestion Control | 289 | ||
3.6.1. The Causes and the Costs of Congestion | 289 | ||
3.6.2. Approaches to Congestion Control | 296 | ||
3.7. TCP Congestion Control | 297 | ||
3.7.1. Fairness | 307 | ||
3.7.2. Explicit Congestion Notification (ECN): Network-assisted Congestion Control | 310 | ||
3.8. Summary | 312 | ||
Homework Problems and Questions | 314 | ||
Programming Assignments | 329 | ||
Wireshark Labs: Exploring TCP, UDP | 330 | ||
Interview: Van Jacobson | 331 | ||
Chapter 4: The Network Layer: Data Plane | 333 | ||
4.1. Overview of Network Layer | 334 | ||
4.1.1. Forwarding and Routing: The Network Data and Control Planes | 334 | ||
4.1.2. Network Service Models | 339 | ||
4.2. What’s Inside a Router? | 341 | ||
4.2.1. Input Port Processing and Destination-Based Forwarding | 344 | ||
4.2.2. Switching | 347 | ||
4.2.3. Output Port Processing | 349 | ||
4.2.4. Where Does Queuing Occur? | 349 | ||
4.2.5. Packet Scheduling | 353 | ||
4.3. The Internet Protocol (IP): IPv4, Addressing, IPv6, and More | 357 | ||
4.3.1. IPv4 Datagram Format | 358 | ||
4.3.2. IPv4 Datagram Fragmentation | 360 | ||
4.3.3. IPv4 Addressing | 362 | ||
4.3.4. Network Address Translation (NAT) | 373 | ||
4.3.5. IPv6 | 376 | ||
4.4. Generalized Forwarding and SDN | 382 | ||
4.4.1. Match | 384 | ||
4.4.2. Action | 386 | ||
4.4.3. OpenFlow Examples of Match-plus-action in Action | 386 | ||
4.5. Summary | 389 | ||
Homework Problems and Questions | 389 | ||
Wireshark Lab | 398 | ||
Interview: Vinton G. Cerf | 399 | ||
Chapter 5: The Network Layer: Control Plane | 401 | ||
5.1. Introduction | 402 | ||
5.2. Routing Algorithms | 404 | ||
5.2.1. The Link-State (LS) Routing Algorithm | 407 | ||
5.2.2. The Distance-Vector (DV) Routing Algorithm | 412 | ||
5.3. Intra-AS Routing in the Internet: OSPF | 419 | ||
5.4. Routing Among the ISPs: BGP | 423 | ||
5.4.1. The Role of BGP | 423 | ||
5.4.2. Advertising BGP Route Information | 424 | ||
5.4.3. Determining the Best Routes | 426 | ||
5.4.4. IP-Anycast | 430 | ||
5.4.5. Routing Policy | 431 | ||
5.4.6. Putting the Pieces Together: Obtaining Internet Presence | 434 | ||
5.5. The SDN Control Plane | 435 | ||
5.5.1. The SDN Control Plane: SDN Controller and SDN Control Applications | 438 | ||
5.5.2. OpenFlow Protocol | 440 | ||
5.5.3. Data and Control Plane Interaction: An Example | 442 | ||
5.5.4. SDN: Past and Future | 443 | ||
5.6. ICMP: The Internet Control Message Protocol | 447 | ||
5.7. Network Management and SNMP | 449 | ||
5.7.1. The Network Management Framework | 450 | ||
5.7.2. The Simple Network Management Protocol (SNMP) | 452 | ||
5.8. Summary | 454 | ||
Homework Problems and Questions | 455 | ||
Socket Programming Assignment | 461 | ||
Programming Assignment | 462 | ||
Wireshark Lab | 463 | ||
Interview: Jennifer Rexford | 464 | ||
Chapter 6: The Link Layer and LANs | 467 | ||
6.1. Introduction to the Link Layer | 468 | ||
6.1.1. The Services Provided by the Link Layer | 470 | ||
6.1.2. Where Is the Link Layer Implemented? | 471 | ||
6.2. Error-Detection and -Correction Techniques | 472 | ||
6.2.1. Parity Checks | 474 | ||
6.2.2. Checksumming Methods | 476 | ||
6.2.3. Cyclic Redundancy Check (CRC) | 477 | ||
6.3. Multiple Access Links and Protocols | 479 | ||
6.3.1. Channel Partitioning Protocols | 481 | ||
6.3.2. Random Access Protocols | 483 | ||
6.3.3. Taking-Turns Protocols | 492 | ||
6.3.4. DOCSIS: The Link-Layer Protocol for Cable Internet Access | 493 | ||
6.4. Switched Local Area Networks | 495 | ||
6.4.1. Link-Layer Addressing and ARP | 496 | ||
6.4.2. Ethernet | 502 | ||
6.4.3. Link-Layer Switches | 509 | ||
6.4.4. Virtual Local Area Networks (VLANs) | 515 | ||
6.5. Link Virtualization: A Network as a Link Layer | 519 | ||
6.5.1. Multiprotocol Label Switching (MPLS) | 520 | ||
6.6. Data Center Networking | 523 | ||
6.7. Retrospective: A Day in the Life of a Web Page Request | 528 | ||
6.7.1. Getting Started: DHCP, UDP, IP, and Ethernet | 528 | ||
6.7.2. Still Getting Started: DNS and ARP | 530 | ||
6.7.3. Still Getting Started: Intra-Domain Routing to the DNS Server | 531 | ||
6.7.4. Web Client-Server Interaction: TCP and HTTP | 532 | ||
6.8. Summary | 534 | ||
Homework Problems and Questions | 535 | ||
Wireshark Lab | 543 | ||
Interview: Simon S. Lam | 544 | ||
Chapter 7: Wireless and Mobile Networks | 547 | ||
7.1. Introduction | 548 | ||
7.2. Wireless Links and Network Characteristics | 553 | ||
7.2.1. CDMA | 556 | ||
7.3. WiFi: 802.11 Wireless LANs | 560 | ||
7.3.1. The 802.11 Architecture | 561 | ||
7.3.2. The 802.11 MAC Protocol | 565 | ||
7.3.3. The IEEE 802.11 Frame | 570 | ||
7.3.4. Mobility in the Same IP Subnet | 574 | ||
7.3.5. Advanced Features in 802.11 | 575 | ||
7.3.6. Personal Area Networks: Bluetooth and Zigbee | 576 | ||
7.4. Cellular Internet Access | 579 | ||
7.4.1. An Overview of Cellular Network Architecture | 579 | ||
7.4.2. 3G Cellular Data Networks: Extending the Internet to Cellular Subscribers | 582 | ||
7.4.3. On to 4G: LTE | 585 | ||
7.5. Mobility Management: Principles | 588 | ||
7.5.1. Addressing | 590 | ||
7.5.2. Routing to a Mobile Node | 592 | ||
7.6. Mobile IP | 598 | ||
7.7. Managing Mobility in Cellular Networks | 602 | ||
7.7.1. Routing Calls to a Mobile User | 604 | ||
7.7.2. Handoffs in GSM | 605 | ||
7.8. Wireless and Mobility: Impact on Higher-Layer Protocols | 608 | ||
7.9. Summary | 610 | ||
Homework Problems and Questions | 611 | ||
Wireshark Lab | 616 | ||
Interview: Deborah Estrin | 617 | ||
Chapter 8: Security in Computer Networks | 621 | ||
8.1. What Is Network Security? | 622 | ||
8.2. Principles of Cryptography | 624 | ||
8.2.1. Symmetric Key Cryptography | 626 | ||
8.2.2. Public Key Encryption | 632 | ||
8.3. Message Integrity and Digital Signatures | 638 | ||
8.3.1. Cryptographic Hash Functions | 639 | ||
8.3.2. Message Authentication Code | 641 | ||
8.3.3. Digital Signatures | 642 | ||
8.4. End-Point Authentication | 649 | ||
8.4.1. Authentication Protocol ap1.0 | 650 | ||
8.4.2. Authentication Protocol ap2.0 | 650 | ||
8.4.3. Authentication Protocol ap3.0 | 651 | ||
8.4.4. Authentication Protocol ap3.1 | 651 | ||
8.4.5. Authentication Protocol ap4.0 | 652 | ||
8.5. Securing E-Mail | 654 | ||
8.5.1. Secure E-Mail | 655 | ||
8.5.2. PGP | 658 | ||
8.6. Securing TCP Connections: SSL | 659 | ||
8.6.1. The Big Picture | 660 | ||
8.6.2. A More Complete Picture | 663 | ||
8.7. Network-Layer Security: IPsec and Virtual Private Networks | 665 | ||
8.7.1. IPsec and Virtual Private Networks (VPNs) | 666 | ||
8.7.2. The AH and ESP Protocols | 668 | ||
8.7.3. Security Associations | 668 | ||
8.7.4. The IPsec Datagram | 669 | ||
8.7.5. IKE: Key Management in IPsec | 673 | ||
8.8. Securing Wireless LANs | 674 | ||
8.8.1. Wired Equivalent Privacy (WEP) | 674 | ||
8.8.2. IEEE 802.11i | 676 | ||
8.9. Operational Security: Firewalls and Intrusion Detection Systems | 679 | ||
8.9.1. Firewalls | 679 | ||
8.9.2. Intrusion Detection Systems | 687 | ||
8.10. Summary | 690 | ||
Homework Problems and Questions | 692 | ||
Wireshark Lab | 700 | ||
IPsec Lab | 700 | ||
Interview: Steven M. Bellovin | 701 | ||
Chapter 9: Multimedia Networking | 703 | ||
9.1. Multimedia Networking Applications | 704 | ||
9.1.1. Properties of Video | 704 | ||
9.1.2. Properties of Audio | 705 | ||
9.1.3. Types of Multimedia Network Applications | 707 | ||
9.2. Streaming Stored Video | 709 | ||
9.2.1. UDP Streaming | 711 | ||
9.2.2. HTTP Streaming | 712 | ||
9.3. Voice-over-IP | 716 | ||
9.3.1. Limitations of the Best-Effort IP Service | 716 | ||
9.3.2. Removing Jitter at the Receiver for Audio | 719 | ||
9.3.3. Recovering from Packet Loss | 722 | ||
9.3.4. Case Study: VoIP with Skype | 725 | ||
9.4. Protocols for Real-Time Conversational Applications | 728 | ||
9.4.1. RTP | 728 | ||
9.4.2. SIP | 731 | ||
9.5. Network Support for Multimedia | 737 | ||
9.5.1. Dimensioning Best-Effort Networks | 739 | ||
9.5.2. Providing Multiple Classes of Service | 740 | ||
9.5.3. Diffserv | 747 | ||
9.5.4. Per-Connection Quality-of-Service (QoS) Guarantees: Resource Reservation and Call Admission | 751 | ||
9.6. Summary | 754 | ||
Homework Problems and Questions | 755 | ||
Programming Assignment | 763 | ||
Interview: Henning Schulzrinne | 765 | ||
References | 769 | ||
Index | 811 | ||
Back Cover | Back Cover |