CS 348 Computer Networks
Lecture 4
Switching and Forwarding
John Jose
Assistant Professor
Department of Computer Science & Engineering
Indian Institute of Technology Guwahati, Assam.
Problems
Data communication deals with how to connect
one node to another.
Two nodes and a connecting channel
How do we build networks of global scale?
How do we interconnect different types of
networks to build a large global network?
We discuss
Switching and Bridging
Basic Internetworking (IP)
Routing
Switching and Forwarding
Switch
A mechanism that allows us to interconnect
links to form a large network
A multi-input, multi-output device which
transfers packets from an input to one or more
outputs
Switching and Forwarding
A switch has a fixed number of inputs and
outputs.
This limits the number of hosts that can be
connected to a single switch.
Large networks can be built by interconnecting a
number of switches
We can connect switches to each other and to
hosts using point-to-point links, which typically
means that we can build networks of large
geographic scope
Switching and Forwarding
Every host on a switched network has its own
link to the switch
Possible for many hosts to transmit at the full
link speed (bandwidth) provided that the switch
is designed with enough aggregate capacity
A switch is connected to a set of links, and for
each of these links, runs the appropriate data
link protocol to communicate with that node
A switchs primary job is to receive incoming
packets on one of its links and to transmit them
on some other link- switching and forwarding
Switching and Forwarding
How does the switch decide which output port to
place each packet on?
Each host has a globally unique address
There is some way to identify the input and output
ports of each switch
Can use numbers / names
Switch looks at the header of the packet for an
identifier that it uses to make the decision
Two common approaches
Datagram or Connectionless approach
Virtual circuit or Connection-oriented approach
Datagram Network
Datagrams Connectionless approach
Every packet contains enough information to
enable any switch to decide how to get it to
destination
Every packet contains the complete
destination address
Datagram Network
A switch consults a forwarding table (routing table)
Datagram Network
Destination
Port
------------------------------------A
Forwarding Table for Switch 2
Datagram Network
A host can send a packet anywhere at any time.
Any packet that turns up at the switch can be
immediately forwarded with a correctly populated
forwarding table.
Each packet is forwarded independently of
previous packets that might have been sent to the
same destination.
Thus two successive packets from host A to host B
may follow completely different paths
Virtual Circuit Network
Virtual Circuit Switching
Widely used technique for packet switching
Uses the concept of virtual circuit (VC)
Also called a connection-oriented model
First set up a virtual connection from the
source host to the destination host and then
send the data
Virtual Circuit Network
Host A wants to send packets to host B
Virtual Circuit Network
Two-stage process
Connection setup
Data Transfer
Connection setup
Establish connection state in each of the
switches between the source and destination
hosts
The connection state for a single connection
consists of an entry in the VC table in each
switch through which the connection passes
Virtual Circuit Network
One entry in the VC table on a single switch contains
A virtual circuit identifier (VCI) that uniquely identifies
the connection at this switch. This VCI 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
Virtual Circuit Network
The semantics for one such entry is
If a packet arrives on the designated incoming
interface and that packet contains the designated VCI
value in its header, then the packet should be sent out
the specified outgoing interface with the specified
outgoing VCI value first having been placed in its
header.
Virtual Circuit Network
The combination of the VCI of the incoming packets at the
switch and the interface on which they are received
uniquely identifies the virtual connection
There may be many virtual connections established in the
switch at one time
Incoming and outgoing VCI values need not be the same
VCI is not a globally significant identifier for the
connection; rather it has significance only on a given link
Whenever a new connection is created, we need to
assign a new VCI for that connection on each link that the
connection will traverse
We also need to ensure that the chosen VCI on a given
link is not currently in use on that link by some existing
connection.
Virtual Circuit Network
Two broad classes of approach to establishing connection state
Network Administrator will configure the state
The virtual circuit is permanent (PVC)
The network administrator can delete this
Can be thought of as a long-lived or administratively
configured VC
A host can send messages into the network to cause the
state to be established
This is referred as signalling and the resulting virtual
circuit is said to be switched (SVC)
A host may set up and delete such a VC dynamically
without the involvement of a network administrator
Virtual Circuit Network
Lets assume that a network administrator wants to manually
create a new virtual connection from host A to host B
First the administrator identifies a path through the
network from host A to host B
Virtual Circuit Network
The administrator then picks a VCI value that is currently
unused on each link for the connection
For our example,
Suppose the VCI value 5 is chosen for the link from
host A to switch 1
11 is chosen for the link from switch 1 to switch 2
So the switch 1 will have an entry in the VC table
Incoming
Interface
Incoming VCI
Outgoing
Interface
Outgoing VCI
11
Virtual Circuit Network
Similarly, suppose
VCI of 7 is chosen to identify this connection on the link
from switch 2 to switch 3
VCI of 4 is chosen for the link from switch 3 to host B
Switches 2 and 3 are configured with the following VC
table
Incoming
Interface
Incoming VC
Outgoing
Interface
Outgoing VC
11
Incoming
Interface
Incoming VC
Outgoing
Interface
Outgoing VC
Virtual Circuit Network
For any packet that A wants to send to B, A puts the VCI
value 5 in the header of the packet and sends it to switch 1
Switch 1 receives any such packet on interface 2, and it
uses the combination of the interface and the VCI in the
packet header to find the appropriate VC table entry.
The table entry on switch 1 tells the switch to forward the
packet out of interface 1 and to put the VCI value 11 in the
header
Virtual Circuit Network
Packet will arrive at switch 2 on interface 3 bearing VCI 11
Switch 2 looks up interface 3 and VCI 11 in its VC table and
sends the packet on to switch 3 after updating the VCI value
appropriately
This process continues until it arrives at host B with the VCI
value of 4 in the packet
To host B, this identifies the packet as having come from A
johnjose@iitg.ernet.in