
This chapter introduces the underlying
concepts widely used in routing protocols. Topics summarized here
include routing protocol components and algorithms. In addition, the
role of routing protocols is briefly contrasted with the roles of routed
or network protocols. Subsequent chapters in Part 6, "Routing
Protocols," of this book address specific routing protocols in more
detail, while the network protocols that use routing protocols are
discussed in Part 5, "Network Protocols."
Routing is the act of
moving information across an internetwork from a
source to a destination. Along the way, at least one intermediate node
typically is encountered. Routing is often contrasted with bridging,
which might seem to accomplish precisely the same thing to the casual
observer. The primary difference between the two is that bridging
occurs at Layer 2 (the link layer) of the OSI reference model, whereas
routing occurs at Layer 3 (the network layer). This distinction
provides routing and bridging with different information to use in the
process of moving information from source to destination, so the two
functions accomplish their tasks in different ways.
The topic of routing
has been covered in computer science literature for more than two
decades, but routing achieved commercial popularity as late as the
mid-1980s. The primary reason for this time lag is that networks
in the 1970s were fairly simple, homogeneous environments. Only
relatively recently has large-scale internetworking become popular.
Routing involves two basic activities:
determining optimal routing paths and transporting information groups
(typically called packets) through an internetwork. In the
context of the routing process, the latter of these is referred to as switching.
Although switching is relatively straightforward, path determination can
be very complex.
A metric
is a standard of measurement, such as path length,
that is used by routing algorithms to determine the optimal path to a
destination. To aid the process of path determination, routing
algorithms initialize and maintain routing
tables, which
contain route information. Route information varies depending on the
routing algorithm used.
Routing algorithms fill routing tables
with a variety of information. Destination/next hop associations tell a
router that a particular destination can be gained optimally by sending
the packet to a particular router representing the "next
hop" on the way to the final destination. When a router receives an
incoming packet, it checks the destination address and attempts to
associate this address with a next hop. Figure 5-1 depicts a sample
destination/next hop routing table.
Figure 5-1: Destination/next
hop associations determine the data's optimal path.

Routing tables also
can contain other information, such as data about the desirability of a
path. Routers compare metrics to determine optimal routes, and these
metrics differ depending on the design of the routing algorithm used. A
variety of common metrics will be introduced and described later in this
chapter.
Routers communicate with one another and
maintain their routing tables through the transmission of a variety of
messages. The ro uting
update message is one such message that
generally consists of all or a portion of a routing table. By analyzing
routing updates from all other routers, a router can build a detailed
picture of network topology. A link-state
advertisement,
another example of a message sent between routers, informs other routers
of the state of the sender's links. Link information also can be used to
build a complete picture of topology to enable routers to determine
optimal routes to network destinations.
Switching algorithms
are relatively
simple and are basically the same for most routing protocols. In most
cases, a host determines that it must send a packet to another host.
Having acquired a router's address by some means, the source host sends
a packet addressed specifically to a router's physical (Media Access
Control [MAC]-layer) address, this time with the protocol (network-
layer) address of the destination host.
As it examines the packet's destination
protocol address, the router determines that it either knows or does not
know how to forward the packet to the next hop. If the router does not
know how to forward the packet, it typically drops the packet. If the
router knows how to forward the packet, it changes the destination
physical address to that of the next hop and transmits the packet.
The next hop may, in fact, be the
ultimate destination host. If not, the next hop is usually another
router, which executes the same switching decision process. As the
packet moves through the internetwork, its physical address changes, but
its protocol address remains constant, as illustrated in Figure
5-2 .
The preceding discussion describes
switching between a source and a destination end system. The International
Organization for Standardization (ISO) has developed a
hierarchical terminology that is useful in describing this process.
Using this terminology, network devices without the capability to
forward packets between subnetworks are called end systems (ESs),
whereas network devices with these capabilities are called intermediate
systems (ISs). ISs are further divided into those that can
communicate within routing domains (intradomain
ISs) and those that communicate both within and
between routing domains (interdomain ISs).
A routing domain
generally is considered to be a portion of an internetwork under common
administrative authority that is regulated by a particular set of
administrative guidelines. Routing domains are also called autonomous
systems. With certain protocols, routing domains can be divided
into routing
areas, but intradomain routing protocols are still used for
switching both within and between areas.
Figure 5-2: Numerous
routers may come into play during the switching process.

Routing algorithms can be differentiated
based on several key characteristics. First, the particular goals of the
algorithm designer affect the operation of the resulting routing
protocol. Second, various types of routing algorithms exist, and each
algorithm has a different impact on network and router resources.
Finally, routing algorithms use a variety of metrics that affect
calculation of optimal routes. The following sections analyze these
routing algorithm attributes.
Routing algorithms often have one or more
of the following design goals:
- Optimality
- Simplicity and low overhead
- Robustness and stability
- Rapid convergence
- Flexibility
Optimality refers to the
capability of the routing algorithm to select the best route, which
depends on the metrics and metric weightings used to make the
calculation. One routing algorithm, for example, may use a number of
hops and delays, but may weight delay more heavily in the calculation.
Naturally, routing protocols must define their metric calculation
algorithms strictly.
Routing algorithms also are designed to
be as simple as possible. In other words, the routing algorithm must
offer its functionality efficiently, with a minimum of software and
utilization overhead. Efficiency is particularly important when the
software implementing the routing algorithm must run on a computer with
limited physical resources.
Routing algorithms must be robust, which
means that they should perform correctly in the face of unusual or
unforeseen circumstances, such as hardware failures, high load
conditions, and incorrect implementations. Because routers are located
at network junction points, they can cause considerable problems when
they fail. The best routing algorithms are often those that have
withstood the test of time and have proven stable under a variety of
network conditions.
In addition, routing algorithms must converge
rapidly. Convergence is the process of agreement, by all routers, on
optimal routes. When a network event causes routes either to go down or
become available, routers distribute routing update messages that
permeate networks, stimulating recalculation of optimal routes and
eventually causing all routers to agree on these routes. Routing
algorithms that converge slowly
can cause routing loops or network outages.
In the routing loop displayed in Figure
5-3, a packet arrives
at Router 1 at time t1. Router 1 already has been updated and thus knows
that the optimal route to the destination calls for Router 2 to be the
next stop. Router 1 therefore forwards the packet to Router 2, but
because this router has not yet been updated, it believes that the
optimal next hop is Router 1. Router 2 therefore forwards the packet
back to Router 1, and the packet continues to bounce back and forth
between the two routers until Router 2 receives its routing update
or until the packet has been switched the maximum number of times
allowed.
Figure 5-3: Slow
convergence and routing loops can hinder progress.

Routing algorithms should also be
flexible, which means that they should quickly and accurately adapt to a
variety of network circumstances. Assume, for example, that a network
segment has gone down. As they become aware of the problem, many routing
algorithms will quickly select the next-best path for all routes
normally using that segment. Routing algorithms can be programmed to
adapt to changes in network bandwidth, router queue size, and network
delay, among other variables.
Algorithm Types
Routing algorithms can be classified by
type. Key differentiators include:
- Static versus dynamic
- Single-path versus multi-path
- Flat versus hierarchical
- Host-intelligent versus
router-intelligent
- Intradomain versus interdomain
- Link state versus distance vector
Static routing algorithms are hardly
algorithms at all, but are table mappings established by the network
administrator prior to the beginning of routing. These mappings do not
change unless the network administrator alters them. Algorithms that use
static routes are simple to design and work well in environments where
network traffic is relatively predictable and where network design is
relatively simple.
Because static routing systems cannot
react to network changes, they generally are considered unsuitable for
today's large, changing networks. Most of the dominant routing
algorithms in the 1990s are dynamic routing algorithms, which adjust to
changing network circumstances by analyzing incoming routing update
messages. If the message indicates that a network change has occurred,
the routing software recalculates routes and sends out new routing
update messages. These messages permeate the network, stimulating
routers to rerun their algorithms and change their routing tables
accordingly.
Dynamic routing algorithms can be
supplemented with static routes where appropriate. A router
of last resort (a router to which all unroutable packets are sent),
for example, can be designated to act as a repository for all unroutable
packets, ensuring that all
messages are at least handled in some way.
Some sophisticated routing protocols
support multiple paths to the same destination. Unlike single-path
algorithms, these multipath algorithms permit traffic multiplexing over
multiple lines. The advantages of multipath algorithms are obvious: They
can provide substantially better throughput and reliability.
Some routing algorithms
operate in a flat space, while others use routing hierarchies. In a flat
routing system, the routers are peers of all others. In a hierarchical
routing system, some routers form what amounts to a routing backbone.
Packets from non-backbone routers travel to the backbone routers, where
they are sent through the backbone until they reach the general area of
the destination. At this point, they travel from the last backbone
router through one or more non-backbone routers to the final
destination.
Routing systems often designate logical
groups of nodes, called domains,
autonomous systems, or areas.
In hierarchical systems, some routers in a domain can communicate with
routers in other domains, while others can communicate only with routers
within their domain. In very large networks, additional hierarchical
levels may exist, with routers at the highest hierarchical level forming
the routing backbone.
The primary advantage of hierarchical
routing is that it mimics the organization of most companies and
therefore supports their traffic patterns well. Most network
communication occurs within small company groups (domains). Because
intradomain routers need to know only about other routers within their
domain, their routing algorithms can be simplified, and, depending on
the routing algorithm being
used, routing update traffic can be reduced accordingly.
Some routing algorithms assume that the
source end-node will determine the entire route. This is usually
referred to as source routing.
In source-routing systems, routers merely act as store-and-forward
devices, mindlessly sending the packet to the next stop.
Other algorithms assume that hosts know
nothing about routes. In these algorithms, routers determine the path
through the internetwork based on their own calculations. In the first
system, the hosts have the routing intelligence. In the latter system,
routers have the routing
intelligence.
The trade-off between host-intelligent
and router-intelligent routing is one of path optimality versus traffic
overhead. Host-intelligent systems choose the better routes more often,
because they typically discover all possible routes to the destination
before the packet is actually sent. They then choose the best path based
on that particular system's definition of "optimal." The act
of determining all routes, however, often requires substantial discovery
traffic and a significant amount of time.
Some routing algorithms work only within
domains; others work within and between domains. The nature of these two
algorithm types is different. It stands to reason, therefore, that an
optimal intradomain-
routing algorithm would not necessarily be an optimal interdomain-
routing algorithm.
Link- state algorithms (also known as shortest
path first algorithms) flood routing information
to all nodes in the internetwork. Each router, however, sends only the
portion of the routing table that describes the state of its own links.
Distance- vector algorithms (also known as Bellman-Ford
algorithms) call for each router to send all or some portion of its
routing table, but only to its neighbors. In essence, link- state
algorithms send small updates everywhere, while distance- vector
algorithms send larger updates only to neighboring routers.
Because they converge more quickly, link-
state algorithms are somewhat less prone to routing loops than distance-
vector algorithms. On the other hand, link- state algorithms require
more CPU power and memory than distance- vector algorithms.
Link-state algorithms, therefore, can be more expensive to implement and
support. Despite their differences, both algorithm types perform well in
most circumstances.
Routing tables contain information
used by switching software to select the best route. But how,
specifically, are routing tables built? What is the specific nature of
the information they contain? How do routing algorithms determine that
one route is preferable to others?
Routing algorithms have used many
different metrics
to determine the best route. Sophisticated routing algorithms can base
route selection on multiple metrics, combining them in a single (hybrid)
metric. All the following metrics have been used:
Path
Length
Reliability
Delay
Bandwidth
Load
Communication
Cost
Path
length is the most common routing metric. Some routing protocols
allow network administrators to assign arbitrary costs to each network
link. In this case, path length is the sum of the
costs associated with each link traversed. Other routing protocols
define hop
count, a metric that specifies the number of passes through
internetworking products, such as routers, that a packet must take en
route from a source to a destination.
Reliability, in the context
of routing algorithms, refers
to the dependability (usually described in terms of the bit-error rate)
of each network link. Some network links might go down more often than
others. After a network fails, certain network links might be repaired
more easily or more quickly than other links. Any reliability factors
can be taken into account in the assignment of the reliability ratings,
which are arbitrary numeric values usually assigned to network links by
network administrators.
Routing delay
refers to the length of time required to move a packet from source to
destination through the internetwork. Delay depends on many factors,
including the bandwidth of intermediate network links, the port queues
at each router along the way, network congestion on all intermediate
network links, and the physical distance to be travelled. Because delay
is a conglomeration of several important variables, it is a common and
useful metric.
Bandwidth refers to the available traffic
capacity of a link. All other things being equal, a 10-Mbps Ethernet
link would be preferable to a 64-kbps leased line. Although bandwidth
is a rating of the maximum attainable throughput on a link, routes
through links with greater bandwidth do not necessarily provide better
routes than routes through slower links. If, for example, a faster link
is busier, the actual time required to send a packet to the destination
could be greater.
Load refers to the degree to
which a network
resource, such as a router, is busy. Load can be calculated in a variety
of ways, including CPU utilization and packets processed per second.
Monitoring these parameters on a continual basis can be
resource-intensive itself.
Communication cost is another important
metric, especially because some companies may not care about performance
as much as they care about operating expenditures. Even though line
delay may be longer, they will send packets over their own lines rather
than through the
public lines that cost money for usage time.
Routed protocols are transported
by routing protocols across an internetwork. In general,
routed protocols in this context also are referred to as network
protocols. These network protocols perform a variety of functions
required for communication between user applications in source and
destination devices, and these functions can differ widely among
protocol suites. Network protocols occur at the upper four layers of the
OSI reference model: the transport layer, the session layer, the
presentation layer, and the application layer.
Confusion about the terms routed
protocol and routing protocol is common. Routed protocols are
protocols that are routed over an internetwork. Examples of such
protocols are the Internet Protocol (IP), DECnet, AppleTalk,
Novell NetWare, OSI, Banyan VINES, and Xerox
Network System (XNS). Routing protocols, on the other hand, are
protocols that implement routing algorithms. Put simply, routing
protocols direct protocols through an internetwork. Examples of these
protocols include Interior Gateway Routing Protocol (IGRP), Enhanced
Interior Gateway Routing Protocol (Enhanced IGRP),
Open Shortest Path First (OSPF), Exterior Gateway Protocol (EGP),
Border Gateway Protocol (BGP), Intermediate System to
Intermediate System (IS-IS), and Routing Information Protocol
(RIP). Routed and routing protocols are discussed in detail
later in this book.
Get
this document in PDF form


|