Switching and Forwarding
Download
Report
Transcript Switching and Forwarding
Switching and Forwarding
3.1 Switching and Forwarding
3.2 Bridges and LAN Switches
3.3 Cell Switching (ATM)
3.4 Implementation and Performance
Two limitations on the directly connected networks
limit on how many hosts can be attached, examples
only two hosts can be attached to a point-topoint link
the Ethernet specification allows no more than
1,024 hosts
limit on how large of a geographic area a single
network can serve, examples
an Ethernet can span only 2,500 m
wireless networks are limited by the ranges of
their radios
point-to-point links can be quite long
Goal
build networks that can be global in scale
Problem
how to enable communication between hosts that
are not directly connected
Solution
computer networks use packet switches to enable
packets to travel from one host to another, even
when no direct connection exists between those
hosts
Packet switch
a device with several inputs and outputs leading to
and from the hosts that the switch interconnects
Core job of a switch
take packets that arrive on an input and forward (or
switch) them to the right output so that they will
reach their appropriate destination
A key problem that a switch must deal with is the finite
bandwidth of its outputs
if packets destined for a certain output arrive at a switch
and their arrival rate exceeds the capacity of that output,
then we have a problem of contention
the switch queues (buffers) packets until the contention
subsides, but if it lasts too long, the switch will run out
of buffer space and be forced to discard packets
when packets are discarded too frequently, the switch is
said to be congested
3.1 Switching and Forwarding
Switch
a multi-input, multi-output device, which transfers
packets from an input to one or more outputs
star topology
switched networks are more scalable (i.e., growing
to large numbers of nodes) than shared-media
networks because of the ability to support many
hosts at full speed
A switch provides a star topology
Scalable Networks
The figure shows the protocol graph that would run on
a switch that is connected to two T3 links and one
STS-1 SONET link
Switching
protocol
T3
T3
STS-1
Example protocol graph running on a switch
T3
T3
STS-1
Switch
Input
ports
T3
T3
STS-1
Output
ports
A switch forwards packets from input port to
output port
Port selected based on address in packet header
Advantages
cover large geographic area (tolerate latency)
support large numbers of hosts (scalable bandwidth)
T3
T3
STS-1
Input
ports
Switch
T3
T3
STS-1
Output
ports
Example switch with three input and output ports
How does the switch decide on which output
port to place each packets?
general answer
it looks at the header of the packet for an identifier that
it uses to make the decision
three common approaches
datagram (or connectionless) approach
virtual circuit (or connection-oriented approach)
source routing
3.1.1 Datagram Switching
Sometimes called connectionless model
Analogy: postal system
No connection setup phase
no round trip delay waiting for connection
setup
a host can send data as soon as it is ready
Each packet is forwarded independently of
previous packets that might have been sent to
the same destination
two successive packets from host A to host
B may follow completely different paths
(perhaps because of a change in the
forwarding table at some switch in the
network)
A switch or link failure might not have any
serious effect on communication if it is possible
to find an alternate route around the failure and
to update the forwarding table accordingly
Since every packet must carry the full address
of the destination, the overhead per packet is
higher than for the connection-oriented model
Source host has no way of knowing if the
network is capable of delivering a packet or if
the destination host is even up and running
Each switch maintains a forwarding (routing)
table
Example
the hosts have addresses A, B, C, and so on
a switch consults a forwarding table (routing table)
to decide how to forward a packet
Host D
0
3
Host C
2
Host E
Switch 1
1
Host F
3
2 Switch 2
1
0
Host A
Host G
1
0 Switch 3
3
Host B
2
Host H
Datagram forwarding: an example network
The table shows the
forwarding information that
switch 2 needs to forward
datagrams
Destination
Port
A
3
B
0
C
3
D
3
E
2
F
1
G
0
H
0
Host D
0
3
Host C
2
Host E
Switch 1
1
Host F
3
2 Switch 2
1
0
Host A
Host G
1
0 Switch 3
3
2
Host H
Host B
3.1.2 Virtual Circuit Switching
Sometimes called connection-oriented model
Analogy: phone call
Explicit connection setup (and tear-down)
phase
it requires that a virtual connection from the
source host to the destination host is set up
before any data is sent
Typically wait full RTT (Round Trip Time) for
connection setup before sending first data
packet
If a switch or a link in a connection fails
the connection is broken and a new one
needs to be established
Subsequence packets follow same circuit
Each switch maintains a Virtual Circuit (VC)
table
Entry in the VC table on a single switch
contains
a virtual circuit identifier (VCI)
uniquely identifies the connection at this
switch
which will be carried inside the header of
the packets that belong to this connection
an incoming interface
on which packets for this VC arrive at the
switch
an outgoing interface
in which packets for this VC leave the
switch
a potentially different VCI that will be used
for outgoing packets
Two classes of approaches to establish
connection state
Permanent Virtual Circuit (PVC)
Switched Virtual Circuit (SVC)
Permanent Virtual Circuit (PVC)
administrator configures the state, in which case the
virtual circuit is “permanent”
administrator can also delete the state, so a
permanent virtual circuit (PVC) might be thought of
as a long-lived, or administratively configured VC
Switched Virtual Circuit (SVC)
a host may set up and delete a VC by sending
messages without the involvement of a network
administrator
this is referred to as signaling, and the resulting
virtual circuits are said to be switched
an SVC should more accurately be called a
“signaled” VC, since it uses signaling (not
switching) to distinguish an SVC from a PVC
Example
assume that a network administrator wants to
manually create a new virtual connection from host
A to host B
two-stage process
connection setup
data transfer
0
1
3
0
3
(11)
1
Switch 1
2
(5)
0
1
3
2
2
Switch 2
(7)
0
Host A
Switch 3
1
3
(4)
2
An example of a virtual circuit network
Host B
The administrator picks a VCI value that is
currently unused on each link for the connection
suppose
VCI = 5, the link from host A to switch 1
VCI = 11, the link from switch 1 to switch 2
VCI = 7, the link from switch 2 to switch 3
VCI = 4, the link from switch 3 to host B
Incoming
Interface
Incoming VCI
Outgoing
Interface
Outgoing
VCI
2
5
1
11
VC table entry at switch 1
Incoming
Interface
Incoming VCI
Outgoing
Interface
Outgoing
VCI
3
11
2
7
VC table entry at switch 2
Incoming
Interface
Incoming VCI
Outgoing
Interface
Outgoing
VCI
0
7
1
4
VC table entry at switch 3
0
0
0
3
2
1
Switch 1
11
1
3
2
Switch 2
5
3
Host A
1
3
2
0 Switch 3
1
2
A packet is sent into a virtual circuit network
Host B
0
0
0
3
1
2
Switch 1
11
3
1
Switch 2
2
2
0 Switch 3
1
7
3
Host A
1
3
Host B
2
A packet makes its way through a virtual circuit network
Hop-by-hop flow control
each node is ensured of having the buffers it needs
to queue the packets that arrive on that circuit
example, an X.25 network-a packet-switched
network that uses the connection-oriented model
X.25 network employs the following three-part strategy
1. buffers are allocated to each virtual circuit when the
circuit is initialized
2. the sliding window protocol is run between each pair of
nodes along the virtual circuit, and this protocol is
augmented with flow control to keep the sending node
from overrunning the buffers allocated at the receiving
node
3. the circuit is rejected by a given node if not enough
buffers are available at that node when the
connection request message is processed
Examples of virtual circuit technologies
Asynchronous Transfer Mode (ATM)
Frame Relay, e.g., Virtual Private Network (VPN)
Frame Relay operates only at the physical and
data link layers
3.1.3 Source Routing
Neither virtual circuits nor conventional datagrams
All the information about network topology that is
required to switch a packet across the network is
provided by the source host
Various ways to implement source routing
method1
put an ordered list of switch ports in the header
and to rotate the list so that the next switch in the
path is always at the front of the list
for each packet that arrives on an input, the
switch would read the port number in the header
and transmit the packet on that output
3
0 Switch 1
1
0
3
2
3 0 1
3
2 Switch 2
1
1
2
1 3 0
0
Host A
0 1 3
1
0 Switch 3
3
Host B
2
Source routing in a switched network (where the switch reads the rightmost number)
method2
example, rather than rotate the header, each
switch just strip the first element as it uses it
method3
have the header carry a pointer to the current
“next port” entry, so that each switch just
updates the pointer rather than rotating the
header
Header entering
switch
D C B A
D C B A
Ptr D C B A
Header leaving
switch
A D C B
D C B
Ptr D C B A
(a)
(b)
(c)
Three ways to handle headers for source routing: (a) rotation, (b) stripping,
and (c) pointer. The labels are read right to left
3.2 Bridges and LAN Switches
LANs have physical limitations (e.g., 2500m)
Bridge (LAN switch)
connect two or more LANs
Extended LAN
a collection of LANs connected by one or more
bridges
accept and forward strategy (accept all frames
transmitted on either of the Ethernets, so it could
forward them to the other)
3.2.1 Learning Bridges
Do not forward when unnecessary
whenever a frame from host A that is addressed to
host B arrives on port 1, there is no need for the
bridge to forward the frame out over port 2
A
B
C
Port 1
Bridge
Port 2
X
Y
Z
A
B
C
Port 1
Bridge
Port 2
X
Y
Z
Illustration of a learning bridge
A
B
C
Port 1
Bridge
Host
Port
A
1
B
1
C
1
X
2
Y
2
Z
2
Port 2
X
Y
Z
How does a bridge come to learn on which port
the various hosts reside?
each bridge inspects the source address in all the
frames it receives
when host A sends a frame to a host on either side
of the bridge, the bridge receives this frame and
records the fact that a frame from host A was just
received on port 1
in this way, the bridge can build a table just like the
following table
Host
Port
A
1
B
1
C
1
X
2
Y
2
Z
2
3.2.2 Spanning Tree Algorithm
Problem: extended LAN has a loop in it
frames potentially loop through the extended LAN
forever
example
bridges B1, B4, and B6 form a loop
A
B
B3
C
B5
D
B2
B7
E
K
F
B1
G
H
B6
B4
I
J
A
B
B3
C
B5
D
B2
B7
E
K
F
B1
G
H
B6
B4
I
J
Extended LAN with loops
Solution: bridges run a distributed spanning
tree algorithm
spanning tree is a subgraph of a graph that covers
(spans) all the vertices, but contains no cycles
(a)
(b)
Example of (a) a cyclic graph; (b) a corresponding spanning tree
Spanning tree algorithm (developed by Radia Perlman)
each bridge has a unique identifier (e.g., B1, B2, B3)
the algorithm first elects the bridge with the
smallest ID as the root of the spanning tree
the root bridge always forwards frames out over
all of its ports
each bridge computes the shortest path to the root
and notes which of its ports is on this path
this port is selected as the bridge’s preferred path
to the root
finally, all the bridges connected to a given LAN
elect a single designated bridge that will be
responsible for forwarding frames toward the root
bridge
each LAN’s designated bridge is the one that is
closest to the root, and if two or more bridges are
equally close to the root, then the bridges’
identifiers with the smallest ID wins
A
B
B3
C
B5
D
B2
B7
E
K
F
B1
G
H
B6
B4
I
J
Spanning tree with some ports not selected
Bridges have to exchange configuration messages with
each other and then decide whether or not they are the
root or a designated bridge based on these messages
configuration messages contain
the ID for the bridge that is sending the message
the ID for what the sending bridge believes to be the
root bridge
the distance, measured in hops, from the sending
bridge to the root bridge
each bridge records current best configuration message
for each port
initially, each bridge believes it is the root
when learn not root, stop generating config messages
in steady state, only root generates configuration
messages
when learn not designated bridge, stop forwarding
config messages
in steady state, only designated bridges forward
config messages
root continues to periodically send config messages
if any bridge does not receive config message after a
period of time, it starts generating config messages
claiming to be the root
upon receiving a config message over a particular
port
the bridge checks to see if that new message is
better than the current best configuration message
recorded for that
the new configuration message is considered “better”
than the currently recorded information if
it identifies a root with a smaller ID or
it identifies a root with an equal ID but with a shorter
distance or
the root ID and distance are equal, but the sending
bridge has a smaller ID
A
B
B3
C
B5
D
B2
B7
E
K
F
B1
G
Sequence of events
H
B6
B4
I
assume all the bridges boot at about the same time
and all the bridges would start off by claiming to be
the root
(Y, d, X) denotes a configuration message from
node X in which it claims to be distance d from root
node Y
J
Sequence of events on the activity at node B3
1. B3 receives (B2, 0, B2)
2. since 2 < 3, B3 accepts B2 as root [(B2, 1, B3)]
3. B3 adds one to the distance advertised by B2 (0) and thus
sends (B2, 1, B3) toward B5 [(B2, 1, B3), (B2, 2, B5)]
4. meanwhile, B2 accepts B1 as root because it has the lower ID,
and it sends (B1, 1, B2) toward B3
[(B1, 1, B2), (B1, 2, B3)]
5. B5 accepts B1 as root and sends (B1, 1, B5) toward B3
[(B1, 1, B5), (B1, 2, B3)]
6. B3 accepts B1 as root, and it notes that both B2 and B5 are
closer to the root than it is
[(B1, 2, B3), (B1, 1, B2), (B1, 1, B5)]
7. B3 stops forwarding messages on both its interfaces (this
leaves B3 with both ports not selected)
[(B1, 1, B2), (B1, 1, B5)]
A
(2)
(7)
B3
C
(1)
(4b)
(6)
B2
B
(3)
(5b)
B5
D
B7
(5a)
E
K
F
(4a)
B1
G
H
B6
B4
I
J
Spanning tree with some ports not selected
3.2.3 Broadcast and Multicast
Since most LANs support both broadcast and multicast,
then bridges must also support these two features
Broadcast
each bridge forwards a frame with a destination broadcast
address out on each active (selected) port other than the one
on which the frame was received
Multicast
implemented in exactly the same way, with each host
deciding itself whether or not to accept she message
3.2.4 Limitations of Bridges
Do not scale
Do not accommodate heterogeneity
Do not Scale
It is not realistic to connect more than a few
(tens of) LANs by means of bridges
the spanning tree algorithm scales linearly, i.e.,
there is no provision for imposing a hierarchy on
the extended LAN
bridges forward all broadcast frames and broadcast
does not scale
W
X
VLAN 100
VLAN 100
B1
B2
VLAN 200
Virtual LAN (VLAN)
VLAN 200
Y
Z
used to increase the scalability of extended LANs
allows a single extended LAN to be partitioned into
several seemingly separate LANs
each virtual LAN is assigned an identifier (sometimes
called a color), and packets can only travel from one
segment to another if both segments have the same
identifier
this limits the number of segments in an extended
LAN that will receive any given broadcast packet
W
X
VLAN 100
VLAN 100
B1
B2
VLAN 200
Example
VLAN 200
Y
Z
four hosts (W, X, Y, Z) on four different LAN segments
in the absence of VLANs, any broadcast packet from any
host will reach all the other hosts
suppose that we define the segments connected to hosts W
and X as being in one LAN, VLAN 100
also define the segments that connect to hosts Y and Z as
being in VLAN 200
to do his, we need to configure a VLAN ID on each port of
bridges B1 and B2
the link between B1 and B2 is considered to be in both
VLANs
W
X
VLAN 100
VLAN 100
B1
B2
VLAN 200
VLAN 200
Y
Z
Two virtual LANs share a common backbone
W
X
VLAN 100
VLAN 100
B1
B2
VLAN 200
VLAN 200
Y
Z
When a packet sent by host X arrives at bridge B2
the bridge observes that it came in a port that was configured
as being in VLAN 100
it inserts a VLAN header between the Ethernet header and its
Ethernet
VLAN
payload
Payload
header
header
the bridge applies normal rules for forwarding to the packet,
with the extra restriction that the packet may not be sent out
an interface that is not part of VLAN 100
thus, even a broadcast packet can’t be sent out the interface
to host Z, which is in VLAN 200
W
X
VLAN 100
VLAN 100
B1
B2
VLAN 200
An attractive feature of VLANs
VLAN 200
Y
Z
it is possible to change the logical topology without
moving any wires or changing any addresses
example
if we want to make the segment that connects to host Z
be part of VLAN 100, and thus enable X, W and Z be
on the same virtual LAN, we would just need to
change one piece of configuration on bridge B2
Do not Accommodate Heterogeneity
Bridges are fairly limited in the kinds of networks they
can interconnect
Bridges make use of the networks frame header and so
can support only networks that have exactly the same
format for addresses
Bridges can be used to connect Ethernets to Ethernets,
802.5 (Token Ring) to 802.5, and Ethernets to 802.5
rings, since both networks support the same 48-bit
address format
Bridges do not readily generalize to other kinds of
networks, such as ATM