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 Service Description
1.1.3: What Is a Protocol?
1.1.4: Some Good Hyperlinks
1.2: The Network Edge
1.2.1: End Systems, Clients, and Servers
1.2.2: Connectionless and Connection-Oriented Service
1.3: The Network Core
1.3.1: Circuit Switching and Packet Switching
1.3.2: Packet Forwarding in Computer Networks
1.4: Network Access and Physical Media
1.4.1: Network Access
1.4.2: Physical Media
1.5: ISPs and Internet Backbones
1.6: Delay and Loss in Packet-Switched Networks
1.6.1: Types of Delay
1.6.2: Queuing Delay and Packet Loss
1.6.3: Delay and Routes in the Internet
1.7: Protocol Layers and Their Service Models
1.7.1: Layered Architecture
1.7.2: The Internet Protocol Stack
1.7.3: Network Entities and Layers
1.8: History of Computer Networking and the Internet
1.8.1: The Development of Packet Switching: 1961-1972
1.8.2 : Proprietary Networks and Internetworking: 1972-1980
1.8.3 : A Proliferation of Networks: 1980-1990
1.8.4 : The Internet Explosion: The 1990s
1.8.5 : Recent Developments
1.9: Summary
Homework Problems and Questions
Problems
Discussion Questions
Interview: Leonard Kleinrock
Chapter 2: Application Layer
2.1: Principles of Application Layer Protocols
2.1.1 : Application-Layer Protocols
2.1.2 : What Services Does an Application Need?
2.1.3 : Services Provided by the Internet Transport Protocols
2.1.4 : Network Applications Covered in this Book
2.2: The Web and HTTP
2.2.1 : Overview of HTTP
2.2.2 : Nonpersistent and Persistent Connections
2.2.3 : HTTP Message Format
2.2.4 : User-Server Interaction: Authorization and Cookies
2.2.5 : The Conditional GET
2.2.6 : HTTP Content
2.3: File Transfer: FTP
2.3.1 : FTP Commands and Replies
2.4: Electronic Mail in the Internet
2.4.1 : SMTP
2.4.2 : Comparison with HTTP
2.4.3 : Mail Message Formats and MIME
2.4.4 : Mail Access Protocols
2.5: DNS--The Internet's Directory Service
2.5.1 : Services Provided by DNS
2.5.2 : Overview of How DNS Works
2.5.3 : DNS Records
2.5.4 : DNS Messages
2.6: Socket Programming with TCP
2.6.1 : Socket Programming with TCP
2.6.2 : An Example Client/Server Application in Java
2.7: Socket Programming with UDP
2.8: Building a Simple Web Server
2.8.1 : Web Server Functions
2.9: Content Distribution
2.9.1 : Web Caching
2.9.2 : Content Distribution Networks
2.9.3 : Peer-to-Peer File Sharing
2.10: Summary
Homework Problems and Questions
Problems
Discussion Questions
Programming Assignments
Interview: Tim Berners-Lee
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
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
3.5.3: Round-Trip Time Estimation and Timeout
3.5.4: Reliable Data Transfer
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
3.6.2: Approaches to Congestion Control
3.6.3: Network Assisted Congestion Control Example: ATM ABR Congestion Control
3.7: TCP Congestion Control
3.7.1: Fairness
3.7.2: TCP Delay Modeling
3.8: Summary
Homework Problems and Questions
Problems
Discussion Questions
Interview: Sally Floyd
Chapter 4: Network Layer and Routing
4.1: Introduction and Network Service Models
4.1.1: Network Service Model
4.1.2: Origins of Datagram and Virtual Circuit Service
4.2: Routing Principles
4.2.1: A Link State Routing Algorithm
4.2.2: The Distance Vector Routing Algorithm
4.2.3: Other Routing Algorithms
4.3: Hierarchical Routing
4.4: The Internet Protocol (IP)
4.4.1: IPv4 Addressing
4.4.2: Moving a Datagram from Source to Destination: Addressing, Routing, and Forwarding
4.4.3: Datagram Format
4.4.4: IP Datagram Fragmentation
4.4.5: ICMP: Internet Control Message Protocol
4.4.6: Dynamic Host Configuration Protocol
4.4.7: Network Address Translators (NATs)
4.5: Routing in the Internet
4.5.1: Intra-Autonomous System Routing in the Internet: RIP and OSPF
4.5.2: Inter-Autonomous System Routing: BGP
4.6: What's Inside a Router?
4.6.1: Input Ports
4.6.2: Switching Fabric
4.6.3: Output Ports
4.6.4: Where Does Queuing Occur?
4.7: IPv6
4.7.1: IPv6 Packet Format
4.7.2: Transitioning from IPv4 to IPv6
4.8: Multicast Routing
4.8.1: Introduction: The Internet Multicast Abstraction and Multicast Groups
4.8.2: IGMP
4.8.3: Multicast Routing: The General Case
4.8.4: Multicast Routing in the Internet
4.9: Mobility and the Network Layer
4.9.1: Mobility Considerations in Network-Layer Design
4.9.2: Mobility Management
4.9.3: Mobile IP
4.10: Summary
Homework Problems and Questions
Problems
Discussion Questions
Interview: Vinton G. Cerf
Chapter 5: Link Layer and Local Area Networks
5.1: Data Link Layer: Introduction and Services
5.1.1: The Services Provided by the Link Layer
5.1.2: Adapters Communicating
5.2: Error-Detection and -Correction Techniques
5.2.1: Parity Checks
5.2.2: Checksumming Methods
5.2.3: Cyclic Redundancy Check (CRC)
5.3: Multiple Access Protocols
5.3.1: Channel Partitioning Protocols
5.3.2: Random Access Protocols
5.3.3: Taking-Turns Protocols
5.3.4: Local Area Networks (LANs)
5.4: LAN Addresses and ARP
5.4.1:: LAN Addresses
5.4.2:: Address Resolution Protocol
5.5: Ethernet
5.5.1: Ethernet Basics
5.5.2: CSMA/CD: Ethernet's Multiple Access Protocol
5.5.3: Ethernet Technologies
5.6: Hubs, Bridges, and Switches
5.6.1: Hubs
5.6.2: Bridges
5.6.3: Switches
5.7: Wireless Links
5.7.1: Wireless LANs: IEEE 802.11b
5.7.2: Bluetooth
5.8: PPP: The Point-to-Point Protocol
5.8.1: PPP Data Framing
5.8.2: PPP Link-Control Protocol (LCP) and Network-Control Protocols
5.9: Asynchronous Transfer Mode (ATM)
5.9.1: Principal Characteristics of ATM
5.9.2: ATM Physical Layer
5.9.3: ATM Layer
5.9.4: ATM Adaptation Layer
5.9.5: IP over ATM
5.10: Frame Relay
5.10.1: The Historical Context
5.10.2: Frame Relay
5.11: Summary
Homework Problems and Questions
Problems
Discussion Questions
Interview: Robert M. Metcalfe
Chapter 6: Multimedia Networking
6.1: Multimedia Networking Applications
6.1.1: Examples of Multimedia Applications
6.1.2: Hurdles for Multimedia in Today's Internet
6.1.3: How Should the Internet Evolve to Support Multimedia Better?
6.1.4: Audio and Video Compression
6.2: Streaming Stored Audio and Video
6.2.1: Accessing Audio and Video Through a Web Server
6.2.2: Sending Multimedia from a Streaming Server to a Helper Application
6.2.3: Real-Time Streaming Protocol (RTSP)
6.3: Making the Best of the Best-Effort Service: An Internet Phone Example
6.3.1: The Limitations of a Best-Effort Service
6.3.2: Removing Jitter at the Receiver for Audio
6.3.3: Recovering from Packet Loss
6.3.4: Streaming Stored Audio and Video
6.4: Protocols for Real-Time Interactive Applications
6.4.1: RTP
6.4.2: RTP Control Protocol (RTCP)
6.4.3: SIP
6.4.4: H.323
6.5: Beyond Best-Effort
6.5.1: Scenario 1: A 1 Mbps Audio Application and an FTP Transfer
6.5.2: Scenario 2: A 1 Mbps Audio Application and a High Priority FTP Transfer
6.5.3: Scenario 3: A Misbehaving Audio Application and an FTP Transfer
6.5.4: Scenario 4: Two 1 Mbps Audio Applications Over an Overloaded 1.5 Mbps Link
6.6: Scheduling and Policing Mechanisms
6.6.1: Scheduling Mechanisms
6.6.2: Policing: The Leaky Bucket
6.7: Integrated Services
6.7.1: Guaranteed Quality of Service
6.7.2: Controlled-Load Network Service
6.8: RSVP
6.8.1: The Essence of RSVP
6.8.2: A Few Simple Examples
6.9: Differentiated Services
6.9.1: Differentiated Services: A Simple Scenario
6.9.2: Traffic Classification and Conditioning
6.9.3: Per-Hop Behaviors
6.9.4: Criticisms of Differentiated Services
6.10: Summary
Homework Problems and Questions
Problems
Discussion Questions
Programming Assignment
Interview: Henning Schulzrinne
Chapter 7: Security in Computer Networks
7.1: What Is Network Security?
7.2: Principles of Cryptography
7.2.1: Symmetric Key Cryptography
7.2.2: Public Key Encryption
7.3: Authentication
7.3.1: Authentication Protocol ap1.0
7.3.2: Authentication Protocol ap2.0
7.3.3: Authentication Protocol ap3.0
7.3.4: Authentication Protocol ap3.1
7.3.5: Authentication Protocol ap4.0
7.3.6: Authentication Protocol ap5.0
7.4: Integrity
7.4.1: Generating Digital Signatures
7.4.2: Message Digests
7.4.3: Hash Function Algorithms
7.5: Key Distribution and Certification
7.5.1: The Key Distribution Center
7.5.2: Public Key Certification
7.6: Access Control: Firewalls
7.6.1: Packet Filtering
7.6.2: Application Gateway
7.7: Attacks and Countermeasures
7.7.1: Mapping
7.7.2: Packet Sniffing
7.7.3: Spoofing
7.7.4: Denial-of-Service and Distributed Denial-of-Service Attacks
7.7.5: Hijacking
7.8: Security in Many Layers: Case Studies
7.8.1: Secure E-mail
7.8.2: Secure Sockets Layer (SSL) and Transport Layer Security (TLS)
7.8.3: Network-Layer Security: IPsec
7.8.4: Security in IEEE 802.11
7.9: Summary
Homework Problems and Questions
Problems
Discussion Questions
Interview: Steven M. Bellovin
Chapter 8: Network Management
8.1: What Is Network Management?
8.2: The Infrastructure for Network Management
8.3: The Internet-Standard Management Framework
8.3.1: Structure of Management Information: SMI
8.3.2: Management Information Base: MIB
8.3.3: SNMP Protocol Operations and Transport Mappings
8.3.4: Security and Administration
8.4: ASN.1
8.5: Conclusion
Homework Problems and Questions
Problems
Discussion Questions
Interview: Jeff Case
References
Index