The stack of services depicted in Figure 6.4 gives rise to the term 'Layered
Architecture'. The positions of the various services in the stack define
the possible relationships between them. For example, a protocol entity in
Layer 4 is a user of the Layer 3 service and a provider of a service to
Layer 5. It would be illegal for a Layer 4 protocol entity to try to use
the service of Layer 5.
The OSI model imposes this layering principle in a very rigid way:
-
All the layers must be present; a layer (N) entity must use the Layer
(N-1) service and cannot miss it out and go straight to layer (N-2)
-
The model prescribes exactly what an (N) Layer service should do.
(Originally there was just one service in each layer, now there are
two, one CO and one CL). It is not possible to define a new variant of
an OSI (N) Layer service without stepping outside the OSI model
Many experts consider that this rigidity unnecessarily constrains
distributed system design. The DARPA architecture is much more flexible. In
this, although the basic hierarchical relationships between layers or
modules remain, the additional constraints identified above for the OSI
model are not applied. Thus it is possible to have several alternative
services at the same level in the hierarchy. As long as the ordering is
preserved, it is permissible to omit an intermediate service and map
directly into one below. This flexibility makes it especially easy to
introduce new types of service and new technologies. Figure 6.9 shows part
of the DARPA hierarchy. ESP (Sequenced Exchange Protocol) is an
experimental protocol for the support of Remote Procedure Calls which was
developed at University College London. It is included here to illustrate
the point that alternative protocol stacks are possible within the
hierarchy.
This flexibility provides justification for calling the DARPA architecture
a 'hierarchical, one rather than a 'layered' one. One of the problems
facing the designers of distributed systems based on the OSI model is the
fact that they are stuck with a set of services and protocols which cannot
be altered in any way. Since these were originally designed with the needs
of particular applications in mind they are unlikely to be ideal for new
application types.