Jim Kurose is Professor and Chair of the Department of Computer Science at the University of Massachusetts, Amherst.He is the eight-time recipient of the Outstanding Teacher Award from the National Technological University, the recipient of the Outs
圖書目錄
Table of Contents Chapter 1 Computer Networks and the Internet 1 1.1 What is the internet? I 1.1.1 A Nuts and Bolts Description I 1.1.2 A Service Description 4 1.1.3 Some Good Hyperlinks 5 1.2 What is a Protocol? 6 1.2.1 A Human Analogy 7 1.2.2 Network Protocols 8 1.3 The Network Edge 9 1.3.1 End Systems, Clients, and Servers 9 l.3.2 Connectionless and Connection-Oriented Services 11 1.4 The Network Core 13 1 .4.1 Circuit Switching, Packet Switching, and Message Switching 13 1.4.2 Routing in Data Networks 24 1.5 Access Networks and Physical Media 29 1.5.1 Access Networks 29 1.5.2 Physical Media 34 1.6 Delay and Loss in Packet-Switched Network 38 1.6.1 Types of Delay 38 1.7 Protocol Layers and Their Service Models 44 1.7.1 Layered Architecture 45 1.7.2 The internet Protocol Stack 49 1.7.3 Network Entities and Layers 53 1.8 Internet Backbones, NAPs, and lSPs 53 1.9 A Brief History of Computer Networking and the Internet 56 1.9.1 Development and Demonstration of Early Packet Switching Principles' 1961--1972 56 1.9.2 Internetworking, and New and Proprietary Networks: 1972--1980 57 1.9.3 A Proliferation of Networks: 1980--1990 60 1.9.4 Commercialization and the Web: The 1990s 61 1.10 Summary 62 Homework Problems and Questions 64 Problems 66 Discussion Questions 68 Interviews Leonard Kleinrock 70 Chapter 2 Application Layer 72 2.1 Principles of Application Layer Protocols 72 2.1.1 Application-Layer Protocols 73 2.1.2 What Services Does an Application Need? 78 2.1.3 Services Provided by the Internet Transport Protocols 80 2.1.4 Network Applications Covered in this Book 83 2.2 The World Wide Web: HTTP 84 2.2.1 Overview of HTTP 85 2.2.2 Nonpersistent and Persistent Connections 87 2.2.3 HTTP Message Format 90 2.2.4 User-Server interaction: Authentication and Cookies 94 2.2.5 The Conditional GET 96 2.2.6 Web Caches 97 2.3 File Transfers FTP 104 2.3.1 FTP Commands and Replies 105 2.4 Electronic Mail in the Internet 106 2.4.1 SMTP 109 2.4.2 Comparison with HTTP 111 2.4.3 Mail Message Formats and MIME 112 2.4.4 Mail Access Protocols 118 2.4.5 Continuous Media E-mail 123 2.5 DNS--the Internet's Directory Service 124 2.5.1 Services Provided by DNS 124 2.5.2 Overview of How DNS Works 127 2.5.3 DNS Records 132 2.5.4 DNS Messages 134 2.6 Socket Programming with TCP 136 2.6.1 Socket Programming with TCP 137 2.6.2 An Example Client/Server Application in Java 139 2.7 Socket Programming with UDP' 146 2.8 Building a Simple Web Server 154 2.8.1 Web Server Functions 154 2.9 Summary 158 Homework Problems and Questions 159 Problems 161 Discussion Questions 162 Programming Assignments 163 Interview: Tim Berners-Lee 165 Chapter 3 Transport Layer 167 3.1 Transport-Layer Services and Principles 167 3.1.1 Relationship between Transport and Network Layers 169 3.1.2 Overview of the Transport Layer in the Internet 171 3.2 Multiplexing and Demultiplexing Applications 172 3.3 Connectionless Transport: UDP 177 3.3.1 UDP Segment Structure 180 3.3.2 UDP Checksum 181 3.4 Principles of Reliable Data Transfer 182 3.4.1 Building a Reliable Data Transfer Protocol 184 3.4.2 Pipelined Reliable Data Transfer Protocols 193 3.4.3 Go-Back-N(GBN) 196 3.4.4 Selective Repeat (SR) 201 3.5 Connection-Oriented Transport: TCP 207 3.5.1 The TCP Connection 207 3.5.2 TCP Segment Structure 210 3.5.3 Sequence Numbers and Acknowledgment Numbers ZI I 3.5.4 Telnet: A Case Study for Sequence and Acknowledgment Numbers 213 3.5.5 Reliable Data Transfer 215 3.5.6 Flow Control 221 3.5.7 Round Trip Time and Timeout 224 3.5.8 TCP Connection Management 226 3.6 Principles of Congestion Control 231 3.6.1 The Causes and the Costs of Congestion 231 3.6.2 Approaches toward Congestion Control 237 3.6.3 ATM ABR Congestion Control 239 3.7 TCP Congestion Control 240 3.7.1 Overview of TCP Congestion Control 241 3.7.2 Modeling Latency: Static Congestion Window 249 3.7.3 Modeling Latency: Dynamic Congestion Window 253 3.8 Summary 258 Homework Problems and Questions 260 Problems 261 Discussion Question 268 Programming Assignment 268 Interview: Sally Floyd 269 Chapter 4 Network Layer and Routing 271 4.1 Introduction and Network Service Models;1 4.1.1 Network Service Model 4.1.2 Origins of Datagram and Virtual Circuit Service: 4.2 Routing Principles 282 4.2.1 A Link State Routing Algorithm 282 4.2.2 A Distance Vector Routing Algorithm 286 4.2.3 Other Routing Algorithms 297 4.3 Hierarchical Routing 297 4.4 Internet Protocol 300 4.4.1 IPvl Addressing 302 4.4.2 Transporting a Datagram from Source to Destination: Addressing and Routing 310 4.4.3 Datagram Format 314 4.4.4 IP Fragmentation and Reassembly 317 4.4.5 ICMP: Internet Control Message Protocol 319 4.5 Routing in the Internet 321 4.5.1 Intra-Autonomous System Routing in the Internet 322 4.5.2 Inter-Autonomous System Routing 329 4.6 What's Inside a Router? 332 4.6.1 Input Ports 333 4.6.2 Switching Fabrics 336 4.6.3 Output Ports 338 4.6.4 Where Does Queuing Occur? 338 4.7 IPv6 341 4.7.1 IPv6 Packet Format 342 4.7.2 Transitioning from IPv4 to IPv6 345 4.8 Multicast Routing 4.8.1 Introduction: The Internet Multicast Abstraction and Multicast Groups 348 4.8.2 The IGMP Protocol 350 4.8.3 Multicast Routing: The General Case 355 4.8.4 Multicast Routing in the Internet 362 4.9 Summary 367 Homework Problems and Questions 368 Problems 370 Discussion Questions 374 Programming Assignment 375 Interview: José Joaquin Garcia-Luna-Aceves 377 Chapter 5 Link Layer and Local Area Networks 379 5.1 The Data Link Layer: Introduction, Services 379 5.1.1 The Services Provided by the Link Layer 380 5.1.2 Adapters Communicating 383 5.2 Error Detection and Correction Techniques 385 5.2.1 Parity Checks 386 5.2.2 Checksumming Methods 389 5.2.3 Cyclic Redundancy Check (CRC)' 389 5.3 Multiple Access Protocols and LANs 391 5.3.1 Channel Partitioning Protocols 394 5.3.2 Random Access Protocols 398 5.3.3 Taking-Turns Protocols 406 5.3.4 Local Area Networks (LANs) 407 5.4 LAN Addresses and ARP 409 5.4.1 LAN Addresses 409 5.4.2 Address Resolution Protocol 411 5.5 Ethernet 415 5.5.1 Ethernet Basics 417 5.5.2 CSMA/CD: Ethernet's Multiple Access Protocol 421 5.5.3 Ethernet Technologies 423 5.6 Hubs, Bridges, and Switches 427 5.6.1 Hubs 427 5.6.2 Bridges 429 5.6.3 Switches 437 5.7 IEEE 802.11 LANs 441 5.7.1 802.11 LAN Architecture 441 5.7.2 802.1 1 Media Access Protocols 442 5.8 PPP: The Point-to-Point Protocol 447 5.8.1 PPP Data Framing 449 5.8.2 PPP Link Control Protocol (LCP) and Network Control Protocols 451 5.9 Asynchronous Transfer Mode (ATM) 453 5.9.1 Principle Characteristics of ATM 454 5.9.2 ATM Physical Layer 456 5.9.3 ATM Layer 458 5.9.4 ATM Adaptation Layer 459 5.9.5 IP Over ATM 461 5.9.6 ARP and ATM 464 5.10 X.25 and Frame Relay 465 5.10.1 A Few Words About X.25 466 5.10.2 Frame Relay 467 5.11 Summary 471 Homework Problems and Questions 472 Problems 474 Discussion Questions 480 Interview: Robert Metcalfe 481 Chapter 6 Multimedia Networking 483 6.1 Multimedia Networking Applications 484 6.1.l Examples of Multimedia Applications 484 6.1.2 Hurdles for Multimedia in Today's Internet 487 6.1.3 How Should the Internet Evolve to Better Support Multimedia? 488 6.1.4 Audio and Video Compression 489 6.2 Streaming Stored Audio and Video 491 6.2.1 Accessing Audio and Video from a Web Server 493 6.2.2 Sending Multimedia from a Streaming Server to a Helper Application 495 6.2.3 Real Time Streaming Protocol (RTSP) 497 6.3 Making the Best of the Best-Effort Service: An Internet Phone Example 501 6.3.1 The Limitations of a Best-Effort Service 501 6.3.2 Removing Jitter at the Receiver for Audio 503 6.3.3 Recovering 1'rom Packet Loss 506 6.3.4 Streaming Stored Audio and Video 510 6.4 RTP 510 6.4.1 RTP Basics 510 6.4.2 RTP Packet Header Fields 513 6.4.3 RTP Control Protocol (RTCP) 514 6.4.4 H.323 517 6.5 Beyond Best-Effort 522 6.5.1 Scenario 1: A 1 Mbps Audio Application and an FTP Transfer 523 6.5.2 Scenario 2: A 1 Mbps Audio Application and a High Priority FTP Transfer 524 6.5.3 Scenario 3f A Misbehaving Audio Application and an FTP Transfer 525 6.5.4 Scenario 4: Two 1 Mbps Audio Applications Over an Overloaded 1.5 Mbps Link 526 6.6 Scheduling and Policing Mechanisms 528 6.6.1 Scheduling Mechanisms 528 6.6.2 Policing: The Leaky Bucket 533 6.7 Integrated Services 536 6.7.1 Guaranteed Quality of Service 538 6.7.2 Controlled-Load Network Service 539 6.8 RSVP 539 6.8.1 The Essence of RSVP 540 6.8.2 A Few Simple Examples 542 6.8.3 Path Messages 544 6.8.4 Reservation Styles 544 6.8.5 Transport of Reservation Messages 548 6.9 Differentiated Services 549 6.9.1 Differentiated Services: A Simple Scenario 550 6.9.2 Traffic Classification and Conditioning 552 6.9.3 Per-Hop Behavior 554 6.9.4 A Beginning 556 6.10 Summary 556 Homework Problems and Questions 558 Problems 559 Discussion Questions 561 Interview Henning Schulzrinne 563 Chapter 7 Security in Computer Networks 565 7.1 What is Network Security? 565 7.1.1 Secure Communication 563 7.1.2 Network Security Considerations in the Internet 567 7.2 Principles of Cryptography 569 7.2.1 Symmetric Key Cryptography 571 7.2.2 Public Key Encryption 575 7.3 Authentication: Who are You? 581 7.3.1 Authentication Protocol ap1.0 581 7.3.2 Authentication Protocol ap2.0 582 7.3.3 Authentication Protocol ap3.0 583 7.3.4 Authentication Protocol ap.3.1 583 7.3.5 Authentication Protocol ap4.0 584 7.3.6 Authentication Protocol ap5.0 586 7.4 Integrity 588 7.4.1 Generating