ARCHITECTURE


Node Architecture Description:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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 :
  1. 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.
  2. 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.
  3. 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.
  4. The policy decision is flexible. The node administrator has a "back-door" access to the policies and may modify or override any of them.
  5. 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.
  6. 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