lecture01-introduction-and-logistics

Download Report

Transcript lecture01-introduction-and-logistics

Routing & Switching
Umar Kalim
Dept. of Communication Systems Engineering
[email protected]
http://www.niit.edu.pk/~umarkalim
16/03/2007
Spring 2007
Ref: CSci5211 Univ. of Minnesota
1
Agenda
Logistics
Introduction
Spring 2007
2
Who am I?
Umar Kalim
– Lecturer
Department of Communication Systems
Engineering
R # 15, AB # 3, St # 9
9280439 x 134
http://www.niit.edu.pk/~umarkalim
Spring 2007
3
What is “Routing & Switching’ about?
 Graduate-Level Introductory Networking Course
 We’ll learn about
Fundamental principles and concepts of routing in computer
networks
How Internet works
Introduce some relevant tools used to study networks
Attempt hands-on experience
Discuss relevant papers
 Who is it for?
 CSci, CE or EE graduate students who have some basic
understanding of computer networks
Spring 2007
4
Reading material
 Text books:
– None
 Reference books:
– Computer Networks: A Systems Approach by Larry L. Peterson.
– Kurose and Ross “Computer Networking: A Top-Down Approach
Featuring the Internet”, 3rd Edition, 2004.
– TCP/IP Illustrated, Volume 1: The Protocols by W. Richard Stevens
– W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff, "UNIX Network
Programming, Volume I: The Sockets Networking API", 3rd edition,
2003.
– TCP/IP Protocol Suite by Behrouz A. Forouzan (3rd Edition)
– Computer Networks by Andrew S. Tanenbaum
 Reference material
– Selected publications and standards
Spring 2007
5
Logistics & Pre-requisites
Lectures & Handouts
Computer Networks
– Will be available online
Office hours:
– Tuesday:
– 6:00 pm- 7:00 pm
Spring 2007
Programming
Experience
– Java, C, C# or C++
6
Grading policy
Assignments
5%
Quizzes
10%
Class participation
15%
OHT
30%
End-term
40%
Spring 2007
Assignments
– Individual
– No late submission
Quizzes
– Mostly unannounced
– Occasionally announced
7
Lets begin!
Spring 2007
8
Hubs vs. Bridges vs. Routers
 Hubs (aka Repeaters): Layer 1 devices
– repeat (i.e., regenerate) physical signals
 don’t understand MAC protocols!
 LANs connected by hubs belong to same collision domain
 Bridges (and Layer-2 Switches): Layer 2 devices
– store and forward layer-2 frames based on MAC addresses
 speak and obey MAC protocols
 bridges segregate LANs into different collision domains
 Routers (and Layer 3 Switches): Layer 3 devices
– store and forward layer-3 packets based on network layer addresses (e.g.,
IP addresses)
 rely on data link layer to deliver packets to (directly connected) next
hop
 network layer addresses are logical (i.e. virtual), need to map to MAC
addresses for packet delivery
Spring 2007
9
Switching and Forwarding
Bridges and Routers: store-and forward devices!
Function Division:
 input interfaces (input ports):
perform forwarding
– need to know to which output
ports to send frames/packets
– may enqueue packets and perform
scheduling
 switching Fabric:
– move frames or packets from input
ports to output ports
 output interfaces (output ports):
– may enqueue packets and perform
scheduling
– Perform MAC to transmit
frames/packets to next hop
Spring 2007
control
plane
Generic Switch Architecture
10
Input Port Functions
Physical layer:
bit-level reception
Data link layer:
e.g., Ethernet
Spring 2007
Decentralized switching:
 given datagram dest., lookup output port
using forwarding table in input port
memory
 goal: complete input port processing at
‘line speed’
 queuing: if datagrams arrive faster than
forwarding rate into switch fabric
11
Output Ports
Buffering required when datagrams arrive from fabric
faster than the transmission rate
Scheduling discipline chooses among queued datagrams for
transmission
Spring 2007
12
Generic Switch Architecture
 Input and output interfaces are connected
through a switching fabric (backplane)
 A backplane can be implemented by
– shared memory
input interface
output interface
Interconnection
Medium
(Backplane)
 bridges or low capacity routers (e.g.,
PC-based routers)
– shared bus
 E.g., “low end” routers
– point-to-point (switched)
interconnection switching fabric
 high perform switches (e.g., as used
in high capacity routers
Spring 2007
C
RI
B
RO
C
13
Three Types of Switching Fabrics
Spring 2007
14
Switching Via Memory
First generation routers:
 traditional computers with switching under direct
control of CPU
 packet copied to system’s memory
 speed limited by memory bandwidth (2 bus
crossings per datagram)
Input
Port
Memory
Output
Port
System Bus
Spring 2007
15
Switching Via a Bus
datagram from input port memory
to output port memory via a shared
bus
bus contention: switching speed
limited by bus bandwidth
1 Gbps bus, Cisco 1900: sufficient
speed for access and enterprise
routers (not regional or backbone)
Spring 2007
16
Switching Via An Interconnection Network
overcome bus bandwidth limitations
Banyan networks, other interconnection nets initially
developed to connect processors in multiprocessor
Advanced design: fragmenting datagram into fixed
length cells, switch cells through the fabric.
Cisco 12000: switches Gbps through the
interconnection network
Spring 2007
17
More on Bridges/Layer 2 Switches
Forwarding:
– look up forwarding table using destination MAC
address in a layer-2 frame
– forwarding table: constructed using “self-learning”
algo.
“Cut-through” switching optimization
– only buffer frame header (for output port lookup)
– then forward remaining bits directly
– reduced latency, but may forward “bad” packets (why?)
Backpressure flow control
– input port: 1 Gpbs, output port: 100 Mpbs
– buffer can only absorb temporary bursts
– send JAM signal on input power when buffer gets too full!
Spring 2007
18
A Few Words about VLAN
 Virtual LAN (VLAN) – defined in IEEE 802.1q
– Partition a physical LAN into several “logically separate” LANs
 reduce broadcast traffic on physical LAN!
 provide administrative isolation
– Extend over a WAN (wide area network), e.g.,
via layer 2 tunnels (e.g., L2TP, MPLS) over IP-based WANs!
 Two types: port-based or MAC address-based
– each port optionally configured with a VLAN id
– inbound packets tagged with this “VLAN” id
 require change of data frames, carry “VLAN id” tags
 tagged and untagged frames can co-exist
– “VLAN-aware” switches forward on ports part of same VLAN
 More complex ! - require administrative configuration
– static (“manual”) configuration
– more for info: google search on “VLAN tutorial”
Spring 2007
19
Forwarding in Layer 3
Putting in context
What does layer-3 (network layer) do?
– deliver packets “hop-by-hop” across a network
– rely on layer-2 to deliver between neighboring hops
Key Network Layer Functions
– Addressing: need a global (logical) addressing scheme
– Routing: build “map” of network, find routes, …
– Forwarding: actual delivery of packets!
Two basic network layer service models
– datagram: “connectionless”
– virtual circuit (VC): connection-oriented
Spring 2007
20
What Does Network Layer Do?
 End-to-end deliver packet from
sending to receiving hosts,
“hop-by-hop” thru network
– A network-wide concern!
– Involves every router, host
in the network
Compare:
– Transport layer
 between two end hosts
– Data link layer
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
 over a physical link directly
connecting two (or more)
hosts
Spring 2007
21
Network Layer Functions
 Addressing
– Globally unique address for each routable device
 Logical address, unlike MAC address (as you’ve seen earlier)
– Assigned by network operator
 Need to map to MAC address (as you’ll see later)
 Routing: building a “map” of network
– Which path to use to forward packets from src to dest
 Forwarding: delivery of packets hop by hop
– From input port to appropriate output port in a router
Routing and forwarding depend on network service
models: datagram vs. virtual circuit
Spring 2007
22
Routing & Forwarding:
Logical View of a Router
5
A
2
1
B
2
D
Spring 2007
3
3
1
C
5
1
E
F
2
23
Network Service Model
Q: What service model for
“channel” transporting
packets from sender to
receiver?
guaranteed bandwidth?
preservation of inter-packet
timing (no jitter)?
loss-free delivery?
in-order delivery?
congestion feedback to
sender?
Spring 2007
The most important
abstraction provided
by network layer:
? ?
?
virtual circuit
or
datagram?
24
Virtual Circuit vs. Datagram
 Objective of both: move packets through routers from source to destination
 Datagram Model:
– Routing: determine next hop to each destination a priori
– Forwarding: destination address in packet header, used at each
hop to look up for next hop
 routes may change during “session”
– analogy: driving, asking directions at every corner gas station,
or based on the road signs at every turn
 Virtual Circuit Model:
– Routing: determine a path from source to each destination
– “Call” Set-up: fixed path (“virtual circuit”) set up at “call” setup
time, remains fixed thru “call”
– Data Forwarding: each packet carries “tag” or “label” (virtual
circuit id, VCI), which determines next hop
– routers maintain ”per-call” state
Spring 2007
25
Virtual Circuit Switching
Explicit connection setup (and tear-down)
phase
Subsequence packets follow same circuit
Sometimes called connection-oriented model
still packet switching, not circuit switching!
Analogy:
phone call
0
0
3
1
2
Spring 2007
3
11 3
1
Switch 1
Switch 2
2
5
Each switch
maintains a
VC table
2
0 Switch 3
1
7
3
Host A
0
2
4
Host B
26
Datagram Switching
No connection setup phase
Each packet forwarded independently
Sometimes called connectionless model
Host D
Analogy: postal
system
Each switch
maintains a
forwarding
(routing) table
0
3
Host C
2
Host E
Sw itch 1
1
Host F
3
2 Sw itch 2
1
0
Host A
0 Sw itch 3 Host B
Host G
1
3
2
Host H
Spring 2007
27
Forwarding Tables: VC vs. Datagram
Virtual Circuit
Forwarding Table
Datagram Forwarding
Table
a.k.a. VC (Translation) Table
(switch 1, port 2)
VC In VC Out Port Out
5
6
…
Spring 2007
11
8
…
1
1
…
(switch 1)
Address
A
C
F
G
…
Port
2
3
1
1
…
28
More on Virtual Circuits
“source-to-dest path behaves much like telephone circuit”
(but actually over packet network)
 call setup/teardown for each call before data can flow
– need special control protocol: “signaling”
– every router on source-dest path maintains “state” (VCI
translation table) for each passing call
– VCI translation table at routers along the path of a call
“weaving together” a “logical connection” for the call
 link, router resources (bandwidth, buffers) may be reserved and allocated to
each VC
– to get “circuit-like” performance
Spring 2007
29
Virtual Circuit: Signaling Protocols
 used to setup, maintain teardown VC
 used in ATM, frame-relay, X.25
 used in part of today’s Internet: Multi-Protocol Label
Switching (MPLS) operated at “layer 2+1/2” (between data
link layer and network layer) for “traffic engineering” purpose
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
Spring 2007
6. Receive data application
3. Accept call
2. incoming call
transport
network
data link
physical
30
Virtual Circuit Setup/Teardown
Call Set-Up:
 Source: select a path from source to destination
– Use routing table (which provides a “map of network”)
 Source: send VC setup request control (“signaling”) packet
– Specify path for the call, and also the (initial) output VCI
– perhaps also resources to be reserved, if supported
 Each router along the path:
– Determine output port and choose a (local) output VCI for the call
 need to ensure that no two distinct VCs leaving the same output port
have the same VCI!
– Update VCI translation table (“forwarding table”)
 add an entry, establishing an mapping between incoming VCI & port
no. and outgoing VCI & port no. for the call
Call Tear-Down: similar, but remove entry instead
Spring 2007
31
green call
four “calls” going thru
the router, each entry
corresponding one call
purple call
blue call
orange call
VCI translation table (aka “forwarding table”), built at call set-up phase
1
2
3
2
1
1
1
2
During data packet forwarding phase, input VCI is used to look up the table,
and is “swapped” w/ output VCI (VCI translation, or “label swapping”)
Spring 2007
32
Virtual Circuit: Example
“call” from host A to host B along path:
host A router 1 router 2  router 3  host B
•each router along path
maintains an entry for
the call in its VCI
translation table
• the entries piece
together a “logical
connection” for the call
Router 4
0 Router 1
1
3
2 Router 2
2
5
3
1
11
0
Host A
7
0 Router 3
1
3
4
2
Spring 2007
Host B
33
Virtual Circuit Model: Pros and Cons
Full RTT for connection setup
– before sending first data packet.
Setup request carries full destination address
– each data packet contains only a small identifier
If a switch or a link in a connection fails
– new connection needs to be established.
Provides opportunity to reserve resources.
Spring 2007
34
ATM Networks
Study for Reference
Spring 2007
35
Datagram Networks: the Internet model
 no call setup at network layer
 routers: no state about end-to-end connections
– no network-level concept of “connection”
 packets forwarded using destination host address
– packets between same source-dest pair may take different
paths, when intermediate routes change!
application
transport
network
data link 1. Send data
physical
Spring 2007
application
transport
network
2. Receive data
data link
physical
36
Datagram Model
There is no round trip delay waiting for connection
setup; a host can send data as soon as it is ready.
Source host has no way of knowing if the network is
capable of delivering a packet or if the destination host
is even up.
Since packets are treated independently, it is possible to
route around link and node failures.
Since every packet must carry the full address of the
destination, the overhead per packet is higher than for
the connection-oriented model.
Spring 2007
37
Network Layer Service Models:
Network
Architecture
Internet
Service
Model
Guarantees ?
Congestion
Bandwidth Loss Order Timing feedback
best effort none
ATM
CBR
ATM
VBR
ATM
ABR
ATM
UBR
constant
rate
guaranteed
rate
guaranteed
minimum
none
no
no
no
yes
yes
yes
yes
yes
yes
no
yes
no
no (inferred
via loss)
no
congestion
no
congestion
yes
no
yes
no
no
 Internet model being extended: MPLS, Diffserv
Spring 2007
38
Datagram or VC: Why?
Internet
 data exchange among computers
– “elastic” service, no strict
timing req.
 “smart” end systems (computers)
– can adapt, perform
control, error recovery
– simple inside network,
complexity at “edge”
 many link types
– different characteristics
– uniform service difficult
Spring 2007
ATM
 evolved from telephony
 human conversation:
– strict timing, reliability
requirements
– need for guaranteed
service
 “dumb” end systems
– telephones
– complexity inside network
MPLS
 evolve from ATM
– traffic engineering, fast path
restoration (a priori “backup”
paths)
39
IP Addressing: Basics
Globally unique (for “public” IP addresses)
IP address: 32-bit identifier for host, router interface
Interface: connection between host/router and
physical link
– router’s typically have multiple interfaces
– host may have multiple interfaces
– IP addresses associated with each interface
Dot notation (for ease of human reading)
223.1.1.1 = 11011111 00000001 00000001 00000001
223
Spring 2007
1
1
1
40
IP Addressing: Network vs. Host
223.1.1.2
multi-access
LAN
 Two-level hierarchy
223.1.1.1
223.1.1.4
– network part (high order
bits)
223.1.1.3
– host part (low order bits)
 What’s a network ?
223.1.7.0
223.1.9.2
point-to-point
(from IP address perspective)
link
– device interfaces with
same network part of IP 223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
address
– can physically reach each 223.1.2.6
223.1.3.27
other without intervening
223.1.2.1
223.1.2.2 223.1.3.1
223.1.3.2
router
Spring 2007
41
“Classful” IP Addressing
class
77
A
0 network
B
10
C
110
D
1110
15
23
31
host
network
128.0.0.0 to
191.255.255.255
host
network
multicast address
1.0.0.0 to
127.255.255.255
host
192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255
32 bits
• Disadvantage: inefficient use of address space, address
space exhaustion
• e.g., class B net allocated enough addresses for 65K
hosts, even if only 2K hosts in that network
Spring 2007
42
Classless Addressing: CIDR
CIDR: Classless InterDomain Routing
Network portion of address is of arbitrary length
Addresses allocated in contiguous blocks
– Number of addresses assigned always power of 2
Address format: a.b.c.d/x
– x is number network
of bits in network portion
of
host
part
part
address
11001000 00010111 00010000 00000000
200.23.16.0/23
Spring 2007
43
Representation of Address Blocks
 “Human Readable” address format: a.b.c.d/x
– x is number of bits in network portion of address
 machine representation of a network (addr block):
using a combination of
– first IP of address blocks of the network
– network mask ( x “1”’s followed by 32-x “0”’s
network w/ address block: 200.23.16.0/23
first IP address of address block:
11001000 00010111 00010000 00000000
network mask:
11111111 11111111 11111110 00000000
Spring 2007
44
More Examples
Three Address Blocks:
first IP address:
11001000 00010111 00010000 00000000
network mask:
11111111 11111111 11111000 00000000
first IP address:
11001000 00010111 00011000 00000000
network mask:
11001000 00010111 00011000 00000000
first IP address:
11001000 00010111 00011001 00000000
network mask:
11001000 00010111 00011111 11111111
Spring 2007
Given an IP address, which
network (or address block)
does it belong to?
Example 1:
11001000 00010111 00010110 10100001
Example 2:
11001000 00010111 00011000 10101010
Use longest prefix matching!
45
Special IP Addresses
Network address: host id = all 0’s
Directed broadcast address: host id = all 1’s
Local broadcast address: all 1’s
Local host address (this computer): all 0’s
Loopback address
– network id = 127, any host id (e.g. 127.0.0.1)
Spring 2007
46
IP Addresses: How to Get One?
Q: How does host get IP address?
“static” assigned: i.e., hard-coded in a file
– Wintel: control-panel->network->configuration>tcp/ip->properties
– UNIX: /etc/rc.config
Dynamically assigned: using DHCP (Dynamic Host
Configuration Protocol)
– dynamically get address from as server
– “plug-and-play”
Spring 2007
47
DHCP: Dynamic Host Configuration
Protocol
Goal: allow host to dynamically obtain its IP address from
network server when it joins network
Can renew its lease on address in use
Allows reuse of addresses (only hold address while connected
an “on”
Support for mobile users who want to join network (more
shortly)
DHCP overview:
– host broadcasts “DHCP discover” msg
– DHCP server responds with “DHCP offer” msg
– host requests IP address: “DHCP request” msg
– DHCP server sends address: “DHCP ack” msg
Spring 2007
48
DHCP Client-Server Scenario
A
223.1.2.1
DHCP
server
223.1.1.1
223.1.1.2
B
223.1.1.4
223.1.2.2
223.1.1.3
223.1.3.1
Spring 2007
223.1.2.9
223.1.3.27
223.1.3.2
E
arriving DHCP
client needs
address in this
network
49
DHCP Client-Server Scenario
DHCP server: 223.1.2.5
DHCP discover
arriving
client
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
time
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
Spring 2007
50
IP Addresses: How to Get One? …
Q: How does network get network part of IP
addr?
A: gets allocated portion of its provider ISP’s
address space
ISP's block
11001000 00010111 00010000 00000000
200.23.16.0/20
Organization 0
Organization 1
Organization 2
...
11001000 00010111 00010000 00000000
11001000 00010111 00010010 00000000
11001000 00010111 00010100 00000000
…..
….
200.23.16.0/23
200.23.18.0/23
200.23.20.0/23
….
Organization 7
11001000 00010111 00011110 00000000
200.23.30.0/23
Spring 2007
51
IP Addressing: the Last Word...
Q: How does an ISP get block of addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers
– allocates addresses
– manages DNS
– assigns domain names, resolves disputes
Spring 2007
52
IP Forwarding & IP/ICMP Protocol
Transport layer: TCP, UDP
IP protocol
•addressing conventions
•packet handling conventions
Routing protocols
•path selection
•RIP, OSPF, BGP
Network
layer
routing
table
ICMP protocol
•error reporting
•router “signaling”
Data Link layer (Ethernet, WiFi, PPP, …)
Physical Layer (SONET, …)
Spring 2007
53
IP Service Model and Datagram Forwarding
 Connectionless (datagram-based)
– Each datagram carries source and destination
 Best-effort delivery (unreliable service)
– packets may be lost
– packets can be delivered out of order
– duplicate copies of a packet may be delivered
– packets can be delayed for a long time
 Forwarding and IP address
– forwarding based on network id
 Delivers packet to the appropriate network
 Once on destination network, direct delivery using host id
 IP destination-based next-hop forwarding paradigm
– Each host/router has IP forwarding table
 Entries like <network prefix, next-hop, output interface>
– Try out “netstat –rn” command
Spring 2007
54
IP Datagram Format
IP protocol version
number
header length
(bytes)
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
how much overhead
with TCP?
 20 bytes of TCP
 20 bytes of IP
 = 40 bytes + app
32 bits
head. type of
length
ver
len service
fragment
16-bit identifier flgs
offset
upper
time to
Internet
layer
live
checksum
32 bit source IP address
total datagram
length (bytes)
for
fragmentation/
reassembly
32 bit destination IP address
Options (if any)
data
(variable length,
typically a TCP
or UDP segment)
E.g. timestamp,
record route
taken, specify
list of routers
to visit.
layer overhead
Spring 2007
55
IP Datagram Forwarding Model
forwarding table in A
Dest. Net. next router Nhops
223.1.1
223.1.2
223.1.3
IP datagram:
misc source dest
fields IP addr IP addr
data
 datagram remains
unchanged, as it travels
source to destination
 addr fields of interest here
A
B
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.1
Spring 2007
223.1.1.4
223.1.1.4
1
2
2
223.1.3.27
E
223.1.3.2
56
IP Forwarding Table
4 billion possible entries!
(in reality, far less, but can still have millions of “routes”)
forwarding table entry format
destination network
(1st IP address , network mask )
next-hop (IP address)
link interface
11001000 00010111 00010000 00000000,
200.23.16.1
0
11001000 00010111 00011000 00000000,
11111111 11111111 11111111 00000000
- (direct)
1
11001000 00010111 00011001 00000000,
11111111 11111111 11111000 00000000
200.23.25.6
2
otherwise
128.30.0.1
3
11111111 11111111 11111000 00000000
Spring 2007
57
Forwarding Table Lookup
using Longest Prefix Matching
Prefix Match
11001000 00010111 00010
11001000 00010111 00011000
11001000 00010111 00011
otherwise
Next Hop
200.23.16.1
200.23.25.6
128.30.0.1
Link Interface
0
1
2
3
Examples
DA: 11001000 00010111 00010110 10100001
Which interface?
DA: 11001000 00010111 00011000 10101010
Which interface?
Spring 2007
58
IP Forwarding: Destination in Same Net
forwarding table in A
Dest. Net. next router Nhops
misc
data
fields 223.1.1.1 223.1.1.3
Starting at A, send IP
datagram addressed to B:
 look up net. address of B in
forwarding table
 find B is on same net. as A
 link layer will send datagram
directly to B inside link-layer
frame
– B and A are directly
connected
Spring 2007
223.1.1
223.1.2
223.1.3
A
B
223.1.1.4
223.1.1.4
1
2
2
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.1
223.1.3.27
E
223.1.3.2
59
IP Datagram Forwarding on Same LAN:
Interaction of IP and data link layers
Starting at A, given IP
datagram addressed to B:
A
 look up net. address of B, find
B on same net. as A
 link layer send datagram to B
inside link-layer frame
frame source,
dest address
B’s MAC A’s MAC
addr
addr
223.1.1.1
223.1.2.1
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.1.3
223.1.3.27
datagram source, 223.1.3.1
dest address
A’s IP
addr
B’s IP
addr
223.1.2.2
E
223.1.3.2
IP payload
datagram
frame
Spring 2007
60
MAC (Physical) Addresses
 used to get frames from one interface to another physically-connected
interface (same physical network, i.e., p2p or LAN)
 48 bit MAC address (for most LANs)
– fixed for each adaptor, burned in the adapter ROM
– MAC address allocation administered by IEEE
 1st bit: 0 unicast, 1 multicast.
 all 1’s : broadcast
 MAC flat address -> portability
– can move LAN card from one LAN to another
 MAC addressing operations on a LAN:
– each adaptor on the LAN “sees” all frames
– accept a frame if dest. MAC address matches its own MAC address
– accept all broadcast (MAC= all1’s) frames
– accept all frames if set in “promiscuous” mode
– can configure to accept certain multicast addresses (first bit = 1)
Spring 2007
61
MAC vs. IP Addresses
32-bit IP address:
 network-layer address, logical
– i.e., not bound to any physical device, can be re-assigned
 IP hierarchical address NOT portable
– depends on IP network to which an interface is attached
– when move to another IP network, IP address re-assigned
 used to get IP packets to destination IP network
– Recall how IP datagram forwarding is performed
 IP network is “virtual,” actually packet delivery done by the underlying physical
networks
– from source host to destination host, hop-by-hop via IP routers
– over each link, different link layer protocol used, with its own frame
headers, and source and destination MAC addresses
 Underlying physical networks do not understand IP protocol and
datagram format!
Spring 2007
62
ARP: Address Resolution Protocol
Question: how to determine  Each IP node (host, router)
MAC address of B
on LAN has ARP table
knowing B’s IP address?
 ARP Table: IP/MAC
address mappings for some
LAN nodes
< IP address; MAC address;
timer>
– timer: time after
which address
mapping will be
forgotten (typically 20
min)
Spring 2007
63
ARP Protocol
 A wants to send datagram
to B, and A knows B’s IP
address.
 A looks up B’s MAC
address in its ARP table
 Suppose B’s MAC address
is not in A’s ARP table.
 A broadcasts (why?) ARP
query packet, containing
B's IP address
– all machines on LAN
receive ARP query
Spring 2007
 B receives ARP packet, replies to
A with its (B's) MAC address
– frame sent to A’s MAC
address (unicast)
 A caches (saves) IP-to-MAC address
pair in its ARP table until
information becomes old (times out)
– soft state: information that
times out (goes away) unless
refreshed
 ARP is “plug-and-play”:
– nodes create their ARP
tables without intervention
from net administrator
64
ARP Messages
Hardware Address Type: e.g., Ethernet
Protocol address Type: e.g., IP
Operation: ARP request or ARP response
Spring 2007
65
ARP Request & Response Processing
The requester broadcasts ARP request
The target node unicasts (why?) ARP reply to requester
– With its physical address
– Adds the requester into its ARP table (why?)
On receiving the response, requester
– updates its table, sets timer
Other nodes upon receiving the ARP request
– Refresh the requester entry if already there
– No action otherwise (why?)
Some questions to think about:
– Shall requester buffer IP datagram while performing ARP?
– What shall requester do if never receive any ARP response?
Spring 2007
66
ARP Operation Illustration
Spring 2007
67
IP Forwarding: Destination in Diff. Net
misc
data
fields 223.1.1.1 223.1.2.3
forwarding table in A
Dest. Net. next router Nhops
223.1.1
1
223.1.2
223.1.1.4
2
223.1.3
223.1.1.4
2
Starting at A, dest. E:
 look up network address of E in
forwarding table
 E on different network
– A, E not directly attached
 routing table: next hop router to E
is 223.1.1.4
 link layer sends datagram to router
223.1.1.4 inside link-layer frame
 datagram arrives at 223.1.1.4
 continued…..
Spring 2007
A
B
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.3.1
223.1.2.1
223.1.2.9
223.1.2.2
223.1.3.27
E
223.1.3.2
68
IP Forwarding: Destination in Diff. Net …
misc
data
fields 223.1.1.1 223.1.2.3
Arriving at 223.1.4, destined for
223.1.2.2
 look up network address of E in
router’s forwarding table
 E on same network as router’s
interface 223.1.2.9
– router, E directly attached
 link layer sends datagram to
223.1.2.2 inside link-layer frame via
interface 223.1.2.9
 datagram arrives at 223.1.2.2!!!
(hooray!)
Spring 2007
forwarding table in router
Dest. Net router Nhops interface
223.1.1
223.1.2
223.1.3
A
-
1
1
1
223.1.1.4
223.1.2.9
223.1.3.27
223.1.1.1
223.1.2.1
B
223.1.1.2
223.1.1.4
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.1
223.1.3.27
E
223.1.3.2
69
Forwarding to Another LAN:
Interaction of IP and Data Link Layer
walkthrough: send datagram from A to B via R
assume A knows B IP address
A
R
B
 Two ARP tables in router R, one for each IP network (LAN)
 In routing table at source host, find router 111.111.111.110
 In ARP table at source, find MAC address E6-E9-00-17-BB-4B, etc
Spring 2007
70
A
R
B
 A creates datagram with source A, destination B
 A uses ARP to get R’s MAC address for 111.111.111.110
 A creates link-layer frame with R's MAC address as dest,
frame contains A-to-B IP datagram
 A’s data link layer sends frame
 R’s data link layer receives frame
 R removes IP datagram from Ethernet frame, sees its
destined to B
 R uses ARP to get B’s physical layer address
 R creates frame containing A-to-B IP datagram sends to B
Spring 2007
71
IP Datagram Format Again
IP protocol version
number
header length
(bytes)
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
how much overhead
with TCP?
 20 bytes of TCP
 20 bytes of IP
 = 40 bytes + app
32 bits
head. type of
length
ver
len service
fragment
16-bit identifier flgs
offset
upper
time to
Internet
layer
live
checksum
32 bit source IP address
total datagram
length (bytes)
for
fragmentation/
reassembly
32 bit destination IP address
Options (if any)
data
(variable length,
typically a TCP
or UDP segment)
E.g. timestamp,
record route
taken, specify
list of routers
to visit.
layer overhead
Spring 2007
72
Fields in IP Datagram
 IP protocol version: current version is 4, IPv4, new: IPv6
 Header length: number of 32-bit words in the header
 Type of Service:
– 3-bit priority,e.g, delay, throughput, reliability bits, …
 Total length: including header (maximum 65535 bytes)
 Identification: all fragments of a packet have same
identification
 Flags: don’t fragment, more fragments
 Fragment offset: where in the original packet (count in 8 byte
units)
 Time to live: maximum life time of a packet
 Protocol Type: e.g., ICMP, TCP, UDP etc
 IP Option: non-default processing, e.g., IP source routing
option, etc.
Spring 2007
73
IP Fragmentation & Reassembly: Why
 network links have MTU
(max.transfer size) - largest
possible link-level frame.
– different link types,
different MTUs
fragmentation:
in: one large datagram
out: 3 smaller datagrams
 large IP datagram divided
(“fragmented”) within net
– one datagram becomes
several datagrams
– “reassembled” only at
final destination
– IP header bits used to
identify, order related
fragments
Spring 2007
reassembly
74
IP Fragmentation & Reassembly: How
 An IP datagram is chopped by a router into smaller pieces if
– datagram size is greater than network MTU
– Don’t fragment option is not set
 Each datagram has unique datagram identification
– Generated by source hosts
– All fragments of a packet carry original datagram id
 All fragments except the last have more flag set
– Fragment offset and Length fields are modified appropriately
 Fragments of IP packet can be further fragmented by other
routers along the way to destination !
 Reassembly only done at destination host (why?)
– Use IP datagram id, fragment offset, fragment flags. Length
– A timer is set when first fragment is received (why?)
Spring 2007
75
IP Fragmentation and Reassembly: Exp
Example
 4000 byte
datagram
 MTU = 1500 bytes
length ID fragflag offset
=4000 =x
=0
=0
One large datagram becomes
several smaller datagrams
length ID fragflag offset
=1500 =x
=1
=0
length ID fragflag offset
=1500 =x
=1
=1480
length ID fragflag offset
=1040 =x
=0
=2960
Spring 2007
76
ICMP: Internet Control Message Protocol
 used by hosts, routers, gateways Type Code description
to communication network-level 0
0
echo reply (ping)
information
3
0
dest. network unreachable
– error reporting:
unreachable host,
network, port, protocol
– echo request/reply
(used by ping)
 network-layer “above” IP:
– ICMP msgs carried in
IP datagrams
 ICMP message: type, code plus
first 8 bytes of IP datagram
causing error
Spring 2007
3
3
3
3
3
4
1
2
3
6
7
0
8
9
10
11
12
0
0
0
0
0
dest host unreachable
dest protocol unreachable
dest port unreachable
dest network unknown
dest host unknown
source quench (congestion
control - not used)
echo request (ping)
route advertisement
router discovery
TTL expired
bad IP header
77
ICMP Message Transport & Usage
ICMP messages carried in IP datagrams
Treated like any other datagrams
– But no error message sent if ICMP message causes error
Message sent to the source
– 8 bytes of the original header included
ICMP Usage (non-error, informational): Examples
– Testing reachability: ICMP echo request/reply
 ping
– Tracing route to a destination: Time-to-live field
 traceroute
– Path MTU discovery
 Don’t fragment bit
– IP direct (for hosts only): inform hosts of better routes
Spring 2007
78
Questions?
That’s all for today!
Spring 2007
79