Network Architecture
What is Network architecture?
Network architecture is a set of high-level design principles that guides the technical design of the network, especially the engineering of its protocols and algorithms. To flesh out this simple definition, we have examples of the constituents of the architecture and how it is applied.
A network architecture must typically specify:
· Where and how state is maintained and how it is removed.
· What entities are named.
· How naming, addressing, and routing functions inter-relate and how they are performed.
· How communication functions are modularized, e.g., into “layers” to form a “protocol stack”.
· How network resources are divided between flows and how end-systems react to this division, i.e., fairness and congestion control.
· Where security boundaries are drawn and how they are enforced.
· How management boundaries are drawn and selectively pierced.
· How differing QoS is requested and achieved.
Ideally one would like to imagine using the architecture to “generate” the technical design, but making such a mapping in a mechanical fashion is clearly impossible. The architecture can only provide a set of abstract principles against which we can check each decision about the technical design. The role of the architecture is to ensure that the resulting technical design will be consistent and coherent – the pieces will fit together smoothly – and that the design will satisfy the requirements on network function associated with the architecture. An architecture is more general than a particular conformant technical design. The technical design derived from a particular architecture is far from unique, and it may evolve over time in response to detailed changes in requirements; however, the same architecture may be maintained. Crucially, architecture is expected to be relatively long-lived, applicable to more than one generation of the technology.