Title: Datagram Networks: Internet Protocol IPv4
1Datagram NetworksInternet Protocol (IPv4)
2The Internet Network layer IP
- Internet Network Layer Components
- IP protocol (addressing, datagram format and
handling), Routing Protocols and ICMP protocol
3IP Addressing Introduction
- IP address 32-bit identifier for host, router
interface - interface connection between host/router and
physical link - routers typically have multiple interfaces
- host may have multiple interfaces
- IP addresses associated with each interface
223.1.1.1
223.1.2.9
223.1.1.4
223.1.1.3
223.1.1.1 11011111 00000001 00000001 00000001
223
1
1
1
4IP Addressing
- IP address
- network part (high order bits)
- host part (low order bits)
- NetworkID.HostID
- Whats an IP network ?
- device interfaces with same network part of IP
address - Hosts within the same IP network can reach each
other without intervening router
223.1.1.1
223.1.2.9
223.1.1.4
223.1.1.3
network consisting of 3 IP networks 223.1.1.0,
223.1.2.0, 223.1.3.0
5IP Addressing
223.1.1.2
- IP networks are not restricted to Ethernet
segments - Here we have 3 point-to-point links and each have
a different IP network defined over them.
223.1.1.1
223.1.1.4
223.1.1.3
223.1.7.0
223.1.9.2
223.1.9.1
223.1.7.1
223.1.8.0
223.1.8.1
223.1.2.6
223.1.3.27
Interconnected system consisting of 6 IP networks
223.1.2.1
223.1.2.2
223.1.3.2
223.1.3.1
6IP Addressing
223.1.1.2
- How to find IP networks?
- Detach each interface from router, host
- Create islands of isolated IP networks
- Each island defines an IP network
- Internet consists of millions of such IP networks
223.1.1.1
223.1.1.4
223.1.1.3
223.1.7.0
223.1.9.2
223.1.9.1
223.1.7.1
223.1.8.0
223.1.8.1
223.1.2.6
223.1.3.27
223.1.2.1
223.1.2.2
223.1.3.2
223.1.3.1
Interconnected system consisting of 6 IP networks
7IP Addresses
- given notion of IP network, lets re-examine IP
addresses - We have class-full addressing
- Original Internet design
class
1.0.0.0 to 127.255.255.255
A
network
0
host
128.0.0.0 to 191.255.255.255
B
192.0.0.0 to 223.255.255.255
C
224.0.0.0 to 239.255.255.255
D
32 bits
8IP addressing CIDR
- Classful addressing
- inefficient use of address space, address space
exhaustion - e.g., class B net allocated enough addresses for
65K hosts, even if only 2K hosts in that network - No longer used in the current Internet
- Solution? Classless Inter Domain Routing (CIDR)
- CIDR Classless InterDomain Routing
- Standardized in 1993
- Network portion of address of arbitrary length
- Address format a.b.c.d/x, where x is bits in
network portion of address
9Netmask
- With CIDR a new way is needed to determine the IP
network given an IP address - Solution Define a netmask
- Given an IP address of the form networkID.hostID,
the netmask of the IP address is obtained by
putting all 1s in the networkID portion and all
0s in the hostID portion
- 11111111 11111111 11111110 00000000
255.255.254.0 - Given an IPAddr and a netmask, we bit-wise AND
IPAddr and netmask to obtain the IP network. The
rest is the hostID. - NetworkID IPAddr Netmask
- HostID IPAddr Netmask
10IP Layer Broadcast
- Recall that a host can send a LL broadcast
message by putting FF-FF-FF-FF-FF-FF in
destination MAC address - How can a host send IP-layer broadcast packet? 2
ways - Put 255.255.255.255 in destination IP
- Means that all IP hosts within the same LL
broadcast domain will receive this IP datagram - Make lthostIDgt all 1s
- Means that all hosts within the same IP subnet
will receive this datagram - Example If IP subnet is 192.169.34.0, then a
packet with a destination IP 192.169.34.255 will
be received by all hosts whose IP subnet is
192.169.34.0
11IP addresses how to get one?
- Q How does a host get an IP address?
- hard-coded by system admin in a file
- Wintel control-panel-gtnetwork-gtconfiguration-gttcp
/ip-gtproperties - UNIX /etc/rc.config
- DHCP Dynamic Host Configuration Protocol
dynamically get address from as server - plug-and-play (more shortly)
12IP addresses how to get one?
- Q How does network get network 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
13Hierarchical addressing route aggregation
- CIDRized addresses facilitate hierarchical
routing - Fly-By-Night-ISP advertises that any IP datagram
whose addresses begin with 200.23.16.0/20 should
be sent to it. The rest of the world need not
that there are 8 other organizations each with
its own IP network. This is called route
aggregation - Dividing an IP network into smaller IP networks
as done in here is called subnetting. Each
organization can further divide their IP address
range into smaller IP subnets
Organization 0
Organization 1
Send me anything with addresses beginning
200.23.16.0/20
Organization 2
Fly-By-Night-ISP
Internet
Organization 7
Send me anything with addresses beginning
199.31.0.0/16
ISPs-R-Us
14Hierarchical addressing more specific routes
ISPs-R-Us has a more specific route to
Organization 1. By the longest prefix matching
rule, packets with destination addresses
beginning with 200.23.18.0/23 are sent to
ISPs-R-Us
Organization 0
Send me anything with addresses beginning
200.23.16.0/20
Organization 2
Fly-By-Night-ISP
Internet
Organization 7
Send me anything with addresses beginning
199.31.0.0/16 or 200.23.18.0/23
ISPs-R-Us
Organization 1
15IP addressing the last word...
- Q How does an ISP get block of addresses?
- A ICANN Internet Corporation for Assigned
- Names and Numbers
- allocates addresses
- manages DNS root servers
- assigns domain names, resolves disputes
16IP datagram format
- how much overhead with TCP?
- 20 bytes of TCP
- 20 bytes of IP
- 40 bytes app layer overhead
17Forwarding Getting a datagram from source to
dest.
forwarding table in A
- datagram remains unchanged, as it travels from
source to destination
18Forwarding Getting a datagram from source to
dest.
forwarding table in A
misc fields
data
223.1.1.1
223.1.1.3
- Starting at A, send IP datagram addressed to B
- look up network address of B in forwarding table
- find B is on same net. as A
- B and A are directly connected
- link layer will send datagram directly to B
inside link-layer frame. How?
19Delivering the packet from A to B
- Starting at A, given IP datagram addressed to B
- look up net. address of B, find B on same net. as
A - link layer send datagram to B inside link-layer
frame - How does A know the MAC address of B? ? ARP
protocol
frame source, dest address
datagram source, dest address
As IP addr
Bs IP addr
Bs MAC addr
As MAC addr
IP payload
datagram
frame
20ARP Address Resolution Protocol
- Each IP node (Host, Router) on LAN has ARP
module, table - ARP Table IP/MAC address mappings for some LAN
nodes - lt IP address MAC address TTLgt
- lt .. gt
- TTL (Time To Live) time after which address
mapping will be forgotten (typically 20 min)
21ARP protocol
- A knows B's IP address, wants to learn MAC
address of B - A broadcasts ARP query pkt, containing B's IP
address - all machines on LAN receive ARP query
- B receives ARP packet, replies to A with its
(B's) MAC address - A caches (saves) IP-to-MAC address pairs until
information becomes old (times out) - soft state information that times out (goes
away) unless refreshed
22Forwarding Getting a datagram from source to
dest.
forwarding table in A
misc fields
data
223.1.1.1
223.1.2.3
- Starting at A, dest. E
- look up network address of E in forwarding table
- E 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 frame - datagram arrives at 223.1.1.4
- continued..
23Forwarding Getting a datagram from source to
dest.
forwarding table in router
misc fields
data
223.1.1.1
223.1.2.3
- Arriving at 223.1.4, destined for 223.1.2.2
- look up network address of E in routers
forwarding table - E on same network as routers 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
24Another IP Packet Forwarding Example
- A creates IP packet with source A, destination E
- A uses ARP to get Rs MAC address for
111.111.111.110 - A creates Ethernet frame with R's MAC as dest,
Ethernet frame contains A-to-E IP datagram - As data link layer sends Ethernet frame to R
- Rs data link layer receives Ethernet frame
- R removes IP datagram from Ethernet frame, sees
its destined to E - R uses ARP to get Es MAC address
- R creates frame containing A-to-E IP datagram
sends to E
A
R
E
25IP packet forwarding algorithm
- D destination IP address
- Bool found false
- For each forwarding table entry (SubnetNumber,
SubnetMask, NextHop) do - D1 SubnetMask D
- if (D1 DubnetNumber)
- if (NextHop is an Interface)
- Deliver the datagram directly to the
destination within a LL frame - else
- Deliver the datagram to NextHop (a
router) - //end-else
- found true
- break
- //end-if
- //end-for
- If (!found)
- if (there is a ltdefaultgt router) Deliver the
datagram to the ltdefaultgt router - else Report Destination unreachable
- //end-if
26IP packet forwarding Example
- Assume Destination IP 128.96.34.68
- D1 128.96.34.68 255.255.255.128
128.96.34.0, which is equal to 128.99.34.0 ?
Deliver the datagram to the destination over
Interface0 - Assume Destination IP 128.96.34.150
- D1 128.96.34.150 255.255.255.128
128.96.34.128. - D1 128.96.34.150 255.255.255.128
128.96.34.128, which is equal to 128.96.34.128 ?
Deliver datagram to the destination over
Interface1 - Assume Destination IP 128.96.35.44
- IP subnet will not match any of the known IP
subnets?Deliver the packet to the ltdefaultgt
router, R3
27IP Fragmentation Reassembly
- network links have MTU (max.transfer unit) -
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 datagram out 3
smaller datagrams
reassembly
28IP Fragmentation Reassembly
- Example
- 4000 byte datagram
- 3980 byte payload
- MTU 1500 bytes
- 1st packet payload 1480 bytes
- 2nd packet payload 1480 bytes
- 3rd packet payload 1020 bytes
29ICMP Internet Control Message Protocol
Type Code description 0 0 echo
reply (ping) 3 0 dest. network
unreachable 3 1 dest host
unreachable 3 2 dest protocol
unreachable 3 3 dest port
unreachable 3 6 dest network
unknown 3 7 dest host unknown 4
0 source quench (congestion
control - not used) 8 0
echo request (ping) 9 0 route
advertisement 10 0 router
discovery 11 0 TTL expired 12 0
bad IP header
- Used by hosts, routers, gateways to communication
network-level information - error reporting unreachable host, network, port,
protocol - echo request/reply (used by ping)
- ICMP runs over IP
- ICMP msgs carried in IP datagrams
- ICMP message type, code plus first 8 bytes of IP
datagram causing error
30Host IP Address Configuration
- Q How does a host get an IP address?
- hard-coded by system admin in a file
- Wintel control-panel-gtnetwork-gtconfiguration-gttcp
/ip-gtproperties - UNIX /etc/rc.config
- DHCP Dynamic Host Configuration Protocol
dynamically get address from as server - plug-and-play (more shortly)
31DHCP 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 an on - Support for mobile users who want to join network
(more shortly) - DHCP overview
- host broadcasts DHCP discover msg
- DHCP server responds with DHCP offer msg
- host requests IP address DHCP request msg
- DHCP server sends address DHCP ack msg
32DHCP client-server scenario
223.1.2.1
DHCP
223.1.1.1
server
223.1.1.2
223.1.2.9
223.1.1.4
223.1.2.2
arriving DHCP client needs address in
this network
223.1.1.3
223.1.3.27
223.1.3.2
223.1.3.1
33DHCP client-server scenario
arriving client
DHCP server 223.1.2.5
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
time
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
34NAT Network Address Translation
rest of Internet
local network (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
Datagrams with source or destination in this
network have 10.0.0/24 address for source,
destination (as usual)
All datagrams leaving local network have same
single source NAT IP address 138.76.29.7, differe
nt source port numbers
35NAT 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).
36NAT Network Address Translation
NAT translation table WAN side addr LAN
side addr
138.76.29.7, 5001 10.0.0.1, 3345
10.0.0.1
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
4 NAT router changes datagram dest addr
from 138.76.29.7, 5001 to 10.0.0.1, 3345
3 Reply arrives dest. address 138.76.29.7,
5001
37NAT 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
38NAT 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, eg, P2P applications - What about embedded IP addresses?
- FTP, SMTP, SIP etc.
- address shortage should instead be solved by IPv6