Title: CS4550: Computer Networks II network layer basics 3 routing
1CS4550Computer Networks IInetwork layer
basics 3routing congestion control
2basic routing techniques
- fixed
- random
- flooding
- adaptive
- routing in ARPAnet
- distance vector
- link state
- optimal
3basic routing techniques fixed
- routes between node pairs determined in advance
by network control center or administrator - routing tables loaded into nodes, and are not
changed dynamically - simple, may be best technique for small networks
which do not change often (topology, traffic
patterns - routing more easily controlled
- not responsive to changes in traffic
4basic routing fixed
6
5
9
3
2
7
1
8
4
10
5routing table for node 1
next node
dest
1 2 3 4 5 6 7 8 9 10
- 2 2 4 7 7 7 7 2 4
6basic routing flooding
- send packet to all neighbors, except the one from
which received the packet - should assign packet or ID, to avoid needless
redundant transmissions - should assign hop count/lifetime to packet to
limit needless congestion, distance traveled - advantages
- disadvantages
7routing in ARPAnet 1969-90?
- 1st version
- -distributed Bellman-Ford SP algorithm also
known as distance vector routing - -each node exchanged delay info each 128 ms with
neighbor - -delay info based solely on queue lengths
- -problems excessive overhead, unstable network,
inaccurate delay estimates responded too quickly
to some problems, too slowly to others -
8distance vector routing
- -each node measures distance to adjacent
neighbors - -these distances put into a message
(vector) and sent to neighbors - -distances ( route) to other nodes (not
neighbors) computed by adding the measured
distance to those in received distance vectors - - if dont know, distance is infinity
9distance vector routing
- key assumption that each node knows (can
measure) distance to its neighbors - each node maintains a routing table has 1 entry
for all nodes in the network
dest node next hop distance
10distance vector routing example
12
2
3
10
5
1
18
12
5
4
20
using measured distances shown, show computation
of distance vector tables for each node.
11distance vector routing example
(1)
(2)
2 10 2 3 - - 4
12 4 5 - -
1 10 1 3 12 3 4
- - 5 18 5
initial tables (vectors) for nodes 1 (left) and
2 give initial tables for 3,4,5 then show
computation of tables as vectors are exchanged,
until stable.
12distance vector routing
- works reacts quickly to good news (a new,
shorter route), but reacts slowly to bad news
(router or link down) - count to infinity problem
- split horizon solution, and why it doesnt always
work
13distance vector count to infinity
a
c
e
1
1
2
d
2
b
Suppose node a goes down. Show updating of the
distance vector tables.
14distance vector split horizon
B
A
C
D
what happens if the CD link fails? (assume all
hops have length of 1)
15ARPAnet, 2nd version (1979/80)
- delay measurements much better measured,
averaged actual delay of all packets on the link - updates transmitted only every 10 seconds much
improved stability - switched to link-state routing, and used
Dijkstras SP algorithm - much improved but later, as use of network
approached capacity, more problems surfaced
16Iink state routing
- -each node measures distance to neighbors
- -sends this info to ALL other nodes in the
network (flooding) - -each node constructs a weighted graph of the
network, and - -used Dijkstras SP algorithm to compute
shortest path
17routing metrics, shortest paths
- routing metrics vary widely
- -instantaneous queue length
- -measured time
- -hop count
- -distance
- -capacity (bandwidth), data rate
- getting the shortest path may not really matter
to end user. (How many people count time in
milliseconds?)
18ARPAnet data rates, links
- initially, all ARPAnet links were 56Kbps
telephone lines (digital) - later, higher capacity lines added (T1 lines,
satellite links) - computers faster than networks, then
- data link protocol very close to HDLC
19ARPAnet, 3rd version
- increased use of network led to new problems
- north-south oscillation problem
- true solution -
- multipath routing
- increased capacity
- fix implemented
- damping algorithm
- increase update interval to 17 seconds
20optimal routing
- defined mathematically as routing for which
average delay (distance, or other metric) for
all packets is minimized. - characterized mathematically as a network flow
problem - solution computable, but not efficient algorithm
not useful. However, - light load single SP routing is optimal
- heavier load use more routes to spread out
traffic
21congestion control
- congestion an excessive number of packets in
the network - terms
- congestion control
-
- traffic control
-
- flow control 2 points link/connection level
network level
22congestion - levels
- need to define levels of congestion. Below is a
very rough rule of thumb. - 0 none - no delay experienced
- 1 moderate - experience minimal delay
- 2 heavy - significant delays, but still able to
get packets through - 3 total (deadlocked) - so clogged, cant get
packets through in any reasonable time -
23congestion - levels
- - general guidelines only percentages vary
according to the network protocols, topologies,
and actual distributions of the traffic on the
network - reduction from Max throughput
- 0 none lt20
- 1 moderate 20-50
- 2 heavy 50-70
- 3 total gt 70
24congestion run away
- in packet switched networks, this problem is
exacerbated, because as delay increases, timeouts
occur, causing packet retransmissions, which
cause increased congestion - care must be taken first to avoid congestion,
second, to reduce it when it occurs packet
retransmissions may have the opposite result, of
actually making things worse
25congestion control five basic strategies
- 1 choke packets
- 2 buffer preallocation
- 3 packet discarding
- 4 isarithmetic control
- 5 flow control (covered elsewhere)
26choke packets
- variation of flow control used only when
congestion occurs - 1. each node monitors utilization U of output
lines - 2. if U becomes heavy, a choke packet sent to
hosts sending traffic to that destination - 3. upon receiving choke packet, the sending host
decreases traffic to that destination by X
percent
27choke packets
- 4. host discards other choke packets for that
destination for Y time - 5. After some time, host continues watching for
choke packets if no more come OK, if they do,
reduces output again. - 6. After longer time, if no more choke packets
arrive, again slowly may increase the flow.
MDAI - adds packets to a congested network
28buffer preallocation
- only for VC packet networks
- 1. as call request made, buffer reserved in each
node for the connection if not available, must
find another or refuse. - 2. as data packets transmitted, acks returned
new packets only sent after receiving acks (which
are not sent until packet is in output queue) - completely solves congestion ... at what price?
29packet discarding
- no buffers reserved in advance
- when packets arrive, if no buffer space exists,
discard them - Irlands strategy
- refinements
- discard older packets
- lower priority packets
- packets on more congested links
- check packet for acks before discarding
30isarithmetic control
- keeps total number of packets in network below a
specified limit - whenever a node transmits a packet into the
network, must get a permit for the packet - similar to token for LANs
- several problems
31isarithmetic control
- 1. guarantees network not overloaded but a part
or node could be - 2. how many permits to use? not easy to decide
- 3. what if permits lost? how can we tell?
- 4. in some networks, some packets much larger
than others all use same permit? - 5. not clear that it is fair
- 6. difficult to respond to changing conditions