IP Addressing: introduction
• 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.2
223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 1
1
IP Addressing
• IP address:
– network part/prefix (high
order bits)
– host part (low order bits)
– Additional hosts to 223.1.1
network would have address
of 223.1.1.xxx
• 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.2
223.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
• There are 6 networks on
right incl. that joining
R1R2, R2R3, R1R3.
223.1.1.1
223.1.1.3
223.1.1.4
223.1.2.2
223.1.2.1
223.1.2.6
223.1.3.2
223.1.3.1
223.1.3.27
223.1.1.2
223.1.7.0
223.1.7.1
223.1.8.0
223.1.8.1
223.1.9.1
223.1.9.2
R1
R3
R2
IP Addresses
0network host
1110 multicast address
A
D
class
1.0.0.0 to
127.255.255.255
10 network host
B 128.0.0.0 to
191.255.255.255
110 network host
C 192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255
32 bits
given notion of “network”, let’s re-examine IP addresses:
“class-full” addressing: 4 shown, 5th
was for future use
beginning with 11110
IP Addresses (Class A, B, C. D later)
0network host
A 1.0.0.0 to
127.255.255.255
 2^7 networks (first bit is 0)
 2^(24) interfaces
10 network host
B 128.0.0.0 to
191.255.255.255
 2^(14) networks (first 2 bits are 10)
 2^(16) interfaces
110 network host
C 192.0.0.0 to
223.255.255.255
 2^(21) networks (first 3 bits are 110)
 2^(8) interfaces
Classful addressing
 Class A, B, C networks require 1, 2 and 3 bytes for the
network portion.
 E.g., Class C networks can accommodate only 2^8-2 =
254 hosts (2 are reserved). Small for most medium to
large organizations.
 However Class B supports 65,634 hosts – too large.
An organization with 2000 hosts ended up with class B
addressing – address space was ill used.
 Therefore in 1993, Classless Interdomain Routing
(CIDR) was introduced.
IP addressing: CIDR (RFC 1519)
• 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
• Classful/CIDR addressing example:
– Prev. example with 2000 hosts. Therefore 2^16 – 2000 = 63K
addresses were unused.
– CIDR: Network part: 21 bits. Host part: 2^11 = 2048 hosts.
11001000 00010111 00010000 00000000
network
part
host
part
200.23.16.0/21
IP addresses: how to get one?
Q: How does host get IP address?
• hard-coded by system admin in a file
– Wintel: control-panel->network->configuration-
>tcp/ip->properties
– UNIX: /etc/rc.config
• DHCP: Dynamic Host Configuration Protocol:
dynamically get address from a server
– “plug-and-play”
(more shortly)
IP addresses: how to get one?
Q: How does network get network 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
(allocated to ISP). It is divided into 8 equal sized blocks.
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
Hierarchical addressing: route aggregation
“Send me anything
with 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 7
Internet
Organization 1
ISPs-R-Us
“Send me anything
with addresses
beginning
199.31.0.0/16”
200.23.20.0/23
Organization 2
.
.
.
.
.
.
Hierarchical addressing allows efficient advertisement of routing
information: “Fly-by-night-ISP requests that all datagrams whose first
20 address bits match 200.23.16.0/20. The world doesn’t know that
within this there are 8 other orgs. each with their own networks.
Hierarchical addressing: more specific
routes
Suppose Org. 1 dislikes Fly-by-night-ISP’s service and wants to move to
ISPs-R-Us? Org.1 keeps its addresses in 200.23.18.0/23 but now
ISPs-R-Us advertises 200.23.18.0/23.
Organization 0
“Send me anything
with addresses
beginning
200.23.16.0/20” Internet
“Send me anything
with addresses
beginning 199.31.0.0/16
or 200.23.18.0/23”
Fly-By-Night-ISP
ISPs-R-Us
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Organization 7
Organization 1
200.23.20.0/23
Organization 2
.
.
.
.
.
.
When other routers see 200.23.16.0/20 &
200.23.18.0/23 and want to route to 200.23.18.0/23
They will use the longest prefix matching rule
and send to ISPs-R-Us
IP addressing: the last word...
Q: How does an ISP get block of addresses?
A: ICANN: Internet Corporation for Assigned
Names and Numbers (guidelines in RFC 2050)
– allocates addresses
– manages DNS
– assigns domain names, resolves disputes
Little more on DHCP
 Network admin. can configure DHCP so that a given host gets a
persistent IP address, i.e., each time a host joins the network
it gets the same IP address.
 Problem: Many ISP’s don’t have as many IP addresses as there
are hosts.
 Solution: If an ISP has 4000 customers but only 400 are online
at a given time. In that case it might only need a block of 512
addresses (e.g., 200.23.30.0/23)
 Each time a host joins the network it is assigned a new and
arbitrary IP address
 DHCP server updates list of available addresses
Getting a datagram from source to dest.
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.2
223.1.3.1
223.1.3.27
A
B
E
misc
fields
source
IP addr
dest
IP addr
data
• Simplified IP hdr above
• datagram remains unchanged, as it
travels source to destination
• addr fields of interest
• Let A send datagram to B
• IP proto. in A sees 223.1.1 in
forwarding table matching leading
bits of IP address of B with one
hop, i.e., B is on same network.
• A puts datagram to link-layer
protocol whose job it is to move
datagram to B.
Dest. Net. next router Nhops
223.1.1 1
223.1.2 223.1.1.4 2
223.1.3 223.1.1.4 2
forwarding table in A
IP Addressing for the extereme beggeners
Getting a datagram from source to dest.
Dest. Net. next router Nhops
223.1.1 1
223.1.2 223.1.1.4 2
223.1.3 223.1.1.4 2
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…..
misc
fields 223.1.1.1 223.1.2.2 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.2
223.1.3.1
223.1.3.27
A
B
E
forwarding table in A
Getting a datagram from source to dest.
Arriving at 223.1.4, destined for
223.1.2.2
• look up network address of E in
router’s forwarding table
• E 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!)
misc
fields 223.1.1.1 223.1.2.2 data Dest. Net router Nhops interface
223.1.1 - 1 223.1.1.4
223.1.2.0/24 - 1 223.1.2.9
223.1.3 - 1 223.1.3.27
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.2
223.1.3.1
223.1.3.27
A
B
E
forwarding table in router
More on forwarding tables
• Forwarding tables in routers are central
• How are forwarding tables configured and maintained
for large networks with multiple paths?
– These tables must allow good paths
• As it turns out, routing algorithms have the role of
configuring and maintaining these tables.
IP datagram format
ver length
32 bits
data
(variable length,
typically a TCP
or UDP segment)
16-bit identifier
Internet
checksum
time to
live
32 bit source IP address
IP protocol version
number
header length
(bytes)
max number
remaining hops
(decremented at
each router)
for
fragmentation/
reassembly
total datagram
length (bytes)
upper layer protocol
to deliver payload to
head.
len
type of
service
“type” of data
flgs
fragment
offset
upper
layer
32 bit destination IP address
Options (if any) E.g. timestamp,
record route
taken, specify
list of routers
to visit.
how much overhead
with TCP?
• 20 bytes of TCP
• 20 bytes of IP
• = 40 bytes + app
layer overhead
IP datagram format (cont’d)
• Version number: IPv4 or IPv6. Datagram format changes with
this number. For now we will describe v4.
• Header length: v4 datagram contains a variable number of
options. It indicates where data starts
• Type of service: Permits different types of v4 datagrams.
Example: Cisco routers examine the first three bits and
interprets these as defining different levels of service to be
provided by the router. This is a policy issue and is
determined by routers admin.
• Datagram length: Total length of header + data (i.e.,
datagram). Theoretical max. is 2^16 but datagrams are rarely
greater than 1500 bytes and are frequently set to 576 bytes.
IP datagram format (cont’d)
• Identifier, flags, frag. offset: To be discussed.
• Header length: v4 d’gram contains a variable number of
options. It indicates where data starts
• Time to live: TTL prevents d’grams from ending in router
loops & living forever. TTL = TTL –1 on passage through
router; TTL=0 means discard d’gram.
• Protocol: Only used when IP d’gram reaches final destination.
Value 6 means pass to TCP, 17 to UDP. The protocol # is the
“glue” that holds the network and transport layers together.
• Header checksum : Discussed in TCP (transport layer).
Routers discard d’grams that have bit errors. Recomputed at
each router as at least TTL changes.
IP datagram format (cont’d)
• Identifier, flags, frag. offset: To be discussed.
• Header length: v4 d’gram contains a variable number of
options. It indicates where data starts
• Time to live: TTL prevents d’grams from ending in router
loops & living forever. TTL = TTL –1 on passage through
router; TTL=0 means discard d’gram.
• Protocol: Only used when IP d’gram reaches final destination.
Value 6 means pass to TCP, 17 to UDP. The protocol # is the
“glue” that holds the network and transport layers together.
• Header checksum : Discussed in TCP (transport layer).
Routers discard d’grams that have bit errors. Recomputed at
each router as at least TTL changes.
IP datagram format (cont’d)
• Source and dest IP addresses: We know about this.
However, 255.255.255.255 is a special IP add. When
a datagram has this IP, then the message is delivered
to all hosts on the same network. Routers could also
forward it to neighbouring networks.
• Options: Options field permits extensions to IP
header. Options are simply not used much today and
are dropped in IPv6.
• Data (payload): Most of the time, IP carries TCP or
UDP, but ICMP messages could be carried too.
IP 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 datagram
out: 3 smaller datagrams
reassembly
IP Fragmentation and 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 becomes
several smaller datagrams
• IP header has
identification (x), flag,
and fragmentation fields
• Example: 4000byte
d’gram (20byte header
+ 3980 IP payload).
• MTU = 1500bytes
• Frag 1: 1480bytes +
20byte header
• Frag 2: 1480bytes +
20byte header
• Frag 3: 3980-2*1480
bytes + 20byte header
ICMP: Internet Control Message Protocol
• used 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
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
13 0 Timestamp
14 0 Timestamp reply
15 0 Information request
16 0 Information reply
ICMP: Internet Control Message Protocol
32 bits
Type Code Checksum
Unused
IP header + 64 bits of original datagram
Most frequent ICMP message format
ICMP: Ping
32 bits
Type Code Checksum
Data ….
Ping uses Echo/Echo Reply
Identifier Sequence Number
• Ping uses Echo/Echo Reply
•TYPE = 8 for Echo
•TYPE = 0 for Echo reply, a new value of IP and Ping checksum is
calculated.
•Ping computes time between sending Echo d’grams and the
corresponding reply and computes RTT from that.
•Pinging stymie.gsfc.nasa.gov [128.183.8.93] with 32
bytes of data:
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Reply from 128.183.8.93: bytes=32 time<10ms TTL=64
•Ping statistics for 128.183.8.93:
• Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
•Approximate round trip times in milli-seconds:
• Minimum = 0ms, Maximum = 0ms, Average = 0ms
Ping – Example session
DHCP: 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
DHCP client-server scenario
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.2
223.1.3.1
223.1.3.27
A
B
E
DHCP
server
arriving DHCP
client needs
address in this
network
DHCP client-server scenario
DHCP server: 223.1.2.5 arriving
client
time
DHCP discover
src : 0.0.0.0, 68 (port)
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddr: 223.1.2.4
transaction ID: 654
Lifetime (of IP Add): 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
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
There may be multiple
DHCP servers responding
with a “DHCP offer”
Client will choose from
one of many servers – if
more than one server
responds.
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 of
Internet
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,
different source port numbers
1) Every IP-capable device needs an IP address.
2) Proliferation of Small Office/Home Office (SOHO) networks.
3) The range of addresses needs to be larger.
NAT enabled
router
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
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
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345
D: 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, 80
NAT translation table
WAN 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, 5001
D: 128.119.40.186, 80
2
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
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 router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Arbitrarily chosen by NAT router
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,
eg, P2P applications
– address shortage should instead be solved by IPv6
Chapter 4 roadmap
4.1 Introduction and Network Service Models
4.2 Routing Principles
4.3 Hierarchical Routing
4.4 The Internet (IP) Protocol
4.5 Routing in the Internet
– 4.5.1 Intra-AS routing: RIP and OSPF
– 4.5.2 Inter-AS routing: BGP
4.6 What’s Inside a Router?
4.7 IPv6
4.8 Multicast Routing
4.9 Mobility
Routing in the Internet
• The Global Internet consists of Autonomous Systems
(AS) interconnected with each other:
– Stub AS: small corporation: one connection to other AS’s
– Multihomed AS: large corporation (no transit): multiple
connections to other AS’s
– Transit AS: provider, hooking many AS’s together
• Two-level routing:
– Intra-AS: administrator responsible for choice of routing
algorithm within network
– Inter-AS: unique standard for inter-AS routing: BGP
Internet AS Hierarchy
Inter-AS border (exterior gateway) routers
Intra-AS interior (gateway) routers
Intra-AS Routing
• Also known as Interior Gateway Protocols (IGP)
• Most common Intra-AS routing protocols:
– RIP: Routing Information Protocol
– OSPF: Open Shortest Path First
– IGRP: Interior Gateway Routing Protocol (Cisco
proprietary)
RIP ( Routing Information Protocol)
• Distance vector algorithm
• Included in BSD-UNIX Distribution in 1982
• Distance metric: # of hops (max = 15 hops)
– Can you guess why?
• Distance vectors: exchanged among neighbors every
30 sec via Response Message (also called
advertisement)
• Each advertisement: list of up to 25 destination nets
within AS
RIP: Example
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
w x y
z
A
C
D B
Routing table in D
RIP: Example
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Routing table in D
w x y
z
A
C
D B
Dest Next hops
w - -
x - -
z C 4
…. … ...
Advertisement
from A to D
Note # of hops < 7 (see prev. table)
RIP: Link Failure and Recovery
If no advertisement heard after 180 sec -->
neighbor/link declared dead
– routes via neighbor invalidated
– new advertisements sent to neighbors
– neighbors in turn send out new advertisements (if
tables changed)
– link failure info quickly propagates to entire net
– poison reverse used to prevent ping-pong loops
(infinite distance = 16 hops)
RIP Table processing
• RIP routing tables managed by application-level
process called route-d (daemon)
• advertisements sent in UDP packets, periodically
repeated
physical
link
network forwarding
(IP) table
Transprt
(UDP)
routed
physical
link
network
(IP)
Transprt
(UDP)
routed
forwarding
table
RIP Table example (continued)
Router: giroflee.eurocom.fr
• Three attached class C networks (LANs)
• Router only knows routes to attached LANs
• Default router used to “go up”
• Route multicast address: 224.0.0.0
• Loopback interface (for debugging)
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
127.0.0.1 127.0.0.1 UH 0 26492 lo0
192.168.2. 192.168.2.5 U 2 13 fa0
193.55.114. 193.55.114.6 U 3 58503 le0
192.168.3. 192.168.3.5 U 2 25 qaa0
224.0.0.0 193.55.114.6 U 3 0 le0
default 193.55.114.129 UG 0 143454
OSPF (Open Shortest Path First)
• “open”: publicly available
• Uses Link State algorithm
– LS packet dissemination
– Topology map at each node
– Route computation using Dijkstra’s algorithm
• OSPF advertisement carries one entry per neighbor
router
• Advertisements disseminated to entire AS (via
flooding)
– Carried in OSPF messages directly over IP (rather than
TCP or UDP
OSPF “advanced” features (not in RIP)
• Security: all OSPF messages authenticated (to
prevent malicious intrusion)
• Multiple same-cost paths allowed (only one path in
RIP)
• For each link, multiple cost metrics for different TOS
(e.g., satellite link cost set “low” for best effort; high
for real time)
• Integrated uni- and multicast support:
– Multicast OSPF (MOSPF) uses same topology
data base as OSPF
• Hierarchical OSPF in large domains.
Hierarchical OSPF
Hierarchical OSPF
• Two-level hierarchy: local area, backbone.
– Link-state advertisements only in area
– each nodes has detailed area topology; only know
direction (shortest path) to nets in other areas.
• Area border routers: “summarize” distances to nets
in own area, advertise to other Area Border routers.
• Backbone routers: run OSPF routing limited to
backbone.
• Boundary routers: connect to other AS’s.
Inter-AS routing in the Internet: BGP
Figure 4.5.2-new2: BGP use for inter-domain routing
AS2
(OSPF
intra-AS
routing)
AS1
(RIP intra-AS
routing) BGP
AS3
(OSPF intra-AS
routing)
BGP
R1 R2
R3
R4
R5
Internet inter-AS routing: BGP
• BGP (Border Gateway Protocol): the de facto standard
• Path Vector protocol:
– similar to Distance Vector protocol
– each Border Gateway broadcast to neighbors (peers)
entire path (i.e., sequence of AS’s) to destination
– BGP routes to networks (ASs), not individual hosts
– E.g., Gateway X may send its path to dest. Z:
Path (X,Z) = X,Y1,Y2,Y3,…,Z
Internet inter-AS routing: BGP
Suppose: gateway X send its path to peer gateway W
• W may or may not select path offered by X
– cost, policy (don’t route via competitors AS), loop prevention reasons.
• If W selects path advertised by X, then:
Path (W,Z) = w, Path (X,Z)
• Note: X can control incoming traffic by controlling it route
advertisements to peers:
– e.g., don’t want to route traffic to Z -> don’t advertise any routes to Z
BGP: controlling who routes to you
Figure 4.5-BGPnew: a simple BGP scenario
A
B
C
W
X
Y
legend:
customer
network:
provider
network
• A,B,C are provider networks
• X,W,Y are customer (of provider networks)
• X is dual-homed: attached to two networks
– X does not want to route from B via X to C
– .. so X will not advertise to B a route to C
BGP: controlling who routes to you
Figure 4.5-BGPnew: a simple BGP scenario
A
B
C
W
X
Y
legend:
customer
network:
provider
network
• A advertises to B the path AW
• B advertises to W the path BAW
• Should B advertise to C the path BAW?
– No way! B gets no “revenue” for routing CBAW since neither W nor
C are B’s customers
– B wants to force C to route to w via A
– B wants to route only to/from its customers!
BGP operation
Q: What does a BGP router do?
• Receiving and filtering route advertisements from
directly attached neighbor(s).
• Route selection.
– To route to destination X, which path )of
several advertised) will be taken?
• Sending route advertisements to neighbors.
BGP messages
• BGP messages exchanged using TCP.
• BGP messages:
– OPEN: opens TCP connection to peer and
authenticates sender
– UPDATE: advertises new path (or withdraws old)
– KEEPALIVE keeps connection alive in absence of
UPDATES; also ACKs OPEN request
– NOTIFICATION: reports errors in previous msg;
also used to close connection
Why different Intra- and Inter-AS routing ?
Policy:
• Inter-AS: admin wants control over how its traffic
routed, who routes through its net.
• Intra-AS: single admin, so no policy decisions needed
Scale:
• hierarchical routing saves table size, reduced update
traffic
Performance:
• Intra-AS: can focus on performance
• Inter-AS: policy may dominate over performance
IPv6
• Initial motivation: 32-bit address space
completely allocated by 2008.
• Additional motivation:
– header format helps speed processing/forwarding
– header changes to facilitate QoS
– new “anycast” address: route to “best” of several
replicated servers
• IPv6 datagram format:
– fixed-length 40 byte header
– no fragmentation allowed
IPv6 Header (Cont)
Priority: identify priority among datagrams in flow
Flow Label: identify datagrams in same “flow.”
(concept of“flow” not well defined).
Next header: identify upper layer protocol for data
Other Changes from IPv4
• Checksum: removed entirely to reduce
processing time at each hop
• Options: allowed, but outside of header,
indicated by “Next Header” field
• ICMPv6: new version of ICMP
– additional message types, e.g. “Packet Too Big”
– multicast group management functions
Transition From IPv4 To IPv6
• Not all routers can be upgraded simultaneous
– no “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 formats
– Tunneling: IPv6 carried as payload in IPv4
datagram among IPv4 routers

More Related Content

PPT
IP Addressing.ppt
PPTX
Computer Networking: A Top-Down Approach
PDF
MULTIMEDIA COMMUNICATION & NETWORKS
PDF
Network Layers | Computer Communication and Networks
PPTX
IPAddressing .pptx
PPTX
Chapter_6_ Network Layer.pptx
PPTX
2 logical addressing
PDF
IP addressing by Mamun Sir
IP Addressing.ppt
Computer Networking: A Top-Down Approach
MULTIMEDIA COMMUNICATION & NETWORKS
Network Layers | Computer Communication and Networks
IPAddressing .pptx
Chapter_6_ Network Layer.pptx
2 logical addressing
IP addressing by Mamun Sir

Similar to IP Addressing for the extereme beggeners (20)

PPTX
Lecture 3 network layer
PPT
IP Address
PDF
net work iTM3
PPTX
NDC Chapter 1.pptx for all this is veriy importan pwor point for all students
PPTX
NDC Chapter 1.pptx for all this is veriy importan pwor point for all students
PPTX
network-addressing.pptx
PPT
Module3
PPTX
Lecture 23 DHCP and NAT.pptx
PPTX
network design 7.pptx
PPTX
IP_ADDRESSING_AND_SUBNETTIN networkG.pptx
PPTX
6-LEC- 6.pptx Network Layer. Addressing Subnetting Mask (default and subnet) ...
PPTX
Network.pptx
PPTX
Week 2 - Computer networks lab - ACU.pptx
PPT
CCNA Exam by [email protected] - for CCNA test
PPTX
ipv4subnettingstrategy-140207112043-phpapp02.pptx
PPT
Ip addressing
PPTX
09 Systems Software Programming-Network Programming.pptx
PDF
IP Address Routing _________________2_IP Routing.pdf
PDF
Chapter_4 Network Layer-IP datagram and addressing.ppt.pdf
Lecture 3 network layer
IP Address
net work iTM3
NDC Chapter 1.pptx for all this is veriy importan pwor point for all students
NDC Chapter 1.pptx for all this is veriy importan pwor point for all students
network-addressing.pptx
Module3
Lecture 23 DHCP and NAT.pptx
network design 7.pptx
IP_ADDRESSING_AND_SUBNETTIN networkG.pptx
6-LEC- 6.pptx Network Layer. Addressing Subnetting Mask (default and subnet) ...
Network.pptx
Week 2 - Computer networks lab - ACU.pptx
CCNA Exam by [email protected] - for CCNA test
ipv4subnettingstrategy-140207112043-phpapp02.pptx
Ip addressing
09 Systems Software Programming-Network Programming.pptx
IP Address Routing _________________2_IP Routing.pdf
Chapter_4 Network Layer-IP datagram and addressing.ppt.pdf
Ad

Recently uploaded (20)

PPTX
MODULE 02 - CLOUD COMPUTING-Virtual Machines and Virtualization of Clusters a...
PPTX
Hardware, SLAM tracking,Privacy and AR Cloud Data.
PDF
Introduction to Machine Learning -Basic concepts,Models and Description
PDF
THE PEDAGOGICAL NEXUS IN TEACHING ELECTRICITY CONCEPTS IN THE GRADE 9 NATURAL...
PPTX
Design ,Art Across Digital Realities and eXtended Reality
PDF
PhD defense presentation in field of Computer Science
PDF
Recent Trends in Network Security - 2025
PDF
ASPEN PLUS USER GUIDE - PROCESS SIMULATIONS
PPTX
Unit I - Mechatronics.pptx presentation
PDF
V2500 Owner and Operatore Guide for Airbus
PPTX
22ME926Introduction to Business Intelligence and Analytics, Advanced Integrat...
PPTX
240409 Data Center Training Programs by Uptime Institute (Drafting).pptx
PPTX
Soft Skills Unit 2 Listening Speaking Reading Writing.pptx
PPTX
INTERNET OF THINGS - EMBEDDED SYSTEMS AND INTERNET OF THINGS
PPTX
L1111-Important Microbial Mechanisms.pptx
PDF
Software defined netwoks is useful to learn NFV and virtual Lans
PDF
The Journal of Finance - July 1993 - JENSEN - The Modern Industrial Revolutio...
PDF
Application of smart robotics in the supply chain
PPTX
Research Writing, Mechanical Engineering
PPTX
quantum theory on the next future in.pptx
MODULE 02 - CLOUD COMPUTING-Virtual Machines and Virtualization of Clusters a...
Hardware, SLAM tracking,Privacy and AR Cloud Data.
Introduction to Machine Learning -Basic concepts,Models and Description
THE PEDAGOGICAL NEXUS IN TEACHING ELECTRICITY CONCEPTS IN THE GRADE 9 NATURAL...
Design ,Art Across Digital Realities and eXtended Reality
PhD defense presentation in field of Computer Science
Recent Trends in Network Security - 2025
ASPEN PLUS USER GUIDE - PROCESS SIMULATIONS
Unit I - Mechatronics.pptx presentation
V2500 Owner and Operatore Guide for Airbus
22ME926Introduction to Business Intelligence and Analytics, Advanced Integrat...
240409 Data Center Training Programs by Uptime Institute (Drafting).pptx
Soft Skills Unit 2 Listening Speaking Reading Writing.pptx
INTERNET OF THINGS - EMBEDDED SYSTEMS AND INTERNET OF THINGS
L1111-Important Microbial Mechanisms.pptx
Software defined netwoks is useful to learn NFV and virtual Lans
The Journal of Finance - July 1993 - JENSEN - The Modern Industrial Revolutio...
Application of smart robotics in the supply chain
Research Writing, Mechanical Engineering
quantum theory on the next future in.pptx
Ad

IP Addressing for the extereme beggeners

  • 1. IP Addressing: introduction • 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.2 223.1.3.1 223.1.3.27 223.1.1.1 = 11011111 00000001 00000001 00000001 223 1 1 1
  • 2. IP Addressing • IP address: – network part/prefix (high order bits) – host part (low order bits) – Additional hosts to 223.1.1 network would have address of 223.1.1.xxx • 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.2 223.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
  • 3. IP Addressing How to find the networks? • Detach each interface from router, host • create “islands of isolated networks • There are 6 networks on right incl. that joining R1R2, R2R3, R1R3. 223.1.1.1 223.1.1.3 223.1.1.4 223.1.2.2 223.1.2.1 223.1.2.6 223.1.3.2 223.1.3.1 223.1.3.27 223.1.1.2 223.1.7.0 223.1.7.1 223.1.8.0 223.1.8.1 223.1.9.1 223.1.9.2 R1 R3 R2
  • 4. IP Addresses 0network host 1110 multicast address A D class 1.0.0.0 to 127.255.255.255 10 network host B 128.0.0.0 to 191.255.255.255 110 network host C 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 32 bits given notion of “network”, let’s re-examine IP addresses: “class-full” addressing: 4 shown, 5th was for future use beginning with 11110
  • 5. IP Addresses (Class A, B, C. D later) 0network host A 1.0.0.0 to 127.255.255.255  2^7 networks (first bit is 0)  2^(24) interfaces 10 network host B 128.0.0.0 to 191.255.255.255  2^(14) networks (first 2 bits are 10)  2^(16) interfaces 110 network host C 192.0.0.0 to 223.255.255.255  2^(21) networks (first 3 bits are 110)  2^(8) interfaces
  • 6. Classful addressing  Class A, B, C networks require 1, 2 and 3 bytes for the network portion.  E.g., Class C networks can accommodate only 2^8-2 = 254 hosts (2 are reserved). Small for most medium to large organizations.  However Class B supports 65,634 hosts – too large. An organization with 2000 hosts ended up with class B addressing – address space was ill used.  Therefore in 1993, Classless Interdomain Routing (CIDR) was introduced.
  • 7. IP addressing: CIDR (RFC 1519) • 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 • Classful/CIDR addressing example: – Prev. example with 2000 hosts. Therefore 2^16 – 2000 = 63K addresses were unused. – CIDR: Network part: 21 bits. Host part: 2^11 = 2048 hosts. 11001000 00010111 00010000 00000000 network part host part 200.23.16.0/21
  • 8. IP addresses: how to get one? Q: How does host get IP address? • hard-coded by system admin in a file – Wintel: control-panel->network->configuration- >tcp/ip->properties – UNIX: /etc/rc.config • DHCP: Dynamic Host Configuration Protocol: dynamically get address from a server – “plug-and-play” (more shortly)
  • 9. IP addresses: how to get one? Q: How does network get network 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 (allocated to ISP). It is divided into 8 equal sized blocks. 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
  • 10. Hierarchical addressing: route aggregation “Send me anything with 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 7 Internet Organization 1 ISPs-R-Us “Send me anything with addresses beginning 199.31.0.0/16” 200.23.20.0/23 Organization 2 . . . . . . Hierarchical addressing allows efficient advertisement of routing information: “Fly-by-night-ISP requests that all datagrams whose first 20 address bits match 200.23.16.0/20. The world doesn’t know that within this there are 8 other orgs. each with their own networks.
  • 11. Hierarchical addressing: more specific routes Suppose Org. 1 dislikes Fly-by-night-ISP’s service and wants to move to ISPs-R-Us? Org.1 keeps its addresses in 200.23.18.0/23 but now ISPs-R-Us advertises 200.23.18.0/23. Organization 0 “Send me anything with addresses beginning 200.23.16.0/20” Internet “Send me anything with addresses beginning 199.31.0.0/16 or 200.23.18.0/23” Fly-By-Night-ISP ISPs-R-Us 200.23.16.0/23 200.23.18.0/23 200.23.30.0/23 Organization 7 Organization 1 200.23.20.0/23 Organization 2 . . . . . . When other routers see 200.23.16.0/20 & 200.23.18.0/23 and want to route to 200.23.18.0/23 They will use the longest prefix matching rule and send to ISPs-R-Us
  • 12. IP addressing: the last word... Q: How does an ISP get block of addresses? A: ICANN: Internet Corporation for Assigned Names and Numbers (guidelines in RFC 2050) – allocates addresses – manages DNS – assigns domain names, resolves disputes
  • 13. Little more on DHCP  Network admin. can configure DHCP so that a given host gets a persistent IP address, i.e., each time a host joins the network it gets the same IP address.  Problem: Many ISP’s don’t have as many IP addresses as there are hosts.  Solution: If an ISP has 4000 customers but only 400 are online at a given time. In that case it might only need a block of 512 addresses (e.g., 200.23.30.0/23)  Each time a host joins the network it is assigned a new and arbitrary IP address  DHCP server updates list of available addresses
  • 14. Getting a datagram from source to dest. 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.2 223.1.3.1 223.1.3.27 A B E misc fields source IP addr dest IP addr data • Simplified IP hdr above • datagram remains unchanged, as it travels source to destination • addr fields of interest • Let A send datagram to B • IP proto. in A sees 223.1.1 in forwarding table matching leading bits of IP address of B with one hop, i.e., B is on same network. • A puts datagram to link-layer protocol whose job it is to move datagram to B. Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 forwarding table in A
  • 16. Getting a datagram from source to dest. Dest. Net. next router Nhops 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 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….. misc fields 223.1.1.1 223.1.2.2 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.2 223.1.3.1 223.1.3.27 A B E forwarding table in A
  • 17. Getting a datagram from source to dest. Arriving at 223.1.4, destined for 223.1.2.2 • look up network address of E in router’s forwarding table • E 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!) misc fields 223.1.1.1 223.1.2.2 data Dest. Net router Nhops interface 223.1.1 - 1 223.1.1.4 223.1.2.0/24 - 1 223.1.2.9 223.1.3 - 1 223.1.3.27 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.2 223.1.3.1 223.1.3.27 A B E forwarding table in router
  • 18. More on forwarding tables • Forwarding tables in routers are central • How are forwarding tables configured and maintained for large networks with multiple paths? – These tables must allow good paths • As it turns out, routing algorithms have the role of configuring and maintaining these tables.
  • 19. IP datagram format ver length 32 bits data (variable length, typically a TCP or UDP segment) 16-bit identifier Internet checksum time to live 32 bit source IP address IP protocol version number header length (bytes) max number remaining hops (decremented at each router) for fragmentation/ reassembly total datagram length (bytes) upper layer protocol to deliver payload to head. len type of service “type” of data flgs fragment offset upper layer 32 bit destination IP address Options (if any) E.g. timestamp, record route taken, specify list of routers to visit. how much overhead with TCP? • 20 bytes of TCP • 20 bytes of IP • = 40 bytes + app layer overhead
  • 20. IP datagram format (cont’d) • Version number: IPv4 or IPv6. Datagram format changes with this number. For now we will describe v4. • Header length: v4 datagram contains a variable number of options. It indicates where data starts • Type of service: Permits different types of v4 datagrams. Example: Cisco routers examine the first three bits and interprets these as defining different levels of service to be provided by the router. This is a policy issue and is determined by routers admin. • Datagram length: Total length of header + data (i.e., datagram). Theoretical max. is 2^16 but datagrams are rarely greater than 1500 bytes and are frequently set to 576 bytes.
  • 21. IP datagram format (cont’d) • Identifier, flags, frag. offset: To be discussed. • Header length: v4 d’gram contains a variable number of options. It indicates where data starts • Time to live: TTL prevents d’grams from ending in router loops & living forever. TTL = TTL –1 on passage through router; TTL=0 means discard d’gram. • Protocol: Only used when IP d’gram reaches final destination. Value 6 means pass to TCP, 17 to UDP. The protocol # is the “glue” that holds the network and transport layers together. • Header checksum : Discussed in TCP (transport layer). Routers discard d’grams that have bit errors. Recomputed at each router as at least TTL changes.
  • 22. IP datagram format (cont’d) • Identifier, flags, frag. offset: To be discussed. • Header length: v4 d’gram contains a variable number of options. It indicates where data starts • Time to live: TTL prevents d’grams from ending in router loops & living forever. TTL = TTL –1 on passage through router; TTL=0 means discard d’gram. • Protocol: Only used when IP d’gram reaches final destination. Value 6 means pass to TCP, 17 to UDP. The protocol # is the “glue” that holds the network and transport layers together. • Header checksum : Discussed in TCP (transport layer). Routers discard d’grams that have bit errors. Recomputed at each router as at least TTL changes.
  • 23. IP datagram format (cont’d) • Source and dest IP addresses: We know about this. However, 255.255.255.255 is a special IP add. When a datagram has this IP, then the message is delivered to all hosts on the same network. Routers could also forward it to neighbouring networks. • Options: Options field permits extensions to IP header. Options are simply not used much today and are dropped in IPv6. • Data (payload): Most of the time, IP carries TCP or UDP, but ICMP messages could be carried too.
  • 24. IP 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 datagram out: 3 smaller datagrams reassembly
  • 25. IP Fragmentation and 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 becomes several smaller datagrams • IP header has identification (x), flag, and fragmentation fields • Example: 4000byte d’gram (20byte header + 3980 IP payload). • MTU = 1500bytes • Frag 1: 1480bytes + 20byte header • Frag 2: 1480bytes + 20byte header • Frag 3: 3980-2*1480 bytes + 20byte header
  • 26. ICMP: Internet Control Message Protocol • used 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 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 13 0 Timestamp 14 0 Timestamp reply 15 0 Information request 16 0 Information reply
  • 27. ICMP: Internet Control Message Protocol 32 bits Type Code Checksum Unused IP header + 64 bits of original datagram Most frequent ICMP message format
  • 28. ICMP: Ping 32 bits Type Code Checksum Data …. Ping uses Echo/Echo Reply Identifier Sequence Number • Ping uses Echo/Echo Reply •TYPE = 8 for Echo •TYPE = 0 for Echo reply, a new value of IP and Ping checksum is calculated. •Ping computes time between sending Echo d’grams and the corresponding reply and computes RTT from that.
  • 29. •Pinging stymie.gsfc.nasa.gov [128.183.8.93] with 32 bytes of data: •Reply from 128.183.8.93: bytes=32 time<10ms TTL=64 •Reply from 128.183.8.93: bytes=32 time<10ms TTL=64 •Reply from 128.183.8.93: bytes=32 time<10ms TTL=64 •Reply from 128.183.8.93: bytes=32 time<10ms TTL=64 •Ping statistics for 128.183.8.93: • Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), •Approximate round trip times in milli-seconds: • Minimum = 0ms, Maximum = 0ms, Average = 0ms Ping – Example session
  • 30. DHCP: 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
  • 31. DHCP client-server scenario 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.2 223.1.3.1 223.1.3.27 A B E DHCP server arriving DHCP client needs address in this network
  • 32. DHCP client-server scenario DHCP server: 223.1.2.5 arriving client time DHCP discover src : 0.0.0.0, 68 (port) dest.: 255.255.255.255,67 yiaddr: 0.0.0.0 transaction ID: 654 DHCP offer src: 223.1.2.5, 67 dest: 255.255.255.255, 68 yiaddr: 223.1.2.4 transaction ID: 654 Lifetime (of IP Add): 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 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 There may be multiple DHCP servers responding with a “DHCP offer” Client will choose from one of many servers – if more than one server responds.
  • 33. 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 of Internet 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, different source port numbers 1) Every IP-capable device needs an IP address. 2) Proliferation of Small Office/Home Office (SOHO) networks. 3) The range of addresses needs to be larger. NAT enabled router
  • 34. 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).
  • 35. NAT: 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
  • 36. NAT: Network Address Translation 10.0.0.1 10.0.0.2 10.0.0.3 S: 10.0.0.1, 3345 D: 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, 80 NAT translation table WAN 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, 5001 D: 128.119.40.186, 80 2 2: NAT router changes datagram source addr from 10.0.0.1, 3345 to 138.76.29.7, 5001, updates table 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 router changes datagram dest addr from 138.76.29.7, 5001 to 10.0.0.1, 3345 Arbitrarily chosen by NAT router
  • 37. 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, eg, P2P applications – address shortage should instead be solved by IPv6
  • 38. Chapter 4 roadmap 4.1 Introduction and Network Service Models 4.2 Routing Principles 4.3 Hierarchical Routing 4.4 The Internet (IP) Protocol 4.5 Routing in the Internet – 4.5.1 Intra-AS routing: RIP and OSPF – 4.5.2 Inter-AS routing: BGP 4.6 What’s Inside a Router? 4.7 IPv6 4.8 Multicast Routing 4.9 Mobility
  • 39. Routing in the Internet • The Global Internet consists of Autonomous Systems (AS) interconnected with each other: – Stub AS: small corporation: one connection to other AS’s – Multihomed AS: large corporation (no transit): multiple connections to other AS’s – Transit AS: provider, hooking many AS’s together • Two-level routing: – Intra-AS: administrator responsible for choice of routing algorithm within network – Inter-AS: unique standard for inter-AS routing: BGP
  • 40. Internet AS Hierarchy Inter-AS border (exterior gateway) routers Intra-AS interior (gateway) routers
  • 41. Intra-AS Routing • Also known as Interior Gateway Protocols (IGP) • Most common Intra-AS routing protocols: – RIP: Routing Information Protocol – OSPF: Open Shortest Path First – IGRP: Interior Gateway Routing Protocol (Cisco proprietary)
  • 42. RIP ( Routing Information Protocol) • Distance vector algorithm • Included in BSD-UNIX Distribution in 1982 • Distance metric: # of hops (max = 15 hops) – Can you guess why? • Distance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement) • Each advertisement: list of up to 25 destination nets within AS
  • 43. RIP: Example Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B 7 x -- 1 …. …. .... w x y z A C D B Routing table in D
  • 44. RIP: Example Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B A 7 5 x -- 1 …. …. .... Routing table in D w x y z A C D B Dest Next hops w - - x - - z C 4 …. … ... Advertisement from A to D Note # of hops < 7 (see prev. table)
  • 45. RIP: Link Failure and Recovery If no advertisement heard after 180 sec --> neighbor/link declared dead – routes via neighbor invalidated – new advertisements sent to neighbors – neighbors in turn send out new advertisements (if tables changed) – link failure info quickly propagates to entire net – poison reverse used to prevent ping-pong loops (infinite distance = 16 hops)
  • 46. RIP Table processing • RIP routing tables managed by application-level process called route-d (daemon) • advertisements sent in UDP packets, periodically repeated physical link network forwarding (IP) table Transprt (UDP) routed physical link network (IP) Transprt (UDP) routed forwarding table
  • 47. RIP Table example (continued) Router: giroflee.eurocom.fr • Three attached class C networks (LANs) • Router only knows routes to attached LANs • Default router used to “go up” • Route multicast address: 224.0.0.0 • Loopback interface (for debugging) Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 127.0.0.1 127.0.0.1 UH 0 26492 lo0 192.168.2. 192.168.2.5 U 2 13 fa0 193.55.114. 193.55.114.6 U 3 58503 le0 192.168.3. 192.168.3.5 U 2 25 qaa0 224.0.0.0 193.55.114.6 U 3 0 le0 default 193.55.114.129 UG 0 143454
  • 48. OSPF (Open Shortest Path First) • “open”: publicly available • Uses Link State algorithm – LS packet dissemination – Topology map at each node – Route computation using Dijkstra’s algorithm • OSPF advertisement carries one entry per neighbor router • Advertisements disseminated to entire AS (via flooding) – Carried in OSPF messages directly over IP (rather than TCP or UDP
  • 49. OSPF “advanced” features (not in RIP) • Security: all OSPF messages authenticated (to prevent malicious intrusion) • Multiple same-cost paths allowed (only one path in RIP) • For each link, multiple cost metrics for different TOS (e.g., satellite link cost set “low” for best effort; high for real time) • Integrated uni- and multicast support: – Multicast OSPF (MOSPF) uses same topology data base as OSPF • Hierarchical OSPF in large domains.
  • 51. Hierarchical OSPF • Two-level hierarchy: local area, backbone. – Link-state advertisements only in area – each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. • Area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers. • Backbone routers: run OSPF routing limited to backbone. • Boundary routers: connect to other AS’s.
  • 52. Inter-AS routing in the Internet: BGP Figure 4.5.2-new2: BGP use for inter-domain routing AS2 (OSPF intra-AS routing) AS1 (RIP intra-AS routing) BGP AS3 (OSPF intra-AS routing) BGP R1 R2 R3 R4 R5
  • 53. Internet inter-AS routing: BGP • BGP (Border Gateway Protocol): the de facto standard • Path Vector protocol: – similar to Distance Vector protocol – each Border Gateway broadcast to neighbors (peers) entire path (i.e., sequence of AS’s) to destination – BGP routes to networks (ASs), not individual hosts – E.g., Gateway X may send its path to dest. Z: Path (X,Z) = X,Y1,Y2,Y3,…,Z
  • 54. Internet inter-AS routing: BGP Suppose: gateway X send its path to peer gateway W • W may or may not select path offered by X – cost, policy (don’t route via competitors AS), loop prevention reasons. • If W selects path advertised by X, then: Path (W,Z) = w, Path (X,Z) • Note: X can control incoming traffic by controlling it route advertisements to peers: – e.g., don’t want to route traffic to Z -> don’t advertise any routes to Z
  • 55. BGP: controlling who routes to you Figure 4.5-BGPnew: a simple BGP scenario A B C W X Y legend: customer network: provider network • A,B,C are provider networks • X,W,Y are customer (of provider networks) • X is dual-homed: attached to two networks – X does not want to route from B via X to C – .. so X will not advertise to B a route to C
  • 56. BGP: controlling who routes to you Figure 4.5-BGPnew: a simple BGP scenario A B C W X Y legend: customer network: provider network • A advertises to B the path AW • B advertises to W the path BAW • Should B advertise to C the path BAW? – No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers – B wants to force C to route to w via A – B wants to route only to/from its customers!
  • 57. BGP operation Q: What does a BGP router do? • Receiving and filtering route advertisements from directly attached neighbor(s). • Route selection. – To route to destination X, which path )of several advertised) will be taken? • Sending route advertisements to neighbors.
  • 58. BGP messages • BGP messages exchanged using TCP. • BGP messages: – OPEN: opens TCP connection to peer and authenticates sender – UPDATE: advertises new path (or withdraws old) – KEEPALIVE keeps connection alive in absence of UPDATES; also ACKs OPEN request – NOTIFICATION: reports errors in previous msg; also used to close connection
  • 59. Why different Intra- and Inter-AS routing ? Policy: • Inter-AS: admin wants control over how its traffic routed, who routes through its net. • Intra-AS: single admin, so no policy decisions needed Scale: • hierarchical routing saves table size, reduced update traffic Performance: • Intra-AS: can focus on performance • Inter-AS: policy may dominate over performance
  • 60. IPv6 • Initial motivation: 32-bit address space completely allocated by 2008. • Additional motivation: – header format helps speed processing/forwarding – header changes to facilitate QoS – new “anycast” address: route to “best” of several replicated servers • IPv6 datagram format: – fixed-length 40 byte header – no fragmentation allowed
  • 61. IPv6 Header (Cont) Priority: identify priority among datagrams in flow Flow Label: identify datagrams in same “flow.” (concept of“flow” not well defined). Next header: identify upper layer protocol for data
  • 62. Other Changes from IPv4 • Checksum: removed entirely to reduce processing time at each hop • Options: allowed, but outside of header, indicated by “Next Header” field • ICMPv6: new version of ICMP – additional message types, e.g. “Packet Too Big” – multicast group management functions
  • 63. Transition From IPv4 To IPv6 • Not all routers can be upgraded simultaneous – no “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 formats – Tunneling: IPv6 carried as payload in IPv4 datagram among IPv4 routers