Chapter 1 Computer Networks and the Internet 27
1.1 What Is the Internet? 28
1.1.1 A Nuts-and-Bolts Description 28
1.1.2 A Services Description 31
1.1.3 What Is a Protocol? 33
1.2 The Network Edge 35
1.2.1 Client and Server Programs 38
1.2.2 Access Networks 38
1.2.3 Physical Media 45
1.3 The Network Core 48
1.3.1 Circuit Switching and Packet Switching 48
1.3.2 How Do Packets Make Their Way Through 56
Packet-Switched Networks? 56
1.3.3 ISPs and Internet Backbones 57
1.4 Delay, Loss, and Throughput in Packet-Switched Networks 59
1.4.1 Overview of Delay in Packet-Switched Networks 59
1.4.2 Queuing Delay and Packet Loss 63
1.4.3 End-to-End Delay 66
1.4.4 Throughput in Computer Networks 68
1.5 Protocol Layers and Their Service Models 71
1.5.1 Layered Architecture 71
1.5.2 Messages, Segments, Datagrams, and Frames 77
1.6 Networks Under Attack 79
1.7 History of Computer Networking and the Internet 84
1.7.1 The Development of Packet Switching: 1961-1972 84
1.7.2 Proprietary Networks and Internetworking: 1972-1980 86
1.7.3 A Proliferation of Networks: 1980-1990 88
1.7.4 The Internet Explosion: The 1990s 89
1.7.5 Recent Developments 90
1.8 Summary 91
Road-Mapping This Book 92
Homework Problems and Questions 93
Problems 95
Discussion Questions 101
Ethereal Lab 102
Interview: Leonard Kleinrock 103
Chapter 2 Application Layer 107
2.1 Principles of Network Applications 108
2.1.1 Network Application Architectures 108
2.1.2 Processes Communicating 111
2.1.3 Transport Services Available to Applications 114
2.1.4 Transport Services Provided by the Internet 116
2.1.5 Application-Layer Protocols 120
2.1.6 Network Applications Covered in This Book 121
2.2 The Web and HTTP 122
2.2.1 Overview of HTTP 122
2.2.2 Non-persistent and Persistent Connections 124
2.2.3 HTTP Message Format 127
2.2.4 User-Server Interaction: Cookies 132
2.2.5 Web Caching 134
2.2.6 The Conditional GET 138
2.3 File Transfer: FTP 140
2.3.1 FTP Commands and Replies 142
2.4 Electronic Mail in the Internet 142
2.4.1 SMTP 145
2.4.2 Comparison with HTTP 148
2.4.3 Mail Message Formats and MIME 149
2.4.4 Mail Access Protocols 152
2.5 DNS—The Internet's Directory Service 156
2.5.1 Services Provided by DNS 157
2.5.2 Overview of How DNS Works 159
2.5.3 DNS Records and Messages 165
2.6 Peer-to-Peer Applications 170
2.6.1 P2P File Distribution 171
2.6.2 Searching for Information in a P2P Community 177
2.6.3 Case Study: P2P Internet Telephony with Skype 183
2.7 Socket Programming with TCP 185
2.7.1 Socket Programming with TCP 186
2.7.2 An Example Client-Server Application in Java 188
2.8 Socket Programming with UDP 195
2.9 Summary 203
Homework Problems and Questions 204
Problems 206
Discussion Questions 213
Socket Programming Assignments 214
Ethereal Labs 216
Interview: Bran Cohen 218
Chapter 3 Transport Layer 221
3.1 Introduction and Transport-Layer Services 222
3.1.1 Relationship Between Transport and Network Layers 222
3.1.2 Overview of the Transport Layer in the Internet 225
3.2 Multiplexing and Demultiplexing 227
3.3 Connectionless Transport: UDP 234
3.3.1 UDP Segment Structure 238
3.3.2 UDP Checksum 238
3.4 Principles of Reliable Data Transfer 240
3.4.1 Building a Reliable Data Transfer Protocol 242
3.4.2 Pipelined Reliable Data Transfer Protocols 251
3.4.3 Go-Back-N (GBN) 254
3.4.4 Selective Repeat (SR) 259
3.5 Connection-Oriented Transport: TCP 266
3.5.1 The TCP Connection 267
3.5.2 TCP Segment Structure 269
3.5.3 Round-Trip Time Estimation and Timeout 274
3.5.4 Reliable Data Transfer 278
3.5.5 Flow Control 286
3.5.6 TCP Connection Management 288
3.6 Principles of Congestion Control 295
3.6.1 The Causes and the Costs of Congestion 296
3.6.2 Approaches to Congestion Control 302
3.6.3 Network-Assisted Congestion-Control Example:ATM ABR Congestion Control 303
3.7 TCP Congestion Control 305
3.7.1 Fairness 313
3.8 Summary 316
Homework Problems and Questions 319
Problems 321
Discussion Questions 330
Programming Assignments 331
Ethereal Labs 331
Interview: Sally Floyd 333
Chapter 4 The Network Layer 335
4.1 Introduction 336
4.1.1 Forwarding and Routing 338
4.1.2 Network Service Models 340
4.2 Virtual Circuit and Datagram Networks 343
4.2.1 Virtual-Circuit Networks 344
4.2.2 Datagram Networks 347
4.2.3 Origins of VC and Datagram Networks 349
4.3 What's Inside a Router? 350
4.3.1 Input Ports 352
4.3.2 Switching Fabric 354
4.3.3 Output Ports 357
4.3.4 Where Does Queuing Occur? 357
4.4 The Internet Protocol (IP): Forwarding and Addressing in the Internet 360
4.4.1 Datagram Format 362
4.4.2 IPv4 Addressing 368
4.4.3 Internet Control Message Protocol (ICMP) 383
4.4.4 IPv6 386
4.4.5 A Brief Introduction into IP Security VPNs 392
4.5 Routing Algorithms 394
4.5.1 The Link-State (LS) Routing Algorithm 397
4.5.2 The Distance-Vector (DV) Routing Algorithm 401
4.5.3 Hierarchical Routing 409
4.6 Routing in the Internet 413
4.6.1 Intra-AS Routing in the Internet: RIP 414
4.6.2 Intra-AS Routing in the Internet: OSPF 418
4.6.3 Inter-AS Routing: BGP 421
4.7 Broadcast and Multicast Routing 428
4.7.1 Broadcast Routing Algorithms 429
4.7.2 Multicast 434
4.8 Summary 441
Homework Problems and Questions 442
Problems 445
Discussion Questions 455
Programming Assignment 456
Ethereal Labs 457
Interview: Vinton G&Cerf 458
Chapter S The Link Layer and Local Area Networks 461
5.1 Link Layer: Introduction and Services 463
5.1.1 The Services Provided by the Link Layer 463
5.1.2 Where Is the Link Layer Implemented? 466
5.2 Error-Detection and -Correction Techniques 468
5.2.1 Parity Checks 470
5.2.2 Checksumming Methods 472
5.2.3 Cyclic Redundancy Check (CRC) 472
5.3 Multiple Access Protocols 475
5.3.1 Channel Partitioning Protocols 477
5.3.2 Random Access Protocols 479
5.3.3 Taking-Turns Protocols 486
5.3.4 Local Area Networks (LANs) 487
5.4 Link-Layer Addressing 489
5.4.1 MAC Addresses 489
5.4.2 Address Resolution Protocol (ARP) 491
5.5 Ethernet 491
5.5.1 Ethernet Frame Structure 497
5.5.2 CSMA/CD: Ethernet's Multiple Access Protocol 501
5.5.3 Ethernet Technologies 503
5.6 Link-Layer Switches 506
5.6.1 Forwarding and Filtering 507
5.6.2 Self-Learning 509
5.6.3 Properties of Link-Layer Switching 510
5.6.4 Switches Versus Routers 511
5.7 PPP: The Point-to-Point Protocol 513
5.7.1 PPP Data Framing 515
5.8 Link Virtualization: A Network as a Link Layer 517
5.8.1 Asynchronous Transfer Mode (ATM) Networks 518
5.8.2 Multiprotocol Label Switching (MPLS) 523
5.9 Summary 526
Homework Problems and Questions 527
Problems 529
Discussion Questions 534
Ethereal Labs 535
Interview: Simon S&Lam 536
Chapter 6 Wireless and Mobile Networks 539
6.1 Introduction 540
6.2 Wireless Links and Network Characteristics 545
6.2.1 CDMA 548
6.3 WiFi: 802.11 Wireless LANs 552
6.3.1 The 802.11 Architecture 553
6.3.2 The 802.11 MAC Protocol 557
6.3.3 The IEEE 802.11 Frame 563
6.3.4 Mobility in the Same IP Subnet 567
6.3.5 Advanced Features in 802.11 568
6.3.6 Beyond 802.11: Bluetooth and WiMAX 570
6.4 Cellular Internet Access 574
6.4.1 An Overview of Cellular Architecture 574
6.4.2 Cellular Standards and Technologies: A Brief Survey 577
6.5 Mobiliry Management: Principles 581
6.5.1 Addressing 583
6.5.2 Routing to a Mobile Node 585
6.6 Mobile IP 590
6.7 Managing Mobility in Cellular Networks 596
6.7.1 Routing Calls to a Mobile User 597
6.7.2 Handoffs in GSM 598
6.8 Wireless and Mobility: Impact on Higher-layer Protocols 601
6.9 Summary 604
Homework Problems and Questions 605
Problems 606
Discussion Questions 610
Ethereal Labs 610
Interview: Charlie Perkins 611
Chapter 7 Multimedia Networking 615
7.1 Multimedia Networking Applications 616
7.1.1 Examples of Multimedia Applications 616
7.1.2 Hurdles for Multimedia in Today's Internet 619
7.1.3 How Should the Internet Evolve to Support Multimedia Better? 620
7.1.4 Audio and Video Compression 622
7.2 Streaming Stored Audio and Video 626
7.2.1 Accessing Audio and Video Through a Web Server 626
7.2.2 Sending Multimedia from a Streaming Server to a Helper Application 628
7.2.3 Real-Time Streaming Protocol (RTSP) 630
7.3 Making the Best of the Best-Effort Service 634
7.3.1 The Limitations of a Best-Effoff Service 634
7.3.2 Removing Jitter at the Receiver for Audio 637
7.3.3 Recovering from Packet Loss 640
7.3.4 Distributing Multimedia in Today's Internet:Content Distribution Networks 644
7.3.5 Dimensioning Best-Effort Networks to Provide Quality of Service 647
7.4 Protocols for Real-Time Interactive Applications 649
7.4.1 RTP 649
7.4.2 RTP Control Protocol (RTCP) 654
7.4.3 SIP 657
7.4.4 H.323 663
7.5 Providing Multiple Classes of Service 665
7.5.1 Motivating Scenarios 666
7.5.2 Scheduling and Policing Mechanisms 671
7.5.3 Diffserv 678
7.6 Providing Quality of Service Guarantees 683
7.6.1 A Motivating Example 683
7.6.2 Resource Reservation, Call Admission, Call Setup 685
7.6.3 Guaranteed QoS in the Internet: Intserv and RSVP 687
7.7 Summary 690
Homework Problems and Questions 691
Problems 692
Discussion Questions 699
Programming Assignment 700
Interview: Henning Schulzrinne 702
Chapter 8 Security in Computer Networks 705
8.1 What Is Network Security? 706
8.2 Principles of Cryptography 709
8.2.1 Symmetric Key Cryptography 711
8.2.2 Public Key Encryption 717
8.3 Message Integrity 722
8.3.1 Cryptographic Hash Functions 723
8.3.2 Message Authentication Code 725
8.3.3 Digital Signatures 727
8.4 End-Point Authentication 733
8.4.1 Authentication Protocol ap1.0 734
8.4.2 Authentication Protocol ap2.0 735
8.4.3 Authentication Protocol ap3.0 736
8.4.4 Authentication Protocol ap3.1 737
8.4.5 Authentication Protocol ap4.0 737
8.4.6 Authentication Protocol ap5.0 739
8.5 Securing E-mail 742
8.5.1 Secure E-mail 743
8.5.2 PGP 746
8.6 Securing TCP Connections: SSL 748
8.6.1 The Big Picture 750
8.6.2 A More Complete Picture 753
8.7 Network-Layer Security: IPsec 754
8.7.1 Authentication Header (AH) Protocol 755
8.7.2 The ESP Protocol 757
8.7.3 SA and Key Management 757
8.8 Securing Wireless LANs 758
8.8.1 Wired Equivalent Privacy (WEP) 758
8.8.2 IEEE802.l li 761
8.9 Operational Security: Firewalls and Intrusion Detection Systems 763
8.9.1 Firewalls 763
8.9.2 Intrusion Detection Systems 770
8.10 Summary 774
Homework Problems and Questions 775
Problems 776
Discussion Questions 779
Ethereal Lab 780
Interview: Steven M. Bellovin 781
Chapter 9 Network Management 783
9.1 What Is Network Management? 784
9.2 The Infrastructure for Network Management 788
9.3 The Intemet-Standard Management Framework 792
9.3.1 Structure of Management Information: SMI 794
9.3.2 Management Information Base: MIB 798
9.3.3 SNMP Protocol Operations and Transport Mappings 801
9.3.4 Security and Administration 803
9.4 ASN.1 807
9.5 Conclusion 812
Homework Problems and Questions 813
Problems 813
Discussion Questions 814
Interview: Jeff Case 815
References 817
Index 847