O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Computer Networking Problems and Solutions

Book Description

Master Modern Networking by Understanding and Solving Real Problems

Computer Networking Problems and Solutions offers a new approach to understanding networking that not only illuminates current systems but prepares readers for whatever comes next. Its problem-solving approach reveals why modern computer networks and protocols are designed as they are, by explaining the problems any protocol or system must overcome, considering common solutions, and showing how those solutions have been implemented in new and mature protocols.

Part I considers data transport (the data plane). Part II covers protocols used to discover and use topology and reachability information (the control plane). Part III considers several common network designs and architectures, including data center fabrics, MPLS cores, and modern Software-Defined Wide Area Networks (SD-WAN). Principles that underlie technologies such as Software Defined Networks (SDNs) are considered throughout, as solutions to problems faced by all networking technologies.

This guide is ideal for beginning network engineers, students of computer networking, and experienced engineers seeking a deeper understanding of the technologies they use every day. Whatever your background, this book will help you quickly recognize problems and solutions that constantly recur, and apply this knowledge to new technologies and environments.

Coverage Includes

  • Data and networking transport
  • Lower- and higher-level transports and interlayer discovery
  • Packet switching
  • Quality of Service (QoS)
  • Virtualized networks and services
  • Network topology discovery
  • Unicast loop free routing
  • Reacting to topology changes
  • Distance vector control planes, link state, and path vector control
  • Control plane policies and centralization
  • Failure domains
  • Securing networks and transport
  • Network design patterns
  • Redundancy and resiliency
  • Troubleshooting
  • Network disaggregation
  • Automating network management
  • Cloud computing
  • Networking the Internet of Things (IoT)
  • Emerging trends and technologies

Table of Contents

  1. Cover Page
  2. Title Page
  3. Copyright Page
  4. Dedication
  5. Contents
  6. Acknowledgments
  7. About the Authors
  8. Introduction
    1. How This Book Is Organized
      1. What Is the Problem?
      2. What Is the Solution?
      3. How Has This Been Implemented?
    2. What This Book Does Not Cover
    3. On Reading Flow
    4. A Beginning
    5. Reader Services
  9. Part I: The Data Plane
    1. Chapter 1. Fundamental Concepts
      1. Art or Engineering?
      2. Circuit Switching
      3. Packet Switching
        1. Packet Switched Operation
        2. Flow Control in Packet Switched Networks
      4. Fixed Versus Variable Length Frames
      5. Calculating Loop-Free Paths
      6. Quality of Service
      7. The Revenge of Centralized Control Planes
      8. Complexity
        1. Why So Complex?
        2. Defining Complexity
        3. Managing Complexity through the Wasp Waist
      9. Final Thoughts
      10. Further Reading
      11. Review Questions
    2. Chapter 2. Data Transport Problems and Solutions
      1. Digital Grammars and Marshaling
        1. Digital Grammars and Dictionaries
        2. Fixed Length Fields
        3. Type Length Value
        4. Shared Object Dictionaries
      2. Errors
        1. Error Detection
        2. Error Correction
      3. Multiplexing
        1. Addressing Devices and Applications
        2. Multicast
        3. Anycast
      4. Flow Control
        1. Windowing
        2. Negotiated Bit Rates
      5. Final Thoughts on Transport
      6. Further Reading
      7. Review Questions
    3. Chapter 3. Modeling Network Transport
      1. United States Department of Defense (DoD) Model
      2. Open Systems Interconnect (OSI) Model
      3. Recursive Internet Architecture (RINA) Model
      4. Connection Oriented and Connectionless
      5. Final Thoughts
      6. Further Reading
      7. Review Questions
    4. Chapter 4. Lower Layer Transports
      1. Ethernet
        1. Multiplexing
        2. Error Control
        3. Data Marshaling
        4. Flow Control
      2. Wireless 802.11
        1. Multiplexing
        2. Data Marshaling, Error Control, and Flow Control
      3. Final Thoughts on Lower Layer Transmission Protocols
      4. Further Reading
      5. Review Questions
    5. Chapter 5. Higher Layer Data Transports
      1. The Internet Protocol
        1. Transport and Marshaling
        2. Multiplexing
      2. Transmission Control Protocol
        1. Flow Control
        2. Error Control
        3. TCP Port Numbers
        4. TCP Session Setup
      3. QUIC
      4. ICMP
      5. Final Thoughts
      6. Further Reading
      7. Review Questions
    6. Chapter 6. Interlayer Discovery
      1. Interlayer Discovery Solutions
        1. Well-Known and/or Manually Configured Identifiers
        2. Mapping Database and Protocol
        3. Advertising Identifier Mappings in a Protocol
        4. Calculating One Identifier from the Other
      2. Interlayer Discovery Examples
        1. The Domain Name System
        2. DHCP
        3. IPv4 Address Resolution Protocol
        4. IPv6 Neighbor Discovery
      3. The Default Gateway Problem
      4. Final Thoughts
      5. Further Reading
      6. Review Questions
    7. Chapter 7. Packet Switching
      1. Physical Media to Memory
      2. Processing the Packet
        1. Switching
        2. Routing
        3. Why Route?
        4. Equal Cost Multipath
        5. Packet Processing Engines
      3. Across the Bus
        1. Crossbars and Contention
      4. Memory to Physical Media
      5. Final Thoughts on Packet Switching
      6. Further Reading
      7. Review Questions
    8. Chapter 8. Quality of Service
      1. Defining the Problem Space
        1. Why Not Just Size Links Large Enough?
      2. Classification
        1. Preserving Classification
        2. The Unmarked Internet
      3. Congestion Management
        1. Timeliness: Low-Latency Queueing
        2. Fairness: Class-Based Weighted Fair Queueing
        3. Overcongestion
        4. Other QoS Congestion Management Tools
      4. Queue Management
        1. Managing a Full Buffer: Weighted Random Early Detection
        2. Managing Buffer Delay, Bufferbloat, and CoDel
      5. Final Thoughts on Quality of Service
      6. Further Reading
      7. Review Questions
    9. Chapter 9. Network Virtualization
      1. Understanding Virtual Networks
        1. Providing Ethernet Services over an IP Network
        2. Virtual Private Access to a Corporate Network
        3. A Summary of Virtualization Problems and Solutions
      2. Segment Routing
        1. Segment Routing with Multiprotocol Label Switching
        2. Segment Routing with IPv6
        3. Signaling Segment Routing Labels
      3. Software-Defined Wide Area Networks
      4. Complexity and Virtualization
        1. Interaction Surfaces and Shared Risk Link Groups
        2. Interaction Surfaces and Overlaid Control Planes
      5. Final Thoughts on Network Virtualization
      6. Further Reading
      7. Review Questions
    10. Chapter 10. Transport Security
      1. The Problem Space
        1. Validating Data
        2. Protecting Data from Being Examined
        3. Protecting User Privacy
      2. The Solution Space
        1. Encryption
        2. Key Exchange
        3. Cryptographic Hashes
        4. Obscuring User Information
      3. Transport Layer Security
      4. Final Thoughts on Transport Security
      5. Further Reading
      6. Review Questions
  10. Part II: The Control Plane
    1. Chapter 11. Topology Discovery
      1. Nodes, Edges, and Reachable Destinations
        1. Node
        2. Edge
        3. Reachable Destination
        4. Topology
      2. Learning about the Topology
        1. Detecting Other Network Devices
        2. Detecting Two-Way Connectivity
        3. Detecting the Maximum Transmission Unit
      3. Learning about Reachable Destinations
        1. Learning Reactively
        2. Learning Proactively
      4. Advertising Reachability and Topology
        1. Deciding When to Advertise Reachability and Topology
        2. Reactive Distribution of Reachability
        3. Proactive Distribution of Reachability
      5. Redistribution between Control Planes
        1. Redistribution and Metrics
        2. Redistribution and Routing Loops
      6. Final Thoughts on Topology Discovery
      7. Further Reading
      8. Review Questions
    2. Chapter 12. Unicast Loop-Free Paths (1)
      1. Which Path Is Loop Free?
      2. Trees
      3. Alternate Loop-Free Paths
        1. Waterfall (or Continental Divide) Model
        2. P/Q Space
        3. Remote Loop-Free Alternates
      4. Bellman-Ford Loop-Free Path Calculation
      5. Garcia’s Diffusing Update Algorithm
      6. Final Thoughts
      7. Further Reading
      8. Review Questions
    3. Chapter 13. Unicast Loop-Free Paths (2)
      1. Dijkstra’s Shortest Path First
        1. Partial and Incremental SPF
        2. Calculating LFAs and rLFAs
      2. Path Vector
      3. Disjoint Path Algorithms
        1. Two-Connected Networks
        2. Suurballe’s Disjoint Path Algorithm
        3. Maximally Redundant Trees
      4. Two-Way Connectivity
      5. Final Thoughts
      6. Further Reading
      7. Review Questions
    4. Chapter 14. Reacting to Topology Changes
      1. Detecting Topology Changes
        1. Polling to Detect Failures
        2. Event-Driven Failure Detection
        3. Comparing Event-Driven and Polling-Based Detection
        4. An Example: Bidirectional Forwarding Detection
      2. Change Distribution
        1. Flooding
        2. Hop by Hop
        3. A Centralized Store
      3. Consistency, Accessibility, and Partitionability
      4. Final Thoughts
      5. Further Reading
      6. Review Questions
    5. Chapter 15. Distance Vector Control Planes
      1. Control Plane Classification
      2. Spanning Tree Protocol
        1. Building a Loop-Free Tree
        2. Learning about Reachable Destinations
        3. Concluding Thoughts on the Spanning Tree Protocol
      3. The Routing Information Protocol
        1. Tying Bellman-Ford to RIP
        2. Reacting to Topology Changes
        3. Concluding Thoughts on RIP
      4. The Enhanced Interior Gateway Routing Protocol
        1. Reacting to a Topology Change
        2. Neighbor Discovery and Reliable Transport
        3. Concluding Thoughts on EIGRP
      5. Further Reading
      6. Review Questions
    6. Chapter 16. Link State and Path Vector Control Planes
      1. A Short History of OSPF and IS-IS
      2. The Intermediate System to Intermediate System Protocol
        1. OSI Addressing
        2. Marshalling Data in IS-IS
        3. Neighbor and Topology Discovery
        4. Reliable Flooding
        5. Concluding Thoughts on IS-IS
      3. The Open Shortest Path First Protocol
        1. Marshalling Data in OSPF
        2. Neighbor and Topology Discovery
        3. Reliable Flooding
        4. Concluding Thoughts on OSPF
      4. Common Elements of OSPF and IS-IS
        1. Multiaccess Links
        2. Conceptualizing Links, Nodes, and Reachability in Link State Protocols
        3. Validating Two-Way Connectivity in SPF
      5. Border Gateway Protocol
        1. BGP Peering
        2. The BGP Best Path Decision Process
        3. BGP Advertisement Rules
        4. Concluding Thoughts on BGP
      6. Final Thoughts
      7. Further Reading
      8. Review Questions
    7. Chapter 17. Policy in the Control Plane
      1. Control Plane Policy Use Cases
        1. Routing and Potatoes
        2. Resource Segmentation
        3. Flow Pinning for Application Optimization
      2. Defining Control Plane Policy
      3. Control Plane Policy and Complexity
        1. Routing and Potatoes
        2. Resource Segmentation
        3. Flow Pinning for Applications
      4. Final Thoughts on Control Plane Policy
      5. Further Reading
      6. Review Questions
    8. Chapter 18. Centralized Control Planes
      1. Considering the Definition of Software Defined
        1. A Taxonomy of Interfaces
        2. Considering the Division of Labor
      2. BGP as an SDN
      3. Fibbing
      4. I2RS
      5. PCEP
      6. OpenFlow
      7. CAP Theorem and Subsidiarity
      8. Final Thoughts on Centralized Control Planes
      9. Further Reading
      10. Review Questions
    9. Chapter 19. Failure Domains and Information Hiding
      1. The Problem Space
        1. Defining Control Plane State Scope
        2. Positive Feedback Loops
      2. The Solution Space
        1. Summarizing Topology Information
        2. Aggregating Reachability Information
        3. Filtering Reachability Information
        4. Layering Control Planes
        5. Caching
        6. Slowing Down
      3. Final Thoughts on Hiding Information
      4. Further Reading
      5. Review Questions
    10. Chapter 20. Examples of Information Hiding
      1. Summarizing Topology Information
        1. Intermediate System to Intermediate System
        2. Open Shortest Path First
      2. Aggregation
      3. Layering
        1. The Border Gateway Protocol as a Reachability Overlay
        2. Segment Routing with a Controller Overlay
      4. Slowing Down State Velocity
        1. Exponential Backoff
        2. Link State Flooding Reduction
      5. Final Thoughts on Failure Domains
      6. Further Reading
      7. Review Questions
  11. Part III: Network Design
    1. Chapter 21. Security: A Broader Sweep
      1. The Scope of the Problem
        1. The Biometric Identity Conundrum
        2. Definitions
        3. The Problem Space
      2. The Solution Space
        1. Defense in Depth
        2. Access Control
        3. Data Protection
        4. Service Availability Assurance
      3. The OODA Loop as a Security Model
        1. Observe
        2. Orient
        3. Decide
        4. Act
      4. Final Thoughts on Security
      5. Further Reading
      6. Review Questions
    2. Chapter 22. Network Design Patterns
      1. The Problem Space
        1. Solving Business Problems
        2. Translating Business Requirements into Technical
        3. What Is a Good Network Design?
      2. Hierarchical Design
      3. Common Topologies
        1. Ring Topologies
        2. Mesh Topologies
        3. Hub-and-Spoke Topologies
        4. Planar, Nonplanar, and Regular
      4. Final Thoughts on Network Design Patterns
      5. Further Reading
      6. Review Questions
    3. Chapter 23. Redundant and Resilient
      1. The Problem Space: What Failures Look Like to Applications
      2. Resilience Defined
        1. Other “Measures”
      3. Redundancy as a Tool to Create Resilience
        1. Shared Risk Link Groups
        2. In-Service Software Upgrade and Graceful Restart
        3. Dual and Multiplanar Cores
      4. Modularity and Resilience
      5. Final Thoughts on Resilience
      6. Further Reading
      7. Review Questions
    4. Chapter 24. Troubleshooting
      1. What Is the Purpose?
      2. What Are the Components?
      3. Models and Troubleshooting
        1. Build How Models
        2. Build What Models
        3. Build Accurate Models
        4. Shifting between Models
      4. Half Split and Move
        1. Using Manipulability
        2. Simplify before Testing
      5. Fixing the Problem
      6. Final Thoughts on Troubleshooting
      7. Further Reading
      8. Review Questions
  12. Part IV: Current Topics
    1. Chapter 25. Disaggregation, Hyperconvergence, and the Changing Network
      1. Changes in Compute Resources and Applications
        1. Converged, Disaggregated, Hyperconverged, and Composable
        2. Applications Virtualized and Disaggregated
      2. The Impact on Network Design
        1. The Rise of East/West Traffic
        2. The Rise of Jitter and Delay
      3. Packet Switched Fabrics
        1. The Special Properties of a Fabric
        2. Spine and Leaf
        3. Traffic Engineering on a Spine and Leaf
        4. A Larger-Scale Spine and Leaf
      4. Disaggregation in Networks
      5. Final Thoughts on Disaggregation
      6. Further Reading
      7. Review Questions
    2. Chapter 26. The Case for Network Automation
      1. Automation Concepts
      2. Modern Automation Methods
        1. NETCONF
        2. RESTCONF
      3. Automation with Programmatic Interfaces
      4. On-box Automation
      5. Network Automation with Infrastructure Automation Tools
      6. Network Controllers and Automation
      7. Network Automation for Deployment
      8. Final Thoughts on the Future of Network Automation: Automation to Automatic
      9. Further Reading
      10. Review Questions
    3. Chapter 27. Virtualized Network Functions
      1. Network Design Flexibility
        1. Service Chaining
      2. Scaling Out
      3. Decreased Time to Service through Automation
        1. Centralized Policy Management
        2. Intent-Based Networking
        3. Benefit
      4. Compute Advantages and Architecture
        1. Improving VNF Throughput
      5. Considering Tradeoffs
        1. State
        2. Optimization
        3. Surface
        4. Other Tradeoffs to Consider
      6. Final Thoughts
      7. Further Reading
      8. Review Questions
    4. Chapter 28. Cloud Computing Concepts and Challenges
      1. Public Cloud Business Drivers
        1. Shifting from Capital to Operational Expenditure
        2. Time-to-Market and Business Agility
      2. Nontechnical Public Cloud Tradeoffs
        1. Operational Tradeoffs
        2. Business Tradeoffs
      3. Technical Challenges of Cloud Networking
        1. Latency
        2. Populating Remote Storage
        3. Data Gravity
        4. Selecting Among Multiple Paths to the Public Cloud
      4. Security in the Cloud
        1. Protecting Data over Public Transport
        2. Managing Secure Connections
        3. The Multitenant Cloud
        4. Role-Based Access Controls
      5. Monitoring Cloud Networks
      6. Final Thoughts
      7. Further Reading
      8. Review Questions
    5. Chapter 29. Internet of Things
      1. Introducing IoT
      2. IoT Security
        1. Securing Insecurable Devices Through Isolation
      3. IoT Connectivity
        1. Bluetooth Low Energy (BLE)
        2. LoRaWAN
        3. IPv6 for IoT
      4. IoT Data
      5. Final Thoughts on the Internet of Things
      6. Further Reading
      7. Review Questions
    6. Chapter 30. Looking Forward
      1. Pervasive Open Automation
        1. Modeling Languages and Models
        2. A Brief Introduction to YANG
        3. Looking Forward Toward Pervasive Automation
      2. Hyperconverged Networks
      3. Intent-Based Networking
      4. Machine Learning and Artificial Narrow Intelligence
      5. Named Data Networking and Blockchains
        1. Named Data Networking Operation
        2. Blockchains
      6. The Reshaping of the Internet
      7. Final Thoughts on the Future of Network Engineering
      8. Further Reading
      9. Review Questions
  13. Index