Sunteți pe pagina 1din 37

Reele de calculatoare

Partea a 5-a

Sebastian Fuicu

Interconectarea reelelor Protocolul IP Protocolul TCP Controlul congestiei

Interconectarea reelelor

Interconectarea reelor reprezint mecanismul prin care o colecie arbitrar de reele ofer mpreun un serviciu de transport de tip host-to-host. Protocolul IP este elementul cheie folosit pentru a construi reele interconectate. O instan a acestui protocol trebuie s ruleze pe fiecare din nodurile reelelor interconectate.

Protocolul IP

Protocolul IP
Serviciul oferit de protocolul IP

Modelul serviciului prezint dou componente: - o schem de adresare care permite identificarea tuturor hosturilor interconectate. - un model de transfer al datelor, de tip datagram, fr conexiune, model numit si best effort.

Noiunea de best effort se traduce prin aceea c dac un pachet se pierde sau este afectat de eroare, reeaua nu face nimic pentru a-l recupera, pentru ca ea a depus deja tot efortul pentru a trasporta acel pachet. Este posibil ca pachetele care au fost transmise s ajung n alt ordine dect cea in care au fost transmise sau unele s fie duplicate.

Protocolul IP
Serviciul oferit de protocolul IP

Serviciul de tipul best effort fr conexiune este cel mai simplu serviciu care poate fi oferit in cazul interconectrii reelelor. Pstrarea simplitii software-ului care ruleaz pe routere a fost unul din principalele scopuri ale protocolului IP. Abilitatea protocolului IP de a rula peste orice tip de reea reprezint o alt caracteristic fundamental a acestuia. Multe din tehnologiile peste care protocolul IP ruleaz nici mcar nu erau inventate n momentul apariiei acestuia.

Protocolul IP
Formatul unui pachet IP

Protocolul IP
Formatul unui pachet IP
Version: Versiunea protocolului. Exist dou versiuni funcionale, 4 i 6. n acest material este prezentat doar versiunea 4.

IHL: Cmpul ne spune lungimea header-ului, exprimat n numr de cuvinte de 4 octei. Dac lungimea este 20, atunci valoare lui IHL este 5.

Service Type: Cmpul acesta este mprit la rndul lui n mai multe subcmpuri.

Precedence: a fost gndit pentru a defini prioritatea unui pachet. n versiunea 4 a protocolului IP acest subcmp nu este folosit.

Protocolul IP
Formatul unui pachet IP

Type of Service: acest subcmp este format din 4 bii. Fiecare dintre ei are o anumite semnificaie i doar unul poate fi setat la un moment dat.

Total Length: Acest cmp conine lungimea total a pachetului. Dac se dorete s se afle lungimea datelor, se scade din lungimea total, valoarea cmpului Header Length nmulit cu 4.

Identification, Flags, Fragmentation Offset: Folosite n procesul de fragmentare a pachetelor.

Protocolul IP
Formatul unui pachet IP

Time to Live: Acest cmp este folosit pentru a stabili numrul maxim de hop-uri (routere) prin care un pachet poate trece.

Fiecare router care proceseaz pachetul decrementeaz cmpul cu o unitate. Cnd valoare ajunge la zero, pachetul este eliminat din reea i un mesaj de eroare este generat ctre nodul care avea adresa trecut n cmpul Source IP Address.

Valoarea de iniializare a acestui cmp este de obicei dublul numrului maxim de router-e care se pot interpune ntre surs i destinaie.

Este necesar acest mecanism deoarece n absena lui i n anumite circumstane (tabele de rutare corupte) anumite pachete ar putea cltori la infinit n reea, consumnd inutil resursele reelei.

10

Protocolul IP
Formatul unui pachet IP

Protocol: Prin acest cmp se identific protocolul de nivel superior care face uz de protocolul IP pentru a-i transporta datele

Checksum: Sum de control aplicat pachetului.

Source Address: Cmpul conine adresa nodului care a trimis pachetul.

Destination Address: Cmpul conine adresa nodului cruia i este destinat pachetul.

11

Protocolul IP
Fragmentarea i reasamblarea pachetelor

Fiecare protocol de pe Nivelul Legtur de Date are propriul format pentru frame-urile utilizate la transportul informaiei. Cnd un pachet IP traverseaz diferite reelele el trebuie s fie ncapsulat n aceste frame-uri ale Nivelului Legtur de Date. Fiecare frame accept o anumit dimensiune maxim pentru cmpul de date. Astfel, dac dimensiunea pachetului IP depete aceast valoare, pachetul va trebui s fie fragmentat. Cmpul Flags conine 3 bii. Primul este rezervat, iar urmtorii doi sunt notai cu D (do not fragment), respectiv M(more fragment). Dac bitul D are valoarea 1, atunci pachetul nu poate fi fragmentat. Daca bitul M are valoarea 1 aceasta semnific c pachetul nu este ultimul fragment ci mai sunt i altele. Dac valoarea este 0, atunci fragmentul este ultimul. Cmpul Fragmentation Offset indic poziia relativ a unui fragment n cadrul unui pachet. Poziia este indicat sub form de deplasament exprimat ca multiplu de 8 octei.

12

Protocolul IP
Fragmentarea i reasamblarea pachetelor

Cmpul Identification are i el un rol important n procesul de fragmentare. Fiecare pachet primete un numr de identificare care va fi stocat n acest cmp. Acest numr este generat prin incrementare cu unu pentru fiecare nou pachet trimis. Valoarea de la care se pornete este una pozitiv aleas n mod aleator. Astfel, pachetele vor fi identificate n mod unic folosind aceast etichet i adresa sursei. Atunci cnd este necesar ca un pachet s fie fragmentat, fragmentele care au rezultat vor avea acelai numr de identificare cu cel al pachetului din care provin. n acest fel va putea fi refcut pachetul original.

13

Protocolul IP
Fragmentarea i reasamblarea pachetelor

14

Protocolul IP
Fragmentarea i reasamblarea pachetelor

15

Protocolul IP
Adresarea

Protocolul IP implementeaz o schem de adresare global. ntregul spaiu de adrese IP a fost mprit n 5 clase notate de la A la E. O adres IP conine doua pri: una care ne d adresa reelei i cealalt ne spune adresa host-ului n cadrul reelei. Valuarea primilor bii dintr-o adres IP ne spune clasa din care face parte acea adres. Fiecare clas aloc un numr diferit de bii pentru partea de Network ID i pentru Host ID.

16

Protocolul IP
Adresarea

17

Protocolul TCP

Protocolul TCP are sarcina de a transforma Nivelul Reea, reprezentat n cazul nostru prin protocolul IP, dintr-un nivel nesigur ntr-unul sigur. Tot protocolul TCP este responsabil i cu implementarea anumitor mecanisme de control al fluxului i al congestiei. Protocolul TCP este de tipul capt la capt, adic este necesar s existe o instan a acestui protocol doar pe maina surs i pe maina destinaie, nu i n nodurile intermediare care vor fi tranzitate de ctre pachete.

18

Protocolul TCP
Serviciile oferite de ctre TCP sunt:

Stream Data Service

Aceasta presupune c pachetele care ajung la destinaie s fie recepionate exact n ordinea n care au fost trimise. Dac trebuie transmis un mesaj, care din cauza lungimii va fi fragmentat n mai multe pachete, la receptor se verific sosirea tuturor pachetelor i se aeaz n ordinea n care au fost trimise. Pentru a putea furniza acest serviciu, TCP face uz de buffer-e att pe partea de transmisie, ct i pe partea de recepie.

Full-duplex service

Presupune c transferul de informaii ntre dou noduri poate fi fcut simultan n ambele direcii. Cnd un pachet pleac de la unul din noduri ctre cellalt, transport i un mesaj de confirmare pentru un pachet recepionat anterior (piggybacking).

Reliable service

TCP folosete un mecanism de confirmri pentru a se asigura c pachetele nu au fost afectate de erori i ca au sosit n ordinea corect.
19

Protocolul TCP
Formatul unui pachet TCP
20-60 bytes Variable size

Header

Data

Source port number 16 bits

Destination port number 16 bits

Sequence number 32 bits Acknowledgement number 32 bits Header length 4 bits Reserved 6 bits Checksum 16 bits Option (if any)
20
U A P R S F R C S S Y Y G K H T N N

Window size 16 bits Urgent pointer 16 bits

Protocolul TCP
Formatul unui pachet TCP

Source port number : Numrul portului folosit de ctre aplicaia care ruleaz pe maina care trimite pachetele. Destionation port number : Numrul portului folosit de aplicaia care ruleaz pe maina care primete pachetele. Sequence number: TCP numeroteaz fiecare octet trimis i folosete acest cmp pentru a indica numrul de secven al primului octet de date din pachet. Cnd se iniiaz o comunicaie ntre dou maini, numrul de secven pentru primul octet trimis este ales aleator. Acknowledgement number: Acest cmp este folosit pentru a confirma octeii recepionai. El se calculeaz nsumnd la valoarea din cmpul Sequence number al pachetului primit, dimensiunea cmpului de date recepionat, plus 1. Astfel valoarea acestui cmp reprezint de fapt urmtoarea valoare pentru cmpul Sequence number care va fi folosit de ctre maina care recepioneaz pachetul de confirmare.

21

Protocolul TCP
Formatul unui pachet TCP

Header length: Conine dimensiunea header-ului exprimat in cuvinte de 32 de bii. Control field: Conine 6 bii a cror semnificaie va fi explicat atunci cnd se va discuta modul cum se iniiaz i se desfoar o sesiune de comunicaie. Window size: reprezint spaiul disponibil din buffer-ul de recepie.

22

Protocolul TCP
Conexiunea de tip end-to-end

TCP-ul i bazeaz funcionarea pe un algoritm cu fereastr glisant. Protocoalele cu fereastr glisant au fost gndite pentru legturi punct la punct. n cazul TCP-ului se vor stabili conexiuni logice ntre procese care pot rula pe oricare doua calculatoare din Internet.

23

Protocolul TCP
Conexiunea de tip end-to-end

Mecanismul ferestrei glisante garantez un transfer sigur al datelor: - mecanism de retransmisie al datelor - recepia pachetelor n ordinea n care au fost transmise - multiplexarea traficului - permite controlul fluxului ntre transmitor i receptor

Un alt mecanism esenial implementat de ctre TCP este controlul congestiei.

24

Protocolul TCP
Iniierea conexiunii:

Nodul care iniiaz conexiunea, de obicei este de tip client, iar cel care rspunde cererii venite de la client, este server-ul. Pentru a iniia o conexiune este nevoie de trei pachete (three-way handshake): - Primul pachet vine din partea clientului i are setat flag-ul SYN. Acest pachet conine numrul portului pe care clientul l va folosi pe durata conexiunii, precum i numrul de secven iniial. - Al doilea pachet implicat n stabilirea conexiunii vine ca rspuns din partea serverului, avnd setat flag-ul SYN, precum i flag-ul ACK, fiind un pachet de confirmare pentru primul pachet. El mai conine, de asemenea i numrul de secven iniial folosit de server. - Al treilea pachet vine din partea clientului si conine confirmarea pentru pachetul SYN trimis de server.

25

Protocolul TCP
Iniierea conexiunii:

26

Protocolul TCP
Iniierea conexiunii:
client 1 SYN SYN, 3 ACK 2 server

27

Protocolul TCP
ncheierea unei conexiuni
ncheierea unei conexiuni poate fi fcut n mod bilateral, adic ambele noduri vor trimite cte un pachet de tip FIN, confirmate prin cte un pachet ACK, sau unilateral, cnd doar unul dintre noduri trimite un pachet FIN care va fi confirmat server client print-un pachet ACK.

FIN ACK FIN

ACK

28

Protocolul TCP
Funcionarea ferestrei glisante:

29

Protocolul TCP
Funcionarea ferestrei glisante:

Atunci cnd un pachet este recepionat se verific dac numrul lui de secven coincide cu numrul de secven de la nceputul ferestrei receptorului, adic este urmtorul numr de secven ateptat. Daca numrul de secven nu coincide dar se afl n interiorul ferestrei, atunci este introdus n buff-er dar nu este confirmat, iar receptorul trimite un pachet de confirmare care conine n cmpul ACK aceiai valoare cu cea din pachetul de confirmare corespunztor ultimului pachet de date valid. Dac numrul de secven nu este cel ateptat i nici nu se afl n interiorul ferestrei de recepie, atunci pachetul este ignorat. n momentul cnd sosete pachetul ateptat, atunci acesta este confirmat, iar limita din stnga a ferestrei se deplaseaz spre dreapta. Limita din dreapta a ferestrei se va deplasa spre dreapta doar n momentul n care pachetele care au fost confirmate sunt scoase din buffer pentru a fi procesate.

30

Protocolul TCP
Retransmisia datelor:

Retransmisia datelor se realizeaz fie cnd pachetele ajung la destinaie dar sunt afectate de erori, fie cnd s-au pierdut pe drum. Pentru ca procedeul de retransmisie s funcioneze este nevoie de folosirea unor timere i a unui mecanism de confirmri pozitive (positive acknowledgements). Confirmarea pozitiv nsemn c sunt confirmate doar pachetele care au ajuns neafectate de erori. Pentru a optimiza mecanismul de retransmisie se folosete o metod cumulativ de confirmri, care permite confirmarea printr-un singur mesaj a unui grup de pachete consecutive. Pentru transmisia confirmrilor sunt folosite pachete de date, procedeul purtnd denumirea de piggybacking. Exist i posibilitatea de a transmite distinct doar pachete de confirmare.

31

Controlul congestiei

Atunci cnd resursele reelei nu mai reuesc s fac fa traficului i reeaua devine suprasolicitat, parametrii n care se desfoar traficul se degradeaz tot mai mult, n felul acesta instalndu-se congestia. Congestia se manifest prin ntrzieri tot mai mari, printr-un numr mare de pachete pierdute i n final se poate ajunge la colaps total, adic blocarea reelei. n funcie de locul unde apare congestia exist dou categorii de congestie: - Congestie care apare din cauza suprasolicitrii server-elor de aplicaii (Server Side Congestion): apar prea multe cereri din partea clienilor la un moment dat astfel nct noile cereri pentru conexiuni vor fi respinse. - Cealalt categorie de congestie apare pe partea de client, atunci cnd mai muli clieni mpart n comun aceleai conexiune fizice. n acest caz congestia apare n nodurile intermediare care nu mai pot s gestioneze numrul mare de conexiuni care apar la un moment dat.

ntr-o reea bazat pe comutarea de pachete resursele sunt distribuite la nivelul fiecrui nod din reea. Aceste resurse pot fi definite prin trei elemente: capacitatea de procesare a informaiilor, dimensiunea buffer-elor i capacitatea de transport a liniilor.

32

Controlul congestiei

Lund n considerare capacitatea de transport i ntrzierile care apar, instalarea congestiei arat grafic ca n figura de mai jos. Se observ c atunci cnd reeaua lucreaz n parametrii optimi, ea rspunde corect atunci cnd apare o ncrcare mai mare (zona a). La nceput apare o cretere exponenial, apoi o zon n care reeaua nu mai reacioneaz la o cretere suplimentar a ncrcrii (zona b), pentru ca apoi dintr-un anumit punct capacitatea de transfer s scad brusc, iar dac nu sunt luate msuri, se ajunge la colaps (zona c). n ceea ce privete ntrzierea introdus de reea se observ c se pstreaz o valoare aproximativ constant n zona a, apoi pe msur ce reeaua ncepe s fie congestionat (zona b) ntrzierea introdus de reea devine tot mai mare.

33

Controlul congestiei

Pentru controlul congestiei exist dou abordri i anume: - un control n bucl deschis - un control n bucl nchis (cu feedback)

n primul caz se stabilesc de la nceput parametrii n care va funciona reeaua, lundu-se msuri n faza de proiectare pentru prevenirea apariiei problemelor, deoarece controlul se va face fr informaii despre situaia concret de la un moment dat din reea. Controlul n bucl deschis se face de obicei la periferia reelei, prin supravegherea traficului (traffic policing) i prin formarea traficului (traffic shaping) pentru nodul care a primit acces la resursele reelei. Formarea traficului presupune uniformizarea ratei medii de transmisie a datelor. Al doilea mod de control al congestiei este cel n bucl nchis. Aici msurile care sunt ntreprinse se bazeaz pe informaii culese n permanen din interiorul reelei. Informaiile primite pot fi implicite sau explicite. Un tip de informaie implicit ar putea fi numrul de pachete pierdute, sau ntrzierile din reea. Informaiile explicite sunt cele generate n mod special pentru a avertiza despre apariia congestiei. Aceste informaii pot fi pachete suplimentare care s conin date despre congestie sau ar putea fi folosite anumite cmpuri n cadrul pachetelor i care vor fii setate cu anumite valori atunci cnd apare congestia.

34

Controlul congestiei

Pentru controlul congestiei n bucl deschis, vom da dou exemple de algoritmi pentru formarea traficului:

Algoritmul gleii gurite

Algoritmul poart aceast denumire deoarece se face analogie cu o gleat care are un orificiu pe fund. Indiferent de debitul cu care apa intr n gleat, ea se va scurge prin orificiu cu un debit constant. La un moment dat, dac gleata continu s fie alimentat ea se poate umple i apa se pierde. Acelai principiu poate fi aplicat i n cazul unei transmisii de date. Pachetele care sunt trimise dintr-un anumit nod n reea sunt trecute printr-o gleat gurit, adic un buffer de tip FIFO care accept pachete la orice rat de transfer, dar le transmite mai departe cu o rat fix. Dac buffer-ul se umple atunci pachetele care sosesc ulterior se pierd. n felul acesta se realizeaz n mod implicit i controlul traficului, adic urmrirea dac un utilizator depete parametrii de trafic care i-au fost atribuii. Marele avantaj al acestei metode este acela c nu permite traficului n rafal care ar putea veni din partea nodului transmitor s ptrund sub aceast form n reea, aceasta fiind principala cauz a apariiei congestiei, chiar i atunci cnd resursele reelei ar prea ca sunt suficiente.

35

Controlul congestiei
Algoritmul gleii cu jeton

Acest algoritm se aseamn n mare msur cu cel anterior, dar spre deosebire de acesta permite flexibilitate n ceea ce privete rata traficului de ieire. n cazul gleii gurite rata acestui trafic era fix. Algoritmul funcioneaz n felul urmtor: gleata acumuleaz jetoane generate cu o rat de un jeton la T secunde. Pentru ca un pachet s poat fi trimis el trebuie s gseasc un jeton n gleat, pe care s-l distrug. Acest mod de abordare a problemei permite ca n momentul n care la intrare avem date n rafal, iar n gleat avem jetoane disponibile, atunci datele vor fi transmise tot n rafal, dar lungimea rafalei are maxim valoarea egal cu numrul de jetoane din gleat.

36

Controlul congestiei
Controlul n bucl nchis

Pentru a se evita funcionarea reelei n zona de congestie este nevoie s se foloseasc procedee de monitorizare i control a congestiei. Cnd se pune problema controlului congestiei dou mecanisme trebuie luate n discuie: evitarea congestiei (congestion avoidance) i ieirea din congestie (congestion recovery). Aceste mecanisme pot fi implementate pe de o parte la nivelul routerelor, care reprezint nodurile intermediare, atunci cnd are loc un transfer de date ntre surs i destinaie, ct i la nivelul sursei i a destinaiei, adic al celor dou noduri ntre care se desfoar transferul. Se spune c n acest caz realizm un control capt la capt. ntr-o reea ideal, pentru ca cele dou tipuri de control s fie eficiente este nevoie ca pe de o parte reeaua s ofere feedback, pentru ca resursele s fie folosite n mod eficient, iar pe de alt parte este nevoie ca fluxurile de date s fie protejate unele fa de altele, n cazul n care unii utilizatori ar avea tendina s acapareze mai multe resurse dect cele care le-au fost alocate. Aceast protejare a fluxurilor de date se poate face prin mecanisme de tip QoS. Principalul avantaj al unei reele bazate pe comutarea de pachete este faptul c toate resursele reelei vor fi folosite mpreun de ctre toi utilizatorii, iar reeaua va ncerca s aloce maximul de resurse disponibile fiecrui utilizator n parte. Ceea ce creeaz probleme este natura impredictibil i n rafal a traficului, aceasta putnd s conduc la apariia congestiei . Pentru scurte momente de timp reeaua poate deveni suprancrcat i pentru a se evita intrarea n congestie este necesar ca ntr-un anume fel, utilizatorii s fie ntiinai de acest lucru i s treac la o diminuare a ncrcrii reelei, evitndu-se astfel apariia congestiei. Acest mecanism va funciona, fcnd presupunerea c toi utilizatorii reelei vor coopera i vor lua n considerare semnalele care avertizeaz asupra apariiei congestiei. Pentru a se asigura acest lucru au fost implementate mecanisme de evitare a congestiei chiar n protocoalele de comunicaie n Internet. 37

S-ar putea să vă placă și

  • Partea 6
    Partea 6
    Document22 pagini
    Partea 6
    Lorin B. Cristian
    Încă nu există evaluări
  • Partea 4
    Partea 4
    Document46 pagini
    Partea 4
    Lorin B. Cristian
    Încă nu există evaluări
  • Partea 3
    Partea 3
    Document26 pagini
    Partea 3
    Lorin B. Cristian
    Încă nu există evaluări
  • Partea 2
    Partea 2
    Document35 pagini
    Partea 2
    Lorin B. Cristian
    Încă nu există evaluări
  • RC Partea 1
    RC Partea 1
    Document33 pagini
    RC Partea 1
    Bogdan Popescu
    Încă nu există evaluări