Protokollgrundlagen (Schicht ) Einfaches Kommunikationsprotokoll für eine Punkt-zu-Punkt- Verbindung: Phase Station Station Eröffnung ENQ Fehlerroutine Invalid or no NAK ACK reply Nachrichtenübermittlung Message (STX,...) Fehlerroutine Invalid or no NAK ACK reply Beendigung EOT Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
Einfaches Kommunikationsprotokoll für eine geschaltene Punkt-zu-Punkt-Verbindung: Phase Station Station Verbindungs -aufbau Dial Eröffnung IDREQ Fehlerroutine ID-Fehler Invalid ID ID or no NAK ACK reply Nachrichtenübermittlung Message Fehlerroutine Invalid or no NAK ACK reply Beendigung EOT St. oder St. Eröffnung Verbindungs -abbau DEOT DEOT Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
Steuercodes am Beispiel IA (mit ASCII/DIN-Abweichungen): b 7 b b 0 7 b b b b (000) (00) (00) (0) (00) (0) (0) () 0 (0000) NUL DLE 0 @ ( ) P ` p (000) SOH DC! A Q a q (000) STX DC " B R b r (00) ETX DC # ( ) C D c s (000) EOT DC $ D T d t (00) ENQ NAK % E U e u (00) ACK SYN & F V f v 7 (0) BEL ETB ' 7 G W g w 8 (000) BS CAN ( 8 H X h x 9 (00) HT EM ) 9 I Y i y A (00) LF SUB * : J Z j z B (0) VT ESC + ; K [ (Ä) k { (ä) C (00) FF FS, < L \ (Ö) l (ö) D (0) CR GS - = M ] (Ü) m } (ü) E (0) SO RS. > N ^ n ~ (ß) F () SI US /? O _ o DEL NUL Null SOH Start of Heading Beginn des Headers STX Start of Text Beginn der Nachricht ETX End of Text Ende der Nachricht (STX) EOT End of Transmission Ende der Übertragung ENQ Enquiry Anfrage (Bereitschaft, ID, ) ACK Acknowledgement Postive Bestätigung BEL Bell BS Backspace HT Horizontal Tabulator LF Linefeed VT Vertical Tabulator FF Formfeed CR Carriage Return SO Shift Out Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
SI Shift In DLE Data Link Escape Das unmittelbar folgende Zeichen hat eine andere Bedeutung DC Device Control DC Device Control DC Device Control DC Device Control NAK Negative Acknowledgement Negative Bestätigung SYN Synchronous Idle Synchronisationszeichen, das am Anfang bzw. in Pausen gesendet wird ETB End of Transmission Block Ende eines Übertragungsblocks, der nicht das Ende der Nachricht ist CAN Cancel EM End of Medium SUB Substitute ESC Escape FS File Separator GS Group Separator RS Record Separator US Unit Separator DLE-Paare DEOT DLE EOT Mandatory disconnect ACK0 DLE 0 Alternate ACK ACK DLE Alternate ACK WABT DLE ; Wait Before Transmission RVI DLE < Reverse Interrupt DLE STX Start of Transparent Text DLE ETB End of Transparent Transmission Block DLE ETX End of Transparent Text DLE SYN Transparent Synchronous Idle Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
HDLC Betriebsarten NRM ARM ABM Normal Response Mode Primärstation Sekundärstation, Halfduplex Asynchronous Response Mode Primärstation Sekundärstation, Fullduplex Asynchronous Balanced Mode Beide Stationen gleichwertig, Fullduplex Frameformat 00 Inhalt 00 Flag Steuerzeichen und Text Flag Problem: Flag kommt im Inhalt vor Lösung: Bitstuffing (nach * kommt immer eine 0) Zusätzlich zum Flag zwei Sonderzeichen: 7 * : frame abortion * : channel not active Control-Feld Commands und Responses Controlbyte Format Commands Responses Codierung I-Frame I N(R) P N(S) 0 S-Frame RR N(R) F 00 0 RNR N(R) F 0 0 REJ N(R) F 0 0 U-Frame SABM 00 P DISC 00 P 00 UA 0 F 00 FRMR 00 F 0 In jeder beteiligten Station existieren noch zwei Register (mit der Göße Bit): Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
V(S) V(R) Sendefolgeregister Empfangsfolgeregister Unnumbered Frame 00 Flag ( Byte) Adresse Adresse ( Byte) Control Kontrollfeld mit den letzten beiden Bits ( B.) Daten ( Byte) FCS Prüfsumme ( Byte) 00 Flag ( Byte) SABM DISC UA FRMR Set Asynchronous Balanced Mode DISConnect Unnumbered Acknowledge FRaMe Reject Information Transfer Frame 00 Flag ( Byte) Adresse Adresse ( Byte) Control 0 Kontrollfeld mit dem letzten Bit 0 ( Byte) Daten (beliebige Länge)... FCS Prüfsumme ( Byte) 00 Flag ( Byte) N(S) V(S) Nummerierung des I-Rahmens N(R) V(R) Empfang der Rahmen bis V(R)- bestätigt Mag. Dr. Klaus Coufal - hdlc.doc -. November 997
Supervisory Frames 00 Flag ( Byte) Adresse Adresse ( Byte) Control 0 Kontrollfeld (letzten beiden Bits 0 ; Byte) FCS Prüfsumme ( Byte) 00 Flag ( Byte) REJ RNR RR REJect Receive Not Ready Receive Ready Beispiele Standardübertragung Station A Station B V(S) A V(R) A C/R C/R V(S) B V(R) B Bemerkung 0 0 SABM A fordert UA 0 0 Verbdg. an I(0,0) I(,0) I(,0) I(,) RR() RR() RR() I(0,) I(,) I(,) A Daten Beide schicken Daten und bestätigen im I-Rahmen DISC UA Abbau (A) Mag. Dr. Klaus Coufal - hdlc.doc -. November 997 7
Ein I-Rahmen geht verloren Station A Station B V(S) A V(R) A C/R C/R V(S) B V(R) B Bemerkung 0 0 SABM A fordert UA 0 0 Verbdg. an I(0,0) I(,0) I(,0) I(,) RR() RR() RR() I(0,) I(,) I(,) I(,) A Daten Beide schicken Daten und bestätigen im I-Rahmen Störung REJ() I(,) I(,) Zurückweisung RR() RR() RR() I(,) I(,) I(,) Ignorieren Wiederholung DISC Abbau (A) UA Mag. Dr. Klaus Coufal - hdlc.doc -. November 997 8
Komplizierter Fehler und Empfänger nicht bereit Station A Station B V(S) A V(R) A C/R C/R V(S) B V(R) B Bemerkung 0 0 SABM A fordert UA 0 0 Verbdg. an I(0,0) I(,0) I(,0) RR() A Daten Störung I(,0) I(,0) REJ() Zurückweisung Störung TIME OUT I(,0,P) I(,0,P) I(,0) I(,0) RR(,F) RR(,F) RR() Timeout Alles nochmals I(,0) RNR() Stop (B) 7 I(,0) I(,0) I(,0) DISC RR() RR() RR() RR(7) 7 Weiter(B) Abbau (A) UA Mag. Dr. Klaus Coufal - hdlc.doc -. November 997 9