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-