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.
Hornig, C., "A Standard for the Transmission of IP Datagrams over Ethernet Networks", STD 41, RFC 894, DOI 10.17487/RFC0894, April 1984, <https://www.rfc-editor.org/info/rfc894>.
@misc{rfc894,
series = {Request for Comments},
number = 894,
howpublished = {RFC 894},
publisher = {RFC Editor},
doi = {10.17487/RFC0894},
url = {https://www.rfc-editor.org/info/rfc894},
author = {C. Hornig},
title = {{A Standard for the Transmission of IP Datagrams over Ethernet Networks}},
pagetotal = 3,
year = 1984,
month = apr,
} RFC text
Contents
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.
ISO Plain Language
On this page
§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.
RFC 894 defines how Internet Protocol (IP) datagrams, the packets of IP, are placed inside Ethernet frames. It specifies the Ethernet type value for IP (0x0800), how a datagram fits in the frame's data area, and padding for short datagrams to reach the 46-byte minimum. It has stayed essentially unchanged since 1984.
- IP datagramIP header followed immediately by the IP data
- Ethernet frameType field 0x0800; the datagram is the data field
- Physical Ethernet10 Mb/s, 48-bit addresses
§2Frame Format
+---------------------------+ | Destination Address (6) | +---------------------------+ | Source Address (6) | +---------------------------+ | Type = 0x0800 (2) | +---------------------------+ | | | IP Datagram | | (46 - 1500 bytes) | | | +---------------------------+ | Frame Check Sequence (4) | +---------------------------+
An Ethernet frame carrying IP has a 6-byte destination address, a 6-byte source address and a 2-byte type field set to 0x0800. Next comes the IP datagram, 46 to 1500 bytes, padded if needed. The frame ends with a 4-byte CRC-32 check value for error detection.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
DST | Destination address | 6 bytes | FF:FF:FF:FF:FF:FF | 48-bit Ethernet address of the destination host, or all ones (FF-FF-FF-FF-FF-FF) for broadcast. |
SRC | Source address | 6 bytes | sender MAC | 48-bit Ethernet address of the sending host. |
TYPE | Type | 2 bytes | 0x0800 | Must 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:
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.An IP datagram sent over Ethernet may be at most 1500 bytes, so larger datagrams must be fragmented. The data field must be at least 46 bytes, so short datagrams are padded with zero bytes. The type value 0x0800 tells the receiver the frame holds IP, not ARP (0x0806) or RARP (0x8035).
§4Address Mapping
Translating between 32-bit IP addresses and 48-bit Ethernet addresses requires the Address Resolution Protocol (ARP):
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.
Ethernet uses 48-bit addresses and IP uses 32-bit addresses, so the sender uses ARP (RFC 826) to find the Ethernet address for a local destination's IP address. IP broadcasts go to the Ethernet broadcast address, FF:FF:FF:FF:FF:FF. The 1500-byte limit set here is still the default on virtually all Ethernet networks.
| Method | How it works | What the RFC says |
|---|---|---|
| Static table | Every host holds a table of all local hosts with both addresses | Possible |
| Dynamic discovery (ARP) THIS RFC | Hosts ask on the wire and answer for their own IP address | Strongly recommended |