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.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-Switched Networks: Datagram Networks and Virtual-Circuit Networks 1.4 Access Networks and Physical Media 1.4.1 Access Networks 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 Layers, Messages, Segments, Datagrams, and Frames 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 Road-Mapping This Book Homework Problems and Questions Problems Discussion Questions Ethereal Lab 1 Interview: Leonard Kleinrock Chapter 2 Application Layer 2.1 Principles of Network Applications 2.1.1 Network Application Architectures 2.1.2 Processes Communicating 2.1.3 Application-Layer Protocols 2.1.4 What Services Does an Application Need? 2.1.5 Services Provided by the Internet Transport 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 Nonpersistent and Persistent Connections 2.2.3 HTTP Message Format 2.2.4 User-Server Interaction: Cookies 2.2.5 HTFP Content 2.2.6 Web Caching 2.2.7 The Conditional GET 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 HTrP 2.4.3 Mail Message Formats and MIME 2.4.4 Mall 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 and Messages 2.6 P2P File Sharing 2.7 Socket Programming with TCP 2.7.1 Socket Programming with TCP 2.7.2 An Example Client/Server Application in Java 2.8 Socket Programming with UDP 2.9 Building a Simple Web Server 2.9.1 Web Server Functions 2.10 Summary Homework Problems and Questions Problems Discussion Questions Socket Programming Assignments Ethereal Labs 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 UDPChecksum 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 Programming Assignments Ethereal Lab: Exploring TCP Interview: Sally Floyd Chapter 4 The Network Layer 4.1 Introduction 4.1.1 Forwarding and Routing 4.1.2 Network Service Models 4.2 Virtual Circuit and Datagram Networks 4.2.1 Virtual-Circuit Networks 4.2.2 Datagram Networks 4.2.3 Origins of VC and Datagram Networks 4.3 What's Inside a Router? 4.3.1 Input Ports 4.3.2 Switching Fabric 4.3.3 Output Ports 4.3.4 Where Does Queuing Occur? 4.4 The Intemet Protocol (IP): Forwarding and Addressing in the Intemet 4.4.1 Datagram Format 4.4.2 IPv4 Addressing 4.4.3 Intemet Control Message Protocol (ICMP) 4.4.4 IPv6 4.5 Routing Algorithms 4.5.1 The Link-State (LS) Routing Algorithm 4.5.2 The Distance-Vector (DV) Routing Algorithm 4.5.3 Hierarchical Routing 4.6 Routing in the Intemet 4.6.1 Intra-AS Routing in the Internet: RIP 4.6.2 Intra-AS Routing in the Intemet: OSPF 4.6.3 Inter-Autonomous System Routing: BGP 4.7 Broadcast and Multicast Routing 4.7.1 Broadcast Routing Algorithms 4.7.2 Multicast 4.8 Summary Homework Problems and Questions Problems Discussion Questions Programming Assignment Ethereal Lab Interview: Vinton G. Cerf Chapter 5 The Link Layer and Local Area Networks 5.1 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 Link-Layer Addressing 5.4.1 MAC Addresses 5.4.2 Address Resolution Protocol (ARP) 5.4.3 Dynamic Host Configuration Protocol 5.5 Ethernet 5.5.1 Ethernet Frame Structure 5.5.2 CSMA/CD: Ethernet's Multiple Access Protocol 5.5.3 Ethernet Technologies 5.6 Interconnections: Hubs and Switches 5.6.1 Hubs 5.6.2 Link-Layer Switches 5.7 PPP: The Point-to-Point Protocol 5.7.1 PPP Data Framing 5.7.2 PPP Link-Control Protocol (LCP) and Network-Control Protocols 5.8 Link Virtualization: A Network as a Link Layer 5.8.1 Asynchronous Transfer Mode (ATM) Networks 5.8.2 Multiprotocol Label Switching (MPLS) 5.9 Summary Homework Problems and Questions Problems Discussion Questions Ethereal Lab Interview: Simon S. Lam Chapter 6 Wireless and Mobile Networks 6.1 Introduction 6.2 Wireless Links and Network Characteristics 6.2.1 CDMA 6.3 Wi-Fi: 802.11 Wireless LANs 6.3.1 The 802.11 Architecture 6.3.2 The 802.11 MAC Protocol 6.3.3 The IEEE 802.11 Frame 6.3.4 Mobility in the Same IP Subnet 6.3.5 802.15 and Bluetooth 6.4 Cellular Intemet Access 6.4.1 An Overview of Cellular Architecture 6.4.2 Cellular Standards and Technologies: A Brief Survey 6.5 Mobility Management: Principles 6.5.1 Addressing 6.5.2 Routing to a Mobile Node 6.6 Mobile IP 6.7 Managing Mobility in Cellular Networks 6.7.1 Routing Calls to a Mobile User 6.7.2 Handoffs in GSM 6.8 Wireless and Mobility: Impact on Higher-layer Protocols 6.9 Summary Homework Problems and Questions Problems Discussion Questions Ethereal Lab Interview: Charlie Perkins Chapter 7 Multimedia Networking 7.1 Multimedia Networking Applications 7.1.1 Examples of Multimedia Applications 7.1.2 Hurdles for Multimedia in Today's Intemet 7.1.3 How Should the Intemet Evolve to Support Multimedia Better? 7.1.4 Audio and Video Compression 7.2 Streaming Stored Audio and Video 7.2.1 Accessing Audio and Video Through a Web Server 7.2.2 Sending Multimedia from a Streaming Server to a Helper Application 7.2.3 Real-Time Streaming Protocol (RTSP) 7.3 Making the Best of the Best-Effort Service: An Intemet Phone Example 7.3.1 The Limitations of a Best-Effort Service 7.3.2 Removing Jitter at the Receiver for Audio 7.3.3 Recovering from Packet Loss 7.3.4 Streaming Stored Audio and Video 7.4 Protocols for Real-Time Interactive Applications 7.4.1 RTP 7.4.2 RTP Control Protocol (RTCP) 7.4.3 SIP 7.4.4 H.323 7.5 Distributing Multimedia: Content Distribution Networks 7.6 Beyond Best Effort 7.6.1 Scenario 1: A 1 Mbps Audio Application and an FTP Transfer 7.6.2 Scenario 2: A 1 Mbps Audio Application and a High-Priority FTP Transfer 7.6.3 Scenario 3: A Misbehaving Audio Application and an FTP Transfer 7.6.4 Scenario 4: Two 1 Mbps Audio Applications over an Overloaded 1.5 Mbps Link 7.7 Scheduling and Policing Mechanisms 7.7.1 Scheduling Mechanisms 7.7.2 Policing: The Leaky Bucket 7.8 Integrated Services and Differentiated Services 7.8.1 Intserv 7.8.2 Diffserv 7.9 RSVP 7.9.1 The Essence of RSVP 7.9.2 A Few Simple Examples 7.10 Summary Homework Problems and Questions Problems Discussion Questions Programming Assignment Interview: Henning Schulzrinne Chapter 8 Security in Computer Networks 8.1 What Is Network Security? 8.2 Principles of Cryptography 8.2.1 Symmetric Key Cryptography 8.2.2 Public Key Encryption 8.3 Authentication 8.3.1 Authentication Protocol ap1.0 8.3.2 Authentication Protocol ap2.0 8.3.3 Authentication Protocol ap3.0 8.3.4 Authentication Protocol ap3.1 8.3.5 Authentication Protocol ap4.0 8.3.6 Authentication Protocol ap5.0 8.4 Integrity 8.4.1 Generating Digital Signatures 8.4.2 Message Digests 8.4.3 Hash Function Algorithms 8.5 Key Distribution and Certification 8.5.1 The Key Distribution Center 8.5.2 Public Key Certification 8.6 Access Control: Firewalls 8.6.1 Packet Filtering 8.6.2 Application Gateway 8.7 Attacks and Countermeasures 8.7.1 Mapping 8.7.2 Packet Sniffing 8.7.3 Spoofing 8.7.4 Denial-of-Service and Distributed Denial-of-Service Attacks 8.7.5 Hijacking 8.8 Security in Many Layers: Case Studies 8.8.1 Secure E-mail 8.8.2 Secure Sockets Layer (SSL) and Transport Layer Security (TLS) 8.8.3 Network-Layer Security: IPsec 8.8.4 Security in IEEE 802.11 8.9 Summary Homework Problems and Questions Problems Discussion Questions Interview: Steven M. Bellovin Chapter 9 Network Management 9.1 What Is Network Management? 9.2 The Infrastructure for Network Management 9.3 The Internet-Standard Management Framework 9.3.1 Structure of Management Information: SMI 9.3.2 Management Information Base: MIB 9.3.3 SNMP Protocol Operations and Transport Mappings 9.3.4 Security and Administration 9.4 ASN. 1 9.5 Conclusion Homework Problems and Questions Problems Discussion Questions Interview: Jeff Case References Index 8.5 Key Distribution and Certification 8.5.1 The Key Distribution Center 8.5.2 Public Key Certification 8.6 Access Control: Firewalls 8.6.1 Packet Filtering 8.6.2 Application Gateway 8.7 Attacks and Countermeasures 8.7.1 Mapping 8.7.2 Packet Sniffing 8.7.3 Spoofing 8.7.4 Denial-of-Service and Distributed Denial-of-Service Attacks 8.7.5 Hijacking 8.8 Security in Many Layers: Case Studies 8.8.1 Secure E-mail 8.8.2 Secure Sockets Layer (SSL) and Transport Layer Security (TLS) 8.8.3 Network-Layer Security: IPsec 8.8.4 Security in IEEE 802.11 8.9 Summary Homework Problems and Questions Problems Discussion Questions Interview: Steven M. Bellovin Chapter 9 Network Management 9.1 What Is Network Management? 9.2 The Infrastructure for Network Management 9.3 The Intemet-Standard Management Framework 9.3.1 Structure of Management Information: SMI 9.3.2 Management Information Base: MIB 9.3.3 SNMP Protocol Operations and Transport Mappings 9.3.4 Security and Administration 9.4 ASN. 1 9.5 Conclusion Homework Problems and Questions Problems Discussion Questions Interview: Jeff Case References Index