SlideShare uma empresa Scribd logo
1 de 40
Baixar para ler offline
Ricordare i servizi principali
                        del livello IP
  •     Indirizzamento univoco degli host
  •     Unità di trasferimento dati
  •     Architettura di Internet


  •     Funzione di routing:
        – sceglie il percorso nella rete attraverso il quale
          consegnare i pacchetti
        – consegna i pacchetti da un host a un altro, ma in
          modo best effort, privo di conessione, e quindi non
          garantito



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.130




   Parte 4




                                            Modulo 8:
          Basi teoriche per il routing




                                                                                1
Host e router di default

  • Ciascun host fa riferimento a un router di default,
    detto anche first hop router
  • Quando un host invia un pacchetto, questo router
    prende il nome di source router
  • Analogamente, quando un host riceve un
    pacchetto, il suo router di defaulr prende il nome
    di destination router

  • Quindi, il problema del routing da host a host è in
    realtà un problema di routing da source router a
    destination router
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.132




                               Algoritmi di routing
       OBIETTIVO:
       Dato un insieme di router interconnessi,
       determinare il cammino ottimale dal source
       router al destination router


         Cammino ottimale  “Costo” minimo




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.133




                                                                                2
Cosa si intende per “costo”

  • Fattori statici: topologia della rete

  • Fattori dinamici: traffico della rete, guasti

  • Politiche di routing tra provider

  • Net neutrality?



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.134




                                  Modello della rete
  • Per formulare un algoritmo di routing, si modella
    la rete tramite un grafo pesato G(N,E) dove:
        • i nodi N rappresentano i router (oppure gli AS)
        • gli archi rappresentano le connessioni tra i
          router
        • le etichette E degli archi rappresentano il
          “costo” delle connessioni tra i router




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.135




                                                                                3
Rappresentazione mediante grafo




                router

                      host




                                                        Etichetta sull’arco:
                                                        “costo” per l’invio di un pacchetto

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.136




                              Algoritmi di routing




    Qual è il cammino minimo (e il suo costo) tra A e C?
    Qual è il cammino minimo (e il suo costo) tra A e F?
    Quanti percorsi ci sono tra A e F?
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.137




                                                                                                      4
Principali algoritmi di routing

  • Algoritmi di routing centralizzato
         – Ogni nodo possiede un’informazione globale sulla
           rete
         – Es., Link state protocol


  • Algoritmi di routing distribuito
         – Nessun nodo ha un’informazione completa del
           costo di tutti i link della rete
         – Es., Distance vector protocol

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.138




   Parte 4




                                          Modulo 8a:
                         Link state protocol




                                                                                5
Algoritmi Link State
• Gli algoritmi Link State (LS) sono centralizzati
• Prevedono che la topologia di rete e i costi di ogni
  link siano noti (disponibili in input all’algoritmo):
      1. Ogni nodo calcola lo stato dei link ad esso connessi
      2. Ciascun nodo periodicamente trasmette identità e costi
         dei link connessi (link state broadcast)
                (Quindi tutti i nodi hanno una visione identica e
                completa della rete)
      3. Ciascun nodo calcola i cammini di costo minimo verso
         tutti gli altri nodi della rete mediante l’Algoritmo di
         Dijkstra
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.140




  Pacchetti con informazioni sullo stato
              dei link (LSP)
Periodicamente vengono inviati in broadcast, su tutti
i link del nodo, dei pacchetti LSP con le seguenti
informazioni:
 • Node ID
 • Lista di vicini e costo dei rispettivi link
 • Informazioni aggiuntive:
      – Numero di sequenza per accorgesi di errori in caso
        di delivery out-of-order delle informazioni
      – Time To Live (TTL) per evitare di usare informazioni
        vecchie e quindi non affidabili


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.141




                                                                                6
Propagazione dei pacchetti LSP

Inoltro con algoritmo di flooding (inondazione)

Quando il nodo i riceve un LSP dal nodo j:

• Se il pacchetto LSP proveniente da j è più recente, si salva il
  valore nella tabella e si inoltra una copia a su tutti i link
  connessi al nodo i (ad eccezione di quello da cui l’LSP è
  stato ricevuto)

• Altrimenti il pacchetto LSP viene scartato


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.142




“Forward search algorithm” di Dijkstra
• Algoritmo iterativo: alla k-esima iterazione, il nodo i
  conosce il cammino di costo minore verso k nodi
  destinazione
• Si definiscono:
      – c(i,j) costo del link tra nodo i e nodo j
      – D(v) costo minimo del cammino verso il nodo v (minimo
        relativamente alla iterazione corrente). D(v)=∞ se il costo
        del link non è noto
      – p(v) immediato predecessore di v lungo il cammino a
        costo minimo verso v
      – N gruppo nodi il cui cammino di costo minore è noto
        definitivamente
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.143




                                                                                7
Algoritmo di Dijkstra - inizializzazione
• Passo di inizializzazione seguito da un ciclo
  eseguito una volta per ogni nodo del grafo
• Al termine saranno stati calcolati i cammini minimi
  dal nodo u verso tutti gli altri nodi

    Inizializzazione
          N = {u}
          Per tutti i nodi v
                    se v è adiacente a u
                             D(v) = c(u,v)
                   altrimenti D(v) = ∞



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                              4.144




                   Algoritmo di Dijkstra - ciclo


Ciclo
     1. Calcola il costo D(i) per tutti i nodi adiacenti i non in N
     2. Aggiungi a N il nodo w con il minimo costo D(w)
     3. Aggiorna D(v) per ciascun nodo v adiacente a w, non in N:
          D(v) = min{ D(v), D(w) + c(w,v) }
Until tutti i nodi del grafo sono nell’insieme N
                                                                        Il nuovo costo verso v è il
                                                                        vecchio costo verso v oppure
                                                                        il costo del cammino minimo
                                                                        verso w più il costo da w a v

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                              4.145




                                                                                                           8
Esempio (step 1)
Calcola per A il costo D(i) per tutti i nodi i adiacenti ad A
che non sono in N
                 5
                              3
                   3   B                C    5

                              A              3                              1        F
                                                                3
                                     1        D                           E      2
                                                               1
         Ciclo          N        D(B), p(B) D(C), p(C) D(D), p(D) D(E),p(E)                   D(F), p(F)
                        A            3, A               5, A              1, A       ∞            ∞




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                 4.146




                                  Esempio (step 2)
Aggiungi a N il nodo w con il minimo costo D(w)
                5
                             3
                  3   B            C   5

                              A              3                              1        F
                                                               3
                                     1        D                           E      2
                                                               1

         Ciclo          N        D(B),p(B)         D(C),p(C)            D(D),p(D) D(E),p(E)   D(F),p(F)
                        A             3,A               5,A               1,A            ∞        ∞
                       AD



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                 4.147




                                                                                                              9
Esempio (step 3)
Aggiorna D(v) per ciascun nodo v adiacente a w, non in N:
        D(v) = min{ D(v), D(w) + c(w,v) }
                                 5
                                                            3
                                     3          B                         C      5

                              A              3                               1           F
                                                               3
                                     1          D                         E          2
                                                               1
         Ciclo          N        D(B),p(B)          D(C),p(C)           D(D),p(D) D(E),p(E)        D(F),p(F)
                        A             3,A               5,A               1,A                ∞         ∞
                        AD            3,A               4,D                                  2,D       ∞


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                      4.148




                                 Esempio (ciclo 2)

                               5
                                                           3
                                     3       B                           C       5

                             A              3                                1           F
                                                              3
                                     1       D                           E       2
                                                              1

    Ciclo           N        D(B),p(B)           D(C),p(C)         D(D),p(D)         D(E),p(E)     D(F),p(F)
        0           A              3,A               5,A                 1,A             ∞            ∞
        1          AD              3,A               4,D                                 2,D
        2         ADE              3,A               3,E                                             4,E


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                      4.149




                                                                                                                   10
Esempio (ciclo 3)

                               5
                                                           3
                                   3         B                            C       5

                            A              3                                  1         F
                                                              3
                                    1        D                            E         2
                                                            1

    Ciclo           N         D(B),p(B)          D(C),p(C)              D(D),p(D)       D(E),p(E)   D(F),p(F)
       0            A              3,A                5,A                 1,A               ∞          ∞
       1           AD              3,A                4,D                                   2,D
       2          ADE              3,A                3,E                                             4,E
       3         ADEB                                 3,E

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                       4.150




                                 Esempio (ciclo 4)

                               5
                                                           3
                                   3         B                            C       5

                            A              3                                  1         F
                                                              3
                                    1        D                            E         2
                                                            1
    Ciclo            N          D(B),p(B)          D(C),p(C)            D(D),p(D)       D(E),p(E)   D(F),p(F)
       0             A               3,A                5,A                1,A              ∞          ∞
       1            AD               3,A               4,D                                  2,D
       2           ADE               3,A                3,E                                           4,E
       3          ADEB                                  3,E
       4        ADEBC                                                                                 4,E

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                       4.151




                                                                                                                    11
Esempio (ciclo 5)

                           5                               3
                                   3          B                          C       5

                            A              3                                 1       F
                                                             3
                                    1         D                          E       2
                                                            1
    Ciclo             N           D(B),p(B)         D(C),p(C)           D(D),p(D) D(E),p(E)    D(F),p(F)
       0              A                 3,A              5,A              1,A            ∞        ∞
       1             AD                 3,A              4,D                             2,D
       2            ADE                 3,A              3,E                                     4,E
       3           ADEB                                  3,E
       4          ADEBC                                                                          4,E
       5         ADEBCF

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                  4.152




   Parte 4




                                         Modulo 8b:
             Distance vector protocol




                                                                                                               12
Algoritmi Distance Vector

   • Usati nel primo periodo di Internet (ARPANET)
   • Calcolo distribuito del next hop. E’ un algoritmo:
          – adattativo rispetto ai cambiamenti di stato della
            rete
          – iterativo
          – asincrono
   • Unità di scambio dell’informazione:
          – Vettore di distanze rispetto alle varie destinazioni
   • Esempio principale di implementazione:
          – Algoritmo Bellman-Ford distribuito
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet           4.154




      Algoritmo Bellman-Ford: premessa

• Si usa la formula di Bellman-Ford per il calcolo del
  costo minimo tra x e y:
                                   Dx(y) = minv { c(x,v) + Dv(y) }
       dove minv è calcolato tra tutti i vicini v del nodo x


 • Intuitivamente, la formula è molto chiara:
       – tra tutti i nodi v adiacenti al nodo x, il percorso da scegliere è quello
         che mi porta con il minor costo da v a y,
       – a meno che (da cui la considerazione del primo addendo) il costo tra
         x e v sia talmente alto che mi conviene percorrere altre strade



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet           4.155




                                                                                        13
Intuizione dell’algoritmo Bellman-Ford




    Come abbiamo calcolato il cammino minimo tra A e C?


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.156




      Algoritmo Bellman-Ford: premessa

• Ogni nodo:
       – aggiorna il proprio vettore di distanze in risposta a
         variazioni di costi sui link adiacenti
       – invia un aggiornamento ai nodi adiacenti se il proprio
         vettore di distanze cambia

• Ogni nodo x mantiene una tabella con i seguenti dati:
       – c(x,v) costo del link tra nodo x e nodo v in N
       – c(x,v)=∞ se non c’è link tra nodo x e nodo v in N
       – Dx=[Dx(y): y in N] vettore di distanze del nodo x verso
         tutti i nodi y nella rete N
       – Dv=[Dv(y): y in N] vettori di distanze dei vicini v di x

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.157




                                                                                14
Algoritmo Bellman-Ford
Start
Per tutte le destinazioni y  N:
   Dx(y) = c(x,y) se y è adiacente
   Dx(y) = ∞        se y non è adiacente
Invia il vettore di distanze Dx = [Dx(y) | y  N] ad ogni vicino v

Loop
      Attendi (finchè il costo di un collegamento verso qualche vicino v
             cambia o ricevi un vettore di distanze da un vicino v)
      Per ogni destinazione y in N:
              Dx(y) = minv { c(x,v) + Dv(y) }
      Se Dx(y) è cambiato per qualche destinazione y
             invia il vettore di distanze Dx = [Dx(y) : y  N] a tutti i vicini

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.158




            Esempio: distanze iniziali (start)


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7   ∞    ∞      1
  A                        8                                   2        B   7   0   1    ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    ∞   2      0




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.159




                                                                                                        15
E riceve il vettore di distanze da D


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7   ∞    ∞      1
  A                        8                                   2        B   7   0    1   ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    ∞   2      0




   D dice: “io arrivo a C in 2, e a E in 2; non sono collegato a A e B”

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.160




                         E aggiorna i costi per C


                                         1
                       B                                  C                 Distanza dal nod

         7                                                                  A   B    C   D      E

                                                                        A   0   7   ∞    ∞      1
  A                        8                                   2        B   7   0    1   ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    4   2      0




   E scopre che può arrivare a C in 2+2 passando attraverso D

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.161




                                                                                                        16
A riceve il vettore di distanze da B


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7   ∞    ∞      1
  A                        8                                   2        B   7   0   1    ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    4   2      0




   B dice: “io arrivo a C in 1, e a E in 8; non sono collegato a D”

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.162




                 A aggiorna i costi solo per C


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7    8   ∞      1
  A                        8                                   2        B   7   0    1   ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    4   2      0




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.163




                                                                                                        17
A riceve il vettore di distanze da E


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7    8   ∞      1
  A                        8                                   2        B   7   0    1   ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    4   2      0




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.164




                  A aggiorna i costi per C e D


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   7    5   3      1
  A                        8                                   2        B   7   0    1   ∞      8
                                                                        C   ∞   1    0   2      ∞
        1                               2                               D   ∞   ∞    2   0      2
                       E                                   D
                                                                        E   1   8    4   2      0




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.165




                                                                                                        18
Distanze finali (aggiornate)


                                         1
                       B                                  C                 Distanza dal nodo

         7                                                                  A   B    C   D      E

                                                                        A   0   6    5   3      1
  A                        8                                   2        B   6   0    1   3      5
                                                                        C   5   1    0   2      4
        1                               2                               D   3   3    2   0      2
                       E                                   D
                                                                        E   1   5    4   2      0




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.166




                                  Tabella di routing
  • L’algoritmo di Bellman-Ford ha un’immediata
    ricaduta pratica. Serve, infatti per calcolare i valori
    della Tabella di routing di ciascun router
  • La Tabella di routing del nodo x ha:
        – una riga per ogni nodo destinazione nella rete (router o
          AS)
        – tante colonne quanti sono i nodi adiacenti al nodo x
        – i costi di cammino come elementi della tabella
  • In questo modo, nel momento in cui arriva un
    pacchetto con un indirizzo destinazione, il router
    può facilmente decidere su quale link inoltrarlo

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.167




                                                                                                        19
Instradamento visto dal nodo E

                                         1                               Tabella di routing di E
                       B                                  C
                                                                                Next hop
         7                                                              Dest    A   B      D

                                                                         A      1   14     5
  A                        8                                   2
                                                                         B      7   8      5
                                                                         C      6   9      4
        1                               2
                                                           D             D      4   11     2
                       E

  La routing table di E ha una riga per ogni destinazione nella rete e tante
  colonne quanti sono i nodi adiacenti al nodo stesso

  I percorsi di minor costo per la corrispondente destinazione
             sono indicati in rosso nella routing table
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                          4.168




                                         Osservazioni

  Ci sono circa 700 milioni di host e milioni di router

  • E’ credibile una tabella che contenga tutti i router
    di Internet come destinazione?

  • Come si gestisce nella realtà il problema?




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                          4.169




                                                                                                       20
Problema 1: un link “degrada”
                                         1
                       B                                  C                     Distanza dal nodo

         7                                                                      A   B       C   D    E

                                                                            A   0   7       8   10   1
  A                        8                                    2           B   7   0       1   3    8
                                                                            C   8   1       0   2    9
        1                               2                                   D   10 3        2   0    11
                       E                                   D
                                                                            E   1   8       9   11   0
                                         11



• I nodi che vertono sul link E-D, ricalcolano il vettore distanza
• Aggiornano la propria routing table e trasmettono il nuovo vettore ai vicini
• Ciascun nodo ricalcolerà il proprio vettore distanza e, iterativamente, lo
  invierà ai nodi vicini
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                4.170




                 Problema 2: effetto rimbalzo


               dest cost                                                            dest cost
                                                            1
                  B        1                                                            A   1
                                   A                                            B
                  C        2                                                            C   1



                                          25                                1


                                                              C
                                                                    dest cost
                                                                        A   2
                                                                        B   1


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                4.171




                                                                                                             21
Esempio: link A-B ha un problema


                dest cost                                                                   dest cost
                                                          1  50
                  B       1                                                                  A       1
                                   A                                                    B
                  C       2                                                                  C       1



                                          25                                    1


                                                            C
                                                                   dest cost
                                                                        A       2
                                                                        B       1


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                        4.172




                 B aggiorna le distanze per A
     (tenendo conto dei dati di C-A, che però includeva il passaggio per B)




         dest cost                                                                           dest cost
            B       1                                       50                                   A       3
                                   A                                                    B
            C       2                                                                            C       1



                                          25                                    1


                                                            C
                                                                        dest cost
                                                                            A       2
                                                                            B       1


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                        4.173




                                                                                                                     22
B manda il vettore di distanze a C


                                                                                      dest cost
     dest cost
                                                            50                         A   3
        B       1                  A                                              B
                                                                                       C   1
        C       2


                                          25                             1


                                                            C
                                                                        dest cost
                                                                         A    4
                                                                         B    1


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                             4.174




        C manda il vettore di distanze a B


                                                                                      dest cost
     dest cost
                                                            50                         A   5
        B       1                  A                                              B
                                                                                       C   1
        C       2


                                          25                              1


                                                             C
                                                                        dest cost
                                                                         A    4
                                                                         B    1


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                             4.175




                                                                                                          23
Come si crea l’effetto rimbalzo

• La distanza diretta da B verso A cresce molto
• Quindi, B sceglie C come prossimo hop per A
• Ma…, il percorso implicito da C verso A include
  B!
• Le tabelle di B e C si aggiornano gradualmente, ma
  si crea un loop che proseguirà fino a quando C
  considererà il proprio percorso verso A attraverso B
  minore di 25
• Un pacchetto che arrivi a B o a C durante
  l’esistenza del loop rimbalzerà tra questi due nodi


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                      4.176




Caso peggiore: non c’è stabilizzazione
                                                        • Nel caso in cui il link C-D diventa
                                                          inutilizzabile, C marca D come
                                                          irraggiungibile e lo elimina dagli
        A                  1                              aggiornamenti inviati ad A e B
                                            B
                                                        • Si supponga che A riceva per
                                                          primo l’aggiornamento. Adesso A
                1                     1                   considera che il cammino minimo
                                                          verso D sia attraverso B
                           C                            • A dichiara D irraggiungibile a B e
                                                          a C notifica un costo pari a 3
                       1                                • C vede D raggiungibile attraverso
                                                          A a costo 4 e lo notifica a B
        D                                               • B notifica un costo di 5 ad A che
                                                          notificherà un costo aggiornato di
                                                          6aC
                                                        • Rischio: “count-to-infinity”
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                      4.177




                                                                                                   24
Possibili soluzioni
• Evitare il “count-to-infinity”
       – Scegliere una soglia (abbastanza bassa) per “rappresentare”
         l’infinito. Es., massimo numero di hop necessari = 16
• Split Horizon
       – Bisogna differenziare i vettori di distanze inviati ai nodi adiacenti: il
         vettore di B inviato a C non conterrà le destinazioni raggiungibili
         tramite C
       – Obiettivo: “Se B raggiunge A attraverso C, non ha senso per C
         cercare di raggiungere A attraverso B”
• Split Horizon with poisoned reverse
       – Se B raggiunge A attraverso C, B avvertirà C che la sua distanza
         verso A è infinita (anche se in realtà sa di poter instradare i pacchetti
         tramite C, il costo risulta troppo alto)

• Queste soluzioni non funzionano per cicli che
  coinvolgono 3 o più nodi
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet            4.178




                       Evitare l’effetto rimbalzo

  • Per evitare l’effetto rimbalzo (bouncing effect) si
    devono selezionare percorsi senza cicli
  • Un modo per farlo:
        – Ogni aggiornamento del cammino minimo verso un
          nodo riporta l’intero percorso
        – Se un router vede se stesso nel percorso, scarta il
          percorso

  • Problema: la quantità di dati trasmessi è
    proporzionale alla distanza tra i nodi

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet            4.179




                                                                                         25
Parte 4




                  Modulo 8c:
         Distance Vector vs. Link State




              Distance Vector vs. Link State

• DV: tutto quello che si sa è propagato solo ai vicini
• LS: le informazioni sui vicini sono passate a tutti

• Dimensione dei messaggi
     – LS: piccola
     – DV: potenzialmente grande
• Numero di messaggi
     – LS: molto grande, di tipo O(n), dove n sono i nodi del grafo
     – DV: piccolo in quanto comunicazioni solo ai vicini


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.181




                                                                                26
Distance Vector vs. Link State

  • Velocità di convergenza
        – LS: veloce
        – DV: veloce se si usano aggiornamenti periodici
          abbastanza frequenti (però, aggiornamenti troppo
          frequenti sono a rischio di instabilità)


  • Requisito di memorizzazione
        – LS: molto alto  si mantiene l’intera topologia del grafo
        – DV: basso  si mantiene solo lo stato dei vicini



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.182




              Distance Vector vs. Link State

  • Robustezza
    – LS: calcolo dei percorsi effettuato in maniera
      indipendente da ogni nodo
             protezione contro guasti ai router


        – DV: calcolo dei percorsi basato sui calcoli degli
          altri router
             il calcolo sbagliato di un router può essere
                 propagato a gran parte della rete (“count-to-infinity”)

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.183




                                                                                27
Conclusione

• Non c’è un chiaro vincitore tra i due algoritmi:
      – Distance vector (distribuito) ha dei vantaggi
      – Link state (centralizzato) ha altri vantaggi


• Gli algoritmi di tipo Link state (centralizzati)
  tendono ad essere utilizzati all’interno degli AS
• Gli algoritmi di tipo Distance vector (distribuiti)
  sono utilizzati per il routing tra AS



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.184




   Parte 4




                                            Modulo 9:
                              Routing e router




                                                                                28
Router

Il router deve risolvere un
problema molto ben definito:
Instradare i pacchetti nella
rete da un qualsiasi host
ad un qualsiasi altro host




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.186




                            Problema del routing
• Instradare i pacchetti nella rete da un qualsiasi host
  ad un qualsiasi altro host è un problema complesso

• Quando un problema è complesso si suddivide in
  sottoproblemi più semplici:
     – Sottoproblema 1: ad ogni pacchetto in ingresso,
       determinare il link di uscita in modo che il pacchetto si
       avvicini alla destinazione (IP forwarding)
     – Sottoproblema 2: mantenere informazioni aggiornate
       per risolvere il sottoproblema1 (protocollo di routing)


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.187




                                                                                29
Routing IP
               rete                                                             rete
          130.192.xxx.xxx                                                 192.106.248.xxx

                                    hop (salto)

                                              router                    router



                                                 Internet
  sorgente                                                                         destinazione
 130.192.2.1                                                                     192.106.248.121
• I router si passano i pacchetti come una “patata bollente”: bisogna
  conoscere solo l’indirizzo del prossimo hop
• A volte il routing non ha successo perché i router sovraccarichi scartano
  pacchetti (limite fisico) o vi possono errori di routing (errore logico)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                            4.188




                      Architettura di un router
  4 componenti fondamentali nell’architettura di un router:
         - porta di ingresso
         - commutatore
         - processore di routing
         - porta di uscita




                                                                        Funzionalità di:
                                                                            livello 1 (fisico)
                                                                             livello 2
                                                                             livello 3 (IP)




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                            4.189




                                                                                                         30
Architettura di un router (2)

  Porta di ingresso:
         - funzioni del livello 1                                        associate ad un singolo
                                                                         link di ingresso
         - funzioni del livello 2
         - funzioni del livello 3  funzioni di ricerca e forwarding della porta
         di uscita; ottimizzazione della ricerca nella tabella di routing




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.190




                 Architettura di un router (3)
Componenti di switching
       FUNZIONE: spostamento del pacchetto dalla porta di ingresso a quella
       di uscita “opportuna”
       TECNICHE: Commutazione basata su switch, bus o rete di
       interconnessione crossbar




                                                                switch




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.191




                                                                                                      31
Architettura di un router (4)
  Porta di uscita:
         - funzioni del livello 1                                         associate con un
         - funzioni del livello 2                                       singolo link di uscita

         - funzioni del livello 3  funzioni di gestione della coda e del buffer di
         uscita (la velocità con cui il commutatore consegna i pacchetti deve
         essere superiore alla capacità del link di uscita)




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                            4.192




                                       IP Forwarding
 • IP forwarding (inoltro): meccanismo con cui un
   router trasferisce i datagram da un’interfaccia
   d’ingresso a quella in uscita
 • Effettuato da ogni router
 • Il next-hop router appartiene a una rete alla
   quale il router è collegato direttamente

 Per inoltrare i pacchetti:
        – l’indirizzo di destinazione viene estratto dall’header del
          datagram
        – l’indirizzo di destinazione è usato come indice nella
          tabella di routing

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                            4.193




                                                                                                         32
Tabella di routing
• Ogni host e ogni router hanno una tabella di routing
  in cui ciascuna riga fornisce il next-hop per ogni
  possibile destinazione

  • Le tabelle di routing possono avere anche più di 50-60000
    righe
  • Le dimensioni (crescenti) delle tabelle di routing potrebbero
    essere un limite allo sviluppo di Internet
  • In realtà, una riga può fornire informazioni per molte
    destinazioni con l’utilizzo di tecniche di aggregazione



 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.194




                      Tecniche di aggregazione
1. Utilizzo del solo netid per un insieme di indirizzi IP di destinazione
   che condividono lo stesso next-hop, cioé le reti per le quali il next-
   hop è rappresentato dallo stesso router
2. Nel caso in cui gli indirizzi di rete che possono essere aggregati
   non condividono lo stesso next-hop, si aggregano gli indirizzi
   aggregabili con prefissi diversi e seguendo il principio del longest
   prefix matching (ordinando la tabella mettendo prima le maschere
   più lunghe e poi le più corte)
3. Si organizzano le tabelle creando un’organizzazione gerarchica
   che riflette l’architettura di Internet
4. E’ possibile sfruttare anche il routing geografico, sapendo che le
   classi di indirizzi IP vengono assegnati in funzione della posizione
   geografica continentale
5. Uso del router di default: si definisce un router di default comune
   a più indirizzi di destinazione
 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.195




                                                                                 33
Caratteristiche delle tabelle di routing
• Routing statico: la tabella di routing non è
  modificata dal router
     – L’amministratore di rete deve inserire o modificare righe
       della tabella di routing
     – Svantaggio: impossibilità di reagire automaticamente ai
       cambiamenti topologici
     – Da utilizzare nel caso di reti piccole con pochi cambiamenti

• Routing dinamico: la tabella di routing è modificata
  dal router al variare delle condizioni sulla rete (stato
  di funzionamento degli apparati e dei collegamenti)
     – Lo scambio di informazioni ed il calcolo dei valori della
       tabella di routing avvengono mediante qualche protocollo
       di routing, quali RIP, OSPF, BGP (si vedranno in seguito)
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.196




           Caratteristiche del forwarding IP

  • Indipendenza dal mittente: il next-hop routing
    non dipende (tipicamente) dal mittente del
    pacchetto o dal cammino che il pacchetto ha
    attraversato fino a quel momento
        – Il router estrae dal pacchetto soltanto l’indirizzo del
          destinatario
  • Routing universale: la tabella di routing deve
    contenere un next-hop router per ciascuna
    destinazione
  • Routing ottimo: il next-hop router è scelto in
    modo da minimizzare il cammino verso la
    destinazione  utilizzo degli algoritmi di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.197




                                                                                34
Elementi della tabella di routing




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.198




        Esempio: topologia minima di rete


                    eth0        00:B0:D0:DF:09:5D
                   153.18.17.11/20

            rete
       153.18.16.0/20                                                                Internet
                                       153.18.31.254/20
                                                                        Router
                                                                        di default


  Comandi per avere informazioni:
  - netstat
  - ipconfig

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                           4.199




                                                                                                        35
netstat
  netstat (stato delle connessioni)
               netstat – rn
               (-r: stampa la tabella di routing; -n: indirizzi in formato numerico)
  Destinazione              Gateway (router)                        Mask            Flag   Iface
  153.18.16.0               0.0.0.0                                 255.255.240.0   U      eth0
  127.0.0.0                 0.0.0.0                                 255.0.0.0       U      lo
  0.0.0.0                   153.18.32.254                           0.0.0.0         UG     eth0

  •    L’indirizzo di destinazione può essere un insieme di indirizzi aggregato (la
       differenza si capisce dalla mask)
  •    In questo esempio, l’host ha una sola interfaccia Ethernet (lo è locale)
  •    La destinazione 0.0.0.0 indica la destinazione di default (in questo caso, al
       router indicato nella colonna gateway)
  •    Mask 0.0.0.0 e il flag G indicano che la consegna è indiretta
  •    Il flag U indica che il next-hop è funzionante (UP); se un pacchetto raggiunge
       un entry il cui flag non è UP, deve essere scartato

Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                              4.200




                                               ipconfig

  ipconfig
      ipconfig eth0

  eth0         Link encap: ethernet                                 HWaddr 00:B0:D0:DF:09:5D

  Inetaddr: 153.18.17.11 Bcast: 153:18:31:255 Mask: 255:255:240.0



  • In Windows: ipconfig /all

         Tutte le informazioni dettagliate



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                              4.201




                                                                                                           36
Funzionamento del router
• Estrae l’indirizzo IP del destinatario D
  dall’header del pacchetto e determina il suo
  netid N
      1. Se N corrisponde ad una rete connessa direttamente al
         router, consegna il pacchetto al destinatario D sulla rete
         (ciò comporta la risoluzione di D nel corrispondente
         indirizzo fisico e l’invio del frame via Ethernet)
      2. Se la tabella contiene un router per la rete N, invia il
         pacchetto al next-hop router specificato nella tabella
      3. Se la tabella contiene un router di default, invia il
         pacchetto a quel router
      4. Altrimenti, si verifica un errore di routing
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.202




      Distinguere i due casi fondamentali
                   SUBNET 2
                                                                Host mittente e destinatario
 ROUTER                                   ROUTER                sulla stessa sottorete
        SUBNET 1                   SUBNET 3                     (netid uguali)
           ….                           ….
          HOST                         HOST                     Host mittente e destinatario
                                                                su sottoreti differenti
                                                                (netid differenti)
                   HOST                                                                 HOST
                     AP                                                                  AP
                    TCP                      ROUTER                     ROUTER          TCP
                     IP                         IP                        IP             IP
                    h2n                        h2n                       h2n            h2n
                              SUBNET 1                      SUBNET 2         SUBNET 3
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                         4.203




                                                                                                      37
Next-hop forwarding
• Next-hop forwarding: il router possiede l’informazione sul
  salto successivo (next-hop) che il pacchetto deve compiere
  per giungere a destinazione
• Il next-hop router appartiene a una rete alla quale il router è
  collegato direttamente

                                  R    20.0.0.5                                 R1     30.0.0.6
       rete                                             rete                                           rete
     10.0.0.0                                         20.0.0.0                                       30.0.0.0
                       10.0.0.5                                           20.0.0.6

                     netid                    router
                    10.0.0.0                  diretto                       Tabella di routing
                    20.0.0.0                  diretto                         per il router R
                    30.0.0.0                  20.0.0.6
Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                          4.204




             Esempi di IP forwarding: A B

   misc                                                           Dest. Netid Next router Nhops
   fields 223.1.1.1 223.1.1.3 data
                                                                        223.1.1                         1
                                                                        223.1.2      223.1.1.4          2
                                                                        223.1.3      223.1.1.4          2
Partendo da A, se il pacchetto è
destinato a B:
                                                                 A       223.1.1.1
• ricerca l’indirizzo di rete di B
                                                                                                  223.1.2.1
• B è sulla stessa rete di A                                             223.1.1.2
• il livello host-to-network invia il                                           223.1.1.4   223.1.2.9
  pacchetto direttamente a B in                                  B
                                                                                                   223.1.2.2
  un frame                                                              223.1.1.3    223.1.3.27                E

                                                                         223.1.3.1                223.1.3.2



Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                          4.205




                                                                                                                       38
Esempi di IP forwarding: A E

    misc                                                          Dest. Netid Next router Nhops
    fields 223.1.1.1 223.1.2.3 data
                                                                        223.1.1                         1
                                                                        223.1.2      223.1.1.4          2
  Partendo da A, destinazione E:
                                                                        223.1.3      223.1.1.4          2
  • ricerca l’indirizzo di rete di E
  • E è su una rete diversa
                                                                 A       223.1.1.1
  • routing table: next hop router
    per E è 223.1.1.4                                                                             223.1.2.1
                                                                         223.1.1.2
  • il livello host-to-network invia                                            223.1.1.4   223.1.2.9
    il pacchetto al router
    223.1.1.4 in un frame                                               223.1.1.3    223.1.3.27
                                                                                                   223.1.2.2
                                                                                                               E
  • il pacchetto arriva a 223.1.1.4
                                                                         223.1.3.1                223.1.3.2
  • segue...


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                          4.206




               Esempi di IP forwarding: A E
                                                                         Dest. Next
    misc                                                                 Netid router Nhops Interfaccia
    fields 223.1.1.1 223.1.2.3 data
                                                                  223.1.1            -       1        223.1.1.4
                                                                  223.1.2            -       1        223.1.2.9
   Il frame destinato ad E arriva a                               223.1.3            -       1        223.1.3.27
    223.1.1.4
 • ricerca l’indirizzo di rete di E                              A       223.1.1.1
 • E è sulla stessa rete della
    interfaccia del router                                                                        223.1.2.1
                                                                         223.1.1.2
    223.1.2.9                                                                   223.1.1.4   223.1.2.9
 • il livello host-to-network invia il
    pacchetto a 223.1.2.2 in un                                                                    223.1.2.2
                                                                        223.1.1.3    223.1.3.27                E
    frame
                                                                         223.1.3.1                223.1.3.2
 • il pacchetto arriva a 223.1.2.2


Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet                                          4.207




                                                                                                                       39
Subnet mask e routing
  • Le subnet servono anche (e soprattutto) per
    facilitare il routing dei pacchetti all’interno
    della rete amministrata
  • Si assuma una subnet con mask
    255.255.255.128
  • Al router che collega la subnet, arriva un
    pacchetto con destinazione: 150.100.12.176
  • Si effettua un AND tra l’indirizzo e la subnet mask
                (150.100.12.176) AND (255.255.255.128)
        Risultato: 150.100.12.128 che corrisponde alla sottorete
          di destinazione i cui host si trovano nel range
                     150.100.12.129 - 150.100.12.254
Protocolli e Architetture di Rete 2009/2010 – Livello Internet          4.208




                                                 In realtà




Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet   4.209




                                                                                40

Mais conteúdo relacionado

Mais procurados

5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2Majong DevJfu
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocolss_Morpheus
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranettingacapone
 
Datalink lan equipment
Datalink lan equipmentDatalink lan equipment
Datalink lan equipments_Morpheus
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzioneacapone
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprisefestival ICT 2016
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Luca Cicchelli
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wirelessSalvatore La Tona
 
Livello Fisico
Livello FisicoLivello Fisico
Livello Fisicos_Morpheus
 
Strutturazione delle Reti
Strutturazione delle RetiStrutturazione delle Reti
Strutturazione delle RetiVincenzo Quero
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasportoacapone
 
DXFP Routing Protocol
DXFP Routing ProtocolDXFP Routing Protocol
DXFP Routing Protocolgiova841
 
Confronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPConfronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPRiccardoReani
 

Mais procurados (20)

5 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte25 Protocolli Trasporto Parte2
5 Protocolli Trasporto Parte2
 
Datalink wlan
Datalink wlanDatalink wlan
Datalink wlan
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocols
 
ISO-OSI
ISO-OSIISO-OSI
ISO-OSI
 
9 Intranetting
9 Intranetting9 Intranetting
9 Intranetting
 
2 Suite Standard
2 Suite Standard2 Suite Standard
2 Suite Standard
 
Datalink lan equipment
Datalink lan equipmentDatalink lan equipment
Datalink lan equipment
 
DataLink LAN
DataLink LANDataLink LAN
DataLink LAN
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzione
 
3 H2 N Parte3
3 H2 N Parte33 H2 N Parte3
3 H2 N Parte3
 
6 Dns Parte1
6 Dns Parte16 Dns Parte1
6 Dns Parte1
 
Introduzione
IntroduzioneIntroduzione
Introduzione
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprise
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)
 
Reti locali cablate e wireless
Reti locali cablate e wirelessReti locali cablate e wireless
Reti locali cablate e wireless
 
Livello Fisico
Livello FisicoLivello Fisico
Livello Fisico
 
Strutturazione delle Reti
Strutturazione delle RetiStrutturazione delle Reti
Strutturazione delle Reti
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasporto
 
DXFP Routing Protocol
DXFP Routing ProtocolDXFP Routing Protocol
DXFP Routing Protocol
 
Confronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IPConfronto Modello ISO/OSI e Modello TCP/IP
Confronto Modello ISO/OSI e Modello TCP/IP
 

Semelhante a 4 Livello Ip Parte3 Bw

8 Routing
8 Routing8 Routing
8 Routingacapone
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti Rguest6ac2c
 
6 Inoltro Instradamento
6 Inoltro Instradamento6 Inoltro Instradamento
6 Inoltro Instradamentoacapone
 
4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color4 Livello Ip Parte2 Color
4 Livello Ip Parte2 ColorMajong DevJfu
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmorestJump
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)Giuseppe Vizzari
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Giuseppe Vizzari
 
10 Reti Accesso
10 Reti Accesso10 Reti Accesso
10 Reti Accessoacapone
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeuticiacapone
 
2 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/172 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/17Giuseppe Vizzari
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)Giuseppe Vizzari
 
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTProtocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTStefano Valle
 
Realizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRealizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRaul Cafini
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18Giuseppe Vizzari
 
Clink
ClinkClink
Clinkh4f
 
2. Introduzione a internet (I)
2. Introduzione a internet (I)2. Introduzione a internet (I)
2. Introduzione a internet (I)Roberto Polillo
 

Semelhante a 4 Livello Ip Parte3 Bw (20)

8 Routing
8 Routing8 Routing
8 Routing
 
Internetworking
InternetworkingInternetworking
Internetworking
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti R
 
6 Inoltro Instradamento
6 Inoltro Instradamento6 Inoltro Instradamento
6 Inoltro Instradamento
 
4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color4 Livello Ip Parte2 Color
4 Livello Ip Parte2 Color
 
Introduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithmIntroduzione al livello di rete e Dijkstra algorithm
Introduzione al livello di rete e Dijkstra algorithm
 
02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)02 - Introduzione a Internet (I)
02 - Introduzione a Internet (I)
 
Modello TCP/IP
Modello TCP/IPModello TCP/IP
Modello TCP/IP
 
Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19Introduzione a Internet (1/2) - 18/19
Introduzione a Internet (1/2) - 18/19
 
10 Reti Accesso
10 Reti Accesso10 Reti Accesso
10 Reti Accesso
 
1 Intro Propedeutici
1 Intro Propedeutici1 Intro Propedeutici
1 Intro Propedeutici
 
2 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/172 - Introduzione a Internet (1/2) - 16/17
2 - Introduzione a Internet (1/2) - 16/17
 
Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)2 - Introduzione ad Internet (1/2)
2 - Introduzione ad Internet (1/2)
 
TCP IP
TCP IPTCP IP
TCP IP
 
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTTProtocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
Protocol Rollercoaster: da HTTP a AMQP, passando per CoAP e MQTT
 
Realizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRealizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open source
 
2 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/182 - Introduzione a Internet (1/2) - 17/18
2 - Introduzione a Internet (1/2) - 17/18
 
Clink
ClinkClink
Clink
 
2. Introduzione a internet (I)
2. Introduzione a internet (I)2. Introduzione a internet (I)
2. Introduzione a internet (I)
 

Mais de Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

Mais de Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

4 Livello Ip Parte3 Bw

  • 1. Ricordare i servizi principali del livello IP • Indirizzamento univoco degli host • Unità di trasferimento dati • Architettura di Internet • Funzione di routing: – sceglie il percorso nella rete attraverso il quale consegnare i pacchetti – consegna i pacchetti da un host a un altro, ma in modo best effort, privo di conessione, e quindi non garantito Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.130 Parte 4 Modulo 8: Basi teoriche per il routing 1
  • 2. Host e router di default • Ciascun host fa riferimento a un router di default, detto anche first hop router • Quando un host invia un pacchetto, questo router prende il nome di source router • Analogamente, quando un host riceve un pacchetto, il suo router di defaulr prende il nome di destination router • Quindi, il problema del routing da host a host è in realtà un problema di routing da source router a destination router Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.132 Algoritmi di routing OBIETTIVO: Dato un insieme di router interconnessi, determinare il cammino ottimale dal source router al destination router Cammino ottimale  “Costo” minimo Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.133 2
  • 3. Cosa si intende per “costo” • Fattori statici: topologia della rete • Fattori dinamici: traffico della rete, guasti • Politiche di routing tra provider • Net neutrality? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.134 Modello della rete • Per formulare un algoritmo di routing, si modella la rete tramite un grafo pesato G(N,E) dove: • i nodi N rappresentano i router (oppure gli AS) • gli archi rappresentano le connessioni tra i router • le etichette E degli archi rappresentano il “costo” delle connessioni tra i router Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.135 3
  • 4. Rappresentazione mediante grafo router host Etichetta sull’arco: “costo” per l’invio di un pacchetto Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.136 Algoritmi di routing Qual è il cammino minimo (e il suo costo) tra A e C? Qual è il cammino minimo (e il suo costo) tra A e F? Quanti percorsi ci sono tra A e F? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.137 4
  • 5. Principali algoritmi di routing • Algoritmi di routing centralizzato – Ogni nodo possiede un’informazione globale sulla rete – Es., Link state protocol • Algoritmi di routing distribuito – Nessun nodo ha un’informazione completa del costo di tutti i link della rete – Es., Distance vector protocol Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.138 Parte 4 Modulo 8a: Link state protocol 5
  • 6. Algoritmi Link State • Gli algoritmi Link State (LS) sono centralizzati • Prevedono che la topologia di rete e i costi di ogni link siano noti (disponibili in input all’algoritmo): 1. Ogni nodo calcola lo stato dei link ad esso connessi 2. Ciascun nodo periodicamente trasmette identità e costi dei link connessi (link state broadcast) (Quindi tutti i nodi hanno una visione identica e completa della rete) 3. Ciascun nodo calcola i cammini di costo minimo verso tutti gli altri nodi della rete mediante l’Algoritmo di Dijkstra Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.140 Pacchetti con informazioni sullo stato dei link (LSP) Periodicamente vengono inviati in broadcast, su tutti i link del nodo, dei pacchetti LSP con le seguenti informazioni: • Node ID • Lista di vicini e costo dei rispettivi link • Informazioni aggiuntive: – Numero di sequenza per accorgesi di errori in caso di delivery out-of-order delle informazioni – Time To Live (TTL) per evitare di usare informazioni vecchie e quindi non affidabili Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.141 6
  • 7. Propagazione dei pacchetti LSP Inoltro con algoritmo di flooding (inondazione) Quando il nodo i riceve un LSP dal nodo j: • Se il pacchetto LSP proveniente da j è più recente, si salva il valore nella tabella e si inoltra una copia a su tutti i link connessi al nodo i (ad eccezione di quello da cui l’LSP è stato ricevuto) • Altrimenti il pacchetto LSP viene scartato Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.142 “Forward search algorithm” di Dijkstra • Algoritmo iterativo: alla k-esima iterazione, il nodo i conosce il cammino di costo minore verso k nodi destinazione • Si definiscono: – c(i,j) costo del link tra nodo i e nodo j – D(v) costo minimo del cammino verso il nodo v (minimo relativamente alla iterazione corrente). D(v)=∞ se il costo del link non è noto – p(v) immediato predecessore di v lungo il cammino a costo minimo verso v – N gruppo nodi il cui cammino di costo minore è noto definitivamente Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.143 7
  • 8. Algoritmo di Dijkstra - inizializzazione • Passo di inizializzazione seguito da un ciclo eseguito una volta per ogni nodo del grafo • Al termine saranno stati calcolati i cammini minimi dal nodo u verso tutti gli altri nodi Inizializzazione N = {u} Per tutti i nodi v se v è adiacente a u D(v) = c(u,v) altrimenti D(v) = ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.144 Algoritmo di Dijkstra - ciclo Ciclo 1. Calcola il costo D(i) per tutti i nodi adiacenti i non in N 2. Aggiungi a N il nodo w con il minimo costo D(w) 3. Aggiorna D(v) per ciascun nodo v adiacente a w, non in N: D(v) = min{ D(v), D(w) + c(w,v) } Until tutti i nodi del grafo sono nell’insieme N Il nuovo costo verso v è il vecchio costo verso v oppure il costo del cammino minimo verso w più il costo da w a v Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.145 8
  • 9. Esempio (step 1) Calcola per A il costo D(i) per tutti i nodi i adiacenti ad A che non sono in N 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B), p(B) D(C), p(C) D(D), p(D) D(E),p(E) D(F), p(F) A 3, A 5, A 1, A ∞ ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.146 Esempio (step 2) Aggiungi a N il nodo w con il minimo costo D(w) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) A 3,A 5,A 1,A ∞ ∞ AD Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.147 9
  • 10. Esempio (step 3) Aggiorna D(v) per ciascun nodo v adiacente a w, non in N: D(v) = min{ D(v), D(w) + c(w,v) } 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) A 3,A 5,A 1,A ∞ ∞ AD 3,A 4,D 2,D ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.148 Esempio (ciclo 2) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.149 10
  • 11. Esempio (ciclo 3) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.150 Esempio (ciclo 4) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E 4 ADEBC 4,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.151 11
  • 12. Esempio (ciclo 5) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E 4 ADEBC 4,E 5 ADEBCF Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.152 Parte 4 Modulo 8b: Distance vector protocol 12
  • 13. Algoritmi Distance Vector • Usati nel primo periodo di Internet (ARPANET) • Calcolo distribuito del next hop. E’ un algoritmo: – adattativo rispetto ai cambiamenti di stato della rete – iterativo – asincrono • Unità di scambio dell’informazione: – Vettore di distanze rispetto alle varie destinazioni • Esempio principale di implementazione: – Algoritmo Bellman-Ford distribuito Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.154 Algoritmo Bellman-Ford: premessa • Si usa la formula di Bellman-Ford per il calcolo del costo minimo tra x e y: Dx(y) = minv { c(x,v) + Dv(y) } dove minv è calcolato tra tutti i vicini v del nodo x • Intuitivamente, la formula è molto chiara: – tra tutti i nodi v adiacenti al nodo x, il percorso da scegliere è quello che mi porta con il minor costo da v a y, – a meno che (da cui la considerazione del primo addendo) il costo tra x e v sia talmente alto che mi conviene percorrere altre strade Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.155 13
  • 14. Intuizione dell’algoritmo Bellman-Ford Come abbiamo calcolato il cammino minimo tra A e C? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.156 Algoritmo Bellman-Ford: premessa • Ogni nodo: – aggiorna il proprio vettore di distanze in risposta a variazioni di costi sui link adiacenti – invia un aggiornamento ai nodi adiacenti se il proprio vettore di distanze cambia • Ogni nodo x mantiene una tabella con i seguenti dati: – c(x,v) costo del link tra nodo x e nodo v in N – c(x,v)=∞ se non c’è link tra nodo x e nodo v in N – Dx=[Dx(y): y in N] vettore di distanze del nodo x verso tutti i nodi y nella rete N – Dv=[Dv(y): y in N] vettori di distanze dei vicini v di x Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.157 14
  • 15. Algoritmo Bellman-Ford Start Per tutte le destinazioni y  N: Dx(y) = c(x,y) se y è adiacente Dx(y) = ∞ se y non è adiacente Invia il vettore di distanze Dx = [Dx(y) | y  N] ad ogni vicino v Loop Attendi (finchè il costo di un collegamento verso qualche vicino v cambia o ricevi un vettore di distanze da un vicino v) Per ogni destinazione y in N: Dx(y) = minv { c(x,v) + Dv(y) } Se Dx(y) è cambiato per qualche destinazione y invia il vettore di distanze Dx = [Dx(y) : y  N] a tutti i vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.158 Esempio: distanze iniziali (start) 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 ∞ 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.159 15
  • 16. E riceve il vettore di distanze da D 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 ∞ 2 0 D dice: “io arrivo a C in 2, e a E in 2; non sono collegato a A e B” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.160 E aggiorna i costi per C 1 B C Distanza dal nod 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 E scopre che può arrivare a C in 2+2 passando attraverso D Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.161 16
  • 17. A riceve il vettore di distanze da B 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 B dice: “io arrivo a C in 1, e a E in 8; non sono collegato a D” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.162 A aggiorna i costi solo per C 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.163 17
  • 18. A riceve il vettore di distanze da E 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.164 A aggiorna i costi per C e D 1 B C Distanza dal nodo 7 A B C D E A 0 7 5 3 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.165 18
  • 19. Distanze finali (aggiornate) 1 B C Distanza dal nodo 7 A B C D E A 0 6 5 3 1 A 8 2 B 6 0 1 3 5 C 5 1 0 2 4 1 2 D 3 3 2 0 2 E D E 1 5 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.166 Tabella di routing • L’algoritmo di Bellman-Ford ha un’immediata ricaduta pratica. Serve, infatti per calcolare i valori della Tabella di routing di ciascun router • La Tabella di routing del nodo x ha: – una riga per ogni nodo destinazione nella rete (router o AS) – tante colonne quanti sono i nodi adiacenti al nodo x – i costi di cammino come elementi della tabella • In questo modo, nel momento in cui arriva un pacchetto con un indirizzo destinazione, il router può facilmente decidere su quale link inoltrarlo Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.167 19
  • 20. Instradamento visto dal nodo E 1 Tabella di routing di E B C Next hop 7 Dest A B D A 1 14 5 A 8 2 B 7 8 5 C 6 9 4 1 2 D D 4 11 2 E La routing table di E ha una riga per ogni destinazione nella rete e tante colonne quanti sono i nodi adiacenti al nodo stesso I percorsi di minor costo per la corrispondente destinazione sono indicati in rosso nella routing table Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.168 Osservazioni Ci sono circa 700 milioni di host e milioni di router • E’ credibile una tabella che contenga tutti i router di Internet come destinazione? • Come si gestisce nella realtà il problema? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.169 20
  • 21. Problema 1: un link “degrada” 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 10 1 A 8 2 B 7 0 1 3 8 C 8 1 0 2 9 1 2 D 10 3 2 0 11 E D E 1 8 9 11 0 11 • I nodi che vertono sul link E-D, ricalcolano il vettore distanza • Aggiornano la propria routing table e trasmettono il nuovo vettore ai vicini • Ciascun nodo ricalcolerà il proprio vettore distanza e, iterativamente, lo invierà ai nodi vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.170 Problema 2: effetto rimbalzo dest cost dest cost 1 B 1 A 1 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.171 21
  • 22. Esempio: link A-B ha un problema dest cost dest cost 1  50 B 1 A 1 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.172 B aggiorna le distanze per A (tenendo conto dei dati di C-A, che però includeva il passaggio per B) dest cost dest cost B 1 50 A 3 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.173 22
  • 23. B manda il vettore di distanze a C dest cost dest cost 50 A 3 B 1 A B C 1 C 2 25 1 C dest cost A 4 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.174 C manda il vettore di distanze a B dest cost dest cost 50 A 5 B 1 A B C 1 C 2 25 1 C dest cost A 4 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.175 23
  • 24. Come si crea l’effetto rimbalzo • La distanza diretta da B verso A cresce molto • Quindi, B sceglie C come prossimo hop per A • Ma…, il percorso implicito da C verso A include B! • Le tabelle di B e C si aggiornano gradualmente, ma si crea un loop che proseguirà fino a quando C considererà il proprio percorso verso A attraverso B minore di 25 • Un pacchetto che arrivi a B o a C durante l’esistenza del loop rimbalzerà tra questi due nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.176 Caso peggiore: non c’è stabilizzazione • Nel caso in cui il link C-D diventa inutilizzabile, C marca D come irraggiungibile e lo elimina dagli A 1 aggiornamenti inviati ad A e B B • Si supponga che A riceva per primo l’aggiornamento. Adesso A 1 1 considera che il cammino minimo verso D sia attraverso B C • A dichiara D irraggiungibile a B e a C notifica un costo pari a 3 1 • C vede D raggiungibile attraverso A a costo 4 e lo notifica a B D • B notifica un costo di 5 ad A che notificherà un costo aggiornato di 6aC • Rischio: “count-to-infinity” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.177 24
  • 25. Possibili soluzioni • Evitare il “count-to-infinity” – Scegliere una soglia (abbastanza bassa) per “rappresentare” l’infinito. Es., massimo numero di hop necessari = 16 • Split Horizon – Bisogna differenziare i vettori di distanze inviati ai nodi adiacenti: il vettore di B inviato a C non conterrà le destinazioni raggiungibili tramite C – Obiettivo: “Se B raggiunge A attraverso C, non ha senso per C cercare di raggiungere A attraverso B” • Split Horizon with poisoned reverse – Se B raggiunge A attraverso C, B avvertirà C che la sua distanza verso A è infinita (anche se in realtà sa di poter instradare i pacchetti tramite C, il costo risulta troppo alto) • Queste soluzioni non funzionano per cicli che coinvolgono 3 o più nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.178 Evitare l’effetto rimbalzo • Per evitare l’effetto rimbalzo (bouncing effect) si devono selezionare percorsi senza cicli • Un modo per farlo: – Ogni aggiornamento del cammino minimo verso un nodo riporta l’intero percorso – Se un router vede se stesso nel percorso, scarta il percorso • Problema: la quantità di dati trasmessi è proporzionale alla distanza tra i nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.179 25
  • 26. Parte 4 Modulo 8c: Distance Vector vs. Link State Distance Vector vs. Link State • DV: tutto quello che si sa è propagato solo ai vicini • LS: le informazioni sui vicini sono passate a tutti • Dimensione dei messaggi – LS: piccola – DV: potenzialmente grande • Numero di messaggi – LS: molto grande, di tipo O(n), dove n sono i nodi del grafo – DV: piccolo in quanto comunicazioni solo ai vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.181 26
  • 27. Distance Vector vs. Link State • Velocità di convergenza – LS: veloce – DV: veloce se si usano aggiornamenti periodici abbastanza frequenti (però, aggiornamenti troppo frequenti sono a rischio di instabilità) • Requisito di memorizzazione – LS: molto alto  si mantiene l’intera topologia del grafo – DV: basso  si mantiene solo lo stato dei vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.182 Distance Vector vs. Link State • Robustezza – LS: calcolo dei percorsi effettuato in maniera indipendente da ogni nodo  protezione contro guasti ai router – DV: calcolo dei percorsi basato sui calcoli degli altri router  il calcolo sbagliato di un router può essere propagato a gran parte della rete (“count-to-infinity”) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.183 27
  • 28. Conclusione • Non c’è un chiaro vincitore tra i due algoritmi: – Distance vector (distribuito) ha dei vantaggi – Link state (centralizzato) ha altri vantaggi • Gli algoritmi di tipo Link state (centralizzati) tendono ad essere utilizzati all’interno degli AS • Gli algoritmi di tipo Distance vector (distribuiti) sono utilizzati per il routing tra AS Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.184 Parte 4 Modulo 9: Routing e router 28
  • 29. Router Il router deve risolvere un problema molto ben definito: Instradare i pacchetti nella rete da un qualsiasi host ad un qualsiasi altro host Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.186 Problema del routing • Instradare i pacchetti nella rete da un qualsiasi host ad un qualsiasi altro host è un problema complesso • Quando un problema è complesso si suddivide in sottoproblemi più semplici: – Sottoproblema 1: ad ogni pacchetto in ingresso, determinare il link di uscita in modo che il pacchetto si avvicini alla destinazione (IP forwarding) – Sottoproblema 2: mantenere informazioni aggiornate per risolvere il sottoproblema1 (protocollo di routing) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.187 29
  • 30. Routing IP rete rete 130.192.xxx.xxx 192.106.248.xxx hop (salto) router router Internet sorgente destinazione 130.192.2.1 192.106.248.121 • I router si passano i pacchetti come una “patata bollente”: bisogna conoscere solo l’indirizzo del prossimo hop • A volte il routing non ha successo perché i router sovraccarichi scartano pacchetti (limite fisico) o vi possono errori di routing (errore logico) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.188 Architettura di un router 4 componenti fondamentali nell’architettura di un router: - porta di ingresso - commutatore - processore di routing - porta di uscita Funzionalità di: livello 1 (fisico) livello 2 livello 3 (IP) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.189 30
  • 31. Architettura di un router (2) Porta di ingresso: - funzioni del livello 1 associate ad un singolo link di ingresso - funzioni del livello 2 - funzioni del livello 3  funzioni di ricerca e forwarding della porta di uscita; ottimizzazione della ricerca nella tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.190 Architettura di un router (3) Componenti di switching FUNZIONE: spostamento del pacchetto dalla porta di ingresso a quella di uscita “opportuna” TECNICHE: Commutazione basata su switch, bus o rete di interconnessione crossbar switch Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.191 31
  • 32. Architettura di un router (4) Porta di uscita: - funzioni del livello 1 associate con un - funzioni del livello 2 singolo link di uscita - funzioni del livello 3  funzioni di gestione della coda e del buffer di uscita (la velocità con cui il commutatore consegna i pacchetti deve essere superiore alla capacità del link di uscita) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.192 IP Forwarding • IP forwarding (inoltro): meccanismo con cui un router trasferisce i datagram da un’interfaccia d’ingresso a quella in uscita • Effettuato da ogni router • Il next-hop router appartiene a una rete alla quale il router è collegato direttamente Per inoltrare i pacchetti: – l’indirizzo di destinazione viene estratto dall’header del datagram – l’indirizzo di destinazione è usato come indice nella tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.193 32
  • 33. Tabella di routing • Ogni host e ogni router hanno una tabella di routing in cui ciascuna riga fornisce il next-hop per ogni possibile destinazione • Le tabelle di routing possono avere anche più di 50-60000 righe • Le dimensioni (crescenti) delle tabelle di routing potrebbero essere un limite allo sviluppo di Internet • In realtà, una riga può fornire informazioni per molte destinazioni con l’utilizzo di tecniche di aggregazione Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.194 Tecniche di aggregazione 1. Utilizzo del solo netid per un insieme di indirizzi IP di destinazione che condividono lo stesso next-hop, cioé le reti per le quali il next- hop è rappresentato dallo stesso router 2. Nel caso in cui gli indirizzi di rete che possono essere aggregati non condividono lo stesso next-hop, si aggregano gli indirizzi aggregabili con prefissi diversi e seguendo il principio del longest prefix matching (ordinando la tabella mettendo prima le maschere più lunghe e poi le più corte) 3. Si organizzano le tabelle creando un’organizzazione gerarchica che riflette l’architettura di Internet 4. E’ possibile sfruttare anche il routing geografico, sapendo che le classi di indirizzi IP vengono assegnati in funzione della posizione geografica continentale 5. Uso del router di default: si definisce un router di default comune a più indirizzi di destinazione Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.195 33
  • 34. Caratteristiche delle tabelle di routing • Routing statico: la tabella di routing non è modificata dal router – L’amministratore di rete deve inserire o modificare righe della tabella di routing – Svantaggio: impossibilità di reagire automaticamente ai cambiamenti topologici – Da utilizzare nel caso di reti piccole con pochi cambiamenti • Routing dinamico: la tabella di routing è modificata dal router al variare delle condizioni sulla rete (stato di funzionamento degli apparati e dei collegamenti) – Lo scambio di informazioni ed il calcolo dei valori della tabella di routing avvengono mediante qualche protocollo di routing, quali RIP, OSPF, BGP (si vedranno in seguito) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.196 Caratteristiche del forwarding IP • Indipendenza dal mittente: il next-hop routing non dipende (tipicamente) dal mittente del pacchetto o dal cammino che il pacchetto ha attraversato fino a quel momento – Il router estrae dal pacchetto soltanto l’indirizzo del destinatario • Routing universale: la tabella di routing deve contenere un next-hop router per ciascuna destinazione • Routing ottimo: il next-hop router è scelto in modo da minimizzare il cammino verso la destinazione  utilizzo degli algoritmi di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.197 34
  • 35. Elementi della tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.198 Esempio: topologia minima di rete eth0 00:B0:D0:DF:09:5D 153.18.17.11/20 rete 153.18.16.0/20 Internet 153.18.31.254/20 Router di default Comandi per avere informazioni: - netstat - ipconfig Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.199 35
  • 36. netstat netstat (stato delle connessioni) netstat – rn (-r: stampa la tabella di routing; -n: indirizzi in formato numerico) Destinazione Gateway (router) Mask Flag Iface 153.18.16.0 0.0.0.0 255.255.240.0 U eth0 127.0.0.0 0.0.0.0 255.0.0.0 U lo 0.0.0.0 153.18.32.254 0.0.0.0 UG eth0 • L’indirizzo di destinazione può essere un insieme di indirizzi aggregato (la differenza si capisce dalla mask) • In questo esempio, l’host ha una sola interfaccia Ethernet (lo è locale) • La destinazione 0.0.0.0 indica la destinazione di default (in questo caso, al router indicato nella colonna gateway) • Mask 0.0.0.0 e il flag G indicano che la consegna è indiretta • Il flag U indica che il next-hop è funzionante (UP); se un pacchetto raggiunge un entry il cui flag non è UP, deve essere scartato Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.200 ipconfig ipconfig ipconfig eth0 eth0 Link encap: ethernet HWaddr 00:B0:D0:DF:09:5D Inetaddr: 153.18.17.11 Bcast: 153:18:31:255 Mask: 255:255:240.0 • In Windows: ipconfig /all  Tutte le informazioni dettagliate Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.201 36
  • 37. Funzionamento del router • Estrae l’indirizzo IP del destinatario D dall’header del pacchetto e determina il suo netid N 1. Se N corrisponde ad una rete connessa direttamente al router, consegna il pacchetto al destinatario D sulla rete (ciò comporta la risoluzione di D nel corrispondente indirizzo fisico e l’invio del frame via Ethernet) 2. Se la tabella contiene un router per la rete N, invia il pacchetto al next-hop router specificato nella tabella 3. Se la tabella contiene un router di default, invia il pacchetto a quel router 4. Altrimenti, si verifica un errore di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.202 Distinguere i due casi fondamentali SUBNET 2 Host mittente e destinatario ROUTER ROUTER sulla stessa sottorete SUBNET 1 SUBNET 3 (netid uguali) …. …. HOST HOST Host mittente e destinatario su sottoreti differenti (netid differenti) HOST HOST AP AP TCP ROUTER ROUTER TCP IP IP IP IP h2n h2n h2n h2n SUBNET 1 SUBNET 2 SUBNET 3 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.203 37
  • 38. Next-hop forwarding • Next-hop forwarding: il router possiede l’informazione sul salto successivo (next-hop) che il pacchetto deve compiere per giungere a destinazione • Il next-hop router appartiene a una rete alla quale il router è collegato direttamente R 20.0.0.5 R1 30.0.0.6 rete rete rete 10.0.0.0 20.0.0.0 30.0.0.0 10.0.0.5 20.0.0.6 netid router 10.0.0.0 diretto Tabella di routing 20.0.0.0 diretto per il router R 30.0.0.0 20.0.0.6 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.204 Esempi di IP forwarding: A B misc Dest. Netid Next router Nhops fields 223.1.1.1 223.1.1.3 data 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 Partendo da A, se il pacchetto è destinato a B: A 223.1.1.1 • ricerca l’indirizzo di rete di B 223.1.2.1 • B è sulla stessa rete di A 223.1.1.2 • il livello host-to-network invia il 223.1.1.4 223.1.2.9 pacchetto direttamente a B in B 223.1.2.2 un frame 223.1.1.3 223.1.3.27 E 223.1.3.1 223.1.3.2 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.205 38
  • 39. Esempi di IP forwarding: A E misc Dest. Netid Next router Nhops fields 223.1.1.1 223.1.2.3 data 223.1.1 1 223.1.2 223.1.1.4 2 Partendo da A, destinazione E: 223.1.3 223.1.1.4 2 • ricerca l’indirizzo di rete di E • E è su una rete diversa A 223.1.1.1 • routing table: next hop router per E è 223.1.1.4 223.1.2.1 223.1.1.2 • il livello host-to-network invia 223.1.1.4 223.1.2.9 il pacchetto al router 223.1.1.4 in un frame 223.1.1.3 223.1.3.27 223.1.2.2 E • il pacchetto arriva a 223.1.1.4 223.1.3.1 223.1.3.2 • segue... Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.206 Esempi di IP forwarding: A E Dest. Next misc Netid router Nhops Interfaccia fields 223.1.1.1 223.1.2.3 data 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 Il frame destinato ad E arriva a 223.1.3 - 1 223.1.3.27 223.1.1.4 • ricerca l’indirizzo di rete di E A 223.1.1.1 • E è sulla stessa rete della interfaccia del router 223.1.2.1 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.9 • il livello host-to-network invia il pacchetto a 223.1.2.2 in un 223.1.2.2 223.1.1.3 223.1.3.27 E frame 223.1.3.1 223.1.3.2 • il pacchetto arriva a 223.1.2.2 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.207 39
  • 40. Subnet mask e routing • Le subnet servono anche (e soprattutto) per facilitare il routing dei pacchetti all’interno della rete amministrata • Si assuma una subnet con mask 255.255.255.128 • Al router che collega la subnet, arriva un pacchetto con destinazione: 150.100.12.176 • Si effettua un AND tra l’indirizzo e la subnet mask (150.100.12.176) AND (255.255.255.128) Risultato: 150.100.12.128 che corrisponde alla sottorete di destinazione i cui host si trovano nel range 150.100.12.129 - 150.100.12.254 Protocolli e Architetture di Rete 2009/2010 – Livello Internet 4.208 In realtà Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.209 40