0% found this document useful (0 votes)
57 views6 pages

Network Layer: Routing Algorithms Network Layer: Routing Algorithms (Cont.)

1) Network routing algorithms determine the optimal path for packets to travel between source and destination nodes. Common algorithms include distance-vector and link-state. 2) Distance-vector routing involves each router sharing its entire network view with neighboring routers periodically. Routers determine the next hop and cost to reach destinations. 3) Link-state routing involves each router sharing its local neighborhood with all routers. This information is then flooded through the network, allowing each router to construct an accurate network map. Link-state converges faster than distance-vector routing.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
57 views6 pages

Network Layer: Routing Algorithms Network Layer: Routing Algorithms (Cont.)

1) Network routing algorithms determine the optimal path for packets to travel between source and destination nodes. Common algorithms include distance-vector and link-state. 2) Distance-vector routing involves each router sharing its entire network view with neighboring routers periodically. Routers determine the next hop and cost to reach destinations. 3) Link-state routing involves each router sharing its local neighborhood with all routers. This information is then flooded through the network, allowing each router to construct an accurate network map. Link-state converges faster than distance-vector routing.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Network Layer: Routing Algorithms Network Layer: Routing Algorithms (cont.

)
• routing algorithm = logic a router uses to decide, for each incoming Packet, which • least-cost routing:
output link the Packet should be transmitted on • a value is assigned to each link in the network: this is the cost of using this link
• datagram packet-switching: this decision must be made for every Packet • the cost of a route is the combination of the values of its links
• virtual circuit packet-switching: routing decisions made only at v.c. set-up • the best route is the one with the lowest cost ⇒ know how to relay incoming Packets
• desirable properties of a routing algorithm: • cost assigned to a link could be:
• correctness, simplicity, efficiency – obviously • 1 for each link – finds route with the fewest hops
• robustness – since usually the entire network can’t be “re-booted” !!! • (financial) cost of using the link – finds cheapest route
• packet delay on the link – finds minimum-delay route
• stability – routing algorithm reaches equilibrium in a reasonable time
• packet transmission time on the link – finds maximum-bandwidth route
• fairness, optimality • …or some combination of these, or other factors !
– often in conflict, e.g.
link capacities • routing algorithms can be divided into 2 classes:
fully utilised by • nonadaptive, or static – routing decisions are pre-determined and not based on
A-A’, B-B’, C-C’ measurements (or estimates) of the current network topology and traffic load
traffic respectively • adaptive – routing decisions may be changed when network topology and/or
• optimality – with respect to what ? What are we trying to optimise ?! traffic load changes
• average Packet delay ? total Packet throughput ? • extreme case: select a new route for each Packet
• but these goals are also in conflict: operating any network near capacity • may get information just from neighbouring routers, or from all routers
implies long queueing delays in node buffers • may re-determine routes periodically, or when topology changes, or when
• compromise – minimise number of relays (or hops) a Packet needs 1
traffic load changes more than a threshold percentage, or… 2

Network Layer: Routing Algorithms (cont.) Network Layer: Distance-Vector routing


• once the “cost” of each link is known, the routers can run a routing algorithm to • cost = 1 for every link ⇒ finds minimum-hop routes
determine the best routes for each possible sender-receiver transmission
• in practice: routing algorithm should be adaptive and de-centralised
• the 2 most common routing algorithms are distance-vector and link-state
• distance-vector: each router exchanges information about the entire network
with neighbouring routers at regular intervals
• neighbouring routers = connected by a direct link (e.g. a LAN)
• regular intervals: e.g. every 30 seconds
• link-state: each router exchanges information about its neighbourhood with
all routers in the network when there is a change
• neighbourhood of a router = set of neighbour routers for this router
• each router’s neighbourhood information is flooded through the network
• change: e.g. if a neighbouring router does not reply to a status message
• link-state converges faster in practice, so more widely used • “clouds” represent LANs; number in cloud represents network ID
• converges = determines optimal routes, given a particular network topology • A, B, C, D, E, F are routers (or gateways)

3 4
Network Layer: Distance-Vector routing (cont.) Network Layer: Distance-Vector routing (cont.)
• each router sends its information about the entire network only to its neighbours: • each router stores information about the network in its routing table
Network ID = final destination of Packet
Cost = number of hops from this router to
final destination
Next Hop = neighbouring router to which
Packet should be sent
• initially, all a router
knows is the network
IDs of the networks
to which it is directly
connected

initial routing
• how do non-neighbouring routers learn about each other and share information ? table exchanges
• a router sends its information to its neighbours; each neighbour router adds (no multi-hop
routes yet)
this information to its own, and sends the updated information to its
neighbours; so first router learns about its neighbours’ neighbours, ... 5 6

Network Layer: Distance-Vector routing (cont.) Network Layer: Distance-Vector routing (cont.)
• how is a router’s routing table updated when new information is received ? • example of routing table update algorithm (unrelated to earlier Example network):
keep the entry
with lowest cost

because B is
1 hop from A

• routing table update algorithm (distributed Bellman-Ford algorithm):


• add 1 to cost of each incoming route (since each neighbour is 1 hop away)
• if a new destination learned, add its information to the routing table
• if new information received on an existing destination: Note: no new information about Net1 received,
• if Next Hop field is the same, replace existing entry with the new so its entry in the routing table is not updated
information even if the cost is greater (“new information invalidates old”)
• if Next Hop field is not the same, only replace existing entry with the
new information if the cost is lower 7 8
Network Layer: Distance-Vector routing (cont.) Network Layer: Distance-Vector routing in practice
• final (converged) routing tables for earlier Example network: • original ARPANET (forerunner of the Internet) used distance-vector routing
• subsequently used in the Internet as RIP (Routing Information Protocol)
• a variation of distance-vector routing is used in BGP (Border Gateway
Protocol), which finds routes from one autonomous system (AS) to another AS
• AS = a part of the Internet (e.g. a network) managed by one entity
• link cost can be something other than 1 for each link…
• e.g. packet delay, number of packets queued, …
• problem with distance-vector routing: count-to-infinity problem
• this refers to the slow convergence of distance-vector routing algorithms
under some conditions
• basic flaw – slow reaction to link/router failure because information only
comes from neighbouring routers and it may be out-of-date (e.g. it may not
properly reflect the impact of the failure on route costs)
Note: choice between • many ad-hoc solutions have been tried (e.g. “split horizon”), but either they
equal-cost routes also fail to solve the count-to-infinity problem, or they are hard to implement
depends on exact • this slow convergence was one of the main reasons why other types of
sequence of updates routing algorithm were explored, leading to link-state routing
9 10

Network Layer: Link-State routing Network Layer: Link-State routing (cont.)


• each router sends information about its neighbourhood to every other router: • link cost is usually a weighted sum of various factors
• e.g. traffic level, security level, packet delay, …
• link cost is from a router to the network connecting it to another router
• when a packet is in a LAN (which is typically a broadcast network), every
node – including the router – can receive it ⇒ no cost assigned when going
from a network to a router
Note: costs shown
are examples only

11 12
Network Layer: Link-State routing (cont.) Network Layer: Link-State routing (cont.)
• routers share information by advertising, which means sending link-state packets: • every router builds a link-state packet and floods it through the network, so when
all such packets have been received at a router, it can build its link-state database:
Advertiser: ID of sending router
Network: ID of destination network
Cost: link cost to neighbour
Neighbour: ID of neighbour router Assuming that every router
• a router gets its information about its neighbourhood by sending short ECHO receives the same set of
link-state packets (as if the
packets to its neighbours and monitoring the responses:
routers were synchronised),
every router builds the same
link-state database.

Using this database, each


router can then calculate
its routing table.
the Figure shows
how router A’s
link-state packet
is flooded to all
other routers
13 14

Network Layer: Link-State routing (cont.) Network Layer: Link-State routing – Dijkstra’s algorithm
• to calculate its routing table, a router uses Dijkstra’s Shortest-Path algorithm • this algorithm builds a shortest-path spanning tree for the router: such a tree has a
• first, identify all link costs in the network: either from the link-state database, route to all possible destinations, and no loops
or using the fact that the cost of any link from a network to a router is 0 • the router running the algorithm is the root of its shortest-path spanning tree
• even if all routers’ link-state databases are identical, the trees determined by
the routers are different (since the root of each tree is different)
• a node is either a network or a router; nodes are connected by arcs
• the algorithm keeps track of 2 sets of nodes and arcs – Temporary and Permanent
• initially, the Temporary set contains all neighbour nodes of the router itself,
and the arcs connecting them to the router; only the router is initially Permanent
• when all nodes and arcs are in the Permanent set, the algorithm has terminated
identify the Temporary node whose arc has the lowest cumulative cost from the root:
this node and arc are moved into the Permanent set;
any nodes which are connected to the new Permanent node and are not already in the
Temporary set, along with the connecting arcs, are made Temporary. Also, if any node
already in the Temporary set has a lower cumulative cost from the root by using a route
passing through the new Permanent node, then this new route replaces the existing one;
15 repeat until all nodes and arcs are Permanent. 16
Network Layer: Link-State routing – Dijkstra’s algorithm (cont.) Network Layer: Link-State routing – Dijkstra’s algorithm (cont.)
• as an Example, let’s follow the steps of the algorithm run by router A
4.
Note: arcs are
1. 2. marked with their
cumulative cost
from the root (not
individual costs)

5.
3.
Note: arcs are
marked with their
cumulative cost
from the root (not Note: equal cumulative costs ⇒
individual costs) choose one arbitrarily in step 6
17 18

Network Layer: Link-State routing – Dijkstra’s algorithm (cont.) Network Layer: Link-State routing – Dijkstra’s algorithm (cont.)

6. 8.
Note: arcs are Note: arcs are
marked with their marked with their
cumulative cost cumulative cost
from the root (not from the root (not
individual costs) individual costs)

7. 9.

19 20
Network Layer: Link-State routing – Dijkstra’s algorithm (cont.) Network Layer: Link-State routing – Dijkstra’s algorithm (cont.)

10. 12.
Note: arcs are Note: arcs are
marked with their marked with their
cumulative cost cumulative cost
from the root (not from the root (not
individual costs) individual costs)

11. 13.

all nodes and arcs are


if the new arc to network 66 from Permanent ⇒ STOP:
router D had a lower cumulative cost this router’s shortest-path
than the one from router C, then spanning tree has been found
the new link would replace the old one
21 22

Network Layer: Link-State routing – routing table Network Layer: Link-State routing in practice
• once a router has found its shortest-path spanning tree, it can build its routing table • link-state routing algorithms have several desirable properties, e.g. rapid convergence; small
• to complete the Example, here is router A’s link-state routing table: amount of traffic generated; rapid response to topology changes
• examples from the Internet are the Open Shortest Path First (OSPF) and Intermediate
System to Intermediate System (IS-IS) routing protocols
Note: each router’s routing table
will (in general) be different • link costs can be configured in OSPF. Possible link costs include:
! 1 for each link
Networks 14, 23, and 78 don’t have ! reliability: assigned by administrator, indicates how often the link fails
a “Next router” entry because they ! packet delay
are directly connected to this router ! link bandwidth
! financial cost of the link
• OSPF requires a lot of memory: each router holds its routing table & link-state database

• in large networks, the memory required to store the link-state database and the • Dijkstra’s algorithm computations are processor-intensive
computation time to calculate the link-state routing table can be significant ! legacy routers may be unable to relay packets when these calculations are taking
place – which could be every time a link-state packet is received
• in practice, since the link-state packet receptions are not synchronised, routers may • OSPF can consume a lot of bandwidth if the network topology changes often
be using different link-state databases to build their routing tables: how inaccurate
the results are depends on how different the routers’ “views” of the network are • link-state packets sent to all routers using reliable flooding
23
! need sequence number and time-to-live (TTL) field in each packet… 24

You might also like