Foreword, David Clark, MIT
Preface
SIMULATION LAB 0: INTRODUCTION AND SAMPLE EXPERIMENT
1 Foundation
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.2 OSI Architecture
1.3.3 Internet Architecture
1.4 Implementing Network Software
1.4.1 Application Programming Interface (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 _ Bandwidth Product
1.5.3 High-Speed Networks
1.5.4 Application Performance Needs
1.6 Summary
Further Reading
Exercises
2 Direct Link Networks
SIMULATION LAB 1: ETHERNET—A Direct Link Network with Media Access Control
SIMULATION LAB 2: TOKEN RINGS—A Direct Link Network with Media Access Control
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-and-Wait
2.5.2 Sliding Window
2.5.3 Concurrent Logical Channels
2.6 Ethernet (802.3)
2.6.1 Physical Properties
2.6.2 Access Protocol
2.6.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
Further Reading
Exercises
3 Packet Switching
SIMULATION LAB 3: SWITCHED LANS—A Set of Local Area Networks Interconnected by Switches
SIMULATION LAB 4: NETWORK DESIGN—Planning a Network with Different Users, Hosts, and Services
SIMULATION LAB 5: ATM—A Connection-Oriented, Cell-Switching Technology
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
Further Reading
Exercises
4 Internetworking
SIMULATION LAB 6: Routing Information Protocol Based on Distance-Vector Algorithm
SIMULATION LAB 7: OSPF—A Routing Protocol Based on Link-State Algorithm
4.1 Simple Internetworking (IP)
4.1.1 What Is an Internetwork?
4.1.2 Service Model
4.1.3 Global Addresses
4.1.4 Datagram 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 a 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 Internet
4.3.1 Subnetting
4.3.2 Classless Routing (CIDR)
4.3.3 Interdomain Routing (BGP)
4.3.4 Routing Areas
4.3.5 IP version 6 (IPv6)
4.4 Multicast
4.4.1 Link-State Multicast
4.4.2 Distance-Vector Multicast
4.4.3 Protocol Independent Multicast (PIM)
4.5 Multiprotocol Label Switching (MPLS)
4.5.1 Destination-Based Forwarding
4.5.2 Explicit Routing
4.5.3 Virtual Private Networks and Tunnels
4.6 Summary
Further Reading
Exercises
5 End-to-End Protocols
SIMULATION LAB 8: TCP—A Reliable, Connection-Oriented, Byte-Stream Service
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 SlidingWindow Revisited
5.2.5 Triggering Transmission
5.2.6 Adaptive Retransmission
5.2.7 Record Boundaries
5.2.8 TCP Extensions
5.2.9 Alternative Design Choices
5.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
Further Reading
Exercises
6 Congestion Control and Resource Allocation
SIMULATION LAB 9: QUEUING DISCIPLINES—Order of Packets Transmission and Dropping
SIMULATION LAB 10: QUALITY OF SERVICE—Packet Delivery Guarantees
6.1 Issues in Resource Allocation
6.1.1 Network Model
6.1.2 Taxonomy
6.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 Increase/Multiplicative Decrease
6.3.2 Slow Start
6.3.3 Fast Retransmit 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)
6.5.4 ATM Quality of Service
6.5.5 Equation-Based Congestion Control
6.6 Summary
Further Reading
Exercises
7 End-to-End Data
7.1 Presentation Formatting
7.1.1 Taxonomy
7.1.2 Examples (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
Further Reading
Exercises
8 Network Security
SIMULATION LAB 11: FIREWALLS AND VPNS—Network Security and Virtual Private Networks
8.1 Cryptographic Algorithms
8.1.1 Requirements
8.1.2 Secret Key Encryption (DES)
8.1.3 Public Key Encryption (RSA)
8.1.4 Message Digest Algorithms (MD5)
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 Firewalls
8.4.3 Limitations
8.5 Summary
Further Reading
Exercises
9 Applications
SIMULATION LAB 12: APPLICATIONS—Network Applications Performance Analysis
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 (HTTP)
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
Further Reading
Exercises
Glossary
Bibliography
Solutions to Select Exercises