User Contributed Dictionary
Alternative spellings
- routeing (UK), for sense 2
Pronunciation
- /ɹuːtɪŋ/
Noun
- a method of finding paths from origins to destinations in a network such as the Internet, along which information can be passed
- cutting a channel in a material such as wood using a router
Translations
a method of finding paths from origins to
destinations in a network such as the Internet
- Finnish: reititys
cutting a channel in a material such as wood
using a router
- Finnish: jyrsintä
Extensive Definition
Routing (or routeing) is the process of selecting
paths in a network along
which to send data or physical traffic. Routing is performed for
many kinds of networks, including the telephone network, the
Internet,
and transport
networks.
Routing directs forwarding,
the passing of logically addressed packets from their source toward
their ultimate destination through intermediary nodes;
typically hardware devices called routers, bridges,
gateways,
firewalls, or switches.
Ordinary computers with multiple network
cards can also forward packets and perform routing, though they
are not specialized hardware and may suffer from limited
performance. The routing process usually directs forwarding on the
basis of routing
tables which maintain a record of the routes to various network
destinations. Thus constructing routing tables, which are held in
the routers' memory,
becomes very important for efficient routing.
Routing, in a more narrow sense of the term, is
often contrasted with bridging
in its assumption that network
addresses are structured and that similar addresses imply
proximity within the network. Because structured addresses allow a
single routing table entry to represent the route to a group of
devices, structured addressing (routing, in the narrow sense)
outperforms unstructured addressing (bridging) in large networks,
and has become the dominant form of addressing on the Internet, though
bridging is still widely used within localized environments.
Delivery semantics
Routing schemes differ in their delivery semantics:- unicast delivers a message to a single specified node;
- broadcast delivers a message to all nodes in the network;
- multicast delivers a message to a group of nodes that have expressed interest in receiving the message;
- anycast delivers a message to any one out of a group of nodes, typically the one nearest to the source.
Unicast is the dominant form of message delivery
on the Internet, and this article focuses on unicast routing
algorithms.
Topology distribution
Small networks may involve manually configured
routing tables, while larger networks involve complex topologies
and may change rapidly, making the manual construction of routing
tables unfeasible. Nevertheless, most of the
public switched telephone network (PSTN) uses pre-computed
routing tables, with fallback routes if the most direct route
becomes blocked; see routing
in the PSTN. Dynamic routing attempts to solve this problem by
constructing routing tables automatically, based on information
carried by routing
protocols, and allowing the network to act nearly autonomously
in avoiding network failures and blockages.
Dynamic routing dominates the Internet. However,
the configuration of the routing protocols often requires a skilled
touch; one should not suppose that networking technology has
developed to the point of the complete automation of routing.
Distance vector algorithms
Distance vector algorithms use the Bellman-Ford algorithm. This approach assigns a number, the cost, to each of the links between each node in the network. Nodes will send information from point A to point B via the path that results in the lowest total cost (i.e. the sum of the costs of the links between the nodes used).The algorithm operates in a very simple manner.
When a node first starts, it only knows of its immediate
neighbours, and the direct cost involved in reaching them. (This
information, the list of destinations, the total cost to each, and
the next hop to send data to get there, makes up the routing
table, or distance table.) Each node, on a regular basis, sends
to each neighbour its own current idea of the total cost to get to
all the destinations it knows of. The neighbouring node(s) examine
this information, and compare it to what they already 'know';
anything which represents an improvement on what they already have,
they insert in their own routing table(s). Over time, all the nodes
in the network will discover the best next hop for all
destinations, and the best total cost.
When one of the nodes involved goes down, those
nodes which used it as their next hop for certain destinations
discard those entries, and create new routing-table information.
They then pass this information to all adjacent nodes, which then
repeat the process. Eventually all the nodes in the network receive
the updated information, and will then discover new paths to all
the destinations which they can still "reach".
Link-state algorithms
When applying link-state algorithms, each node uses as its fundamental data a map of the network in the form of a graph. To produce this, each node floods the entire network with information about what other nodes it can connect to, and each node then independently assembles this information into a map. Using this map, each router then independently determines the least-cost path from itself to every other node using a standard shortest paths algorithm such as Dijkstra's algorithm. The result is a tree rooted at the current node such that the path through the tree from the root to any other node is the least-cost path to that node. This tree then serves to construct the routing table, which specifies the best next hop to get from the current node to any other node.Path vector protocol
Distance vector and link state routing are both
intra-domain routing protocols. They are used inside an
autonomous system, but not between autonomous systems. Both of
these routing protocols become intractable in large networks and
cannot be used in Inter-domain
routing. Distance vector routing is subject to instability if there
are more than few hops in the domain. Link state routing needs huge
amount of resources to calculate routing tables. It also creates
heavy traffic because of flooding.
Path vector routing is used for inter-domain
routing. It is similar to Distance vector routing. In path vector
routing we assume there is one node (there can be many) in each
autonomous system which acts on behalf of the entire autonomous
system. This node is called the speaker node. The speaker node
creates a routing table and advertises it to neighboring speaker
nodes in neighboring autonomous systems. The idea is the same as
Distance vector routing except that only speaker nodes in each
autonomous system can communicate with each other. The speaker node
advertises the path, not the metric of the nodes, in its autonomous
system or other autonomous systems. Path vector routing is
discussed in RFC 1322; the path vector routing algorithm is
somewhat similar to the distance vector algorithm in the sense that
each border router advertises the destinations it can reach to its
neighboring router. However, instead of advertising networks in
terms of a destination and the distance to that destination,
networks are advertised as destination addresses and path
descriptions to reach those destinations. A route is defined as a
pairing between a destination and the attributes of the path to
that destination, thus the name, path vector routing, where the
routers receive a vector that contains paths to a set of
destinations. The path, expressed in terms of the domains (or
confederations) traversed so far, is carried in a special path
attribute that records the sequence of routing domains through
which the reachability information has passed. The path represented
by the smallest number of domains becomes the preferred path to
reach the destination.
Comparison of routing algorithms
Distance-vector routing protocols are simple and efficient in
small networks, and require little, if any management. However,
naïve distance-vector algorithms do not scale
well (due to the
count-to-infinity problem), and have poor convergence
properties.
This has led to the development of more complex
but more scalable algorithms for use in large networks. Interior
routing mostly uses
link-state routing protocols such as OSPF and IS-IS.
A more recent development is that of loop-free
distance-vector
protocols (e.g. EIGRP). Loop-free
distance-vector protocols are as robust and manageable as
distance-vector protocols, while avoiding counting to infinity and
hence having good worst-case convergence times.
Path selection
A routing metric is a value used by a routing
algorithm to determine whether one route should perform better than
another. Metrics can cover such information as bandwidth, delay, hop count, path
cost, load, MTU,
reliability, and communication cost (see e.g. this survey for
a list of proposed routing metrics). The routing table stores only
the best possible routes, while link-state or
topological databases may store all other information as
well.
As a routing metric is specific to a given
routing protocol, multi-protocol routers must use some external
heuristic in order to select between routes learned from different
routing protocols. Cisco's routers, for
example, attribute a value known as the administrative
distance to each route, where smaller administrative distances
indicate routes learned from a supposedly more reliable
protocol.
A local network administrator, in special cases,
can set up host-specific routes to a particular machine which
provides more control over network usage, permits testing and
better overall security. This can come in handy when required to
debug network connections or routing tables.
Multiple agents
In some networks, routing is complicated by the
fact that no single entity is responsible for selecting paths:
instead, multiple entities are involved in selecting paths or even
parts of a single path. Complications or inefficiency can result if
these entities choose paths to selfishly optimize their own
objectives, which may conflict with the objectives of other
participants.
A classic example involves traffic in a road
system, in which each driver selfishly picks a path which minimizes
her own travel time. With such selfish routing, the equilibrium
routes can be longer than optimal for all drivers. In particular,
Braess'
paradox shows that adding a new road can lengthen travel times
for all drivers.
The Internet is partitioned into
autonomous systems (ASs) such as internet
service providers (ISPs), each of which has control over routes
involving its network, at multiple levels. First, AS-level paths
are selected via the BGP
protocol, which produces a sequence of ASs through which packets
will flow. Each AS may have multiple paths, offered by neighboring
ASs, from which to choose. Its decision often involves business
relationships with these neighboring ASs, which may be unrelated to
path quality or latency. Second, once an AS-level path has been
selected, there are often multiple corresponding router-level paths, in part
because two ISPs may be connected in multiple locations. In
choosing the single router-level path, it is common practice for
each ISP to employ hot-potato
routing: sending traffic along the path that minimizes the
distance through the ISP's own network—even if that path lengthens
the total distance to the destination.
Consider two ISPs, A and B, which each have a
presence in New York,
connected by a fast link with latency 5 ms; and which each have a
presence in London connected by
a 5 ms link. Suppose both ISPs have trans-Atlantic links connecting
their two networks, but As link has latency 100 ms and B's has
latency 120 ms. When routing a message from a source in As London
network to a destination in Bs New York network, A may choose to
immediately send the message to B in London. This saves A the work
of sending it along an expensive trans-Atlantic link, but causes
the message to experience latency 125 ms when the other route would
have been 20 ms faster.
A 2003 measurement study
of Internet routes found that, between pairs of neighboring ISPs,
more than 30% of paths have inflated latency due to hot potato
routing, with 5% of paths being delayed by at least 12 ms.
Inflation due to AS-level path selection, while substantial, was
attributed primarily to BGP's lack of a mechanism to directly
optimize for latency, rather than to selfish routing policies. It
was also suggested that, were an appropriate mechanism in place,
ISPs would be willing to cooperate to reduce latency rather than
use hot-potato routing.
- Adaptive routing
- Alternative-path routing
- Deflection routing
- Edge Disjoint Shortest Pair Algorithm
- Dijkstra's Algorithm
- Fuzzy routing
- Geographic routing
- Hierarchical routing
- Multi-path routing
- Overlay
network routing schemes
- Key based routing (KBR)
- Decentralized object location and routing (DOLR)
- Group anycast and multicast (CAST)
- Distributed hash table (DHT)
- Policy-based routing
- Quality of Service in routing
- Static routing
- Backward learning routing
Routing in specific networks
- Route assignment in transportation networks
- National Routeing Guide: passenger routing in the UK rail network
- Routing in the PSTN
Routing protocols
- Routing protocol
- Classless inter-domain routing (CIDR)
- MPLS routing
- ATM routing
- RPSL
Alternative Methods for Network Data Flow
References
- Dynamic Routing in Telecommunication Networks
- Routing TCP/IP, Volume I, Second Ed. Ciscopress ISBN 1587052024
- Routing TCP/IP, Volume II, Ciscopress ISBN 1578700892
- Routing in the Internet, Second Ed.
- Computer Networking, Third Ed.
- Network Routing: Algorithms, Protocols, and Architectures
External links
- Count-To-Infinity Problem
- "Stability Features" are ways of avoiding the "count to infinity" problem.
- Cisco IT Case Studies about Routing and Switching
routing in Afrikaans: Roetebepaling
routing in Arabic: التسيير (علم الشبكات)
routing in Bulgarian: Маршрутизация
routing in Czech: Směrování
routing in Pennsylvania German: Routing
routing in German: Routing
routing in Modern Greek (1453-):
Δρομολόγηση
routing in Spanish: Encaminamiento
routing in Basque: Bideratze-algoritmo
routing in Persian: ردیابی (رایانه)
routing in French: Routage
routing in Irish: Ródú
routing in Indonesian: Routing
routing in Italian: Instradamento
routing in Hebrew: ניתוב
routing in Macedonian: Рутирање
routing in Japanese: ルーティング
routing in Polish: Routowanie
routing in Portuguese: Encaminhamento
routing in Romanian: Rutare
routing in Russian: Маршрутизация
routing in Finnish: Reititys
routing in Swedish: Routing
routing in Vietnamese: Routing
routing in Turkish: Routing
routing in Ukrainian: Динамічна адаптивна
маршрутизація
routing in Wu Chinese: 路由
routing in Chinese: 路由