You are previewing Patterns in Network Architecture.
O'Reilly logo
Patterns in Network Architecture

Book Description

Groundbreaking Patterns for Building Simpler, More Powerful Networks

In Patterns in Network Architecture, pioneer John Day takes a unique approach to solving the problem of network architecture. Piercing the fog of history, he bridges the gap between our experience from the original ARPANET and today’s Internet to a new perspective on networking. Along the way, he shows how socioeconomic forces derailed progress and led to the current crisis.

Beginning with the seven fundamental, and still unanswered, questions identified during the ARPANET’s development, Patterns in Network Architecture returns to bedrock and traces our experience both good and bad. Along the way, he uncovers overlooked patterns in protocols that simplify design and implementation and resolves the classic conflict between connection and connectionless while retaining the best of both. He finds deep new insights into the core challenges of naming and addressing, along with results from upper-layer architecture. All of this in Day’s deft hands comes together in a tour de force of elegance and simplicity with the annoying turn of events that the answer has been staring us in the face: Operating systems tell us even more about networking than we thought. The result is, in essence, the first “unified theory of networking,” and leads to a simpler, more powerful–and above all–more scalable network infrastructure.  The book then lays the groundwork for how to exploit the result in the design, development, and management as we move beyond the limitations of the Internet.

Using this new model, Day shows how many complex mechanisms in the Internet today (multihoming, mobility, and multicast) are, with this collapse in complexity, now simply a consequence of the structure. The problems of router table growth of such concern today disappear. The inescapable conclusion is that the Internet is an unfinished demo, more in the tradition of DOS than Unix, that has been living on Moore’s Law and 30 years of band-aids. It is long past time to get networking back on track.

•           Patterns in network protocols that synthesize “contradictory” approaches and simplify design and implementation

•           “Deriving” that networking is interprocess communication (IPC) yielding

•           A distributed IPC model that repeats with different scope and range of operation

•           Making network addresses topological makes routing purely a local matter

•           That in fact, private addresses are the norm–not the exception–with the consequence that the global public addresses required today are unnecessary

•           That mobility is dynamic multihoming and unicast is a subset of multicast, but multicast devolves into unicast and facilitates mobility

•           That the Internet today is more like DOS, but what we need should be more like Unix

•           For networking researchers, architects, designers, engineers

Provocative, elegant, and profound, Patterns in Network Architecture transforms the way you envision, architect, and implement networks.

Preface: The Seven Unanswered Questions xiii

Chapter 1: Foundations for Network Architecture 1

Chapter 2: Protocol Elements 23

Chapter 3: Patterns in Protocols 57

Chapter 4: Stalking the Upper-Layer Architecture 97

Chapter 5: Naming and Addressing 141

Chapter 6: Divining Layers 185

Chapter 7: The Network IPC Model 235

Chapter 8: Making Addresses Topological 283

Chapter 9: Multihoming, Multicast, and Mobility 317

Chapter 10: Backing Out of a Blind Alley 351

Appendix A: Outline for Gedanken Experiment on Separating Mechanism and Policy 385

Bibliography 389

Index 399

Table of Contents

  1. Copyright
    1. Dedication
  2. Preface
    1. The Seven Unanswered Questions
      1. Converging on TCP
  3. Acknowledgments
  4. About the Author
  5. 1. Foundations for Network Architecture
    1. Introduction
    2. Beginning at the Beginning
    3. Levels of Abstraction
      1. Model
      2. Service
      3. Protocol and Interface
      4. Implementation
    4. Specifying Protocols
      1. Informal Specifications
      2. Formal Description Techniques
    5. Where to from Here
  6. 2. Protocol Elements
    1. Introduction
    2. Protocol Architecture
      1. Elements of a Protocol
        1. Protocol
        2. Associations, Connections, Flows, and Bindings
        3. Interfaces
    3. Data Units
      1. Headers
      2. Trailers
      3. The Nature of the Service Boundary
      4. Stream Versus Record
      5. Constructing Protocol
      6. The Size of PDUs
      7. Mechanism and Policy
      8. QoS Versus NoS
    4. A Short Catalog of Data Transfer Mechanisms
      1. Delimiting
      2. Initial State Synchronization
      3. Policy Selection
      4. Addressing
      5. Flow or Connection Identifier
      6. Relaying
      7. Multiplexing
      8. Ordering
      9. Fragmentation/Reassembly
      10. Combining/Separation
      11. Data Corruption
      12. Lost and Duplicate Detection
      13. Flow Control
      14. Retransmission Control or Acknowledgment
      15. Compression
      16. Authentication
      17. Access Control
      18. Integrity
      19. Confidentiality
      20. Nonrepudiation
      21. Activity
    5. Phases of Operation
      1. The Enrollment Phase
      2. The Establishment or Synchronization Phase
      3. The Data Transfer Phase
    6. Conclusions
  7. 3. Patterns in Protocols
    1. Introduction
    2. The Two Major Architecture Paradigms
      1. The Layered Model
      2. The Beads-on-a-String Model
    3. The Connectionless/Connection Debate
      1. Background
      2. Finding for a Synthesis: The Easy Part
    4. The Types of Mechanisms
    5. How Many PDUs in a Protocol?
    6. The Types of Protocols
    7. The Architecture of Data Transfer PMs
    8. Finding a Synthesis: The Hard Part
    9. Conclusions
  8. 4. Stalking the Upper-Layer Architecture
    1. Introduction
    2. A Bit of History
      1. The Upper Layer(s) of the ARPANET
        1. Early Elegance: Telnet, FTP, and RJE
        2. What Was Learned
      2. The OSI Attempt or “Green Side Up”
        1. Session, Presentation, and Application
        2. What Was Learned
      3. Network Management
      4. HTTP and the Web
      5. Directory- or Name-Resolution Protocols
        1. Name-Resolution Systems
        2. NRS Structures
    3. What Distinguishes the Upper Layers
      1. Semantic Significance
      2. Location Independence
    4. Conclusions
  9. 5. Naming and Addressing
    1. Introduction
    2. Why Do We Need Naming and Addressing?
    3. How the Problem Arose
    4. Background on Naming and Addressing
      1. Foundations of Mathematics and Naming
      2. Naming and Addressing in Telephony
      3. Naming in Operating Systems
      4. X.25 and the ITU
      5. The Evolution of Addressing in the Internet: Early IP
      6. OSI and NSAPs
      7. Addressing in IPv6
        1. The Various Address Types
        2. IPv6 Unicast Addresses
      8. Looking Back over IPv6
      9. “Upper-Layer” or Application Addressing in OSI
      10. URI, URL, URN, and So On: Upper-Layer Addressing in the Internet
    5. Conclusions
  10. 6. Divining Layers
    1. Introduction
    2. Putting Protocols Together
      1. What We Have Seen
    3. Listening to the Problem
      1. Introduction
      2. Communications Within a Single System
        1. The Operation of Communication in a Single System
        2. Properties of Major Elements
        3. Definitions of the Initial Elements
      3. Communications Between Two Systems
        1. The Operation of Communication Between Two Systems
      4. Invalidated Assumptions
      5. New Elements Required
      6. Simultaneous Communications Between Two Systems
        1. Operation of Simultaneous Communications
          1. Multiple Pairs of Applications Communicating
          2. Multiple Instances of the EFCP
          3. Managing the Single Resource
        2. New Elements Required
      7. Communications with N Systems
        1. Operation of Communications with N Systems
        2. New Elements
      8. Communication with N Systems on the Cheap
        1. Operation of Communication with N Systems on the Cheap
        2. New Elements
      9. Initial Conclusions
    4. Taking Stock
    5. The Network IPC Architecture (NIPCA)
    6. Organizing Layers
    7. Conclusions
  11. 7. The Network IPC Model
    1. Introduction
    2. Basic Structure
      1. Definitions
      2. Description of the Basic System
        1. Processing Systems and Their Operating Systems in Brief
        2. Basic Structures and Their Principles
        3. The Structure of Applications and Protocols
        4. Application Protocol Machines
    3. Naming Concepts for (N)-DIFs and Applications
      1. Definitions
        1. Application Naming
    4. The (N)-Distributed IPC Facility
      1. Definitions
      2. The (N)-IPC-Process
      3. The (N)-IPC-APM
        1. The IPC API
        2. The EFCP Protocol
          1. Delimiting
          2. The IPC Data Transfer PM
          3. The IPC Control Protocol
        3. Relaying and Multiplexing Task (RMT)
        4. PDU Protection
      4. The IPC Management Task
        1. (N)-IPC-Access-Protocol (IAP)
        2. Resource Information Exchange Protocol (RIEP)
        3. Resource Information Base
        4. The IPC Management Task
      5. Network Management Protocol and Management Architecture
    5. The Nature of Layers
    6. Operation of the DIF
      1. Adding a New Member to an (N)-DIF
      2. Creating a New DIF
      3. Data Transfer
    7. Identifiers in an (N)-DIF
      1. The (N)-Port-ID
      2. Application Process Names
      3. (N)-Addresses
        1. Taking Stock
    8. IPC Facilities
      1. IPC Structures
      2. Multiple (N)-DIFs of the Same Rank
      3. Implications for Security
    9. Conclusions
  12. 8. Making Addresses Topological
    1. Introduction
    2. General Properties of Addressing
      1. Names and Addresses
    3. Introducing Topology to Addressing
      1. Definitions
    4. Topologies for Addressing
    5. The Role of Hierarchy in Addressing
      1. The Hierarchy of Layers
      2. The Hierarchical Topology of Address Spaces
      3. The Hierarchy of Networks
      4. Melding Address Spaces and the Hierarchy of Layers
    6. Hierarchical Addressing Architecture
      1. Single-Layer Address Topology
      2. Single-Layer Hierarchical Address Topology
      3. Address Topology for a Hierarchy of Layers
      4. Addressing Topologies for Multiple Hierarchies of Layers
      5. Modeling the Public Internet
    7. Conclusions
  13. 9. Multihoming, Multicast, and Mobility
    1. Introduction
    2. Multihoming
    3. Multicast Architecture
      1. Introduction to the Multicast Problem
      2. The Multicast Model
      3. Multicast “Addressing”
      4. Multicast Distribution
      5. Sentential Naming Operations and Their Resolution
      6. Multicast Distribution in a Recursive Architecture
      7. Multiplexing Multicast Groups
      8. Reliable Multicast
    4. Mobility
      1. Mobility in IP and Cellular Networks
      2. Mobility in NIPCA
      3. Ad Hoc Mobile Networking
      4. Mobile Application Processes
    5. Conclusions
  14. 10. Backing Out of a Blind Alley
    1. Introduction
    2. Consolidation and the Next Generation
    3. How Did This Happen?
    4. The Importance of Theory
    5. Finding a New Path
    6. The High Points
  15. A. Outline for Gedanken Experiment on Separating Mechanism and Policy
    1. Part I Service Definitions
    2. Part II Protocol Specifications
    3. Part III Mechanism Specifications
  16. Bibliography