Scop: realizarea comunicarii intre calculatoare prin legaturi indirecte (prin intermediul altor noduri).
nod = calculator intermediar; poate fi un calculator propriu-zis, sau un echipament specializat.
Dupa tipul serviciului oferit, avem retele care ofera servicii de conexiune, si retele care ofera servicii de datagrame.
Retelele ce ofera servicii de tip conexiune pot fi realizate prin:
Exemplu: sistemul telefonic analogic.
Avantaje: era singurul fezabil (rezonabil) inainte de aparitia circuitelor integrate.
Dezavantaje: necesita alocarea unui canal de capacitate fixata pentru fiecare circuit si capacitatea canalului alocat nu poate fi refolosita daca pe canal nu se transmit date; este mai scumpa decat alte metode in conditiile tehnice actuala.
Exemplu: Telefonia digitala, ISDN, ATM
Avantaje: dirijarea rapida a pachetelor; posibilitatea alocarii unui canal cu capacitate minima garantata
In retelele ce ofera servicii de tip datagrama, nodurile dirijeaza independent datagramele (pachetele): fiecare pachet poarta adresa destinatie, si fiecare pachet este dirijat independent de celelalte
Exemplu: Internetul
Avantaje: foarte tolerant la pene (caderi ale nodurilor)
Dezavantaje: dirijarea fiecarui pachet necesita consultarea unei tabele mari; pachetele pot ajunge in orice ordine al destinatie
Fiecare pachet trebuie sa contina cel putin adresa destinatiei.
Fiecare nod (router) primeste pachetele, le pune intr-o coada, ia din coada cate un pachet, cauta, in functie de destinatia pachetului, catre ce nod conectat direct trebuie trimis pachetul, il pune intr-o noua coada si il trimite. Cozile apar daca pachetele sosesc, pe canale de capacitate mare sau pe mai multe canale simultan, la o rata a sosirilor mai mare decat rata cu care pachetele pot fi trimise catre destinatie (daca nodul urmator de pe traseu are capacitate mica de prelucrare sau legatura catre el este de capacitate mica).
Alegerea urmatorului nod caruia i se va trimite pachetul se face conform unor tabele de dirijare. Tabelele de dirijare se construiesc astfel incat fiecare pachet sa urmeze un drum optim, intr-un anume sens, de la sursa la destinatie.
Ideal, tabelele de dirijare ar trebui sa contina cate o intrare pentru fiecare destinatie posibila. Datorita numarului mare de noduri, in retelele mari se foloseste o dirijare ierarhica: reteaua este impartita in subretele, si adresele din fiecare subretea contin (de exemplu ca prefix) un identificator al subretelei. In tabelele de dirijare se vor gasi atunci intrari corespunzatoare adreselor din subreteaua locala si intrari corespunzatoare identificatorilor celorlalte subretele, toate adresele dintr-o subretea fiind dirijate la fel.
O posibilitate de constructie a tabelelor de dirijare este:
Deoarece intr-o retea mare nu este fezabil sa existe o singura masina care sa calculeze si sa distribuie tabelele drumurilor optime, fiecare masina isi va calcula tabela folosind o varianta distribuita a algoritmului lui Dijkstra. Pentru aceasta, fiecare nod va trebui sa schimbe periodic cu vecinii - prin intermediul unor datagrame speciale - informatii cu privire la distantele catre diferite alte noduri.
Drumurile optime trebuie recalculate periodic, deoarece costurile se pot schimba datorita caderii sau reaparitiei unor noduri sau datorita variatiei incarcarii liniilor. La variatia incarcarii liniilor trebuie prevenit fenomenul de oscilatie: Presupunem ca avem doua linii distincte intre doua subretele. Daca la un moment dat una este incarcata si cealalta (aproape) libera, o noua reevaluare a costurilor ar putea face ca cea de-a doua linie sa fie folosita de majoritatea traseelor, in felul acesta prima linie devine nefolosita si cea de-a doua supraincarcata.
Pentru un nod dat si o destinatie data, nodul urmator al traseului poate fi unic determinat de tabela de dirijare, sau pot fi date mai multe noduri (respectiv trasee posibile) intre care se alege in functie de calitatea serviciului dorit de client sau prin rotatie pentru echilibrarea traficului.
Deoarece pe alocuri este posibil ca un pachet sa fie trimis pe mai multe cai - in incercarea de-a gasi o cale spre destinatie, si deoarece datorita unor incoerente in tabelele de dirijare este posibil ca un pachet sa cicleze, pachetele e bine sa aiba durata de viata in retea limitata - adica daca un pachet se gaseste in reeta de prea mult timp sau a trecut prin prea multe noduri el este distrus.
Daca pachetele sosesc intr-un ritm mai rapid decat pot fi trimise, cozile cresc. Daca dimensiunea cozii depaseste dimensiunea memoriei de stocare a nodului, o parte din pachete trebuie sacrificate. Strategia cea mai simpla este sa se sacrifice ultimele pachete sosite; versiuni mai elaborate pot sacrifica pachete in functie de tipul si calitatea serviciului solicitat de client. De exemplu, la transmiterea vocii este preferabil sa se sacrifice pachetele mai vechi.
Intr-o retea congestionata intarzierile la livarea pachetelor vor fi mari (datorita asteptarilor in zone tampon) si pierderile vor fi de asemenea numeroase (datorita depasirilor capacitatilor zonelor tampon). Intarzierile si pierderile de pachete vor duce la retransmiteri ale pachetelor, care la randul lor vor duce la cresterea traficului; astfel, o retea congestionata va suporta un trafic util mai mic decat o retea libera.
IP = Internet Protocol
TCP = Transmission Control Protocol
Internet-ul este o retea, oferind servicii de tip datagrama, si folosind protocolul IP.
Pachetele IP sunt formate dintr-un antet, continand adresa sursa, adresa destinatie, timpul de viata, protocolul client (adica cui ii este destinata informatia utila), plus alte informatii, si datele utile. Numerele de mai mult de un octet se reprezinta cu octetul cel mai semniificativ primul.
Adresele IP (versiunea 4) sunt formate din 32 de biti. Se obisnuieste ca adresele IP sa se scrie ca 4 numere, cuprinse intre 0 si 255, separate prin puncte, fiecare numar reprezentand cate un octet din adresa.
Initial, adresele au fost impartite in trei clase: A, B si C (exista si o clasa D, dar are alt scop), fiecare clasa avand o impartire fixa intre lungimea prefixului de subretea si lungimea adresei statiei in cadrul subretelei:
Ulterior, datorita imputinarii adreselor IP disponibile, s-a recurs la impartirea libera, in functie de nevoi intre prefixul subretelei si adresa locala. In acest fel, o intrare intr-o tabela de dirijare este identificata printr-un prefix a carui lungime poate fi cuprinsa intre 1 si 32 biti, si intrarea va fi selectata pentru adresele destinatie care incep cu prefixul dat. In practica, un astfel de prefix se specifica ca o adresa IP, completata cu zerouri dupa prefix, plus lungimea prefixului. Lungimea prefixului poate fi data fie numeric dupa adresa fie prin masca de retea: un sir de 32 biti, format dintr-un sir de 1 corespunzator lungimii prefixului, urmat de un sir de 0, totul fiind scris ca o adresa IP (notatie zecimala cu puncte). Exemplu: prefixul 11000000_10101000_1010 va fi scris ca 192.168.160.0/20 sau ca adresa 192.168.160.0 cu masca 255.255.240.0 .
Tabelele de dirijae pot fi statice (in general construite manual) sau dinamice. Tabelele dinamice se construiesc pe baza informatiilor transmise prin pachete de control - ICMP. Pachetele ICMP folosesc si la diagnosticarea unor probleme in retea. Exista pachete de cerere ecou (emise de ping; nodul destinatie trimite un pachet inapoi), pachete de informare de ruta neoptima (daca un nod determina ca un pachet trebuie trimis pe ruta pe care a venit, isi va informa vecinul care i-a trimis pachetul ca ruta aleasa de el nu a fost buna), destinatie inaccesibila sau timp de viata depasit pentru un pachet.
Protocolul UDP aduce in plus fata de IP un numar de port sursa si un numar de port destinatie. Mai exact, o datagrama UDP este plasata, impreuna cu portul sursa si portul destinatiem, ca date utile intr-un pachet IP, iar in campul protocol al pachetului IP se puna valoarea UDP.
Portul destinatie permite sistemului de operare de pe calculatorul destinatie sa decida carei aplicatii ce ruleaza pe acel calculator trebuie sa-i fie livrat pachetul. Portul sursa serveste aplicatiei pentru a sti ce port destinatie sa puna in datagrama de raspuns.
Ca si pachetele IP, datagramele UDP sunt nesigure in sensul ca se pot pierde, pot ajunge in multiplu exemplar, sau pot ajunge la destinatie in alta ordine decat cea in care au fost emise.
Protocolul TCP realizeaza servicii de tip conexiune peste pachete IP. Fluxul de date este impartit in pachete. Datorita nesigurantei transmiterii pachetelor IP, sirul de pachete IP este transmis folosind un protocol de tip fereastra glisanta.
Spre deosebire de fereastra glisanta folosita in cazul legaturii directe intre doua calculatoare, in cazul TCP receptorul oate primi si pachete aflate in afara ferestrei de emisie. Aceasta deoarece pot exista pachete care "ratacesc" prin retea un timp indelungat si sosesc cu intarziere mare la destinatie. Din acest motiv, protocolul trebuie sa se asigure ca, la o pereche data (emitator, receptor), fiecare identificate prin perechea (IP, nr. port), un anumit numar de secventa nu este refolosit inainte de expirarea dublului duratei de viata a unui pachet (astfel incat pachetele ratacitoare si confirmarile lor sa fie sigur distruse). Este insa permis ca o conexiune noua sa inceapa cu orice numar de secventa.
ARP = Address Resolution Protocol
Pentru a livra un pachet Etehrnet, emitatorul are nevoie de adresa fizica (MAC) a receptorului. Daca emitatorul are doar adresa IP a receptorului, el trebuie sa afle adresa MAC corespunzatoare.
Protocolul ARP serveste gasirii adresei MAC pornind de la adresa IP, presupunand ca masina cautata este in aceeasi retea Ethernet.
Protocolul presupune ca emitatorul trimite un pachet Ethernet de broadcast in reteaua locala, intreband "cine are adresa IP cutare". Masina care are adresa IP cautata va raspunde cu un mesaj de genul "eu am adresa IP cutare" - mesaj ce contine adresa MAC. Celelalte masini ignora mesajul.
O corespondenta IP - MAC este pastrata in memorie un anumit timp.
RARP = Reverse Address Resolution Protocol
BOOTP = BOOT Protocol
DHCP = Dynamic Host Configuration Protocol
Aceste protocoale servesc (intre altele) unei masini sa-si afle propria adresa IP. Acest lucru este util daca masina nu are hard-disc sau daca se doreste fixarea simpla adreselor IP de la o masina administrativa centrala.
Masina client trimite un pachet Ethernet de broadcast continand o cerere RARP, BOOTP sau DHCP, iar serverul determina, din adresa MAC a cererii si folosind tabele de corespondenta fixate de administratorul retelei, adresa IP corespunzatoare, pe care o trimite ca raspuns clientului.