View
217
Download
1
Tags:
Embed Size (px)
Citation preview
Prof. Rick Han, University of Colorado at Boulder
Announcements
• HW #2 up front• Solutions to HW #2 and #3 available by
March 12 evening
• Programming Assignment #2 due Friday March 22 by 11:59 pm
• Midterm March 14• Through Chapter 4 Network Layer• Excluding 2.9 (network adaptors), 3.4
(switching hardware), and 4.4 (multicast)
• Next, review…
Prof. Rick Han, University of Colorado at Boulder
Format of Midterm• 75 minutes• In class• Closed book• Calculator OK• 4-5 long questions (multiple sections)• maybe some short-answer/multiple-choice
questions• About 15 minutes for each long question
Prof. Rick Han, University of Colorado at Boulder
Potential Topics for Midterm• List is not all-inclusive; some topics may
appear on midterm not listed here• How does ___ work? Why is it used?• Physical:
• Propagation delay, bandwidth*delay product• Byte stuffing• Checksums
• Data-link• Reliable protocols:
• Stop-and-Wait• Sliding Window:
• Go-Back-N : cumulative ACK’s• Selective Repeat : selective ACK’s
Prof. Rick Han, University of Colorado at Boulder
Potential Topics for Midterm (2)
• MAC• Aloha, Slotted Aloha• CSMA – “Listen before talk”• CSMA/CD – Ethernet “Listen while talk”
• exponential backoff• CSMA/CA – wireless Ethernet• Token Ring• Ethernet Hubs/Repeaters• Ethernet Bridges/Switches
• How do bridges build their forwarding tables?• How are Spanning Trees constructed?
Prof. Rick Han, University of Colorado at Boulder
Potential Topics for Midterm (3)
• Network• Virtual circuit routing• IP
• Addressing, CIDR• ARP
• First, Broadcast on Ethernet…• DHCP
• DHCP Relay to a DHCP Server• ICMP
• How do ping and traceroute use ICMP?
Prof. Rick Han, University of Colorado at Boulder
Potential Topics for Midterm (4)
• Network• IP
• Distance-vector routing (RIP)• Distributed Bellman-Ford• Bouncing effect, counting-to-infinity, split
horizon• Link-state routing (OSPF)
• Flooding of LSP’s + Dijkstra• Link-state cost metrics
• Inter-domain routing (BGP)• Path vector exchanged between AS’s
Prof. Rick Han, University of Colorado at Boulder
Problems With Bridges
• Bridges can interconnect LANs and have multiple paths between every node• Inadvertent
Layer 2BridgeBridge
Bridge
Bridge
• Purposely for robustness, in case highest tier fails
• Problem: Frames can cycle forever in a loop and multiply to crash LAN!
Prof. Rick Han, University of Colorado at Boulder
Problems With Bridges: Packet Multiplication Effect
• Suppose all bridges have just booted• Suppose A wants to send to Z
Bridge 4Bridge 1
Bridge2
Bridge 3
• Bridge 1 sends A’s frame to LAN 5 & 4
• These two frames propagate to Bridge 3, where they multiply into 4 copies• Exponentially multiplying copies!
AZ
LAN1 LAN3
LAN2
LAN4
LAN5
Prof. Rick Han, University of Colorado at Boulder
Problems With Bridges:Endless Looping
• Suppose all bridges have just booted• Suppose A wants to send to Z
Bridge 4Bridge 1
Bridge2
Bridge 3
• Bridge 2 sends frame to LAN 2
• Bridge 3 sends frame to LAN 3
• Bridge 4 -> LAN 4
• Back to LAN 1• Frames can cycle forever!
A ZLAN1 LAN3
LAN2
LAN4
Prof. Rick Han, University of Colorado at Boulder
Solution: Spanning Tree Algorithm
• Invented by Radia Perlman, modified into 802.1d spanning tree standard
• Bridges communicate with each other to set up a spanning tree that has no loops
Bridge 4Bridge 1
Bridge2
Bridge 3
• Disconnect some interfaces, though physical link exists
• Some frames may take long route though shorter direct route exists
A ZLAN1 LAN3
LAN2
LAN4
• Some bridges may become orphans
Prof. Rick Han, University of Colorado at Boulder
Rules to Build Spanning Tree
1. Elect a root bridge with the smallest global id
2. Each bridge computes its shortest distance to root
3. Each LAN selects a forwarding/designated bridge closest to root
LAN C LAN DLAN E
LAN A
Bridge1Bridge 2
Bridge 3 Bridge 4• Spanning tree = root +
forwarding bridges• Root forwards frames on
all outgoing ports• If dest. not on LAN, send
via forwarding bridge• Eliminates loops!
Root
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees• The 3 basic mechanisms for constructing
802.1d spanning trees (as defined in standard)1. “A Bridge that believes itself to be the Root (all Bridges start by
believing themselves to be the Root until they discover otherwise) originates Configuration Messages on all the LANs to which it is attached, at regular intervals.”
2. “A Bridge that receives a Configuration Message on what it decides is its Root Port conveying better information (i.e., highest priority Root Identifier, lowest Root Path Cost, highest priority transmit-ting Bridge and Port), passes that information on to all the LANs for which it believes itself to be the Designated Bridge.”
3. “A Bridge that receives inferior information, on a Port it considers to be the Designated Port on the LAN to which it is attached, transmits its own information in reply, for all other Bridges attached to that LAN to hear.”
Prof. Rick Han, University of Colorado at Boulder
Control Messages to Build Spanning Tree
• Each bridge creates a configuration message:• <bridge source id, distance to root, root
bridge id>
• Each bridge floods its initial configuration message on each of its ports/LANs:• <src=my id, dist.=0, root=my id>
• Each bridge stores “best” config msg for each port/LAN
• A config msg C1 is better than stored config msg C2 if:1. Root id of C1 < root id of C22. Root id’s equal and distance of C1 < distance
of C23. If root id’s and distances equal, C1 is better
than C2 if transmitting bridge on C1 is lower than C2
Prof. Rick Han, University of Colorado at Boulder
First, Elect the Root
• If advertised root of new config msg C1 has smaller id, then• Stop sending out its own bridge id config msg’s• Forward new smaller id on all outgoing ports
LAN C LAN DLAN E
LAN A
Bridge1Bridge 2
Bridge 3 Bridge 4
• Higher id config messages are discarded.
• Eventually, lowest ID bridge suppresses all other bridges’ config msg’s
• Root bridge knows it is the root because the lowest ID is its own
Prof. Rick Han, University of Colorado at Boulder
First, Elect the Root (2)
• Example:• Regardless of the config msgs exchanged by
Bridges 2,3, and 4, as soon as Bridge 1 floods its config msg to Bridge 2 and 4, they both:
LAN C LAN DLAN E
LAN A
Bridge1Bridge 2
Bridge 3 Bridge 4
• stop sending out their own bridge id config msg’s and
• Begin forwarding Bridge 1’s config msg on all outgoing ports
• Eventually, Bridge 3 also stops sending its config msg’s
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(1)• Each bridge thinks it’s the root initially.• Each bridge begins by periodically
broadcasting on its attached LANs a config message saying: “I know who the root is and I’m closest to the root”.
• On each LAN, all connected bridges exchange these messages and try to convince their neighbors that they’re correct.
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(2)• Think of each bridge as a person connected to many rooms (LANs).• If a person P in room 1 said “I know who the
root is.” to you, then you’d want to verify this statement by comparing it to what you’d heard everyone else say in all the other rooms that you’re connected/listening to.• If person P was correct, then you’d
remember what they said.• If another room had a better root, then
you’d correct person P by sending a new config message saying “I really know who the root is.”
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(3)• At any given time, each person (bridge) will be able to identify the lowest ID root heard from all of the announcements in all of its attached rooms, and will remember from which room X (LAN) the lowest ID announcement came• The person will think that room X offers the
shortest path to the root.• The door into room X (LAN port) is called the
root port.
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(4)• As the true root bridge (lowest ID) broadcasts onto its attached LANs, its immediate radius-1 neighbors are quickly convinced that this is the root.• Each bridge between a radius-1 and radius-2
LAN will initially hear periodic false announcements on each radius-2 LAN claiming to know the root, and will reply with a new config message saying “I really know who the root is, and I’m one hop from the root (and therefore closest on this LAN)”.
• As the radius-2 bridges hear this, they’ll stop sending their false claims. Also, they’ll respond to and stop the false claims of radius-3 bridges, propagating knowledge of the root bridge outward.
Prof. Rick Han, University of Colorado at Boulder
Next, Build Shortest-Path Forwarding Tree to Root
• Conceptually, build shortest-path forwarding tree after electing the root• But, as the root’s config msg floods the
network, notice that the shortest-path tree can simultaneously be calculated
• Thus, piggyback on Bridge 1’s config msg flooding to set up the shortest path tree to root:• Each bridge increments by one the distance,
as it receives Bridge 1’s config msg, and forwards config msg with Bridge 1 as root to all outgoing ports
Prof. Rick Han, University of Colorado at Boulder
Next, Build Shortest-Path Forwarding Tree to Root (2)
• When a bridge receives a config message from another bridge on same LAN with Bridge 1 as root, it stops sending config messages on that port/LAN if:• Other bridge is closer to root• Other bridge is same distance from root, but
has a lower ID• Thus, a bridge de-selects itself as the
designated forwarding bridge for that port/LAN
Prof. Rick Han, University of Colorado at Boulder
Next, Build Shortest-Path Forwarding Tree to Root (3)
• Bridge 1 floods its config message• Bridge D is part of a loop, and will receive
multiple config msg’s from Bridge 1• Bridge D deselects itself from both LANs
because Bridges 2 & 3 are closer to root Bridge 1 Bridge 1
Bridge D
Bridge 2 Bridge 3
Prof. Rick Han, University of Colorado at Boulder
Next, Build Shortest-Path Forwarding Tree to Root (4)
• Bridge 4 is designated forwarding bridge for LAN A, since it closer to root than Bridge 3 on LAN A• Bridge 3 removes itself
• For LAN B, Bridge 2 is designated forwarding bridge• Bridge 3 removes itself
LAN C LAN DLAN E
LAN A
Bridge1Bridge 2
Bridge 3 Bridge 4
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(5)• As a result, the root’s lowest ID will propagate outward from the root bridge until all bridges become aware of the global root’s lowest ID
• Thus far, we’ve only identified the root bridge. The shortest-path spanning tree still needs to be built.• Remember, the full claim is “I know who the
root is, and I’m closest to the root”.• Resolving the 2nd claim “I’m closest to the root”
is the key to building the shortest path spanning tree
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(6)• When a bridge A hears the claim on a LAN from a bridge B that “I’m closest to the root.”, it must verify this claim.• Recall that at any given time, each bridge can
calculate what it believes is the root and the LAN from which the announcement came
• The root announcement also contained a distance from the root. Thus, each bridge A knows its distance from the root dist(A,root) is the root announcement’s advertised distance + 1.
• When a new claim arrives from a bridge B that “I’m closest to the root.”, and contains a distance dist(B,root), then bridge A compares dist(B,root) to dist(A,root) to verify the truthfulness of the claim
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(7)• If bridge B’s claim “I’m closest to the root.”• is correct, then bridge B should be the
designated bridge forwarding towards the root for that LAN and bridge A will abstain from forwarding data to/from LAN
• is false, then bridge A will send a reply saying, “No, I’m closest to the root.”, and assign itself to be the “designated forwarding bridge” for that LAN
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(8)• The root ID will propagate outwards, in response to periodic false claims of root ID. The distance-to-root will piggyback and will be incremented by one at each bridge.• all bridges will have a correct distance
estimate to the root • Bridges with multiple paths from root will
receive conflicting claims, and will follow rules of slide (7) to decide who is the designated bridge for that LAN
Prof. Rick Han, University of Colorado at Boulder
More Intuition on Constructing Spanning Trees
(9)• The method of correcting false distance claims will propagate outward from the root bridge, until• Each bridge will have a root port facing
towards the root, and some (possibly zero) ports facing away from the root on which it is the designated forwarding LAN
• The root port will periodically be flooding its config messages to the root ports of radius-1 bridges, who in turn will be flooding the config messages with distance incremented by one out of their designated ports toward the root ports of the radius-2 bridges in the spanning tree
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing
• Book assumes that only routing table is kept at each router
• I (and Kurose’s text and Perlman’s text) assume that the entire distance table is kept at each router
• For midterm, use textbook’s assumption• For programming assignment #2, use
my/Kurose/Perlman assumption of distance table in every router
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing
• Compare the following examples to see how the two interpretations of distance vector react differently to the same link failure
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (1)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 2
B inf 25 2
C inf 26 1
Distance TableB Via neighbor
dest A B C
A 25 inf 2
B 27 0 2
C 26 inf 1
C Via neighbor
dest A B C
A 1 3 inf
B 3 1 inf
C 2 2 0
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (2)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 2
B inf 25 2
C inf 26 1
Distance TableB Via neighbor
dest A B C
A 25 inf 2
B 27 0 2
C 26 inf 1
C Via neighbor
dest A B C
A 1 3 inf
B 3 1 inf
C 2 2 0
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
A & B notice linkfailure and shouldreset columns
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (3)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 inf 2
B inf inf 2
C inf inf 1
Distance TableB Via neighbor
dest A B C
A inf inf 2
B inf 0 2
C inf inf 1
C Via neighbor
dest A B C
A 1 3 inf
B 3 1 inf
C 2 2 0
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
Same!
Same!
Same!
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing
A
C
B25
1 1
Routing Table
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
Cost Next hop
A 0 A
B 2 C
C 1 C Cost Next hop
A 1 A
B 1 B
C 0 C
Cost Next hop
A 2 C
B 0 B
C 1 C
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (2)
A
C
B25
1 1
Routing Table
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
Cost Next hop
A 0 A
B 2 C
C 1 C Cost Next hop
A 1 A
B 1 B
C 0 C
Cost Next hop
A 2 C
B 0 B
C 1 C
Same
Same
Same
Neither A nor B changetheir routing tables becausenone of the next-hop pathsgo through the broken link
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (3)
A
C
B25
1 1
Routing Table
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
Cost Next hop
A 0 A
B 2 C
C 1 C Cost Next hop
A 1 A
B 1 B
C 0 C
Cost Next hop
A 2 C
B 0 B
C 1 C
A & C should changerouting tables becausesome next-hop paths gothrough the broken link
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (4)
A
C
B25
1 1
Routing Table
A 0
B inf
C inf
A inf
B 1
C 0
A 2
B 0
C 1Distance vector
Cost Next hop
A 0 A
B inf -
C inf - Cost Next hop
A inf -
B 1 B
C 0 C
Cost Next hop
A 2 C
B 0 B
C 1 C
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (5)
A
C
B25
1 1
Routing Table
A 0
B Inf
C inf
A inf
B 1
C 0
A 2
B 0
C 1Distance vector
Cost Next hop
A 0 A
B inf -
C inf - Cost Next hop
A inf -
B 1 B
C 0 C
Cost Next hop
A 2 C
B 0 B
C 1 C
Same
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (6)
A
C
B25
1 1
Routing Table
A 0
B Inf
C inf
A inf
B 1
C 0
A inf
B 0
C 1Distance vector
Cost Next hop
A 0 A
B inf -
C inf - Cost Next hop
A inf -
B 1 B
C 0 C
Cost Next hop
A inf -
B 0 B
C 1 C
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (7)
A
C
B25
1 1
Routing Table
A 0
B Inf
C inf
A inf
B 1
C 0
A 25
B 0
C 1Distance vector
Cost Next hop
A 0 A
B inf -
C inf - Cost Next hop
A inf -
B 1 B
C 0 C
Cost Next hop
A 25 A
B 0 B
C 1 C
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (8)
A
C
B25
1 1
Routing Table
A 0
B Inf
C inf
A 26
B 1
C 0
A 25
B 0
C 1Distance vector
Cost Next hop
A 0 A
B inf -
C inf - Cost Next hop
A 26 B
B 1 B
C 0 C
Cost Next hop
A 25 A
B 0 B
C 1 C
Same
Prof. Rick Han, University of Colorado at Boulder
Book’s Distance Vector Routing (9)
A
C
B25
1 1
Routing Table
A 0
B 25
C 26
A 26
B 1
C 0
A 25
B 0
C 1Distance vector
Cost Next hop
A 0 A
B 25 B
C 26 B Cost Next hop
A 26 B
B 1 B
C 0 C
Cost Next hop
A 25 A
B 0 B
C 1 C
Same
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (4)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 2
B inf 25 2
C inf 26 1
Distance TableB Via neighbor
dest A B C
A 25 inf 2
B 27 0 2
C 26 inf 1
C Via neighbor
dest A B C
A 1 3 inf
B 3 1 inf
C 2 2 0
A 0
B 2
C 1
A 1
B 1
C 0
A 2
B 0
C 1Distance vector
A & C should updatetheir distance tables
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (5)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 inf
B inf 25 inf
C inf 26 inf
Distance TableB Via neighbor
dest A B C
A 25 inf 2
B 27 0 2
C 26 inf 1
C Via neighbor
dest A B C
A inf 3 inf
B inf 1 inf
C inf 2 0
A 0
B 25
C 26
A 3
B 1
C 0
A 2
B 0
C 1Distance vector
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (6)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 inf
B inf 25 inf
C inf 26 inf
Distance TableB Via neighbor
dest A B C
A 25 inf 2
B 50 0 2
C 51 inf 1
C Via neighbor
dest A B C
A inf 3 inf
B inf 1 inf
C inf 2 0
A 0
B 25
C 26
A 3
B 1
C 0
A 2
B 0
C 1Distance vector
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (7)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 inf
B inf 25 inf
C inf 26 inf
Distance TableB Via neighbor
dest A B C
A 25 inf 4
B 50 0 2
C 51 inf 1
C Via neighbor
dest A B C
A inf 3 inf
B inf 1 inf
C inf 2 0
A 0
B 25
C 26
A 3
B 1
C 0
A 4
B 0
C 1Distance vector
Prof. Rick Han, University of Colorado at Boulder
Distance Vector Routing (8)
A
C
B25
1 1A Via neighbor
dest A B C
A 0 27 inf
B inf 25 inf
C inf 26 inf
Distance TableB Via neighbor
dest A B C
A 25 inf 4
B 50 0 2
C 51 inf 1
C Via neighbor
dest A B C
A inf 5 inf
B inf 1 inf
C inf 2 0
A 0
B 25
C 26
A 5
B 1
C 0
A 4
B 0
C 1Distance vector
BouncingEffect