Professional Documents
Culture Documents
All material copyright 1996-2006 J.F Kurose and K.W. Ross, All Rights Reserved
Network Layer
4-1
network layer service models forwarding versus routing how a router works routing (path selection) dealing with scale advanced topics: IPv6, mobility
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
Network Layer
4-3
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
Network Layer
4-4
packets from routers input to appropriate router output route taken by packets from source to dest.
analogy:
routing: process of
routing: determine
forwarding: process
routing algorithms
Network Layer 4-5
1
3 2
Network Layer
4-6
Connection setup
3rd important function in
ATM,
frame relay, X.25 before datagrams flow, two end hosts and intervening routers establish virtual connection routers get involved network vs transport layer connection service: network: between two hosts (may also involve intervening routers in case of VCs) transport: between two processes
Network Layer
4-7
Guarantees ?
Internet
ATM ATM ATM ATM
no
yes yes yes yes
no
yes yes no no
no
no
Network Layer
4-9
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
connectionless service VC network provides network-layer connection service analogous to the transport-layer services, but:
service: host-to-host no choice: network provides one or the other implementation: in network core
Virtual circuits
source-to-dest path behaves much like telephone circuit
address) every router on source-dest path maintains state for each passing connection link, router resources (bandwidth, buffers) may be allocated to VC (dedicated resources = predictable service)
Network Layer 4-12
VC implementation
a VC consists of:
1.
2. 3.
path from source to destination VC numbers, one number for each link along path entries in forwarding tables in routers along path
Forwarding table
VC number
12 22 32
1 2 3 1
12 63 7 97
3 1 2 3
22 18 17 87
application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical
packets forwarded using destination host address packets between same source-dest pair may take different paths (network congestion is busty)
ATM (VC)
evolved from telephony computers human conversation: elastic service, no strict strict timing, reliability timing req. requirements smart end systems (computers) need for guaranteed can adapt, perform service control, error recovery dumb end systems simple inside network, telephones complexity at edge complexity inside many link types network different characteristics uniform service difficult
Network Layer 4-17
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
Physical layer: bit-level reception Data link layer: e.g., Ethernet see chapter 5
Decentralized switching:
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
System Bus
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)
Network Layer 4-23
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
Output Ports
fabric faster than the transmission rate Scheduling discipline chooses among queued datagrams for transmission
may occur at input queues Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forward
Forwarding table
Destination Address Range
11001000 00010111 00010000 00000000 through 11001000 00010111 00010111 11111111 (2^11 = 2048 addresses)
11001000 00010111 00011000 00000000 through 11001000 00010111 00011000 11111111 (2^8 = 256 addresses)
11001000 00010111 00011001 00000000 through 11001000 00010111 00011111 11111111 (2^11 = 2048 addresses)
otherwise
3
Network Layer 4-28
DA: 11001000 00010111 0001 0110 1010 0001 DA: 11001000 00010111 0001 1000 1010 1010 DA: 11001000 00010111 0001 1100 1010 1010 Why do we use prefixes of different lengths?
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
Network layer
forwarding table
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
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 32 bits
length fragment 16-bit identifier flgs offset upper time to header layer live checksum 32 bit source IP address 32 bit destination IP address Options (if any)
how much overhead with TCP? 20 bytes of TCP* 20 bytes of IP = 40 bytes + app layer overhead
One large datagram becomes several smaller datagrams length =1500 length =1500 length =1040 ID =x ID =x ID =x fragflag =1 fragflag =1 fragflag =0 offset =0 offset =185 offset =370
Steps: 1. Subtract 20 from original length: 4000 -20 = 3980 (bytes of "IP data") 2. Subtract 20 from new MTU: 1500- 20 = 1480 (max. bytes of data in each fragment) 3. Divide "maximum data bytes" by 8: 1480/8 = 185 to get offset increment 4. Offset of each fragment "n" (n = 0, 1, 2, ...) = n x "offset increment": 0, 185, 370. ... 5. Length of each fragment (except last) = 20 + "max. data bytes" = 20 +1480 = 1500 Length of last fragment = 20 + remaining data bytes = 20 + 3980 - 2 x 1480 = 1040
(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
reassembly
Another fragment flag, DNF (do not fragment) causes a ICMP response (and dropped datagram) instead of fragmentation. The sender then resends future datagrams with smaller size (may fragment itself or Network Layer 4-35 reduce MSS for TCP).
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
IP Addressing: introduction
IP address: 32-bit
223.1.1.1
identifier for host, and router interface interface: connection between host/router and physical link (sometimes
223.1.2.9
223.1.3.27
223.1.2.2
called a "port"). routers typically have multiple interfaces host typically has one interface IP addresses associated with each interface
223.1.3.1
223.1.3.2
Subnets
IP address: subnet part (high order bits) host part (low order bits)
223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.2.2
Whats a subnet ?
223.1.3.27
device interfaces with same subnet part of IP address can physically reach each other without intervening router
subnet
223.1.3.1 223.1.3.2
Subnets
Recipe To determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet.
223.1.0.0/22
223.1.1.0/24
223.1.2.0/24
223.1.3.0/24
Subnets
How many?
223.1.1.1
223.1.1.2
223.1.1.4 223.1.1.3
223.1.9.2
223.1.7.0
223.1.7.1
223.1.2.1
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 part
host part
Wintel: control-panel->network->configuration>tcp/ip->properties UNIX: /etc/rc.config file, or use 'ifconfig' DHCP: Dynamic Host Configuration Protocol: dynamically get address from as server plug-and-play (more in next chapter)
Network Layer 4-42
200.23.16.0/20
200.23.16.0/23 200.23.18.0/23 200.23.20.0/23 . 200.23.30.0/23
200.23.16.0/23
Organization 1
Organization 2
200.23.18.0/23 200.23.20.0/23
Organization 7
. . .
. . .
Fly-By-Night-ISP
200.23.30.0/23
ISPs-R-Us
Organization 0
200.23.16.0/23
200.23.20.0/23
Organization 7
. . .
. . .
Fly-By-Night-ISP Internet
200.23.30.0/23
Organization 1
200.23.18.0/23
ISPs-R-Us
Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23 1101000 00011001 0001 001x xxxxxxxx
Network Layer 4-45
Textbook refers to /20 in the network designator 200.23.16.0/20 as the subnet mask. /20 represents a 32-bit binary number that has 20 bits at left and 12 zeros at the right:
11111111 11111111 11110000 00000000 This number in dotted decimal format is:
255.255.240.0
A network designator is incomplete without the network mask.
Network Layer 4-46
The (sub)network mask can change: an IP address into the corresponding network address (for comparison in a router forwarding table). Match[i] = {(IP & mask[i] == Network_addr[i]} an IP address (or network address) into the network Broadcast Address: Broadcast_addr = IP | ~mask
& bitwise AND | bitwise OR ~ bitwise inversion (0->1, 1->0)
Network Layer
Minimum host address is the Network Address Maximum host address is the Broadcast Addr.
Network Layer 4-48
1101000 00011001 0001xxxx xxxxxxxx Byte 3 is the Split Byte Byte 4 is Host Only, 1 & 2 are Network Only
No. Network Bits in the "Split Byte 1 2 3 4 5 6 7 Mask Value of Network Part Host Part Split Byte is Multiple from Zero to: of: 128 128 127 192 64 63 224 32 31 240 16 15 248 8 7 252 4 3 254 2 1
Network Layer 4-49
Network Mask = 255.255.240.0 Min. Host Addr. (Network Addr.) = 200.23.16.0 Maximum Host Address = 200.23.(16+15).255 (Broadcast Address = 200.23.31.255) Number of Host Addresses = 2^12 = (15+1)*256
Network Layer 4-50
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)
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).
remember (in NAT translation table) every (source 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
NAT translation table WAN side: Server addr LAN side addr & port, Client port and Client port
10.0.0.2
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-55
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, eg, P2P applications
Source: http://en.wikipedia.org/wiki/IP_Addresses
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
Type Code description communicate network-level 0 0 echo reply (ping) information 3 0 dest. network unreachable error reporting: unreachable 3 1 dest host unreachable host, network, port, 3 2 dest protocol unreachable protocol 3 3 dest port unreachable echo request/reply (used by 3 6 dest network unknown ping) 3 7 dest host unknown network-layer above IP: 4 0 source quench (congestion control - not used) ICMP messages carried in 8 0 echo request (ping) IP datagrams 9 0 route advertisement ICMP message: type=3, 4, 11, or 10 0 router discovery 12: code plus IP header and 11 0 TTL expired following 8 bytes of IP 12 0 bad IP header datagram causing error (would include UDP or TCP port numbers) Slide modified 10/19/2008 by JAC Network Layer 4-59
First has TTL =1 Second has TTL=2, etc. Unlikely port number
to nth router:
Router discards datagram And sends to source an ICMP message (type 11, code 0) Datagram includes router IP address. Traceroute does DNS lookup to find name of router (if any)
arrives, source calculates RTT Traceroute does this 3 times Stopping criterion UDP segment eventually arrives at destination host Destination returns ICMP host unreachable packet (type 3, code 3) When source gets this ICMP, stops.
Network Layer 4-60
* or ICMP pings
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
4.5 Routing algorithms Link state Distance Vector Hierarchical routing 4.6 Routing in the
Internet
multicast routing
IPv6
Initial motivation: 32-bit address space soon to be
completely allocated (however, NAT and CIDR* have fixed the problem for now). Additional motivation:
header format helps speed processing/forwarding header changes to facilitate QoS IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed
*Before CIDR (Classless Internet Domain Routing), there were only three subnet sizes (classes): Class A= /8 (4M), B = /16 (65k), C = /24 (255 addresses)
If an org needed 260 addresses, a Class B (65,535) was allocated. Network Layer 4-62
processing time at each hop Options: allowed, but outside of header, indicated by Next Header field (segmentation is done in Options Header) ICMPv6: new version of ICMP
additional
message types, e.g. Packet Too Big multicast group management functions
Network Layer 4-64
flag days How will the network operate with mixed IPv4 and IPv6 routers?
Tunneling
Logical view:
A
IPv6
B
IPv6
tunnel
E
IPv6
F
IPv6
Physical view:
A
IPv6
B
IPv6
IPv4 IPv4
E
IPv6
F
IPv6
Tunneling
Logical view:
A
IPv6
B
IPv6
tunnel
E
IPv6
F
IPv6
Physical view:
A
IPv6
Flow: X Src: A Dest: F data
B
IPv6
C
IPv4
D
IPv4
E
IPv6
F
IPv6
Src:B Dest: E
Flow: X Src: A Dest: F data
Src:B Dest: E
Flow: X Src: A Dest: F data
A-to-B: IPv6
E-to-F: IPv6
Network Layer 4-67