IP - Local Area Network Addressing Issues
IEN - 212
Robert Gurwitz
Robert Hinden
Bolt Beranek and Newman Inc.
10 Moulton St.
Cambridge, Massachusetts 02238
September 1982
prepared for
Defense Advanced Research Projects Agency
Information Processing Techniques Office
1400 Wilson Boulevard
Arlington, Virginia 22209
IP-Local Area Net Addressing September 1982
IEN-212
Table of Contents
1 Introduction.......................................... 1
2 IP to Local Network Address Mapping................... 2
3 Broadcast Addressing.................................. 7
Appendix A - Revised Information Reply Message............ 9
References............................................... 11
-i-
IP-Local Area Net Addressing September 1982
IEN-212
1 Introduction
This note discusses several issues in Internet Protocol (IP)
addressing in local area networks, such as Ethernet [1]. Such
networks typically have addressing characteristics and features
that are different from earlier network implementations, such as
the ARPANET. Specifically, we describe approaches for handling
IP to local network address mapping and broadcast. The methods
described below are meant to integrate these features of local
networks into the DARPA internet within the spirit of IP, in a
general manner that is not tied to a particular network
implementation. The goal here is to minimize the need for
changes to IP, by adopting conventions and methods that use
existing mechanisms.
Of course, the approaches described here are not unique.
Other methods have been described which are similar in spirit to
that presented here. The purpose of this note is to stimulate
discussion of these issues, with the goal of arriving at a
consensus on how to resolve these and possibly other issues
relating to the use of local area networks in the internet.
-1-
IP-Local Area Net Addressing September 1982
IEN-212
2 IP to Local Network Address Mapping
Ethernet differs from other networks in the internet in that
it uses local addresses which are larger (48 bits) than IP
addresses (32 bits). With other networks having smaller local
address formats, the mapping from local network address to IP
address is simple: embed the entire local address in the
appropriate class of IP address. For example, in the ARPANET
which has 24-bit addresses, the mapping to a class A IP address,
which has 24-bits of local host address, is direct:
Host A on IMP B -> 10.A.B(hi).B(lo)
where 10 is the class A network number for the ARPANET, the host
portion of the local address is an 8-bit value, and the IMP
portion is a 16-bit value whose high order 8 bits are usually
zero. Note that mapping a 24-bit ARPANET address to a non-class
A address, would require some other approach, like truncation
(say, dropping the high order 8 bits of the IMP part) or table
lookup.
A similar, but more severe, problem occurs with 48-bit
Ethernet addresses. In this case, there may be no simple direct
mapping (like truncation) to the 32-bit IP address, since the
-2-
IP-Local Area Net Addressing September 1982
IEN-212
address of an individual Ethernet controller is a unique 48-bit
value assigned by the manufacturer that could conceivably
conflict with other addresses on the local network if a subset of
the 48-bits is used to form the local host part of the IP
address.
To solve this potential conflict, we choose a mapping that
depends on table lookup. Each host on the local network is
assigned an IP address with a unique local host part for that
network. The IP module in that host "knows" its own IP address
and uses it to send and receive IP datagrams. Other hosts on the
local network (including gateways), maintain tables which map the
IP addresses of the other hosts to their corresponding local
addresses.
This table may be "hardwired" into the IP modules or
initialized when the host comes up. A better implementation
would be to maintain the table as a cache, whose entries are
updated dynamically while the host is active. To do this, we can
make use of a feature supported by many local area networks,
"broadcast addressing". This feature allows messages to be
received by all hosts on the local network, by sending them to a
specially designated broadcast address (in Ethernet the broadcast
-3-
IP-Local Area Net Addressing September 1982
IEN-212
address is "all ones"). To map a given IP address to its
corresponding local address, the IP address is used to look up
the local address in the mapping table. If the mapping is found,
the local address is used in the local network header.
Otherwise, if no mapping is found in the table:
1) Send the datagram which was not in the mapping table to the
local broadcast address (see figure 1). All hosts on the
network including the correct one (the one specified by
destination IP address in the datagram) will receive the
datagram.
---------------------
| local src addr -A |
+--------------------
| broadcast address |
---------------------
| IP src addr - A |
---------------------
| IP dst addr - B |
---------------------
| Datagram needing |
| mapping |
---------------------
Figure 1 . Broadcast Datagram
2) The host on the network that recognizes its IP address in
the datagram and notices that the datagram was received on
the local network bradcast address sends an ICMP information
reply message to the host that broadcast the request, with
its local address filled in and its local network address in
the data portion of the message (see figure 2). ** It also
_______________
** Currently, there is no data area defined in the ICMP
Information Reply message. We propose to add one for the purpose
described in the document. Appendix A contains the format of
ICMP Information Reply message with the data area.
-4-
IP-Local Area Net Addressing September 1982
IEN-212
accepts this broadcast datagram since it contains its IP
address as the destination.
---------------------
| local src addr -B |
+--------------------
| local dst addr -A |
---------------------
| IP src addr - B |
---------------------
| IP dst addr - A |
---------------------
| ICMP information |
| reply |
---------------------
Figure 2 . Mapping Reply Format
3) When an ICMP information reply is received, an entry is made
in the mapping table, using the local address found in the
data portion of the message.
Finally, there must be some way of invalidating table entries, to
handle cases like a host on the local network changing addresses:
Whenever a host on the local net comes up, it broadcasts an
ICMP information reply with its source IP and local network
addresses (figure 3). Other hosts on the network can use
this information to update their tables.
This message contains the notion of an "IP broadcast address".
This is simply a means of mapping an IP address to the local
network broadcast address. It has the effect that any IP module
on a particular network should accept datagrams with the
broadcast address as the IP destination. The IP broadcast address
-5-
IP-Local Area Net Addressing September 1982
IEN-212
---------------------
| local src address |
+--------------------
| broadcast address |
---------------------
| IP src address |
---------------------
| IP broadcast addr |
---------------------
| ICMP information |
| reply |
---------------------
Figure 3 . Mapping Initialization Format
is discussed further below. Note that the use of this message
also lowers the chances of hosts not having the mapping in their
table, and reduces the number of broadcast mapping requests.
This approach has several advantages. 1) It is general
enough to work on all local networks that support broadcast
addressing. 2) It fits into IP without any major changes such as
increasing the size of the addresses. 3) Hosts which do not
implement this approach will still get all of their datagrams (at
the cost of high overhead for all others on the net). 4) It
allows hosts on the local network to assign their own local
portion of their IP addresses and the mapping between their IP
address and their local network address.
-6-
IP-Local Area Net Addressing September 1982
IEN-212
On the negative side, it can potentially cause adverse
network and host performance when many hosts on the net are
coming up, because of the use of broadcast packets. Also,
performance can be degraded by hosts which do not implement the
scheme fully, causing more broadcast packets to be sent. However,
we expect the use of broadcast mapping requests to be a low
frequency occurance.
3 Broadcast Addressing
The scheme described above introduced the concept of IP
broadcast address. We believe this is a generally useful notion,
since it allows IP hosts to take advantage of an additional
addressing capability supported by some local area networks. We
propose to define the IP broadcast address to be the IP address
in each class with all its local host part bits on. (E.G.,
A.255.255.255 for class A, A.B.255.255 for class B, and A.B.C.255
for class C.) In each case, the address would map to the local
network broadcast address if broadcast addressing was supported.
On messages coming from other networks, the mapping would be done
in the gateway. If a network did not support broadcast
addressing, an ICMP destination unreachable message would be
-7-
IP-Local Area Net Addressing September 1982
IEN-212
returned. The only "cost" of this mechanism is that it reserves
one IP address from each class.
-8-
IP-Local Area Net Addressing September 1982
IEN-212
Appendix A - Revised Information Reply Message
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data .....
+-+-+-+-+-+-
IP Fields:
Addresses
The address of the source in a information request message
will be the destination of the information reply message.
To form a information reply message, the source and
destination addresses are simply reversed, the type code
changed to 16, and the checksum recomputed.
ICMP Fields:
Type
15 for information request message;
16 for information reply message.
Code
0 for normal information request/reply
1 for information reply with local network address in data
portion.
Checksum
The checksum is the 16-bit ones's complement of the one's
complement sum of the ICMP message starting with the ICMP
Type. For computing the checksum, the checksum field should
be zero. This checksum may be replaced in the future.
Identifier
-9-
IP-Local Area Net Addressing September 1982
IEN-212
If code = 0, an identifier to aid in matching request and
replies, may be zero.
Sequence Number
If code = 0, a sequence number to aid in matching request
and replies, may be zero.
Description
Code 0:
Code 0 may be received from a gateway or a host.
This message may be sent with the source network in the
IP header source and destination address fields zero
(which means "this" network). The replying IP module
should send the reply with the addresses fully
specified. This message is a way for a host to find
out the number of the network it is on.
The identifier and sequence number may be used by the
echo sender to aid in matching the replies with the
requests. For example, the identifier might be used
like a port in TCP or UDP to identify a session, and
the sequence number might be incremented on each
request sent. The destination returns these same
values in the reply.
Code 1:
This message (Information Reply only) is used by a
local area network host to inform another host what its
local network address in relation to its IP address.
The hosts local network address is sent in the data
portion of the message.
-10-
IP-Local Area Net Addressing September 1982
IEN-212
References
[1] "The Ethernet, A Local Area Network: Data Link Layer and
Physical Layer Specifications", Version 1.0, Digital
Equipment Corp., Intel, Xerox, Sept. 30, 1980.
-11-