Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
About This E-Book
Title Page
Copyright Page
About the Authors
About the Technical Reviewers
Dedications
Acknowledgments
Contents at a Glance
Contents
Introduction
How This Book Is Organized
Chapter 1. Defining Complexity
What Is Complexity?
Anything I Don’t Understand
Anything with a Lot of Parts
Anything for Which There Is More State Than Required to Achieve a Goal
Unintended Consequences
Why So Much Complexity?
Future Extensions versus New Protocols
Unexpected Errors
Why Not Build Infinitely Complex Systems?
Quick, Cheap, and High Quality: Choose Two
Consistency, Availability, and Partition Tolerance: Choose Two
Journey into the Center of Complexity
Chapter 2. Components of Complexity
Network Convergence
Path Vector: A BGP Example
Distance Vector: An EIGRP Example
Link State: OSPF and IS-IS Convergence
State
Amount of Information
An Example of State Failure in the Real World
Final Thoughts on State
Speed
The Network That Never Converges
The Flapping Link
Final Thoughts on Speed
Surface
The Hourglass Model
Optimization
A Final Thought
Chapter 3. Measuring Network Complexity
Some Measures of Network Complexity
Network Complexity Index
Modeling Design Complexity
NetComplex
Organized Complexity
Is This a Waste of Time?
A Final Thought
Chapter 4. Operational Complexity
Exploring the Problem Space
The Cost of Human Interaction with the System
Policy Dispersion Versus Optimal Traffic Handling
Solving the Management Complexity Problem
Automation as a Solution to Management Complexity
Modularity as a Solution to Management Complexity
Protocol Complexity versus Management Complexity
A Final Thought
Chapter 5. Design Complexity
Control Plane State versus Stretch
Aggregation versus Stretch
Traffic Engineering
State versus Stretch: Some Final Thoughts
Topology versus Speed of Convergence
Ring Topology Convergence
Redundancy versus Resilience
Topology versus Speed of Convergence: Some Final Thoughts
Fast Convergence versus Complexity
Improving Convergence with Intelligent Timers: Talk Faster
Removing Timers from Convergence: Precompute
Working around Topology: Tunneling to the Loop-Free Alternate
Some Final Thoughts on Fast Convergence
Virtualization versus Design Complexity
Functional Separation
Forwarding Plane Complexity
Control Plane Complexity
Shared Fate Risk Groups
A Final Thought
Chapter 6. Managing Design Complexity
Modularity
Uniformity
Interchangeable Modules
How Modularity Attacks the Complexity Problem
Information Hiding
Aggregation
Failure Domains and Information Hiding
Final Thoughts on Information Hiding
Models
Waterfall
Places in the Network
Hierarchical
UML
A Final Thought
Chapter 7. Protocol Complexity
Flexibility versus Complexity: OSPF versus IS-IS
Layering versus Protocol Complexity
The Seven-Layer Model
The Four-Layer Model
The Iterative Model
Protocol Stacks and Design
Protocol Complexity versus Design Complexity
Microloops and Fast Reroute
EIGRP and the Design Conundrum
A Final Thought
Chapter 8. How Complex Systems Fail
Feedback Loops
Positive Feedback Loops in Network Engineering
Speed, State, and Surface: Stability in the Network Control Plane
Shared Fate
Virtual Circuits
TCP Synchronization as a Shared Fate Problem
A Final Thought
Thoughts on Root Cause Analysis
Engineering Skills and Failure Management
Chapter 9. Programmable Networks
Drivers and Definition
Business Drivers
The Ebb and Flow of Centralization
Defining Network Programmability
Use Cases for Programmable Networks
Bandwidth Calendaring
Software-Defined Perimeter
Programmable Network Interfaces
The Programmable Network Landscape
OpenFlow
YANG
Path Computation Element Protocol
Interface to the Routing System
A Final Thought
Chapter 10. Programmable Network Complexity
The Subsidiarity Principle
Policy Management
Policy Dispersion
Policy Consistency
Policy Complexity
Surface and the Programmable Network
Impact on Failure Domains
Wide Area Failure Domains
Data Center Failure Domains
Application to Control Plane Failure Domain
Controller to Controller Failure Domain
Final Thoughts on Failure Domains
A Final Thought
Chapter 11. Service Virtualization and Service Chaining
Network Function Virtualization
NFV: A Use Case
Service Chaining
Service Function Chaining
Segment Routing
A Final Thought
Chapter 12. Virtualization and Complexity
Policy Dispersion and Network Virtualization
State and Service Chaining
State and Optimization
Surface and Policy Interaction
Surface and Policy Proxies
Other Design Considerations
Coupling and Failure Domains
Troubleshooting
The Orchestration Effect
Managing Complexity
A Final Thought
Chapter 13. Complexity and the Cloud
Where Does the Complexity Live?
Cloud Centric
Vendor Centric
Network Centric
Is There a “Right Way?”
Centralize What?
Cloudy Complications
Security
Data Portability
A Final Thought
Chapter 14. A Simple Ending
Defining Complexity
Difficult to Understand
Unintended Consequences
Large Numbers of Interacting Parts
What Makes Something “Too Complex”?
Complexity Is a Tradeoff
Modeling Complexity
Managing Complexity in the Real World
Don’t Ignore Complexity
Find a Model to Contain the Complexity
A Final Thought
Index
Code Snippets
← Prev
Back
Next →
← Prev
Back
Next →