chapter 4: network layer part i
TRANSCRIPT
4: Network Layer 1Comp 361, Spring 2005
Chapter 4: Network Layer Part I (last revised 22/03/05)
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing (maybe)
4: Network Layer 2Comp 361, Spring 2005
Network layertransport segment from sending to receiving host on sending side encapsulates segments into datagramson rcving side, delivers segments to transport layernetwork layer protocols in every host, routerRouter examines header fields in all IP datagrams passing through it
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
4: Network Layer 3Comp 361, Spring 2005
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
4: Network Layer 4Comp 361, Spring 2005
Interplay between routing and forwarding
1
23
0111
value in arrivingpacket’s header
routing algorithm
local forwarding tableheader value output link
0100010101111001
3221
4: Network Layer 5Comp 361, Spring 2005
3rd important function in some network architectures:
ATM, frame relay, X.25Before datagrams flow, two hosts and intervening routers establish virtual connectionRouters get involved
Network vs. transport layer cnctn service:Network: between two hostsTransport: between two processes
4: Network Layer 6Comp 361, Spring 2005
Network service model
Q: What service modelfor “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?se
rvic
e ab
stra
ctio
n ? ??virtual circuit
or datagram?
The most importantabstraction provided
by network layer:
4: Network Layer 7Comp 361, Spring 2005
Network layer service models:
NetworkArchitecture
Internet
ATM
ATM
ATM
ATM
ServiceModel
best effort
CBR
VBR
ABR
UBR
Bandwidth
none
constantrateguaranteedrateguaranteed minimumnone
Loss
no
yes
yes
no
no
Order
no
yes
yes
yes
yes
Timing
no
yes
yes
no
no
Congestionfeedback
no (inferredvia loss)nocongestionnocongestionyes
no
Guarantees ?
4: Network Layer 8Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 9Comp 361, Spring 2005
Network layer connection and connection-less service
Datagram network provides network-layer connectionless serviceVC network provides network-layer connection serviceAnalogous to the transport-layer services, but:
Service: host-to-hostNo choice: network provides one or the otherImplementation: in the core
4: Network Layer 10Comp 361, Spring 2005
Virtual circuits“source-to-dest path behaves much like telephone
circuit”performance-wisenetwork actions along source-to-dest path
call setup, teardown for each call before data can floweach packet carries VC identifier (not destination host OD)every router on source-dest paths maintain the “state” for each passing connection
transport-layer connection only involved two end systemslink, router resources (bandwidth, buffers) may be allocated to VC
to get circuit-like performance
4: Network Layer 11Comp 361, Spring 2005
VC implementation
A VC consists of:1. Path from source to destination2. VC numbers, one number for each link along
path3. Entries in forwarding tables in routers along
pathPacket belonging to VC carries a VC number.VC number must be changed on each link.
New VC number comes from forwarding table
4: Network Layer 12Comp 361, Spring 2005
Forwarding table12 22 32
1 23
VC number
interfacenumber
Forwarding table inupper-left router:
Incoming interface Incoming VC # Outgoing interface Outgoing VC #
1 12 2 222 63 1 18 3 7 2 171 97 3 87… … … …
Routers maintain connection state information!
4: Network Layer 13Comp 361, Spring 2005
Virtual circuits: signaling protocolsused to setup, maintain teardown VCconnection setup process still needs routing much as in the Internetused in ATM, frame-relay, X.25not used in today’s Internet
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
1. Initiate call 2. incoming call3. Accept call4. Call connected
5. Data flow begins 6. Receive data
4: Network Layer 14Comp 361, Spring 2005
Datagram networksno call setup at network layerrouters: no state info 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
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
1. Send data 2. Receive data
4: Network Layer 15Comp 361, Spring 2005
4 billion possible entriesForwarding table
Destination Address Range Link Interface
11001000 00010111 00010000 00000000through 0
11001000 00010111 00010111 11111111
11001000 00010111 00011000 00000000through 1
11001000 00010111 00011000 11111111
11001000 00010111 00011001 00000000through 2
11001000 00010111 00011111 11111111
otherwise 3
4: Network Layer 16Comp 361, Spring 2005
Longest prefix matching
Prefix Match Link Interface11001000 00010111 00010 0 11001000 00010111 00011000 111001000 00010111 00011 2
otherwise 3
Examples
Which interface?DA: 11001000 00010111 00010110 10100001
Which interface?DA: 11001000 00010111 00011000 10101010
4: Network Layer 17Comp 361, Spring 2005
Datagram or VC network: why?
Internetdata exchange among computers
“elastic” service, no strict timing req.
“smart” end systems (computers)
can adapt, perform control, error recoverysimple inside network, complexity at “edge”
many link types different characteristicsuniform service difficult
ATMevolved from telephonyhuman conversation:
strict timing, reliability requirementsneed for guaranteed service
“dumb” end systemstelephonescomplexity inside network
4: Network Layer 18Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 19Comp 361, Spring 2005
Router Architecture Overview
Two key router functions:run routing algorithms/protocol (RIP, OSPF, BGP)forwarding datagrams from incoming to outgoing link
4: Network Layer 20Comp 361, Spring 2005
Input Port Functions
Decentralized switching:given datagram dest., lookup output port using forwarding table in input port memorygoal: complete input port processing at ‘line speed’queuing: if datagrams arrive faster than forwarding rate into switch fabric
Physical layer:bit-level reception
Data link layer:e.g., Ethernetsee chapter 5
4: Network Layer 21Comp 361, Spring 2005
Three types of switching fabrics
4: Network Layer 22Comp 361, Spring 2005
Switching Via MemoryFirst generation routers:
packet copied by system’s (single) CPUspeed limited by memory bandwidth (2 bus
crossings per datagram)InputPort
OutputPort
Memory
System Bus
Modern routers:input port processor performs lookup, copy into
memoryCisco Catalyst 8500
4: Network Layer 23Comp 361, Spring 2005
Switching Via a Bus
datagram from input port memoryto output port memory via a shared busbus contention: switching speed limited by bus bandwidth1 Gbps bus, Cisco 1900: sufficient speed for access and enterprise routers (not regional or backbone)
4: Network Layer 24Comp 361, Spring 2005
Switching Via An Interconnection Network
overcome bus bandwidth limitationsBanyan networks, other interconnection nets initially developed to connect processors in multiprocessorAdvanced design: fragmenting datagram into fixed length cells, switch cells through the fabric. Cisco 12000: switches Gbps through the interconnection network
4: Network Layer 25Comp 361, Spring 2005
Output Ports
Buffering required when datagrams arrive from fabric faster than the transmission rateScheduling discipline chooses among queued datagrams for transmission
4: Network Layer 26Comp 361, Spring 2005
Output port queueing
buffering when arrival rate via switch exceeds output line speedqueueing (delay) and loss due to output port buffer overflow!
4: Network Layer 27Comp 361, Spring 2005
Input Port Queuing
Fabric slower than input ports combined -> queueing may occur at input queues Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forwardqueueing delay and loss due to input buffer overflow!
4: Network Layer 28Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 29Comp 361, Spring 2005
The Internet Network layer
forwardingtable
Host, router network layer functions:
Routing protocols•path selection•RIP, OSPF, BGP
IP protocol•addressing conventions•datagram format•packet handling conventions
ICMP protocol•error reporting•router “signaling”
Transport layer: TCP, UDP
Link layer
physical layer
Networklayer
4: Network Layer 30Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 31Comp 361, Spring 2005
IP datagram format
ver length
32 bits
data (variable length,typically a TCP
or UDP segment)
16-bit identifierInternetchecksum
time tolive
32 bit source IP address
IP protocol versionnumber
header length(bytes)
max numberremaining hops
(decremented at each router)
forfragmentation/reassembly
total datagramlength (bytes)
upper layer protocolto deliver payload to
head.len
type ofservice
“type” of data flgs fragmentoffset
upperlayer
32 bit destination IP address
Options (if any) E.g. timestamp,record routetaken, specifylist of routers to visit.
how much overhead with TCP?20 bytes of TCP20 bytes of IP= 40 bytes + app layer overhead
4: Network Layer 32Comp 361, Spring 2005
IP Fragmentation & Reassemblynetwork 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 destinationIP header bits used to identify, order related fragments
fragmentation: in: one large datagramout: 3 smaller datagrams
reassembly
4: Network Layer 33Comp 361, Spring 2005
IP Fragmentation and ReassemblyID=x
offset=0
fragflag=0
length=4000
ID=x
offset=0
fragflag=1
length=1500
ID=x
offset=185
fragflag=1
length=1500
ID=x
offset=370
fragflag=0
length=1040
One large datagram becomesseveral smaller datagrams
Example4000 byte datagramMTU = 1500 bytes
1480 bytes in data field
offset =1480/8
4: Network Layer 34Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 35Comp 361, Spring 2005
IP Addressing: introduction223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
IP address: 32-bit identifier for host, router interfaceinterface: connection between host/router and physical link
router’s typically have multiple interfaceshost may have multiple interfacesIP addresses associated with each interface, not with host or router
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
4: Network Layer 36Comp 361, Spring 2005
Subnets223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
LAN
IP address:subnet part (high order bits)host part (low order bits)
What’s a subnet ?device interfaces with same subnet part of IP addresscan physically reach each other without intervening router network consisting of 3 subnets
(for IP addresses starting with 223, first 24 bits are network address)
4: Network Layer 37Comp 361, Spring 2005
Subnets 223.1.1.0/24 223.1.2.0/24
223.1.3.0/24
RecipeTo determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet.
Subnet mask: /24
4: Network Layer 38Comp 361, Spring 2005
Subnets223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2223.1.2.1
223.1.2.6
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1223.1.8.0223.1.8.1
223.1.9.1
223.1.9.2
How many?
4: Network Layer 39Comp 361, Spring 2005
IP Addressesgiven notion of “network”, let’s re-examine IP addresses:
“class-full” addressing:
class1.0.0.0 to127.255.255.255A 0network host
128.0.0.0 to191.255.255.255
B 10 network host
192.0.0.0 to223.255.255.255C 110 network host
224.0.0.0 to239.255.255.255D 1110 multicast address
32 bits
4: Network Layer 40Comp 361, Spring 2005
IP addressing: CIDRclassful addressing:
inefficient use of address space, address space exhaustione.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network
CIDR: Classless InterDomain Routingnetwork portion of address of arbitrary lengthaddress format: a.b.c.d/x, where x is # bits in network portion of address
11001000 00010111 00010000 00000000
networkpart
hostpart
200.23.16.0/23
4: Network Layer 41Comp 361, Spring 2005
IP addresses: how to get one?
Q: How does host get IP address?
hard-coded by system admin in a fileWintel: control-panel->network->configuration->tcp/ip->propertiesUNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: dynamically get address from server
“plug-and-play”(more later)
4: Network Layer 42Comp 361, Spring 2005
IP addresses: how to get one?Q: How does network get subnet 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 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
4: Network Layer 43Comp 361, Spring 2005
Hierarchical addressing: route aggregation
Hierarchical addressing allows efficient advertisement of routing information:
“Send me anythingwith addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organization 0
Organization 7Internet
Organization 1
ISPs-R-Us “Send me anythingwith addresses beginning 199.31.0.0/16”
200.23.20.0/23Organization 2
...
...
4: Network Layer 44Comp 361, Spring 2005
Hierarchical addressing: more specific routes
ISPs-R-Us has a more specific route to Organization 1
“Send me anythingwith addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organization 0
Organization 7Internet
Organization 1
ISPs-R-Us “Send me anythingwith addresses beginning 199.31.0.0/16or 200.23.18.0/23”
200.23.20.0/23Organization 2
...
...
4: Network Layer 45Comp 361, Spring 2005
IP addressing: the last word...
Q: How does an ISP get block of addresses?A: ICANN: Internet Corporation for Assigned
Names and Numbersallocates addressesmanages DNSassigns domain names, resolves disputes
4: Network Layer 46Comp 361, Spring 2005
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local network(e.g., home network)
10.0.0/24
rest ofInternet
Datagrams with source or destination in this networkhave 10.0.0/24 address for source, destination (as usual)
All datagrams leaving localnetwork have same single source
NAT IP address: 138.76.29.7,different source port numbers
4: Network Layer 47Comp 361, Spring 2005
NAT: Network Address Translation
Motivation: local network uses just one IP address as far as outside word is concerned:
no need to be allocated range of addresses from ISP: - just one IP address is used for all devicescan change addresses of devices in local network without notifying outside worldcan change ISP without changing addresses of devices in local networkdevices inside local net not explicitly addressable, visible by outside world (a security plus).
4: Network Layer 48Comp 361, Spring 2005
NAT: Network Address TranslationImplementation: NAT router must:
in 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
in 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
4: Network Layer 49Comp 361, Spring 2005
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345D: 128.119.40.186, 80
110.0.0.4
138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40, 80
NAT translation tableWAN side addr LAN side addr138.76.29.7, 5001 10.0.0.1, 3345…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345 4
S: 138.76.29.7, 5001D: 128.119.40.186, 802
2: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates table
S: 128.119.40.186, 80 D: 138.76.29.7, 5001 3
3: Reply arrivesdest. address:138.76.29.7, 5001
4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345
4: Network Layer 50Comp 361, Spring 2005
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 3violates end-to-end argument
• NAT possibility must be taken into account by app designers, eg, P2P applications
address shortage should instead be solved by IPv6
4: Network Layer 51Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 52Comp 361, Spring 2005
ICMP: Internet Control Message Protocol
used by hosts & routers to communicate network-level information
error reporting: unreachable host, network, port, protocolecho 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
Type Code description0 0 echo reply (ping)3 0 dest. network unreachable3 1 dest host unreachable3 2 dest protocol unreachable3 3 dest port unreachable3 6 dest network unknown3 7 dest host unknown4 0 source quench (congestion
control - not used)8 0 echo request (ping)9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header
4: Network Layer 53Comp 361, Spring 2005
Traceroute and ICMP
Source sends series of UDP segments to dest
First has TTL =1Second has TTL=2, etc.Unlikely port number
When nth datagram arrives to nth router:
Router discards datagramAnd sends to source an ICMP message (type 11, code 0)Message includes name of router& IP address
When ICMP message arrives, source calculates RTTTraceroute does this 3 times
Stopping criterionUDP segment eventually arrives at destination hostDestination returns ICMP “host unreachable” packet (type 3, code 3)When source gets this ICMP, stops.
4: Network Layer 54Comp 361, Spring 2005
Chapter 4: Network Layer
4. 1 Introduction4.2 Virtual circuit and datagram networks4.3 What’s inside a router4.4 IP: Internet Protocol
Datagram formatIPv4 addressingICMPIPv6
4.5 Routing algorithmsLink stateDistance VectorHierarchical routing
4.6 Routing in the Internet
RIPOSPFBGP
4.7 Broadcast and multicast routing
4: Network Layer 55Comp 361, Spring 2005
IPv6Initial motivation: 32-bit address space soon to be completely allocated. Additional motivation:
header format helps speed processing/forwardingheader changes to facilitate QoS
IPv6 datagram format:fixed-length 40 byte headerno fragmentation allowed
4: Network Layer 56Comp 361, Spring 2005
IPv6 Header (Cont)Priority: identify priority among datagrams in flowFlow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).Next header: identify upper layer protocol for data
4: Network Layer 57Comp 361, Spring 2005
Other Changes from IPv4
Checksum: removed entirely to reduce processing time at each hopOptions: allowed, but outside of header, indicated by “Next Header” fieldICMPv6: new version of ICMP
additional message types, e.g. “Packet Too Big”multicast group management functions
4: Network Layer 58Comp 361, Spring 2005
Transition From IPv4 To IPv6
Not all routers can be upgraded simultaneousno “flag days”How will the network operate with mixed IPv4 and IPv6 routers?
Two proposed approaches:Dual Stack: some routers with dual stack (v6, v4) can “translate” between formatsTunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers
4: Network Layer 59Comp 361, Spring 2005
TunnelingA B E F
IPv6 IPv6 IPv6 IPv6
tunnelLogical view:
A B E F
IPv6 IPv6 IPv6 IPv6
C D
IPv4 IPv4
Flow: XSrc: ADest: F
data
Flow: XSrc: ADest: F
data
Flow: XSrc: ADest: F
data
Src:BDest: E
Flow: XSrc: ADest: F
data
Src:BDest: E
A-to-B:IPv6
E-to-F:IPv6
Physical view:
B-to-C:IPv6 inside
IPv4
B-to-C:IPv6 inside
IPv4