Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Computer Networking: A Top Down Approach Featuring the Internet, 5th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2009.
Network Layer
4-1
services:
network
layer service models forwarding versus routing how a router works routing (path selection) dealing with scale advanced topics: IPv6, mobility
instantiation, implementation in the Internet
Network Layer 4-2
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
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 data link physical network data link physical application transport network data link physical
Network Layer
4-4
analogy:
routing: process of
algorithms
Network Layer 4-5
1
3 2
Network Layer
4-6
Connection setup
3rd important function in some network architectures:
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
ATM,
Network Layer
4-7
best effort none CBR VBR ABR UBR constant rate guaranteed rate guaranteed minimum none
Network Layer
4-9
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
Internet
multicast routing
Network Layer 4-10
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
Network Layer 4-11
Virtual circuits
source-to-dest path behaves much like telephone circuit
call setup, teardown for each call before data can flow each packet carries VC identifier (not destination host
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
application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical
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
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
Internet
multicast routing
Network Layer 4-18
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 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)
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
Network Layer 4-25
output line speed queueing (delay) and loss due to output port buffer overflow!
Network Layer 4-26
may occur at input queues Head-of-the-Line (HOL) blocking: queued datagram at front of queue prevents others in queue from moving forward queueing delay and loss due to input buffer overflow!
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
Internet
multicast routing
Network Layer 4-30
Network layer
forwarding table
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
Internet
multicast routing
Network Layer 4-32
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 head. type of length ver service len fragment flgs 16-bit identifier offset time to upper header layer live checksum 32 bit source IP address 32 bit destination IP address Options (if any) E.g. timestamp, record route taken, specify list of routers to visit. total datagram length (bytes) for fragmentation/ reassembly
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 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 Network Layer 4-34
(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
Internet
multicast routing
Network Layer 4-36
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
called a "port"). routers typically have multiple interfaces host typically has one interface IP addresses associated with each interface
223.1.2.9 223.1.2.2
223.1.3.27
223.1.3.1
223.1.3.2
Subnets
IP address: subnet part (high order bits) host part (low order bits) Whats a subnet ? device interfaces with same subnet part of IP address can physically reach each other without intervening router
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
223.1.3.27
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.3.27 223.1.3.2
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
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)
Wintel:
200.23.16.0/23
Organization 1
200.23.18.0/23
Organization 2
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
ISPs-R-Us
Organization 1
200.23.18.0/23
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
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
10.0.0.1
10.0.0.2
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)
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).
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. (in NAT translation table) every (source IP address, port #) to (NAT IP address, new port #) translation pair
remember
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-54
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
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
Internet
multicast routing
Network Layer 4-57
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-58
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-59
* or ICMP pings
datagram networks 4.3 Whats inside a router 4.4 IP: Internet Protocol
Internet
multicast routing
Network Layer 4-60
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-61
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-63
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
B
IPv6
C
IPv4
D
IPv4
E
IPv6
F
IPv6
Flow: X Src: A Dest: F
Src:B Dest: E
Flow: X Src: A Dest: F
Src:B Dest: E
Flow: X Src: A Dest: F
data
data
data
data
A-to-B: IPv6
E-to-F: IPv6
Network Layer 4-66