2. Legătura de date. Servicii şi funcţii. Detecţia şi corectarea erorilor (checksum). Controlul transmisiei.
Nivelul Fizic
Orice rețea implică existența unei conexiuni stabilite între entitățile aflate la capetele canalului de comunicare (sender & receiver); această conexiune facilitează transmisia datelor, fiind implementată (low-level) printr-o serie de medii fizice, cu proprietăți distincte:
-
Mediu electric (e.g. Ethernet)
-
se folosesc cabluri ce conțin perechi de fire electrice
-
biții mesajului sunt encodați/reprezentați cu ajutorul variației de tensiune prin cele două fire (la capătul dinspre sender se amplasează un senzor ce măsoară diferența de potențial dintre cele două fire)
-
se stabilește o corespondență (mapare) între biți și tensiunea asociată acestora (e.g. 1 $\rightarrow$ 5V; 0 $\rightarrow$ 0V)
Obs: Firele electrice sunt folosite, în general,
-
pe distanțe scurte, cu viteze mari de transmisie
-
pe distanțe lungi, cu viteze scăzute
-
-
Fibră optică
- constituită dintr-o bucată subțire de plexiglas, înconjurată de un material cu indice de refracție mare
- mesajul este transmis prin intermediul unui semnal laser, ce se refractă de-a lungul fibrei până la destinație
- encodarea mesajului poate fi realizată în diverse moduri (e.g. variând lungimea de undă a laserului)
- acest mediu prezintă o utilizare generalizată
-
Unde electromagnetice
- se folosește o antenă ce generează un semnal variat prin inducție electromagnetică
- encodarea este realizată prin variația fazei sau a frecvenței semnalului
- receptorul trebuie să reconstituie mesajul transmis
Indiferent de tipul mediului fizic, apare necesitatea unei înțelegeri privind frecvența de transmisie a informației ($\Rightarrow$ introducerea protocoalelor).
Bandwidth = viteza de transmisie a unui link [bits / sec]
Problemă:
Transmisia informațiilor între două entități implică existența unor semnale de ceas sincronizate.
Desincronizarea acestora din urmă (clock slip) poate conduce la apariția unor biți în plus/minus față de codificarea mesajului inițial.
Soluții:
-
Folosirea ceasurilor atomice (scumpe).
-
Utilizarea unei perechi de fire pentru transmisia datelor, respectiv a unei alteia pentru semnalul de ceas. Citirea mesajului începe odată cu detectarea acestuia din urmă.
-
Encodare Manchester - semnalul de ceas este încorporat în semnalul util, simbolurile fiind encodate prin tranziții.
-
utilizată în cadrul Ethernet
-
$\uparrow \iff 1 ; \\downarrow \iff 0;$
-
Rețelele sunt construite printr-un layering de niveluri; fiecare dintre acestea implementează noi funcționalități pornind de la interfața oferită de nivelul inferior.
Obs: Nivelurile de rețea se doresc a fi generice, oferind un protocol independent de cele subiacente și ușor de introdus în orice sistem.

Nivelul DataLink
-
se ocupă de framing = încadrarea mesajului prin introducerea unor octeți speciali (flag) ce specifică începutul și sfârșitul acestuia $\Rightarrow$ FLAG | MESAJ | FLAG
-
FLAG = 01111110
-
pentru a acoperi cazul în care flag-ul este inclus în mesaj, nivelul fizic implementează protocolul de bit stuffing $\iff$ pentru mesajul 01111110, va fi trimis șirul 011111010.
-
nivelul fizic al receptorului va elimina bitul de 0 suplimentar
-
vezi HDLC = high-level datalink control
API Datalink:
send(char buf[SIZE], int len)
$\downarrow$
recv(char buf[SIZE], int len)
-
Resurse:
- https://www.computer-networking.info/2nd/html/principles/reliability.html
- https://www.youtube.com/playlist?list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW primele 6 clipuri.