Reti diverse: la soluzione nativa Quando si deve trasmettere un messaggio attraverso reti diverse, per il mezzo fisico, per il protocollo di accesso o altro, a che livello si colloca la procedura di traduzione da una regola (protocollo) all altra? Una strategia potrebbe essere quella di affidare alle singole applicazioni l onere di capire attraverso quali reti stiano trasmettendo dati, e di far provvedere ad esse la compatibilità Questo provocherebbe un inutile difficoltà nel gestire le compatibilità e nel mantenere il codice delle applicazioni aggiornato
Il modello a livelli Si è scelto di organizzare i protocolli in una gerarchia a più livelli, in cui ciascun livello si occupa di un aspetto limitato delle comunicazioni complessive. Ogni livello comunica solo con il livello sovrastante e quello sottostante Questa organizzazione in livelli fa sì che una modifica ad un livello non influenzi gli altri, semplificando la gestione di Internet
Il modello OSI/ISO Il modello Open System Interconnect, dell International Standard Organization, una gerarchia di 7 livelli, di cui a noi interessano solo 4: Applicazione Controllo di Trasporto Rete Fisico
Livello di Applicazione I protocolli del livello di applicazione sono le regole per implementare i servizi all utente forniti da una rete (browsing di pagine web, posta elettronica, trasferimento file)
Transmission contro protocol: TCP Il livello del controllo del trasporto deve prendere i messaggi che il livello di applicazione richiede di inviare in rete e li deve preparare all invio: Divide il messaggio in pacchetti Assegna un numero sequenziale ai pacchetti in modo da rendere possibile la ricostruzione del mesaggio originale Gestisce il protocollo ARQ (invio, invio dell avviso di ricezione, riinvio di pacchetti perduti) Individua l applicazione (porta) che ha richiesto ed a cui è destinato il messaggio
Transmission contro protocol: TCP Tutte quest informazioni vengono anteposte al pacchetto di dati in una intestazione (header) TCP Messaggio TCP Header TCP Header TCP Header TCP Header Pacchetto Pacchetto Pacchetto Pacchetto
Transmission contro protocol: TCP Porta mittente Porta destinazione Numero sequenziale del pacchetto Numero del ACK Altre informazioni opzionali Dati del pacchetto
TCP: three way handshake Il protocollo TCP fornisce anche le regole per instaurare una connessione, mandando dei messaggi di richiesta si sincronozzazione (SYN) al destinatario Manda una richiesta di connessione (SYN), ed un pacchetto di dati con numero sequenzale SEQ=x Riceve l ok alla connessione (SYN), ed un pacchetto di dati con numero sequenzale SEQ=y. Manda l avviso di ricezione del pacchetto SEQ=y+1 Mittente SYN, SEQ=X SYN, ACK=x+1, SEQ=y SYN, ACK=y+1 Destinatario Riceve la richiesta di connessione (SYN), ed un pacchetto di dati con numero sequenzale SEQ=x. Manda l avviso di ricezione del SYN, e del pacchetto SEQ=x+1, inoltre manda un pacchetto con numero SEQ=y Riceve l avviso di ricezione del pacchetto SEQ=y, la connessione è stabilita
TCP: three way handshake Stabilire la connessione con lo scambio di strette di mano triplice serve in modo che i due dispositivi possano stimare i tempi di attesa (timeout) del riinvio dei pacchetti, a seconda della situazione della rete.
Internet Protocol: IP La funzione fattoriale, molto usata nel calcolo combinatorio, è così definita dove n è un numero intero non negativo
Indirizzi IP I livelli di applicazione e TCP della gerarchia di protocolli rendono possibile lo scambio di messaggi una volta che si sia in grado di identificare il destinatario I protocolli del livello di rete (IP Internet Protocol) hanno il compito di recapitare il messaggio dal mittente la destinatario E necessario uno schema di indirizzamento valido per tutti i nodi della rete
Indirizzi IP Un indirizzo IP identifica univocamente ogni nodo della rete tramite un numero di 32 bit, spesso scritto come quattro numeri a 8 bit (0-255): un indirizzo può essere: 147.162.98.137 che rappresenta uno dei computer del Dipartimento di Ingegneria dell Informazione
DNS Gli indirizzi IP a 32 bit non forniscono un sitema facile per associare un indirizzo ad una risorsa Lo Internet Domain Name System (DNS) fornisce un sistema di corrispondenza tra un sistema di indirizzi orientato all utente con quello utilizzato dal protocollo IP In tal modo un indirizzo simbolico come ironbark.bandigo.latrobe.edu.au si traduce in 149.144.21.60 Il DNS è un enorme database distribuito su migliaia di computer che contiene le corrispondenze fra nomi simbolici e indirizzi IP
DNS La struttura del DNS è gerarchica ed organizzata in un albero. Ogni nodo dell albero si chiama dominio Ogni dominio ha un server di nomi (nameserver) che fornisce la traduzione dominio-ip per i sottoalberi del suo dominio.gov radice amazon.com.com google.com princeton.edu.edu washington.edu repubblica.it.it scienze.unipd.it unipd.it jpl.washington.edu dei.unipd.it
DNS Se dalla rete dei.unipd.it voglio accedere a repubblica.it, la richiesta viene prima inoltrata al nameserver del dominio dei.unipd.it. Se tale dominio non conosce la traduzione del dominio richiesto nel corripondente IP, passa la richiesta al nameserver del livello superiore (unipd.it), ed eventualmente a quello del dominio.it, che conosce sicuramente l indirizzo IP di repubblica.it, essendo quest ultimo un suo sottoalbero..gov radice amazon.com.com google.com princeton.edu.edu washington.edu repubblica.it.it scienze.unipd.it unipd.it jpl.washington.edu dei.unipd.it
Protocollo IP Una volta che sia noto l inidirizzo IP del detinatario di un messaggio, ai vari pacchetti in arrivo dal livello del trasporto, il livello di rete aggiunge una intestazione (header) IP, contenete l indirizzo del mittente, del destinatario, e quello di eventuali nodi di scalo. Messaggio IP Header TCP Header Pacchetto IP Header TCP Header Pacchetto IP Header TCP Header Pacchetto IP Header TCP Header Pacchetto
IP routing In una rete spesso non si hanno tragitti diretti fra un nodo mittente ed il nodo destinatario, ma è necessario passare per nodi intermedi Inoltre è possibile che vi siano più tragitti posibili: quale scegliere? Il processo di scelta del percorso di ogni pacchetto è detto routing (da route = rotta)
IP routing: smistamento locale Quando si richiede la consegna di un pacchetto IP, per prima cosa si controlla se il destinatario è sulla rete a cui la richiesta di consegna è arrivata. In caso affermativo, il pacchetto è comsegnato alla rete fisica che gestisce la consegna diretta
IP routing: internet Se la destinazione è in una rete differente da quella in cui si trova il pacchetto, esso è consegnato ad un instradatore (router) connesso alla rete e da questo è inoltrato di router in router fino a che non raggiunge la rete desiderata. E la stessa cosa che avviene quando si compra un biglietto aereo per una destinazione per cui non è possibile avere un volo diretto. Ogni scalo è la sosta di un pacchetto in un router che lo indirizza verso la destinazione
Routing tables Ogni router mantiene al suo interno un database di percorsi ottimali (routing tables) per raggiungere determinate destinazioni,cosicché può inoltrare nel modo migliore ogni pacchetto che gli giunga da smistare La rete è dinamica, per cui la sua topologia si modifica continuamente. Alto volume di traffico locale o guasti possono compromettere quello che sembrava il percorso migliore per un pacchetto I router devono aggiornare continuamente le routing tables