Foreword
Foreword to the First Edition
Preface
I Foundation
Problem: Building e Network
1.1 Applications
1.2 Requirements
1.2.1 Connectivity
1.2.2 Cost-Effective Resource Sharing
1.2.3 Support for Common Services
1.3 Network Architecture
1.3.1 Layering and Protocols
1.3.20SI Architecture
1.3.3 Internet Architecture
1.4 Implementing Network Software
1.4.1 Application Programming Intorfaoe (Sockets)
1.4.2 Example Application
1.4.3 Protocol Implementation Issues
1.5 Performance
1.5.1 Bandwidth and Latency
1.5.2 Delay x Bandwidth Product
1.5.3 High-Speed Networks
1.5.4 Application Performance Needs
1.6 Summery
Open Issue: Ubiquitous Networking
Further Reading
Exercises
2 Direct Link Networks
Problem: Physically Connecting Hosts
2.1 Hardware Building Blocks
2.1.1 Nodes
2.1.2 Links
2.2 Encoding (NRZ, NRZI, Manchester, 4B/5B)
2.3 Framing
2.3.1 Byte-Oriented Protocols (BISYNC, PPP, DDCMP)
2.3.2 Bit-Oriented Protocols (HDLC)
2.3.3 Clock-Based Framing (SONET)
2.4 Error Detection
2.4.1 Two-Dimensional Parity
2.4.2 Internet Checksum Algorithm
2.4.3 Cyclic Redundancy Check
2.5 Reliable Transmission
2.5.1 Stop-dad-Wait
2.5.2 Sliding Window
2.6.3 Concurrent Logical Channels
2.6 Ethernet (802.3)
2.6.1 Physical Properties
2.0.2 Access Protocol
2.8.3 Experience with Ethernet
2.7 Token Rings (802.5, FDDI)
2.7.1 Physical Properties
2.7.2 Token Ring Media Access Control
2.7.3 Token Ring Maintenance
2.7.4 Frame Format
2.7.5 FDDI
2.8 Wireless (802.11)
2.8.1 Physical Properties
2.8.2 Collision Avoidance
2.8.3 Distribution System
2.8.4 Frame Format
2.9 Network Adaptors
2.9.1 Components
2.9.2 View from the Host
2.9.3 Memory Bottleneck
2.10 Summary
Open Issue: Does It Belong in Hardware?
Further Reading
Exercises
3 Packet Switching
Problem: Not All Networks Are Directly Connected
3.1 Switching and Forwarding
3.1.1 Datagrams
3.1.2 Virtual Circuit Switching
3.1.3 Source Routing
3.2 Bridges and LAN Switches
3.2.1 Learning Bridges
3.2.2 Spanning Tree Algorithm
3.2.3 Broadcast and Multicast
3.2.4 Limitations of Bridges
3.3 Cell Switching (ATM)
3.3.1 Cells
3.3.2 Segmentation and Reassembly
3.3.3 Virtual Paths
3.3.4 Physical Layers for ATM
3.3.5 ATM in the LAN
3.4 Implementation and Performance
3.4.1 Ports
3.4.2 Fabrics
3.5 Summary
Open Issue: The Future of ATM
Further Reading
Exercises
4 Internetworking
Problem: There Is More Than One Network
4.1 Simple Intarnotworking (IP)
4.1.1 What Is an Internetwork?
4.1.2 Service Model
4.1.3 Global Addresses
4.1.4 Dctagrem Forwarding in IP
4.1.5 Address Translation (ARP)
4.1.6 Host Configuration (DHCP)
4.1.7 Error Reporting (ICMP)
4.1.8 Virtual Networks and Tunnels
4.2 Routing
4.2.1 Network as c Graph
4.2.2 Distance Vector (RIP)
4.2.3 Link State (OSPF)
4.2.4 Metrics
4.2.5 Routing for Mobile Hosts
4.3 Global Intemet
4.3.1 Subnetting
4.3.2 Classless Routing (CIDR)
4.3.3 Intardomein Routing (BGP)
4.3.4 Routing Areas
4.3.6 IP Version 6 (IPv6)
4.4 Multicast
4.4.1 Link-Stata Multiceat
4.4.2 Distance-Vector Multicast
4.4.3 Protocol Independent Multicast (PIM)
4.6 Multiprotocol Label Switching (MPLS)
4.6.1 Destinetion-Baead Forwarding
4.5.2 Explicit Routing
4.5.3 Virtual Private Networks and Tunnels
4.6 Summary
Open Issue: Deployment of IPV6
Further Reading
Exereieas
5 End-to-End Protocols
Problem: Getting Processess to Communicate
5.1 Simple Demultiplexer (UDP)
5.2 Reliable Byte Stream (TCP)
5.2.1 End-to-End Issues
5.2.2 Segment Format
5.2.3 Connection Establishment and Termination
5.2.4 Sliding Window Revisited
5.2.5 Triggering Transmission
5.2.6 Adaptive Retrensmission
5.2.7 Record Boundaries
5.2.8 TCP Extensions
5.2.9 Alternative Design Choices
g.3 Remote Procedure Call
5.3.1 Bulk Transfer (BLAST)
5.3.2 Request/Reply (CHAN)
5.3.3 Dispatcher (SELECT)
5.3.4 Putting It All Together (SunRPC, DCE)
5.4 Performance
5.5 Summary
Open Issue: Applicstion-Specific Protocols
Further Reading
Exercises
6 Congestion Control and Resource Allocation
Problem: Allocating Resources
6.1 lssuec in Resource Allocation
6.1.1 Network Model
6.1.2 Taxonomy
8.1.3 Evaluation Criteria
6.2 Queuing Disciplines
6.2.1 FIFO
6.2.2 Fair Queuing
6.3 TCP Congestion Control
6.3.1 Additive Incrense/Multiplicstive Decrease
6.3.2 Slow Start
6.3.3 Fast Rctrensmit and Fast Recovery
6.4 Congestion-Avoidance Mechanisms
6.4.1 DECbit
6.4.2 Random Early Detection (RED)
6.4.3 Source-Based Congestion Avoidance
6.5 Quality of Service
6.5.1 Application Requirements
6.5.2 Integrated Services (RSVP)
6.5.3 Differentiated Services (EF, AF)
6.5.4 ATM Quality of Service
6.5.5 Equation-Based Congestion Control
6.6 Summary
Open Issue: Inside versus Outside the Network
Further Reading
Exercises
7 End-to-End Data
Problem: What Do We Do with the Data?
7,1 Presentation Formatting
7.1.1 Taxonomy
7.1.2 Examoles (XDR, ASN. 1, NDR)
7.1.3 Markup Languages (XMl)
7.2 Data Compression.
7.2.1 Lossless Compression Algorithms
7.2.2 Image Compression (JPEG)
7.2.3 Video Compression (MPEG)
7.2.4 Transmitting MPEG over a Network
7.2.5 Audio Compression (MP3)
7.3 Summary
Open lssue:Computer Networks Meet Consumer Electronice
Further Reading
Exercises
8 Network Security
Problem: Securing the Data
8.1 Cryptographic Algorithms
8.1.1 Requirementu
8.1.2 Secret Key Encryption (DES)
8.1.3 Public Key Encryption (RSA)
8.1.4 Message Digest Algorithms (MDS)
8.1.5 Implementation and Performance
8.2 Security Mechanisms
8.2.1 Authentication Protocols
8.2.2 Message Integrity Protocols
8.2.3 Public Key Distribution (X.509)
8.3 Example Systems
8.3.1 Pretty Good Privacy (PGP)
8.3.2 Secure Shell (SSH)
8.3.3 Transport Layer Security (TLS, SSL, HTTPS)
8.3.4 IP Security (IPSEC)
8.4 Firewalls
8.4.1 Filter-Based Firewalls
8.4.2 Proxy-Based Firewells
8.4.3 Limitations
8.5 Summery
Open Issue: Denial-of-Service Attacks
Further Reading
Exercises
9 Applications
Problem: Applications Need Their Own Protocols
9.1 Name Service (DNS)
9.1.1 Domain Hierarchy
9.1.2 Name Servers
9.1.3 Name Resolution
9.2 Traditional Applications
9.2.1 Electronic Mail (SMTP, MIME, IMAP)
9.2.2 World Wide Web (HTrP)
9.2.3 Network Management (SNMP)
9.3 Multimedia Applications
9.3.1 Real-time Transport Protocol (RTP)
9.3.2 Session Control and Call Control (SDP, SIP, H.323)
9.4 Overlay Networks
9.4.1 Routing Overlays
9.4.2 Peer-to-Peer Networks
9.4.3 Content Distribution Networks
9.5 Summary
Open Issue: New Network Artichitecture
Further Reading
Exercises
Glossary
Bibliography
Solutions to Selected Exercises
Index
About the Authors