X25
X.25 ist allgemein eine CCITT-Empfehlung für das Interface zwischen einer DTE und einer DCE über eine Telefonverbindung (PSTN). Grundlegend beschreibt X.25 die Layer 1 bis 3 des ISO Schichtenmodells, aber die hier betrachtete protokoll-spezifische Bezeichnung meint den Paket-Layer 3.
Die hier aufgeführten Daten sollen einzig eine Kurzübersicht über die Arten von X25-Paketen darstellen. Für detailierte Informationen ist einzig die ISO 8208 zuständig.
allgemein:
GFI | LCN | Typ | Parameter / Daten |
GFI | General Format Identier • bit-7 is Qualifer-bit • bit-6 is Delivery Confirmation-bit • bit-5..4 is Sequence scheme (01 for modulo-8 / 10 for modulo 128) • bit-3..0 is Logical channel group number (LGN) |
LCN | Logical channel number (SVC / PVC) |
Typ | Typ des Paketes (1byte in modulo-8 / 2byte in modulo-128) |
Parameter / Daten | abhängig vom Typ |
Typen:
Diese Übersicht behandelt vertretend ausschließlich die in Deutschland am häufigsten verwendete Variante modulo-8.
CALL Request
" Verbindungsaufbau "
GFI | LCN | 0Bh | xyh | number [/number] | facility | PID | user-data |
0Bh | Typ: CALL Request |
xyh | Lenght of number(s) - in nibble |
number [/number] | call-number [/source-number] - packed in nibble |
facility | z.B. 00h - ohne 02h 01h 01h - reverse charching |
PID | Protocol Identifier (4 byte) |
user-data | max 16 bytes |
CALL Accept
" Verbindung aufgebaut "
GFI | LCN | 0Fh | xyh | number [/number] | user-data |
0Bh | Typ: CALL Accept |
xyh | Lenght of number(s) - in nibble |
number [/number] | called-number [/source-number] - packed in nibble |
user-data | max 16 bytes |
I-frame
" Daten-Paket "
GFI | LCN | xx..xx0b | data |
xx..xx0b | Typ: I-frame • bit-7..5 is number of last received I-frame+1 • bit-4 is more-bit to mark data will be continue • bit-3..1 is number of this I-frame • bit-0 must be zero |
data | max 128 bytes |
Receive-Ready
" Bereit "
GFI | LCN | x1h |
x1h | Typ: Receive-Ready • bit-7..5 is number of last received I-frame+1 • bit-4 is poll/final flag |
Receive-Not-Ready
" nicht Bereit "
GFI | LCN | x5h |
x5h | Typ: Receive-Not-Ready • bit-7..5 up to number-1 is ok. • bit-4 is poll/final flag |
Reject
" wiederhole "
GFI | LCN | x9h |
x9h | Typ: Reject • bit-7..5 up to number-1 is ok. - after this is to repeat • bit-4 is poll/final flag |
Clear request
" Verbindung beenden "
GFI | LCN | 13h | cause | diag |
13h | Typ: Clear request |
cause / diag | see ISO 8208 and DATEX-P (and manuals from TA's) |
Clear confirmation
" Quittung Verbindung beendet "
GFI | LCN | 17h |
17h | Typ: Clear confirmation |
Reset
" Paket-Nummerierung zurücksetzen "
GFI | LCN | 1Bh | cause | diag |
1Bh | Typ: Reset |
cause / diag | see ISO 8208 and DATEX-P (and manuals from TA's) |
Reset confirmation
" Quittung Reset "
GFI | LCN | 1Fh |
1Fh | Typ: Reset confirmation |
Interrupt
" Daten trotz FLOW senden "
GFI | LCN | 23h | data |
23h | Typ: Interrupt |
data | max 32 bytes |
Interrupt confirmation
" Quittung INT-Transport "
GFI | LCN | 27h |
27h | Typ: Interrupt confirmation |
Restart
" alle Kanäle zurücksetzen "
GFI | LCN | FBh | cause | diag |
FBh | Typ: Restart |
cause / diag | see ISO 8208 and DATEX-P (and manuals from TA's) |
Restart confirmation
" Quittung Restart "
GFI | LCN | FFh |
FFh | Typ: Restart confirmation |
Diagnostic
" unspezifischer Fehler in Paket "
GFI | LCN | F1h | diag | expan. |
F1h | Typ: Diagnostic |
diag / expan. | see ISO 8208 and DATEX-P (and manuals from TA's) |
Registration Request
" Leistungsmerkmale vereinbaren "
GFI | LCN | F3h | lenght | code |
F3h | Typ: Registration Request |
lenght / code | see ISO 8208 and DATEX-P |
Registration Confirmation
" Leistungsmerkmale beantworten "
GFI | LCN | F7h | lenght | code |
F7h | Typ: Confirmation Request |
lenght / code | see ISO 8208 and DATEX-P |
Im Standard zu X25 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 8208).