Stratul de legătură de date

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Stratul de legătură de date (sau stratul de legătură de date ) este al doilea strat al arhitecturii rețelei bazat pe modelul ISO / OSI pentru interconectarea sistemelor deschise. Acest strat de transmisie primește pachete de date din stratul de rețea și formează cadrele care sunt transmise stratului fizic subiacent cu scopul de a permite transferul fiabil de date prin canalul subiacent.

Descriere

În stiva IP, în unele cazuri, stratul de legătură de date constă în utilizarea unei rețele construite cu un alt protocol pentru transportul pachetelor IP. Acest lucru se întâmplă de exemplu cu X.25 , Frame Relay , Asynchronous Transfer Mode . Câteva exemple de protocoale de straturi de legătură de date sunt:

Poate fi sau nu de încredere - multe protocoale de legătură de date nu folosesc confirmări, iar unele nu pot verifica nici măcar erori de transmisie. În acest caz, nivelurile superioare trebuie să efectueze controlul debitului , controlul erorilor și să gestioneze confirmările (și retransmisiile aferente).

În unele rețele, cum ar fi rețelele LAN IEEE 802 , acest strat este împărțit în sub-straturile MAC și LLC . Acesta din urmă este comun tuturor straturilor MAC, cum ar fi token ring și IEEE 802.11, dar și straturilor MAC care nu fac parte din standardul 802, cum ar fi FDDI .

Funcționalitate

Prin urmare, stratul de legătură de date trebuie să îndeplinească mai multe funcții specifice:

  • În faza de transmisie , grupează biții care provin din stratul superior și sunt destinați stratului fizic în pachete numite cadre ( încadrare );
  • În faza de recepție, verifică și gestionează erorile de transmisie ( controlul erorilor );
  • Reglează fluxul de transmisie între sursă și receptor ( controlul debitului ).
  • În faza de transmisie, o anumită formă de acces multiplu / multiplexare funcționează pentru accesul partajat între mai mulți utilizatori la canalul fizic care evită coliziunile dintre pachete și interferențele la recepție sau pe canal.

Toate acestea fac posibilă apariția mediului fizic în recepție, la nivelul superior, ca o linie de transmisie fără erori. [1] [2]

Subnivelul LLC

Subnivelul superior este Controlul legăturilor logice (LLC) și poate oferi servicii de control al fluxului, confirmare, detectare (sau corectare) a erorilor. Protocoalele PPP și HDLC fac parte din acest subnivel.

Protocoalele LLC la nivel de sub-care furnizează confirmarea de primire a datelor sau serviciul de garanție trebuie să includă recunoaștem sau ACK mesaje. Expeditorul poate aștepta ca fiecare mesaj să fie confirmat înainte de a transmite următorul sau poate continua să transmită până la atingerea unui număr maxim de mesaje care nu au fost încă confirmate de receptor, în așa-numitele protocoale cu ferestre .

În protocoalele cu fiecare pachet de ferestre transmis este identificat cu un număr progresiv în fereastră, numitul de secvență menționat (numărul de secvență); mesajele de confirmare trebuie să raporteze numărul de ordine al pachetului pe care îl întâlnesc.

Mesajele de confirmare pot fi cumulative („pachete primite până la N”), sau necesită retransmisie cumulativă („retransmite pachete până la N”) sau selective numai pentru pachetele care nu au fost recepționate corect. În unele cazuri, confirmarea mesajelor primite utilizează un mesaj dedicat, în alte cazuri confirmarea este inserată în câmpuri specifice ale mesajelor transmise în direcția opusă ( piggyback ), scăzând latențele de retransmisie.

Subnivelul MAC

Sub-nivelul inferior este Control acces media sau Control acces mediu . Scopul său este de a reglementa accesul multiplu al mai multor noduri la un canal de comunicație partajat, evitând sau gestionând apariția coliziunilor. O coliziune apare atunci când două sau mai multe noduri transmit simultan date pe canalul partajat. Acest lucru duce la pierderea inevitabilă a datelor transmise cu pierderea consecventă a lățimii de bandă .

Există mai mulți algoritmi și protocoale standard pentru controlul accesului multiplu. De exemplu, IEEE 802.3 MAC adoptă algoritmul CSMA / CD în timp ce IEEE 802.11 MAC se bazează pe algoritmul CSMA / CA. Primul este adoptat în mod obișnuit în rețele LAN cu fir , acesta din urmă în WLAN .

Există două tipuri principale de algoritmi de acces multiplu: aleatoriu și ordonat. În caz de acces multiplu aleatoriu, pot apărea coliziuni, dar sunt implementate mecanisme adecvate pentru a reduce probabilitatea apariției lor și pentru a retransmite cadrele colizionate. Pe de altă parte, în cazul accesului ordonat, apariția unei coliziuni este complet imposibilă, deoarece nodurile urmează o ordine precisă de acces la canal (stabilită în faza de inițializare a rețelei), ceea ce le face să fie utilizatori exclusivi ai mediului de transmisie (cu excepția cazului în care sunt defecțiuni). sau defecțiuni).

Mai mult, la nivelul MAC, este definit formatul cadrului, care va conține în mod obișnuit câmpurile de început / sfârșit, câmpurile de adresă MAC expeditor / destinatar, pachetul încapsulat la nivel LLC, codul de detectare a erorilor (FEC) și opțional octetii de umplere la asigurați-vă că dimensiunea cadrului nu scade sub un prag minim.

Interfețe

Stratul de legătură de date este adesea implementat ca un driver de placă de rețea . Sistemul de operare va avea unele interfețe software între acest strat și nivelul superior (de rețea). Această interfață nu este un strat, ci mai mult un standard pentru comunicarea între straturi. Cateva exemple:

Funcționalitate de substrat LLC

Transmisie sincronă și asincronă

Transmiterea în serie poate avea loc sincron sau asincron .

În transmisia asincronă, fiecare caracter transmis este precedat și urmat de semnale care indică începutul și sfârșitul caracterului; aceste semnale se numesc semnale de pornire și oprire. Transmisia asincronă este, prin urmare, numită și transmisie start-stop. Cu această metodă, fiecare caracter poate fi considerat independent de celelalte, intervalul de timp dintre trimiterea a două caractere este nespecificat.

În transmisia sincronă, caracterele de trimis sunt grupate în mesaje ( cadre ). Fiecare cadru este precedat de caractere de sincronizare care sunt utilizate pentru a face stația de recepție să se sincronizeze cu viteza de transmisie a stației care trimite mesajul. Transmiterea sincronă este mai rapidă, deoarece timpul de expediere al transmisiei este redus, dar o eroare chiar și într-un singur bit poate deteriora întregul mesaj trimis. Protocoalele de transmisie sincronă sunt împărțite în BCP ( Byte Control Protocol ) sau orientat pe octeți, în care se menține subdiviziunea în caractere a mesajului care urmează să fie transmis și BOP ( Bit Oriented Protocol ) sau orientat pe biți, în care mesajele sunt văzut ca o succesiune de biți (în acest fel nu sunteți legat de codificarea ASCII pe 8 biți).

O operațiune importantă în transmisia sincronă este încadrarea , adică împărțirea în cadre a informațiilor de transmis.

Încadrarea

Termenul încadrare se referă la următoarele operații:

  • Incapsularea datelor cu un antet și o posibilă coadă (trailer).
  • Interpretarea biților prezenți în anteturi (și eventual în cozi).

Pentru a furniza servicii la nivelul rețelei, stratul de legătură de date trebuie să profite de serviciile oferite de acesta la nivelul fizic. Abordarea obișnuită a stratului de legătură de date este de a împărți fluxul de biți în pachete (adaptate exact la o transmisie pe o rețea de pachete ) și de a calcula suma de verificare . Sunt folosite diverse metode pentru împărțirea biților în pachete sau cadre:

  • Numărul de caractere.
  • Începeți și terminați personajele.
  • Începeți și terminați steagurile.

Metoda numărării caracterelor (obținută prin specificarea numărului de caractere al cadrului în câmpul antetului pachetului) este rareori utilizabilă deoarece, dacă câmpul care conține numărul de caractere este deteriorat (modificat) în timpul transmisiei, nu mai poate fi utilizat. de unde începe următorul cadru; celelalte tehnici sunt apoi utilizate.

În transmisia orientată pe octeți (cadrul reține subdiviziunea în octeți) cadrul este precedat de secvența de caractere ASCII DLE STX ( Data Link Escape Start of TeXt ) și se termină cu secvența DLE ETX ( Data Link Escape End of TeXt ). Dacă un cadru eșuează și destinația pierde sincronizarea, găsiți următorul DLE STX sau DLE ETX. Cu toate acestea, caracterul DLE poate apărea aleatoriu în interiorul cadrului atunci când sunt transmise date binare, cum ar fi programe de obiecte sau numere în virgulă mobilă; pentru ca aceste caractere să nu interfereze, se adaugă un DLE suplimentar (care este eliminat la destinație înainte de a trece cadrul la nivelul rețelei), astfel încât numai DLE-urile unice să fie interpretate ca delimitatori; această tehnică se numește umplutura de caractere .

În transmisia orientată pe biți (cadrul poate conține orice număr de octeți) fiecare cadru începe și se termină cu secvența 01111110 denumită steag: această secvență poate apărea aleator în date, prin urmare în transmisie după cinci 1s consecutive, un 0 este întotdeauna inserat în flux de biți, indiferent dacă bitul următor este 1 sau 0, în timp ce la recepție este necesar să se elimine biții introduși, eliminând întotdeauna un 0 după cinci 1s; această tehnică se numește bit stuffing .

Verificare eroare

După cum sa menționat, stația de trimitere a stratului de legătură de date primește datele din stratul superior și le împarte în cadre înainte de a le încredința stratului fizic pentru transmisie pe canal, adăugându-i un cod pentru controlul erorilor de transmisie ( date integritate ) .în recepție ( suma de control ).

Când un pachet ajunge la destinație, suma de control este recalculată din același strat de legătură de date ca și sistemul de recepție. Dacă rezultatul este diferit de cel conținut în pachet, stratul de legătură de date recunoaște că a fost comisă o eroare și ia măsurile adecvate (cum ar fi aruncarea pachetului și trimiterea unui mesaj de eroare ca răspuns la expeditor).

În general, există două tipuri de coduri de control , codurile detectorului care vă permit doar să înțelegeți că cadrul nu este corect și eventual să solicite retransmiterea pachetului ( ARQ Automatic Repeat-reQuest ) și codurile de corecție care permit nu numai să înțelegeți dacă a apărut o eroare, dar și pentru a identifica locația erorii și a o corecta în consecință ( FEC Forward Error Correction ). Aceste coduri din urmă necesită mult mai mulți biți decât codurile detectorului și, prin urmare, lățimea de bandă uzată; de aceea se folosesc de obicei coduri numai de detectare.

În cazul unei erori, dacă serviciul nu este de încredere, cadrul poate fi pur și simplu aruncat; dacă linia trebuie să fie fiabilă, toate cadrele trebuie să ajungă corect; dacă se utilizează un cod detector, receptorul trebuie să solicite retransmiterea cadrelor greșite.

Alegerea între codurile detector și corector poate depinde, de asemenea, de viteza liniilor (pentru liniile cu viteză redusă, așteptarea retransmisiei poate dura prea mult) sau de fiabilitate (dacă rata de eroare pe linie este foarte mică, nu merită să pierdeți mult de lățime de bandă pentru un cod corector) sau tipul de serviciu solicitat (în timp real sau nu).

Modul obișnuit de a asigura livrarea fiabilă este de a oferi expeditorului feedback despre ceea ce se întâmplă la celălalt capăt al liniei. De obicei, protocolul necesită ca receptorul să trimită înapoi unele pachete de control speciale cu o valoare pozitivă sau negativă în funcție de pachetele primite. Dacă expeditorul primește un răspuns pozitiv pe un pachet livrat, știu că acesta a sosit corect. Dacă, pe de altă parte, primește un răspuns negativ, înseamnă că ceva nu a mers bine și că pachetul trebuie retransmis.

O complicație suplimentară ar putea veni din posibilitatea ca problemele hardware să provoace dispariția totală a pachetului. Dacă un pachet nu ajunge la destinație, expeditorul nu va aștepta la nesfârșit, de fapt se folosește un temporizator, care este pornit la transmiterea datelor, dacă temporizatorul depășește pragul limită (programat) fără a primi ACK ( Confirmare sau confirmare), va retrimite pachetele. Cu toate acestea, dacă pachetul sau mesajul de confirmare se pierd, temporizatorul expiră ( time-out ), iar stația de trimitere, care nu primește confirmarea, este forțată să retransmită datele, dar în acest moment expeditorul ar putea primi de două sau mai multe ori. același pachet. Pentru a rezolva această problemă, pachetele trimise sunt numerotate, astfel încât sistemul de recepție, în cazul în care primește un număr de pachete egal cu cel anterior, adică o copie a pachetului, îl aruncă. Această tehnică este cunoscută sub numele de Stop and wait ; celelalte tehnici utilizate cel mai frecvent pentru controlul erorilor sunt Codul Hamming și CRC ( Cyclic Redundancy Control ). De fapt, cu toate acestea, funcțiile de control al erorilor pe pachete individuale sunt efectuate nu numai la nivelul legăturii de date, ci în orice alt strat al protocolului pentru a garanta corectitudinea datelor de serviciu ( antet ) a protocoalelor destinate straturilor respective.

Controlul debitului

O altă problemă importantă de proiectare care se găsește în stratul de legătură de date este aceea de a gestiona o linie partajată atunci când mai multe noduri doresc să trimită mesaje în același timp și, de asemenea, trebuie să decidă ce să facă cu un expeditor care tinde sistematic să transmită pachetele mai repede decât destinatarul le poate accepta. Această situație poate fi ușor întâlnită atunci când expeditorul este situat pe o mașină rapidă și receptorul pe o mașină lentă. Expeditorul continuă să trimită pachete cu viteză mare, până când receptorul este complet copleșit. Chiar dacă transmisia nu are erori, la un moment dat receptorul nu va putea gestiona pachetele primite și va începe să le piardă ( buffer overflow ).

Soluția tipică este introducerea unui control al fluxului pentru a forța expeditorul să respecte viteza receptorului în trimiterea pachetelor. Această impunere necesită de obicei un anumit tip de mecanism de feedback (feedback), astfel încât expeditorul să poată fi notificat dacă destinatarul este capabil să primească sau mai puțin.

Dacă, pe de altă parte, mai multe noduri vor să trimită mesaje în același timp, controlul centralizat tinde să fie introdus, creându-se un singur nod de control, responsabil pentru determinarea cine primește prioritate în rețea; următorul nod va verifica atunci când rețeaua nu mai este ocupată, astfel încât să poată trimite mesajul imediat ce devine liber. Cu toate acestea, se poate întâmpla ca mai multe noduri să monitorizeze rețeaua și ca imediat ce aceasta este gratuită, să trimită imediat mesaje, în acest caz vor apărea probleme de coliziune; pentru a depăși această problemă, nodurile care monitorizează rețeaua vor fi reglementate printr-un protocol de acces multiplu , așteptând, de exemplu, un timp aleatoriu înainte de a trimite mesajele, deoarece este puțin probabil ca nodurile să aleagă același moment pentru a trimite datele.

Funcționalitate sub-strat MAC

Pictogramă lupă mgx2.svg Același subiect în detaliu: nivel MAC .

În telecomunicații , în contextul rețelelor de calculatoare , MAC ( acronim pentru Control acces mediu sau Control acces media ) este un sub-nivel al modelului arhitectural standardizat ISO / OSI , definit în standardul IEEE 802 , care conține funcții pentru controlul accesului la suport fizic pentru canalele de difuzare , funcționalitatea încadrării și verificarea erorilor .

Face parte din nivelul de legătură de date , din care reprezintă sub-nivelul inferior depășit de sub-nivelul LLC și limitat mai jos de nivelul fizic . Diferitele caracteristici ale acestui strat sunt descrise începând cu a treia parte a standardului. Acesta este nivelul în care se află adresa MAC sau adresa fizică a computerului. Acest strat are în principal două funcții, aceea de încapsulare a datelor și cea de acces la mediu.

Prima funcție se referă la încapsularea cadrelor înainte de transmiterea lor și decapsularea la recepția lor; de asemenea, se ocupă cu detectarea erorilor de transmisie și delimitarea cadrului pentru a facilita sincronizarea între emițător și receptor. A doua funcție controlează accesul la mass-media , comunicând direct cu stratul fizic.

Notă

  1. ^ (EN) Data Link Layer Definition , pe linfo.org. Adus la 13 mai 2012 .
  2. ^ (RO) Bradley Mitchell, Prezentare generală a rețelelor vizuale - Modelul OSI - Data Link Layer pe compnetworking.about.com, about.com. Adus la 13 mai 2012 .

Bibliografie

  • A. Tanenbaum, Rețele de calculatoare .
  • Fabrizia Scorzoni, Rețele și protocoale .

Elemente conexe

Alte proiecte

linkuri externe

Telematică Portal telematic : accesați intrări Wikipedia care vorbesc despre rețele, telecomunicații și protocoale de rețea