IP "carausul" internetului II

      In articolul precedent am aratat ca protocolul IP indeplineste 5 functii principale, discutind despre primele doua. In acest articol vom continua prezentarea celorlalte functii, incepind cu:

3. Circulatia datelor intre nivelul acces retea si nivelul transport pentru fiecare statie

      Protocolul IP (aflat pe nivelul retea), in cazul statiei transmitatoare preia datele de pe nivelul transport (impachetate de cele doua protocoale: TCP si UDP), le adauga un antet propriu si apoi le transmite mai jos in stiva, spre nivelul legatura (sau, altfel spus, nivelul acces retea). Acest proces, de stocare a datelor in formatul necesar protocolului imediat inferior (in stiva TCP/IP), poarta numele de incapsulare.

      In cazul statiei receptoare procesul are loc invers. Protocolul IP preia datele livrate de nivelul legatura, indeparteaza antetul propriu si transmite, pachetul estfel rezultat, nivelului transport.

4. Directionarea datagramelor catre calculatoarele destinatie

      Aceasta functie se numeste pe scurt: rutare

      Esenta procesului de rutare este tabela de rutare IP. Softul de retea cauta in aceasta tabela penru a determina traseul optim pe care sa rimita datagramele IP, astfel incit ele sa ajunga la destinatia specificata in antetul datagramei. Intrarile dintr-o tabela de rutare, sau mau bine zis “inregistrarile” din acea tabela, sunt gestiunate de anumite protocoale de rutare, protocoale ce nu fac parte din stiva TCP/IP. Din acest motiv, aceste protocoale, le vom descrie intr-un articol viitor.

      Practic, protocoalele de rutare asigura livrarea datagramei la destinatie; protocolul IP creiind doar “regulile” pe care le respecta protocoalele de rutare.

5. Fragmentarea si reasamblarea datagramelor

      Dupa cum am amintit si in articolul precedent, fiecarei retele ii este specifica o lungime maxima proprie a pachetului de date care poate fi transmis. Aceasta valoare se numeste: unitate maxima de transfer (MTU – Maximum Transfer Unit), avand valoarea de 1500 bytes pentru retele Ethernet si de 4500 butes pentru retele FDDI (fibra optica).

      In cazul in care o aplicatie de retea transmite un pachet de date mai mare decat MTU al retelei utilizate, softul de retea trebuie sa imparta pachetul in bucati mai mici si sa trimita, apoi, datele sub forma unor pachete mai mici.

      Fragmentarea este tocmai acest proces de impartire a unui pachet mare de date in pachete mai mici. In aceasta situatie (a unei retele omogene), fragmentarea este facuta de softul de retea instalat pe calculatorul emitator. Exista si cazuri cand un router (care face lagatura intre o retea cu un MTU mai mare si o retea cu un MTU mai mic) va trebui sa faca aceasta fragmentare.

      Procesul de fragmentare se controleaza cu ajutorul flag-urilor din antetul IP. Daca primul flag (DF – Don’t Fragment) este setat, atunci protocolul IP “stie” ca nu are voie sa fragmenteze acel pachet si va distruge pachetul, transmitand emitatorului un mesaj de eroare. Al doilea flag (MF – More Fragment) specifica faptul ca mai urmeaza si alte fragmente. Cand receptorul primeste un fragment cu flag-ul MF pus pe “0”, aceste va fi ultimul pachet din serie.

      Procesul de reasamblare are loc astfel: la receptionarea unui pachet IP cu flag-ul MF setat (deci urmeaza si alte pachete), hostul destinatie va porni un “cronometru de reasamblare”. In acest mod toate fragmentele vor trebui sa soseasca inainte de expirarea termenului. Daca timpul de reasamblare expira inainte ca hostul sa primeasca ultimul pachet, toate celelalte vor fi ignorate, iar protocolul IP nu va procesa datagrama. Pe masura ce hostul receptor memoreaza pachetele sosite (in buffer-ul de reasamblare) modulul IP foloseste campul “adresa sursa” si “identificare” pentru a determina pachetele ce urmeaza sa fie reasamblate impreuna.

      Dupa sosirea ultimului pachet (cu flag-ul MT pus pe 0), protocolul IP poate calcula lungimea datagramei originale prin adunarea valorilor din campurile “deplasament fragment” si “lungime pachet”. Odata refacuta datagrama initiala, nivelul retea o va trata ca si cand aceasta nu ar fi fost niciodata fragmentata.

      Din cele prezentate mai sus se poate lesne intelege ca probabilitatea esuarii receptiei unei datagrame creste odata cu numarul de fragmente.

      Chiar daca prezentarea protocolului IP a fost facuta foarte sumar, ne putem da seama ca sunt multe (si indreptatite) motive ca accesarea unei pagini HTML (sau alta resursa Internet) sa esueze. Iar exclamatia “Iar nu merge Internetul!!!” poate fi urmata, de cele mai multe ori, de o explicatie foarte obiectiva, dar care nu se poate deduce din mesajele browser-ului web.