RFC 1042

Standard for the transmission of IP datagrams over IEEE 802 networks

๐Ÿ“… published February 1988, from ietf

Network Working Group ยท RFC 1042 โœจ Part 1 of 3 ๐ŸŽ€

A Standard for the Transmission of IP Datagrams over IEEE 802 Networks ๐Ÿ’–

Authors: J. Postel and J. Reynolds, ISI ๐Ÿ‘‘ Date: February 1988 ๐Ÿ“… Status: a protocol standard for the Internet community ๐Ÿฆ‹ Obsoletes: RFC-948 ๐Ÿซถ


Status of this Memo ๐Ÿ“

okay so this RFC lays out a standard way to wrap up Internet Protocol (IP) [1] datagrams and Address Resolution Protocol (ARP) [2] requests and replies so they can ride on IEEE 802 networks ๐Ÿš€ it's a protocol standard for the whole Internet community, and anyone is allowed to pass it around freely (distribution is unlimited) ๐Ÿ’…

Acknowledgment ๐ŸŒธ

this memo would literally not exist without the huge help from Drew Perkins of Carnegie Mellon University, Jacob Rekhter of the T.J. Watson Research Center at IBM Corporation, and Joseph Cimmino of the University of Maryland ๐Ÿ™Œ thank you, queens ๐Ÿ’œ

Introduction ๐Ÿงš

the whole point of this spec is to make sure that different implementations can talk to each other and work together when they send IP datagrams and ARP requests and replies ๐ŸŽ€ to make that happen, it might be necessary in a few cases to limit how IP and ARP use the features of a particular IEEE 802 standard ๐Ÿซถ

so the IEEE 802 specs are basically a family of standards for Local Area Networks (LANs), and they cover the Physical and Data Link Layers from the ISO Open System Interconnection Reference Model (ISO/OSI) ๐ŸŒˆ there are three Physical Layer standards (802.3, 802.4, and 802.5) [3,4,5] and one Data Link Layer standard (802.2) [6]. the Physical ones handle the ISO/OSI Physical Layer plus the Media Access Control Sublayer of the Data Link Layer, while 802.2 handles the Logical Link Control Sublayer ๐Ÿง 

this memo covers IP and ARP on those three types of networks ๐Ÿฆ‹ right now, it's not required that IP and ARP behave the same way across all three types, only that they're consistent within each type. that could change later as new IEEE 802 standards come out and the existing ones get revised, which would allow interoperability at the Data Link Layer ๐Ÿ”ฎ

the goal here is to pin down enough detail about IP and ARP on each network type so that:

  1. all equipment using IP or ARP on 802.3 networks will interoperate,
  2. all equipment using IP or ARP on 802.4 networks will interoperate,
  3. all equipment using IP or ARP on 802.5 networks will interoperate.

ofc the big goal of IP is for computers on different networks to talk to each other when those networks are linked up through an IP gateway [8] ๐ŸŒ using IEEE 802.1 compatible Transparent Bridges to get interoperability across different networks isn't fully described yet, since that standard is still being finished โณ

Description ๐Ÿ’ซ

IEEE 802 networks can be used as IP networks of any class (A, B, or C) โœจ these systems use two Link Service Access Point (LSAP) fields in the LLC header in a similar way to how the ARPANET uses its "link" field ๐Ÿงฉ there's also an extension of the LLC header called the Sub-Network Access Protocol (SNAP) ๐Ÿ“

IP datagrams get sent on IEEE 802 networks wrapped inside the 802.2 LLC and SNAP data link layers, and then the 802.3, 802.4, or 802.5 physical network layers ๐Ÿ“ฆ the SNAP uses an Organization Code that says the next 16 bits hold the EtherType code (as listed in Assigned Numbers [7]) ๐Ÿ”ฅ

normally, everything runs on 802.2 type 1 communication ๐Ÿ’… systems on the same IEEE 802 network can use 802.2 type 2 communication, but only after they've checked that both nodes support it, and that check is done with the 802.2 XID mechanism ๐Ÿ™ˆ still, type 1 is the RECOMMENDED method right now and every implementation MUST support it ๐Ÿ˜ญ the rest of this spec assumes type 1 communication, so no cap, that's the main character here ๐Ÿ‘‘

IEEE 802 networks may have 16-bit or 48-bit physical addresses ๐ŸŒธ this spec lets you use either size of address within a given IEEE 802 network ๐ŸŽ€

fun fact (sort of): the 802.3 standard specifies a transmission rate from 1 to 20 megabit/second, 802.4 specifies 1, 5, and 10 megabit/second, and 802.5 specifies 1 and 4 megabit/second ๐ŸŒˆ the typical rates people actually use are 10 megabit/second for 802.3, 10 megabit/second for 802.4, and 4 megabit/second for 802.5 โญ but this spec for sending IP Datagrams doesn't depend on the transmission rate at all ๐Ÿ’–

Header Format ๐ŸŽ€

                                                                  Header

   ...--------+--------+--------+
              MAC Header        |                        802.{3/4/5} MAC
   ...--------+--------+--------+

   +--------+--------+--------+
   | DSAP=K1| SSAP=K1| Control|                                802.2 LLC
   +--------+--------+--------+

   +--------+--------+---------+--------+--------+
   |Protocol Id or Org Code =K2|    EtherType    |            802.2 SNAP
   +--------+--------+---------+--------+--------+

the LLC Header plus the SNAP header adds up to 8 octets total ๐Ÿฐ that means the 802.2 protocol overhead lands on a nice, tidy boundary โœจ

the K1 value is 170 (decimal) ๐Ÿงš

the K2 value is 0 (zero) ๐Ÿซถ

the control value is 3 (Unnumbered Information) ๐Ÿ’…

Address Mappings ๐Ÿ—บ๏ธ

turning 32-bit Internet addresses into 16-bit or 48-bit IEEE 802 addresses MUST be done through the dynamic discovery procedure of the Address Resolution Protocol (ARP) [2] ๐Ÿ”

Internet addresses get assigned arbitrarily on Internet networks ๐ŸŽฒ each host's implementation MUST know its own Internet address and MUST respond to Address Resolution requests appropriately ๐Ÿ™‹โ€โ™€๏ธ it MUST also use ARP to translate Internet addresses into IEEE 802 addresses whenever it needs to ๐Ÿ’œ

The ARP Details ๐Ÿ”Ž

the ARP protocol has several fields that set how it gets used in any specific context [2] ๐Ÿงฉ those fields are:

   hrd     16 - bits       The Hardware Type Code
   pro     16 - bits       The Protocol Type Code
   hln      8 - bits       Octets in each hardware address
   pln      8 - bits       Octets in each protocol address
   op      16 - bits       Operation Code

the hardware type code for IEEE 802 networks (of all kinds) is 6 (see [7] page 16) ๐ŸŒธ

the protocol type code for IP is 2048 (see [7] page 14) ๐ŸŒˆ

the hardware address length is 2 for 16-bit IEEE 802 addresses, or 6 for 48-bit IEEE 802 addresses ๐Ÿ”ข

the protocol address length (for IP) is 4 ๐ŸŒŸ

the operation code is 1 for request and 2 for reply ๐ŸŽ€

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 IEEE 802 address (of all binary ones) (see [8] page 14) ๐Ÿฆ‹

Trailer Formats ๐Ÿš

some versions of Unix 4.x bsd use a different encapsulation method to get better network performance with the VAX virtual memory architecture ๐Ÿ–ฅ๏ธ systems on the same IEEE 802 network MAY use this format between themselves ๐Ÿซถ details about the trailer encapsulation method can be found in [9] ๐Ÿ“– however, ALL hosts MUST be able to communicate using the standard (non-trailer) method ๐Ÿ˜ญ

bestie, this one's a big deal: even if two hosts are trailer-ready, every host still has to be able to fall back to the standard non-trailer method. no exceptions ๐Ÿšจ

Byte Order ๐Ÿ”ข

as described in Appendix B of the Internet Protocol specification [1], an IP datagram is sent over IEEE 802 networks as a series of 8-bit bytes ๐Ÿงƒ this byte transmission order has been called "big-endian" [11] ๐ŸŒˆ

Maximum Transmission Unit ๐Ÿ“

the Maximum Transmission Unit (MTU) is different across the different types of IEEE 802 networks ๐Ÿ“ the comments on the MTU for each type come up below ๐Ÿ‘‡ but on any particular network, all hosts MUST use the same MTU ๐Ÿ’… in this doc, "maximum packet size" and "maximum transmission unit" mean the same thing ๐Ÿ’–

Frame Format and MAC Level Issues ๐Ÿงฑ

For all hardware types ๐ŸŒ

IP datagrams and ARP requests and replies get sent in standard 802.2 LLC Type 1 Unnumbered Information format, with control code 3 ๐ŸŽ€ the DSAP and SSAP fields of the 802.2 header are set to 170, which is the assigned global SAP value for SNAP [6] ๐Ÿงฉ the 24-bit Organization Code in the SNAP is zero, and the remaining 16 bits hold the EtherType from Assigned Numbers [7] (IP = 2048, ARP = 2054) ๐ŸŒŸ

IEEE 802 packets may have a minimum size restriction ๐Ÿค when that's necessary, the data field SHOULD be padded (with octets of zero) to meet the IEEE 802 minimum frame size requirements ๐Ÿซง this padding is not part of the IP datagram and it isn't counted in the total length field of the IP header ๐Ÿ™ˆ

for compatibility (and common sense, lol) the minimum packet size used with IP datagrams is 28 octets, which is 20 (minimum IP header) + 8 (LLC+SNAP header) = 28 octets (not including the MAC header) ๐Ÿ“

the minimum packet size used with ARP is 24 octets, which is 20 (ARP with 2 octet hardware addresses and 4 octet protocol addresses) + 8 (LLC+SNAP header) = 24 octets (not including the MAC header) ๐Ÿฆ‹

in typical situations, the packet size used with ARP is 32 octets, which is 28 (ARP with 6 octet hardware addresses and 4 octet protocol addresses) + 8 (LLC+SNAP header) = 32 octets (not including the MAC header) ๐Ÿ’œ

IEEE 802 packets may have a maximum size restriction too ๐ŸงŠ implementations are encouraged to support full-length packets ๐ŸŒธ

for compatibility purposes, the maximum packet size used with IP datagrams or ARP requests and replies MUST be consistent on a particular network ๐Ÿ’…

gateway implementations MUST be prepared to accept full-length packets and fragment them when necessary ๐Ÿšช

host implementations SHOULD be prepared to accept full-length packets ๐Ÿ™Œ however, hosts MUST NOT send datagrams longer than 576 octets unless they have explicit knowledge that the destination is prepared to accept them ๐Ÿ›‘ a host MAY tell others its size preference in TCP based applications via the TCP Maximum Segment Size option [10] ๐ŸŽ€

datagrams on IEEE 802 networks MAY be longer than the general Internet default maximum packet size of 576 octets ๐ŸŒˆ hosts connected to an IEEE 802 network SHOULD keep that in mind when sending datagrams to hosts that aren't on the same IEEE 802 network ๐Ÿง  it MAY be appropriate to send smaller datagrams to avoid unnecessary fragmentation at intermediate gateways โœ‚๏ธ check [10] for more info ๐Ÿ“š

IEEE 802.2 Details ๐Ÿง 

while it's not necessary for supporting IP and ARP, all implementations are REQUIRED to support IEEE 802.2 standard Class I service ๐Ÿ’ช that means supporting Unnumbered Information (UI) Commands, eXchange IDentification (XID) Commands and Responses, and TEST link (TEST) Commands and Responses ๐ŸŽ€

when either an XID or a TEST command comes in, a response MUST be sent back, with the Destination and Source addresses and the DSAP and SSAP swapped ๐Ÿ”

when responding to an XID or a TEST command, the sense of the poll/final bit MUST be preserved ๐Ÿซถ in other words, a command received with the poll/final bit reset MUST get a response with the poll/final bit reset, and vice versa โœจ

the XID command or response has an LLC control field value of 175 (decimal) if poll is off, or 191 (decimal) if poll is on ๐Ÿ”ฅ (see Appendix on Numbers.) ๐Ÿ“–

The TEST command or response has an LLC control field value of 227 (decimal) if poll is off, or 243 (decimal) if poll is on ๐ŸŽ€ (see Appendix on Numbers, bestie).

A command frame is identified by the high order bit of the SSAP address being reset. Response frames have the high order bit of the SSAP address set to one ๐Ÿ’….

XID response frames should include an 802.2 XID Information field of 129.1.0, which indicates Class I (connectionless) service (type 1) โœจ.

TEST response frames should echo the information field received in the corresponding TEST command frame ๐Ÿซถ.

For IEEE 802.3

A particular implementation of an IEEE 802.3 Physical Layer is denoted using a three field notation ๐Ÿงš. The three fields are data rate in megabit/second, medium type, and maximum segment length in hundreds of meters. One combination of 802.3 parameters is 10BASE5, which specifies a 10 megabit/second transmission rate, baseband medium, and 500 meter segments. This corresponds to the specifications of the familiar "Ethernet" network ๐ŸŒˆ, the iconic one.

The MAC header contains 6 (2) octets of source address, 6 (2) octets of destination address, and 2 octets of length. The MAC trailer contains 4 octets of Frame Check Sequence (FCS), for a total of 18 (10) octets ๐Ÿ’–.

IEEE 802.3 networks have a minimum packet size that depends on the transmission rate. For type 10BASE5 802.3 networks, the minimum packet size is 64 octets ๐Ÿ“.

IEEE 802.3 networks have a maximum packet size which depends on the transmission rate. For type 10BASE5 802.3 networks, the maximum packet size is 1518 octets, including all octets between the destination address and the FCS inclusive ๐Ÿ‘‘.

This allows 1518 - 18 (MAC header+trailer) - 8 (LLC+SNAP header) = 1492 for the IP datagram (including the IP header). Note that 1492 is not equal to 1500, which is the MTU for Ethernet networks. Not me noticing the difference ๐Ÿ’€.

For IEEE 802.4

The MAC header contains 1 octet of frame control, 6 (2) octets of source address, and 6 (2) octets of destination address. The MAC trailer contains 4 octets of Frame Check Sequence (FCS), for a total of 17 (9) octets ๐Ÿฆ‹.

IEEE 802.4 networks have no minimum packet size ๐ŸŒธ.

IEEE 802.4 networks have a maximum packet size of 8191 octets, including all octets between the frame control and the FCS inclusive ๐Ÿ”ฅ.

This allows 8191 - 17 (MAC header+trailer) - 8 (LLC+SNAP header) = 8166 for the IP datagram (including the IP header) โœจ.

For IEEE 802.5

The current standard for token rings, IEEE 802.5-1985, specifies the operation of single ring networks. However, most implementations of 802.5 have added extensions for multi-ring networks using source-routing of packets at the MAC layer. There is now a Draft Addendum to IEEE 802.5, "Enhancement for Multi-Ring Networks," which attempts to standardize these extensions. Unfortunately, the most recent draft (November 10, 1987) is still rapidly evolving ๐Ÿ˜ญ. More importantly, it differs significantly from the existing implementations. Therefore, the existing implementations of 802.5 [13] are described, but no attempt is made to specify any future standard ๐Ÿซ .

The MAC header contains 1 octet of access control, 1 octet of frame control, 6 (2) octets of source address, 6 (2) octets of destination address, and (for multi-ring networks) 0 to 18 octets of Routing Information Field (RIF). The MAC trailer contains 4 octets of FCS, for a total of 18 (10) to 36 (28) octets. There is one additional octet of frame status after the FCS ๐Ÿ’œ.

Multi-Ring Extension Details

The presence of a Routing Information Field is indicated by the Most Significant Bit (MSB) of the source address, called the Routing Information Indicator (RII). If the RII equals zero, a RIF is not present. If the RII equals 1, the RIF is present. Although the RII is indicated in the source address, it is not part of a station's MAC layer address. In particular, the MSB of a destination address is the individual/group address indicator, and if set, it will cause such frames to be interpreted as multicasts. Implementations should be careful to reset the RII to zero before passing source addresses to other protocol layers, which may be confused by their presence ๐Ÿ™ˆ.

The RIF consists of a two-octet Routing Control (RC) field, followed by 0 to 8 two-octet Route-Designator (RD) fields. The RC for all-routes broadcast frames is formatted as follows ๐Ÿงšโ€โ™€๏ธ:

                 0                   1
                 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                |  B  |   LTH   |D|  LF |   r   |
                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Note that each tick mark represents one bit position ๐Ÿ“.

B - Broadcast Indicators: 3 bits

The Broadcast Indicators are used to indicate the routing desired for a particular frame. A frame may be routed through a single specified route, through every distinct non-repeating route in a multi-ring network, or through a single route determined by a spanning tree algorithm, such that the frame appears on every ring exactly once. The values which may be used at this time are (in binary):

   000 - Non-broadcast (specific route)
   100 - All-routes broadcast (global broadcast)
   110 - Single-route broadcast (limited broadcast)

All other values are reserved for future use ๐ŸŒท.

LTH - Length: 5 bits

The Length bits are used to indicate the length of the RI field, including the RC and RD fields. Only even values between 2 and 30 inclusive are allowed ๐Ÿ“.

D - Direction Bit: 1 bit

The D bit specifies the order of the RD fields. If D equals 1, the routing-designator fields are specified in reverse order ๐Ÿ”„.

LF - Largest Frame: 3 bits

The LF bits specify the maximum MTU supported by all bridges along a specific route. All multi-ring broadcast frames should be transmitted with a value at least as large as the supported MTU. The values used are:

        LF (binary)   MAC MTU      IP MTU

            000          552         508
            001         1064        1020
            010         2088        2044
            011         4136        4092
            100         8232        8188

All other values are reserved for future use ๐ŸŽ€.

The receiver should compare the LF received with the MTU. If the LF is greater than or equal to the MTU, then no action is taken. However, if the LF is less than the MTU, the frame is rejected ๐Ÿšซ.

There are actually three possible actions if LF < MTU. The first is the one required for this specification (reject the frame). The second is to reduce the MTU for all hosts to equal the LF. And the third is to keep a separate MTU per communicating host, based on the received LFs. Bestie, pick your fighter ๐ŸฅŠ.

r - reserved: 4 bits

These bits are reserved for future use and must be set to 0 by the transmitter and ignored by the receiver ๐Ÿซง.

It is not necessary for an implementation to interpret routing-designators. Their format is left unspecified. Routing-designators should be transmitted exactly as received ๐Ÿฆ‹.

IEEE 802.5 networks have no minimum packet size ๐ŸŒธ.

IEEE 802.5 networks have a maximum packet size based on the maximum time a node may hold the token. This time depends on many factors, including the data signalling rate and the number of nodes on the ring. The determination of maximum packet size becomes even more complex when multi-ring networks with bridges are considered ๐Ÿ˜ตโ€๐Ÿ’ซ.

Given a token-holding time of 9 milliseconds and a 4 megabit/second ring, the maximum packet size possible is 4508 octets, including all octets between the access control and the FCS inclusive โœจ.

This allows 4508 - 36 (MAC header+trailer with 18 octet RIF) - 8 (LLC+SNAP header) = 4464 for the IP datagram (including the IP header).

However, some current implementations are known to limit packets to 2046 octets (allowing 2002 octets for IP). It is recommended that all implementations support IP packets of at least 2002 octets ๐Ÿ’….

By convention, source routing bridges used in multi-ring 802.5 networks will not support packets larger than 8232 octets. With a MAC header+trailer of 36 octets and the LLC+SNAP header of 8 octets, the IP datagram (including IP header) may not exceed 8188 octets ๐Ÿ‘‘.

A source routing bridge linking two rings may be configured to limit the size of packets forwarded to 552 octets. With a MAC header+trailer of 36 octets and the LLC+SNAP of 8 octets, the IP datagram (including the IP header) may be limited to 508 octets. This is less than the default IP MTU of 576 octets, and may cause significant performance problems due to excessive datagram fragmentation ๐Ÿ˜ฌ. An implementation is not required to support an MTU of less than 576 octets, although it is suggested that the MTU be a user-configurable parameter to allow for it ๐Ÿซถ.

IEEE 802.5 networks support three different types of broadcasts. All-Stations broadcasts are sent with no RIF, or with the Broadcast Indicators set to 0 and no Routing Designators, and are copied once by all stations on the local ring. All-Routes broadcasts are sent with the corresponding Broadcast Indicators and result in multiple copies, equal to the number of distinct non-repeating routes a packet may follow to a particular ring. Single-Route broadcasts result in exactly one copy of a frame being received by all stations on the multi-ring network ๐Ÿ“ก.

The dynamic address discovery procedure is to broadcast an ARP request. To limit the number of all-rings broadcasts to a minimum, it is desirable (though not required) that an ARP request first be sent as an all-stations broadcast, without a Routing Information Field (RIF). If the all-stations (local ring) broadcast is not supported, or if the all-stations broadcast is unsuccessful after some reasonable time has elapsed, then send the ARP request as an all-routes or single-route broadcast with an empty RIF (no routing designators). An all-routes broadcast is preferable since it yields an amount of fault tolerance. In an environment with multiple redundant bridges, all-routes broadcast allows operation in spite of spanning-tree bridge failures. However, single-route broadcasts may be used if IP and ARP must use the same broadcast method ๐ŸŒˆ.

When an ARP request or reply shows up, every implementation is REQUIRED to understand frames with no RIF (local ring) and frames with an empty RIF (also from the local ring) ๐Ÿซถ. If your implementation does multi-ring source routing, a non-empty RIF gets stored for future transmissions to the host that sent the ARP request or reply โœจ. If source routing isn't supported, all packets with non-empty RIFs SHOULD be gracefully ignored ๐Ÿ’…. This policy lets every implementation in a single ring environment interoperate, whether or not it supports the multi-ring extensions ๐Ÿ’–.

Okay, now the chaotic part ๐ŸŒ€. An all-routes broadcast of an ARP request can totally result in multiple copies reaching the destination, because several bridges forward it. But these "copies" took different routes, so their RIFs are different ๐Ÿ˜ญ. An ARP implementation has to figure out which copy to use and ignore the rest ๐Ÿ™ˆ. There are three obvious and legal strategies: (1) take the first and ignore the rest (once you have an entry in the ARP cache, don't change it), (2) take the last (always update the ARP cache with the latest ARP message), or (3) take the one with the shortest path (replace the ARP cache information with the latest ARP message data if it's a shorter route) ๐Ÿฆ‹. Different implementations can pick different strategies and still interoperate just fine, so the choice is up to each implementor ๐ŸŽ€. The recipient of the ARP request MUST send an ARP reply as a point to point message using the RIF information ๐Ÿซถ.

The RIF information SHOULD be kept distinct from the ARP table ๐ŸŒธ. In principle, there's the ARP table that maps IP addresses to 802 48-bit addresses, and the RIF table that maps those to 802.5 source routes, if necessary. In practical implementations, it may be convenient to store the ARP and RIF information together ๐Ÿงš.

Storing the information together may speed up access to the information when it is used. On the other hand, in a generalized implementation for all types of 802 networks, a significant amount of memory might be wasted in an ARP cache if space for the RIF information were always reserved ๐Ÿ™ˆ.

IP broadcasts (datagrams with an IP broadcast address) MUST be sent as 802.5 single-route broadcasts ๐Ÿš€. All-routes broadcasts are NOT desirable for IP, unlike ARP. Getting multiple copies of an IP broadcast would have undesirable effects on many protocols using IP, which is so not it ๐Ÿ’€. Just like with ARP, when an IP packet is received, all implementations are REQUIRED to understand frames with no RIF and frames with an empty RIF ๐Ÿ“.

Since current interface hardware only allows one group address, and since the functional addresses aren't globally unique, IP and ARP don't use either of these features ๐Ÿคทโ€โ™€๏ธ. Also, in the IBM style 802.5 networks, there are only 31 functional addresses available for user definition ๐ŸŽ€.

IP precedence SHOULD NOT be mapped to 802.5 priority ๐Ÿ™…โ€โ™€๏ธ. All IP and ARP packets SHOULD be sent at the default 802.5 priority, which is 3 ๐Ÿ’….

After packet transmission, 802.5 gives you frame not copied and address not recognized indicators ๐Ÿ‘€. Implementations MAY use these indicators to get some amount of error detection and correction โœจ. If the frame not copied bit is set but the address not recognized bit is reset, receiver congestion has occurred ๐Ÿ˜ค. It's suggested, though not REQUIRED, that hosts SHOULD retransmit the offending packet a small number of times (4) or until congestion no longer occurs ๐Ÿ”. If the address not recognized bit is set, an implementation has 3 options: (1) ignore the error and throw the packet away, (2) return an ICMP destination unreachable message to the source, or (3) delete the ARP entry that was used to send this packet and send a new ARP request to the destination address ๐ŸŒˆ. The third option is the preferred approach, since it allows graceful recovery from first hop bridge and router failures and changed hardware addresses ๐Ÿ‘‘.

Interoperation with Ethernet ๐Ÿ”Œ

It's possible to use the Ethernet link level protocol [12] on the same physical cable as the IEEE 802.3 link level protocol ๐Ÿงƒ. A computer interfaced to a physical cable used this way could potentially read both Ethernet and 802.3 packets from the network ๐Ÿ‘€. If a computer does read both types, it MUST keep track of which link protocol was used with each other computer on the network, and use the proper link protocol when sending packets ๐Ÿซถ.

One SHOULD note that in this kind of environment, link level broadcast packets won't reach all the computers attached to the network. They only reach the ones using the link level protocol that was used for the broadcast ๐Ÿ“ก.

Since it MUST be assumed that most computers will read and send using only one type of link protocol, it is RECOMMENDED that if an environment like this (a network with both link protocols) is necessary, an IP gateway be used as if there were two distinct networks ๐ŸŒธ.

Note that the MTU for Ethernet allows a 1500 octet IP datagram, while the MTU for the 802.3 network only allows a 1492 octet IP datagram ๐Ÿ“.

Appendix on Numbers ๐Ÿ”ข

The IEEE likes to specify numbers in bit transmission order, or bit-wise little-endian order ๐Ÿค“. The Internet protocols are documented in byte-wise big-endian order ๐ŸŒ. This MAY cause some confusion about the proper values to use for numbers, so here are the conversions for some numbers of interest ๐Ÿ’–.

   Number          IEEE    IEEE            Internet        Internet
                   HEX     Binary          Binary          Decimal

   UI Op Code      C0      11000000        00000011          3
   SAP for SNAP    55      01010101        10101010        170
   XID             F5      11110101        10101111        175
   XID             FD      11111101        10111111        191
   TEST            C7      11000111        11100011        227
   TEST            CF      11001111        11110011        243
   Info            818000                                  129.1.0

References ๐Ÿ“š

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

[2] Plummer, D., "An Ethernet Address Resolution Protocol - or - Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware", RFC-826, MIT, November 1982. โญ

[3] IEEE, "IEEE Standards for Local Area Networks: Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications", IEEE, New York, New York, 1985. โญ

[4] IEEE, "IEEE Standards for Local Area Networks: Token-Passing Bus Access Method and Physical Layer Specification", IEEE, New York, New York, 1985. โญ

[5] IEEE, "IEEE Standards for Local Area Networks: Token Ring Access Method and Physical Layer Specifications", IEEE, New York, New York, 1985. โญ

[6] IEEE, "IEEE Standards for Local Area Networks: Logical Link Control", IEEE, New York, New York, 1985. โญ

[7] Reynolds, J.K., and J. Postel, "Assigned Numbers", RFC-1010, USC/Information Sciences Institute, May 1987. โญ

[8] Braden, R., and J. Postel, "Requirements for Internet Gateways", RFC-1009, USC/Information Sciences Institute, June 1987. โญ

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

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

[11] Cohen, D., "On Holy Wars and a Plea for Peace", Computer, IEEE, October 1981. โญ

[12] D-I-X, "The Ethernet - A Local Area Network: Data Link Layer and Physical Layer Specifications", Digital, Intel, and Xerox, November 1982. โญ

[13] IBM, "Token-Ring Network Architecture Reference", Second Edition, SC30-3374-01, August 1987. โญ

๐Ÿ“ฆ where this page comes from