CURSUL 03

Nivelul legătură de date

Durată: 117 min de predare Nivel: licență, anul III - fără cunoștințe prealabile Disciplină: Rețele Locale Laborator asociat: Laboratorul 02 PDF: descarcă suportul EN English version

Nivelul fizic mută biți, dar nu știe cui. Nivelul legătură de date rezolvă exact această lipsă: împachetează biții în cadre, dă fiecărei interfețe un nume unic pe lume, stabilește cine are voie să vorbească pe un mediu partajat și - prin switch - construiește singur harta rețelei locale, fără ca nimeni să îi spună nimic.

1Recapitulare5 min

Ce trebuie să aveți în minte
  • Nivelul 1, fizic transformă biți în semnal: tensiuni, lumină sau unde radio.
  • Mediul poate fi ghidat (cupru, fibră) sau neghidat (radio). Un mediu partajat înseamnă că mai mulți vorbesc pe același suport.
  • Fiecare nivel adaugă propriul antet - proces numit încapsulare.
  • Cursul acesta urcă la nivelul 2: adrese MAC, cadre, comutare.

Rezultate ale învățării

  • Să explicați rolul nivelului 2 și separarea lui în subnivelurile LLC și MAC
  • Să citiți un cadru Ethernet câmp cu câmp și să spuneți la ce folosește fiecare
  • Să recunoașteți o adresă MAC unicast, multicast sau broadcast
  • Să explicați CSMA/CD și să spuneți de ce a dispărut din rețelele moderne
  • Să numărați corect domeniile de coliziune și de broadcast dintr-o topologie
  • Să descrieți cele trei acțiuni ale unui switch: învățare, comutare, inundare
  • Să comparați metodele de comutare store-and-forward și cut-through

2Ce îi lipsește nivelului fizic7 min

Nivelul fizic gestionează un flux de biți. Atât. Are trei lipsuri importante, iar nivelul 2 există exact ca să le compenseze:

Nivelul fizic nu poate...Nivelul legătură de date...
să identifice stațiile de pe mediule identifică prin adresare
să spună unde începe și unde se termină un mesajorganizează fluxul în cadre
să comunice direct cu software-uloferă un serviciu clar nivelului 3
De ce e nevoie de „cadre"

Imaginați-vă că primiți un șir nesfârșit de litere, fără spații și fără semne de punctuație. Ca să înțelegeți ceva, trebuie să știți unde se termină un cuvânt și unde începe altul.

Un cadru (în engleză frame) face exact asta pentru biți: îi grupează într-un pachet cu început clar, sfârșit clar, adresa destinatarului și o sumă de control care spune dacă a ajuns întreg.

3Cele două subniveluri: LLC și MAC7 min

Nivelul 2 stă exact la granița dintre hardware și software, așa că a fost împărțit în două subniveluri, fiecare privind în altă direcție.

Nivelul 3 - Rețea (IPv4, IPv6) LLC - Logical Link Control privește în sus, spre software · IEEE 802.2 MAC - Media Access Control privește în jos, spre mediu · 802.3, 802.11 Nivelul 1 - Fizic (cupru, fibră, radio) nivelul 2 Aceeași împărțire se regăsește și la Wi-Fi, cu alt subnivel MAC.
Fig. 1 - Nivelul 2, văzut din interior. LLC este independent de mediu; MAC depinde complet de el.
SubnivelCu cine vorbeșteCe faceStandard
LLCcu software-ul (nivelul 3)multiplexează protocoalele de nivel superior, oferă control de flux; nu îl interesează mediulIEEE 802.2
MACcu mediul (nivelul 1)construiește cadrul, decide cine transmite și când; depinde complet de tehnologie802.3, 802.11, FDDI
De ce împărțirea asta contează Datorită subnivelului LLC, același pachet IP circulă neschimbat peste Ethernet, peste Wi-Fi sau peste PPP. Schimbarea mediului cere doar înlocuirea subnivelului MAC - restul stivei nu află nimic.

Este exact separarea care permite unui laptop să treacă de pe cablu pe Wi-Fi fără ca vreo aplicație deschisă să observe.

4Încapsularea la nivelul 27 min

Ca datele să ajungă la destinatarul potrivit e nevoie de informație suplimentară, iar aceasta este adăugată de nivelul 2 și organizată în cadre. Majoritatea protocoalelor de nivel 2 - nu doar Ethernet - folosesc același set de câmpuri:

CâmpLa ce folosește
Start cadruo secvență de biți care anunță începutul; fără ea receptorul nu ar ști de unde să înceapă să numere
Adreseadresele MAC ale sursei și destinației
Tip / lungimece protocol de nivel 3 este încapsulat, sau lungimea datelor
Datemesajul propriu-zis, adică tot ce a construit nivelul 3
CRC / FCSo sumă de control care permite detectarea erorilor de transmisie
Aplicație date Transport TCP date Rețea IP TCP date Legătură Ethernet IP TCP date FCS Fizic 1011010100010010001110101010010011010101101000111010101… Fiecare nivel privește ce vine de sus ca pe date opace și adaugă doar antetul lui.
Fig. 2 - Încapsularea, văzută de sus în jos. Observați că nivelul 2 este singurul care adaugă ceva și la sfârșitul mesajului: suma de control.

Alte protocoale de nivel 2, pe care le veți întâlni în WAN-uri: PPP, Frame Relay, ATM, iar istoric Token Ring. Toate rezolvă aceleași probleme, cu alte compromisuri.

5Cadrul Ethernet, câmp cu câmp12 min

Structura cadrului este aproape identică pentru toate implementările Ethernet, de la 10 Mbps la 100 Gbps. Aceasta e o realizare remarcabilă de inginerie: viteza a crescut de zece mii de ori, iar formatul a rămas.

Apăsați pe fiecare câmp al cadrului Ethernet
Ce e un CRC, pe scurt

Cyclic Redundancy Check este un fel de „amprentă" a mesajului: emițătorul o calculează printr-o operație matematică peste toți biții și o atașează la sfârșit. Receptorul recalculează aceeași amprentă și compară.

Dacă valorile diferă, ceva s-a stricat pe drum. CRC-ul nu spune ce s-a stricat și nu poate repara - doar ridică mâna. E o alegere deliberată: detectarea e ieftină, corectarea ar fi scumpă, iar la rata de eroare a unui cablu modern e mai eficient să retransmiți întregul cadru.

MTU: cifra care revine tot semestrul MTU (Maximum Transmission Unit) este dimensiunea maximă a încărcăturii utile - 1500 de octeți la Ethernet clasic. Un pachet IP mai mare trebuie fragmentat sau respins.

Veți întâlni MTU-ul din nou la tunelare (cursul 9), unde antetul suplimentar micșorează spațiul disponibil, și la OSPF (cursul 10), unde un MTU nepotrivit între două rutere blochează adiacența într-o stare pe care altfel nu ați putea-o explica.

6Adresa MAC10 min

Ethernet identifică fiecare interfață printr-o adresă de 48 de biți, scrisă în hexazecimal. Este scrisă în memoria ROM a plăcii de rețea, din fabrică.

00 FC 42 3E 34 99 OUI - producătorul (24 biți) identificator de interfață (24 biți) 48 de biți în total, reprezentați hexazecimal
Fig. 3 - Structura unei adrese MAC. Primii 24 de biți formează OUI-ul, atribuit de IEEE producătorului; ultimii 24 sunt aleși de producător, de regulă în ordine de fabricație.
De ce sunt unice pe toată planeta

IEEE vinde blocuri de 24 de biți (OUI - Organizationally Unique Identifier) producătorilor de echipamente. Fiecare producător primește un prefix propriu și îl completează singur cu ce dorește, atât timp cât nu repetă.

Rezultatul: 248 ≈ 281 de mii de miliarde de adrese posibile, împărțite administrativ, fără nicio autoritate care să verifice fiecare placă în parte. Sistemul funcționează pentru că fiecare producător are interesul să nu producă două plăci identice.

Ca observație practică: din primii trei octeți ai unei adrese MAC puteți afla producătorul. Există baze de date publice pentru asta, iar la depanare este surprinzător de util.

Adresa MAC are două proprietăți esențiale, ambele cu consecințe directe asupra a ceea ce urmează în curs:

  1. Este plată - nu conține nicio ierarhie. Din adresa 00:FC:42:3E:34:99 nu se poate deduce absolut nimic despre locul unde se află acea placă.
  2. Are domeniu local - este vizibilă și utilizabilă doar în interiorul domeniului de broadcast. Dincolo de primul ruter, nimeni nu o mai vede.
Consecința Un ruter care ar trebui să dirijeze trafic după adrese MAC ar avea nevoie de o intrare separată pentru fiecare interfață din lume - fără nicio posibilitate de grupare, pentru că adresele nu sunt organizate geografic. Tabela nu ar încăpea nicăieri și nu ar putea fi întreținută de nimeni.

Exact aceste două proprietăți fac necesar nivelul 3, subiectul cursului 5.

Cele trei tipuri de adrese

TipCum se recunoașteExempluCine o acceptă
Unicastprimul octet par (bitul cel mai puțin semnificativ = 0)00:10:A7:22:FE:63o singură interfață
Multicastprimul octet impar (bitul cel mai puțin semnificativ = 1)01:00:5E:00:A1:11stațiile abonate acelui grup
Broadcasttoți cei 48 de biți pe 1FF:FF:FF:FF:FF:FFtoate stațiile din domeniu
Exercițiu rapid

Care dintre următoarele adrese sunt multicast? 02:00:00:00:00:01, 01:80:C2:00:00:00, 33:33:00:00:00:01, FF:FF:FF:FF:FF:FF

Vezi răspunsul

02 = 00000010 - ultimul bit este 0, deci unicast. (Bitul următor, pe 1, înseamnă „administrată local", adică setată de software, nu din fabrică.)

01 = 00000001 - ultimul bit este 1, deci multicast. Această adresă anume, 01:80:C2:00:00:00, este cea pe care circulă mesajele Spanning Tree din cursul 4.

33 = 00110011 - ultimul bit este 1, deci multicast. Prefixul 33:33 este rezervat pentru multicast IPv6.

FF:FF:FF:FF:FF:FF este broadcast - tehnic, un caz particular de multicast, în care grupul este „toată lumea".

7Timpii caracteristici ai unei rețele Ethernet7 min

Trei mărimi de timp explică aproape toate valorile „ciudate" din standardul Ethernet.

MărimeDefiniție10 Mbps100 Mbps1 Gbps
Bit timedurata unui singur bit pe fir100 ns10 ns1 ns
Slot timetimpul necesar semnalului să parcurgă cel mai lung segment și să se întoarcă512 bit times = 64 de octeți4096 bit times = 512 octeți
Interframe gappauza minimă obligatorie între două cadre succesive96 bit times
De unde vine dimensiunea minimă de 64 de octeți Slot time-ul explică o valoare care altfel pare complet arbitrară.

Într-un mediu partajat, o stație trebuie să încă transmită în momentul în care o eventuală coliziune se întoarce la ea. Dacă ar termina mai devreme, ar pleca liniștită mai departe, convinsă că totul a mers bine - și nimeni nu ar retransmite cadrul pierdut.

Cadrul minim este exact atât cât să dureze un slot time. Cadrele mai scurte, rezultate din coliziuni, se numesc runt frames și sunt aruncate.

Interframe gap-ul are alt rol: dă stațiilor lente timp să proceseze cadrul curent și să se pregătească pentru următorul. La 1 Gbps înseamnă 96 de nanosecunde - o eternitate pentru electronică, o nimica toată pentru trafic.

Calculator de timpi Ethernet

8Mediul partajat și CSMA/CD12 min

Ethernet a fost proiectat pentru un mediu multiacces: un singur cablu coaxial la care se conectau toate stațiile. Într-un astfel de mediu, două stații pot începe să transmită exact în același timp, iar semnalele lor se suprapun. Rezultatul se numește coliziune, iar cadrele implicate devin inutilizabile.

Analogie O ședință fără moderator, la telefon. Regula nescrisă este: asculți, iar dacă nu vorbește nimeni, începi. Dacă doi încep simultan, se aude un talmeș-balmeș, amândoi se opresc, fiecare așteaptă un timp diferit - altfel ar reporni tot simultan - și încearcă din nou. Aceasta e, cuvânt cu cuvânt, descrierea CSMA/CD.
CSMA/CD, pas cu pas
CSMA/CD este astăzi istorie - dar nu inutilă Într-o rețea comutată full-duplex, fiecare port al switch-ului formează, împreună cu stația conectată, un domeniu de coliziune propriu, în care există exact doi participanți și fire separate pentru fiecare sens. Coliziunile nu mai pot apărea fizic. 10 Gigabit Ethernet nici măcar nu mai definește modul half-duplex.

Mecanismul rămâne totuși esențial de înțeles, din trei motive: explică dimensiunea minimă a cadrului, explică distanțele maxime ale segmentelor și - mai ales - este ideea pe care Wi-Fi a trebuit să o reinventeze, sub forma CSMA/CA din cursul 11, pentru că în aer coliziunile nu pot fi detectate.

9Domenii de coliziune și de broadcast9 min

Cele două domenii
Domeniul de coliziune este grupul de segmente în care două transmisii simultane se pot ciocni. Cu cât e mai mic, cu atât mai bine - ideal, doi participanți.

Domeniul de broadcast este grupul de stații care primesc un cadru de broadcast emis de oricare dintre ele. Cu cât e mai mare, cu atât mai mult trafic inutil procesează fiecare stație.
EchipamentDomeniul de coliziuneDomeniul de broadcast
Hub / repetorîl extindeîl extinde
Switch / bridgeîl delimitează - câte unul per portîl extinde
Ruterîl delimiteazăîl delimitează - câte unul per interfață
Cum se numără, practic

Domenii de coliziune: porniți de la fiecare cablu. Un cablu care duce la un port de switch sau de ruter își are propriul domeniu. Un hub, în schimb, unește într-un singur domeniu toate cablurile conectate la el.

Domenii de broadcast: același raționament, dar de data asta și switch-urile unesc - doar ruterele separă. Practic: numărați câte „insule" rămân dacă tăiați rețeaua la fiecare interfață de ruter.

Exercițiu: numărați domeniile din această topologie
Exercițiu rezolvat - verificați-vă raționamentul

Un ruter are două interfețe. Pe prima este conectat un switch cu 4 stații; pe a doua, un hub cu 3 stații. Câte domenii de coliziune și câte domenii de broadcast există?

Vezi rezolvarea

Domenii de coliziune: 6. Switch-ul creează câte unul pentru fiecare dintre cele 4 legături spre stații, plus unul pentru legătura cu ruterul - deci 5. Hub-ul, împreună cu cele 3 stații și cu legătura spre ruter, formează un singur domeniu. Total 5 + 1 = 6.

Domenii de broadcast: 2. Câte unul pentru fiecare interfață a ruterului. Toate cele 4 stații de pe switch se aud în broadcast între ele; toate cele 3 de pe hub, la fel; dar cele două grupuri nu se aud reciproc.

Capcana clasică: legătura switch–ruter este un domeniu de coliziune propriu, ușor de uitat. Iar legătura hub–ruter nu este un domeniu separat, ci face parte din domeniul hub-ului.

10Funcționarea switch-ului13 min

Aici se află partea cea mai elegantă din tot cursul. Un switch nu este configurat de nimeni cu harta rețelei: și-o construiește singur, dintr-o singură observație inteligentă.

Observația care face totul posibil Adresa MAC sursă a unui cadru spune pe ce port se află expeditorul.

Nu e nevoie de nicio configurare, de niciun protocol de descoperire, de nicio autoritate centrală. Informația este deja acolo, în fiecare cadru care trece - trebuie doar citită și reținută.

Asocierile se păstrează în tabela CAM (Content Addressable Memory), numită și tabela de adrese MAC. Pentru fiecare cadru primit, switch-ul execută întotdeauna aceiași doi pași, în această ordine:

  1. Învățare. Citește MAC-ul sursă. Dacă nu există în tabelă, adaugă perechea (MAC sursă, port de intrare). Dacă există deja, îi resetează contorul de vârstă.
  2. Comutare. Citește MAC-ul destinație și îl caută în tabelă. Trei rezultate posibile:
    • găsit, pe alt port → unicast: trimite cadrul doar pe acel port;
    • găsit, pe chiar portul de intrare → drop: destinația e de aceeași parte, retrimiterea ar fi inutilă;
    • negăsit, sau adresă de broadcast/multicast → flood: trimite pe toate porturile în afară de cel de intrare.
Simulator: tabela CAM a unui switch cu patru stații
Experimentul de făcut, în ordinea asta
  1. Goliți tabela. Trimiteți un cadru de la A la C. Observați: switch-ul învață A, dar nu știe unde e C, deci inundă.
  2. Trimiteți acum de la C la A. Switch-ul învață și C, iar A îl știe deja, deci unicast.
  3. Trimiteți din nou de la A la C. De data asta este direct unicast.

Ce ați văzut: rețeaua se învață singură după primul schimb, iar traficul inutil dispare de la sine. Niciun administrator nu a intervenit.

Îmbătrânirea intrărilor

Fiecare intrare din tabelă are asociată o vârstă, resetată la fiecare cadru primit de la acea adresă. Când vârsta depășește un prag - implicit 300 de secunde pe echipamentele Cisco - intrarea este ștearsă.

Întrebare de înțelegere

De ce trebuie șterse intrările? Ce s-ar întâmpla dacă tabela ar fi permanentă?

Vezi răspunsul

Dacă mutați un calculator de pe portul 3 pe portul 7, switch-ul ar continua să trimită traficul pentru el pe portul 3 - la nesfârșit, deși acolo nu mai e nimeni.

În practică, problema se rezolvă de la sine mult mai repede: primul cadru emis de calculator de pe noul port corectează imediat intrarea. Îmbătrânirea acoperă cazul în care stația a plecat și nu mai vorbește deloc - altfel tabela s-ar umple, în timp, cu fantome.

Există și un motiv de securitate: o tabelă plină face switch-ul să inunde tot traficul, ceea ce este exact scopul atacului CAM overflow din cursul 12.

Puneți în ordine pașii pe care îi face un switch

11Metode de comutare6 min

Cât așteaptă un switch înainte să ia decizia? Există trei răspunsuri, cu trei compromisuri diferite.

MetodăCe așteaptă înainte de a comutaLatențăCadre eronate
Store-and-forwardcadrul întreg; verifică lungimea și FCS-ulmare, crește cu dimensiunea cadruluioprite
Fragment-freeprimii 64 de octețimedie, fixărunt frames oprite, restul trec
Fast-forward (cut-through)doar adresa destinație - primii 6 octeți după preambulminimă, fixătoate trec

Compromisul e limpede: cu cât switch-ul citește mai mult înainte de a decide, cu atât filtrează mai bine, dar cu atât întârzie mai mult.

Ce se folosește în practică Echipamentele moderne rulează, aproape întotdeauna, store-and-forward. Costul în latență a devenit neglijabil la vitezele actuale, iar verificarea FCS-ului este obligatorie: un switch cut-through propagă cadrele corupte mai departe în rețea, unde vor fi aruncate oricum - dar după ce au consumat bandă.

Cut-through supraviețuiește în centre de date și în tranzacții financiare, unde microsecundele contează cu adevărat.

12Familia Ethernet, pe scurt5 min

Ethernet a apărut în 1973 la Xerox PARC, realizat de Bob Metcalfe și David Boggs, cu o lățime de bandă de 2,94 Mbps. Numele vine de la „eter" - substanța ipotetică prin care se credea cândva că se propagă lumina. În 1983, IEEE a transformat standardul industrial DIX (DEC–Intel–Xerox) în standardul 802.3, care rezistă și azi.

GenerațieAnStandardVitezăCodareCSMA/CD
Fast Ethernet1995100BASE-TX / FX100 Mbps4B/5B + MLT-3 sau NRZ-Ida (half-duplex)
Gigabit Ethernet1998–19991000BASE-T / SX / LX1 GbpsPAM-5 sau 8B/10Bopțional
10 Gigabit200210GBASE-T / SR / LR10 Gbpsdiversenu - doar full-duplex
40 / 100 Gigabit2010802.3ba40 / 100 Gbpsmultiplă, pe mai multe benzinu
Ce s-a schimbat și ce a rămas Viteza a crescut de zece mii de ori. Mediul s-a schimbat de trei ori. CSMA/CD a dispărut complet.

Formatul cadrului a rămas același. Un cadru capturat astăzi pe o legătură de 100 Gbps are exact aceleași câmpuri ca unul din 1983. Aceasta e cea mai bună lecție de proiectare pe care o oferă acest curs: o interfață bine gândită supraviețuiește implementărilor ei.

13Erori frecvente4 min

  • „Switch-ul învață din adresa MAC destinație" Nu. Învață exclusiv din adresa sursă - singura care spune sigur de unde a venit cadrul. Destinația se folosește doar pentru a decide unde îl trimite. Rețineți ordinea: întâi învață din sursă, apoi caută destinația.
  • „Un cadru de broadcast este trimis și înapoi pe portul de intrare" Niciodată. Flood înseamnă „pe toate porturile în afară de cel pe care a venit". Altfel s-ar crea o buclă instantanee, chiar și fără cabluri redundante.
  • „Dimensiunea minimă de 64 de octeți e o convenție arbitrară" Vine direct din slot time: stația trebuie să încă transmită când coliziunea se întoarce la ea. 64 octeți = 512 bit times = slot time la 10 și 100 Mbps.
  • „Un switch cu 24 de porturi are 24 de domenii de broadcast" Are 24 de domenii de coliziune și unul singur de broadcast. Switch-ul separă coliziunea, dar extinde broadcast-ul. Separarea broadcast-ului cere un ruter - sau VLAN-uri, din cursul 4.
  • „FCS-ul corectează erorile" Doar le detectează. Un cadru cu FCS greșit se aruncă, iar retransmiterea rămâne treaba nivelurilor superioare. Detectare la nivelul 2, recuperare la nivelul 4.

14Rezumat și glosar5 min

  1. Nivelul 2 adaugă ce lipsea nivelului fizic: identitate (adrese MAC), delimitare (cadre) și detectarea erorilor (FCS).
  2. Adresa MAC este plată și locală - două limitări care fac necesar nivelul 3.
  3. CSMA/CD a rezolvat problema mediului partajat; comutarea full-duplex a făcut-o inutilă.
  4. Un switch își construiește singur harta rețelei, din adresele MAC sursă ale cadrelor care trec prin el.
  5. Switch-ul separă domeniile de coliziune și extinde pe cele de broadcast - de aici pornește tot cursul următor.
cadru (frame)unitatea de date a nivelului 2
LLC / MACcele două subniveluri ale nivelului 2
adresă MAC48 de biți, unici pe planetă, scriși în ROM-ul plăcii
OUIprimii 24 de biți: identifică producătorul
preambul / SFDsincronizarea receptorului și marcarea începutului
EtherTypece protocol de nivel 3 este încapsulat
MTUdimensiunea maximă a încărcăturii utile: 1500 octeți
FCS / CRCsumă de control; detectează, nu corectează
CSMA/CDprotocolul de acces la un mediu partajat
slot timetimpul dus-întors pe cel mai lung segment
runt framecadru sub 64 de octeți, rezultat dintr-o coliziune
tabela CAMasocierile MAC ↔ port, construite automat
floodtrimiterea pe toate porturile în afară de cel de intrare
domeniu de coliziunegrupul în care două transmisii se pot ciocni
domeniu de broadcastgrupul care aude un anunț general

15Întrebări de verificare6 min

16Direcții de aprofundare și bibliografie2 min

Un switch rezolvă coliziunile, dar lasă un singur domeniu de broadcast oricât de mare ar fi rețeaua - și nu tolerează bucle. Cursul următor atacă ambele probleme: VLAN-uri pentru segmentare și Spanning Tree pentru redundanță fără bucle.

La laboratorul 2 veți goli o tabelă CAM reală, o veți umple urmărind-o cadru cu cadru și veți compara, pe aceeași topologie, un switch cu un hub.

  • IEEE 802.3 - formatul cadrului și mecanismul CSMA/CD
  • IEEE 802.1D - operarea unui bridge transparent
  • Registrul public IEEE OUI, pentru identificarea producătorului după adresa MAC
  • Andrew S. Tanenbaum, Computer Networks, capitolul 4 - subnivelul de acces la mediu
  • Charles Spurgeon, Ethernet: The Definitive Guide