Computer Networking A Top-Down Approach
About the Authors
Preface
What’s New in the Eighth Edition?
What Is Unique About This Textbook?
Pedagogical Features
Supplements for Instructors
Chapter Dependencies
One Fi
...
Computer Networking A Top-Down Approach
About the Authors
Preface
What’s New in the Eighth Edition?
What Is Unique About This Textbook?
Pedagogical Features
Supplements for Instructors
Chapter Dependencies
One Final Note: We’d Love to Hear from You
Brief Contents
Table of Contents
Computer Networking A Top-Down Approach
Chapter 1 Computer Networks and the Internet
1.1 What Is the Internet?
1.1.1 A Nuts-and-Bolts Description
1.1.2 A Services Description
1.1.3 What Is a Protocol?
A Human Analogy
Network Protocols
1.2 The Network Edge
1.2.1 Access Networks
Home Access: DSL, Cable, FTTH, and 5G Fixed Wireless
Access in the Enterprise (and the Home): Ethernet and WiFi
Wide-Area Wireless Access: 3G and LTE 4G and 5G
1.2.2 Physical Media
Twisted-Pair Copper Wire
Coaxial Cable
Fiber Optics
Terrestrial Radio Channels
Satellite Radio Channels
1.3 The Network Core
1.3.1 Packet Switching
Store-and-Forward Transmission
Queuing Delays and Packet Loss
Forwarding Tables and Routing Protocols
1.3.2 Circuit Switching
Multiplexing in Circuit-Switched Networks
Packet Switching Versus Circuit Switching
1.3.3 A Network of Networks
1.4 Delay, Loss, and Throughput in Packet-Switched Networks
1.4.1 Overview of Delay in Packet-Switched Networks
Types of Delay
Processing Delay
Queuing Delay
Transmission Delay
Propagation Delay
Comparing Transmission and Propagation Delay
1.4.2 Queuing Delay and Packet Loss
Packet Loss
1.4.3 End-to-End Delay
Traceroute
End System, Application, and Other Delays
1.4.4 Throughput in Computer Networks
1.5 Protocol Layers and Their Service Models
1.5.1 Layered Architecture
Protocol Layering
Application Layer
Transport Layer
Network Layer
Link Layer
Physical Layer
1.5.2 Encapsulation
1.6 Networks Under Attack
1.7 History of Computer Networking and the Internet
1.7.1 The Development of Packet Switching: 1961–1972
1.7.2 Proprietary Networks and Internetworking: 1972–1980
1.7.3 A Proliferation of Networks: 1980–1990
1.7.4 The Internet Explosion: The 1990s
1.7.5 The New Millennium
1.8 Summary
Road-Mapping This Book
Homework Problems and Questions
Chapter 1 Review Questions
Section 1.1
Section 1.2
Section 1.3
Section 1.4
Section 1.5
Section 1.6
Problems
Wireshark Lab
Chapter 2 Application Layer
2.1 Principles of Network Applications
2.1.1 Network Application Architectures
2.1.2 Processes Communicating
Client and Server Processes
The Interface Between the Process and the Computer Network
Addressing Processes
2.1.3 Transport Services Available to Applications
Reliable Data Transfer
Throughput
Timing
Security
2.1.4 Transport Services Provided by the Internet
TCP Services
UDP Services
Services Not Provided by Internet Transport Protocols
2.1.5 Application-Layer Protocols
2.1.6 Network Applications Covered in This Book
2.2 The Web and HTTP
2.2.1 Overview of HTTP
2.2.2 Non-Persistent and Persistent Connections
HTTP with Non-Persistent Connections
HTTP with Persistent Connections
2.2.3 HTTP Message Format
HTTP Request Message
HTTP Response Message
2.2.4 User-Server Interaction: Cookies
2.2.5 Web Caching
The Conditional GET
2.2.6 HTTP/2
HTTP/2 Framing
Response Message Prioritization and Server Pushing
HTTP/3
2.3 Electronic Mail in the Internet
2.3.1 SMTP
2.3.2 Mail Message Formats
2.3.3 Mail Access Protocols
2.4 DNS—The Internet’s Directory Service
2.4.1 Services Provided by DNS
2.4.2 Overview of How DNS Works
A Distributed, Hierarchical Database
DNS Caching
2.4.3 DNS Records and Messages
DNS Messages
Inserting Records into the DNS Database
2.5 Peer-to-Peer File Distribution
2.6 Video Streaming and Content Distribution Networks
2.6.1 Internet Video
2.6.2 HTTP Streaming and DASH
2.6.3 Content Distribution Networks
CDN Operation
Cluster Selection Strategies
2.6.4 Case Studies: Netflix and YouTube
Netflix
YouTube
2.7 Socket Programming: Creating Network Applications
2.7.1 Socket Programming with UDP
UDPClient.py
UDPServer.py
2.7.2 Socket Programming with TCP
TCPClient.py
TCPServer.py
2.8 Summary
Homework Problems and Questions
Chapter 2 Review Questions
Section 2.1
Sections 2.2–2.5
Section 2.5
Section 2.6
Section 2.7
Problems
Socket Programming Assignments
Assignment 1: Web Server
Assignment 2: UDP Pinger
Assignment 3: Mail Client
Assignment 4: Web Proxy
Wireshark Lab: HTTP
Wireshark Lab: DNS
Chapter 3 Transport Layer
3.1 Introduction and Transport-Layer Services
3.1.1 Relationship Between Transport and Network Layers
3.1.2 Overview of the Transport Layer in the Internet
3.2 Multiplexing and Demultiplexing
3.3 Connectionless Transport: UDP
3.3.1 UDP Segment Structure
3.3.2 UDP Checksum
3.4 Principles of Reliable Data Transfer
3.4.1 Building a Reliable Data Transfer Protocol
Reliable Data Transfer over a Perfectly Reliable Channel: rdt1.0
Reliable Data Transfer over a Channel with Bit Errors: rdt2.0
Reliable Data Transfer over a Lossy Channel with Bit Errors: rdt3.0
3.4.2 Pipelined Reliable Data Transfer Protocols
3.4.3 Go-Back-N (GBN)
3.4.4 Selective Repeat (SR)
3.5 Connection-Oriented Transport: TCP
3.5.1 The TCP Connection
3.5.2 TCP Segment Structure
Sequence Numbers and Acknowledgment Numbers
Telnet: A Case Study for Sequence and Acknowledgment Numbers
3.5.3 Round-Trip Time Estimation and Timeout
Estimating the Round-Trip Time
Setting and Managing the Retransmission Timeout Interval
3.5.4 Reliable Data Transfer
A Few Interesting Scenarios
Doubling the Timeout Interval
Fast Retransmit
Go-Back-N or Selective Repeat?
3.5.5 Flow Control
3.5.6 TCP Connection Management
3.6 Principles of Congestion Control
3.6.1 The Causes and the Costs of Congestion
Scenario 1: Two Senders, a Router with Infinite Buffers
Scenario 2: Two Senders and a Router with Finite Buffers
Scenario 3: Four Senders, Routers with Finite Buffers, and Multihop Paths
3.6.2 Approaches to Congestion Control
3.7 TCP Congestion Control
3.7.1 Classic TCP Congestion Control
3.7.2 Network-Assisted Explicit Congestion Notification and Delayed-based Congestion Control
Explicit Congestion Notification
Delay-based Congestion Control
3.7.3 Fairness
Fairness and UDP
Fairness and Parallel TCP Connections
3.8 Evolution of Transport-Layer Functionality
3.9 Summary
Homework Problems and Questions
Chapter 3 Review Questions
Sections 3.1–3.3
Section 3.4
Section 3.5
Section 3.7
Problems
Programming Assignments
Implementing a Reliable Transport Protocol
Wireshark Lab: Exploring TCP
Wireshark Lab: Exploring UDP
Please describe one or two of the most exciting projects you have worked on during your career. What were the biggest challenges?
More generally, where do you see the future of networking and the Internet?
What people inspired you professionally?
What are your recommendations for students who want careers in computer science and networking?
Chapter 4 The Network Layer: Data Plane
4.1 Overview of Network Layer
4.1.1 Forwarding and Routing: The Data and Control Planes
Control Plane: The Traditional Approach
Control Plane: The SDN Approach
4.1.2 Network Service Model
An Overview of Chapter 4
4.2 What’s Inside a Router?
4.2.1 Input Port Processing and Destination-Based Forwarding
4.2.2 Switching
4.2.3 Output Port Processing
4.2.4 Where Does Queuing Occur?
Input Queueing
Output Queueing
How Much Buffering Is “Enough?”
4.2.5 Packet Scheduling
First-in-First-Out (FIFO)
Priority Queuing
Round Robin and Weighted Fair Queuing (WFQ)
4.3 The Internet Protocol (IP): IPv4, Addressing, IPv6, and More
4.3.1 IPv4 Datagram Format
4.3.2 IPv4 Addressing
Obtaining a Block of Addresses
Obtaining a Host Address: The Dynamic Host Configuration Protocol
4.3.3 Network Address Translation (NAT)
4.3.4 IPv6
IPv6 Datagram Format
Transitioning from IPv4 to IPv6
4.4 Generalized Forwarding and SDN
4.4.1 Match
4.4.2 Action
4.4.3 OpenFlow Examples of Match-plus-action in Action
A First Example: Simple Forwarding
A Second Example: Load Balancing
A Third Example: Firewalling
4.5 Middleboxes
4.6 Summary
Homework Problems and Questions
Chapter 4 Review Questions
Section 4.1
Section 4.2
Section 4.3
Section 4.4
Problems
Wireshark Lab
Chapter 5 The Network Layer: Control Plane
5.1 Introduction
5.2 Routing Algorithms
5.2.1 The Link-State (LS) Routing Algorithm
Link-State (LS) Algorithm for Source Node u
5.2.2 The Distance-Vector (DV) Routing Algorithm
Distance-Vector (DV) Algorithm
Distance-Vector Algorithm: Link-Cost Changes and Link Failure
Distance-Vector Algorithm: Adding Poisoned Reverse
A Comparison of LS and DV Routing Algorithms
5.3 Intra-AS Routing in the Internet: OSPF
5.4 Routing Among the ISPs: BGP
5.4.1 The Role of BGP
5.4.2 Advertising BGP Route Information
5.4.3 Determining the Best Routes
Hot Potato Routing
Route-Selection Algorithm
5.4.4 IP-Anycast
5.4.5 Routing Policy
5.4.6 Putting the Pieces Together: Obtaining Internet Presence
5.5 The SDN Control Plane
5.5.1 The SDN Control Plane: SDN Controller and SDN Network-control Applications
5.5.2 OpenFlow Protocol
5.5.3 Data and Control Plane Interaction: An Example
5.5.4 SDN: Past and Future
5.6 ICMP: The Internet Control Message Protocol
5.7 Network Management and SNMP, NETCONF/YANG
5.7.1 The Network Management Framework
5.7.2 The Simple Network Management Protocol (SNMP) and the Management Information Base (MIB)
The Management Information Base (MIB)
5.7.3 The Network Configuration Protocol (NETCONF) and YANG
YANG
5.8 Summary
Homework Problems and Questions
Chapter 5 Review Questions
Section 5.1
Section 5.2
Sections 5.3–5.4
Section 5.5
Sections 5.6–5.7
Problems
Socket Programming Assignment 5: ICMP Ping
Programming Assignment: Routing
Wireshark Lab
Please describe one or two of the most exciting projects you have worked on during your career. What were the biggest challenges?
How do you think software-defined networking should evolve in the future?
Where do you see the future of networking and the Internet?
What people inspired you professionally?
What are your recommendations for students who want careers in computer science and networking?
Chapter 6 The Link Layer and LANs
6.1 Introduction to the Link Layer
6.1.1 The Services Provided by the Link Layer
6.1.2 Where Is the Link Layer Implemented?
6.2 Error-Detection and -Correction Techniques
6.2.1 Parity Checks
6.2.2 Checksumming Methods
6.2.3 Cyclic Redundancy Check (CRC)
6.3 Multiple Access Links and Protocols
6.3.1 Channel Partitioning Protocols
6.3.2 Random Access Protocols
Slotted ALOHA
ALOHA
Carrier Sense Multiple Access (CSMA)
Carrier Sense Multiple Access with Collision Detection (CSMA/CD)
CSMA/CD Efficiency
6.3.3 Taking-Turns Protocols
6.3.4 DOCSIS: The Link-Layer Protocol for Cable Internet Access
6.4 Switched Local Area Networks
6.4.1 Link-Layer Addressing and ARP
MAC Addresses
Address Resolution Protocol (ARP)
Sending a Datagram off the Subnet
6.4.2 Ethernet
Ethernet Frame Structure
Ethernet Technologies
6.4.3 Link-Layer Switches
Forwarding and Filtering
Self-Learning
Properties of Link-Layer Switching
Switches Versus Routers
6.4.4 Virtual Local Area Networks (VLANs)
6.5 Link Virtualization: A Network as a Link Layer
6.5.1 Multiprotocol Label Switching (MPLS)
6.6 Data Center Networking
6.6.1 Data Center Architectures
Load Balancing
Hierarchical Architecture
6.6.2 Trends in Data Center Networking
Cost Reduction
Centralized SDN Control and Management
Virtualization
Physical Constraints
Hardware Modularity and Customization
6.7 Retrospective: A Day in the Life of a Web Page Request
6.7.1 Getting Started: DHCP, UDP, IP, and Ethernet
6.7.2 Still Getting Started: DNS and ARP
6.7.3 Still Getting Started: Intra-Domain Routing to the DNS Server
6.7.4 Web Client-Server Interaction: TCP and HTTP
6.8 Summary
Homework Problems and Questions
Chapter 6 Review Questions
Sections 6.1–6.2
Section 6.3
Section 6.4
Problems
Wireshark Labs: 802.11 Ethernet
Chapter 7 Wireless and Mobile Networks
7.1 Introduction
7.2 Wireless Links and Network Characteristics
7.2.1 CDMA
7.3 WiFi: 802.11 Wireless LANs
7.3.1 The 802.11 Wireless LAN Architecture
Channels and Association
7.3.2 The 802.11 MAC Protocol
Dealing with Hidden Terminals: RTS and CTS
Using 802.11 as a Point-to-Point Link
7.3.3 The IEEE 802.11 Frame
Payload and CRC Fields
Address Fields
Sequence Number, Duration, and Frame Control Fields
7.3.4 Mobility in the Same IP Subnet
7.3.5 Advanced Features in 802.11
802.11 Rate Adaptation
Power Management
7.3.6 Personal Area Networks: Bluetooth*
7.4 Cellular Networks: 4G and 5G
7.4.1 4G LTE Cellular Networks: Architecture and Elements
7.4.2 LTE Protocols Stacks
7.4.3 LTE Radio Access Network
7.4.4 Additional LTE Functions: Network Attachment and Power Management
Network Attachment
Power Management: Sleep Modes
7.4.5 The Global Cellular Network: A Network of Networks
7.4.6 5G Cellular Networks
5G and Millimeter Wave Frequencies
5G Core Network
7.5 Mobility Management: Principles
7.5.1 Device Mobility: a Network-layer Perspective
7.5.2 Home Networks and Roaming on Visited Networks
7.5.3 Direct and Indirect Routing to/from a Mobile Device
Leveraging the Existing IP Address Infrastructure
Indirect Routing to a Mobile Device
Direct Routing to a Mobile Device
7.6 Mobility Management in Practice
7.6.1 Mobility Management in 4G/5G Networks
7.6.2 Mobile IP
7.7 Wireless and Mobility: Impact on Higher-Layer Protocols
7.8 Summary
Homework Problems and Questions
Chapter 7 Review Questions
Section 7.1
Section 7.2
Section 7.3
Section 7.5
Section 7.6
Section 7.7
Problems
Wireshark Lab: WiFi
Chapter 8 Security in Computer Networks
8.1 What Is Network Security?
8.2 Principles of Cryptography
8.2.1 Symmetric Key Cryptography
Block Ciphers
Cipher-Block Chaining
8.2.2 Public Key Encryption
RSA
Session Keys
Why Does RSA Work?
8.3 Message Integrity and Digital Signatures
8.3.1 Cryptographic Hash Functions
8.3.2 Message Authentication Code
8.3.3 Digital Signatures
Public Key Certification
8.4 End-Point Authentication
Authentication Protocol ap2.0
Authentication Protocol ap3.0
Authentication Protocol ap3.1
Authentication Protocol ap4.0
8.5 Securing E-Mail
8.5.1 Secure E-Mail
8.5.2 PGP
8.6 Securing TCP Connections: TLS
8.6.1 The Big Picture
Handshake
Key Derivation
Data Transfer
TLS Record
8.6.2 A More Complete Picture
TLS Handshake
Connection Closure
8.7 Network-Layer Security: IPsec and Virtual Private Networks
8.7.1 IPsec and Virtual Private Networks (VPNs)
8.7.2 The AH and ESP Protocols
8.7.3 Security Associations
8.7.4 The IPsec Datagram
Summary of IPsec Services
8.7.5 IKE: Key Management in IPsec
8.8 Securing Wireless LANs and 4G/5G Cellular Networks
8.8.1 Authentication and Key Agreement in 802.11 Wireless LANs
Mutual Authentication and Shared Symmetric Session Key Derivation
802.11 Security Messaging Protocols
8.8.2 Authentication and Key Agreement in 4G/5G Cellular Networks
8.9 Operational Security: Firewalls and Intrusion Detection Systems
8.9.1 Firewalls
Traditional Packet Filters
Stateful Packet Filters
Application Gateway
8.9.2 Intrusion Detection Systems
Snort
8.10 Summary
Homework Problems and Questions
Chapter 8 Review Problems
[Show More]