Title: Spring 2006
1Spring 2006 EE 5304/EETS 7304 Internet Protocols
Lecture 4 Bridges
Tom Oh Dept of Electrical Engineering taehwan_at_engr
.smu.edu
2Administrative Issues
- I have posted the download instruction for Cygwin
and Putty today. Cygwins download instruction
is outdated but I think that you can follow the
instruction. - I will try to list the page numbers from our text
book relevant to each topic - I will post the second home this week.
3Outline
- Bridges (Pg. 164 Comer)
- Transparent learning bridges (Pg. 165 Comer)
4Bridges to Interconnect LANs
- Work at MAC sublayer (data link layer)
- Assuming higher layers are same
- Motivation practically, each LAN may be limited
in number of stations, size, and total bandwidth
5Advantages of Bridges
- Overcome physical constraints users on distant
LANs can communicate, total number of stations
can increase by adding LAN segments - Allows different user communities to have
separate LANs but stay interconnected - In this case, intra-LAN traffic is much more than
inter-LAN - Bridges can monitor and manage each LAN segment
6Advantages (cont)
- More reliable and serviceable
- Fault in a LAN segment can be isolated from other
segments - More security is possible
- Main disadvantage is performance
- Frames going through bridges may be delayed,
lost, misordered, or errored
7Transparent Learning Bridges (IEEE 802.1)
- Function is to make interconnected LANs look like
one LAN to all stations, by store-and-forwarding - Bridge reads all frames on LAN A and stores those
addressed to LAN B - Waits for free channel, retransmits buffered
frames onto B using its MAC protocol - Does same thing from LAN B to LAN A
8Transparent Learning Bridges (cont)
- Advantages
- No extra work or modification is required by
stations (bridge is "transparent") - Both LANs can be transmitting simultaneously
without collision - Filtering is necessary if bridge repeats all
traffic, then both LANs will see combined
traffic, causing bad performance (like a large
LAN) - Performance depends on most traffic staying
intra-LAN
9Transparent Learning Bridges (cont)
- Bridge functions
- Stores frames from LAN and forwards as necessary
- Learns station addresses when stations transmit a
frame - Resolves possible loops in topology through a
spanning tree algorithm - Spanning tree is used to broadcast frames when
destination station has unknown location
10Transparent Learning Bridges (cont)
- Contains routing table (or forwarding database)
11Transparent Learning Bridges (cont)
- Associates an outgoing port for each known
destination station - When frame is received, the dest. address is
looked up in database - If frame arrives on same port as in database,
frame is discarded means already on correct LAN - If frame arrives on different port, frame is
forwarded to specified port - If address is not found, frame is transmitted on
ports determined by spanning tree algorithm
except the port where it was received
12Transparent Learning Bridges (cont)
- Learning algorithm to update routing directory
- For every received frame, bridge records incoming
port and source address - Finds source address in database
- If not there, it is added with incoming port
- If there with different port , then port is
updated - If there with same port , no change
- In all cases, start a timer
- When time-out, then entry is assumed out-of-date
and removed
13Transparent Learning Bridges (cont)
- Spanning tree algorithm to resolve loops (if
loops are possible) - Loops can cause problem in learning algorithm
14Transparent Learning Bridges (cont)
- Station Y sends a frame to station X through two
bridges at time T0 - Bridge A forwards frame to LAN 1, then bridge B
forwards its frame later - Station X gets two copies of frame
- When bridge A forwards frame to LAN 1, bridge B
will think station Y is on LAN 1 (frame contains
source and dest. addresses) - Later, bridge A will think the same when bridge B
forwards frame
15Transparent Learning Bridges (cont)
- By spanning tree algorithm, bridges decide on a
spanning tree to prevent loops
16Wrap Up
- Bridges allow transparent interconnection of LAN
segments - Work at MAC layer
- Transparent learning bridges automatically build
routing tables by learning locations of stations
when they transmit - Spanning tree is used to broadcast frames to
stations with unknown locations
17Spring 2006 EE 5304/EETS 7304 Internet Protocols
Lecture 4
Network layer, routing considerations
Tom Oh Dept of Electrical Engineering taehwan_at_engr
.smu.edu
18Outline
- Network layer
- Routing considerations
19Network Layer (OSI Layer 3)
- hides details of network from applications -
end to end reliability, flow control
Transport
Layer 4
- routing, congestion control, connection control
Network
Layer 3
- hides details of physical layer from network -
adds reliability, synchronization, flow control
Data link
Layer 2
- unguaranteed, unstructured bitstream
transmission
Physical
Layer 1
20Network Layer (cont)
- Network layer uses services of data link layer
(reliable point-to-point transmission between
nodes) and adds packet switching for end-to-end
connectivity - Provides end-to-end delivery of packets as
service to higher transport layer - Can offer connectionless or connection-oriented
service - Establishes and manages connections through
subnet (if connection-oriented)
21Network Layer (cont)
- Determines routes for packets from sender to
destination - Exercises congestion control to maintain network
efficiency during heavy traffic loads - Allows transport layer to send data from host to
host without need to know network details - Unlike other layers, nodes need to share
information among themselves to make decisions - Routing protocol adds complexity
22Network Layer - Issues
- Routing how to select the best route through the
network - Congestion control global problem of too much
traffic for limited resources (vs flow control) - Addressing how to identify hosts and nodes
- Internetworking how to deliver packets across
network of different networks
23Routing Considerations
- Routing determines a path through the network
when more than one path is possible - Sometimes no choice, e.g., no routing in
hierarchical topologies (eg, trees) - 1. Connection-oriented or connectionless?
- Connection-oriented
- Requires computation and set-up of path (virtual
circuit) before any packets are sent - Virtual" because circuit is not reserved
packets from different virtual circuits can share
same path and same physical links
24Routing (cont)
- During set-up, hosts can specify requirements,
eg, bandwidth, max. delay - Network has chance to reject (block) connection
or reserve resources for connection - Each node along route knows next node to forward
packets - Packets of same virtual circuit maintain their
sequential order - Vulnerable to node/link failures
25Routing (cont)
- Connectionless
- Path for each packet (datagram) is computed
independently - No set-up or disconnect phases
- No reservations, so usually "best-effort" type of
network service - More processing nodes make a routing decision
for each datagram - Datagrams may arrive at destination node out of
original sequence - More reliable and adaptive to failures
26Routing (cont)
- 2. Routing algorithm to select best route
according to some criteria - Requires information from other nodes that's
exchanged cooperatively - Complicated by failures and congestion
- Examples of routing algorithms flooding,
deflection routing, random routing, source
routing, least cost (shortest distance) routing
27Routing (cont)
- 3. Issues
- Where are decisions made? each node (hop-by-hop
routing), central node (centralized routing), or
source node (source routing) - Is decision made per packet (datagram) or per
session (virtual circuit)? - Static (routing info. is changed only for
topology changes) or adaptive (routing info. is
changed continuously or periodically) or random?
28Routing (cont)
- Issues (cont)
- How much information is available? none, local
(each node uses own info.), adjacent nodes, or
all nodes (centralized) - What are performance criteria (routing metric)?
number of hops, cost per link, delay,
throughput,...
29Routing (cont)
- 3. Routing tables
- Virtual circuit (connection-oriented)
- Routing table is updated during connection set-up
phase - All packets of same virtual circuit follow same
route - Routing table incoming link and virtual circuit
ID, outgoing link and virtual circuit ID - Why translate virtual circuit ID? global IDs
will limit number of connections, and time
consuming to find unused ID - Advantages no routing decision per packet
packets maintain sequential order - Disadvantages link or node failure can bring
down virtual circuit
30Routing (cont)
IN
OUT
link
VC
link
VC
in-link1
X1 X2
out-link5 out-link2
Y1 Y2
in-link2
W1 W2
out-link4 out-link8
Z1 Z2
31Routing (cont)
- Datagrams (connectionless)
- Route of each packet is decided independently
- Routing table destination, outgoing link or
next node, cost - For given destination, choose outgoing link based
on some cost measure, eg, distance - Advantages adaptability to changing network
conditions (e.g., link or node failures,
congestion) - Disadvantages more processing per packet
sequential order of packets is not maintained
32Routing (cont)
Dest.
Outgoing link
Cost
A
outlink1 outlink2
X1 X2
B
outlink1 outlink2
Y1 Y2
33Routing (cont)
- 4. Routing protocol (or update algorithm)
protocol to share information to update tables - Is routing static or dynamic?
- Update time more frequent is more accurate, but
more overhead - Consistency keep accurate and same information
at all nodes
34Routing (cont)
- 5. Levels of routing
- In large networks (internets), packets may travel
within subnets and between multiple subnets - Autonomous system (TCP/IP terms) or routing
domains (OSI terms) subnetwork or group of
subnetworks under single administration - Nodes in same routing domain are interior routers
or gateways (TCP/IP) or intradomain intermediate
systems - ISs (OSI) - Each has own interior gateway protocol (TCP/IP)
or intradomain IS-IS protocol (OSI)
35Routing (cont)
- Nodes exchange routing information and make
routing decisions-- protocol is determined by
administration - RIP (routing information protocol) earlier and
OSPF (open shortest path first) are widely used - Autonomous systems are connected through exterior
routers or gateways (TCP/IP terms) or interdomain
ISs (OSI terms) - Must conform to a standard protocol for
interconnectivity, eg, BGP (border gateway
protocol)
36Layered Routing
Inter-AS routing
Autonomous systems
Intra-AS routing
37Spring 2006 EE 5304/EETS 7304 Internet Protocols
Routing algorithms
Tom Oh Dept of Electrical Engineering taehwan_at_engr
.smu.edu
38Outline
- Static routing (Comer Pg211, 399 and 400)
- Source routing
- Flooding (Comer Pg. 14)
- Dijkstras algorithm
- Bellman-Ford algorithm
39Static Routing
- Routes are computed once and programmed into
switches routing tables - Routes do not change
- Suitable if network topology and traffic patterns
do not change much
40Source Routing
- Sender decides on route for each packet
- Route is specified within packet header
- Switches read packet header and forward packet
along route - Suitable when sender wants a certain route (e.g.,
for testing) or avoid other routes (e.g.,
competitors networks) - Costs
- Extra fields in packet header
- Processing burden on sender to discover routes
41Flooding
- Flooding is used to broadcast topology changes to
all nodes or when exact location of destination
is unknown - Advantages
- Simple
- Needs no network information or routing tables
- Robust for failure-prone networks
- Shortest path is always found
42Flooding (cont)
- Source node broadcasts packets to all neighbors,
these broadcast to their neighbors, etc. - Various methods to prevent infinite number of
packets - Node does not broadcast packet back on incoming
link - Packet has unique ID (eg, source node number,
sequence number) - If a node receives a duplicate copy, it discards
the packet - Packet keeps hop count
- Discarded when hop count reaches a limit
43Flooding (cont)
- Alternatively, broadcast only along spanning tree
- Spanning tree is subset of connectivity graph
that connects all nodes with no cycles - Spanning tree must be maintained and updated
somehow
44Flooding (cont)
2
2
1
1
3
3
3
2
2
3
A
A
3
2
1
1
3
3
2
2
Flooding by broadcasting
Flooding along spanning tree
45Random routing
- Outgoing link for a packet is chosen randomly
according to set of probabilities - Probabilities could be based on link rate or
other fixed link info. to distribute traffic
uniformly - Simple and requires no network information, but
routes are sub-optimal and looping must be
prevented
46Deflection (Hot Potato) Routing
- Objective is get rid of packets as quickly as
possible, based on only local information - Put outgoing packet on shortest output queue
- Minimizes chance of buffer overflow, but packet
may not get closer to destination node - Can be combined with static routing
- Each packet has assigned link (according to table
lookup) - If more than one packet are contending for same
link, one succeeds, others are deflected
47Least Cost (or Shortest Distance) Routing
- Assume knowledge of entire network
- Network is represented by graph of nodes and
links - Each link has assigned length or more generally
"cost" (eg, function of distance, capacity, load,
delays, etc.) - Objective is find route between
source-destination nodes with smallest total
length or least cost - 2 widely used algorithms
- Dijkstra (link-state routing protocols)
- Bellman-Ford (vector-distance routing protocols)
48Least Cost Routing (cont)
2
2
4
4
3
6
3
A
A
2
2
4
1
1
1
1
3
3
Network graph
Spanning tree representing least-cost routes from
node A to all other nodes
49Dijkstras Algorithm
- Each node has label (X,Y) where X is previous
node and Y is distance from source node along
best known path (up to that time) - Label is either tentative or permanent
- Becomes permanent when it represents the shortest
possible path from source node - Algorithm proceeds to find shortest paths from
source node to all other nodes, in increasing
order of distance
50Dijkstras Algorithm (cont)
- Proceeds in stages
- By stage k, will have found k shortest paths from
source node - These nodes are included in set M
- At next stage, shortest path is found to a node
not in M, this node is added to M - Ends when M includes all nodes
- Result is shortest path spanning tree with root
at source node
51Dijkstras Algorithm (cont)
- Notation
- 1 source node
- cij distance (cost) between nodes i and j
- M set of permanent nodes found so far
- (X,Y) node label
- X previous node
- Y distance from source node to this node
52Initialize all node labels to (-,8). Add node 1
to set M M1
From last node added to M, update the labels at
neighboring nodes if shorter distance can be
found, change node label to shortest route.
Until M includes all nodes
Among the nodes not currently in M, choose node
with smallest distance in its label. Make
this node permanent and add to M.
53Dijkstras Algorithm - Example Graph
5
2
3
3
5
2
3
1
6
1
2
2
1
1
4
5
54Initialize node labels. Add node 1 to set M
M1.
(-,8)
(-,8)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(-,8)
(-,8)
54
55Update labels at neighboring nodes from node 1.
(1,2)
(1,5)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(-,8)
56Choose node 4 to add to M M1,4. Make 4
permanent.
(1,2)
(1,5)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(-,8)
57Update labels at neighboring nodes from node 4.
(1,2)
(4,4)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
58Choose 2 (or 4) to add to M M1,4,2. Make 2
permanent.
(1,2)
(4,4)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
59From 2, update labels at neighboring nodes.
(1,2)
(4,4)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
59
60Choose 5 to add to M M1,4,2,5. Make 5
permanent.
(1,2)
(4,4)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
61From 5, update labels at neighboring nodes.
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
62Choose 3 to add to M M1,4,2,5,3. Make 3
permanent.
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
63From 3, update label at node 6.
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
64Add 6 to M M1,4,2,5,3,6. Make 6 permanent.
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
65Spanning tree representing least cost routes
(1,2)
(5,3)
2
3
(5,4)
(-,0)
1
6
4
5
(1,1)
(4,2)
66Dijkstras Algorithm - Table Form
M
Node 2
Node 3
Node 4
Node 5
Node 6
1
(1,2)
(1,5)
(1,1)
(-,8)
(-,8)
1,4
(4,4)
(4,2)
(1,2)
(1,1)
(-,8)
1,4,2
(4,4)
(1,2)
(1,1)
(4,2)
(-,8)
1,4,2,5
(5,3)
(5,4)
(1,2)
(1,1)
(4,2)
1,4,2,5,3
(5,3)
(5,4)
(1,2)
(1,1)
(4,2)
1,4,2,5,3,6
(5,3)
(5,4)
(1,2)
(1,1)
(4,2)
67Bellman-Ford Algorithm
- Bellman's optimality principle if path is
optimal, any segment (between any two nodes)
along this path must be optimal between those two
nodes - Algorithm proceeds to find shortest paths from
source node to all nodes, in increasing order of
number of hops - Find shortest path of 1 hop (max.), then shortest
path of 2 hops (max.), etc. - Stop when next iteration does not change anything
68Bellman-Ford Algorithm (cont)
- Proceeds in iterations
- Each node is responsible for updating its own
label in each iteration - Node looks at routes through all of its neighbors
- Chooses neighbor with shortest route
- Ends when no more changes
- Result is shortest path spanning tree with root
at source node
69Initialize all node labels to (-,8) except source
node label is (-,0)
Each node calculates routes through all
neighbors.
Iterate until no more changes
Choose shortest route and update label if
necessary.
70Example Initialize node labels.
(-,8)
(-,8)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(-,8)
(-,8)
71Iteration 1 each node calculates routes through
all neighbors, chooses shortest route, updates
labels if necessary.
(1,2)
(1,5)
5
2
3
3
5
2
(-,8)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(-,8)
72Iteration 2
(1,2)
(4,4)
5
2
3
3
5
2
(3,10)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
73Iteration 3
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
74Iteration 4 no change ? stop
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
75Node labels define shortest path spanning tree
(same as before)
(1,2)
(5,3)
5
2
3
3
5
2
(5,4)
3
(-,0)
1
6
1
2
2
1
1
4
5
(1,1)
(4,2)
76Bellman-Ford Algorithm - Table Form
iteration
Node 2
Node 3
Node 4
Node 5
Node 6
0
(-,8)
(-,8)
(-,8)
(-,8)
(-,8)
1
(1,5)
(1,2)
(1,1)
(-,8)
(-,8)
2
(4,4)
(1,2)
(1,1)
(4,2)
(3,10)
3
(5,3)
(5,4)
(1,2)
(1,1)
(4,2)
4
(5,3)
(5,4)
(1,2)
(1,1)
(4,2)