Minggu, 16 Oktober 2011

Architecture Internet

What is Network architecture?
It is important to understand what the term “architecture” term means. The notion
of network architecture was introduced during the Internet research phase by
the research community that had developed the ARPAnet protocols. This community
brought to bear on the computer communication problem the kind of abstract
thinking about resources and relationships that came naturally to computer scientists
who had designed hardware architectures and/or computer software systems.
This resulted in the development of an overarching “design philosophy” to accompany
the design of the algorithms and protocols for the Internet (see for example
[CerfKahn74, CerfKirs78, E2Earg81]). This philosophy was elaborated over time
to create the complete original architecture of the Internet protocol suite [Clark88].
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 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, an 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 (which was, however, a speculative alternative
to aspects of the current Internet architecture) was contained in the Application
Level Framing (ALF) proposal of Clark and Tennenhouse [ALF90]. 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 longterm
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.

Example: the Internet Architecture

To further clarify the meaning of “architecture”, we can consider the Internet architecture.
The important features of the original Internet architecture [BCarp96]
included:
_ A connectionless packet-forwarding infrastructure (“dumb network”) that
positioned higher-level functionality at the edge of the network for robustness
(“fate-sharing”)
4
_ A single least-common-denominator data delivery service at the internetwork
layer, with different end-to-end services implemented in the transport
(or application) layer above. This design supports both reliable stream
and (unreliable) datagram service across the same connectionless infrastructure.
_ Addresses that are fixed-size numerical quantities, with a simple (net, host)
hierarchy
_ Addresses that are applied to physical network interfaces, which can therefore
be overloaded for both naming a node and for routing to it.
This Internet architecture evolved during the research phase, and it has continued
to evolve.
_ The most important change during the 1974 - 1980 research period was
the separation of TCP into an inter-network (IP) layer and a transport layer
(TCP), in version 4 of the protocols.
_ Several important features were added to the architecture during the early
1980s, especially subnetting, autonomous systems, and the domain name
system (DNS). All of these changes reflecting an increasing understanding
and respect for the issues of scale, imposed hierarchical design on the architecture.
Subnetting was the first step towards making addresses hierarchical,
and this was extended later with the addition of classless addressing
(CIDR). Autonomous systems made the organization of routing hierarchical,
by distinguishing EGPs from IGPs. Finally, the DNS introduced hierarchical
naming.
_ Later, IP multicasting added logical addressing and multi-destination delivery
fundamental parts of the architecture.
_ Congestion control using packet loss as a congestion signal and an additive
increase/multiplicative decrease algorithm at the end-systems was added in
the late 1980s in response to congestion collapse events.

Why is Architecture Important?
Architecture sets a sense of direction. It provides a basis for individual technical
decisions, as opposed to a random walk starting from today’s design. An architec-
ture represents not just an abstract goal, but a bias that is applied to every decision
made day-to-day. While architecture is long-term, it will often invariably have
short-term implications. In general, long- range research usually has short-term
spinoffs, but short-range research with no long view of where it is going cannot
have a long-term impact.
Because design done in the presence of architectural guidelines tends to produce
more general solutions, it can result in “platform” solutions – service layers that
are able to support a range of applications. This generality has the potential to
reduce overall the level of investment, since investment in a platform solution can
be reused. However, architecture has to be sustained and grown. Left to itself,
it erodes and atrophies. “Platform” solutions tend over time to be supplanted by
“overlays” that supplant the nominal interface for emerging classes of applications.
This point is clear to commercial entities that support interfaces that they view as
“platform” solutions. The Microsoft Windows API is a good example of a “platform”
interface that tries to support a range of applications over a common interface.
Microsoft commits a lot of resources to sustaining their interface, to attempt
to get new applications to run over it directly, as opposed to running over some
application-specific overlay. The Internet, if it is to survive as a platform, has to
make the same kind of investment; for the Internet, this investment is in design of
the architecture.
The Internet architecture is of particular importance to the military. In order that
the DoD be able to use COTS technology for military needs, there must be a degree
of generality in the devices, so that the differences between military and commercial
objectives can be accommodated. To the extent that an overall architecture
facilitates more general solutions, it directly enhances the COTS procurement objective.
Architecture guides technical development such as protocol design in a consistent
direction; without adequate architectural principles, designers with short-term
goals often implement point solutions. In general, an increasing collection of point
solutions leads over time leads to a design that is complex, tangled, and inflexible.
The Internet is exhibiting this technical arteriosclerosis today. Extensions to the
technical design of the Internet have been developed are being developed in the
IETF at increasing rate. Examples include integrated service (IntServ) and differentiated
service (DiffServ), IP Security (IPSEC), firewalls, mobile IP, Network
Address Translator (NAT) devices, label switching, VPNs, andWeb caches. We believe
that certain of these extensions were created with some architectural sensitiv-
ity; IntServ [IntServ94], and DiffServ [DiffServ98XX], and IPSEC [IPSEC98XX]
are examples. However, many of the recent extensions have been developed as
point solutions for specific requirements of particular subsets of the Internet community
– vendors, users, or ISPs – and largely in the absence of architectural thinking.
They do not represent enhancements of the architecture, even though they
were developed to meet legitimate short-term needs and requirements. Viewed as
a whole, this situation demonstrates two types of negative effects: those that arise
when technical development does not follow an architectural framework, and those
that arise when an architecture becomes “tired” and requires rethinking in response
to new requirements..
We can pick some illustrative examples from this list of extra-architectural extensions.
_ IPSEC
IP Security (IPSEC) seems to be fully consistent with the original architectural
model with respect to information hiding: it encrypts the transport-layer
(UDP or TCP) headers that, which contain only end-to-end information, in
principle of concern only to end hosts. However, network providers are very
unhappy about losing the ability to “snoop” at port numbers and higher-layer
protocol headers. This suggests that the original layering model was not in
fact the right one, or at least it is no longer fully adequate for today’s requirements.
Nobody owns the job of revisiting the general principle here,
to provide a clean solution combining end-to-end security with the management
information needed by the providers.
_ NAT Devices
An architectural principle of the Internet was that addresses in packets are
carried unchanged from source to destination. This principle is directly violated
by the Network Address Translation (NAT) devices that have become
popular. These devices were conceived to deal with exhaustion of the IP
address space (an issue never considered in the original design), as a means
to reduce the effort of address reassignment, and as a possible security enhancement.
However, NAT devices have significant high-level implications. Among the
strongest of these is to move the Internet fundamentally away from a peer-topeer
model (in which any host is theoretically addressable) towards a clientserver
model (in which only “selected” hosts are addressable from the global
network). This change appears relatively innocuous with today’s emphasis
on web applications, but has tremendous impact on the Internet’s ability to
support future applications and devices. This is an example of an “effective”
solution to a point problem greatly restricting generality and future usability.
The example also demonstrates the difficulty of adapting an architecture “on
the fly” to new circumstances. There is no accepted resolution of the architectural
implications of NAT devices. At the same time that purists who
defend the “old architecture” decry these devices as tasteless and destructive,
advocates call them the wave of the future. Even after an ad hoc committee
tried to catalog all the implications of address rewriting, there was still no
community consensus about the correct set of design principles.
_ Firewalls
Security firewalls have been introduced into the Internet design to protect
regions of the network from outside attack. Firewalls violate the original
architecture, and firewall design occurs in an undefined space of ad hoc evolution.
There has been no overall agreement on the assumptions an end-node
can or must make about what a firewall may do – what sorts of actions are
acceptable. As a result, firewalls often result in a loss of end-to-end (i.e.,
user to server) functionality.
More important from the network perspective, firewalls and similar nonarchitectural
changes often lead to unfortunate unintended consequences in
precisely the functional areas they are attempting to address. A recent example
arose when certain host vendors, acting in response to sites deploying
overly aggressive firewalls that broke the standard TCP “MTU Discovery”
protocol, developed and deployed a new version of MTU discovery that unwittingly
enabled a serious network wide denial of service attack.
_ Label Switching
Label switching represents an attempt to extend the architectural thinking to
some extent, by asking what sort of layer two technology is actually needed
to support the IP interface. But we should ask whether, given MPLS and
IPSEC, the function of the IP layer needs rethinking.
In addition to their direct consequences, these recent extensions have problems
with “feature interactions”. They have complex interactions with each other and
with the rest of the architecture, leading to increasingly complex and baroque protocol
engineering. Neither the technical nor the architectural implications of these
design extensions re fully understood today. Here are some examples of such undesirable
feature interactions.

1. NAT devices are incompatible with IPSEC encryption. This makes deployment
of good network security at an appropriate level almost impossible.
2. Transparent web caches are incompatible with Secure Sockets Layer (SSL)
or IPSEC authentication.
3. Diagnostic tools such as traceroute often give misleading results because
some traffic is being intercepted by transparent network entities such as web
caches.
4. NAT devices need to look inside control protocols such as the FTP control
channel to modify addresses and ports that are specified.
5. Deployment of new application protocols is made difficult by firewalls, with
the result that new protocols are sometimes tunneled over inappropriate existing
protocols to allow firewall traversal.
As a result, current IETF protocol engineering is in a conceptual and technical
muddle that will continue to lead to increasingly complex and costly engineering
as well as loss of functionality. The only way to avoid this degeneration will be to
restore coherence to the architecture, and that will happen only as the result of a
deliberate effort to create a new architecture for the future.
The cause of the IETF’s muddle is not that its members do not believe in the architecture
abstraction. Basic Internet architecture concepts like the end-to-end argument,
connectionless protocols, and universal connectivity are often cited in IETF
discussions. IETF members accept and support the idea of architecture. Indeed,
there are IETF efforts to define complete sub-architectures – the “security architecture”,
the “routing architecture”, the “addressing architecture”, etc. The problem
with these well-intentioned and often high-quality efforts is that they are piecemeal.
The union of these sub-architectures does not form an Internet architecture,
which is greater than the union of its parts. A decomposition may be useful, but it
is insufficient; the requirements and principles need to be combined into a coherent
whole. Finally, the IETF is unsuited by membership, organization, or mission to
attempt a major overhaul of the overall architecture.


0 komentar:

Posting Komentar