Вы находитесь на странице: 1из 32

Chapter 4

Network Layer

A note on the use of these ppt slides:


Were making these slides freely available to all (faculty, students, readers). Computer
Theyre 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. Networking: A Top
Down Approach
They obviously represent a lot of work on our part. In return for use, we only
ask the following:
v If you use these slides (e.g., in a class) that you mention their source
(after all, wed like people to use our book!)
6th edition
v If you post any slides on a www site, that you note that they are adapted Jim Kurose, Keith Ross
from (or perhaps identical to) our slides, and note our copyright of this
material.
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


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 virtual circuit and link state
datagram networks distance vector
4.3 whats inside a router hierarchical routing
4.4 IP: Internet Protocol 4.6 routing in the Internet
datagram format RIP
IPv4 addressing OSPF
BGP
ICMP
IPv6 4.7 broadcast and multicast
routing

Network Layer 4-2


Network layer
application

v transport segment from transport


network

sending to receiving host data link


physical
network network

v on sending side
data link data link
network physical
physical
data link

encapsulates segments physical network


data link
network
data link

into datagrams physical physical

v on receiving side, delivers


network network
data link data link

segments to transport
physical physical
network
data link

layer
physical
application
network transport

v network layer protocols


data link network network
network physical data link data link

in every host, router data link


physical
physical physical

v router examines header


fields in all IP datagrams
passing through it
Network Layer 4-3
Two key network-layer functions
v forwarding: move packets analogy:
from routers input to
appropriate router v routing: process of
output planning trip from source
to dest
v routing: determine route
taken by packets from v forwarding: process of
source to dest. getting through single
interchange
routing algorithms

Network Layer 4-4


Interplay between routing and forwarding

routing algorithm routing algorithm determines


end-end-path through network

local forwarding table forwarding table determines


header value output link local forwarding at this router
0100 3
0101 2
0111 2
1001 1

value in arriving
packets header
0111 1

3 2

Network Layer 4-5


Chapter 4: outline
4.1 introduction 4.5 routing algorithms
4.2 virtual circuit and link state
datagram networks distance vector
4.3 whats inside a router hierarchical routing
4.4 IP: Internet Protocol 4.6 routing in the Internet
datagram format RIP
IPv4 addressing OSPF
BGP
ICMP
IPv6 4.7 broadcast and multicast
routing

Network Layer 4-6


IP addressing: introduction
223.1.1.1

v IP address: 32-bit 223.1.2.1


identifier for host, router
interface 223.1.1.2
223.1.1.4 223.1.2.9
v interface: connection
between host/router and 223.1.3.27
physical link 223.1.1.3
223.1.2.2
routers typically have
multiple interfaces
host typically has one
223.1.3.1 223.1.3.2
active interface (e.g., wired
Ethernet, wireless 802.11)
v one IP address associated
with each interface 223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 1 1

Network Layer 4-7


IP addressing: introduction
223.1.1.1

Q: how are interfaces 223.1.2.1


actually connected?
A: well learn about that 223.1.1.2
223.1.1.4 223.1.2.9

in chapter 5, 6.
223.1.3.27
223.1.1.3
223.1.2.2

A: wired Ethernet interfaces


connected by Ethernet switches
223.1.3.1 223.1.3.2

For now: dont need to worry


about how one interface is
connected to another (with no
A: wireless WiFi interfaces
intervening router)
connected by WiFi base station

Network Layer 4-8


Subnets
vIP address: 223.1.1.1
subnet part - high order
bits 223.1.1.2 223.1.2.1
223.1.1.4 223.1.2.9
host part - low order
bits 223.1.2.2
223.1.1.3 223.1.3.27
vwhats a subnet ?
device interfaces with subnet
same subnet part of IP
223.1.3.2
address 223.1.3.1
can physically reach
each other without
intervening router network consisting of 3 subnets

Network Layer 4-9


Subnets
223.1.1.0/24
223.1.2.0/24
recipe 223.1.1.1

v to determine the 223.1.1.2 223.1.2.1


subnets, detach each 223.1.1.4 223.1.2.9

interface from its host 223.1.2.2


or router, creating 223.1.1.3 223.1.3.27

islands of isolated subnet


networks
223.1.3.2
v each isolated network 223.1.3.1

is called a subnet
223.1.3.0/24

subnet mask: /24


Network Layer 4-10
Subnets 223.1.1.2

how many? 223.1.1.1 223.1.1.4

223.1.1.3

223.1.9.2 223.1.7.0

223.1.9.1 223.1.7.1
223.1.8.1 223.1.8.0

223.1.2.6 223.1.3.27

223.1.2.1 223.1.2.2 223.1.3.1 223.1.3.2

Network Layer 4-11


IP addressing: CIDR
CIDR: Classless InterDomain Routing
subnet portion of address of arbitrary length
address format: a.b.c.d/x, where x is # bits in
subnet portion of address

subnet host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23

Network Layer 4-12


IP addresses: how to get one?
Q: how does network get subnet part of IP addr?
A: gets allocated portion of its provider ISPs address
space

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23


Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23
... .. . .
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Network Layer 4-13


Hierarchical addressing: route aggregation
hierarchical addressing allows efficient advertisement of routing
information:

Organization 0
200.23.16.0/23
Organization 1
Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20
.
. . Internet
.
Organization 7 .
200.23.30.0/23
Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16

Network Layer 4-14


Hierarchical addressing: more specific routes

ISPs-R-Us has a more specific route to Organization 1

Organization 0
200.23.16.0/23

Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20
.
. . Internet
.
Organization 7 .
200.23.30.0/23
Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23
200.23.18.0/23

Network Layer 4-15


IP addressing: how to get a block?

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-16


IP addresses: how to get one?
Q: How does a host get IP address?

v hard-coded by system admin in a file


Windows: control-panel->network->configuration->tcp/
ip->properties
UNIX: /etc/rc.config
v DHCP: Dynamic Host Configuration Protocol:
dynamically get address from as server
plug-and-play

Network Layer 4-17


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-18


DHCP client-server scenario

DHCP
223.1.1.0/24
server
223.1.1.1 223.1.2.1

223.1.1.2 arriving DHCP


223.1.1.4 223.1.2.9
client needs
address in this
223.1.1.3 223.1.3.27
223.1.2.2 network

223.1.2.0/24

223.1.3.1 223.1.3.2

223.1.3.0/24

Network Layer 4-19


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
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-20


DHCP: more than IP addresses
DHCP returns:
IP address
address of first-hop router for client
name and IP address of DNS sever
network mask (indicating network versus host portion
of address)

Network Layer 4-21


DHCP: example
DHCP DHCP v connecting laptop needs
DHCP UDP its IP address, addr of
DHCP IP
DHCP Eth
first-hop router, addr of
Phy DNS server: use DHCP
DHCP
v DHCP request encapsulated
in UDP, encapsulated in IP,
DHCP DHCP 168.1.1.1 encapsulated in 802.3
DHCP UDP Ethernet
DHCP IP
DHCP Eth router with DHCP
v Ethernet frame broadcast
Phy server built into (dest: FFFFFFFFFFFF) on LAN,
router received at router running
DHCP server
v Ethernet demuxed to IP
demuxed, UDP demuxed to
DHCP

Network Layer 4-22


DHCP: example
DHCP DHCP v DCP server formulates
DHCP UDP DHCP ACK containing
DHCP IP clients IP address, IP
DHCP Eth address of first-hop
Phy
router for client, name &
IP address of DNS server
v encapsulation of DHCP
DHCP DHCP server, frame forwarded
DHCP UDP to client, demuxing up to
DHCP IP DHCP at client
DHCP Eth router with DHCP
DHCP
Phy server built into v client now knows its IP
router address, name and IP
address of DSN server, IP
address of its first-hop
router

Network Layer 4-23


DHCP: Wireshark Message type: Boot Reply (2)
reply
output (home LAN)
Hardware type: Ethernet
Hardware address length: 6
Hops: 0
Transaction ID: 0x6b3a11b7
Seconds elapsed: 0
Message type: Boot Request (1) Bootp flags: 0x0000 (Unicast)
Hardware type: Ethernet Client IP address: 192.168.1.101 (192.168.1.101)
Hardware address length: 6 Your (client) IP address: 0.0.0.0 (0.0.0.0)
Hops: 0
Transaction ID: 0x6b3a11b7
request Next server IP address: 192.168.1.1 (192.168.1.1)
Relay agent IP address: 0.0.0.0 (0.0.0.0)
Seconds elapsed: 0 Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Bootp flags: 0x0000 (Unicast) Server host name not given
Client IP address: 0.0.0.0 (0.0.0.0) Boot file name not given
Your (client) IP address: 0.0.0.0 (0.0.0.0) Magic cookie: (OK)
Next server IP address: 0.0.0.0 (0.0.0.0) Option: (t=53,l=1) DHCP Message Type = DHCP ACK
Relay agent IP address: 0.0.0.0 (0.0.0.0) Option: (t=54,l=4) Server Identifier = 192.168.1.1
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a) Option: (t=1,l=4) Subnet Mask = 255.255.255.0
Server host name not given Option: (t=3,l=4) Router = 192.168.1.1
Boot file name not given Option: (6) Domain Name Server
Magic cookie: (OK) Length: 12; Value: 445747E2445749F244574092;
Option: (t=53,l=1) DHCP Message Type = DHCP Request IP Address: 68.87.71.226;
Option: (61) Client identifier IP Address: 68.87.73.242;
Length: 7; Value: 010016D323688A; IP Address: 68.87.64.146
Hardware type: Ethernet Option: (t=15,l=20) Domain Name = "hsd1.ma.comcast.net."
Client MAC address: Wistron_23:68:8a (00:16:d3:23:68:8a)
Option: (t=50,l=4) Requested IP Address = 192.168.1.101
Option: (t=12,l=5) Host Name = "nomad"
Option: (55) Parameter Request List
Length: 11; Value: 010F03062C2E2F1F21F92B
1 = Subnet Mask; 15 = Domain Name
3 = Router; 6 = Domain Name Server
44 = NetBIOS over TCP/IP Name Server

Network Layer 4-24


NAT: network address translation
rest of local network
Internet (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 datagrams with source or


network have same single destination in this network
source NAT IP address: have 10.0.0/24 address for
138.76.29.7,different source source, destination (as usual)
port numbers
Network Layer 4-25
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-26


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-27


NAT: network address translation
NAT translation table
2: NAT router 1: host 10.0.0.1
WAN side addr LAN side addr sends datagram to
changes datagram
source addr from 138.76.29.7, 5001 10.0.0.1, 3345 128.119.40.186, 80
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: NAT router
3: reply arrives changes datagram
dest. address: dest addr from
138.76.29.7, 5001 138.76.29.7, 5001 to 10.0.0.1, 3345

Network Layer 4-28


NAT: network address translation
v 16-bit port-number field:
60,000 simultaneous connections with a single
LAN-side address!
v 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-29


NAT traversal problem
v client wants to connect to
server with address 10.0.0.1
server address 10.0.0.1 local to 10.0.0.1
client
LAN (client cant use it as
destination addr) ?
only one externally visible NATed 10.0.0.4
address: 138.76.29.7
v solution1: statically configure 138.76.29.7 NAT
NAT to forward incoming router
connection requests at given
port to server
e.g., (123.76.29.7, port 25000)
always forwarded to 10.0.0.1 port
25000

Network Layer 4-30


NAT traversal problem
v solution 2: Universal Plug and Play
(UPnP) Internet Gateway Device
(IGD) Protocol. Allows NATed 10.0.0.1
host to: IGD
v learn public IP address
(138.76.29.7)
v add/remove port mappings
(with lease times) NAT
router

i.e., automate static NAT port


map configuration

Network Layer 4-31


NAT traversal problem
v solution 3: relaying (used in Skype)
NATed client establishes connection to relay
external client connects to relay
relay bridges packets between to connections

2. connection to
relay initiated 1. connection to 10.0.0.1
by client relay initiated
by NATed host
3. relaying
client established
138.76.29.7 NAT
router

Network Layer 4-32

Вам также может понравиться