Upload
harold-craig
View
216
Download
1
Tags:
Embed Size (px)
Citation preview
Computer Networks
The Network Layer
Lecture 7
Adrian Sergiu DARABANT
The Network Layer
The Internet Protocol -IP
The Internet (IP) Protocol IPv4 addressing Moving a datagram from source to
destination Datagram format IP fragmentation ICMP: Internet Control Message Protocol
DHCP: Dynamic Host Configuration Protocol NAT: Network Address Translation
Routing
The Internet Network Layer
forwardingtable
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
IP Addressing
IP address: 32-bit identifier for host, router interface interface: connection between host/router and physical link
router’s typically have multiple interfaces
host may have multiple interfaces
IP addresses associated with each interface
223.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
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
IP AddressingIP address:
network part (high order bits)
host part (low order bits)
What’s a network ? (from IP address perspective)
device interfaces with same network part of IP address
can physically reach each other without intervening router
223.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
network consisting of 3 IP networks(for IP addresses starting with 223, first 24 bits are network address)
LAN
IP Addressing
How to find the networks?
Detach each interface from router, host
create “islands of isolated networks
223.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
Interconnected system consisting
of six networks
IP Addresses – Class Full
0network host
10 network host
110 network host
1110 multicast address
A
B
C
D
class1.0.0.0 to127.255.255.255
128.0.0.0 to191.255.255.255
192.0.0.0 to223.255.255.255
224.0.0.0 to239.255.255.255
32 bits
given the notion of “network”, let’s re-examine IP addresses:
“class-full” addressing:
IP Addressing: CIDRClassful addressing:
inefficient use of address space, address space exhaustion
e.g., class B net allocates enough addresses for 65K hosts, even if we only have 2K hosts in that network
CIDR: Classless InterDomain Routing network portion of address of arbitrary length address 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
IP SubnetBasic concept: A subset of a class A, B or C network.
IP addresses that do not use subnets consists of A network portion, and A host portion.
Represents a static two-level hierarchical addressing model.
IP Subnet (cont)
IP subnets introduces a third level of hierarchy. A network portion A subnet portion A host portion
Allow more efficient (and structured) utilization of the addresses.
Uses network masks.
usually handled together as networkbut with substructure
CIDR – Introduction
The size of the global routing tables have grown very fast in recent years. Caused routers to become saturated.
CIDR is a new concept to manage IP networks. Classless Inter Domain Routing. No concept of class A, B, C networks. Reduces sizes of routing tables.
CIDR - Basic Idea
An IP address is represented by a prefix, which is the IP address of the network.
It is followed by a slash, followed by a number M. M: number of leftmost contiguous bits to
be used for the network mask. Example: 144.16.192.57 / 18
CIDR - Rules
The number of addresses in each block must be a power of 2.
The beginning address in each block must be divisible by the number of addresses in the block. A block that contains 16 addresses cannot
have beginning address as 193.226.40.36. But the address 193.226.40.64 is possible !
IP/Netmask - examples209.220.186.8/255.255.255.25
2=>209.220.186.8209.220.186.9209.220.186.10209.220.186.11
209.220.186.8/255.255.255.248=>
209.220.186.8209.220.186.9209.220.186.10209.220.186.11209.220.186.12209.220.186.13209.220.186.14209.220.186.15
209.220.186.8/255.255.255.240
Invalid combination
Network masks
Network mask 255.0.0.0 is applied to a class A network 10.0.0.0; Mask = series of contiguous 1’s followed
by a series of contiguous 0’s
11111111 00000000 00000000 00000000
NETWORK HOST
Natural Masks
Provide a mechanism to split the IP address 10.0.0.20 into: A network portion – 10; A host portion – 0.0.20;
IP Address: 10.0.0.20 00001010 00000000 00000000 00010100
Mask: 255.0.0.0 11111111 00000000 00000000 00000000
Network Host
Natural masks
Class A, B and C addresses Have fixed division of network and host
portions Can be expressed as masks
Natural Masks Class A: 255.0.0.0 Class B: 255.255.0.0 Class C: 255.255.255.0
Subnets out of masksMasks are very flexible. Using masks, networks can be divided into
smaller subnets.
How? By extending the network portion of the
address into the host portion.
Advantage gained: We can create a large number of subnets from
one network. Can have less number of hosts per network.
Network Address
IP Address193.226.40.45
ANDNetwork Address193.226.40.0
Network Mask255.255.255.0
IP Address193.226.40.45
ANDNetwork Address
?
Network Mask255.255.255.224
Network Address
193.226.40.32
Subnetting
Basic concept The same network can be configured
with different masks. Can have subnets of different sizes. Allows better utilization of available
addresses.
Example
Suppose we are assigned a Class C network 193.226.40.0 To be divided into three subnets.
Corresponding to three departments. With 110, 45 and 50 hosts respectively
D1110
D245
D350
Example (cont) - OptionsX X(binary) # of
Subnets# of Hosts
128 1000 0000 2 128
192 1100 0000 4 64
224 1110 0000 8 32
240 1111 0000 16 16
248 1111 1000 32 8
252 1111 1100 64 4
254 1111 1110 128 2 Network too small
Rules:• First IP address = Network Address• Last IP address = Broadcast
Address
How does one get IP Addresses ?
Q: How does a network get the network part of IP addr?
A: it gets allocated from the 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
Reserved Addresses
Private Addreses
Name IP address rangenumber of
IPsclassful
descriptionlargest CIDR
blockdefined in
24-bit block 10.0.0.0 – 10.255.255.255 16,777,216 single class A 10.0.0.0/8
RFC 1597 (obsolete), RFC 1918
20-bit block 172.16.0.0 – 172.31.255.255 1,048,57616 contiguous class Bs
172.16.0.0/12
16-bit block 192.168.0.0 – 192.168.255.255 65,536256 contiguous class Cs
192.168.0.0/16
Not routed in Internet
Why ?
Routing tables (static)Destination Gateway Genmask Flags Metric Ref Us
eIface
172.16.25.1 172.30.0.4 255.255.255.255 UGH 0 0 0 Eth1
193.226.40.128 0.0.0.0 255.255.255.224 U 0 0 Eth0
193.0.225.0 0.0.0.0 255.255.255.0 U 0 0 Eth0
193.231.20.0 0.0.0.0 255.255.255.0 U 0 0 Eth0
172.30.0.0 0.0.0.0 255.255.0.0 U 0 0 Eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 Eth1
0.0.0.0 193.0.225.9 0.0.0.0 UG 0 0 Eth0
The route command – (Windows/Linux/other OS)
Datagram: from source to destination
IP datagram:
223.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
A
BE
miscfields
sourceIP addr
destIP addr data
datagram remains unchanged, as it travels source to destinationAddresses are fields of interest here
forwarding table in ADest Net Mask Nxt Router Metric
223.1.1.0 255.255.255.0 1
223.1.2.0 255.255.255.0 223.1.1.4 2
223.1.3.0 255.255.255.0 223.1.1.4 2
64.8.32.1 255.255.255.255 223.1.1.10 2
Datagram: from source to destination
Starting at A, send IP datagram addressed to B:look up net. address of B in forwarding tablefind B is on same net. as Alink layer will send datagram directly to B inside link-layer frame
B and A are directly connected
miscfields223.1.1.1223.1.1.3data
223.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
A
BE
forwarding table in ADest Net Mask Nxt Router Metric
223.1.1.0 255.255.255.0 1
223.1.2.0 255.255.255.0 223.1.1.4 2
223.1.3.0 255.255.255.0 223.1.1.4 2
64.8.32.1 255.255.255.255 223.1.1.10 2
Datagram: from source to destination
Starting at A, dest. E:look up network address of E in forwarding tableE on different network
A, E not directly attached
routing table: next hop router to E is 223.1.1.4 link layer sends datagram to router 223.1.1.4 inside link-layer framedatagram arrives at 223.1.1.4 continued…..
miscfields223.1.1.1223.1.2.3 data
223.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
A
BE
forwarding table in ADest Net Mask Nxt Router Metric
223.1.1.0 255.255.255.0 1
223.1.2.0 255.255.255.0 223.1.1.4 2
223.1.3.0 255.255.255.0 223.1.1.4 2
64.8.32.1 255.255.255.255 223.1.1.10 2
Datagram: from source to destination
Arriving at 223.1.4, destined for 223.1.2.2look up network address of E in router’s forwarding tableE on same network as router’s interface 223.1.2.9
router, E directly attached
link layer sends datagram to 223.1.2.2 inside link-layer frame via interface 223.1.2.9 datagram arrives at 223.1.2.2!!! (hooray!)
miscfields223.1.1.1223.1.2.3 data
223.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
A
BE
forwarding table in routerDest Net Mask Nxt
RMetric Interface
223.1.1.0 255.255.255.0 - 1 223.1.1.4
223.1.2.0 255.255.255.0 - 1 223.1.2.9
223.1.3.0 255.255.255.0 - 1 223.1.3.27
Ver(4) Length(16)
data (variable length,typically a TCP
or UDP segment)
16-bit identifier(16)
Header Internet checksum(16)
time toLive(8)
32 bit source IP address(32)
head.Len(4)
type ofService(8)
Flgs(3)13 bit fragment
offset(13)
upper layer Prot(8)
32 bit destination IP address(32)
Options (if any)
IP Datagram32 bitsIP protocol version
number
header length (bytes)
max numberremaining hops
(decremented at each router)
forfragmentation/reassembly
total datagramlength (bytes)
upper layer protocolto deliver payload to
“type” of data
E.g. timestamp,record routetaken, specifylist of routers to visit.
how much overhead?20 bytes of IP= 20 bytes + upper layer (TCP/UDP) + app layer overhead
DF+MF
Fragmentation/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
fragmentation: in: one large datagramout: 3 smaller datagrams
reassembly
Fragmentation/Reassembly
ID=x
offset=0
fragflag=0
length=4000
ID=x
offset=0
fragflag=1
length=1500
ID=x
offset=1480
fragflag=1
length=1500
ID=x
offset=2960
fragflag=0
length=1040
One large datagram becomesseveral smaller datagrams
Example4000 byte datagramMTU = 1500 bytes
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
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 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).
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
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40.186, 80
NAT translation tableWAN side addr LAN side addr
138.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, 80
2
S: 128.119.40.186, 80 D: 138.76.29.7, 5001
3
3: Reply arrives dest. address: 138.76.29.7, 5001
4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345
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
UDP
Checksum – for the entire datagram (header + data)
Length >=8 – entire datagram
TCP Datagrams
Sequence No – ACK No
ICMPUsed by hosts, routers, gateways to communication network-level information error reporting: unreachable host, network,
port, protocol echo 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
ICMP
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 unknown
Type Code description4 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