Transcript pptx
CMPT 471
Networking II
Address Resolution
IPv4 ARP RARP
© Janice Regan, 2012
1
Transport Layer: Socket view
An application on one host wishes to send some
data to a particular application on another host
The applications use the transport layer interface
(sockets) to transfer the data.
Each application has a communication
endpoint, specified by a (port descriptor, IP
address) pair
The source and destination port descriptors
(addresses) are included in the transport layer
header that encapsulates the application’s data
in one or more segments
© Janice Regan, 2012
2
Transport Layer: data path
Conceptually we are sending the data from one
application to the other in the transport layer
In reality the data is actually passed down the
protocol stack of the source host, through the
network and up the protocol stack of the
destination host
Let’s review how this actually happens
© Janice Regan, 2012
3
Transport Layer: encapsulation
The data from the transport layer is encapsulated
A transport layer header is constructed
The header is prepended before the application data
The transport layer header includes port addresses on
source and destination hosts.
The port address indicates the process the data
belongs to on the source host and the destination host.
The transport layer header and the data form a
transport layer segment.
The transport layer segment is passed down to the
network layer to become the data in the IP datagram
© Janice Regan, 2012
4
Network Layer: encapsulation
The transport layer segment is encapsulated by adding a
network layer header
The segment and the header form a IP datagram
The IP header includes source and destination IP
addresses and other information necessary for the hop
by hop transport of the datagram through the network
Next, the IP stack will process the datagram using the
forwarding algorithm and the routing table to find the IP
address of the next hop destination.
the IP datagram and the next hop address to which the
datagram should be sent must be passed to the data link
layer
5
© Janice Regan, 2012
Addressing: Data Link Layer
We will need the Ethernet address of the present
router (source) and the next hop destination
(destination) to use in the MAC header
Both the present router and the next hop
destination will be attached to the same physical
network segment
We know the Ethernet address of the present
router (where the packet is now)
ARP is the protocol that allows us to determine
the physical address (for example Ethernet
address) of the next hop destination host given
the internet address of that host
© Janice Regan, 2012
6
Addressing: Data Link Layer
© Janice Regan, 2012
7
How a packet is delivered
In the physical layer the MAC layer frame
is encoded and transmitted
The internet interface (network card) on
each machine has a MAC address
For Ethernet the address is associated with a
unique Ethernet address (48 bit address) at
the time of manufacture
Other types of LAN (using different MAC
protocols) have their own types of addresses
that may have different lengths from the
Ethernet address
© Janice Regan, 2012
8
How a packet is delivered
Each network interface watches the
network and can intercept packets
addressed to its own address or the
broadcast address of the net (also
multicast packets)
The sender must know the MAC address of
the receiver before it can send anything.
How does it find the receivers MAC
address? The problem of finding the MAC
address is called Address Resolution
© Janice Regan, 2012
9
Using ARP
ARP (address resolution protocol)
facilitates mapping of IP addresses to
physical addresses for all hosts on the
LAN (exceptions discussed later)
Since packets traveling in the network will
be delivered using MAC addresses, the
sending host needs to determine the MAC
address corresponding to know IP before
it can send the packet
© Janice Regan, 2012
10
Using ARP
The host will keep a table called the ARP
cache that will contain mappings from MAC
to IP addresses
When the host wishes to send a packet it
will look in the ARP cache for an entry
corresponding to the desired destination
host’s IP address.
If there is an entry it will send to the indicated
MAC address
If no entry exists an new entry must be added to
the ARP cache
© Janice Regan, 2012
11
Sending a packet to an IP address
© Janice Regan, 2012
From
the TCP/IP Guide
12
Entries in the ARP cache
Entries in the ARP cache are static or dynamic.
Static entries are entered by the administrator and stay
in the cache until removed
Dynamic entries are added to the cache when the local
host tries to send a packet to a destination host on the
LAN
When a dynamic entry is added to the cache a timer is
set to indicate the lifetime of that entry
When the two hosts communicate, each host updates
(reinitializes) the timer corresponding to the entry for the other
host in its own ARP cache
When the timer expires the entry is removed
© Janice Regan, 2012
13
Why use Dynamic Entries
MAC addresses of hosts may change over time
Replacement of a network card (interface) will result
in a changed MAC address
Interface may no longer be reachable
Host may be turned off or disconnected
Interface may be disabled
Interface may fail
New hosts/interfaces may be added to the
network
Cache should not grow forever as new hosts
are added
© Janice Regan, 2012
14
Using Dynamic Entries
Must be able to add new entries and
remove old ones
Must have a mechanism for deciding
which entries to keep and which to
discard
Must keep the size of the cache
reasonable
© Janice Regan, 2012
15
Using Dynamic Entries
The detailed handling of when timers are
set and when entries expire and are
removed is implementation dependent
For Linux there are two significant timers one
indicates when an entry becomes stale, one
indicates how often stale entries are removed
If the host for the entry is in use by other parts
of the OS its entry will not be removed until it is
no longer in use
© Janice Regan, 2012
16
Adding new entries -ARP cache
If no entry in the ARP cache corresponds to the IP
address of the destination of the packet to be sent
the packet will be queued or dropped and an ARP
request will be sent
The ARP request is broadcast to the LAN
All hosts on the LAN receive the request
The host with IP address corresponding to the
destination IP address of the packet
Will respond with a ARP reply unicast to the source
Will add/update the entry for the source to its ARP
cache
© Janice Regan, 2012
17
Operation: ARP protocol
© Janice Regan, 2012
Comer
2000: fig 5.1
18
ARP/RARP Message Format
© Janice Regan, 2012
19
ARP/RARP Message Format
For an ARP request Target Hardware address
(HA) is left blank
When the request is received the receiver will
updates/add to its ARP cache
Construct and send an ARP reply package.
The sender HA and IP from the request become
the target HA and IP in the reply. The target IP
from the request becomes the sender IP for the
reply and the MAC address of the receiver
becomes the sender HA
© Janice Regan, 2012
20
Sample OPERATION field values
© Janice Regan, 2012
21
Sample HARDWARE field values
© Janice Regan, 2012
22
ARP Message Information
ARP can be used by many MAC layer
protocols not just Ethernet
Different protocols have different address
lengths (48 bits for Ethernet)
The protocol type field indicates the MAC
protocol being used.
The HLEN field indicates the length of the
hardware address for that protocol
© Janice Regan, 2012
23
Gratuitous ARP
Sometimes done as a host boots
An ARP request containing the IP of
the booting host will be sent
If a reply is received then someone
else is also using the IP of the
booting machine and the booting
machine should choose another IP
© Janice Regan, 2012
24
What is Proxy ARP
Proxy ARP allows multiple
networks/network segments to share a
single network address
ARP relies on broadcast requests. The
broadcast address for a network (LAN)
will have a limited scope.
In particular if a LAN includes segments
connected by routers each segment will
generally have its own broadcast address
© Janice Regan, 2012
25
What is Proxy ARP
Since broadcast packets are not
forwarded by routers ARP requests will
not travel between LAN segments
connected by routers
If the segments are parts of a larger
network (subnets of a larger network) we
may want ARP requests to travel through
the router
This is when Proxy ARP is used
© Janice Regan, 2012
26
Operation of Proxy ARP
Consider two segments connected by a router.
A MAC frame will travel along one segment to
the router, the host sending the frame does not
know the destination host is on a different
segment
An ARP request from a host on segment 1 will
reach the router (on segment 1 and 2) but not
any host on segment 2 because broadcast
packets are not forwarded
© Janice Regan, 2012
27
Operation of Proxy ARP
If the server supports proxy ARP it will
send an ARP reply indicating its own
hardware address for any IP address that
is on segment 2
Later packets address to the host on
segment 2 will be sent to the hardware
address of the router. The router will
forward them along segment 2 to the
destination.
© Janice Regan, 2012
28
Proxy Arp
© Janice Regan, 2012
From the TCP/IP Guide
29
RARP
Reverse address resolution protocol is designed to
allow a host to determine its own IP address
This is usually an issue at boot time, when a diskless
host may not know its own IP address
The host sends a RARP request to a RARP server
asking for its IP. The IP is supplied in the RARP reply
RARP has been largely superseded by other protocols
Other protocols (BOOTP, DHCP) return more
information than just the hardware address,
increasing efficiency
Cannot be used which use dynamic assignment of
hardware addresses
© Janice Regan, 2012
30
Operation of RARP
© Janice Regan, 2012
From
the TCP/IP Guide
31
Operation of RARP
© Janice Regan, 2012
From the TCP/IP Guide
32