Преглед изворни кода

Added last Verticale lesson

Federico Amedeo Izzo пре 9 година
родитељ
комит
46a76dd4bf
1 измењених фајлова са 35 додато и 0 уклоњено
  1. 35 0
      Piattaforme Software per la Rete/MOD1/lesson_07.md

+ 35 - 0
Piattaforme Software per la Rete/MOD1/lesson_07.md

@@ -0,0 +1,35 @@
+# Piattaforme e Software per la rete - lezione 7
+#### Giacomo Verticale
+###### 1 April 2016
+## Middleboxes
+Una soluzione è usare le TCAMs nelle packet classification, ma sono grosse e consumano molto,
+non hanno un estensione ulteriore per il range match, se ho un range di 50 valori dovrei creare 50 regole.
+Ma posso giocare coi prefissi per ridurre il n° di regole.
+Guardiamo un campo di IPv6: __flow label__, viene messo dentro di esso un numero a caso di 20 bit,
+che verrà replicato in tutti i pacchetti dello stesso flusso.
+Lo scopo di avere un campo di questo tipo è consentire ai nodi intermedi di prendere decisioni
+di packet classification guardando solo il livello 3, senza andare a livello 4 (che potrebbe 
+non essere accessibile per via della crittografia).
+Uso gli ultimi bit del flow label per indirizzare i pacchetti che appartengono ad uno stesso flusso
+per la stessa strada.
+La sorgente potrebbe non mandare pacchetti dello stesso flusso con lo stesso numero flow,
+perciò i nodi intermedi potrebbero non fidarsi della sorgente.
+Oltre al flow label nella cache mando anche gli altri campi importanti in modo che possa confrontarli.
+
+So fare molto bene i match uno per volta ma ho difficoltà a farlo di più campi contemporaneamente.
+Quindi: trovo tutte le regole che matchano campo 1 poi quelle che matchano campo 2, le tengo tutte
+e ne faccio l'intersezione (AND), e trovo quelle che matchano con tutti i campi.
+
+Per fare l'and bit a bit (bitwise) è lineare il costo.
+Se ho tutti zero non ho un match, se ho almeno un 1 sì.
+
+## Switching
+La memoria condivisa funziona solo per poche porte e link lenti.
+Nelle architetture a bus si salta la memoria, il pacchetto viene salvato direttamente sulla porta d'uscita 
+partendo dalla memoria d'ingresso.
+Ci sono varie versioni in base al numero di CPU:
+- Quella ad una CPU prende essa tutte le decisioni di forwarding
+- Con più CPU si alleggerisce il carico computazionale, 
+Si presentano pacchetti in cui i *lookup*sono fatti già sulle line card, 
+non sovraccaricando la CPU che gestisce solo il piano dati.
+Un'altra soluzione è avere una __matrice crossboard__