ARCHITECTURE
Node Architecture Description:
-
Pre-Filter: Passive
datagrams require simple forwarding and hence need to be transferred to
the output queue as soon as possible. The Pre-filter separates the passive
datagrams from the active ones that need node processing . This creates
two distinct paths in the node, called the Fast Track for passive datagrams
and the Slow Track for the active ones.
-
Datagrams: The
active datagrams contain constraint specifications. This means that all
packets having the same specifications are processed with the same services
at the node. An occurrence of several streams of packets from differing
applications having the same constraints may still cause them to be processed
similarly at the node.
-
Loadable Services Memory: It
contains the complete set of services (with appropriate identifiers) that
the packet at the node can be subjected to. These services may be revised
or updated as neccessary from a distributed Directory of Services using
an appropriate directory access protocol eg LDAP, SLP.
-
Local Conditioning Module: Environment
variables that are local to the given node are maintained in a MIB (Management
Information Base). These variables are updated regularly reflecting nodal
conditions. The granularity of the updates may be adjusted depending on
processing overhead and the accuracy of environmental information desired.
Examples of the environment variables include node status, link status,
congestion, link utility, link latency, available bandwidth, etc.
-
Policy Decider: The
policy decider is an algorithm that selects a subset of services from the
Loadable Services Memory. The algorithm is based on the environment variables
of the node which are obtained using SNMP. The policy is also be shaped
by economic and political constraints as well as the node administrator.
-
Inference Engine: It
groups together all packets having the same constraints specifications
by examining the constraints field for each incoming datagram. If the constraints
specified for an incoming datagram do not match any of those that are cached
(in the Constraing_Service cache) previously, a new constraints_stamp is
created which helps to identify all successive packets of the same type.
However, if a match is found in the cache, the datagram is forwarded to
the Execution engine along with a reference to the identified set of services.
-
Constraints_Service Cache: It
contains the constraints_stamp and an identifier indicating the set of
services that the datagram needs to be subjected to. For example, an incoming
datagram may have constraints specifying that it needs moderate security
and multicasting. The services that need to be implemented for these operations
may be identified as x followed by y.
-
Execution Engine: This
is where the processing of the datagram actually takes place. The service
identifiers are obtained from the Constraints_Service Cache and the services
are then fetched from the Services Memory. The datagram is then serviced
on the fly and accordingly modified to reflect this servicing so that other
nodes in the path are aware of the processing that has been done on it.
Salient Features :
-
By separating the service loading mechanism
from the datagrams to be serviced we define a new strategy for service
distribution using directory services. If a novel encryption
algorithm is advertised on the network, the directory access protocol can
download that algorithm into the node as a service and apply it to all
datagrams passing through having a high security constraint.
-
We intend to enforce minimal packet processing
at the node by stripping off constraint requirements that have already
been serviced. Thus once a packet has satisfied its constraints (requirements)
along the path it is treated as a passive packet and is simply forwarded
towards its destination.
-
By making local decisions on the interpretation
of the constraints into service requirements, the network conditions are
reflected in the processing of the datagrams bringing dynamism into the
network. If a given node is heavily congested, the back-end policy could
simply enforce all incoming datagrams to be processed passively and shift
the processing burden to some other node downstream. In effect our network
is seen as a processing pipeline from the source to destination with the
processing burden distributed along the pipe.
-
The policy decision is flexible. The node administrator
has a "back-door" access to the policies and may modify or
override any of them.
-
We aim to keep the datagram weightless.
The datagram contains a set of constraints that need to be fulfilled along
its path from source to destination. How those constraints are serviced
is the functioning of the underlying network through which it traverses.
Thus satisfying those constraints is a dynamic process that takes into
account the network conditions bringing in processing on-the-fly.
-
By enforcing a constraint classification
of the datagram as opposed to application classification reduces the total
number of classes. This approach reduces memory requirements at the node.
Also, the resources consumed by a class of datagrams is the same since
all these datagrams are subject to the same processing at the node. For
the service providers it facilitates easier billing strategies.
ACTIVE NODE ARCHITECTURE :
C = Constraints stamp
S = Service Identifier string
A primitive example:
As a primitive example let us consider a
topology whereby a single transmitting host (A)wishes to multicast
an application packet to two hosts(B and C), one of which
is connected via a wireless link as shown in the diagram. Lets assume A
specifies its constraints in a program requiring all receivers to get reliable
and secure datagrams. The node (Y) that duplicates the packet along
the two paths must treat the packets separately because of the varying
network conditions along the paths. Thus the network nodes must be aware
of the local environmental conditions. These may obtained in the form of
link and node specific variables using SNMP.
The wireless link is relatively insecure
and error-prone. We shift the responsibility of providing security and
error-correction into the network path in the form of active services.
The services provided at the node are obtained using a directory service
and subsequently loaded into its memory for future use. These services
could be in the form of an encryption mechanism to secure data and then
making it robust using a forward error correction scheme before sending
the datagram on the wireless link
Diagram
W = wired
WL = wireless