1) With EtherTalk 2.0, Apple is adopting standard networking packet formats as
defined by the Institute of Electrical and Electronics Engineers (IEEE) 802
committee. The 802 committee defines standards for local area networking.
The IEEE divides the OSI data link layer into the Logical Link Control (LLC)
layer and the Medium Access Control (MAC) layer. The IEEE LLC layer
provides error checking and reliable transfer of data. The LLC layer was
defined to provide a uniform interface to the network layer, independent of
the MAC and physical layers used. The LLC provides connectionless-oriented
(Type 1) or connection-oriented (Type 2) services.
The MAC layer provides some of the lower-level functions of the OSI
data link layer and some functions that fit into the OSI physical
layer. These functions include channel (media) access, channel contention
arbitration, and data formatting. The MAC layer has three variants:
- Carrier Sense Multiple Access/Collision Detect (CSMA/CD), which is similar
to the Ethernet standard and is used in engineering and office automation
applications.
- Token Bus, used in factory automation applications.
- Token Ring, which has been widely adopted by IBM and other companies for
office automation applications.
Ethernet and 802.3 CSMA/CD are often incorrectly considered identical.
Ethernet is a de facto local area network standard developed by Digital
Equipment Corporation, Xerox, and Intel. It forms the basis for 802.3, but
the 802.3 packet format is slightly different. Unlike the Ethernet packet,
the 802.3 packet has no protocol-type field and has a data length field.
Workstations using Ethernet packets do not recognize workstations using
802.3 packets, and vice versa.
The Ethernet protocol-type field is used to distinguish higher-level
protocols. The protocol-type field allows for 64 different protocol
identifiers. However, with the maturation of local area network technology,
64 different protocol identifiers are too few. To accommodate the large
number of protocols, the IEEE developed the SubNetwork Address Protocol
(SNAP) standard.
SNAP allows multiple protocols to be used with one data link. It defines
a 5-byte field to identify the protocol using the data link. It ensures
that protocol identifiers from different vendors do not conflict. The IEEE
has assigned Apple a SNAP identifier for AppleTalk and AARP (Apple
Address Resolution Protocol).
With EtherTalk 1.0, AppleTalk data was transmitted in the data field of
an Ethernet packet. With EtherTalk 2.0, AppleTalk data is encapsulated in a
SNAP packet, which is encapsulated in an LLC packet, and transmitted in a
CSMA/CD 802.3 packet. The result is that EtherTalk 1.0 packets are not seen
by EtherTalk 2.0 nodes, and EtherTalk 2.0 packets are not seen by EtherTalk
1.0 nodes.
Though EtherTalk 2.0 uses the SNAP interface, higher-level protocols can
go directly to the LLC layer, and not use SNAP. SNAP allows connectionless
communication services only. Software developers that need to use
connection-oriented services must bypass SNAP and use the 802.2 LLC
interface directly. Such developers would use Apple's Ethernet driver for
our EtherTalk card, but would not use our higher-level EtherTalk 2.0
software.
EtherTalk 2.x (802.3) Frame
---------------------------
802.3 Destination 6 bytes
802.3 Source 6 bytes
802.2 LLC Length 2 bytes
802.2 LLC Header
802.2 LLC DSAP 1 bytes (always $AA (SNAP SAP) for EtherTalk 2.x)
802.2 LLC SSAP 1 bytes (always $AA (SNAP SAP) for EtherTalk 2.x)
802.2 LLC Control 1 bytes (always $03)
SNAP Header 5 bytes (always $080007809B for EtherTalk 2.x)
DDP Header 13 bytes
AppleTalk Data ?? bytes (586 bytes maximum)
Padding (if needed) ?? bytes
---------------
60 to 621 bytes
DSAP - Destination Service Access Point
SSAP - Source Service Access Point
The SNAP SAP is defined as $AA.
If the 802.3 packet is less than 60 bytes padding is added to make the
packet 60 bytes long.
In 802.2, DSAP and SSAP are almost always the same except in frames that
are establishing an initial SNA connection.
2) The SNAP (SubNetwork Address Protocol) unique identifier assigned to
Apple by the IEEE is $0800070000. The first 3 bytes of the unique
identifier is the vendor address. The last 2 bytes are the local
administered (by Apple) identifiers. We (Apple) have defined $809B as
EtherTalk. The unique identifier for EtherTalk 2.0 is $080007809B. This is
considered to be a locally administered SNAP address.
A global SNAP address has been defined by the IEEE for AARP packets. The
SNAP number is $00000080F3.
These values are the same for TokenTalk 2.0.