SlideShare a Scribd company logo
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare




                           Nivelul reţea




11.03.2013                             Protocoale de comunicaţie                              1
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



               Principiul comunicării în Internet
   •  Inspirat din sistemul clasic poştal.
   •  Drumul între utilizatorii A şi B
      trece prin ruterele
      IMP3, IMP7, IMP6.




11.03.2013                                   Protocoale de comunicaţie                              2
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                Reţele
   •  Modelul unei reţele:




   •  Nivelurile străbătute de pachete:




11.03.2013                                  Protocoale de comunicaţie                              3
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                 Nivelul reţea
   •  Funcţiile nivelului reţea:
             –  dirijarea pachetelor;
             –  adresarea;
             –  evitarea congestionării reţelei.
   •  Aspecte principale:
             –  servicii:
                 •  orientate pe conexiune;
                 •  ne-orientate pe conexiune.
             –  organizarea internă:
                 •  datagrame;
                 •  circuite virtuale.
             –  dirijarea (politici, algoritmi).




11.03.2013                                            Protocoale de comunicaţie                              4
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                   Organizarea internă – datagrame




     Folosită de                                                                         Folosită de
     pachetele                                                                           pachetul 4
     1, 2 şi 3




11.03.2013                                     Protocoale de comunicaţie                               5
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             Organizarea internă – circuit virtual




11.03.2013                                Protocoale de comunicaţie                              6
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                    Clasificarea algoritmilor de dirijare
   •  Fără tabele de dirijare:                                    •  Cu tabele de dirijare – alte
             –  inundarea                                            criterii:
             –  hot potato                                                –  criterii de dirijare:
                                                                                 •  calea cea mai scurtă;
   •  Cu tabele de dirijare – criterii
      diverse:                                                                   •  întârzierea medie globală;
                                                                                 •  folosirea eficientă a
             –  adaptarea la condiţiile de                                          resurselor;
                trafic:
                                                                                 •  echitabilitatea.
                 •  statică;
                                                                          –  informaţii schimbate între
                 •  dinamică.                                                noduri:
             –  locul unde se fac calculele:                                     •  starea legăturii;
                 •  descentralizată;                                             •  vectorul distanţelor;
                 •  centralizată;                                         –  tipul reţelei.
                 •  distribuită.




11.03.2013                                          Protocoale de comunicaţie                                    7
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             Algoritmi de dirijare – Calea cea mai scurtă
   •  Algoritmul lui Dijkstra:
             –  nnod: mulţimea nodurilor reţelei;
             –  sursa: nodul sursă;
             –  l[i][j]: costul legăturii (i,j), având valorile:
                 •  0 dacă i = j;
                 •  lungmax dacă i şi j nu sunt adiacente;
                 •  o valoare între 0 şi lungmax în celelalte cazuri;
             –  D[i]: costul minim al legăturii de la sursă la i;
             –  S: mulţimea nodurilor deja selectate;
             –  V: tabloul de dirijare:
                 •  V[i] = vecinul prin care se transmit date de la nodul curent la nodul i.




11.03.2013                                           Protocoale de comunicaţie                              8
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                          Algoritmul lui Dijkstra
   void Dijkstra (int sursa)‫‏‬
   {
     int i, j, k;
     for (i=1; i <= nnod; i++)‫‏‬
     {
         S[i] = 0;                      // nod neselectat
         D[i] = l[sursa][i];            // distantele minime de la sursa
         if (D[i] < lungmax)‫‏‬
           V[i] = i;                    // initializeaza vecinii
         else
           V[i] = 0;
       }
       S[sursa] = 1;                    // selecteaza nodul sursa
       D[sursa] = 0;
       for ( i=1; i < nnod; i++)‫‏‬
       {
           // gaseste nodul k neselectat cu D[k] minim;
           S[k] = 1;
           for (j=1; j <= nnod; j++)    // recalculeaza distantele
              if ((S[j] == 0) && (D[k] + l[k][j] < D[j]))‫‏‬
              {
                 D[j] = D[k] + l[k][j];
                 V[j] = V[k];           // modifica tabela de dirijare
               }
     }
   }
11.03.2013                                  Protocoale de comunicaţie                              9
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                       Dirijarea centralizată
   •  Algoritmul lui Floyd:
             –  Utilizează tabloul distanţelor minime A:
                  •  A[i][j] distanţa minimă de la nodul i la nodul j.
             –  Iniţial:
                  •  A[i][j] = l[i][j] pentru orice i şi j.
             –  Calculul drumurilor minime:
                  •  A[i][j]k = min (A[i][j]k-1, A[i][k]k-1 + A[k][j]k-1)‫‏‬
             –  Deoarece există relaţiile
                  •  A[i][k]k = A[i][k]k-1
                  •  A[k][j]k = A[k][j]k-1
                  calculul se poate realiza cu o singură copie a tabloului A.




11.03.2013                                             Protocoale de comunicaţie                              10
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                          Algoritmul lui Floyd
   void Floyd()‫‏‬
   {
     int i, j, k;
     for (i=1; i <= nnod; i++)‫‏‬
       for (j=1; j <= nnod; j++)‫‏‬
       {
         A[i][j] = l[i][j];
         if ( A[i][j] < lungmax)‫‏‬
           V[i][j] = j;
       }
     for (k=1; k <= nnod; k++)‫‏‬
       for ( i=1; i <= nnod; i++)‫‏‬
          for ( j=1; j <= nnod; j++)‫‏‬
             if (A[i][j] > A[i][k] + A[k][j])‫‏‬
             {
                 A[i][j] = A[i][k] + A[k][j];
                 V[i][j] = V[i][k];
             }
   }

11.03.2013                               Protocoale de comunicaţie                              11
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                 Dirijarea distribuită (starea legăturilor)‫‏‬
   •  C tabloul distanţelor:
             –  C[d][v] este lungimea (sau costul) drumului de la nodul curent la
                nodul destinatar d, prin nodul vecin v.
   •  D tabloul distanţelor minime:
             –  D[d] este lungimea drumului minim de la nodul curent la nodul
                destinatar d.
   •  V tabloul de dirijare:
             –  V[d] este nodul vecin prin care se transmit datele, pe drumul minim,
                spre destinatarul d.
   •  Evenimente tratate:
             –  adăugarea unei noi legături;
             –  sesizarea modificării lungimii unei linii;
             –  primirea unui mesaj de control de la un nod vecin.



11.03.2013                                         Protocoale de comunicaţie                              12
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                 Structuri de date pentru nodul crt
             C         vecini                                                         D              V
                                             v



Destinatar


             d                                                                      D[d]            V[d]




                          C[d][v]


11.03.2013                                   Protocoale de comunicaţie                                     13
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                        Adaugă legătura crt-m
             C       vecini                                                         D              V
                           m               v



Destinatar


             d                                                                    D[d]            V[d]

             m                                                                    D[m]            V[m]




                       C[m][m]


11.03.2013                                 Protocoale de comunicaţie                                     14
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                       Adaugă legătura crt-m
   /* adauga legatura (crt,m), crt = nodul curent*/

   void adauga_legatura (int m)‫‏‬
   {
     C[m][m] = l[crt][m];
     calculeaza p pentru care C[m][p]=min C[m][w], dupa w;
     V[m]=p;
     if (C[m][p] != D[m])‫‏‬
       {
         D[m] = C[m][p];
         transmite mesaj (crt,m,D[m]) tuturor vecinilor;
       }
     transmite mesajele (crt,a,D[a]),...,(crt,z,D[z]) nodului m
   }




11.03.2013                                Protocoale de comunicaţie                              15
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                  Schimbă cost crt-m cu delta_crt_m
              C           vecini                                                         D              V
                                m



Destinatar


              d                                                                        D[d]            V[d]




             C[d][m] se modifică pentru toate d


11.03.2013                                      Protocoale de comunicaţie                                     16
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



              Schimbă cost crt-m cu delta_crt_m
   void schimba_cost (int m, int delta_crt_m)‫‏‬
   {
      for (toate destinatiile d)‫‏‬
       { C[d][m] += delta_crt_m;
         calculeaza p a.i. C[d][p]=min C[d][w], dupa w;
         V[d] = p;
         if (C[d][p] != D[d])‫‏‬
            {
              D[d] = C[d][p];
              transmite mesaj (crt,d,D[d]) tuturor vecinilor;
            }
       }
   }                                m

                        +delta
                                                                                                    d

             crt

11.03.2013                                   Protocoale de comunicaţie                                  17
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



              Schimbă cost crt-m cu delta_crt_m
   void receptie_mesaj (int s, int d, int cost_s_d)‫‏‬
   {
        if (d != crt)‫‏‬
         { C[d][s] = cost_s_d + l[s][crt];
            calc p a.i. C[d][p] = min C[d][w], dupa w;
            V[d] = p;
            if (C[d][p] != D[d])‫‏‬
               {D[d] = C[d][p];
                 transmite mesaj (crt,d,D[d]) tuturor vecinilor;
               }
          }
      }
                                                               s
                                                                                cost_s_d
                        l[s][crt]
                                                                                                    d

             crt

11.03.2013                                   Protocoale de comunicaţie                                  18
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                             Starea legăturilor – variantă
   •  Operaţii executate de fiecare ruter:
             –  Descoperă vecinii şi află adresele de reţea (pachet HELLO).
             –  Determină costul la fiecare vecin (pachet ECHO).
             –  Alcătuieşte un pachet cu informaţiile culese:
                 •    identitatea expeditorului.
                 •    număr de secvenţă.
                 •    vârsta.
                 •    listă de <vecin, cost legatura>.
             –  Transmite pachetul tuturor ruterelor (inundare).
             –  Calculează cea mai scurtă cale la fiecare ruter (Dijkstra).




11.03.2013                                             Protocoale de comunicaţie                              19
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                   Dirijare folosind vectorul distanţelor
   •  Următorii vectori au fost primiţi de nodul C (lista include
      distanţele la nodurile A, B, C, D, E, F, în această ordine):
             –  De la B: (5, 0, 8, 12, 6, 2) ;
             –  De la D: (16, 12, 6, 0, 9, 10);
             –  De la E: (7, 6, 3, 9, 0, 4).
   •  Intârzierea măsurată de la C la B, D si E este 6, 3 şi 5 respectiv.




11.03.2013                                          Protocoale de comunicaţie                              20
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



              Dirijare folosind vectorul distanţelor
                De la B           D          E
     La
     A                   5        16         7
     B                   0        12         6
     C                   8        6          3
     D                   12       0          9
     E                   6        9          0
     F                   2        10         4

             De la C           Prin B                  D            E                           Cost          Pas
     La                                                                                         min         următor
     A                                   5+6           16 + 3       7+5                     11          B
     B                                   0+6           12 + 3       6+5                     6           B
     C                                   -             -            -                       0           -
     D                                   12 + 6        0+3          9+5                     3           D
     E                                   6+6           9+3          0+5                     5           E
     F                                   2+6           10 + 3       4+5                     8           B

11.03.2013                                       Protocoale de comunicaţie                                            21
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                           Problema numărării la infinit
   •  Toate legăturile au cost 1, exceptând (C,D) cu cost 10
   •  Costurile la ţintă sunt:                                             A                B
             –    D: direct conectată, cost 1
             –    B: ruta prin D, cost 2                                           C
             –    C: ruta prin B, cost 3
             –    A: ruta prin B, cost 3                                           D
   •  Legătura (B,D) cade!!!                                                             ţintă
   timp ------------------------------------------------------>
   D: dir, 1   dir, 1 dir, 1 dir, 1 ... dir, 1     dir, 1
   B: unreach C,    4 C,    5 C,    6     C, 11    C, 12
   C: B,   3   A,   4 A,    5 A,    6     A, 11    D, 11
   A: B,   3   C,   4 C,    5 C,    6     C, 11    C, 12

   •  Cauza: C alege ruta prin A şi A alege ruta prin C.
   •  În ultimul pas, C găseşte o cale mai ieftină prin D şi problema se
      rezolvă.
   •  Pentru reţele deconectate, numărarea continuă la infinit.
11.03.2013                                            Protocoale de comunicaţie                              22
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                      Soluţii
   •  Adoptate în RIP – Routing Information Protocol
             –  "simple split horizon" omite rutele învăţate de la un vecin în
                actualizările timise acestuia
             –  "split horizon with poisoned reverse" include astfel de rute dar pune
                un cost infinit.
   •  Ideea: în mesajul său către C, A trebuie să informeze că D nu
      mai este tangibil
                                                                                             A              B
             D:   dir, 1        dir, 1                 dir, 1
             B:   unreach       unreach                C, 12
                                                                                                      C
             C:   B,   3        D, 11                  D, 11
             A:   B,   3        unreach                C, 12
                                                                                                      D
   •  Protocoale care folosesc split horizon:                                                             ţintă
             –  RIP, Routing Information Protocol;
             –  IGRP, Interior Gateway Routing Protocol;
             –  EIGRP, Enhanced Interior Gateway Routing Protocol.

11.03.2013                                         Protocoale de comunicaţie                                      23
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                        Dirijare ierarhică




             –  Reducere număr intrări: 17 -> 7.
             –  Penalizare la destinaţia 5C.



11.03.2013                                         Protocoale de comunicaţie                              24
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                   Difuzare şi multicast
   •  Punct la punct – Trimite un pachet fiecărei destinaţii.
   •  Inundarea:
             –  Generează prea multe pachete.
             –  Copiile sunt distruse.
   •  Dirijarea multidestinaţie:
             –  Pachetul conţine lista adreselor de destinaţie.
   •  Arbore de acoperire. <1,2,3,4,5,6>
                                       0                                 1                                          2
                                                                                          <2,3,4>
                                                                                                    3     <2>
                                                                      <5,6>
                                                                                                          <4>
                                                                                                                4
                                                                                      5

                                                                                            <6>
                                                                                                          6
11.03.2013                                         Protocoale de comunicaţie                                            25
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                      Difuzare – urmărirea căii inverse
   •  Calea preferată între nodurile I şi X este cea pe care X trimite
      pachete lui I.
   •  Când un pachet ajunge la un ruter:
             –  Verifică în tabela sa de dirijare dacă a sosit pe calea preferată
                 •  este trimis pe toate celelalte linii dacă da.
                 •  este distrus, altfel.
             –  Figura:
                 •  (a) O subreţea
                 •  (b) un arbore de acoperire pentru nodul I
                 •  (c) un arbore construit prin algoritmul căilor inverse




11.03.2013                                          Protocoale de comunicaţie                              26
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                       Dirijarea pentru gazde mobile
   •  Funcţionare:
             –  Gazda mobilă cere să se înregistreze cu un agent străin (dă adresa
                de acasă).
             –  Agentul străin contactează agentul de acasă (transmite adresa
                străină + info securitate).
             –  Agentul de acasă validează.
             –  Agentul străin înregistrează gazda mobilă şi o informează.




11.03.2013                                         Protocoale de comunicaţie                              27
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                Dirijarea în reţele ad hoc
   •  AODV (Ad hoc On demand Distance Vector) determină ruta la cerere:
             –  Reţea ad hoc = graf.
             –  Muchie = conexiune – nodurile pot comunica direct (radio).
   •  Fiecare nod = ruter + gazdă
   •  Fiecare nod conţine:
             –  Tabela dirijare:
                 •    Destinaţie;
                 •    Pas următor;
                 •    Distanţă;
                 •    Număr secvenţă destinaţie;
                 •    Altele.
             –  Tabela history:
                 •  Identităţile cererilor precedente.
             –  Tabela reverse route:
                 •  Calea spre sursa unui pachet de cerere.
11.03.2013                                            Protocoale de comunicaţie                              28
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                            Cum funcţionează?
   •  Exemplu: A vrea sa comunice cu I care nu e în tabela sa ->
      trebuie să descopere ruta.




11.03.2013                                 Protocoale de comunicaţie                              29
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                           Pachete ROUTE REQUEST
   •  A difuzează un pachet ROUTE REQUEST
             –  Identificat unic prin Source address + Request ID
             –  Foloseşte Sequence # pentru a deosebi rutele noi de cele vechi
   •  Prelucrarea ROUTE REQUEST în fiecare nod:
             –  Verifică duplicat în tabela history locală (Source address + Request
                ID);
             –  Transmite ROUTE REPLY dacă găsit ruta nouă, adică:
                  •  Dest sequence # în routing table > Dest sequence # în packet
             –  Altfel,
                  •  Incrementează Hop count şi re-difuzează ROUTE REQUEST.
                  •  Memorează informaţia în reverse route table.
             –  Source sequence # folosit pentru actualizare tabelă dirijare locală.




11.03.2013                                          Protocoale de comunicaţie                              30
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                              Pachete ROUTE REPLY
   •  I construieşte ROUTE REPLY şi-l trimite pe legătura inversă:
             –  Source address, dest address, hop count sunt copiate;
             –  Destination sequence # luat din contorul propriu;
             –  Lifetime = cât timp rămâne valid,
   •  Prelucrarea la alte noduri:
             –  Actualizează tabela dirijare locală;
             –  Transmite pe legătura inversă;
             –  Trece prin anumite noduri – celelalte şterg intrarea în reverse route
                table.




11.03.2013                                         Protocoale de comunicaţie                              31
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                     Intreţinerea rutelor
   •  G cade (se defectează, se opreşte).
             –  D descoperă (se folosesc mesaje Hello periodice).
             –  D află că G a fost utilizat pe rute către E, G şi I.
             –  D anunţă vecinii activi (active neighbors) care folosesc G, anume
                {A, B}.
             –  D goleşte intrările pentru E, G şi I din tabela de rutare.




                                                                                                          G




11.03.2013                                         Protocoale de comunicaţie                                  32
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                          Protocolul IPv4
   •  Câmpuri:                                                   •  Câmpuri:
             –  SERVICE TYPE =                                           –  FLAGS:
                precedence (3), delay,                                          •  DF = Don’t Fragment
                throughput, reliability, cost.
                                                                                •  MF = More Fragments
             –  TYPE = protocol (TCP, UDP,
                etc.).                                                   –  Opţiuni:
             –  IDENTIFICATION datagrama                                        •    Security.
                de care aparţine fragmentul.                                    •    Strict source routing.
                                                                                •    Loose source routing.
                                                                                •    Record route.
                                                                                •    Timestamp.




11.03.2013                                         Protocoale de comunicaţie                                  33
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                      Adrese IP                                        C las e 	
  d e 	
  ad re s e

                                                                                                     E (1 / 16)
                                                                                                          D (1 / 16)



                                                                                                                       C (1 / 8)



                                                                          A (1 / 2)




                                                                                                                  B (1 / 4)




11.03.2013                             Protocoale de comunicaţie                                                                   34
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                       Adrese speciale
              Prefix   Sufix             Tip adresă                                    Scop
              Toţi 0   Toţi 0          Acest calculator                              Bootstrap
             Network   Toţi 0              Network                               Identificare reţea
             Network   Toţi 1            Broadcast                        Broadcast în reţeaua specificată
              Toţi 1   Toţi 1            Broadcast                          Broadcast în reţeaua locală
               127     Orice              Loopback                                    Testare

            Adrese                                Scop                             RFC              Clasa   Număr adrese
   0.0.0.0 - 0.255.255.255              Adrese zero                              RFC 1700             A        16 777 216
  10.0.0.0 - 10.255.255.255             Adrese private (locale)                  RFC 1918             A        16 777 216
 127.0.0.0 - 127.255.255.255            Localhost                                RFC 1700             A        16 777 216
169.254.0.0 - 169.254.255.255           Zeroconf                                 RFC 3330             B            65 536
 172.16.0.0 - 172.31.255.255            Adrese private (locale)                  RFC 1918             B         1 048 576
   192.0.2.0 - 192.0.2.255              Documentaţie, exemple                    RFC 3330             C               256
 192.88.99.0 - 192.88.99.255            Ipv6                                     RFC 3068             C               256
192.168.0.0 - 192.168.255.255           Adrese private (locale)                  RFC 1918             C            65 536
 198.18.0.0 - 198.19.255.255            Benchmark                                RFC 2544             C           131 072
 224.0.0.0 - 239.255.255.255            Multicast                                RFC 3171             D       268 435 456
 240.0.0.0 - 255.255.255.255            Rezervate                                RFC 1700             E       268 435 456
11.03.2013                                       Protocoale de comunicaţie                                             35
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                          Reprezentare pe biţi
   Clasa A
     0. 0. 0. 0 = 00000000.00000000.00000000.00000000
   127.255.255.255 = 01111111.11111111.11111111.11111111
                     0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH
   Clasa B
   128. 0. 0. 0 = 10000000.00000000.00000000.00000000
   191.255.255.255 = 10111111.11111111.11111111.11111111
                     10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH
   Clasa C
   192. 0. 0. 0 = 11000000.00000000.00000000.00000000
   223.255.255.255 = 11011111.11111111.11111111.11111111
                     110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH
   Clasa D
   224. 0. 0. 0 = 11100000.00000000.00000000.00000000
   239.255.255.255 = 11101111.11111111.11111111.11111111
                     1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
   Clasa E
   240. 0. 0. 0 = 11110000.00000000.00000000.00000000
   255.255.255.255 = 11111111.11111111.11111111.11111111
                     1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX


11.03.2013                                Protocoale de comunicaţie                              36
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                  Algoritm de rutare IP
   •  Tabela rutare – tipuri intrări:
             –  <network, 0>: pentru reţele distante
             –  <this-network, host>: pentru gazde locale
   •  Tabele rutare separate pentru diferite clase de adrese
   •  Căutare prin: indexare (A şi B) sau hashing (C)‫‏‬
   •  Algoritm rutare:
   Extrage adresa destinatiei DADR din datagrama
   Calculeaza adresa de retea a destinatiei NADR
   if NADR apartine unei retele direct conectate
     transmite datagrama gazdei de destinatie intr-un frame
   else
     if DADR apare in tabela dirijare
        ruteaza datagrama conform tabelei
     else
        if NADR apare in tabela dirijare
          ruteaza datagrama conform tabelei
        else
          ruteaza datagrama la un ruter implicit


11.03.2013                                         Protocoale de comunicaţie                              37
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                           Subreţele
   •  Organizarea în subreţele este invizibilă în afara reţelei.
   •  Ruterul principal dirijază pachetele spre ruterele de subreţea
      (cum?).
   •  Ruterele de subreţea le livrează gazdelor.




11.03.2013                                  Protocoale de comunicaţie                              38
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                 Adresarea în subreţele
   •  Exemplu: O reţea de clasă B impărţită în 64 subreţele.
   •  Tabela de rutare are intrări suplimentare pentru:
             –  (this-network, subnet, 0)‫‏‬
             –  (this-network, this-subnet, host)‫‏‬
   •  Modificare algoritm rutare:
             –  Foloseşte masca de subreţea pentru a separa reţea+subreţea şi
                gazdă.
             –  Dirijează spre subreţea (subnet).
             –  Doar în subreţeaua curentă dirijează direct către gazdă (host).
   •  Elimină limitările schemei de adresare bazată pe clase.




11.03.2013                                          Protocoale de comunicaţie                              39
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                 CIDR – Classless InterDomain Routing
   •  Ideea: alocă spaţiul de adrese IP în blocuri de lungimi diferite.
             –  Notaţia CIDR 194.24.0.0/21 => din cei 32 de biţi ai adresei:
                 •  reţea+subreţea = 21 biţi.
                 •  gazdă = 11 biţi.
   •  Exemplu:
      Adresă                             Mască
   C: 11000010 00011000 00000000 00000000    11111111 11111111 11111000 00000000
   E: 11000010 00011000 00001000 00000000    11111111 11111111 11111100 00000000
   O: 11000010 00011000 00010000 00000000    11111111 11111111 11110000 00000000
             –  Alocare adrese: zona de adrese pentru Oxford incepe la o frontieră
                de 4096 octeţi.
             –  Algoritm rutare:
                 •  (Adresa IP AND masca) comparată cu primul câmp al fiecărei intrări;
                 •  La mai multe coincidenţe se alege masca cea mai lungă.




11.03.2013                                          Protocoale de comunicaţie                              40
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             CIDR – Classless InterDomain Routing
   •  Soseşte pachet cu adresa 194.24.17.4:
             11000010 00011000 00010001 00000100
   •  ŞI logic cu masca de la Cambridge:
             11000010 00011000 00010000 00000000 -> nepotrivire
   •  ŞI logic cu masca de la Edinburgh:
             11000010 00011000 00010000 00000000 –> nepotrivire
   •  ŞI logic cu masca de la Oxford:
             11000010 00011000 00010001 00000000 -> potrivire
   •  Dacă nu sunt alte potriviri -> foloseşte intrarea pentru Oxford.




11.03.2013                                   Protocoale de comunicaţie                              41
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             CIDR – Classless InterDomain Routing
   •  Reducere dimensiune tabelă: agregarea intrărilor pentru o
      aceeaşi linie de ieşire
   Adresă                                                      Mască
   C: 11000010 00011000 00000000 00000000                      11111111 11111111 11111000 00000000
   E: 11000010 00011000 00001000 00000000                      11111111 11111111 11111100 00000000
   O: 11000010 00011000 00010000 00000000                      11111111 11111111 11110000 00000000

   •  Intrare agregată:
   Adresă                                                    Mască
   11000010 00011000 00000000 00000000                    11111111 11111111 11100000 00000000
   •  Corespunde cu 194.24.0.0/19
   •  Pentru toate adresele din C, E, O, ruterul trimite pe aceeaşi
      interfaţă.




11.03.2013                                    Protocoale de comunicaţie                              42
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             CIDR – Classless InterDomain Routing
                                          Clasa                CIDR
                                   A: 0                           /8
                                   B: 10                         /16
                                   C: 110                        /24
                                   D: 1110                        /4
                                   E: 11110                       /4

                           Adrese                                        Notaţia CIDR
                   0.0.0.0 - 0.255.255.255                                 0.0.0.0/8
                  10.0.0.0 - 10.255.255.255                                10.0.0.0/8
                 127.0.0.0 - 127.255.255.255                              127.0.0.0/8
                169.254.0.0 - 169.254.255.255                            169.254.0.0/16
                 172.16.0.0 - 172.31.255.255                             172.16.0.0/12
                   192.0.2.0 - 192.0.2.255                                192.0.2.0/24
                 192.88.99.0 - 192.88.99.255                             192.88.99.0/24
                192.168.0.0 - 192.168.255.255                            192.168.0.0/16
                 198.18.0.0 - 198.19.255.255                             198.18.0.0/15
                 224.0.0.0 - 239.255.255.255                              224.0.0.0/4
                 240.0.0.0 - 255.255.255.255                              240.0.0.0/4
11.03.2013                                  Protocoale de comunicaţie                              43
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             NAT – Network Address Translation
   •  O adresă = mai multe calculatoare.
   •  Foloseşte adrese locale (private sau non-rutabile) pentru o
      adresă globală.
   •  NAT translatează între adresa privată şi adresa globală.




11.03.2013                                 Protocoale de comunicaţie                              44
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                              Principiul NAT
   •  Foloseşte:
             –  adresa IP + număr port.
             –  tabela de translatare.
   •  Transmisie:
             –    înlocuieşte adresa IP locală cu o adresă IP globală;
             –    memorează (in tabela de translatare) corespondenţa şi număr port;
             –    inlocuieşte număr port cu index în tabela translatare;
             –    re-compune sumele de control IP şi TCP.
   •  Recepţie:
             –    obţine număr port din pachet (index în tabela translatare);
             –    extrage adresa IP locală şi număr port;
             –    înlocuieşte adresa IP şi număr port din pachet;
             –    re-calculează sumele de control IP şi TCP.


11.03.2013                                            Protocoale de comunicaţie                              45
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                     Protocoale de control în Internet
   •  Rezolvarea adreselor:
             –  Mapare adresa de protocol şi adresa hardware.
             –  Tehnici:
                •  tabele de corespondenţă.
                •  formule de calcul.
                •  schimb de mesaje.
   •  Address Resolution Protocol:
             –  livrare mesaj ARP




11.03.2013                                        Protocoale de comunicaţie                              46
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             ICMP – Internet Control Message Protocol
   •  ICMP foloseşte IP pentru transmisie <=> IP foloseşte ICMP
      pentru raportare de erori.
   •  Test accesibilitate (ping trimite ICMP Echo şi aşteaptă un timp
      răspunsul).
   •  Trasare (descoperire) rută (traceroute trimite serie de datagrame
      cu valori TIME TO LIVE crescătoare şi primeşte mesaje ICMP
      Time exceeded din care extrage adresa ruterului).




11.03.2013                                   Protocoale de comunicaţie                              47
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                  Unităţi de date
   •  MTU – Maximum Transmission Unit:


   •  Fragmentarea:




   •  Reasamblarea:




11.03.2013                                Protocoale de comunicaţie                              48
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



             Folosire ICMP pentru aflare path MTU
   •  Path MTU = MTU minimă pentru o cale.
   •  Foloseşte mesaj eroare ICMP = fragmentare cerută dar
      nepermisă.
   •  Sursa trimite probe cu DF în datagrama IP.
   •  Dacă datagrama > MTU => sursa primeşte eroare ICMP.
   •  Sursa trimite probe mai scurte.




11.03.2013                                  Protocoale de comunicaţie                              49
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                      Dirijarea în Internet
   •  Internet = număr mare de Autonomous Systems.
   •  Două tipuri de protocoale de dirijare:
             –  IGP – Interior Gateway Protocols (în AS).
                 •  RIP – Routing Information Protocol (Distance vector).
                 •  OSPF – Open Shortest Path First (Link state).
             –  EGP – Exterior Gateway Protocols (intre ASs).
                 •  BGP – Border Gateway Protocol.




11.03.2013                                          Protocoale de comunicaţie                              50
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                      OSPF – Open Shortest Path First
   •  Suportă:
             –  Linii punct la punct între două rutere.
             –  LANs.
             –  WANs.
   •  Modelul de graf:




11.03.2013                                          Protocoale de comunicaţie                              51
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                         OSPF
   •  Fiecare AS are mai multe
      zone
   •  Tipuri de rutere:
             –    interne
             –    de coloană vertebrală
             –    de graniţă zonală
             –    de graniţă AS
   •  OSPF foloseşte schimb de
      informaţii între rutere
      adiacente
   •  In LAN, un ruter desemnat
      este adiacent cu toate
      celelalte



11.03.2013                                           Protocoale de comunicaţie                              52
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                 Calcul rute
   •  Nivel 1 (zona)‫‏‬
             –  Fiecare ruter din zonă calculează separat căile cele mai scurte pe
                baza informaţiilor de la celelalte.
             –  Mesaje OSPF:
                 •  Hello – descoperă vecinii.
                 •  Actualizare stare legătură – furnizează costul unei legături + nr secv
                    (mai multe costuri intr-un pachet).
                 •  Confirmare stare legătură – confirmă primirea.
                 •  Descriere bază de date – furnizează toate costurile (vecin nou).
                 •  Cerere stare legătură – cere info de actualizare.
   •  Nivel 2 (AS)‫‏‬
             –  Ruterele backbone:
                 •  acceptă info de la area border routers.
                 •  calculateaza cele mai bune rute intre orice ruter backbone şi celelalte
                    rutere.
                 •  propagă info înapoi la area border routers.
             –  Area border routers avertizează ruterele din zonă.
             –  Fiecare ruter selectează cea mai bună ieşire spre backbone.


11.03.2013                                          Protocoale de comunicaţie                              53
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



               BGP – Border Gateway Protocol
   •  Algoritmi orientaţi pe aspectele politice, de securitate,
      economice.
   •  Reţea = ASs şi conexiunile.
   •  Protocol = vectorul distanţelor.
   •  Tabelele de dirijare conţin şi rutele spre destinaţie.
   •  Comunică vecinilor căile utilizate efectiv.




11.03.2013                                  Protocoale de comunicaţie                              54
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                             IPv6
   •  Motivaţii:
             –  Spaţiul de adrese
                   •  32 biţi = peste un milion de reţele
                   •  Dar...multe sunt Clasa C, prea mici pentru multe organizaţii
                   •  214 adrese de reţea Clasa B, multe folosite
             –  Tip servicii
                   •  Aplicaţii diferite au cerinţe diferite de livrare, siguranţă şi viteză
                   •  IPv4 are tip de serviciu dar adesea nu este implementat
   •  Caracterizare:
             –    format antet
             –    antete extensii
             –    support audio şi video
             –    protocol extensibil
             –    spaţiu adresa
             –    multicast
11.03.2013                                             Protocoale de comunicaţie                              55
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                               IPv6 – format datagramă
   •  IPv6 format Base header
   •  Base header:
             –  lungime fixă = 40 octeţi.
             –  Prioritate - clasa de trafic.
             –  FLOW LABEL - asociază
                datagramele unui flux.
             –  Diferenţe circuit virtual:
                 •  două fluxuri cu aceeaşi
                    etichetă se diferenţiază prin
                    adresa sursă + adresa
                    destinaţie.
                 •  aceeaşi pereche sursă +
                    destinaţie poate avea mai
                    multe fluxuri.




11.03.2013                                           Protocoale de comunicaţie                              56
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                            IPv6 – format datagramă
   •  Conţine mai puţine informaţii decât antetul IPv4:
             –  Restul de informaţii în extensii.
             –  NEXT HEADER defineşte tipul datelor (ex. TCP).
             –  NEXT HEADER defineşte tipul antetului de extensie (ex. route
                header).




11.03.2013                                        Protocoale de comunicaţie                              57
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                     IPv6 – antete extensie
   •  Hop-by-hop options – info pentru rutere;
             –  suport datagrame excedând 64K (jumbograme).
   •  Destination options – info adiţionale pentru destinaţie;
             –  nefolosit.
   •  Routing – lista rutere de vizitat.
   •  Fragmentation – identificare fragmente.
   •  Authentication – verificare identitate transmiţător.
   •  Encrypted security payload – informaţii despre conţinut criptat.




11.03.2013                                             Protocoale de comunicaţie                              58
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                Fragmentarea




11.03.2013                             Protocoale de comunicaţie                              59
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                           Fragmentarea
   •  Fragmentarea IPv6 are loc la sursă
             –  Ruterele ignoră datagramele mai lungi decât MTU
   •  Sursa:
             –  Fragmentează pachetele
             –  Descoperă path MTU
   •  Caracter dinamic
             –  calea se poate schimba.
   •  Eficienţa – antetul nu are spaţiu pierdut.
   •  Flexibilitate – noi antete pentru noi caracteristici.
   •  Dezvoltare incrementală – ruterele care tratează anumite antete
      coexistă cu altele care le ignoră.




11.03.2013                                        Protocoale de comunicaţie                              60
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                  Adresarea
   •  Adrese de 128 biţi
             –  Includ prefix reţea şi suffix gazdă.
   •  Fără clase de adresă – limita prefix/suffix oriunde.
   •  Tipuri speciale de adrese:
             –  unicast;
             –  multicast;
             –  cluster – colecţie de calculatoare cu acelaşi prefix; datagrama
                livrată unuia din ele (permite duplicare servicii).
   •  16 numere
   105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255
   •  Notaţie hexazecimală
   69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF
   •  Compresie zerouri
   FF0C:0:0:0:0:0:0:B1                ==> FF0C::B1
   •  Adrese IPv6 cu 96 zerouri prefix sunt interpretate ca adrese IPv4

11.03.2013                                          Protocoale de comunicaţie                              61
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                 IPv4-IPv6 Co-Existence / Transition

             (1) dual-stack techniques, to allow IPv4 and IPv6 to
                 co-exist in the same devices and networks

             (2) tunneling techniques, to avoid order dependencies
                 when upgrading hosts, routers, or regions

             (3) translation techniques, to allow IPv6-only devices
                 to communicate with IPv4-only devices




11.03.2013                                      Protocoale de comunicaţie                              62
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                 Mobile IP (v4 version)


                                                                                               mobile host



             correspondent                                                               foreign agent
                      host




                                                                         home agent


                                                                     home location of mobile host
11.03.2013
63                                                 Protocoale de comunicaţie
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                 Mobile IP (v6 version)


                                                                                               mobile host



             correspondent
                      host




                                                                         home agent


                                                                     home location of mobile host
11.03.2013
64                                                 Protocoale de comunicaţie
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                   Internetul peste IPv4


                                                                                                  Private v4
             Public v4
                                                                                                  Addresses
             Addresses
                                                                                         NAT




                                         Public v4 Addresses




                               NAT                                                       NAT

              Private v4                                                                        Private v4
              Addresses                                                                         Addresses
11.03.2013
65                                                 Protocoale de comunicaţie
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                Introducerea IPv6 (Vedere Simplificata)


                                                                                                  Public v6
             Public v4
                                                                                                  Addresses
             Addresses
                                                                                         NAT




                                         Public v4 Addresses




                               NAT                                                       NAT

              Private v4                                                                        Public v6
              Addresses                                                                         Addresses
11.03.2013
66                                                 Protocoale de comunicaţie
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                    Extinderea IPv6 (Vedere Simplificata)


                                                               Public v6
                                                               Addresses                                    Public v6
                                                                                                            Addresses
       Public v4
       Addresses                                    NAT



                     Public v4 Addresses
                                                      NAT                                Public v6
                                                                                         Addresses
                    NAT
                                                    NAT
             Private v4
             Addresses

                                                              Public v6                                     Public v6
                                                              Addresses                                     Addresses

11.03.2013
67                                                   Protocoale de comunicaţie
Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare



                                                          Sumar
                                                                     •  Protocolul IPv4:
   •  Funcţiile nivelului reţea.
                                                                            –    adrese IPv4
   •  Organizarea internă:                                                  –    dirijare IP
             –  datagrame;                                                  –    CIDR Classless InterDomain Routing
             –  circuit virtual.                                            –    NAT Network Address Translation
   •  Clasificarea algoritmilor:                                     •  Protocoale de control în
             –    calea cea mai scurtă;                                 Internet
             –    centralizată;                                             –  ARP Address Resolution Protocol.
             –    distribuită (starea legăturilor);                         –  ICMP Internet Control Message
                                                                                 Protocol.
             –    vectorul distanţelor;
             –    ierarhică;                                                –  OSPF Open Shortest Path First.
             –    difuzare şi multicast.                                    –  BGP Border Gateway Protocol.

   •  Dirijarea pentru gazde mobile. •  Protocolul IPv6:
                                                                            –  antete extensie;
   •  Dirijarea în reţele ad hoc.
                                                                            –  fragmentare.
                                                                            –  adrese IPv6.
11.03.2013                                             Protocoale de comunicaţie                                      68

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

05 nivelul retea (2)

  • 1. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Nivelul reţea 11.03.2013 Protocoale de comunicaţie 1
  • 2. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Principiul comunicării în Internet •  Inspirat din sistemul clasic poştal. •  Drumul între utilizatorii A şi B trece prin ruterele IMP3, IMP7, IMP6. 11.03.2013 Protocoale de comunicaţie 2
  • 3. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Reţele •  Modelul unei reţele: •  Nivelurile străbătute de pachete: 11.03.2013 Protocoale de comunicaţie 3
  • 4. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Nivelul reţea •  Funcţiile nivelului reţea: –  dirijarea pachetelor; –  adresarea; –  evitarea congestionării reţelei. •  Aspecte principale: –  servicii: •  orientate pe conexiune; •  ne-orientate pe conexiune. –  organizarea internă: •  datagrame; •  circuite virtuale. –  dirijarea (politici, algoritmi). 11.03.2013 Protocoale de comunicaţie 4
  • 5. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Organizarea internă – datagrame Folosită de Folosită de pachetele pachetul 4 1, 2 şi 3 11.03.2013 Protocoale de comunicaţie 5
  • 6. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Organizarea internă – circuit virtual 11.03.2013 Protocoale de comunicaţie 6
  • 7. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Clasificarea algoritmilor de dirijare •  Fără tabele de dirijare: •  Cu tabele de dirijare – alte –  inundarea criterii: –  hot potato –  criterii de dirijare: •  calea cea mai scurtă; •  Cu tabele de dirijare – criterii diverse: •  întârzierea medie globală; •  folosirea eficientă a –  adaptarea la condiţiile de resurselor; trafic: •  echitabilitatea. •  statică; –  informaţii schimbate între •  dinamică. noduri: –  locul unde se fac calculele: •  starea legăturii; •  descentralizată; •  vectorul distanţelor; •  centralizată; –  tipul reţelei. •  distribuită. 11.03.2013 Protocoale de comunicaţie 7
  • 8. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Algoritmi de dirijare – Calea cea mai scurtă •  Algoritmul lui Dijkstra: –  nnod: mulţimea nodurilor reţelei; –  sursa: nodul sursă; –  l[i][j]: costul legăturii (i,j), având valorile: •  0 dacă i = j; •  lungmax dacă i şi j nu sunt adiacente; •  o valoare între 0 şi lungmax în celelalte cazuri; –  D[i]: costul minim al legăturii de la sursă la i; –  S: mulţimea nodurilor deja selectate; –  V: tabloul de dirijare: •  V[i] = vecinul prin care se transmit date de la nodul curent la nodul i. 11.03.2013 Protocoale de comunicaţie 8
  • 9. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Algoritmul lui Dijkstra void Dijkstra (int sursa)‫‏‬ { int i, j, k; for (i=1; i <= nnod; i++)‫‏‬ { S[i] = 0; // nod neselectat D[i] = l[sursa][i]; // distantele minime de la sursa if (D[i] < lungmax)‫‏‬ V[i] = i; // initializeaza vecinii else V[i] = 0; } S[sursa] = 1; // selecteaza nodul sursa D[sursa] = 0; for ( i=1; i < nnod; i++)‫‏‬ { // gaseste nodul k neselectat cu D[k] minim; S[k] = 1; for (j=1; j <= nnod; j++) // recalculeaza distantele if ((S[j] == 0) && (D[k] + l[k][j] < D[j]))‫‏‬ { D[j] = D[k] + l[k][j]; V[j] = V[k]; // modifica tabela de dirijare } } } 11.03.2013 Protocoale de comunicaţie 9
  • 10. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijarea centralizată •  Algoritmul lui Floyd: –  Utilizează tabloul distanţelor minime A: •  A[i][j] distanţa minimă de la nodul i la nodul j. –  Iniţial: •  A[i][j] = l[i][j] pentru orice i şi j. –  Calculul drumurilor minime: •  A[i][j]k = min (A[i][j]k-1, A[i][k]k-1 + A[k][j]k-1)‫‏‬ –  Deoarece există relaţiile •  A[i][k]k = A[i][k]k-1 •  A[k][j]k = A[k][j]k-1 calculul se poate realiza cu o singură copie a tabloului A. 11.03.2013 Protocoale de comunicaţie 10
  • 11. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Algoritmul lui Floyd void Floyd()‫‏‬ { int i, j, k; for (i=1; i <= nnod; i++)‫‏‬ for (j=1; j <= nnod; j++)‫‏‬ { A[i][j] = l[i][j]; if ( A[i][j] < lungmax)‫‏‬ V[i][j] = j; } for (k=1; k <= nnod; k++)‫‏‬ for ( i=1; i <= nnod; i++)‫‏‬ for ( j=1; j <= nnod; j++)‫‏‬ if (A[i][j] > A[i][k] + A[k][j])‫‏‬ { A[i][j] = A[i][k] + A[k][j]; V[i][j] = V[i][k]; } } 11.03.2013 Protocoale de comunicaţie 11
  • 12. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijarea distribuită (starea legăturilor)‫‏‬ •  C tabloul distanţelor: –  C[d][v] este lungimea (sau costul) drumului de la nodul curent la nodul destinatar d, prin nodul vecin v. •  D tabloul distanţelor minime: –  D[d] este lungimea drumului minim de la nodul curent la nodul destinatar d. •  V tabloul de dirijare: –  V[d] este nodul vecin prin care se transmit datele, pe drumul minim, spre destinatarul d. •  Evenimente tratate: –  adăugarea unei noi legături; –  sesizarea modificării lungimii unei linii; –  primirea unui mesaj de control de la un nod vecin. 11.03.2013 Protocoale de comunicaţie 12
  • 13. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Structuri de date pentru nodul crt C vecini D V v Destinatar d D[d] V[d] C[d][v] 11.03.2013 Protocoale de comunicaţie 13
  • 14. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adaugă legătura crt-m C vecini D V m v Destinatar d D[d] V[d] m D[m] V[m] C[m][m] 11.03.2013 Protocoale de comunicaţie 14
  • 15. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adaugă legătura crt-m /* adauga legatura (crt,m), crt = nodul curent*/ void adauga_legatura (int m)‫‏‬ { C[m][m] = l[crt][m]; calculeaza p pentru care C[m][p]=min C[m][w], dupa w; V[m]=p; if (C[m][p] != D[m])‫‏‬ { D[m] = C[m][p]; transmite mesaj (crt,m,D[m]) tuturor vecinilor; } transmite mesajele (crt,a,D[a]),...,(crt,z,D[z]) nodului m } 11.03.2013 Protocoale de comunicaţie 15
  • 16. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Schimbă cost crt-m cu delta_crt_m C vecini D V m Destinatar d D[d] V[d] C[d][m] se modifică pentru toate d 11.03.2013 Protocoale de comunicaţie 16
  • 17. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Schimbă cost crt-m cu delta_crt_m void schimba_cost (int m, int delta_crt_m)‫‏‬ { for (toate destinatiile d)‫‏‬ { C[d][m] += delta_crt_m; calculeaza p a.i. C[d][p]=min C[d][w], dupa w; V[d] = p; if (C[d][p] != D[d])‫‏‬ { D[d] = C[d][p]; transmite mesaj (crt,d,D[d]) tuturor vecinilor; } } } m +delta d crt 11.03.2013 Protocoale de comunicaţie 17
  • 18. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Schimbă cost crt-m cu delta_crt_m void receptie_mesaj (int s, int d, int cost_s_d)‫‏‬ { if (d != crt)‫‏‬ { C[d][s] = cost_s_d + l[s][crt]; calc p a.i. C[d][p] = min C[d][w], dupa w; V[d] = p; if (C[d][p] != D[d])‫‏‬ {D[d] = C[d][p]; transmite mesaj (crt,d,D[d]) tuturor vecinilor; } } } s cost_s_d l[s][crt] d crt 11.03.2013 Protocoale de comunicaţie 18
  • 19. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Starea legăturilor – variantă •  Operaţii executate de fiecare ruter: –  Descoperă vecinii şi află adresele de reţea (pachet HELLO). –  Determină costul la fiecare vecin (pachet ECHO). –  Alcătuieşte un pachet cu informaţiile culese: •  identitatea expeditorului. •  număr de secvenţă. •  vârsta. •  listă de <vecin, cost legatura>. –  Transmite pachetul tuturor ruterelor (inundare). –  Calculează cea mai scurtă cale la fiecare ruter (Dijkstra). 11.03.2013 Protocoale de comunicaţie 19
  • 20. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijare folosind vectorul distanţelor •  Următorii vectori au fost primiţi de nodul C (lista include distanţele la nodurile A, B, C, D, E, F, în această ordine): –  De la B: (5, 0, 8, 12, 6, 2) ; –  De la D: (16, 12, 6, 0, 9, 10); –  De la E: (7, 6, 3, 9, 0, 4). •  Intârzierea măsurată de la C la B, D si E este 6, 3 şi 5 respectiv. 11.03.2013 Protocoale de comunicaţie 20
  • 21. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijare folosind vectorul distanţelor De la B D E La A 5 16 7 B 0 12 6 C 8 6 3 D 12 0 9 E 6 9 0 F 2 10 4 De la C Prin B D E Cost Pas La min următor A 5+6 16 + 3 7+5 11 B B 0+6 12 + 3 6+5 6 B C - - - 0 - D 12 + 6 0+3 9+5 3 D E 6+6 9+3 0+5 5 E F 2+6 10 + 3 4+5 8 B 11.03.2013 Protocoale de comunicaţie 21
  • 22. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Problema numărării la infinit •  Toate legăturile au cost 1, exceptând (C,D) cu cost 10 •  Costurile la ţintă sunt: A B –  D: direct conectată, cost 1 –  B: ruta prin D, cost 2 C –  C: ruta prin B, cost 3 –  A: ruta prin B, cost 3 D •  Legătura (B,D) cade!!! ţintă timp ------------------------------------------------------> D: dir, 1 dir, 1 dir, 1 dir, 1 ... dir, 1 dir, 1 B: unreach C, 4 C, 5 C, 6 C, 11 C, 12 C: B, 3 A, 4 A, 5 A, 6 A, 11 D, 11 A: B, 3 C, 4 C, 5 C, 6 C, 11 C, 12 •  Cauza: C alege ruta prin A şi A alege ruta prin C. •  În ultimul pas, C găseşte o cale mai ieftină prin D şi problema se rezolvă. •  Pentru reţele deconectate, numărarea continuă la infinit. 11.03.2013 Protocoale de comunicaţie 22
  • 23. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Soluţii •  Adoptate în RIP – Routing Information Protocol –  "simple split horizon" omite rutele învăţate de la un vecin în actualizările timise acestuia –  "split horizon with poisoned reverse" include astfel de rute dar pune un cost infinit. •  Ideea: în mesajul său către C, A trebuie să informeze că D nu mai este tangibil A B D: dir, 1 dir, 1 dir, 1 B: unreach unreach C, 12 C C: B, 3 D, 11 D, 11 A: B, 3 unreach C, 12 D •  Protocoale care folosesc split horizon: ţintă –  RIP, Routing Information Protocol; –  IGRP, Interior Gateway Routing Protocol; –  EIGRP, Enhanced Interior Gateway Routing Protocol. 11.03.2013 Protocoale de comunicaţie 23
  • 24. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijare ierarhică –  Reducere număr intrări: 17 -> 7. –  Penalizare la destinaţia 5C. 11.03.2013 Protocoale de comunicaţie 24
  • 25. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Difuzare şi multicast •  Punct la punct – Trimite un pachet fiecărei destinaţii. •  Inundarea: –  Generează prea multe pachete. –  Copiile sunt distruse. •  Dirijarea multidestinaţie: –  Pachetul conţine lista adreselor de destinaţie. •  Arbore de acoperire. <1,2,3,4,5,6> 0 1 2 <2,3,4> 3 <2> <5,6> <4> 4 5 <6> 6 11.03.2013 Protocoale de comunicaţie 25
  • 26. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Difuzare – urmărirea căii inverse •  Calea preferată între nodurile I şi X este cea pe care X trimite pachete lui I. •  Când un pachet ajunge la un ruter: –  Verifică în tabela sa de dirijare dacă a sosit pe calea preferată •  este trimis pe toate celelalte linii dacă da. •  este distrus, altfel. –  Figura: •  (a) O subreţea •  (b) un arbore de acoperire pentru nodul I •  (c) un arbore construit prin algoritmul căilor inverse 11.03.2013 Protocoale de comunicaţie 26
  • 27. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijarea pentru gazde mobile •  Funcţionare: –  Gazda mobilă cere să se înregistreze cu un agent străin (dă adresa de acasă). –  Agentul străin contactează agentul de acasă (transmite adresa străină + info securitate). –  Agentul de acasă validează. –  Agentul străin înregistrează gazda mobilă şi o informează. 11.03.2013 Protocoale de comunicaţie 27
  • 28. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijarea în reţele ad hoc •  AODV (Ad hoc On demand Distance Vector) determină ruta la cerere: –  Reţea ad hoc = graf. –  Muchie = conexiune – nodurile pot comunica direct (radio). •  Fiecare nod = ruter + gazdă •  Fiecare nod conţine: –  Tabela dirijare: •  Destinaţie; •  Pas următor; •  Distanţă; •  Număr secvenţă destinaţie; •  Altele. –  Tabela history: •  Identităţile cererilor precedente. –  Tabela reverse route: •  Calea spre sursa unui pachet de cerere. 11.03.2013 Protocoale de comunicaţie 28
  • 29. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Cum funcţionează? •  Exemplu: A vrea sa comunice cu I care nu e în tabela sa -> trebuie să descopere ruta. 11.03.2013 Protocoale de comunicaţie 29
  • 30. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Pachete ROUTE REQUEST •  A difuzează un pachet ROUTE REQUEST –  Identificat unic prin Source address + Request ID –  Foloseşte Sequence # pentru a deosebi rutele noi de cele vechi •  Prelucrarea ROUTE REQUEST în fiecare nod: –  Verifică duplicat în tabela history locală (Source address + Request ID); –  Transmite ROUTE REPLY dacă găsit ruta nouă, adică: •  Dest sequence # în routing table > Dest sequence # în packet –  Altfel, •  Incrementează Hop count şi re-difuzează ROUTE REQUEST. •  Memorează informaţia în reverse route table. –  Source sequence # folosit pentru actualizare tabelă dirijare locală. 11.03.2013 Protocoale de comunicaţie 30
  • 31. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Pachete ROUTE REPLY •  I construieşte ROUTE REPLY şi-l trimite pe legătura inversă: –  Source address, dest address, hop count sunt copiate; –  Destination sequence # luat din contorul propriu; –  Lifetime = cât timp rămâne valid, •  Prelucrarea la alte noduri: –  Actualizează tabela dirijare locală; –  Transmite pe legătura inversă; –  Trece prin anumite noduri – celelalte şterg intrarea în reverse route table. 11.03.2013 Protocoale de comunicaţie 31
  • 32. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Intreţinerea rutelor •  G cade (se defectează, se opreşte). –  D descoperă (se folosesc mesaje Hello periodice). –  D află că G a fost utilizat pe rute către E, G şi I. –  D anunţă vecinii activi (active neighbors) care folosesc G, anume {A, B}. –  D goleşte intrările pentru E, G şi I din tabela de rutare. G 11.03.2013 Protocoale de comunicaţie 32
  • 33. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Protocolul IPv4 •  Câmpuri: •  Câmpuri: –  SERVICE TYPE = –  FLAGS: precedence (3), delay, •  DF = Don’t Fragment throughput, reliability, cost. •  MF = More Fragments –  TYPE = protocol (TCP, UDP, etc.). –  Opţiuni: –  IDENTIFICATION datagrama •  Security. de care aparţine fragmentul. •  Strict source routing. •  Loose source routing. •  Record route. •  Timestamp. 11.03.2013 Protocoale de comunicaţie 33
  • 34. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adrese IP C las e  d e  ad re s e E (1 / 16) D (1 / 16) C (1 / 8) A (1 / 2) B (1 / 4) 11.03.2013 Protocoale de comunicaţie 34
  • 35. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adrese speciale Prefix Sufix Tip adresă Scop Toţi 0 Toţi 0 Acest calculator Bootstrap Network Toţi 0 Network Identificare reţea Network Toţi 1 Broadcast Broadcast în reţeaua specificată Toţi 1 Toţi 1 Broadcast Broadcast în reţeaua locală 127 Orice Loopback Testare Adrese Scop RFC Clasa Număr adrese 0.0.0.0 - 0.255.255.255 Adrese zero RFC 1700 A 16 777 216 10.0.0.0 - 10.255.255.255 Adrese private (locale) RFC 1918 A 16 777 216 127.0.0.0 - 127.255.255.255 Localhost RFC 1700 A 16 777 216 169.254.0.0 - 169.254.255.255 Zeroconf RFC 3330 B 65 536 172.16.0.0 - 172.31.255.255 Adrese private (locale) RFC 1918 B 1 048 576 192.0.2.0 - 192.0.2.255 Documentaţie, exemple RFC 3330 C 256 192.88.99.0 - 192.88.99.255 Ipv6 RFC 3068 C 256 192.168.0.0 - 192.168.255.255 Adrese private (locale) RFC 1918 C 65 536 198.18.0.0 - 198.19.255.255 Benchmark RFC 2544 C 131 072 224.0.0.0 - 239.255.255.255 Multicast RFC 3171 D 268 435 456 240.0.0.0 - 255.255.255.255 Rezervate RFC 1700 E 268 435 456 11.03.2013 Protocoale de comunicaţie 35
  • 36. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Reprezentare pe biţi Clasa A 0. 0. 0. 0 = 00000000.00000000.00000000.00000000 127.255.255.255 = 01111111.11111111.11111111.11111111 0nnnnnnn.HHHHHHHH.HHHHHHHH.HHHHHHHH Clasa B 128. 0. 0. 0 = 10000000.00000000.00000000.00000000 191.255.255.255 = 10111111.11111111.11111111.11111111 10nnnnnn.nnnnnnnn.HHHHHHHH.HHHHHHHH Clasa C 192. 0. 0. 0 = 11000000.00000000.00000000.00000000 223.255.255.255 = 11011111.11111111.11111111.11111111 110nnnnn.nnnnnnnn.nnnnnnnn.HHHHHHHH Clasa D 224. 0. 0. 0 = 11100000.00000000.00000000.00000000 239.255.255.255 = 11101111.11111111.11111111.11111111 1110XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX Clasa E 240. 0. 0. 0 = 11110000.00000000.00000000.00000000 255.255.255.255 = 11111111.11111111.11111111.11111111 1111XXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX 11.03.2013 Protocoale de comunicaţie 36
  • 37. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Algoritm de rutare IP •  Tabela rutare – tipuri intrări: –  <network, 0>: pentru reţele distante –  <this-network, host>: pentru gazde locale •  Tabele rutare separate pentru diferite clase de adrese •  Căutare prin: indexare (A şi B) sau hashing (C)‫‏‬ •  Algoritm rutare: Extrage adresa destinatiei DADR din datagrama Calculeaza adresa de retea a destinatiei NADR if NADR apartine unei retele direct conectate transmite datagrama gazdei de destinatie intr-un frame else if DADR apare in tabela dirijare ruteaza datagrama conform tabelei else if NADR apare in tabela dirijare ruteaza datagrama conform tabelei else ruteaza datagrama la un ruter implicit 11.03.2013 Protocoale de comunicaţie 37
  • 38. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Subreţele •  Organizarea în subreţele este invizibilă în afara reţelei. •  Ruterul principal dirijază pachetele spre ruterele de subreţea (cum?). •  Ruterele de subreţea le livrează gazdelor. 11.03.2013 Protocoale de comunicaţie 38
  • 39. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adresarea în subreţele •  Exemplu: O reţea de clasă B impărţită în 64 subreţele. •  Tabela de rutare are intrări suplimentare pentru: –  (this-network, subnet, 0)‫‏‬ –  (this-network, this-subnet, host)‫‏‬ •  Modificare algoritm rutare: –  Foloseşte masca de subreţea pentru a separa reţea+subreţea şi gazdă. –  Dirijează spre subreţea (subnet). –  Doar în subreţeaua curentă dirijează direct către gazdă (host). •  Elimină limitările schemei de adresare bazată pe clase. 11.03.2013 Protocoale de comunicaţie 39
  • 40. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare CIDR – Classless InterDomain Routing •  Ideea: alocă spaţiul de adrese IP în blocuri de lungimi diferite. –  Notaţia CIDR 194.24.0.0/21 => din cei 32 de biţi ai adresei: •  reţea+subreţea = 21 biţi. •  gazdă = 11 biţi. •  Exemplu: Adresă Mască C: 11000010 00011000 00000000 00000000 11111111 11111111 11111000 00000000 E: 11000010 00011000 00001000 00000000 11111111 11111111 11111100 00000000 O: 11000010 00011000 00010000 00000000 11111111 11111111 11110000 00000000 –  Alocare adrese: zona de adrese pentru Oxford incepe la o frontieră de 4096 octeţi. –  Algoritm rutare: •  (Adresa IP AND masca) comparată cu primul câmp al fiecărei intrări; •  La mai multe coincidenţe se alege masca cea mai lungă. 11.03.2013 Protocoale de comunicaţie 40
  • 41. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare CIDR – Classless InterDomain Routing •  Soseşte pachet cu adresa 194.24.17.4: 11000010 00011000 00010001 00000100 •  ŞI logic cu masca de la Cambridge: 11000010 00011000 00010000 00000000 -> nepotrivire •  ŞI logic cu masca de la Edinburgh: 11000010 00011000 00010000 00000000 –> nepotrivire •  ŞI logic cu masca de la Oxford: 11000010 00011000 00010001 00000000 -> potrivire •  Dacă nu sunt alte potriviri -> foloseşte intrarea pentru Oxford. 11.03.2013 Protocoale de comunicaţie 41
  • 42. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare CIDR – Classless InterDomain Routing •  Reducere dimensiune tabelă: agregarea intrărilor pentru o aceeaşi linie de ieşire Adresă Mască C: 11000010 00011000 00000000 00000000 11111111 11111111 11111000 00000000 E: 11000010 00011000 00001000 00000000 11111111 11111111 11111100 00000000 O: 11000010 00011000 00010000 00000000 11111111 11111111 11110000 00000000 •  Intrare agregată: Adresă Mască 11000010 00011000 00000000 00000000 11111111 11111111 11100000 00000000 •  Corespunde cu 194.24.0.0/19 •  Pentru toate adresele din C, E, O, ruterul trimite pe aceeaşi interfaţă. 11.03.2013 Protocoale de comunicaţie 42
  • 43. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare CIDR – Classless InterDomain Routing Clasa CIDR A: 0 /8 B: 10 /16 C: 110 /24 D: 1110 /4 E: 11110 /4 Adrese Notaţia CIDR 0.0.0.0 - 0.255.255.255 0.0.0.0/8 10.0.0.0 - 10.255.255.255 10.0.0.0/8 127.0.0.0 - 127.255.255.255 127.0.0.0/8 169.254.0.0 - 169.254.255.255 169.254.0.0/16 172.16.0.0 - 172.31.255.255 172.16.0.0/12 192.0.2.0 - 192.0.2.255 192.0.2.0/24 192.88.99.0 - 192.88.99.255 192.88.99.0/24 192.168.0.0 - 192.168.255.255 192.168.0.0/16 198.18.0.0 - 198.19.255.255 198.18.0.0/15 224.0.0.0 - 239.255.255.255 224.0.0.0/4 240.0.0.0 - 255.255.255.255 240.0.0.0/4 11.03.2013 Protocoale de comunicaţie 43
  • 44. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare NAT – Network Address Translation •  O adresă = mai multe calculatoare. •  Foloseşte adrese locale (private sau non-rutabile) pentru o adresă globală. •  NAT translatează între adresa privată şi adresa globală. 11.03.2013 Protocoale de comunicaţie 44
  • 45. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Principiul NAT •  Foloseşte: –  adresa IP + număr port. –  tabela de translatare. •  Transmisie: –  înlocuieşte adresa IP locală cu o adresă IP globală; –  memorează (in tabela de translatare) corespondenţa şi număr port; –  inlocuieşte număr port cu index în tabela translatare; –  re-compune sumele de control IP şi TCP. •  Recepţie: –  obţine număr port din pachet (index în tabela translatare); –  extrage adresa IP locală şi număr port; –  înlocuieşte adresa IP şi număr port din pachet; –  re-calculează sumele de control IP şi TCP. 11.03.2013 Protocoale de comunicaţie 45
  • 46. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Protocoale de control în Internet •  Rezolvarea adreselor: –  Mapare adresa de protocol şi adresa hardware. –  Tehnici: •  tabele de corespondenţă. •  formule de calcul. •  schimb de mesaje. •  Address Resolution Protocol: –  livrare mesaj ARP 11.03.2013 Protocoale de comunicaţie 46
  • 47. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare ICMP – Internet Control Message Protocol •  ICMP foloseşte IP pentru transmisie <=> IP foloseşte ICMP pentru raportare de erori. •  Test accesibilitate (ping trimite ICMP Echo şi aşteaptă un timp răspunsul). •  Trasare (descoperire) rută (traceroute trimite serie de datagrame cu valori TIME TO LIVE crescătoare şi primeşte mesaje ICMP Time exceeded din care extrage adresa ruterului). 11.03.2013 Protocoale de comunicaţie 47
  • 48. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Unităţi de date •  MTU – Maximum Transmission Unit: •  Fragmentarea: •  Reasamblarea: 11.03.2013 Protocoale de comunicaţie 48
  • 49. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Folosire ICMP pentru aflare path MTU •  Path MTU = MTU minimă pentru o cale. •  Foloseşte mesaj eroare ICMP = fragmentare cerută dar nepermisă. •  Sursa trimite probe cu DF în datagrama IP. •  Dacă datagrama > MTU => sursa primeşte eroare ICMP. •  Sursa trimite probe mai scurte. 11.03.2013 Protocoale de comunicaţie 49
  • 50. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Dirijarea în Internet •  Internet = număr mare de Autonomous Systems. •  Două tipuri de protocoale de dirijare: –  IGP – Interior Gateway Protocols (în AS). •  RIP – Routing Information Protocol (Distance vector). •  OSPF – Open Shortest Path First (Link state). –  EGP – Exterior Gateway Protocols (intre ASs). •  BGP – Border Gateway Protocol. 11.03.2013 Protocoale de comunicaţie 50
  • 51. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare OSPF – Open Shortest Path First •  Suportă: –  Linii punct la punct între două rutere. –  LANs. –  WANs. •  Modelul de graf: 11.03.2013 Protocoale de comunicaţie 51
  • 52. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare OSPF •  Fiecare AS are mai multe zone •  Tipuri de rutere: –  interne –  de coloană vertebrală –  de graniţă zonală –  de graniţă AS •  OSPF foloseşte schimb de informaţii între rutere adiacente •  In LAN, un ruter desemnat este adiacent cu toate celelalte 11.03.2013 Protocoale de comunicaţie 52
  • 53. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Calcul rute •  Nivel 1 (zona)‫‏‬ –  Fiecare ruter din zonă calculează separat căile cele mai scurte pe baza informaţiilor de la celelalte. –  Mesaje OSPF: •  Hello – descoperă vecinii. •  Actualizare stare legătură – furnizează costul unei legături + nr secv (mai multe costuri intr-un pachet). •  Confirmare stare legătură – confirmă primirea. •  Descriere bază de date – furnizează toate costurile (vecin nou). •  Cerere stare legătură – cere info de actualizare. •  Nivel 2 (AS)‫‏‬ –  Ruterele backbone: •  acceptă info de la area border routers. •  calculateaza cele mai bune rute intre orice ruter backbone şi celelalte rutere. •  propagă info înapoi la area border routers. –  Area border routers avertizează ruterele din zonă. –  Fiecare ruter selectează cea mai bună ieşire spre backbone. 11.03.2013 Protocoale de comunicaţie 53
  • 54. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare BGP – Border Gateway Protocol •  Algoritmi orientaţi pe aspectele politice, de securitate, economice. •  Reţea = ASs şi conexiunile. •  Protocol = vectorul distanţelor. •  Tabelele de dirijare conţin şi rutele spre destinaţie. •  Comunică vecinilor căile utilizate efectiv. 11.03.2013 Protocoale de comunicaţie 54
  • 55. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare IPv6 •  Motivaţii: –  Spaţiul de adrese •  32 biţi = peste un milion de reţele •  Dar...multe sunt Clasa C, prea mici pentru multe organizaţii •  214 adrese de reţea Clasa B, multe folosite –  Tip servicii •  Aplicaţii diferite au cerinţe diferite de livrare, siguranţă şi viteză •  IPv4 are tip de serviciu dar adesea nu este implementat •  Caracterizare: –  format antet –  antete extensii –  support audio şi video –  protocol extensibil –  spaţiu adresa –  multicast 11.03.2013 Protocoale de comunicaţie 55
  • 56. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare IPv6 – format datagramă •  IPv6 format Base header •  Base header: –  lungime fixă = 40 octeţi. –  Prioritate - clasa de trafic. –  FLOW LABEL - asociază datagramele unui flux. –  Diferenţe circuit virtual: •  două fluxuri cu aceeaşi etichetă se diferenţiază prin adresa sursă + adresa destinaţie. •  aceeaşi pereche sursă + destinaţie poate avea mai multe fluxuri. 11.03.2013 Protocoale de comunicaţie 56
  • 57. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare IPv6 – format datagramă •  Conţine mai puţine informaţii decât antetul IPv4: –  Restul de informaţii în extensii. –  NEXT HEADER defineşte tipul datelor (ex. TCP). –  NEXT HEADER defineşte tipul antetului de extensie (ex. route header). 11.03.2013 Protocoale de comunicaţie 57
  • 58. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare IPv6 – antete extensie •  Hop-by-hop options – info pentru rutere; –  suport datagrame excedând 64K (jumbograme). •  Destination options – info adiţionale pentru destinaţie; –  nefolosit. •  Routing – lista rutere de vizitat. •  Fragmentation – identificare fragmente. •  Authentication – verificare identitate transmiţător. •  Encrypted security payload – informaţii despre conţinut criptat. 11.03.2013 Protocoale de comunicaţie 58
  • 59. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Fragmentarea 11.03.2013 Protocoale de comunicaţie 59
  • 60. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Fragmentarea •  Fragmentarea IPv6 are loc la sursă –  Ruterele ignoră datagramele mai lungi decât MTU •  Sursa: –  Fragmentează pachetele –  Descoperă path MTU •  Caracter dinamic –  calea se poate schimba. •  Eficienţa – antetul nu are spaţiu pierdut. •  Flexibilitate – noi antete pentru noi caracteristici. •  Dezvoltare incrementală – ruterele care tratează anumite antete coexistă cu altele care le ignoră. 11.03.2013 Protocoale de comunicaţie 60
  • 61. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Adresarea •  Adrese de 128 biţi –  Includ prefix reţea şi suffix gazdă. •  Fără clase de adresă – limita prefix/suffix oriunde. •  Tipuri speciale de adrese: –  unicast; –  multicast; –  cluster – colecţie de calculatoare cu acelaşi prefix; datagrama livrată unuia din ele (permite duplicare servicii). •  16 numere 105.220.136.100.255.255.255.255.0.0.18.128.140.10.255.255 •  Notaţie hexazecimală 69DC:8864:FFFF:FFFF:0:1280:8C0A:FFFF •  Compresie zerouri FF0C:0:0:0:0:0:0:B1 ==> FF0C::B1 •  Adrese IPv6 cu 96 zerouri prefix sunt interpretate ca adrese IPv4 11.03.2013 Protocoale de comunicaţie 61
  • 62. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare IPv4-IPv6 Co-Existence / Transition (1) dual-stack techniques, to allow IPv4 and IPv6 to co-exist in the same devices and networks (2) tunneling techniques, to avoid order dependencies when upgrading hosts, routers, or regions (3) translation techniques, to allow IPv6-only devices to communicate with IPv4-only devices 11.03.2013 Protocoale de comunicaţie 62
  • 63. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Mobile IP (v4 version) mobile host correspondent foreign agent host home agent home location of mobile host 11.03.2013 63 Protocoale de comunicaţie
  • 64. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Mobile IP (v6 version) mobile host correspondent host home agent home location of mobile host 11.03.2013 64 Protocoale de comunicaţie
  • 65. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Internetul peste IPv4 Private v4 Public v4 Addresses Addresses NAT Public v4 Addresses NAT NAT Private v4 Private v4 Addresses Addresses 11.03.2013 65 Protocoale de comunicaţie
  • 66. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Introducerea IPv6 (Vedere Simplificata) Public v6 Public v4 Addresses Addresses NAT Public v4 Addresses NAT NAT Private v4 Public v6 Addresses Addresses 11.03.2013 66 Protocoale de comunicaţie
  • 67. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Extinderea IPv6 (Vedere Simplificata) Public v6 Addresses Public v6 Addresses Public v4 Addresses NAT Public v4 Addresses NAT Public v6 Addresses NAT NAT Private v4 Addresses Public v6 Public v6 Addresses Addresses 11.03.2013 67 Protocoale de comunicaţie
  • 68. Universitatea Politehnica Bucureşti - Facultatea de Automatică şi Calculatoare Sumar •  Protocolul IPv4: •  Funcţiile nivelului reţea. –  adrese IPv4 •  Organizarea internă: –  dirijare IP –  datagrame; –  CIDR Classless InterDomain Routing –  circuit virtual. –  NAT Network Address Translation •  Clasificarea algoritmilor: •  Protocoale de control în –  calea cea mai scurtă; Internet –  centralizată; –  ARP Address Resolution Protocol. –  distribuită (starea legăturilor); –  ICMP Internet Control Message Protocol. –  vectorul distanţelor; –  ierarhică; –  OSPF Open Shortest Path First. –  difuzare şi multicast. –  BGP Border Gateway Protocol. •  Dirijarea pentru gazde mobile. •  Protocolul IPv6: –  antete extensie; •  Dirijarea în reţele ad hoc. –  fragmentare. –  adrese IPv6. 11.03.2013 Protocoale de comunicaţie 68