LAPB
HDLC ist ein umfassendes Layer-2 Protokoll aus dem je nach physikalischer Schnittstelle Untervarianten wie LAPB oder LAPD abgeleitet werden. LAPB ist dabei der Layer 2 aus der CCITT Empfehlung zu X25.
Die hier aufgeführten Daten (vertretend Modulo-8) dienen einzig als Kurzübersicht über die Arten von LAPB-Paketen. Für detailierte Informationen ist einzig die ISO 7776 zuständig.
allgemein:
Flag | AF | CF | Parameter / Daten | FCS | Flag |
7Eh | 7Eh |
AF | Address Field - command / responce (01h/03h) |
CF | Control Field - Typ des Paketes |
Parameter / Daten | abhängig vom Typ |
FCS | Frame Check Sequence |
Typen:
Diese Übersicht behandelt vertretend ausschließlich die in Deutschland am häufigsten verwendete Variante modulo-8.
SABM
" set asyncronous balanced mode "
Flag | c | 3Fh | FCS | Flag |
3Fh | Typ: SABM • bit-4: poll-bit |
DM
" disconnected mode "
Flag | c | 1Fh | FCS | Flag |
1Fh | Typ: DM • bit-4: poll-bit |
UA
" unnumbered acknowledgment "
Flag | r | 73h | FCS | Flag |
73h | Typ: UA • bit-4: poll-bit |
DISC
" disconnect "
Flag | c | 53h | FCS | Flag |
53h | Typ: DISC • bit-4: poll-bit |
FRMR
" frame reject "
Flag | c | 87h | xxh | xxh | xxh | FCS | Flag |
87h | Typ: FRMR • bit-4: poll-bit |
xxh | see ISO 7776 for information-field |
REJ
" reject "
Flag | c/r | x9h | FCS | Flag |
x9h | Typ: REJ • bit-4: poll-bit • bit-7..5 receive sequence number |
RNR
" receive not ready "
Flag | c/r | x5h | FCS | Flag |
x5h | Typ: RNR • bit-4: poll-bit/final-bit • bit-7..5 receive sequence number |
RR
" receive ready "
Flag | c/r | x1h | FCS | Flag |
x1h | Typ: RR • bit-4: poll-bit/final-bit • bit-7..5 receive sequence number |
I-frame
" data-frame "
Flag | c | xx..xx0b | data | FCS | Flag |
xx..xx0b | Typ: I-frame • bit-4: poll-bit • bit-7..5 receive sequence number • bit-3..1 send sequence number • bit-0 must be zero |
Im Standard zu LAPB sind aufwendige State-Diagramme zu den jeweiligen Übergängen und Fehlerbehandlungen dargestellt. Eine Variante um einen platzsparenden und gleichzeitig gut zu pflegenden Zustands/Übergangs-Mechanismus zu erhalten, ist die Implementation mittels einer State-Table. Dabei wird der aktuelle Status als Zeile und der empfangene Paket-Typ als Spalte verwendet. Das dort hinterlegte Byte gibt im oberen Nibble die erforderliche Reaktion und das untere Nibble den neuen State wieder.
Da ausreichend Ausnahmeregelungen existieren, sind jedoch noch weitere Auswertungen um solch eine Tabelle herum nötig (siehe ISO 7776).