Professional Documents
Culture Documents
Lecture 3
Lecture 3 #1
Interconnecting LANs
Lecture 3 #2
Hubs
Physical Layer devices: essentially repeaters
operating at bit levels: repeat received bits on one
interface to all other interfaces
Hubs can be arranged in a hierarchy (or multi-tier
design), with backbone hub at its top
Lecture 3 #3
Hubs (more)
Each connected LAN referred to as LAN segment
Hubs do not isolate collision domains: node may collide
with any node residing at any segment in LAN
Hub Advantages:
simple, inexpensive device
Multi-tier provides graceful degradation: portions
of the LAN continue to operate if one hub
malfunctions
extends maximum distance between node pairs
(100m per Hub)
Lecture 3 #4
Hub limitations
single collision domain results in no increase in max
throughput
multi-tier throughput same as single segment
throughput
individual LAN restrictions pose limits on number
of nodes in same collision domain and on total
allowed geographical coverage
cannot connect different Ethernet types (e.g.,
10BaseT and 100baseT) Why?
Lecture 3 #5
Bridges
Link Layer devices: operate on Ethernet
frames, examining frame header and
selectively forwarding frame based on its
destination
Bridge isolates collision domains since it
buffers frames
When frame is to be forwarded on
segment, bridge uses CSMA/CD to access
segment and transmit
Lecture 3 #6
Bridges (more)
Bridge advantages:
Isolates collision domains resulting in higher
total max throughput, and does not limit the
number of nodes nor geographical coverage
Lecture 3 #7
Backbone Bridge
Lecture 3 #8
Interconnection Without Backbone
Lecture 3 #9
Bridges: frame filtering, forwarding
Lecture 3 #10
Bridge Filtering
bridges learn which hosts can be reached through
which interfaces: maintain filtering tables
when frame received, bridge “learns” location of
sender: incoming LAN segment
records sender location in filtering table
Lecture 3 #11
Bridge Operation
bridge procedure(in_MAC, in_port,out_MAC)
Set filtering table (in_MAC) to in_port /*learning*/
lookup in filtering table (out_MAC) receive out_port
if (out_port not valid) /* no entry found for destination */
then flood; /* forward on all but the interface on
which the frame arrived*/
Lecture 3 #12
Bridge Learning: example
Suppose C sends frame to D and D replies back with
frame to C
C 1
Lecture 3 #14
What will happen with loops?
Incorrect learning
2 2
A , 12 A , 12
1 1
A
Lecture 3 #15
What will happen with loops?
Frame looping
2 2
C,?? C,??
1 1
A
Lecture 3 #16
What will happen with loops?
Frame looping
2 2
B,2 B,1
1 1
A
Lecture 3 #17
Loop-free: tree
C
B
A message from A
A will mark A’s location
Lecture 3 #18
Loop-free: tree
C
B
A:
A message from A
A will mark A’s location
Lecture 3 #19
Loop-free: tree
A: C
B
A:
A message from A
A will mark A’s location
Lecture 3 #20
Loop-free: tree
A: A:
A: C
B
A:
A:
A message from A
A will mark A’s location
Lecture 3 #21
Loop-free: tree
A: A:
A: C
B
A:
A:
A message from A
A will mark A’s location
Lecture 3 #22
Loop-free: tree
A: A:
A: C
B
A:
A:
Lecture 3 #23
Bridges Spanning Tree
for increased reliability, desirable to have redundant,
alternative paths from source to dest
with multiple paths, cycles result - bridges may multiply and
forward frame forever
solution: organize bridges in a spanning tree by disabling
subset of interfaces
Disabled
Lecture 3 #24
Introducing Spanning Tree
Note: redundant paths are good, active redundant paths are bad
(they cause loops)
Lecture 3 #25
How to construct a spanning tree?
Bridges run a distributed spanning tree
algorithm
Selectwhat ports (and bridges) should actively
forward frames
Standardized in IEEE 802.1 specification
Lecture 3 #26
Overview of STP
We make a series of simplifications:
Build a ST of bridges (in fact, need to
span LAN segments!)
Assume that we are given a root bridge
So we solve in order:
1. How to find a root bridge?
2. How to compute a ST of bridges?
3. How to compute a ST LAN segments?
Lecture 3 #27
1. Choosing a root bridge
Assume each bridge has a unique identifier
Each bridge remembers best ID seen so
far (my_root_ID)
Periodically, send my_root_ID to all
neighbors (“flooding”)
When receiving ID, update if necessary
Is that enough?!
Lecture 3 #28
2. Compute ST Given a root
Idea: each node finds its shortest paths to
the root shortest paths tree
Output: At each node, parent pointer (and
distance)
How: Bellman-Ford algorithm
Lecture 3 #29
Distributed Bellman-Ford
Assumption: There is a unique root node s
Idea: Each node, periodically, tells all its
neighbors what is its distance from s
But how can they tell?
s: easy. dists = 0 always!
Another node v:
Lecture 3 #30
Why does this work?
Suppose all nodes start with distance ,
and suppose that updates are sent every
time unit.
E
D
C
A
0
G
B
F
Lecture 3 #31
Why does this work?
Suppose all nodes start with distance ,
and suppose that updates are sent every
time unit.
E
1
1 D
C
A
0 1
G
B 1
F
Lecture 3 #32
Why does this work?
Suppose all nodes start with distance ,
and suppose that updates are sent every
time unit.
2
E
1
1 D
2 C
A
0 1
G
B 1
F
Lecture 3 #33
Why does this work?
Suppose all nodes start with distance ,
and suppose that updates are sent every
time unit.
2
E
1
1 D
2 C
A
0 1
G
3
B 1
F
Lecture 3 #34
Bellman-Ford: properties
Lecture 3 #35
3. ST of LAN segments
Assumption: given a ST of the bridges
Idea: Each segment has at least one bridge
attached. Only one of them should forward
packets!
Choose bridge closest to root. Break ties by bridge ID
(and then by port ID...)
Implementation: Bridges listen to all distance
announcement on each port. Mark port as
“designated port” iff best on that port’s LAN
Lecture 3 #36
Spanning Tree Concepts:
Path Cost
A cost associated with each port on each
bridge (“weight” of the segment)
default is 1
The cost associated with transmission onto
the LAN connected to the port
Can be manually or automatically assigned
Can be used to alter the path to the root
bridge
Lecture 3 #37
Spanning Tree Concepts:
Root Port
Each non-root bridge has a Root port: The
port on the path towards the root bridge
parent pointer
The root port is part of the lowest cost
path towards the root bridge
If port costs are equal on a bridge, the
port with the lowest ID becomes root port
Lecture 3 #38
Example Spanning Tree
B8
Protocol operation:
1. Pick a root
2. Each bridge picks a
B3 root port
B5
B7
B2
B1
B6 B4
Lecture 3 #39
Example Spanning Tree
B8
B3 Spanning Tree:
B5 B1
root
port B7
B2
B2 B4 B5 B6 B7
B1
Root B3 B8
B6 B4
Lecture 3 #40
Spanning Tree Concepts:
Designated Port
Each LAN has a single designated port
This is the port reporting minimum cost
path to the root bridge for the LAN
Only designated and root ports remain
active!
Lecture 3 #41
Example Spanning Tree
B8
B3 Forwarding Tree:
B5 B1
root
port B7
B2
B2 B4 B5 B7
B1
Root B8
Designated
B6 Bridge
B4 Note: B3, B6 forward nothing
Lecture 3 #42
Spanning Tree Requirements
Each bridge has a unique identifier
A broadcast address for bridges on a
LAN
A unique port identifier for all ports
on all bridges
Bridge id + port number
Lecture 3 #43
Spanning Tree Algorithm:
Implementation
Keep pumping a single message:
(my root ID, my cost to root, my ID)
BPDU: Bridge Protocol Data Unit
Update var’s when receiving:
My_root_ID: smallest seen so far
My_cost_to_root: smallest received to my_root +
link cost
Break ties by ID
That’s enough!
Lecture 3 #44
Spanning Tree Algorithm:
Select Designated Bridges
Bridges send BPDU frames to its attached
LANs
sender port ID
bridge and port ID of the bridge the sending
bridge considers root
root path cost for the sending bridge
3. Best bridge wins, and it knows it (and
winning port)
(lowest ID/cost/priority)
Lecture 3 #45
Forwarding/Blocking State
1. Only root and designated ports are
active for data forwarding
Other ports are in the blocking state:
no forwarding!
If bridge has no designated port, no
forwarding at all block root port too.
2. All ports send BPDU messages
To adjust to changes
Lecture 3 #46
Spanning Tree Protocol: Execution
B8
B3
B5
B7
B2
B6 B4
Lecture 3 #48
Routers vs. Bridges
Bridges + and -
+ Bridge operation is simpler requiring less
processing
- Topologies are restricted with bridges: a spanning
tree must be built to avoid cycles
- Bridges do not offer protection from broadcast
storms (endless broadcasting by a host will be
forwarded by a bridge)
Lecture 3 #49
Routers vs. Bridges
Routers + and -
+ arbitrary topologies can be supported, cycling is
limited by TTL counters (and good routing protocols)
+ provide firewall protection against broadcast storms
- require IP address configuration (not plug and play)
- require higher processing
Lecture 3 #50
Ethernet Switches
layer 2 (frame) forwarding,
filtering using LAN
addresses
Switching: A-to-B and A’-
to-B’ simultaneously, no
collisions
large number of interfaces
often: individual hosts,
star-connected into switch
Ethernet, but no
collisions!
Lecture 3 #51
Ethernet Switches
cut-through switching: frame forwarded
from input to output port without awaiting
for assembly of entire frame
slight reduction in latency
combinations of shared/dedicated,
10/100/1000 Mbps interfaces
Lecture 3 #52
Ethernet Switches (more)
Dedicated
Shared
Lecture 3 #53
Optional: Wireless LAN and PPP
Lecture 3 #54
IEEE 802.11 Wireless LAN
wireless LANs: untethered (often mobile) networking
IEEE 802.11 standard:
MAC protocol
unlicensed frequency spectrum: 900Mhz, 2.4Ghz
Lecture 3 #55
Ad Hoc Networks
Ad hoc network: IEEE 802.11 stations can
dynamically form network without AP
Applications:
“laptop” meeting in conference room, car
interconnection of “personal” devices
battlefield
IETF MANET
(Mobile Ad hoc Networks)
working group
Lecture 3 #56
IEEE 802.11 MAC Protocol:
CSMA/CA
802.11 CSMA: sender
- if sense channel idle for
DISF sec.
then transmit entire frame
(no collision detection)
-if sense channel busy
then binary backoff
Lecture 3 #57
IEEE 802.11 MAC Protocol
802.11 CSMA Protocol:
others
NAV: Network
Allocation
Vector
802.11 frame has
transmission time field
others (hearing data)
defer access for NAV
time units
Lecture 3 #58
Hidden Terminal effect
hidden terminals: A, C cannot hear each other
obstacles, signal attenuation
collisions at B
Lecture 3 #59
Collision Avoidance: RTS-CTS
exchange
CSMA/CA: explicit
channel reservation
sender: send short
RTS: request to send
receiver: reply with
short CTS: clear to
send
CTS reserves channel for
sender, notifying
(possibly hidden) stations
avoid hidden station
collisions
Lecture 3 #60
Collision Avoidance: RTS-CTS
exchange
RTS and CTS short:
collisions less likely, of
shorter duration
end result similar to
collision detection
IEEE 802.11 allows:
CSMA
CSMA/CA: reservations
polling from AP
Lecture 3 #61
Point to Point Data Link Control
one sender, one receiver, one link: easier
than broadcast link:
no Media Access Control
no need for explicit MAC addressing
e.g., dialup link, ISDN line
Lecture 3 #64
PPP Data Frame
Flag: delimiter (framing)
Address: does nothing (only one option)
Control: does nothing; in the future possible
multiple control fields
Protocol: upper layer protocol to which frame
delivered (eg, PPP-LCP, IP, IPCP, etc)
Lecture 3 #65
PPP Data Frame
info: upper layer data being carried
check: cyclic redundancy check (CRC) for
error detection
Lecture 3 #66
Byte Stuffing
“data transparency” requirement: data field must
be allowed to include flag pattern <01111110>
Q: is received <01111110> data or flag?
Lecture 3 #67
Byte Stuffing
flag byte
pattern
in data
to send
Lecture 3 #68
PPP Data Control Protocol
Before exchanging network-
layer data, data link peers
must
configure PPP link (max.
frame length, authentication)
learn/configure network
layer information
for IP: carry IP Control
Protocol (IPCP) msgs
(protocol field: 8021) to
configure/learn IP
address
Lecture 3 #69
Data Link: Summary
principles behind data link layer services:
error detection, correction
sharing a broadcast channel: multiple access
link layer addressing, ARP
Lecture 3 #70
Configuration Messages: BPDU
Lecture 3 #71