- Subnetwork Access Protocol
The Subnetwork Access Protocol (SNAP) is a mechanism for multiplexing, on networks using
IEEE 802.2 LLC, more protocols than can be distinguished by the 8-bit 802.2Service Access Point (SAP) fields. SNAP supports identifying protocols byEthernet type field values; it also supports vendor-private protocol identifier spaces. It is used withIEEE 802.3 ,IEEE 802.4 , IEEE 802.5,IEEE 802.11 and otherIEEE 802 physical network layers, as well as with non-IEEE 802 physical network layers such asFDDI that use 802.2 LLC.SNAP is included in an extension of the 802.2 LLC header; it is specified in the [http://standards.ieee.org/getieee802/download/802-2001.pdf IEEE 802 Overview and Architecture] document. A packet with an LLC header with a destination SAP of hexadecimal AA or AB and a source SAP of hexadecimal AA or AB is a SNAP packet. The SNAP header follows the 802.2 header; it has a 5-octet protocol identification field, consisting of a 3-octet
IEEE Organizationally Unique Identifier (OUI) followed by a 2-octet protocol ID. If the OUI is hexadecimal 000000, the protocol ID is the Ethernet type (EtherType ) field value for the protocol running on top of SNAP; if the OUI is an OUI for a particular organization, the protocol ID is a value assigned by that organization to the protocol running on top of SNAP.SNAP is usually used with Unnumbered Information PDUs, with a control field value of hexadecimal 03, and the LSAP values are usually hexadecimal AA, so the 802.2 LLC header for a SNAP packet is usually AA AA 03; however, SNAP can be used with other PDU types as well.
The LLC header is 3 octets, and the SNAP header is 5 octets, so the LLC+SNAP headers are 8 octets long in total. On Ethernet, this reduces the size of the available payload for protocols such as the
Internet Protocol to 1492 bytes, compared to the use of theEthernet II framing ; therefore, for protocols that have EtherType values, packets are usually transmitted with Ethernet II headers rather than with LLC and SNAP headers. On other network types, the LLC and SNAP headers are required in order to multiplex different protocols on the link layer, as the MAC layer doesn't itself have an EtherType field, so there's no alternative framing that would have a larger available payload.One might ask "why is a separate sub-network header necessary?". The answer is that it was to augment a decision that was made during the layout of the LLC header. At the time that the LLC header was being designed it was thought that a single octet (256 possible values) in the header would be enough to specify all the protocol values that vendors would want to register. As the values began to be reserved, it was discovered that the LLC header would soon run out of open values. The hexadecimal AA and AB values were reserved, and an additional header—the SNAP header—was developed; it can support all EtherType values, as well as multiple spaces of private protocol values. As per
IETF RFC 1042, IP datagrams and ARP datagrams are transmitted over IEEE 802 networks using LLC and SNAP headers, except on Ethernet/IEEE 802.3, where they are transmitted with Ethernet II headers, as per RFC 894.References
* [http://standards.ieee.org/getieee802/download/802-2001.pdf IEEE 802 Overview and Architecture] — SNAP is specified here
* J. Postel and J. Reynolds, "A Standard for the Transmission of IP Datagrams over IEEE 802 Networks", RFC 1042
Wikimedia Foundation. 2010.