Control la nivel înalt al legăturilor de date - High-Level Data Link Control

Controlul la nivel înalt al legăturilor de date ( HDLC ) este un protocol de straturi de date sincrone, transparent și codat, orientat pe biți, dezvoltat de Organizația Internațională pentru Standardizare (ISO). Standardul pentru HDLC este ISO / IEC 13239: 2002.

HDLC oferă atât servicii orientate spre conexiune, cât și servicii fără conexiune .

HDLC poate fi utilizat pentru conexiuni punct-la-multipunct prin modurile originale master-slave Mode de răspuns normal (NRM) și modul de răspuns asincron (ARM), dar acum sunt rareori utilizate; acum este folosit aproape exclusiv pentru a conecta un dispozitiv la altul , utilizând modul echilibrat asincron (ABM).

Istorie

HDLC se bazează pe IBM e SDLC de protocol, care este protocolul de nivel 2 pentru IBM Systems Network Architecture (SNA). Acesta a fost extins și standardizat de ITU ca LAP (Link Access Procedure), în timp ce ANSI a denumit versiunea lor esențial identică ADCCP .

Specificația HDLC nu specifică semantica completă a câmpurilor de cadre. Acest lucru permite ca alte standarde pe deplin conforme să fie derivate din acesta, iar instrumentele derivate au apărut de atunci în nenumărate standarde. A fost adoptat în stiva de protocol X.25 ca LAPB , în protocolul V.42 ca LAPM , în stiva de protocol Frame Relay ca LAPF și în stiva de protocol ISDN ca LAPD.

Standardele ISO originale pentru HDLC sunt următoarele:

  • ISO 3309-1979 - Structura cadrului
  • ISO 4335-1979 - Elemente de procedură
  • ISO 6159-1980 - Clase de procedură dezechilibrate
  • ISO 6256-1981 - Clase de procedură echilibrate

ISO / IEC 13239: 2002, standardul actual, a înlocuit toate aceste specificații.

HDLC a fost inspirația pentru protocolul IEEE 802.2 LLC și este baza mecanismului de încadrare utilizat cu PPP pe liniile sincrone, așa cum este utilizat de multe servere pentru a se conecta la o rețea WAN , cel mai frecvent la Internet .

O versiune similară este utilizată ca canal de control pentru liniile telefonice multicanal E-carrier (E1) și SONET . Cisco HDLC utilizează tehnici de încadrare HDLC de nivel scăzut, dar adaugă un câmp de protocol la antetul HDLC standard.

Încadrarea

Cadrele HDLC pot fi transmise prin legături de comunicații seriale sincrone sau asincrone . Aceste legături nu au niciun mecanism care să marcheze începutul sau sfârșitul unui cadru, așa că trebuie identificate începutul și sfârșitul fiecărui cadru. Acest lucru se realizează utilizând o secvență unică de biți ca delimitator de cadru sau steag și codificând datele pentru a se asigura că secvența steagului nu este văzută niciodată în cadrul unui cadru. Fiecare cadru începe și se termină cu un delimitator de cadre. Un delimitator de cadre la sfârșitul unui cadru poate marca, de asemenea, începutul următorului cadru.

Atât pe legăturile sincrone, cât și pe cele asincrone, secvența de semnalizare este binară "01111110" sau hexadecimală 0x7E, dar detaliile sunt destul de diferite.

Încadrare sincronă

Deoarece o secvență de semnalizare constă din șase 1-biți consecutivi, alte date sunt codificate pentru a se asigura că nu conține niciodată mai mult de cinci 1-biți la rând. Acest lucru se face prin umplerea de biți : de fiecare dată când cinci date consecutive de 1 biți apar în datele transmise, datele sunt întrerupte și un bit 0 este transmis.

Dispozitivul de recepție știe că se face acest lucru și, după ce a văzut cinci 1-biți la rând, următorul 0-bit este eliminat din datele primite. Dacă în schimb al șaselea bit este 1, acesta este fie un flag (dacă al șaptelea bit este 0), fie o eroare (dacă al șaptelea bit este 1). În acest din urmă caz, procedura de primire a cadrelor este întreruptă, pentru a fi repornită atunci când următorul flag este văzut.

Această umplere de biți servește un al doilea scop, acela de a asigura un număr suficient de tranziții de semnal. Pe legăturile sincrone, datele sunt codificate NRZI , astfel încât un 0-bit este transmis ca o modificare a semnalului pe linie și un 1-bit este trimis fără nicio modificare. Astfel, fiecare bit 0 oferă o oportunitate pentru un modem receptor de a-și sincroniza ceasul printr-o buclă blocată în fază . Dacă sunt prea mulți biți la rând, receptorul poate pierde numărul. Bit-stuffing oferă cel puțin o tranziție la șase biți în timpul transmiterii de date și o tranziție la șapte biți în timpul transmiterii unui flag.

Când nu se transmit cadre pe o legătură sincronă simplex sau full-duplex, un delimitator de cadre este transmis în mod continuu pe legătură. Aceasta generează una din cele două forme de undă continue, în funcție de starea inițială:

NrziEncodedFlags.png

Specificația HDLC permite ca 0-bit la sfârșitul unui delimitator de cadre să fie partajat cu începutul următorului delimitator de cadre, adică „011111101111110”. Unele hardware nu acceptă acest lucru.

Pentru comunicațiile semi-duplex sau multi-drop, în care mai mulți transmițătoare partajează o linie, un receptor de pe linie va vedea 1 biți de ralanti continuu în perioada inter-cadru atunci când nu este activ niciun transmițător.

HDLC transmite mai întâi octeți de date cu bitul cel mai puțin semnificativ (nu trebuie confundat cu ordinea puțin endiană , care se referă la ordonarea octeților într-un câmp multi-octet).

Încadrare asincronă

Când utilizați comunicații seriale asincrone, cum ar fi porturile seriale standard RS-232 , umplerea de biți în stil sincron este inadecvată din mai multe motive:

  • Umplerea de biți nu este necesară pentru a asigura un număr adecvat de tranziții, deoarece biții de pornire și oprire prevăd că,
  • Deoarece datele sunt codificate NRZ pentru transmisie, mai degrabă decât codate NRZI, forma de undă codificată este diferită,
  • RS-232 trimite biți în grupuri de 8, ceea ce face ca adăugarea de biți simpli să fie foarte ciudată și
  • Din același motiv, este necesar doar codificarea specială a octeților de semnalizare ; nu este necesar să vă faceți griji cu privire la modelul de biți care se încadrează în mai mulți octeți.

În schimb, încadrarea asincronă folosește „transparență control-octet”, numită și „ umplutură de octeți ” sau „umplutură de octet”. Octetul de limită a cadrului este 01111110, (0x7E în notație hexazecimală ). Un " octet de control de evacuare ", are valoarea 0x7D (secvența de biți '10111110', deoarece RS-232 transmite mai întâi bitul cel mai puțin semnificativ). Dacă oricare dintre acești doi octeți apare în datele transmise, este trimis un octet de evadare, urmat de octetul de date original cu bitul 5 inversat. De exemplu, octetul 0x7E ar fi transmis ca 0x7D 0x5E („10111110 01111010”). Alte valori rezervate de octet (cum ar fi XON sau XOFF ) pot fi evadate în același mod, dacă este necesar.

„Abordarea secvenței” 0x7D 0x7E încheie un pachet cu o secvență incompletă de biți, obligând receptorul să detecteze o eroare. Aceasta poate fi utilizată pentru a anula transmiterea pachetului fără nicio șansă ca pachetul parțial să fie interpretat ca valid de către receptor.

Structura

Conținutul unui cadru HDLC este prezentat în următorul tabel:

Steag Abordare Control informație FCS Steag
8 biți 8 sau mai mulți biți 8 sau 16 biți Lungime variabilă, 8 × n biți 16 sau 32 de biți 8 biți

Rețineți că steagul final al unui cadru poate fi (dar nu trebuie să fie) steagul de început (start) al următorului cadru.

Datele sunt de obicei trimise în multipli de 8 biți, dar numai unele variante necesită acest lucru; alții permit teoretic alinierea datelor pe alte limite decât cele de 8 biți.

Secvența de verificare a cadrului (FCS) este de 16 biți CRC-CCITT sau un 32 de biți CRC-32 calculat peste adrese, câmpurile de control și informare. Acesta oferă un mijloc prin care receptorul poate detecta erorile care ar fi putut fi induse în timpul transmiterii cadrului, cum ar fi biții pierduți, biții răsturnați și biții străini. Cu toate acestea, având în vedere că algoritmii utilizați pentru calcularea FCS sunt astfel încât probabilitatea ca anumite tipuri de erori de transmisie să nu fie detectate crește odată cu lungimea datelor verificate pentru erori, FCS poate limita implicit dimensiunea practică a cadrului.

Dacă calculul FCS de către receptor nu se potrivește cu cel al expeditorului, indicând faptul că cadrul conține erori, receptorul poate fie să trimită expeditorului un pachet de confirmare negativ , fie să nu trimită nimic. După primirea unui pachet de confirmare negativ sau expirarea timpului de așteptare a unui pachet de confirmare pozitiv, expeditorul poate retransmite cadrul nereușit.

FCS a fost implementat deoarece multe legături de comunicare timpurii au avut o rată de eroare de biți relativ ridicată , iar FCS a putut fi calculat cu ușurință prin circuite simple sau rapide sau software. Scheme mai eficiente de corectare a erorilor directe sunt acum utilizate pe scară largă de alte protocoale.

Tipuri de stații (computere) și moduri de transfer de date

Synchronous Data Link Control ( SDLC ) a fost inițial conceput pentru a conecta un computer cu mai multe periferice printr-o magistrală multidrop . „Modul de răspuns normal” original este un mod master-slave în care computerul (sau terminalul primar ) acordă fiecărui periferic ( terminal secundar ) permisiunea de a vorbi pe rând. Deoarece toate comunicațiile sunt către sau de la terminalul primar, cadrele includ o singură adresă, cea a terminalului secundar; terminalului primar nu i se atribuie o adresă. Există o distincție între comenzile trimise de primar către un secundar și răspunsurile trimise de un secundar către primar, dar acest lucru nu se reflectă în codificare; comenzile și răspunsurile nu se pot distinge, cu excepția diferenței în direcția în care sunt transmise.

Modul de răspuns normal permite partajarea legăturii secundar-primar fără contestații , deoarece are permisiunea primară de a permite secundarilor să transmită pe rând. De asemenea, permite operarea pe legături de comunicare semi-duplex , atâta timp cât principalul este conștient de faptul că este posibil să nu transmită atunci când a acordat permisiunea unui secundar.

Modul de răspuns asincron este o adăugare HDLC pentru utilizare pe legături full-duplex . În timp ce păstrează distincția primară / secundară, permite secundarului să transmită în orice moment. Astfel, trebuie să existe un alt mecanism care să asigure faptul că mai multe secundare nu încearcă să transmită în același timp (sau doar un singur secundar).

Modul echilibrat asincron adaugă conceptul unui terminal combinat care poate acționa atât ca primar, cât și ca secundar. Din păcate, acest mod de funcționare are unele subtilități de implementare. În timp ce cele mai frecvente cadre trimise nu le pasă dacă se află într-un cadru de comandă sau de răspuns, unele esențiale o fac (în special cele mai multe cadre nenumerotate și orice cadru cu bitul P / F setat), iar câmpul de adresă al unui cadru primit trebuie să fie să fie examinat pentru a determina dacă conține o comandă (adresa primită este a noastră) sau un răspuns (adresa primită este cea a celuilalt terminal).

Aceasta înseamnă că câmpul de adresă nu este opțional, chiar și pe legăturile punct-la-punct în care nu este necesar pentru a dezambigua echivalentul cu care se vorbește. Unele variante HDLC extind câmpul de adresă pentru a include atât adresele sursă, cât și adresele de destinație sau un bit de comandă / răspuns explicit.

Operații HDLC și tipuri de cadre

Se pot distinge trei tipuri fundamentale de cadre HDLC:

  • Cadrele informaționale sau cadrele I transportă datele utilizatorului din stratul de rețea. Acestea pot include, de asemenea, informații de control al fluxului și al erorilor pe baza datelor.
  • Cadrele de supraveghere, sau cadrele S , sunt utilizate pentru controlul fluxului și erorilor ori de câte ori piggyback-ul este imposibil sau inadecvat, cum ar fi atunci când o stație nu are date de trimis. Cadrele S nu au câmpuri de informații.
  • Cadrele nenumerotate sau cadrele U sunt utilizate în diverse scopuri diverse, inclusiv gestionarea legăturilor. Unele cadre U conțin un câmp de informații, în funcție de tip.

Câmp de control

Formatul general al câmpului de control este:

Câmpuri de control HDLC
7 6 5 4 3 2 1 0
N (R)
Nr.
P / F N (S)
Trimite secvența nr.
0 I-cadru
N (R)
Nr.
P / F tip 0 1 Cadru S
tip P / F tip 1 1 Cadrul în U

Există, de asemenea, forme extinse (cu doi octeți) ale cadrelor I și S. Din nou, bitul cel mai puțin semnificativ (cel mai drept din acest tabel) este trimis mai întâi.

Câmpuri extinse de control HDLC
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
N (R)
Nr.
P / F N (S)
Trimite secvența nr.
0 Cadru I extins
N (R)
Nr.
P / F 0 0 0 0 tip 0 1 Cadru S extins

Bit P / F

Poll / Final este un singur bit cu două nume. Se numește Poll când face parte dintr-o comandă (setată de stația primară pentru a obține un răspuns de la o stație secundară) și Finală când este parte dintr-un răspuns (setată de stația secundară pentru a indica un răspuns sau sfârșitul transmisiei). În toate celelalte cazuri, bitul este clar.

Bitul este folosit ca un simbol care este transmis înainte și înapoi între stații. Doar un singur simbol ar trebui să existe odată. Secundarul trimite o finală numai atunci când a primit un sondaj de la primar. Primarul trimite un sondaj numai atunci când a primit o întoarcere finală de la secundar sau după un timeout care indică faptul că bitul a fost pierdut.

  • În NRM, deținerea jetonului de sondaj acordă și permisiunea secundară adresată pentru a transmite. Secundarul setează bitul F în ultimul său cadru de răspuns pentru a renunța la permisiunea de a transmite. (Este echivalent cu cuvântul „Peste” în procedura de voce radio .)
  • În ARM și ABM, bitul P forțează un răspuns. În aceste moduri, secundarul nu trebuie să aștepte transmiterea unui sondaj, astfel încât bitul final poate fi inclus în primul răspuns după sondaj.
  • Dacă nu se primește niciun răspuns la un bit P într-o perioadă rezonabilă de timp, stația primară expiră și trimite din nou P.
  • Bitul P / F se află în centrul schemei de retransmisie a punctelor de control necesare pentru implementarea HDLC; toate celelalte variante (cum ar fi cadrul REJ S) sunt opționale și servesc doar la creșterea eficienței. Ori de câte ori o stație primește un bit P / F, se poate presupune că orice cadru pe care l-a trimis înainte de a fi transmis ultima dată bitul P / F și care nu a fost încă recunoscut nu va ajunge niciodată, așa că ar trebui retransmis.

Când funcționați ca stație combinată, este important să păstrați distincția între biții P și F, deoarece pot exista două cicluri de puncte de control care funcționează simultan. Bitul AP care ajunge într-o comandă de la stația de la distanță nu răspunde la bitul nostru P; doar un bit F care ajunge într-un răspuns este.

N (R), numărul secvenței de recepție

Atât cadrele I, cât și cele S conțin un număr de secvență de recepție N (R). N (R) oferă o confirmare pozitivă pentru primirea cadrelor I din cealaltă parte a legăturii. Valoarea sa este întotdeauna primul cadru care nu a fost încă primit; recunoaște că toate cadrele cu valori N (S) până la N (R) -1 (modulul 8 sau modulul 128) au fost primite și indică N (S) al cadrului următor pe care se așteaptă să îl primească.

N (R) funcționează în același mod, fie că face parte dintr-o comandă sau un răspuns. O stație combinată are doar un spațiu numeric de secvență.

N (S), numărul secvenței cadrului trimis

Aceasta este incrementată pentru cadrele I succesive, modulul 8 sau modulul 128. În funcție de numărul de biți din numărul secvenței, până la 7 sau 127 cadre I pot aștepta confirmare în orice moment.

I-Frames (date utilizator)

Cadrele informaționale sau cadrele I transportă datele utilizatorului din stratul de rețea. În plus, acestea includ, de asemenea, informații de control al fluxului și erorilor, care se bazează pe date. Sub-câmpurile din câmpul de control definesc aceste funcții.

Bitul cel mai puțin semnificativ (primul transmis) definește tipul de cadru. 0 înseamnă un cadru I. Cu excepția interpretării câmpului P / F, nu există nicio diferență între un cadru I frame și un răspuns I frame; când P / F este 0, cele două forme sunt exact echivalente.

S-cadre (control)

Rame de supraveghere, sau „cadre S”, sunt utilizate pentru controlul fluxului și erorilor ori de câte ori piggyback-ul este imposibil sau inadecvat, cum ar fi atunci când o stație nu are date de trimis. S-cadrele din HDLC nu au câmpuri de informații, deși unele protocoale derivate din HDLC folosesc câmpuri de informații pentru „respingere multi-selectivă”.

Câmpul de control al cadrului S include un „10” principal care indică faptul că este un cadru S. Acesta este urmat de un tip pe 2 biți, un poll / bit final și un număr de secvență pe 3 biți. (Sau un câmp de umplere de 4 biți urmat de un număr de ordine de 7 biți.)

Primii 2 (mai puțin semnificativi) 2 biți înseamnă că este un cadru S. Toate cadrele S includ un bit P / F și un număr de secvență de recepție așa cum este descris mai sus. Cu excepția interpretării câmpului P / F, nu există nicio diferență între un cadru S de comandă și un cadru S de răspuns; când P / F este 0, cele două forme sunt exact echivalente.

Primiți gata (RR)

  • Valoarea bitului = 00 (0x00 pentru a se potrivi deasupra ordinii de biți de câmp de tip tabel)
  • Indicați că expeditorul este gata să primească mai multe date (anulează efectul unui RNR anterior).
  • Trimiteți acest pachet dacă trebuie să trimiteți un pachet, dar nu aveți un cadru I de trimis.
  • O stație primară poate trimite acest lucru cu setul de biți P pentru a solicita date de la o stație secundară.
  • Un terminal secundar îl poate utiliza cu setul de biți F pentru a răspunde la un sondaj dacă nu are date de trimis.

Nu primiți gata (RNR)

  • Valoare de biți = 10 (0x04 pentru a se potrivi deasupra ordinii de biți de câmp de tip tabel)
  • Recunoașteți unele pachete, dar solicitați să nu mai fie trimise până la o notificare ulterioară.
  • Poate fi folosit ca RR cu P bit setat pentru a solicita statutul unei stații secundare
  • Poate fi folosit ca RR cu F bit setat pentru a răspunde la un sondaj dacă stația este ocupată.

Respingere (REJ)

  • Valoare bit = 01 (0x08 pentru a se potrivi deasupra ordinii de biți de câmp tip tabel)
  • Solicită retransmisia imediată începând cu N (R).
  • Trimis ca răspuns la un decalaj de număr de secvență observat; de ex., după ce vedeți I1 / I2 / I3 / I5, trimiteți REJ4.
  • Opțional de generat; o implementare funcțională poate utiliza numai RR.

Respingere selectivă (SREJ)

  • Valoare de biți = 11 (0x0c pentru a se potrivi deasupra ordinii de biți de câmp de tip tabel)
  • Solicită retransmisia doar a cadrului N (R).
  • Nu este acceptat de toate variantele HDLC.
  • Opțional de generat; o implementare funcțională poate utiliza numai RR sau doar RR și REJ.

Rame U

Cadrele nenumerotate sau cadrele U sunt utilizate în principal pentru gestionarea legăturilor, deși câteva sunt utilizate pentru a transfera datele utilizatorului. Acestea schimbă informațiile de gestionare a sesiunii și de control între dispozitivele conectate, iar unele cadre U conțin un câmp de informații, utilizat pentru informații de gestionare a sistemului sau date de utilizator. Primii 2 biți (11) înseamnă că este un cadru U. Cele cinci biți de tip (2 înainte de bitul P / F și 3 biți după bitul P / F) pot crea 32 de tipuri diferite de cadre U. În câteva cazuri, aceeași codificare este utilizată pentru lucruri diferite ca comandă și răspuns.

Setarea modului

Diferitele moduri sunt descrise în § Configurări link . Pe scurt, există două moduri non-operaționale (modul de inițializare și modul deconectat) și trei moduri operaționale (răspuns normal, răspuns asincron și moduri asincrone echilibrate) cu numere de secvență de 3 biți sau 7 biți (extinsă).

Răspuns la modul deconectat (DM)
Când secundarul este deconectat (starea implicită la pornire), acesta trimite acest răspuns generic oricărui sondaj (cadru de comandă cu semnalizatorul de sondaj setat), cu excepția unei comenzi de setare a modului acceptabil. Poate, de asemenea, să ofere un răspuns FRMR la o comandă inacceptabilă de setare mod.
Răspuns fără confirmare (UA)
Acesta este răspunsul secundarului la o comandă de setare a modului acceptabilă, indicând că se află acum în modul solicitat.
Comanda Set ... mode (SNRM, SARM, SABM)
Plasați secundarul în modul specificat, cu numere de secvență pe 3 biți (câmp de control pe 1 octeți). Secundarul recunoaște cu UA. Dacă secundarul nu implementează modul, acesta răspunde cu DM sau FRMR.
Comanda Setați ... modul extins (SNRME, SARME, SABME)
Plasați secundarul în modul specificat, cu numere de ordine pe 7 biți (câmp de control pe 2 octeți).
Comanda Setare mod (SM)
Set de mod generic, nou în ISO / IEC 13239, utilizând un câmp de informații pentru a selecta parametrii. ISO / IEC 13239 a adăugat multe opțiuni suplimentare la HDLC, inclusiv numere de secvență de 15 și 31 de biți, care pot fi selectate numai cu această comandă.
Comanda Deconectare (DISC)
Această comandă face ca secundarul să confirme cu UA și să se deconecteze (intrați în modul deconectat). Toate cadrele neacceptate se pierd.
Solicitați răspunsul de deconectare (RD)
Acest răspuns solicită primarului să trimită o comandă DISC. Primarul ar trebui să facă acest lucru cu promptitudine, dar poate întârzia suficient de mult pentru a se asigura că toate cadrele în așteptare sunt confirmate.
Setați comanda pentru modul de inițializare (SIM)
Această comandă rar implementată este utilizată pentru a efectua unele inițializări specifice secundare, cum ar fi descărcarea firmware - ului . Ce se întâmplă în modul de inițializare nu este altfel specificat în standardul HDLC.
Solicitați răspunsul la modul de inițializare (RIM)
Aceasta solicită primarului să trimită SIM și să inițializeze secundar. A trimis în loc de DM dacă secundara necesită inițializare.

Transfer de informații

Aceste cadre pot fi utilizate ca parte a transferului normal de informații.

Informații fără număr (UI)
Acest cadru (comandă sau răspuns) comunică datele utilizatorului, dar fără confirmare sau retransmisie în caz de eroare.
UI cu verificarea antetului (UIH)
Acest cadru (comandă sau răspuns), o adăugare ISO / IEC 13239 și rar utilizat, este ca UI, dar exclude și protecția CRC. Numai un prefix de lungime configurabilă („header”) al cadrului este acoperit de polinomul CRC; erorile din restul cadrului nu sunt detectate.
Comandă de sondare fără număr (UP)
Această comandă solicită un răspuns de la secundar. Cu bitul de sondaj setat, acționează ca orice alt cadru de sondare, fără confirmarea care trebuie inclusă în cadrul I sau S. Cu bitul de sondaj clar, are o semnificație specială în modul de răspuns normal: secundarul poate răspunde, chiar dacă nu a primit bitul de sondaj. Acest lucru este rar utilizat în HDLC, dar a fost utilizat în IBM SDLC original ca înlocuitor al lipsei modului de răspuns asincron; în cazul în care canalul de comunicare ar putea gestiona răspunsuri simultane, primarul ar trimite periodic UP la adresa de difuzare pentru a colecta orice răspunsuri în așteptare.

Recuperare erori

Răspunsul la respingerea cadrelor (FRMR)
Răspunsul FRMR conține o descriere a cadrului inacceptabil, într-un format standardizat. Primii 1 sau 2 octeți sunt o copie a câmpului de control respins, următorul 1 sau 2 conțin numerele secvenței de trimitere și primire curente ale secundarei (și un semnalizator care indică faptul că cadrul a fost un răspuns, aplicabil numai în modul echilibrat), iar următorii 4 sau 5 biți sunt indicatori de eroare care indică motivul respingerii. Secundarul repetă același răspuns FRMR la fiecare sondaj până când eroarea este eliminată de o comandă de setare mod sau RSET. Semnalizatoarele de eroare sunt:
  • W: tipul de cadru (câmpul de control) nu este înțeles sau nu este implementat.
  • X: tipul de cadru nu este înțeles cu un câmp de informație care nu este gol, dar unul era prezent.
  • Y: cadrul a inclus un câmp de informații mai mare decât poate accepta secundarul.
  • Z: cadrul a inclus un număr de secvență de recepție N (R) nevalid, unul care nu se află între valoarea primită anterior și cel mai mare număr de secvență transmis. (Această eroare nu poate fi eliminată prin primirea RSET, dar poate fi eliminată prin trimiterea RSET.)
  • V: cadrul a inclus un număr de secvență de trimitere nevalid N (S), mai mare decât ultimul număr recunoscut plus dimensiunea ferestrei de transmisie. Această eroare este posibilă numai dacă a fost negociată o dimensiune a ferestrei de transmisie mai mică decât cea maximă.
  • Semnalizatoarele de eroare sunt în mod normal umplute cu 0 biți la o limită de 8 biți, dar HDLC permite cadrele care nu sunt multiple de un octet lung.
Comanda Reset (RSET)
Comanda RSET face ca o secundară să-și reseteze numărul de secvență de primire, astfel încât următorul cadru așteptat este numărul de secvență 0. Aceasta este o alternativă posibilă la trimiterea unei noi comenzi set de moduri, care resetează ambele numere de secvență. Este recunoscut cu UA, ca o comandă de setare a modului.

Descoperire de la egal la egal

Identificare schimb (XID)
O comandă XID include un câmp de informații care specifică capacitățile primarului; secundarul răspunde cu un răspuns XID specificându-i capacitățile. Acest lucru se face în mod normal înainte de a trimite o comandă set de moduri. Arhitectura rețelei sistemelor a definit un format pentru câmpul informațional, în care cel mai semnificativ bit al primului octet este clar (0), dar implementările HDLC implementează în mod normal varianta definită în ISO 8885, care are cel mai semnificativ bit din primul set de octeți (1).
TEST
O comandă TEST este pur și simplu o comandă ping în scopuri de depanare. Sarcina utilă a comenzii TEST este returnată în răspunsul TEST.

Definit în alte standarde

Există mai multe cadre U care nu fac parte din HDLC, dar sunt definite în alte standarde conexe.

Fără rezerve (NR0, NR1, NR2, NR3)
Comenzile și răspunsurile „fără rezerve” sunt garantate de standardul HDLC pentru a fi disponibile pentru alte utilizări.
Ack fără conexiune (AC0, AC1)
Acestea sunt definite în standardul de control al legăturilor logice IEEE 802.2 .
Configurați (CFGR)
Această comandă a fost definită în SDLC pentru depanare. Avea o sarcină utilă de 1 octet care specifica un mod de testare non-standard pentru secundar. Numerele pare au dezactivat modul, în timp ce numerele impare l-au activat. O sarcină utilă de 0 a dezactivat toate modurile de testare. Secundarul a recunoscut în mod normal o comandă de configurare repetând-o ca răspuns.
Răspunsul Beacon (BCN)
Acest răspuns a fost definit în SDLC pentru a indica o defecțiune a comunicațiilor. Un secundar care nu a primit deloc cadre pentru o lungă perioadă de timp ar începe să trimită un flux de răspunsuri de baliză, permițând localizarea unei defecțiuni unidirecționale. Rețineți că ISO / IEC 13239 atribuie UIH aceeași codificare ca BCN.

Configurații de legături

Configurațiile de linkuri pot fi clasificate ca fiind:

  • Dezechilibrat , care constă dintr-un terminal primar și unul sau mai multe terminale secundare.
  • Echilibrat , care constă din două terminale peer.

Cele trei configurații de legături sunt:

  • Modul de răspuns normal (NRM) este o configurație dezechilibrată în care numai terminalul primar poate iniția transferul de date. Terminalele secundare transmit date numai ca răspuns la comenzile de la terminalul primar. Terminalul primar sondează fiecare terminal secundar pentru a-i oferi posibilitatea de a transmite orice date pe care le are.
  • Modul de răspuns asincron (ARM) este o configurație dezechilibrată în care terminalele secundare pot transmite fără permisiunea terminalului primar. Cu toate acestea, există încă un terminal primar distinct care își păstrează responsabilitatea pentru inițializarea liniei, recuperarea erorilor și deconectarea logică.
  • Modul echilibrat asincron (ABM) este o configurație echilibrată în care oricare stație poate inițializa, supraveghea, recupera de la erori și trimite cadre în orice moment. Nu există o relație stăpân / sclav. DTE ( echipament terminal de date ) și DCE ( echipament de terminare a circuitului de date ) sunt tratate ca egali. Inițiatorul pentru modul echilibrat asincron trimite un SABM.

O configurație de legătură suplimentară este modul Deconectat . Acesta este modul în care se află o stație secundară înainte de a fi inițializată de primar sau când este deconectată explicit. În acest mod, secundarul răspunde la aproape fiecare cadru, altul decât o comandă set de moduri, cu un răspuns „Mod deconectat”. Scopul acestui mod este de a permite primarului să detecteze în mod fiabil o secundară care este oprită sau resetată în alt mod.

Repertoriu de comandă și răspuns HDLC

Setul minim necesar pentru funcționare este:

  • Comenzi: I, RR, RNR, DISC și una dintre SNRM, SARM sau SABM
  • Răspunsuri: I, RR, RNR, UA, DM, FRMR

Operațiuni de bază

  • Inițializarea poate fi solicitată de fiecare parte. Când primarul trimite una dintre cele șase comenzi de setare mod, acesta:
    • Semnalizează cealaltă parte că se solicită inițializarea
    • Specifică modul, NRM, ABM, ARM
    • Specifică dacă sunt utilizate numerele de ordine de 3 sau 7 biți.

Modulul HDLC de pe celălalt capăt transmite (UA) cadru atunci când cererea este acceptată. Dacă cererea este respinsă, acesta trimite (DM) cadru de mod deconectare.

Extensii funcționale (opțiuni)

  • Pentru circuite comutate
    • Comenzi: ADAUGĂ - XID
    • Răspunsuri: ADD - XID, RD
  • Pentru comenzi și răspunsuri simultane în două direcții sunt ADD - REJ
  • Pentru comenzi și răspunsuri de retransmisie cu un singur cadru: ADĂUGAȚI - SREJ
  • Pentru comenzi de informații și răspunsuri: ADD - Ul
  • Pentru inițializare
    • Comenzi: ADAUGĂ - SIM
    • Răspunsuri: ADAUGĂ - RIM
  • Pentru sondarea de grup
    • Comenzi: ADD - UP
  • Adresare extinsă
  • Ștergeți cadrele Răspuns I
  • Ștergeți cadrele Command I
  • Numerotare extinsă
  • Pentru resetarea modului (numai ABM) Comenzile sunt: ​​ADD - RSET
  • Comenzile și răspunsurile de testare a legăturilor de date sunt: ​​ADAUGĂ - TEST
  • Solicitați Deconectare. Răspunsurile sunt ADD - RD
  • FCS pe 32 de biți

Repertoriu de comandă și răspuns HDLC

Tipul cadrului Nume Comandă /
Răspuns
Descriere Informații Format C-Field
7 6 5 4 3 2 1 0
Informații (I) C / R Utilizarea datelor de schimb N (R) P / F N (S) 0
Supraveghere (S) Primiți gata (RR) C / R Recunoaștere pozitivă Gata pentru primirea cadrului I N (R) N (R) P / F 0 0 0 1
Nu primiți gata (RNR) C / R Recunoaștere pozitivă Nu sunt gata să primesc N (R) P / F 0 1 0 1
Respingere (REJ) C / R Recunoaștere negativă Retransmiteți începând cu N (R) N (R) P / F 1 0 0 1
Respingere selectivă (SREJ) C / R Recunoaștere negativă Retransmiteți numai N (R) N (R) P / F 1 1 0 1

Rame nenumerotate

Cadrele nenumerotate sunt identificate prin faptul că cei doi biți inferiori sunt 1. Cu steagul P / F, care lasă 5 biți ca tip de cadru. Chiar dacă sunt folosite mai puțin de 32 de valori, unele tipuri au semnificații diferite în funcție de direcția în care sunt trimise: ca comandă sau ca răspuns. Relația dintre comanda DISC (deconectare) și răspunsul RD (cerere deconectare) pare suficient de clară, dar motivul pentru care comanda SARM este egală numeric cu răspunsul DM este obscură.

Nume Comandă /
Răspuns
Descriere Informații Format C-Field
7 6 5 4 3 2 1 0
Setați modul de răspuns normal SNRM C Modul de setare Folosiți numărul de ordine de 3 biți 1 0 0 P 0 0 1 1
SNRM a extins SNRME C Modul de setare; extins Folosiți numărul de ordine de 7 biți 1 1 0 P 1 1 1 1
Setați modul de răspuns asincron SARM C Modul de setare Folosiți numărul de ordine de 3 biți 0 0 0 P 1 1 1 1
SARM a extins SARME C Modul de setare; extins Folosiți numărul de ordine de 7 biți 0 1 0 P 1 1 1 1
Setați modul echilibrat asincron SABM C Modul de setare Folosiți numărul de ordine de 3 biți 0 0 1 P 1 1 1 1
SABM a extins SABME C Modul de setare; extins Folosiți numărul de ordine de 7 biți 0 1 1 P 1 1 1 1
Setare mod SM C Mod set, generic Nou în ISO 13239 1 1 0 P 0 0 1 1
Setați modul de inițializare SIM C Inițializați funcția de control a legăturii în stația adresată 0 0 0 P 0 1 1 1
Solicitați modul de inițializare RIM R Este necesară inițializarea Cerere pentru comanda SIM 0 0 0 F 0 1 1 1
Deconectați DISC C Încheiați conexiunea de legătură logică Viitoarele cadre I și S returnează DM 0 1 0 P 0 0 1 1
Cerere de deconectare RD R Solicitare pentru comanda DISC 0 1 0 F 0 0 1 1
Confirmare fără număr UA R Recunoașteți acceptarea uneia dintre comenzile set-mode. 0 1 1 F 0 0 1 1
Deconectați modul DM R Răspuns în modul deconectat Mod set necesar 0 0 0 F 1 1 1 1
UI pentru informații fără număr C / R Date neacceptate Are o sarcină utilă 0 0 0 P / F 0 0 1 1
UI cu verificarea antetului UIH C / R Date neacceptate Nou în ISO 13239 1 1 1 P / F 1 1 1 1
Sondaj fără număr SUS C Folosit pentru a solicita informații de control 0 0 1 P 0 0 1 1
Resetați RSET C Folosit pentru recuperare Resetează N (R), dar nu N (S) 1 0 0 P 1 1 1 1
Schimb de identificare XID C / R Folosit pentru a solicita / raporta capacități 1 0 1 P / F 1 1 1 1
Test TEST C / R Schimbați câmpuri de informații identice pentru testare 1 1 1 P / F 0 0 1 1
Frame respinge FRMR R Raportați primirea cadrului inacceptabil 1 0 0 F 0 1 1 1
Nerezervat 0 NR0 C / R Nu este standardizat Pentru utilizare în aplicație 0 0 0 P / F 1 0 1 1
Nerezervat 1 NR1 C / R Nu este standardizat Pentru utilizare în aplicație 1 0 0 P / F 1 0 1 1
2 NR2 fără rezerve C / R Nu este standardizat Pentru utilizare în aplicație 0 1 0 P / F 1 0 1 1
3 NR3 fără rezerve C / R Nu este standardizat Pentru utilizare în aplicație 1 1 0 P / F 1 0 1 1
Ack fără conexiune, sec. 0 AC0 C / R Nu face parte din HDLC Extensia IEEE 802.2 LLC 0 1 1 P / F 0 1 1 1
Ack fără conexiune, sec. 1 AC1 C / R Nu face parte din HDLC Extensia IEEE 802.2 LLC 1 1 1 P / F 0 1 1 1
Configurați pentru testarea CFGR C / R Nu face parte din HDLC A făcut parte din SDLC 1 1 0 P / F 0 1 1 1
Beacon BCN R Nu face parte din HDLC A făcut parte din SDLC 1 1 1 F 1 1 1 1
Cadre HDLC U, prin codificare binară
Format C-Field Comanda Raspuns Format C-Field Comanda Raspuns
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
1 1 0 0 P / F 0 0 0 UI 1 1 1 0 P / F 0 1 0 (nefolosit)
1 1 0 0 P / F 0 0 1 SNRM 1 1 1 0 P / F 0 1 1 CFGR
1 1 0 0 P / F 0 1 0 DISC RD 1 1 1 0 P / F 1 0 X (nefolosit)
1 1 0 0 P / F 0 1 1 SM 1 1 1 0 P / F 1 1 X AC0 – AC1
1 1 0 0 P / F 1 0 0 SUS 1 1 1 1 P / F 0 0 0 SARM DM
1 1 0 0 P / F 1 0 1 (nefolosit) 1 1 1 1 P / F 0 0 1 RSET
1 1 0 0 P / F 1 1 0 UA 1 1 1 1 P / F 0 1 0 SARME
1 1 0 0 P / F 1 1 1 TEST 1 1 1 1 P / F 0 1 1 SNRME
1 1 0 1 P / F 0 X X NR0 – NR3 1 1 1 1 P / F 1 0 0 SABM
1 1 0 1 P / F 1 X X (nefolosit) 1 1 1 1 P / F 1 0 1 XID
1 1 1 0 P / F 0 0 0 SIM RIM 1 1 1 1 P / F 1 1 0 SABME
1 1 1 0 P / F 0 0 1 FRMR 1 1 1 1 P / F 1 1 1 UIH
BCN
* ^ ^ Adăugare ISO / IEC 13239
^ ^ ^ Nu face parte din HDLC

Cadrele UI, UIH, XID, TEST conțin o sarcină utilă și pot fi utilizate atât ca comenzi, cât și ca răspunsuri. Comanda SM și răspunsul FRMR conțin, de asemenea, o sarcină utilă.

  • Un cadru UI conține informații despre utilizatori, dar, spre deosebire de un cadru I, acesta nu este recunoscut și nici retransmis dacă este pierdut.
  • Un cadru UIH (o adăugare ISO / IEC 13239) este ca un cadru UI, dar aplică în plus secvența de verificare a cadrelor doar la un prefix cu lungimea specificată a cadrului; erorile de transmisie după acest prefix nu sunt detectate.
  • Cadrul XID este utilizat pentru a schimba capacitățile terminalului. Arhitectura de rețea a sistemelor a definit un format, dar varianta definită în ISO 8885 este mai frecvent utilizată. Un primar își promovează capacitățile cu o comandă XID, iar un secundar își returnează propriile capacități într-un răspuns XID.
  • Cadrul TEST este pur și simplu o comandă ping în scopuri de depanare. Sarcina utilă a comenzii TEST este returnată în răspunsul TEST.
  • Comanda SM (o adăugare ISO / IEC 13239) este o comandă generică „setare mod” care include un câmp de informații (în același format ISO 8885 ca XID) care specifică parametrii. Aceasta permite negocierea valorilor parametrilor (cum ar fi numerele de secvență de 15 și 31 de biți) și parametrii precum dimensiunile ferestrelor și dimensiunile maxime ale cadrului care nu pot fi exprimate de comenzile standard de șase moduri.
  • Răspunsul FRMR conține o descriere a cadrului inacceptabil, într-un format standardizat. Primii 1 sau 2 octeți sunt o copie a câmpului de control respins, următorii 1 sau 2 conțin numerele secvenței de trimitere și primire curente ale secundarei, iar următorii 4 sau 5 biți sunt semnalizatori de eroare care indică motivul respingerii.

Vezi si

Note

Referințe

  • Prieten, George E .; Fike, John L .; Baker, H. Charles; Bellamy, John C. (1988). Înțelegerea comunicațiilor de date (ediția a II-a). Indianapolis: Howard W. Sams & Company. ISBN 0-672-27270-9.
  • Stallings, William (2004). Comunicații de date și computer (ediția a VII-a). Upper Saddle River: Pearson / Prentice Hall. ISBN 978-0-13-100681-2.
  • S. Tanenbaum, Andrew (2005). Rețele de calculatoare (ediția a IV-a). 482, FIE, Patparganj, Delhi 110 092: Dorling Kindersley (India) Pvt. Ltd., licențe Pearson Education în Asia de Sud. ISBN 81-7758-165-1.CS1 maint: locație ( link )

linkuri externe