Table of contents
Preface
I Network Fundamentals
1 Introduction to Network Communication
1.1 What is a Network?
1.2 Network Performance: How Do We Measure a Network?
1.3 Why packet switching?
1.4 The TCP/IP and OSI Models (brief overview)
1.5 Analytical Perspective
1.6 Conclusion
1.7 Exercises and Review Questions
1.8 Solutions to the Exercises
2 Ethernet Frames: The Foundation
2.1 Introduction
2.2 History of Ethernet
2.3 What is Ethernet?
2.4 MAC Addresses and Their Role
2.5 Ethernet Frame Structure
2.6 How Ethernet Operates on a Local Network
2.7 Modern Ethernet: Full Duplex, Speeds, and Frame Sizes
2.8 Design Trade-offs and Limitations
2.9 Conclusion
2.10 Exercises and Review Questions
2.11 Solutions to the Exercises
3 ARP: Resolving MAC Addresses
3.1 Introduction
3.2 The Need for ARP
3.3 ARP Request and Reply Process
3.4 ARP Packet Structure
3.5 Special Forms of ARP
3.6 ARP Tables and Caching
3.7 ARP Caching and Implications
3.8 ARP Security Considerations
3.9 Analytical Perspective
3.10 Conclusion
3.11 Exercises and Review Questions
3.12 Solutions to the Exercises
II Internet Protocol (IP) and Core Protocols
4 IP Packets: The Internet's Language
4.1 Introduction
4.2 IP Addressing (IPv4 and a Look at IPv6)
4.3 IP Packet Structure: The Unit of Internet Travel
4.4 IP Routing: How Packets Travel Across Networks
4.5 Analytical Perspective
4.6 Conclusion
4.7 Exercises and Review Questions
4.8 Solutions to the Exercises
5 ICMP: Network Troubleshooting
5.1 Introduction
5.2 What is ICMP?
5.3 ICMP Message Format
5.4 Ping and Traceroute: How They Use ICMP
5.5 Other Common ICMP Messages
5.6 Path MTU Discovery: The Message You Cannot Afford to Block
5.7 ICMP and Security
5.8 Path MTU Discovery
5.9 ICMPv6: More Than a Port
5.10 ICMP and Security
5.11 Key Takeaways
5.12 Analytical Perspective
5.13 Conclusion
5.14 Exercises and Review Questions
5.15 Solutions to the Exercises
6 TCP: Reliable Data Delivery
6.1 Introduction
6.2 TCP's Connection-Oriented Nature
6.3 The Three-Way Handshake
6.4 TCP Reliability Mechanisms
6.5 TCP Packet Structure
6.6 TCP Security: SYN Flooding and Reset Attacks
6.7 Practical Example: Loading a Web Page
6.8 Key Takeaways
6.9 Analytical Perspective
6.10 Conclusion
6.11 Exercises and Review Questions
6.12 Solutions to the Exercises
7 UDP: Fast and Lightweight
7.1 Introduction
7.2 UDP's Connectionless Nature
7.3 When to Use UDP vs. TCP
7.4 UDP Packet Structure
7.5 UDP-Based Protocols and the Rise of QUIC
7.6 Practical Example: VoIP and Streaming
7.7 Key Takeaways
7.8 Analytical Perspective
7.9 Conclusion
7.10 Exercises and Review Questions
7.11 Solutions to the Exercises
III Essential Network Services
8 DHCP: Automatic IP Configuration
8.1 Introduction
8.2 The Need for DHCP
8.3 DHCP's Four-Step Process
8.4 DHCP Lease Process
8.5 DHCP Security
8.6 Practical Example: A Laptop Joining a Wi-Fi Network
8.7 Key Takeaways
8.8 Analytical Perspective
8.9 Conclusion
8.10 Exercises and Review Questions
8.11 Solutions to the Exercises
9 DNS: Translating Names to Addresses
9.1 Introduction
9.2 Domain Names and IP Addresses
9.3 The DNS Hierarchy
9.4 DNS Query and Response Process
9.5 DNS Packet Structure
9.6 DNS Security and Privacy
9.7 Practical Example: Opening a Website
9.8 Key Takeaways
9.9 Analytical Perspective
9.10 Conclusion
9.11 Exercises and Review Questions
9.12 Solutions to the Exercises
IV Advanced Protocols and Security
10 Routing Protocols: OSPF and BGP
10.1 Introduction
10.2 The Two Great Families of Routing Algorithm
10.3 OSPF: Open Shortest Path First
10.4 BGP: The Border Gateway Protocol
10.5 When Routing Goes Wrong: Real-World Failures
10.6 Comparing the Protocols
10.7 Analytical Perspective
10.8 Conclusion
10.9 Exercises and Review Questions
10.10 Solutions to the Exercises
11 IPv6 and Neighbor Discovery in Depth
11.1 Introduction
11.2 The IPv6 Address in Practice
11.3 Neighbor Discovery: One Protocol for Many Jobs
11.4 Autoconfiguration: SLAAC and DHCPv6
11.5 Coexistence: Running IPv4 and IPv6 Together
11.6 Why the Transition Is Slow, and Why It Continues
11.7 Analytical Perspective
11.8 Conclusion
11.9 Exercises and Review Questions
11.10 Solutions to the Exercises
12 TLS: Securing the Transport
12.1 Introduction
12.2 The Three Goals: Confidentiality, Integrity, Authentication
12.3 The Cryptographic Toolbox
12.4 The TLS 1.3 Handshake
12.5 Certificates and the Public-Key Infrastructure
12.6 How TLS Fails
12.7 Where TLS Sits, and Where It Is Going
12.8 Analytical Perspective
12.9 Conclusion
12.10 Exercises and Review Questions
12.11 Solutions to the Exercises
13 HTTP: From 1.1 to HTTP/3 and QUIC
13.1 Introduction
13.2 HTTP Fundamentals
13.3 HTTP/1.1 and Its Discontents
13.4 HTTP/2: Multiplexing over One Connection
13.5 QUIC: Reinventing Transport over UDP
13.6 HTTP/3: HTTP over QUIC
13.7 Caching, Cookies, and the Wider HTTP Ecosystem
13.8 Analytical Perspective
13.9 Conclusion
13.10 Exercises and Review Questions
13.11 Solutions to the Exercises
14 Network Security Protocols
14.1 Introduction
14.2 A Framework for Network Threats
14.3 IPsec: Security at the Network Layer
14.4 VPNs: Private Networks over Public Infrastructure
14.5 Firewalls: Controlling What Crosses the Boundary
14.6 Access Control at the Edge
14.7 Bringing the Layers Together
14.8 Analytical Perspective
14.9 Conclusion
14.10 Exercises and Review Questions
14.11 Solutions to the Exercises
V Application and Service Protocols
15 Wireless Networking: Wi-Fi and Beyond
15.1 Introduction
15.2 Why Wireless Is Hard
15.3 The 802.11 Architecture
15.4 Media Access: CSMA/CA
15.5 The 802.11 Frame
15.6 The Evolution of Wi-Fi
15.7 Wireless Security
15.8 Cellular Data as an IP First Hop
15.9 Analytical Perspective
15.10 Conclusion
15.11 Exercises and Review Questions
15.12 Solutions to the Exercises
16 Email Protocols: SMTP, IMAP, and POP3
16.1 Introduction
16.2 The Email Architecture
16.3 SMTP: Moving Mail Forward
16.4 Retrieval: IMAP Versus POP3
16.5 Message Format and Attachments
16.6 Email Security: Authenticating a Trusting System
16.7 Analytical Perspective
16.8 Conclusion
16.9 Exercises and Review Questions
16.10 Solutions to the Exercises
17 Real-Time Communication: SIP, RTP, and WebRTC
17.1 Introduction
17.2 Why Real-Time Is Different
17.3 Separating Signaling from Media
17.4 SIP: Setting Up the Call
17.5 RTP: Carrying the Media
17.6 The NAT Traversal Problem
17.7 WebRTC: Real-Time in the Browser
17.8 Analytical Perspective
17.9 Conclusion
17.10 Exercises and Review Questions
17.11 Solutions to the Exercises
18 Network Management: Time, Monitoring, and Configuration
18.1 Introduction
18.2 Keeping Time: NTP
18.3 Monitoring: SNMP and syslog
18.4 Configuration: From CLI to NETCONF
18.5 Analytical Perspective
18.6 Conclusion
18.7 Exercises and Review Questions
18.8 Solutions to the Exercises
19 Data Center and Software-Defined Networking
19.1 Introduction
19.2 Why the Data Center Is Different
19.3 The Leaf-Spine Fabric
19.4 Network Virtualization: VXLAN and EVPN
19.5 Software-Defined Networking
19.6 Analytical Perspective
19.7 Conclusion
19.8 Exercises and Review Questions
19.9 Solutions to the Exercises
VI Performance, Scale, and Delivery
20 Quality of Service and Traffic Management
20.1 Introduction
20.2 The Source of the Problem: Queues
20.3 Managing the Queue
20.4 Two Philosophies of QoS
20.5 Shaping and Policing at the Edge
20.6 Does the Internet Need QoS?
20.7 Analytical Perspective
20.8 Conclusion
20.9 Exercises and Review Questions
20.10 Solutions to the Exercises
21 Multicast: One-to-Many Delivery
21.1 Introduction
21.2 The Three Delivery Models
21.3 Multicast Addressing
21.4 Joining a Group: IGMP
21.5 Building the Tree: PIM
21.6 Why Multicast Is Rare on the Internet
21.7 Analytical Perspective
21.8 Conclusion
21.9 Exercises and Review Questions
21.10 Solutions to the Exercises
22 Content Delivery, Load Balancing, and Scaling the Edge
22.1 Introduction
22.2 The Tyranny of Distance
22.3 Content Delivery Networks
22.4 Steering Users to the Right Place
22.5 Load Balancing
22.6 Putting It All Together
22.7 Analytical Perspective
22.8 Conclusion
22.9 Exercises and Review Questions
22.10 Solutions to the Exercises
23 Epilogue: The Enduring Ideas and the Road Ahead
23.1 What the Protocols Have in Common
23.2 Tensions That Never Resolve
23.3 The Road Ahead
23.4 A Final Word
23.5 Exercises and Review Questions
23.6 Solutions to the Exercises
A Glossary of Networking Terms
B Reference Tables
B.1 IP Protocol Numbers
B.2 Well-Known Port Numbers
B.3 IPv4 Subnetting Quick Reference
B.4 Private and Special-Purpose IPv4 Ranges
B.5 Key RFCs by Protocol
C Practical Packet Analysis Walkthrough
C.1 The Scenario
C.2 Step 1: Joining the Network (Layer 1--2)
C.3 Step 2: Getting an Address (DHCP)
C.4 Step 3: Finding the Server (DNS)
C.5 Step 4: Connecting (TCP)
C.6 Step 5: Securing the Channel (TLS)
C.7 Step 6: Requesting the Page (HTTP)
C.8 Step 7: Rendering and Cleanup
C.9 What Just Happened
C.10 Suggested Exercises
Index