
REFERENCE
DATA
FOR ENGINEERS
circuit
(VC)
service.
In the VC model, the network
layer provides the transport layer with a “perfect”
connection: no errors, no duplicates, and all packets are
delivered in order. In the datagram model, the network
layer accepts messages from the transport layer and
simply makes the best effort to deliver them indepen-
dently (and not necessarily in order). The implementa-
tion of the datagram mode is simple; it merely consists
of a routing algorithm that attempts delivery of the
messages to their destination. For VC, in addition to
routing the messages, error control
and
sequencing must
be implemented at the end nodes. In theory, packets
may travel on different routes and arrive in any order.
Resequencing at the destination node would then be
required. In practice, the implementation of a VC in the
subnet is by establishing a route between the source and
destination end nodes at connection time, and by
continuously using the same route for all packets
belonging to the same virtual circuit. The implementa-
tion requires the packet to carry a virtual circuit
number, and each node to contain a table with an entry
for each VC traversing it, relating incoming packets
from an adjacent neighbor with a VC number to an
outgoing link and a VC number on that link. Forward-
ing packets
to
the destination node is then straightfor-
ward. All nodes use the first-come-first-served service
discipline, thus preserving the order of packets for each
VC. End-to-end reliability and sequencing are achieved
by means of a window mechanism, which also provides
flow control. It is to be noted, however, that the network
layer does not achieve complete end-host to end-host
reliability, since it is subject to node and link failures;
depending on the environment and on the application,
higher level functions (at the transport layer) must exist
to guarantee that reliability.
In multihop store-and-forward networks, the network
layer includes a routing algorithm that is responsible for
deciding on which output link a packet should be
transmitted. Although one primary objective is that
each packet reaches its destination, there are several
other objectives that are also very important, such as to
minimize packet transit times, to avoid congestion and
deadlocks, to maximize the network throughput, etc. It
is also desirable that the algorithm be simple, robust,
stable, and fair to all users. There is a broad spectrum of
routing algorithms. They vary according to various
attributes pertaining to the nature of decision-making
(centralized or distributed), the degree of adaptivity,
the frequency of updates, etc. Several routing tech-
niques are described below.
Directory Routing-In directory routing, each
node maintains a table with one row for each destina-
tion. The row gives one or several outgoing links
together with relative weights assigned to them. Upon
receipt of a packet with a given destination address, the
node simply performs a table look-up and chooses one
of the alternatives, using the relative weights as proba-
bilities. The selection of routes and their weights may
be based on the number of hops. If the source-
destination traffic requirement of the network is station-
ary,
then it is possible to use routes that minimize the
average message delay in the network. For a given
destination, the routes from an intermediate node to
that destination are entirely determined by the tables
and independent of the source. This is not restrictive,
since if node
j
is on the optimal path from source
i
to
destination
k,
then the optimal path from
j
to
k
should
follow the same route. This is known as the optimality
principle. As a result, the set
of
routes from all sources
to
a
given destination form a tree with the destination as
a root; such a tree is called the
sink tree
for that
destination.
Hierarchical Routing-If the size of the network
is large, then hierarchical routing is used. The network
is partitioned into regions; node addresses are hierarchi-
cal and contain a region number and a node number
within the region. In the table at each node, there is an
entry for each destination in the region in which the
node is located, and an entry for each of the other
regions. Hierarchical routing decreases the overhead
incurred in terms of storage and processing require-
ment. If the network is very large, a hierarchy with
more than two levels may be needed.
Static Versus Dynamic Routing-Static routing
refers
to
the case in which the table content
is
fixed.
Static routing is adequate if the topology and traffic
conditions do not change much. Dynamic routing refers
to the case in which table contents change as the
network condition changes. This is also referred to as
adaptive routing.
For example, if routing tables are
based on minimizing message delay, then the routes are
modified as the traffic pattern changes. There
is
a wide
range of adaptivity depending on the frequency of
changes, the type and amount of information used, and
the means for implementing the changes. For example,
static routing may be used, but changed only when there
is a failure. To construct the best routing tables in the
nodes at all times, information is needed about the
instantaneous state of the network and its traffic.
Unfortunately, it is not possible for the nodes to have
complete and up-to-date information about the entire
network. To provide it would also constitute too great an
overhead. Several practical alternatives are presented
below.
Centralized Routing-In centralized routing, a
node is designated as the
routing control center
(RCC).
Each node periodically sends status information to the
RCC
.
The RCC thus acquires global information, based
upon which it computes optimal routes. New routing
tables are periodically distributed to the nodes in the
network. While centralized routing may achieve global
optimal and relieve the node from the task of routing
computation, it has some drawbacks: the information
collected at the RCC may be old due to the delay in the