Computer Networking: A Top-Down Approach, 8th Edition
By James F. Kurose and Keith W. Ross
Table of Contents:
Chapter 1 Computer Networks and the Internet 1
1.1 What Is the Internet? 2
1.1.1 A Nuts-and-Bolts Description 2
1.1.2 A Services Description 5
1.1.3 What Is a Protocol? 7
1.2 The Network Edge 9
1.2.1 Access Networks 12
1.2.2 Physical Media 18
1.3 The Network Core 22
1.3.1 Packet Switching 23
1.3.2 Circuit Switching 27
1.3.3 A Network of Networks 31
1.4 Delay, Loss, and Throughput in Packet-Switched Networks 35
1.4.1 Overview of Delay in Packet-Switched Networks 35
1.4.2 Queuing Delay and Packet Loss 39
1.4.3 End-to-End Delay 41
1.4.4 Throughput in Computer Networks 43
1.5 Protocol Layers and Their Service Models 47
1.5.1 Layered Architecture 47
1.5.2 Encapsulation 52
1.6 Networks Under Attack 54
1.7 History of Computer Networking and the Internet 58
1.7.1 The Development of Packet Switching: 1961–1972 58
1.7.2 Proprietary Networks and Internetworking: 1972–1980 59
1.7.3 A Proliferation of Networks: 1980–1990 61
1.7.4 The Internet Explosion: The 1990s 62
1.7.5 The New Millennium 63
1.8 Summary 64
Homework Problems and Questions 66
Wireshark Lab 76
Interview: Leonard Kleinrock 78
Chapter 2 Application Layer 81
2.1 Principles of Network Applications 82
2.1.1 Network Application Architectures 84
2.1.2 Processes Communicating 85
2.1.3 Transport Services Available to Applications 88
2.1.4 Transport Services Provided by the Internet 90
2.1.5 Application-Layer Protocols 94
2.1.6 Network Applications Covered in This Book 95
2.2 The Web and HTTP 95
2.2.1 Overview of HTTP 96
2.2.2 Non-Persistent and Persistent Connections 98
2.2.3 HTTP Message Format 101
2.2.4 User-Server Interaction: Cookies 105
2.2.5 Web Caching 108
2.2.6 HTTP/2 113
2.3 Electronic Mail in the Internet 116
2.3.1 SMTP 118
2.3.2 Mail Message Formats 121
2.3.3 Mail Access Protocols 121
2.4 DNS—The Internet’s Directory Service 122
2.4.1 Services Provided by DNS 123
2.4.2 Overview of How DNS Works 125
2.4.3 DNS Records and Messages 131
2.5 Peer-to-Peer File Distribution 136
2.6 Video Streaming and Content Distribution Networks 143
2.6.1 Internet Video 143
2.6.2 HTTP Streaming and DASH 144
2.6.3 Content Distribution Networks 145
2.6.4 Case Studies: Netflix and YouTube 149
2.7 Socket Programming: Creating Network Applications 152
2.7.1 Socket Programming with UDP 154
2.7.2 Socket Programming with TCP 159
2.8 Summary 165
Homework Problems and Questions 166
Socket Programming Assignments 175
Wireshark Labs: HTTP, DNS 177
Interview: Tim Berners-Lee 178
Chapter 3 Transport Layer 181
3.1 Introduction and Transport-Layer Services 182
3.1.1 Relationship Between Transport and Network Layers 182
3.1.2 Overview of the Transport Layer in the Internet 185
3.2 Multiplexing and Demultiplexing 187
3.3 Connectionless Transport: UDP 194
3.3.1 UDP Segment Structure 198
3.3.2 UDP Checksum 198
3.4 Principles of Reliable Data Transfer 200
3.4.1 Building a Reliable Data Transfer Protocol 202
3.4.2 Pipelined Reliable Data Transfer Protocols 211
3.4.3 Go-Back-N (GBN) 215
3.4.4 Selective Repeat (SR) 220
3.5 Connection-Oriented Transport: TCP 227
3.5.1 The TCP Connection 227
3.5.2 TCP Segment Structure 230
3.5.3 Round-Trip Time Estimation and Timeout 235
3.5.4 Reliable Data Transfer 238
3.5.5 Flow Control 246
3.5.6 TCP Connection Management 249
3.6 Principles of Congestion Control 255
3.6.1 The Causes and the Costs of Congestion 255
3.6.2 Approaches to Congestion Control 262
3.7 TCP Congestion Control 263
3.7.1 Classic TCP Congestion Control 263
3.7.2 Network-Assisted Explicit Congestion Notification and
Delayed-based Congestion Control 274
3.7.3 Fairness 276
3.8 Evolution of Transport-Layer Functionality 279
3.9 Summary 282
Homework Problems and Questions 284
Programming Assignments 300
Wireshark Labs: Exploring TCP, UDP 300
Interview: Van Jacobson 301
Chapter 4 The Network Layer: Data Plane 303
4.1 Overview of Network Layer 304
4.1.1 Forwarding and Routing: The Data and Control Planes 304
4.1.2 Network Service Model 309
4.2 What’s Inside a Router? 311
4.2.1 Input Port Processing and Destination-Based Forwarding 314
4.2.2 Switching 317
4.2.3 Output Port Processing 319
4.2.4 Where Does Queuing Occur? 319
4.2.5 Packet Scheduling 325
4.3 The Internet Protocol (IP): IPv4, Addressing, IPv6, and More 330
4.3.1 IPv4 Datagram Format 331
4.3.2 IPv4 Addressing 333
4.3.3 Network Address Translation (NAT) 344
4.3.4 IPv6 347
4.4 Generalized Forwarding and SDN 353
4.4.1 Match 355
4.4.2 Action 356
4.4.3 OpenFlow Examples of Match-plus-action in Action 357
4.5 Middleboxes 360
4.6 Summary 364
Homework Problems and Questions 364
Wireshark Lab: IP 374
Interview: Vinton G. Cerf 375
Chapter 5 The Network Layer: Control Plane 377
5.1 Introduction 378
5.2 Routing Algorithms 380
5.2.1 The Link-State (LS) Routing Algorithm 383
5.2.2 The Distance-Vector (DV) Routing Algorithm 388
5.3 Intra-AS Routing in the Internet: OSPF 395
5.4 Routing Among the ISPs: BGP 399
5.4.1 The Role of BGP 399
5.4.2 Advertising BGP Route Information 400
5.4.3 Determining the Best Routes 402
5.4.4 IP-Anycast 406
5.4.5 Routing Policy 407
5.4.6 Putting the Pieces Together: Obtaining Internet Presence 410
5.5 The SDN Control Plane 411
5.5.1 The SDN Control Plane: SDN Controller and
SDN Network-control Applications 414
5.5.2 OpenFlow Protocol 416
5.5.3 Data and Control Plane Interaction: An Example 418
5.5.4 SDN: Past and Future 419
5.6 ICMP: The Internet Control Message Protocol 423
5.7 Network Management and SNMP, NETCONF/YANG 425
5.7.1 The Network Management Framework 426
5.7.2 The Simple Network Management Protocol (SNMP)
and the Management Information Base (MIB) 428
5.7.3 The Network Configuration Protocol (NETCONF) and YANG 432
5.8 Summary 436
Homework Problems and Questions 437
Socket Programming Assignment 5: ICMP Ping 443
Programming Assignment: Routing 444
Wireshark Lab: ICMP 445
Interview: Jennifer Rexford 446
Chapter 6 The Link Layer and LANs 449
6.1 Introduction to the Link Layer 450
6.1.1 The Services Provided by the Link Layer 452
6.1.2 Where Is the Link Layer Implemented? 453
6.2 Error-Detection and -Correction Techniques 454
6.2.1 Parity Checks 456
6.2.2 Checksumming Methods 458
6.2.3 Cyclic Redundancy Check (CRC) 459
6.3 Multiple Access Links and Protocols 461
6.3.1 Channel Partitioning Protocols 463
6.3.2 Random Access Protocols 465
6.3.3 Taking-Turns Protocols 474
6.3.4 DOCSIS: The Link-Layer Protocol for Cable Internet Access 475
6.4 Switched Local Area Networks 477
6.4.1 Link-Layer Addressing and ARP 478
6.4.2 Ethernet 484
6.4.3 Link-Layer Switches 491
6.4.4 Virtual Local Area Networks (VLANs) 497
6.5 Link Virtualization: A Network as a Link Layer 501
6.5.1 Multiprotocol Label Switching (MPLS) 502
6.6 Data Center Networking 505
6.6.1 Data Center Architectures 505
6.6.2 Trends in Data Center Networking 509
6.7 Retrospective: A Day in the Life of a Web Page Request 512
6.7.1 Getting Started: DHCP, UDP, IP, and Ethernet 512
6.7.2 Still Getting Started: DNS and ARP 514
6.7.3 Still Getting Started: Intra-Domain Routing to the DNS Server 515
6.7.4 Web Client-Server Interaction: TCP and HTTP 516
6.8 Summary 518
Homework Problems and Questions 519
Wireshark Labs: 802.11 Ethernet 527
Interview: Albert Greenberg 528
Chapter 7 Wireless and Mobile Networks 531
7.1 Introduction 532
7.2 Wireless Links and Network Characteristics 536
7.2.1 CDMA 539
7.3 WiFi: 802.11 Wireless LANs 542
7.3.1 The 802.11 Wireless LAN Architecture 544
7.3.2 The 802.11 MAC Protocol 548
7.3.3 The IEEE 802.11 Frame 553
7.3.4 Mobility in the Same IP Subnet 556
7.3.5 Advanced Features in 802.11 559
7.3.6 Personal Area Networks: Bluetooth 560
7.4 Cellular Networks: 4G and 5G 563
7.4.1 4G LTE Cellular Networks: Architecture and Elements 564
7.4.2 LTE Protocols Stacks 570
7.4.3 LTE Radio Access Network 571
7.4.4 Additional LTE Functions: Network Attachment and
Power Management 572
7.4.5 The Global Cellular Network: A Network of Networks 574
7.4.6 5G Cellular Networks 575
7.5 Mobility Management: Principles 578
7.5.1 Device Mobility: a Network-layer Perspective 578
7.5.2 Home Networks and Roaming on Visited Networks 579
7.5.3 Direct and Indirect Routing to/from a Mobile Device 580
7.6 Mobility Management in Practice 587
7.6.1 Mobility Management in 4G/5G Networks 587
7.6.2 Mobile IP 592
7.7 Wireless and Mobility: Impact on Higher-Layer Protocols 594
7.8 Summary 596
Homework Problems and Questions 597
Wireshark Lab: WiFi 602
Interview: Deborah Estrin 603
Chapter 8 Security in Computer Networks 607
8.1 What Is Network Security? 608
8.2 Principles of Cryptography 610
8.2.1 Symmetric Key Cryptography 612
8.2.2 Public Key Encryption 618
8.3 Message Integrity and Digital Signatures 624
8.3.1 Cryptographic Hash Functions 625
8.3.2 Message Authentication Code 626
8.3.3 Digital Signatures 628
8.4 End-Point Authentication 634
8.5 Securing E-Mail 639
8.5.1 Secure E-Mail 640
8.5.2 PGP 643
8.6 Securing TCP Connections: TLS 644
8.6.1 The Big Picture 646
8.6.2 A More Complete Picture 649
8.7 Network-Layer Security: IPsec and Virtual Private Networks 651
8.7.1 IPsec and Virtual Private Networks (VPNs) 651
8.7.2 The AH and ESP Protocols 653
8.7.3 Security Associations 653
8.7.4 The IPsec Datagram 655
8.7.5 IKE: Key Management in IPsec 658
8.8 Securing Wireless LANs and 4G/5G Cellular Networks 659
8.8.1 Authentication and Key Agreement in 802.11 Wireless LANs 659
8.8.2 Authentication and Key Agreement in 4G/5G Cellular Networks 664
8.9 Operational Security: Firewalls and Intrusion Detection Systems 667
8.9.1 Firewalls 667
8.9.2 Intrusion Detection Systems 675
8.10 Summary 679
Homework Problems and Questions 680
Wireshark Lab: SSL 688
IPsec Lab 688
Interview: Steven M. Bellovin 689
References 691
Index 731