LAPB Frame Types
LAPB Frames are divided into three classes:
|Unnumbered:||DISC, SABM, SABME, UA, DM, FRMR|
|Supervisory:||RR, RNR, REJ|
Information frames contain two sequence numbers:
- N(S) - the send sequence number
- N(R) - the receive sequence number, which is the expected value of what N(S) will take in the next I-frame to be received.
Supervisory frames contain just the receive sequence number N(R).
Unsurprisingly, Unnumbered frames do not contain any sequence numbers at all.
DISC - Disconnect command (Unnumbered)
This commands disconnects a link. If in the Information Transfer Phase, the link moves to the Disconnect Phase.
SABM - Set Asynchronous Balanced Mode command (Unnumbered)
The command frame which initiates link set-up, using normal (modulo-8) sequence numbers. It has to be acknowledged by a UA frame for the link to enter Information Transfer.
SABME - Set Asynchronous Balanced Mode Extended command (Unnumbered)
The same as SABM, except that it attempts to start a link using extended (modulo-128) sequence numbers instead of modulo-8 sequence numbers.
UA - Unnumbered Acknowledgment response (Unnumbered)
The UA frame is sent in response to a SABM (or SABME) frame to set the link to Information Transfer.
DM - Disconnected Mode response (Unnumbered)
This response frame is transmitted in response to command frames in Disconnected Phase when the link is not able to enter information transfer (e.g. in response to DISC
FRMR - Frame Reject response (Unnumbered)
The Frame Reject response is transmitted when an error occurs that can only be recovered by resetting the data link. Unlike other unnumbered frames types, it contains an information field, which provides details of the frame causing the error.
RR - Receive Ready command and response (Supervisory)
RR frames can be either commands or responses. Response RRs are used to acknowledge received information frames, and also in reply to Command RRs. Command RRs are used when force a response from the peer, and are typically used when the link is idle, to check that it is still active.
RNR - Receive Not Ready command and response (Supervisory)
RNR are transmitted when the local end of the link is temporarily unable to receive further Information frames, for example due to a buffer shortage. Otherwise, they are the same as RR frames. The appearance of RNR frames on the link usually means that something has gone wrong, as most X.25 implementations apply flow control at Layer 3 instead of Layer 2.
REJ - Reject command and response (Supervisory)
Rejects are used when an I-frame is received with an unexpected sequence number - they indicate to the peer that I-frames need to be retransmitted. Although Rejects can in theory be commands as well as responses, in practice a Reject command is almost never seen.
I-frames contain the X.25 PLP packets, and are always commands. Note that as I-frames also contain the receive sequence number N(R) they can acknowledge received I-frames. It's therefore common during periods of data transfer that the only frames to be seen on the link are I-frames.