RFC 894 INTERNET STANDARD LINK LAYER · ENCAPSULATION

IP over Ethernet: A Standard for the Transmission of IP Datagrams over Ethernet Networks

The standard that married IP to Ethernet, defining how datagrams become frames.

On rfc-editor.org ↗
PUBLISHED
April 1984
AUTHORS
Charles Hornig
ORG
Symbolics Cambridge Research Center
STREAM
Legacy
ETHERTYPE
0x0800
MAX IP DATAGRAM
1500 octets
MIN DATA FIELD
46 octets, zero padded
BROADCAST ADDRESS
FF-FF-FF-FF-FF-FF
APPLIES TO
10 Mb/s Ethernet, 48-bit addresses
DOI
10.17487/RFC0894
ERRATA
Reported errata

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                     Charles Hornig
Request for Comments: 894            Symbolics Cambridge Research Center
                                                              April 1984

 A Standard for the Transmission of IP Datagrams over Ethernet Networks


Status of this Memo

   This RFC specifies a standard method of encapsulating Internet
   Protocol (IP) [1] datagrams on an Ethernet [2].  This RFC specifies a
   standard protocol for the ARPA-Internet community.

Introduction

   This memo applies to the Ethernet (10-megabit/second, 48-bit
   addresses).  The procedure for transmission of IP datagrams on the
   Experimental Ethernet (3-megabit/second, 8-bit addresses) is
   described in [3].

Frame Format

   IP datagrams are transmitted in standard Ethernet frames.  The type
   field of the Ethernet frame must contain the value hexadecimal 0800.
   The data field contains the IP header followed immediately by the IP
   data.

   The minimum length of the data field of a packet sent over an
   Ethernet is 46 octets.  If necessary, the data field should be padded
   (with octets of zero) to meet the Ethernet minimum frame size.  This
   padding is not part of the IP packet and is not included in the total
   length field of the IP header.

   The minimum length of the data field of a packet sent over an
   Ethernet is 1500 octets, thus the maximum length of an IP datagram
   sent over an Ethernet is 1500 octets.  Implementations are encouraged
   to support full-length packets.  Gateway implementations MUST be
   prepared to accept full-length packets and fragment them if
   necessary.  If a system cannot receive full-length packets, it should
   take steps to discourage others from sending them, such as using the
   TCP Maximum Segment Size option [4].

   Note:  Datagrams on the Ethernet may be longer than the general
   Internet default maximum packet size of 576 octets.  Hosts connected
   to an Ethernet should keep this in mind when sending datagrams to
   hosts not on the same Ethernet.  It may be appropriate to send
   smaller datagrams to avoid unnecessary fragmentation at intermediate
   gateways.  Please see [4] for further information on this point.

Address Mappings

   The mapping of 32-bit Internet addresses to 48-bit Ethernet addresses
   can be done several ways.  A static table could be used, or a dynamic
   discovery procedure could be used.

   Static Table

      Each host could be provided with a table of all other hosts on the
      local network with both their Ethernet and Internet addresses.

   Dynamic Discovery

      Mappings between 32-bit Internet addresses and 48-bit Ethernet
      addresses could be accomplished through the Address Resolution
      Protocol (ARP) [5].  Internet addresses are assigned arbitrarily
      on some Internet network.  Each host's implementation must know
      its own Internet address and respond to Ethernet Address
      Resolution packets appropriately.  It should also use ARP to
      translate Internet addresses to Ethernet addresses when needed.

   Broadcast Address

      The broadcast Internet address (the address on that network with a
      host part of all binary ones) should be mapped to the broadcast
      Ethernet address (of all binary ones, FF-FF-FF-FF-FF-FF hex).

   The use of the ARP dynamic discovery procedure is strongly
   recommended.

Trailer Formats

   Some versions of Unix 4.2bsd use a different encapsulation method in
   order to get better network performance with the VAX virtual memory
   architecture.  Consenting systems on the same Ethernet may use this
   format between themselves.

   No host is required to implement it, and no datagrams in this format
   should be sent to any host unless the sender has positive knowledge
   that the recipient will be able to interpret them.  Details of the
   trailer encapsulation may be found in [6].

   (Note:  At the present time Unix 4.2bsd will either always use
   trailers or never use them (per interface), depending on a boot-time
   option.  This is expected to be changed in the future.  Unix 4.2bsd
   also uses a non-standard Internet broadcast address with a host part
   of all zeroes, this may also be changed in the future.)

Byte Order

   As described in Appendix B of the Internet Protocol
   specification [1], the IP datagram is transmitted over the Ethernet
   as a series of 8-bit bytes.

References

   [1]  Postel, J., "Internet Protocol", RFC-791, USC/Information
   Sciences Institute, September 1981.

   [2]  "The Ethernet - A Local Area Network", Version 1.0, Digital
   Equipment Corporation, Intel Corporation, Xerox Corporation,
   September 1980.

   [3]  Postel, J., "A Standard for the Transmission of IP Datagrams
   over Experimental Ethernet Networks", RFC-895, USC/Information
   Sciences Institute, April 1984.

   [4]  Postel, J., "The TCP Maximum Segment Size Option and Related
   Topics", RFC-879, USC/Information Sciences Institute, November 1983.

   [5]  Plummer, D., "An Ethernet Address Resolution Protocol", RFC-826,
   Symbolics Cambridge Research Center, November 1982.

   [6]  Leffler, S., and M. Karels, "Trailer Encapsulations", RFC-893,
   University of California at Berkeley, April 1984.

AI ELI5

On this page
PROBLEMIP datagrams need one agreed way to travel inside Ethernet frames so that hosts from different vendors can talk.
MECHANISMThe datagram goes in the frame's data field with the Ethernet type field set to hexadecimal 0800, padded with zero octets to at least 46 octets, and ARP maps IP addresses to Ethernet addresses.
WHY IT ENDURESIPv4 still rides on Ethernet this way, and the 1500-octet limit is still the default Ethernet MTU.

§1Introduction

RFC 894 defines how Internet Protocol (IP) datagrams are encapsulated for transmission over Ethernet networks. This deceptively simple standard is one of the most consequential in networking history — it is the reason IP and Ethernet work together.

Every time an IP packet leaves a host on an Ethernet LAN, it is framed according to this specification. The standard has remained essentially unchanged since 1984, a testament to its elegant simplicity.

The specification defines three key things: the Ethernet type field value for IP (0x0800), the mapping of IP datagrams into Ethernet frame payloads, and the handling of the 46-byte minimum frame size through padding.

Think of the Internet as a letter and the Ethernet as the postal van. This page says exactly how to put the letter into the van's envelope so any van driver understands it. Because everyone follows the same recipe, a letter written on one computer can ride the van of another company.

Where this standard sits
  1. IP datagramIP header followed immediately by the IP data
  2. Ethernet frameType field 0x0800; the datagram is the data field
  3. Physical Ethernet10 Mb/s, 48-bit addresses

§2Frame Format

IP Datagram in an Ethernet Frame
+---------------------------+
| Destination Address (6)   |
+---------------------------+
| Source Address (6)        |
+---------------------------+
| Type = 0x0800 (2)         |
+---------------------------+
|                           |
|      IP Datagram          |
|    (46 - 1500 bytes)      |
|                           |
+---------------------------+
| Frame Check Sequence (4)  |
+---------------------------+
Destination Address48-bit Ethernet address of the destination host or broadcast (FF:FF:FF:FF:FF:FF)6 bytes
Source Address48-bit Ethernet address of the sending host6 bytes
Type FieldSet to 0x0800 to identify the payload as an IP datagram2 bytes
Data (IP Datagram)The IP datagram, padded to 46 bytes if necessary46–1500 bytes
Frame Check SequenceCRC-32 for error detection4 bytes

The envelope has an address for who gets it, an address for who sent it, and a small label saying "this contains an Internet message". Inside goes the message itself. If the message is tiny, you add blank paper so the envelope is never too thin.

Ethernet header in front of an IP datagram
Ethernet header (14 octets), followed by the IP datagram
FieldNameSizeValueDescription
DSTDestination address6 bytesFF:FF:FF:FF:FF:FF48-bit Ethernet address of the destination host, or all ones (FF-FF-FF-FF-FF-FF) for broadcast.
SRCSource address6 bytessender MAC48-bit Ethernet address of the sending host.
TYPEType2 bytes0x0800Must contain hexadecimal 0800 for an IP datagram. The data field that follows holds the IP header and IP data, 46 to 1500 octets.

§3Encapsulation Rules

The rules for encapsulating IP datagrams in Ethernet frames are straightforward but important:

Maximum Transmission Unit
The maximum length of an IP datagram sent over Ethernet is 1500 bytes. This defines the Ethernet MTU and is one of the most fundamental constants in networking. IP datagrams larger than this must be fragmented.
Minimum Frame Size
Ethernet requires a minimum frame size of 64 bytes (excluding preamble). Since the header is 14 bytes and the FCS is 4 bytes, the data field must be at least 46 bytes. Short IP datagrams are padded with octets of zero.
Type Field Identification
The EtherType value 0x0800 identifies the frame as carrying an IP datagram. This distinguishes IP traffic from ARP (0x0806), RARP (0x8035), and other protocols on the same Ethernet.
Byte Order
As described in Appendix B of the IP specification (RFC 791), the IP datagram is transmitted over the Ethernet as a series of 8-bit bytes.

There are a few rules about size and labels. The message cannot be longer than 1500 pieces, a short one gets padded with zeros, and the label "0800" tells the receiver it is an Internet message, not some other kind of mail.

§4Address Mapping

Translating between 32-bit IP addresses and 48-bit Ethernet addresses requires the Address Resolution Protocol (ARP):

ARP for Unicast
When sending to a specific host on the local network, the sender uses ARP (RFC 826) to resolve the destination IP address to its Ethernet MAC address.
Broadcast Mapping
IP broadcast datagrams (destination 255.255.255.255 or subnet broadcast) are sent to the Ethernet broadcast address FF:FF:FF:FF:FF:FF.
IP EtherType0x0800
ARP EtherType0x0806
Ethernet MTU1500 bytes
Min Data Field46 bytes
Broadcast AddrFF:FF:FF:FF:FF:FF

The 1500-byte MTU defined by this standard has persisted for over 40 years and remains the default MTU on virtually all Ethernet networks, making it one of the most enduring constants in Internet engineering.

Internet addresses are like street names and Ethernet addresses are like the number on each house door. To deliver, a computer needs to know which door goes with which street name. It can look it up in a list or just shout and ask, and shouting (ARP) is the favored way.

Ways to map IP addresses to Ethernet addresses
MethodHow it worksWhat the RFC says
Static tableEvery host holds a table of all local hosts with both addressesPossible
Dynamic discovery (ARP) THIS RFCHosts ask on the wire and answer for their own IP addressStrongly recommended

§5References