IEEE 802 Logical Link Control: Traditional OSI
IEEE 802 Logical Link Control: Traditional OSI
Traditional OSI
The IEEE 802.x standards define a series of related Local Area Network implementations. The three layers of the 802 specification are The Logical Link Control (LLC, 802.2) provides a basic interface for both connectionless and connection-oriented services. Medium Access Control (MAC) provides for the transmission of data on the medium and also the defines the protocols which maintain the link operation. The Physical Layer provides the actual physical connection for data transfer. The Physical and MAC layers are specific to a network type, but present a common interface to the LLC layer. to indicate a time sequence of messages. The basic style of message is well-established in OSI protocols and often carried over into other areas. The 802.2 LLC protocols use three message types A Request is passed down to request a service It appears at the peer service user as an Indication A confirmation is returned to the requester. Other protocols may use more message types
Service User
Request
Service Provider
Service User
Indication
with basic functions L_DATA.request(local_address, remote_address, l_sdu, service_class) An actual LLC layer might have several systems above it and several physical protocols TCP/IP X.25 AppleTalk and L_DATA.indication(local_address, remote_address, l_sdu, service_class) Thus the LLC layer is called with a request to pass l_sdu (user data) from local_address to remote_address, or to receive l_sdu from a remote address. There is no acknowledgement (ie confirmation); the l_sdu is just sent and appears. The protocol diagram is trivial
Protocol diagrams
These diagrams indicate the messages exchanged between a service user and a service provider. The basic timing diagram is widely used in data communciations
Computer Science 07.442 IEEE 802 LAN standards 9 May 2000 Page 1
L_DATA.Request
bits to identify the protocol (00-80 for IP). The full prefix is then 0x AA-AA-03 LLC Header 0x 00-00-00 08-00 SNAP Header When transferring AppleTalk the SNAP header value is 0x 08-00-07 80-9B. later time L_DATA.Indication In total, an 8-byte header is added to the user message (LLC_SDU) in forming the LLC_PDU submitted to the MAC layer. Many systems use Ethernet conventions, rather than IEEE 802.3. The 802.3 length field becomes a protocol type field, set to denote the traffic type.
The address parameters provide at least the concatenation of the MAC address field and the LLC address field (SSAP or DSAP Source Service Access Point and Destination Service Access Point). The remote_address for the L_DATA.request may be a broadcast address. The L_DATA.indication returns the identical LSDU as was provided to the matching L_DATA.request.
The Poll/Final bit (P) may be 0 or 1. (A UI field with P=0 has the value 0x03, as noted before.) The XID command is used to exchange information on the supported LLC types and the receive window size (amount of unacknowledged data). The test command is echoed to show that the link is working.
Note that the bit order is reversed from normal, with the least-significant on the left. Service Access Point Addresses
The address LSB (leftmost) bit is 0 for unique and 1 for group addresses, 00000000 defines a null address and 11111111 is a broadcast address, usually intended for all destination SAPs.
The Service Access Points are given well known addresses for the usual cases, and the Control byte has the value 0x03 for connectionless data. For data transfer the Information field is the LLC SDU data. For routed ISO protocols the LLC Header value (in hexadecimal) is 0xFE-FE-03. For protocols such as IP there is a further level of encapsulation. The LLC Header, with address 0xAA, is followed by a SubNetwork Attachment Point (SNAP) Header. The 5-byte SNAP Header has a 3 byte (24 bit) code giving an administering authority and 16
Computer Science 07.442 IEEE 802 LAN standards 9 May 2000 Page 2
status, service_class) This section is not examinable, but is incluA data transfer is initiated by the command ded for completeness and to give you an idea L_DATA_CONNECT.request( of a standard set of primitive operations. local_address, remote_address, While the 802.2 standard certainly defines a comnecl_sdu) tion oriented service, this seems to be seldom used. The basic operations are with the corresponding indication L _ CONNECT . request L_DATA_CONNECT.indication( local_address, L _ DATA _ CONNECT remote_address, L _ DISCONNECT . indication l_sdu, service_class) L _ RESET L _ CONNECTION _ FLOWCONTROL . confirmation and confirmation L_DATA_CONNECT.confirm( The services are very similar to those associated with local_address, ISO X.25 communication; L_DATA_CONNECT reremote_address, places L_DATA, and a new primitive is added l_sdu, L_CONNECTION_FLOWCONTOL. (In the connecservice_class) tionless protocols, 802.2 replaces L.UNITDATA by Service disconnection is provided by L.DATA.) L_DISCONNECT.request( Each Link Service Primitive specifies addresses which local_address, are as Dest_Adr.LSAP. Connectionless data and remote_address) L_CONNECT may specify a service class or prior- with the remote indication ity for the transfer. FLOWCONTROL specifies the L_DISCONNECT.indication( amount of data which may be passed and may be any local_address, agreed value, including zero or infinity. remote_address, reason) For all of these services the protocol diagram is like and local confirmation L_DISCONNECT.confirm( local_address, remote_address, L_CONNECT. status) Request The connection may be reset, discarding all unacknowledged PDUs, by L_RESET.request( local_address, remote_address) L_CONNECT. L_CONNECT. Confirmation with the remote indication Indication L_RESET.indication( local_address, remote_address, reason) The connection is initially requested by and local confirmation L_CONNECT.request( L_RESET.confirm( local_address, local_address, remote_address, remote_address, status) service_class) Finally, the amount of traffic may be varied by the which appears at the destination as FlowControl primitive L_CONNECTION_FLOWCONTROL.request( L_CONNECT.indication( local_address, local_address, remote_address, remote_address, amount) status, which has the indication service_class) L_CONNECTION_FLOWCONTROL.indication( local_address, remote_address, amount) and at the source station as The amount may be zero to stop the transfer, or may be L_CONNECT.confirm( local_address, set in implementation specific units. remote_address,
Connection oriented :
}{
Computer Science 07.442 IEEE 802 LAN standards 9 May 2000 Page 3
The LLC Control field may be 8 or 16 bits, defining three basic control classes.
Information Transfer Command/Response 0 (I-Format PDU) P / F
N(S)
N(R) 1 0 0 0 X X X X P/F N(R) RR Receive Ready 1 0 0 1 X X X X P/F N(R) REJ Reject N(R) 1 0 1 0 X X X X P/F N(R) RNR Receive not Ready
Unnumbered Command/Response
11 11 11 11 11 11 11 11 11 11 00 11 00 11 00 11 00 00 11 10 P P P F F P P F F F 000 101 111 000 111 110 010 110 000 001 UI XID TEST XID TEST SABME DISC UA DM FRMR
All services
UI XID TEST XID Un-numbered information Exchange IDs Test
Connection oriented
I RR RNR REJ DISC UA DM FRMR I RR RNR REJ Information Receive Ready Receive Not Ready Reject Set Asynch Bal Mode Extended Disconnect Unnumbered Acknowledge Disconnected Mode Frame Reject
The entries with a P are commands, and those with a F are responses.
SABME
The Poll/Final bit (P/F) may be either 0 or 1 in a command (Poll bit). In the response (Final Bit) it must reflect the value of the Command Poll bit.
Computer Science 07.442 IEEE 802 LAN standards 9 May 2000 Page 4