Bharat Banate's Work Profile

View Bharat Banate's profile on LinkedIn

Tuesday, September 11, 2007

Networking : Network Architecture

Network Architecture

The term “network architecture” is commonly used to describe a set of abstract principles for the technical design of protocols and mechanisms for computer communication. A network architecture represents a set of deliberate choices out of many design alternatives, where these choices are informed by an understanding of the requirements. In turn, the architecture provides a guide for the many technical decisions required to standardize network protocols and algorithms. The purpose of the architecture is providing coherence and consistency to these decisions and to ensure that the requirements are met. The design of today’s Internet technology was guided by an Internet architecture that was developed in the 1970s, under the Internet research program of the Defense Advanced Research Projects Agency (DARPA) of the US Department of Defense.

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.

A trivial example of this is IPv6, which represents a later generation of technology than IPv4 although both conform to the same Internet architecture. An example of architectural thinking was contained in the Application Level Framing (ALF) proposal of Clark and Tennenhouse. ALF was not a complete architecture, only an architectural component with specific goals: lower cost and more flexible implementation, more efficient operation over diverse infrastructure (packet and ATM), and effective support for a wider range of application requirements, and so on. ALF illustrates the practical short-term benefit of long term architectural thinking. While the ALF idea as proposed was not cast as in incremental modification to the internet but rather as a new and different approach, other researchers used the ALF idea as the basis for the implementation of new applications over the existing network.