浏览代码

Merge branch 'master' of http://izzo.ovh:10080/Nimayer/polimd

Federico Amedeo Izzo 9 年之前
父节点
当前提交
783bfeeb8d
共有 1 个文件被更改,包括 132 次插入0 次删除
  1. 132 0
      Piattaforme Software per la Rete/lesson_01.md

+ 132 - 0
Piattaforme Software per la Rete/lesson_01.md

@@ -0,0 +1,132 @@
+# Piattaforme Software per la Rete - lesson 1
+#### Giacomo Verticale
+###### 8 March 2016
+## Modulo 1 - Introduzione
+
+__Pila protocollare OSI__
+Il modulo 1 da una visione trasversare alla rete dal livello di trasporto in basso (comunicazione tra i nodi)
+Il modulo 2 invece analizza la comunicazione tra gli strati App-Tra-IP di un singolo oggetto.
+
+Per ogni singolo nodo studieremo:
+- I mattoncini per fornire i servizi in un singolo nodo
+- Implementazioni diverse a seconda del contesto (router per sensori 10€/terabit router 10K€)
+- Algoritmi che vengono usati per realizzare il protocollo internet
+
+Esercizi:
+- Valutazione delle prestazioni o esecuzione degli algoritmi visti a lezione
+- Parte di laboratorio in aula informatica (possibile usare il proprio computer)
+	- Laboratorio su *software defined networking*
+	- Utilizzeremo un emulatore di rete per implementare le funzioni dei nodi interni.
+	- Strumento: macchina virtuale che può eseguire un sottoinsieme di Python
+
+## Prova scritta
+- 1 Esercizio di laboratorio: eseguire e commentare programma
+- Esercizi numerici su protocolli e algoritmi
+
+## Materiale di studio
+- Slides su beep
+- Articoli che spiegano i concetti visti a lezione
+- Potrebbe servire un libro di reti (richiesta conoscenza protocollo IP, con. base TCP, con. base Ethernet)
+- Libro su algoritmi: Varghese - Network Algorithmics - Morgan Kaufmann 2003
+- Libro copiato dal precedente: Chao - High Performance Switches and Routers - Wiley 2007
+
+#### Libro Laboratorio
+In una __Software Defined Network__:
+Controllore programma il router con il protocollo openflow, l'implementazione scelta è Ryu,
+Per il laboratorio sarà utile il libro: RYU SDN Framework, scaricabile da internetz.
+
+## Introduzione
+__Network Algorithmics__: algoritmi da implementare per ottenere le prestazioni richieste da un contesto (bilanciamento costi/prestazioni)
+Ad esempio per un ambiente in cui è richiesta una banda di 100Kbit/s va bene anche una cpu scarda/algoritmo scarso,
+se il link da gestire è più veloce servono cpu più veloci e algoritmi più efficienti.
+
+### Piattaforme di Sviluppo (SDN)
+Difficile fare innovazione su internet perchè serve mantenere la compatibilità con i dispositivi preesistenti,
+es: IPv6, standardizzato nel 1996, dopo 21 anni sta iniziando ad essere adottato.
+
+__SDN__ si sta affermando ultimamente perchè permette di cambiare il comportamento dei dispositivi di rete con dei programmi.
+Prima della sua introduzione i dispositivi di rete avevano delle funzioni ben definite dalla fabbrica.
+All'inizio veniva usato su dispositivi low-end mentre ultimamente è supportato da router ad alte prestazioni.
+
+### Gestione di rete
+è possibile misurare il traffico ed effettuare *ingegneria del traffico*
+
+### Principi di Guida di internet
+Es: IP, Ethernet, e altri protocolli non sono necessariamente il modo migliore di fare le cose,
+ma una scelta che è stata fatta in un certo contesto.
+Può essere necessario superare le limitazioni dei protocolli senza sostituirli.
+
+## Principi guida dello sviluppo di IP
+L'obiettivo iniziale di internet (1969) era di condividere delle risorse, in particolare i Mainframe costavano tanto
+e comprarne uno per ogni Università, ecc era costoso e portava a dei doppioni.
+
+__Obiettivi di internet:__ (in priorità decrescente)
+- Condivisione e Interconnessione di risorse e reti esistenti
+- Resistenza ai guasti
+- Eterogeneità
+- Gestione Distribuita
+- Facilità di interconnessione
+- Accountability
+
+Questo porta a *eterogeneità* e *decentralizzazione*
+
+### Condivisione delle risorse di comunicazione
+Condivisione è analogo a __Multiplazione__ che implica __Commutazione__
+
+Commutazione:
+- *di circuito* esisteva dalla fine dell '800
+	- pro: garantisce delle prestazioni
+
+- *di pacchetto* era un concetto recente, non ancora provato a lunga distanza
+	- pro: possibilità di fare *multiplazione statistica* -> condivisione efficiente
+	- con: non ho garanzia di prestazioni
+
+Comunicazioni informatiche, a differenza di quelle  telefoniche non richiedono una banda costante,
+e quindi si adattano bene alla multiplazione statistica/comm. di pacchetto.
+Nella commutazione di pacchetto utilizzo i *datagrammi* che sono una forma di comunicazione autocontenuta
+(info destinatario incluse).
+L'eterogeneità del progetto, ad esempio per le prestazioni delle varie reti da interconnettere ha portato ad un modello __best effort__
+__Best effort__: la rete si impegna ad offrire il miglior servizio possibile.
+In particolare la gestione della comunicazione e dei suoi problemi deve essere gestita dai *nodi finali*.
+Servizio richiesto alla rete è semplice: consegnare i datagrammi in ingresso all'uscita.
+Per questi motivi è stato adottato il __Datagramma__.
+
+__Clessidra di still dearing__
+Rappresentazione dello stack di internet in cui la vita (sottile) della clessidra rappresenta IP,
+La parte sotto rappresenta i protocolli data-link (WiFi, Ethernet, 4G...) e sotto ancora i vari mezzi fisici (Rame, Fibra, Radio...)
+Sopra IP abbiamo lo strato di trasporto (TCP, UDP, SCTP)
+Sopra il trasporto abbiamo i vari livelli applicativi (HTTP, SMTP, FTP...)
+
+Le parti sotto e sopra la vita sono eterogenee.
+Internet è un esempio di rete multiservizio.
+
+### Resistenza ai guasti
+è impossibile evitare i guasti, ma si può rimediare:
+- Replicando lo stato della rete
+- Facendo in modo che uno stato non sia essenziale per la rete
+
+A questo proposito è stato implementato il __fate-sharing__ invece della __replication__(veniva usata nelle reti telefoniche)
+__fate-sharing__: è accettabile perdere informazioni di stato se le informazioni perse con il nodo sono relative al nodo.
+Questo porta ad evitare di distribuire nella rete informazioni di stato relative ad altri nodi, in modo che lo stato legato ad un nodo
+è sacrificabile.
+
+Il sistema risultante è più semplice ma risulta più lenta la procedura di ripristino dei guasti (rispetto alla replication)
+Ma ottenere *alte prestazioni* non era tra gli obiettivi iniziali di internet (oltre alla sicurezza)
+
+### Gestione distribuita
+Non esiste un nodo centrale in internet, esistono delle autorità centrali per suddividere lo spazio degli indirizzi (riguarda solo configurazione)
+La cosa più centrale in internet sono i root server DNS che sono comunque 13.
+
+Conseguenze:
+- Internet può funzionare senza alcune parti
+- Nessuno ha una visione completa della rete
+
+### Facilità di interconnessione
+### Accountability
+Questo obiettivo non è stato pienamente perseguito, a causa della scelta del datagramma.
+
+### Obiettivi non previsti inizialmente:
+- __sicurezza__
+- __prestazioni__
+- __mobilità__ (spostamento continuo)
+- supporto al __nomadismo__ (collegamento in posti diversi)