An Introduction to Computer Networks¶
Peter L Dordal
Department of Computer Science
Loyola University Chicago
Contents:
- Preface
- 1 An Overview of Networks
- 1.1 Layers
- 1.2 Data Rate, Throughput and Bandwidth
- 1.3 Packets
- 1.4 Datagram Forwarding
- 1.5 Topology
- 1.6 Routing Loops
- 1.7 Congestion
- 1.8 Packets Again
- 1.9 LANs and Ethernet
- 1.10 IP - Internet Protocol
- 1.11 DNS
- 1.12 Transport
- 1.13 Firewalls
- 1.14 Some Useful Utilities
- 1.15 IETF and OSI
- 1.16 Berkeley Unix
- 1.17 Epilog
- 1.18 Exercises
- 2 Ethernet Basics
- 3 Advanced Ethernet
- 4 Wireless LANs
- 5 Other LANs
- 6 Links
- 7 Packets
- 8 Abstract Sliding Windows
- 9 IP version 4
- 10 IPv4 Companion Protocols
- 11 IPv6
- 12 IPv6 Additional Features
- 13 Routing-Update Algorithms
- 14 Large-Scale IP Routing
- 15 Border Gateway Protocol (BGP)
- 15.1 AS-paths
- 15.2 AS-Paths and Route Aggregation
- 15.3 Transit Traffic
- 15.4 BGP Filtering and Routing Policies
- 15.5 BGP Table Size
- 15.6 BGP Path attributes
- 15.7 BGP and Traffic Engineering
- 15.8 BGP and Anycast
- 15.9 BGP for Interior Routing
- 15.10 BGP Relationships
- 15.11 Examples of BGP Instability
- 15.12 BGP Security and Route Registries
- 15.13 Epilog
- 15.14 Exercises
- 16 UDP Transport
- 17 TCP Transport Basics
- 18 TCP Issues and Alternatives
- 18.1 TCP Old Duplicates
- 18.2 TIMEWAIT
- 18.3 The Three-Way Handshake Revisited
- 18.4 Anomalous TCP scenarios
- 18.5 TCP Faster Opening
- 18.6 Path MTU Discovery
- 18.7 TCP Sliding Windows
- 18.8 TCP Delayed ACKs
- 18.9 Nagle Algorithm
- 18.10 TCP Flow Control
- 18.11 Silly Window Syndrome
- 18.12 TCP Timeout and Retransmission
- 18.13 KeepAlive
- 18.14 TCP timers
- 18.15 Variants and Alternatives
- 18.16 Epilog
- 18.17 Exercises
- 19 TCP Reno and Congestion Management
- 19.1 Basics of TCP Congestion Management
- 19.2 Slow Start
- 19.3 TCP Tahoe and Fast Retransmit
- 19.4 TCP Reno and Fast Recovery
- 19.5 TCP NewReno
- 19.6 Selective Acknowledgments (SACK)
- 19.7 TCP and Bottleneck Link Utilization
- 19.8 Single Packet Losses
- 19.9 TCP Assumptions and Scalability
- 19.10 TCP Parameters
- 19.11 Epilog
- 19.12 Exercises
- 20 Dynamics of TCP
- 21 Further Dynamics of TCP
- 22 Newer TCP Implementations
- 22.1 Choosing a TCP on Linux
- 22.2 High-Bandwidth Desiderata
- 22.3 RTTs
- 22.4 A Roadmap
- 22.5 Highspeed TCP
- 22.6 TCP Vegas
- 22.7 FAST TCP
- 22.8 TCP Westwood
- 22.9 TCP Illinois
- 22.10 Compound TCP
- 22.11 TCP Veno
- 22.12 TCP Hybla
- 22.13 DCTCP
- 22.14 H-TCP
- 22.15 TCP CUBIC
- 22.16 TCP BBR
- 22.17 Epilog
- 22.18 Exercises
- 23 Queuing and Scheduling
- 24 Token Bucket Rate Limiting
- 24.1 Token Bucket Definition
- 24.2 Token-Bucket Examples
- 24.3 Multiple Token Buckets
- 24.4 GCRA
- 24.5 Guaranteeing VoIP Bandwidth
- 24.6 Limiting Delay
- 24.7 Token Bucket Through One Router
- 24.8 Token Bucket Through Multiple Routers
- 24.9 Delay Constraints
- 24.10 CBQ
- 24.11 Linux HTB
- 24.12 Parekh-Gallager Theorem
- 25 Quality of Service
- 25.1 Net Neutrality
- 25.2 Where the Wild Queues Are
- 25.3 Real-time Traffic
- 25.4 Integrated Services / RSVP
- 25.5 Global IP Multicast
- 25.6 RSVP
- 25.7 Differentiated Services
- 25.8 RED with In and Out
- 25.9 NSIS
- 25.10 Comcast Congestion-Management System
- 25.11 Real-time Transport Protocol (RTP)
- 25.12 Multi-Protocol Label Switching (MPLS)
- 25.13 Epilog
- 25.14 Exercises
- 26 Network Management and SNMP
- 26.1 Network Architecture
- 26.2 SNMP Basics
- 26.3 SNMP Naming and OIDs
- 26.4 MIBs
- 26.5 SNMPv1 Data Types
- 26.6 ASN.1 Syntax and SNMP
- 26.7 SNMP Tables
- 26.8 SNMP Operations
- 26.9 MIB Browsing
- 26.10 MIB-2
- 26.11 SNMPv1 communities and security
- 26.12 SNMP and ASN.1 Encoding
- 26.13 Network Management Systems
- 26.14 SNMP Alternatives
- 26.15 Exercises
- 27 SNMP versions 2 and 3
- 28 Security
- 29 Public-Key Encryption
- 30 Mininet
- 30.1 Installing Mininet
- 30.2 A Simple Mininet Example
- 30.3 Multiple Switches in a Line
- 30.4 IP Routers in a Line
- 30.5 IP Routers With Simple Distance-Vector Implementation
- 30.6 Quagga Routing and BGP
- 30.7 TCP Competition
- 30.8 Linux Traffic Control (tc)
- 30.9 OpenFlow and the POX Controller
- 30.10 Exercises
- 31 Network Simulations: ns-2
- 32 The ns-3 Network Simulator
- 33 Bibliography
- Exercise-Numbering Conversion Tables
- 34 Selected Solutions
- 34.1 Solutions for An Overview of Networks
- 34.2 Solutions for Ethernet
- 34.3 Solutions for Advanced Ethernet
- 34.4 Solutions for Wireless LANs
- 34.5 Solutions for Other LANs
- 34.6 Solutions for Links
- 34.7 Solutions for Packets
- 34.8 Solutions for Sliding Windows
- 34.9 Solutions for IPv4
- 34.10 Solutions for Routing-Update Algorithms
- 34.11 Solutions for Large-Scale IP Routing
- 34.12 Solutions for Border Gateway Protocol
- 34.13 Solutions for UDP
- 34.14 Solutions for TCP Reno and Congestion Management
- 34.15 Solutions for Dynamics of TCP
- 34.16 Solutions for Dynamics of TCP
- 34.17 Solutions for Queuing and Scheduling
- 34.18 Solutions for Mininet