Contents
Computer Networking
A Top-Down Approach
About the Authors
Preface
What’s New in the Seventh Edition?
What Is Unique About This Textbook?
Pedagogical Features
Supplements for Instructors
Chapter Dependencies
One Final Note: We’d Love to Hear from You
Table of Contents
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, Dial-Up, and Satellite
Access in the Enterprise (and the Home): Ethernet and WiFi
Wide-Area Wireless Access: 3G and LTE
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
The OSI Model
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
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.3
Electronic Mail in the Internet
2.3.1
SMTP
2.3.2
Comparison with HTTP
2.3.3
Mail Message Formats
2.3.4
Mail Access Protocols
POP3
IMAP
Web-Based E-Mail
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, YouTube, and Kankan
Netflix
YouTube
Kankan
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
SECTION
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: Multi-Threaded 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
Fairness
Fairness and UDP
Fairness and Parallel TCP Connections
3.7.2
Explicit Congestion Notification (ECN): Network-assisted Congestion Control
3.8
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
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
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 Datagram Fragmentation
4.3.3
IPv4 Addressing
Obtaining a Block of Addresses
Obtaining a Host Address: The Dynamic Host Configuration Protocol
4.3.4
Network Address Translation (NAT)
4.3.5
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
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.2
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
5.7.1
The Network Management Framework
5.7.2
The Simple Network Management Protocol (SNMP)
5.7
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
Assignment 5: ICMP Ping
Programming Assignment
Wireshark Lab
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 Dection (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.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
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 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 and Zigbee
Bluetooth
Zigbee
7.4
Cellular Internet Access
7.4.1
An Overview of Cellular Network Architecture
Cellular Network Architecture, 2G: Voice Connections to the Telephone Network
7.4.2
3G Cellular Data Networks: Extending the Internet to Cellular Subscribers
3G Core Network
3G Radio Access Network: The Wireless Edge
7.4.3
On to 4G: LTE
4G System Architecture: An All-IP Core Network
LTE Radio Access Network
7.5
Mobility Management: Principles
7.5.1
Addressing
7.5.2
Routing to a Mobile Node
Indirect Routing to a Mobile Node
Direct Routing to a Mobile Node
7.6
Mobile IP
7.7
Managing Mobility in Cellular Networks
7.7.1
Routing Calls to a Mobile User
7.7.2
Handoffs in GSM
7.8
Wireless and Mobility: Impact on Higher-Layer Protocols
7.9
Summary
Homework Problems and Questions
Chapter
7
Review Questions
Section
7.1
Section
7.2
Sections
7.3
and
7.4
Sections
7.5
and
7.6
Section
7.7
Section
7.8
Problems
Wireshark Lab
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
8.4.1
Authentication Protocol
ap1.0
8.4.2
Authentication Protocol
ap2.0
8.4.3
Authentication Protocol
ap3.0
8.4.4
Authentication Protocol
ap3.1
8.4.5
Authentication Protocol
ap4.0
8.5
Securing E-Mail
8.5.1
Secure E-Mail
8.5.2
PGP
8.6
Securing TCP Connections: SSL
8.6.1
The Big Picture
Handshake
Key Derivation
Data Transfer
SSL Record
8.6.2
A More Complete Picture
SSL 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
8.8.1
Wired Equivalent Privacy (WEP)
8.8.2
IEEE 802.11i
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
SECTION
8.1
SECTION
8.2
SECTIONS
8.3
–
8.4
SECTIONS
8.5
–8.8
SECTION
8.9
Problems
Wireshark Lab
IPsec Lab
Chapter
9
Multimedia Networking
9.1
Multimedia Networking Applications
9.1.1
Properties of Video
9.1.2
Properties of Audio
9.1.3
Types of Multimedia Network Applications
Streaming Stored Audio and Video
Conversational Voice- and Video-over-IP
Streaming Live Audio and Video
9.2
Streaming Stored Video
9.2.1
UDP Streaming
9.2.2
HTTP Streaming
Prefetching Video
Client Application Buffer and TCP Buffers
Analysis of Video Streaming
Early Termination and Repositioning the Video
9.3
Voice-over-IP
9.3.1
Limitations of the Best-Effort IP Service
Packet Loss
End-to-End Delay
Packet Jitter
9.3.2
Removing Jitter at the Receiver for Audio
Fixed Playout Delay
Adaptive Playout Delay
9.3.3
Recovering from Packet Loss
Forward Error Correction (FEC)
Interleaving
Error Concealment
9.3.4
Case Study: VoIP with Skype
9.4
Protocols for Real-Time Conversational Applications
9.4.1
RTP
RTP Basics
RTP Packet Header Fields
9.4.2
SIP
Setting Up a Call to a Known IP Address
SIP Addresses
SIP Messages
Name Translation and User Location
9.5
Network Support for Multimedia
9.5.1
Dimensioning Best-Effort Networks
9.5.2
Providing Multiple Classes of Service
Motivating Scenarios
The Leaky Bucket
Leaky Bucket
+
Weighted Fair Queuing
=
Provable Maximum Delay in a Queue
9.5.3
Diffserv
9.5.4
Per-Connection Quality-of-Service (QoS) Guarantees: Resource Reservation and Call Admission
9.6
Summary
Homework Problems and Questions
Chapter
9
Review Questions
SECTION
9.1
SECTION
9.2
SECTION
9.3
SECTION
9.4
Problems
Programming Assignment
References
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
List of Illustrations
Figure 1.1 Some pieces of the Internet
Figure 1.2 A human protocol and a computer network protocol
Figure 1.3 End-system interaction
Figure 1.4 Access networks
Figure 1.5 DSL Internet access
Figure 1.6 A hybrid fiber-coaxial access network
Figure 1.7 FTTH Internet access
Figure 1.8 Ethernet Internet access
Figure 1.9 A typical home network
Figure 1.10 The network core
Figure 1.11 Store-and-forward packet switching
Figure 1.12 Packet switching
Figure 1.13 A simple circuit-switched network consisting of four switches and four links
Figure 1.14
Figure 1.15 Interconnection of ISPs
Figure 1.16 The nodal delay at router A
Figure 1.17 Caravan analogy
Figure 1.18 Dependence of average queuing delay on traffic intensity
Figure 1.19 Throughput for a file transfer from server to client
Figure 1.20 End-to-end throughput: (a) Client downloads a file from server; (b) 10 clients downloading with 10 servers
Figure 1.21 Taking an airplane trip: actions
Figure 1.22 Horizontal layering of airline functionality
Figure 1.23 The Internet protocol stack (a) and OSI reference model (b)
Figure 1.24 Hosts, routers, and link-layer switches; each contains a different set of layers, reflecting their differences in functionality
Figure 1.25 A distributed denial-of-service attack
Figure 1.26 An early packet switch
Figure 1.27 End-to-end message transport: (a) without message segmentation; (b) with message segmentation
Figure 1.28 A Wireshark screenshot (Wireshark screenshot reprinted by permission of the Wireshark Foundation.)
Figure 2.1 Communication for a network application takes place between end systems at the application layer
Figure 2.2 (a) Client-server architecture; (b) P2P architecture
Figure 2.3 Application processes, sockets, and underlying transport protocol
Figure 2.4 Requirements of selected network applications
Figure 2.5 Popular Internet applications, their application-layer protocols, and their underlying transport protocols
Figure 2.6 HTTP request-response behavior
Figure 2.7 Back-of-the-envelope calculation for the time needed to request and receive an HTML file
Figure 2.8 General format of an HTTP request message
Figure 2.9 General format of an HTTP response message
Figure 2.10 Keeping user state with cookies
Figure 2.11 Clients requesting objects through a Web cache
Figure 2.12 Bottleneck between an institutional network and the Internet
Figure 2.13 Adding a cache to the institutional network
Figure 2.14 A high-level view of the Internet e-mail system
Figure 2.15 Alice sends a message to Bob
Figure 2.16 E-mail protocols and their communicating entities
Figure 2.17 Portion of the hierarchy of DNS servers
Figure 2.18 DNS root servers in 2016
Figure 2.19 Interaction of the various DNS servers
Figure 2.20 Recursive queries in DNS
Figure 2.21 DNS message format
Figure 2.22 An illustrative file distribution problem
Figure 2.23 Distribution time for P2P and client-server architectures
Figure 2.24 File distribution with BitTorrent
Figure 2.25 DNS redirects a user’s request to a CDN server
Figure 2.26 Netflix video streaming platform
Figure 2.27 The client-server application using UDP
Figure 2.28 The TCPServer process has two sockets
Figure 2.29 The client-server application using TCP
Figure 3.1 The transport layer provides logical rather than physical communication between application processes
Figure 3.2 Transport-layer multiplexing and demultiplexing
Figure 3.3 Source and destination port-number fields in a transport-layer segment
Figure 3.4 The inversion of source and destination port numbers
Figure 3.5 Two clients, using the same destination port number (80) to communicate with the same Web server application
Figure 3.6 Popular Internet applications and their underlying transport protocols
Figure 3.7 UDP segment structure
Figure 3.8 Reliable data transfer: Service model and service implementation
Figure 3.9 rdt1.0 – A protocol for a completely reliable channel
Figure 3.10 rdt2.0 – A protocol for a channel with bit errors
Figure 3.11 rdt2.1 sender
Figure 3.12 rdt2.1 receiver
Figure 3.13 rdt2.2 sender
Figure 3.14 rdt2.2 receiver
Figure 3.15 rdt3.0 sender
Figure 3.16 Operation of rdt3.0, the alternating-bit protocol
Figure 3.17 Stop-and-wait versus pipelined protocol
Figure 3.18 Stop-and-wait and pipelined sending
Figure 3.19 Sender’s view of sequence numbers in Go-Back-N
Figure 3.20 Extended FSM description of the GBN sender
Figure 3.21 Extended FSM description of the GBN receiver
Figure 3.22 Go-Back-N in operation
Figure 3.23 Selective-repeat (SR) sender and receiver views of sequence-number space
Figure 3.24 SR sender events and actions
Figure 3.25 SR receiver events and actions
Figure 3.26 SR operation
Figure 3.27 SR receiver dilemma with too-large windows: A new packet or a retransmission?
Figure 3.28 TCP send and receive buffers
Figure 3.29 TCP segment structure
Figure 3.30 Dividing file data into TCP segments
Figure 3.31 Sequence and acknowledgment numbers for a simple Telnet application over TCP
Figure 3.32 RTT samples and RTT estimates
Figure 3.33 Simplified TCP sender
Figure 3.34 Retransmission due to a lost acknowledgment
Figure 3.35 Segment 100 not retransmitted
Figure 3.36 A cumulative acknowledgment avoids retransmission of the first segment
Figure 3.37 Fast retransmit: retransmitting the missing segment before the segment’s timer expires
Figure 3.38 The receive window (rwnd) and the receive buffer (RcvBuffer)
Figure 3.39 TCP three-way handshake: segment exchange
Figure 3.40 Closing a TCP connection
Figure 3.41 A typical sequence of TCP states visited by a client TCP
Figure 3.42 A typical sequence of TCP states visited by a server-side TCP
Figure 3.43 Congestion scenario 1: Two connections sharing a single hop with infinite buffers
Figure 3.44 Congestion scenario 1: Throughput and delay as a function of host sending rate
Figure 3.45 Scenario 2: Two hosts (with retransmissions) and a router with finite buffers
Figure 3.46 Scenario 2 performance with finite buffers
Figure 3.47 Four senders, routers with finite buffers, and multihop paths
Figure 3.48 Scenario 3 performance with finite buffers and multihop paths
Figure 3.49 Two feedback pathways for network-indicated congestion information
Figure 3.50 TCP slow start
Figure 3.51 FSM description of TCP congestion control
Figure 3.52 Evolution of TCP’s congestion window (Tahoe and Reno)
Figure 3.53 Additive-increase, multiplicative-decrease congestion control
Figure 3.54 Two TCP connections sharing a single bottleneck link
Figure 3.55 Throughput realized by TCP connections 1 and 2
Figure 3.56 Explicit Congestion Notification: network-assisted congestion control
Figure 3.57 An incorrect receiver for protocol rdt 2.1
Figure 3.58 TCP window size as a function of time
Figure 4.1 The network layer
Figure 4.2 Routing algorithms determine values in forward tables
Figure 4.3 A remote controller determines and distributes values in forwarding tables
Figure 4.4 Router architecture
Figure 4.5 Input port processing
Figure 4.6 Three switching techniques
Figure 4.7 Output port processing
Figure 4.8 HOL blocking at and input-queued switch
Figure 4.9 Output port queueing
Figure 4.10 FIFO queueing abstraction
Figure 4.11 The FIFO queue in operation
Figure 4.12 The priority queueing model
Figure 4.13 The priority queue in operation
Figure 4.14 The two-class robin queue in operation
Figure 4.15 Weighted fair queueing
Figure 4.16 IPv4 datagram format
Figure 4.17 IP fragmentation and reassembly
Figure 4.18 Interface addresses and subnets
Figure 4.19 Subnet addresses
Figure 4.20 Three routers interconnecting six subnets
Figure 4.21 Hierarchical addressing and route aggregation
Figure 4.22 ISPs-R-Us has a more specific route to Organization 1
Figure 4.23 DHCP client and server
Figure 4.24 DHCP client-server interaction
Figure 4.25 Network address translation
Figure 4.26 IPv6 datagram format
Figure 4.27 Tunneling
Figure 4.28 Generalized forwarding: Each packet switch contains a match-plus-action table that is computed and distributed by a remote controller
Figure 4.29 Packet matching fields, OpenFlow 1.0 flow table
Figure 4.30 OpenFlow match-plus-action network with three packet switches, 6 hosts, and an OpenFlow controller
Figure 5.1 Per-router control: Individual routing algorithm components interact in the control plane
Figure 5.2 Logically centralized control: A distinct, typically remote, controller interacts with local control agents (CAs)
Figure 5.3 Abstract graph model of a computer network
Figure 5.4 Least cost path and forwarding table for node u
Figure 5.5 Oscillations with congestion-sensitive routing
Figure 5.6 Distance-vector (DV) algorithm in operation
Figure 5.7 Changes in link cost
Figure 5.8 Network with three autonomous systems. AS3 includes a subnet with prefix x
Figure 5.9 eBGP and iBGP connections
Figure 5.10 Network augmented with peering link between AS1 and AS3
Figure 5.11 Steps in adding outside-AS destination in a router’s forwarding table
Figure 5.12 Using IP-anycast to bring users to the closest CDN server
Figure 5.13 A simple BGP policy scenario
Figure 5.14 Components of the SDN architecture: SDN-controlled switches, the SDN controller, network-control applications
Figure 5.15 Components of an SDN controller
Figure 5.16 SDN controller scenario: Link-state change
Figure 5.17 The OpenDaylight controller
Figure 5.18 ONOS controller architecture
Figure 5.19 ICMP message types
Figure 5.20 Elements of network management: Managing server, managed devices, MIB data, remote agents, SNMP
Figure 5.21 SNMP PDU format
Figure 6.1 Six link-layer hops between wireless host and server
Figure 6.2 Network adapter: Its relationship to other host components and to protocol stack functionality
Figure 6.3 Error-detection and -correction scenario
Figure 6.4 One-bit even parity
Figure 6.5 Two-dimensional even parity
Figure 6.6 CRC
Figure 6.7 A sample CRC calculation
Figure 6.8 Various multiple access channels
Figure 6.9 A four-node TDM and FDM example
Figure 6.10 Nodes 1, 2, and 3 collide in the first slot. Node 2 finally succeeds in the fourth slot, node 1 in the eighth slot, and node 3 in the ninth slot
Figure 6.11 Interfering transmissions in pure ALOHA
Figure 6.12 Space-time diagram of two CSMA nodes with colliding transmissions
Figure 6.13 CSMA with collision detection
Figure 6.14 Upstream and downstream channels between CMTS and cable modems
Figure 6.15 An institutional network connected together by four switches
Figure 6.16 Each interface connected to a LAN has a unique MAC address
Figure 6.17 Each interface on a LAN has an IP address and a MAC address
Figure 6.18 A possible ARP table in 222.222.222.220
Figure 6.19 Two subnets interconnected by a router
Figure 6.20 Ethernet frame structure
Figure 6.21 100 Mbps Ethernet standards: A common link layer, different physical layers
Figure 6.22 Portion of a switch table for the uppermost switch in Figure 6.15
Figure 6.23 Switch learns about the location of an adapter with address 01-12-23-34-45-56
Figure 6.24 Packet processing in switches, routers, and hosts
Figure 6.25 A single switch with two configured VLANs
Figure 6.26 Connecting two VLAN switches with two VLANs: (a) two cables (b) trunked
Figure 6.27 Original Ethernet frame (top), 802.1Q-tagged Ethernet VLAN frame (below)
Figure 6.28 MPLS header: Located between link- and network-layer headers
Figure 6.29 MPLS-enhanced forwarding
Figure 6.30 A data center network with a hierarchical topology
Figure 6.31 Highly interconnected data network topology
Figure 6.32 A day in the life of a Web page request: Network setting and actions
Figure 6.33 Three subnets, interconnected by routers
Figure 7.1 Elements of a wireless network
Figure 7.2 Link characteristics of selected wireless network standards
Figure 7.3 Bit error rate, transmission rate, and SNR
Figure 7.4 Hidden terminal problem caused by obstacle (a) and fading (b)
Figure 7.5 A simple CDMA example: Sender encoding, receiver decoding
Figure 7.6 A two-sender CDMA example
Figure 7.7 IEEE 802.11 LAN architecture
Figure 7.8 An IEEE 802.11 ad hoc network
Figure 7.9 Active and passive scanning for access points
Figure 7.10 802.11 uses link-layer acknowledgments
Figure 7.11 Hidden terminal example: H1 is hidden from H2, and vice versa
Figure 7.12 Collision avoidance using the RTS and CTS frames
Figure 7.13 The 802.11 frame
Figure 7.14 The use of address fields in 802.11 frames: Sending frames between H1 and R1
Figure 7.15 Mobility in the same subnet
Figure 7.16 A Bluetooth piconet
Figure 7.17 Zigbee 802.15.4 super-frame structure
Figure 7.18 Components of the GSM 2G cellular network architecture
Figure 7.19 3G system architecture
Figure 7.20 4G network architecture
Figure 7.21 Twenty 0.5 ms slots organized into 10 ms frames at each frequency. An eight-slot allocation is shown shaded.
Figure 7.22 Various degrees of mobility, from the network layer’s point of view
Figure 7.23 Initial elements of a mobile network architecture
Figure 7.24 Indirect routing to a mobile node
Figure 7.25 Encapsulation and decapsulation
Figure 7.26 Direct routing to a mobile user
Figure 7.27 Mobile transfer between networks with direct routing
Figure 7.28 ICMP router discovery message with mobility agent advertisement extension
Figure 7.29 Agent advertisement and mobile IP registration
Figure 7.30 Placing a call to a mobile user: Indirect routing
Figure 7.31 Handoff scenario between base stations with a common MSC
Figure 7.32 Steps in accomplishing a handoff between base stations with a common MSC
Figure 7.33 Rerouting via the anchor MSC
Figure 7.34 Scenario for problem P8
Figure 8.1 Sender, receiver, and intruder (Alice, Bob, and Trudy)
Figure 8.2 Cryptographic components
Figure 8.3 A monoalphabetic cipher
Figure 8.4 A polyalphabetic cipher using two Caesar ciphers
Figure 8.5 An example of a block cipher
Figure 8.6 Public key cryptography
Figure 8.7 Hash functions
Figure 8.8 Initial message and fraudulent message have the same checksum!
Figure 8.9 Message authentication code (MAC)
Figure 8.10 Creating a digital signature for a document
Figure 8.11 Sending a digitally signed message
Figure 8.12 Verifying a signed message
Figure 8.13 Trudy masquerades as Bob using public key cryptography
Figure 8.14 Bob has his public key certified by the CA
Figure 8.15 Protocol ap1.0 and a failure scenario
Figure 8.16 Protocol ap2.0 and a failure scenario
Figure 8.17 Protocol ap3.0 and a failure scenario
Figure 8.18 Protocol ap4.0 and a failure scenario
Figure 8.19 Alice used a symmetric session key, KS, to send a secret e-mail to Bob
Figure 8.20 Using hash functions and digital signatures to provide sender authentication and message integrity
Figure 8.21 Alice uses symmetric key cyptography, public key cryptography, a hash function, and a digital signature to provide secrecy, sender authentication, and message integrity
Figure 8.22 A PGP signed message
Figure 8.23 A secret PGP message
Figure 8.24 Although SSL technically resides in the application layer, from the developer’s perspective it is a transport-layer protocol
Figure 8.25 The almost-SSL handshake, beginning with a TCP connection
Figure 8.26 Record format for SSL
Figure 8.27 Virtual private network (VPN)
Figure 8.28 Security association (SA) from R1 to R2
Figure 8.29 IPsec datagram format
Figure 8.30 802.11 WEP protocol
Figure 8.31 802.11i: Four phases of operation
Figure 8.32 EAP is an end-to-end protocol. EAP messages are encapsulated using EAPoL over the wireless link between the client and the access point, and using RADIUS over UDP/IP between the access point and the authentication server
Figure 8.33 Firewall placement between the administered network and the outside world
Figure 8.34 Firewall consisting of an application gateway and a filter
Figure 8.35 Providing anonymity and privacy with a proxy
Figure 8.36 An organization deploying a filter, an application gateway, and IDS sensors
Figure 9.1 Client playout delay in video streaming
Figure 9.2 Streaming stored video over HTTP/TCP
Figure 9.3 Analysis of client-side buffering for video streaming
Figure 9.4 Packet loss for different fixed playout delays
Figure 9.5 Piggybacking lower-quality redundant information
Figure 9.6 Sending interleaved audio
Figure 9.7 Skype peers
Figure 9.8 RTP header fields
Figure 9.9 SIP call establishment when Alice knows Bob’s IP address
Figure 9.10 Session initiation, involving SIP proxies and registrars
Figure 9.11 Competing audio and HTTP applications
Figure 9.12 Policing (and marking) the audio and HTTP traffic classes
Figure 9.13 Logical isolation of audio and HTTP traffic classes
Figure 9.14 The leaky bucket policer
Figure 9.15 n multiplexed leaky bucket flows with WFQ scheduling
Figure 9.16 A simple Diffserv network example
Figure 9.17 A simple Diffserv network example
Figure 9.18 Two competing audio applications overloading the R1-to-R2 link
Figure 9.19 The call setup process
List of Tables
Table 3.1 Summary of reliable data transfer mechanisms and their use
Table 3.2 TCP ACK Generation Recommendation [RFC 5681]
Table 5.1 Running the link-state algorithm on the network in Figure 5.3
Table 5.2 SNMPv2 PDU types
Table 6.1 Comparison of the typical features of popular interconnection devices
Table 7.1 Summary of IEEE 802.11 standards
Table 7.2 Commonalities between mobile IP and GSM mobility
Table 8.1 A specific 3-bit block cipher
Table 8.2 Alice’s RSA encryption, e=5, n=35
Table 8.3 Bob’s RSA decryption, d=29, n=35
Table 8.4 Selected fields in an X.509 and RFC 1422 public key
Table 8.5 Policies and corresponding filtering rules for an organization’s network 130.207/16 with Web server at 130.207.244.203
Table 8.6 An access control list for a router interface
Table 8.7 Connection table for stateful filter
Table 8.8 Access control list for stateful filter
Table 9.1 Comparison of bit-rate requirements of three Internet applications
Table 9.2 Audio payload types supported by RTP
Table 9.3 Some video payload types supported by RTP
Table 9.4 Three network-level approaches to supporting multimedia applications
Landmarks
Frontmatter
Start of Content
backmatter
List of Illustrations
List of Tables
i
ii
iii
iv
v
vi
vii
viii
ix
x
xi
xii
xiii
xiv
xv
xvi
xvii
xviii
xix
xx
xxi
xxii
xxiii
xxiv
xxv
xxvi
xxvii
xxviii
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824