Ethernet Standard EncapsulationIn order to transport IP packets across an Ethernet, two issues must be addressed. First, how should an IP packet be converted to an Ethernet packet? Second, how should an IP address be converted to an Ethernet address?
How to convert an IP packet to an Ethernet packet depends in large part on what type of Ethernet is used. Two methods are most common:
- DIX Version 2 Ethernet has a type field which indicates what type of data is contained in the packet. A standard type field (0800 hex) indicates that an IP packet begins at the end of the Ethernet header. Documented in RFC 894, this was (and may still be) the most common encapsulation mechanism for IP, but is being replaced by...
- IEEE 802 Ethernet defines an Ethernet-specific header (802.3), and a media-independent header (802.2). An 802.2 extension called SNAP permits a DIX type code to be specified. Encapsulating IP with this scheme produces a packet starting with an 802.3 header, then an 802.2 header, then a SNAP header, then the IP packet. See RFC 1042.
- IEEE 802.3 Ethernet is sometimes used directly, without the 802.2 or SNAP headers. This makes packets smaller, but since the 802.3 header does not contain a type field, this method can't be used with multiple protocols on the same Ethernet, or confusion would result. Since IP requires ARP (a second protocol) to operate over Ethernet, this method is never used. However, it is common for NetWare.
Using repeaters, bridges, and routers, it's fairly simple to to interoperate Ethernet implementations to the point of sharing DIX and IEEE 802 frames on the same cable. However, bizarre interactions are possible, particularly with regard to the slight MTU size variances. If a TCP host transmitting a stream of maximally sized RFC 894 (DIX) packets, they will require IP fragmentation before transport using RFC 1042 (IEEE 802) encapsulation.