3rd Edition: Chapter 4 - University of Balochistan
Download
Report
Transcript 3rd Edition: Chapter 4 - University of Balochistan
Chapter 4
Network Layer
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs.
They obviously represent a lot of work on our part. In return for use, we only
ask the following:
If you use these slides (e.g., in a class) that you mention their source
(after all, we’d like people to use our book!)
If you post any slides on a www site, that you note that they are adapted
from (or perhaps identical to) our slides, and note our copyright of this
material.
Computer
Networking: A Top
Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
Thanks and enjoy! JFK/KWR
All material copyright 1996-2012
J.F Kurose and K.W. Ross, All Rights Reserved
Network Layer 4-1
Network layer
transport segment from
sending to receiving host
on sending side
encapsulates segments
into datagrams
on receiving side, delivers
segments to transport
layer
network layer protocols
in every host, router
router examines header
fields in all IP datagrams
passing through it
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
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
Network Layer 4-2
Two key network-layer functions
forwarding: move packets
from router’s input to
appropriate router
output
routing: determine route
taken by packets from
source to dest.
routing algorithms
analogy:
routing: process of
planning trip from source
to dest
forwarding: process of
getting through single
interchange
Network Layer 4-3
Interplay between routing and forwarding
routing algorithm
routing algorithm determines
end-end-path through network
local forwarding table
header value output link
forwarding table determines
local forwarding at this router
0100
0101
0111
1001
3
2
2
1
value in arriving
packet’s header
0111
1
3 2
Network Layer 4-4
Datagram networks
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
application
transport
network 1. send datagrams
data link
physical
application
transport
2. receive datagrams network
data link
physical
Network Layer 4-5
Datagram forwarding table
routing algorithm
local forwarding table
dest address output link
address-range 1
address-range 2
address-range 3
address-range 4
4 billion IP addresses, so
rather than list individual
destination address
list range of addresses
(aggregate table entries)
3
2
2
1
IP destination address in
arriving packet’s header
1
3 2
Network Layer 4-6
Datagram forwarding table
Destination Address Range
Link Interface
11001000 00010111 00010000 00000000
through
11001000 00010111 00010111 11111111
0
11001000 00010111 00011000 00000000
through
11001000 00010111 00011000 11111111
1
11001000 00010111 00011001 00000000
through
11001000 00010111 00011111 11111111
2
otherwise
3
Q: but what happens if ranges don’t divide up so nicely?
Network Layer 4-7
Longest prefix matching
longest prefix matching
when looking for forwarding table entry for given
destination address, use longest address prefix that
matches destination address.
Destination Address Range
Link interface
11001000 00010111 00010*** *********
0
11001000 00010111 00011000 *********
1
11001000 00010111 00011*** *********
2
otherwise
3
examples:
DA: 11001000 00010111 00010110 10100001
DA: 11001000 00010111 00011000 10101010
which interface?
which interface?
Network Layer 4-8
Router architecture overview
two key router functions:
run routing algorithms/protocol (RIP, OSPF, BGP)
forwarding datagrams from incoming to outgoing link
forwarding tables computed,
pushed to input ports
routing
processor
routing, management
control plane (software)
forwarding data
plane (hardware)
high-seed
switching
fabric
router input ports
router output ports
Network Layer 4-9
Input port functions
link
layer
protocol
(receive)
line
termination
lookup,
forwarding
switch
fabric
queueing
physical layer:
bit-level reception
data link layer:
e.g., Ethernet
see chapter 5
decentralized switching:
given datagram dest., lookup output port
using forwarding table in input port
memory (“match plus action”)
goal: complete input port processing at
‘line speed’
queuing: if datagrams arrive faster than
forwarding rate into switch fabric
Network Layer 4-10
Switching fabrics
transfer packet from input buffer to appropriate
output buffer
switching rate: rate at which packets can be
transfer from inputs to outputs
often measured as multiple of input/output line rate
N inputs: switching rate N times line rate desirable
three types of switching fabrics
memory
memory
bus
crossbar
Network Layer 4-11
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
(e.g.,
Ethernet)
memory
output
port
(e.g.,
Ethernet)
system bus
Network Layer 4-12
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
32 Gbps bus, Cisco 5600: sufficient
speed for access and enterprise
routers
bus
Network Layer 4-13
Switching via interconnection network
overcome bus bandwidth limitations
banyan networks, crossbar, 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 60 Gbps
through the interconnection
network
crossbar
Network Layer 4-14
Output ports
switch
fabric
datagram
buffer
queueing
link
layer
protocol
(send)
line
termination
buffering required when datagrams arrive from
fabric faster than the transmission rate
scheduling discipline chooses among queued
datagrams for transmission
Network Layer 4-15
Output port queueing
switch
fabric
at t, packets more
from input to output
switch
fabric
one packet time later
buffering when arrival rate via switch exceeds
output line speed
queueing (delay) and loss due to output port buffer
overflow!
Network Layer 4-16
Input port queuing
fabric slower than input ports combined -> queueing may
occur at input queues
queueing delay and loss due to input buffer overflow!
Head-of-the-Line (HOL) blocking: queued datagram at front
of queue prevents others in queue from moving forward
switch
fabric
output port contention:
only one red datagram can be
transferred.
lower red packet is blocked
switch
fabric
one packet time later:
green packet
experiences HOL
blocking
Network Layer 4-17
The Internet network layer
host, router network layer functions:
transport layer: TCP, UDP
IP protocol
routing protocols
network
layer
• addressing conventions
• datagram format
• packet handling conventions
• path selection
• RIP, OSPF, BGP
forwarding
table
ICMP protocol
• error reporting
• router
“signaling”
link layer
physical layer
Network Layer 4-18
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?
20 bytes of TCP
20 bytes of IP
= 40 bytes + app
layer overhead
32 bits
head. type of
length
ver
len service
fragment
flgs
16-bit identifier
offset
upper
time to
header
layer
live
checksum
total datagram
length (bytes)
for
fragmentation/
reassembly
32 bit source IP address
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.
Network Layer 4-19
IP fragmentation, reassembly
fragmentation:
in: one large datagram
out: 3 smaller datagrams
…
reassembly
…
network links have MTU
(max.transfer size) largest possible link-level
frame
different link types,
different MTUs
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
Network Layer 4-20
IP fragmentation, reassembly
example:
4000 byte datagram
MTU = 1500 bytes
1480 bytes in
data field
offset =
1480/8
length ID fragflag
=4000 =x
=0
offset
=0
one large datagram becomes
several smaller datagrams
length ID fragflag
=1500 =x
=1
offset
=0
length ID fragflag
=1500 =x
=1
offset
=185
length ID fragflag
=1040 =x
=0
offset
=370
Network Layer 4-21
IP addressing: introduction
IP address: 32-bit
223.1.1.1
identifier for host, router
interface
223.1.1.2
interface: connection
between host/router and
physical link
223.1.2.1
223.1.1.4
223.1.3.27
223.1.1.3
223.1.2.2
router’s typically have
multiple interfaces
host typically has one or
two interfaces (e.g., wired
Ethernet, wireless 802.11)
IP addresses associated
with each interface
223.1.2.9
223.1.3.1
223.1.3.2
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
1
Network Layer 4-22
IP address format
The 32-bit IP address is broken up into 4 octets,
which are arranged into a dotted-decimal
notation scheme.
An octet is a set of 8 bits & not a musical
instrument.
Example of an IP version 4:
172.64.126.52
Network Layer 4-23
Decimal to binary conversion
27
26
25
24
23
22
21
20
1
1
1
1
1
1
1
1
128
64
32
16
8
4
2
1
The binary number 1111 1111 converts into the decimal
number:
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255
The largest decimal number that can be stored in an IP address octet is 255
Network Layer 4-24
IP address classes
Class
Leftmost bits
Start address
Finish address
A
0xxx
0.0.0.0
127.255.255.255
B
10xx
128.0.0.0
191.255.255.255
C
110x
192.0.0.0
223.255.255.255
D
1110
224.0.0.0
239.255.255.255
E
1111
240.0.0.0
255.255.255.255
Class D addresses are used for multicasting and class E addresses
Reserved for experimental uses
Network Layer 4-25
Network and host parts
The 32 bits of the IP address are divided into
Network & Host portions, with the octets
assigned as a part of one or the other.
Network & Host Representation
By IP Address Class
Class
Octet1
Octet2
Octet3
Octet4
Class A
Network
Host
Host
Host
Class B
Network
Network
Host
Host
Class C
Network
Network
Network
Host
Network Layer 4-26
Network mask
Class A, 255.0.0.0
Class B, 255.255.0.0
Class C, 255.255.255.0
An AND of an IP address with the network mask
results into the network address
IP Address
Mask
N/W
Address
138.
10001010
11111111
138.
101.
01100101
11111111
101.
114.
01110010
00000000
0.
250
11111010
00000000
0
Network Layer 4-27
Special addresses
Network
address
Host address
Description
Example
0’s
0’s
Default Cisco
Route
0.0.0.0
1’s
1’s
Broadcast to local
network
255.255.255.255
N/W address
1’s
Broadcast to N/W
address
192.21.12.255
127
Any
Loopback testing
127.0.0.1
Network Layer 4-28
Private addresses
Class
Private start
address
Private last
address
A
B
10.0.0.0
172.16.0.0
10.255.255.255
172.31.255.255
C
192.168.0.0
192.168.255.255
Private addresses can be freely used on networks which are not
Connected to the Internet or they are behind Gateways or Firewalls
That use NAT(Network Address Translation)
Network Layer 4-29
IP addresses: how to get one?
Q: How does a host get IP address?
hard-coded by system admin in a file
Windows: control-panel->network->configuration>tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol:
dynamically get address from as server
“plug-and-play”
Network Layer 4-30
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/“on”)
support for mobile users who want to join network (more
shortly)
DHCP overview:
host broadcasts “DHCP discover” msg [optional]
DHCP server responds with “DHCP offer” msg [optional]
host requests IP address: “DHCP request” msg
DHCP server sends address: “DHCP ack” msg
Network Layer 4-31
DHCP client-server scenario
DHCP server: 223.1.2.5
DHCP discover
src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
arriving
client
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
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
Network Layer 4-32
IP addressing: the last word...
Q: how does an ISP get block of addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers http://www.icann.org/
allocates addresses
manages DNS
assigns domain names, resolves disputes
Network Layer 4-33
NAT: network address translation
rest of
Internet
local network
(e.g., home network)
10.0.0/24
10.0.0.1
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
all datagrams leaving local
network have same single
source NAT IP address:
138.76.29.7,different source
port numbers
datagrams with source or
destination in this network
have 10.0.0/24 address for
source, destination (as usual)
Network Layer 4-34
NAT: network address translation
motivation: local network uses just one IP address as far
as outside world is concerned:
range of addresses not needed from ISP: just one
IP address for all devices
can change addresses of devices in local network
without notifying outside world
can change ISP without changing addresses of
devices in local network
devices inside local net not explicitly addressable,
visible by outside world (a security plus)
Network Layer 4-35
NAT: network address translation
implementation: NAT router must:
outgoing datagrams: replace (source IP address, port #) of
every outgoing datagram to (NAT IP address, new port #)
. . . remote clients/servers will respond using (NAT IP
address, new port #) as destination addr
remember (in NAT translation table) every (source IP address,
port #) to (NAT IP address, new port #) translation pair
incoming datagrams: replace (NAT IP address, new port #) in
dest fields of every incoming datagram with corresponding
(source IP address, port #) stored in NAT table
Network Layer 4-36
NAT: network address translation
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
NAT translation table
WAN side addr
LAN side addr
1: host 10.0.0.1
sends datagram to
128.119.40.186, 80
138.76.29.7, 5001 10.0.0.1, 3345
……
……
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
2
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: reply arrives
dest. address:
138.76.29.7, 5001
3
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.2
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-37
NAT: network address translation
16-bit port-number field:
60,000 simultaneous connections with a single
LAN-side address!
NAT is controversial:
routers should only process up to layer 3
violates end-to-end argument
• NAT possibility must be taken into account by app
designers, e.g., P2P applications
address shortage should instead be solved by
IPv6
Network Layer 4-38
Subnetting
Enables to divide one physical network into
several logically divided sub-networks
Smaller broadcast domain
Traffic reduction
Security
Network Layer 4-39
A network with two levels of
hierarchy (not subnetted)
Network Layer 4-40
A network with three levels of
hierarchy (subnetted)
Network Layer 4-41
Addresses in a network with
and without subnetting
Network Layer 4-42
Default mask and subnet mask
Network Layer 4-43
Finding the Subnet Address
Given an IP address, the subnet address can be
found in the same way as for the network address
Apply the AND operation to the binary of IP address
and the subnet mask
Network Layer 4-44
Example
What is the subnetwork address if the host
address is 172.16.13.29 and the subnet mask is
255.255.255.0?
10101100
00010000
00001101
00011101
11111111
11111111
11111111
00000000
10101100
00010000
00001101
00000000
Hence the subnet address is 172.16.13.0
Network Layer 4-45
Creating the subnets
Class B add.
172.
0 subnet
10101100000100000000000000000000
Subnet 1
10101100000100000000000100000000
Subnet 2
10101100000100000000001100000000
16.
0.
0
….
Subnet 254
10101100000100001111111000000000
Broadcast
subnet
10101100000100001111111100000000
Number of subnets=2Number of subnet bits-2
Subnet 0 and the broadcast subnets should not be used
Network Layer 4-46
Valid IP address in subnet 1
Subnet 1
10101100000100000000000100000000
1st IP
10101100000100000000000100000001
2nd IP
10101100000100000000000100000011
….
. . . .
Last IP
10101100000100000000000111111110
Bcast IP
10101100000100000000000111111111
# valid IP addresses or # hosts=2Number of host bits - 2
In dotted decimal
1st IP
172.16.1.1
2nd IP
172.16.1.1
Last IP
172.16.1.254
Broadcast IP
172.16.1.255
Network Layer 4-47
Example
Subnet the class C IP, 192.168.1.0, using three bits
from the host part
subnet mask 255.255.255.224
Network Layer 4-48
Example
192.168.1.0
Usable subnets
1st Subnet
Last Subnet
10100000.1001000.00000001.00000000
10100000.1001000.00000001.00100000
10100000.1001000.00000001.01000000
10100000.1001000.00000001.10000000
10100000.1001000.00000001.10100000
10100000.1001000.00000001.01100000
10100000.1001000.00000001.11000000
10100000.1001000.00000001.11100000
Write the valid IP address of subnet 2
Network Layer 4-49
Solution
Conversion from binary to decimal
Subnet number is 192.168.1.64
First address: 192.168.1.65
Broadcast address: 192.168.1.95 (turn all the host
bits into 1)
Last address: 192.168.1.94 (subtract 1 from the
broadcast address)
Other addresses are in the range from 1st to last
Network Layer 4-50
Prefix notation
Subnet masks have consecutive numbers of 1s
255.255.0.0 =
11111111.11111111.00000000.00000000
Can be written as /16
Means that the first 16 bits represent the
network part
Example, 192.168.1.70/27 has a 27 bits prefix
Network Layer 4-51
Finding the subnet number
Given a subnetted IP address, 192.168.1.70/27,
find the subnet number, and range of IP addresses
in the subnet
Conversion into binary, AND operation
Can we do it without using binary conversion?
Network Layer 4-52
Finding the subnet number
Find the magic number MN=256 – value of the
mask’s interesting octet
MN=256-224=32
Find the closest multiple to MN that is not
greater than the address’ interesting octet (i.e.
70)
32*2=64 put this value in the interesting octet i.e.
192.168.1.64 (subnet number)
The first address: 192.168.1.65
Network Layer 4-53
Finding the broadcast address
Use the magic number again
The broadcast address= MN+ Subnet number-1
MN+ Subnet number-1=32+64-1 = 95
The broadcast address=192.168.1.95
The range of valid IP addresses: 192.168.1.65 to
192.168.1.94
Network Layer 4-54