internet una rete di reti. quadro generale internet interconnette centinaia di milioni di sistemi...

108
Internet Una rete di reti

Upload: silvestro-massaro

Post on 03-May-2015

224 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

InternetUna rete di reti

Page 2: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici digitali, automobili, …) • La connessione è fatta attraverso una rete di collegamenti e

commutatori di pacchetto• I collegamenti avvengono attraverso mezzi fisici (cavi coassiali, fili di

rame, fibre ottiche e onde elettromagnetiche)• La velocità di trasmissione è misurata in bit/secondo (bps)• Vengono trasmessi pacchetti

Page 3: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• I commutatori di pacchetto ricevono pacchetti e li ritrasmettono instradandoli verso la destinazione• Due tipi di commutatori di pacchetto:• Router• Commutatori a livello di collegamento

• I router vengono usati nel nucleo della rete• I commutatori a livello di collegamento sono usati nelle reti di

accesso• Dall’invio alla ricezione un pacchetto segue un percorso: path

Page 4: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• I sistemi periferici accedono ad internet tramite gli ISP (Internet Service provider: aziende, compagnie telefoniche,università,…)• I provider sono organizzati in modo gerarchico (livello basso, livello

nazionale, livello internazionale)

Page 5: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Tutte le parti in gioco nella comunicazione rispettano dei protocolli• TCP e IP sono i due protocolli principali di internet e vengono indicati

collettivamente con TCP/IP• Gli standard di Internet vengono sviluppati dall’Internet Engineering

Task Force IETF• Gli standard sono documentati e i documenti vengono detti RFC

(Request For Comment)• La parola ‘comment’ ha una derivazione antecedente ad internet

Page 6: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Internet può essere vista come un’infrastruttura che fornisce servizi alle applicazioni• Applicazioni tipiche: posta elettronica, navigazione web, telefonia

(VoIP), streaming video, condivisione di file peer-to-peer (P2P), …• Queste applicazioni sono dette distribuite• Le applicazioni sono eseguite sui sistemi periferici

Page 7: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• PROTOCOLLO• Definisce il formato e l’ordine dei messaggi scambiati tra due o più entità in

comunicazione, cosi come le azioni intraprese in fase di trasmissione e/o ricezione di un messaggio o di un altro evento

Page 8: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• I sistemi periferici vengono anche chiamati host

• Gli host sono di due categorie: client e server

• I client richiedono servizi ai server

Page 9: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Da una qualunque rete (domestica, residenziale, mobile) si accede all’esterno attraverso un edge router• I due accessi più diffusi sono: DSL e via cavo• Le linee telefoniche trasportano dati e segnali telefonici in tre bande

distinte in modo da condividere lo stesso collegamento DSL:• Downstream (verso l’abitazione ad alta velocità tra 50KHZ e 1 MHZ)• Upstream (verso DSLAM media velocità tra 4 e 50 KHZ)• Canale telefonico a due vie (tra 0 e 4 kHz)

• Il DSLAM è un collettore che ha anche la funzione di separare dati e telefonia

Page 10: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• La DSL utilizza l’infrastruttura esistente della compagnia telefonica• L’accesso a internet VIA CAVO utilizza quelle della televisione via cavo

• Esistono inoltre • l’accesso Ethernet e WiFi che avviene nel raggio di pochi metri• l’accesso 3G e LTE in un raggio di decine di chilometri dalla stazione base

Page 11: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Le applicazioni distribuite scambiano tra loro messaggi• Ogni messaggio viene suddiviso in pacchetti• I pacchetti viaggiano attraverso commutatori di pacchetto (router e

commutatore a livello di collegamento) che connette più collegamenti• Ogni commutatore di pacchetto, dopo aver ricevuto l’intero pacchetto

inizia a trasferirlo in uscita• Per un pacchetto di L bit trasmesso su un canale con velocità di R bps, il

tempo di trasmissione è L/R secondi• I router necessitano di memorizzare l’intero pacchetto prima di inviarlo

(ritardo di trasmissione)

Page 12: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Ogni pacchetto in arrivo al commutatore di pacchetto attende in coda di output per il suo turno (ritardo di accodamento)• La coda ha dimensione finita e come conseguenza si ha perdita di

pacchetti

Page 13: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Ciascun router ha una tabella di inoltro che utilizza per stabilire su quale collegamento instradare il pacchetto• Più avanti vedremo come vengono impostate le tabelle di inoltro

attraverso i protocolli di instradamento

Page 14: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• Nella commutazione di circuito le risorse sono allocate per tutto il tempo della comunicazione (per esempio la telefonata)• Internet usa la commutazione di pacchetto• Molte reti telefoniche stanno migrando verso la commutazione di

pacchetto, utilizzata in particolare per le comunicazioni internazionali• Nella commutazione di circuito le risorse sono allocate per tutto il

tempo della comunicazione (per esempio la telefonata)• Internet usa la commutazione di pacchetto• Molte reti telefoniche stanno migrando verso la commutazione di

pacchetto, utilizzata in particolare per le comunicazioni internazionali

Page 15: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Quadro generale

• I sistemi periferici si collegano ad internet tramite un ISP di accesso• La connettività avviene attraverso DSL, cavo, wifi, cellulare, …• ISP, oltre che una compagnia di telecomunicazione o televisione, può

essere un’azienda o università o altro• Gli ISP si connettono tra loro creando una rete di reti• Gli ISP di accesso si connettono agli ISP regionali che a loro volta si

connettono all’ ISP di primo livello (ne esistono una dozzina)• Gli ISP si distinguono per la copertura geografica

Page 16: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

VIAGGIO DEI PACCHETTI

• Un pacchetto parte da un host ed attraversa una serie di router prima di giungere a destinazione (host destinazione)• Ad ogni tappa subisce ritardi di:• Elaborazione• Accodamento• Trasmissione• Propagazione

• La somma dei ritardi è detta ritardo totale di nodo

Page 17: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

VIAGGIO DEI PACCHETTI

• Ritardo di elaborazione (microsecondi o meno)• Il router esamina il pacchetto per determinare dove dirigerlo

• Ritardo di accodamento (microsecondi o millisecondi)• Attende in coda la trasmissione sul collegamento

• Ritardo di trasmissione (microsecondi o millisecondi)• Come abbiamo visto è L/R

Page 18: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

VIAGGIO DEI PACCHETTI

• Ritardo di propagazione (millisecondi)• Tempo impiegato dal pacchetto per giungere dal router A al router B• Dipende dal mezzo fisico e dalla distanza tra i due router ed è dato da d/v,

dove d è la distanza tra i router e v la velocità di propagazione nel collegamento

• La velocità di trasmissione dipende dalla lunghezza del pacchetto (oltre che dalla velocità di trasmissione del collegamento), mentre quella di propagazione dipende dalla distanza tra i router (oltre che dalla velocità di propagazione del collegamento)

Page 19: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

VIAGGIO DEI PACCHETTI

• A differenza degli altri ritardi, il ritardo di accodamento può variare da pacchetto a pacchetto

• Se a è la velocità di arrivo dei pacchetti ed L la lunghezza dei pacchetti, L x a è la velocità di arrivo dei bit in coda. Se R è la velocità di trasmissione, L x a / R è detta intensità di traffico. E’ auspicabile che tale rapporto sia inferiore ad 1.

• Si ha perdita di pacchetti quando l’intensità di traffico si approssima ad 1

Page 20: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

VIAGGIO DEI PACCHETTI

• Throughput istantaneo: velocità alla quale B riceve il file inoltrato da A• Throughput medio è dato da F/T bps dovee F è la lunghezza del file da ricevere

e T il tempo necessario affinché B riceva tutti i bit inviati.• Se su una rete vi sono solo A mittente e B ricevente, il throughput è dato dal

minimo delle velocità di trasmissione dei vari collegamenti attraversati (collo di bottiglia)• Se uno dei collegamenti, ad esempio quello a più alta velocità è condiviso tra più

operazioni, potrebbe diventare il più lento e costituire esso il collo di bottiglia• Quindi il throughput dipende dalla velocità di trasmissione dei collegamenti e

dal traffico della rete

Page 21: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livelli dei protocolli

• Pila di protocolli di internet consiste di 5 livelli ed assume come modello la pila OSI:• APPLICAZIONE (corrispondente ad applicazione, sessione e presentazione nel

modello OSI)• TRASPORTO• RETE• COLLEGAMENTO• FISICO

Page 22: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livelli dei protocolli

• Applicazione – fornisce messaggi• HTTP, SMTP, FTP, DNS, …

• Trasporto – fornisce segmenti + indirizzo• TCP, UDP

• Rete – fornisce instradamento datagrammi• IP e protocolli di instradamento

• Collegamento – effettua trasporto al nodo successivo (frame)• Ethernet, PPP, …

• Fisico – sposta singoli bit del frame• Protocolli dipendenti dal mezzo fisico

Page 23: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livelli dei protocolli

• Ogni livello trasmette al livello successivo nella pila• Il mittente trasmette un messaggio a partire dal livello ‘applicazione’

fin giù verso il livello ‘fisico’• Il destinatario riceve i pacchetti sul ‘fisico’ . Questi vengono spostati

via via verso il livello superiore fino al livello ‘applicazione’

Page 24: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONE

• La maggior parte delle applicazioni consiste di coppie di processi che si scambiano messaggi attraverso la rete• La SOCKET è un’interfaccia attraverso cui il livello applicazione riceve e

trasmette messaggi da e verso il suo livello successivo: livello di trasporto• Il processo ricevente è identificato da: IP e socket• L’interfaccia socket è anche detta ‘PORTA’

Page 25: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEEsempi di applicazioni

• WEB – HTTP• TRASFERIMENTO FILE – FTP• POSTA ELETTRONICA – SMTP• SERVIZIO DI DIRECTORY – DNS

Page 26: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEutilizzo protocolli del livello di trasporto

• Nella progettazione di un’applicazione si dovrà scegliere tra i protocolli di trasporto forniti da Internet:

• TCP•UDP

Page 27: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEutilizzo protocolli del livello di trasporto

• TCP• Servizio orientato alla connessione-effettua handshaking prima di iniziare la

comunicazione e la chiude la connessione dopo l’invio• Servizio di trasferimento affidabile-trasporta i dati senza errori e nel giusto

ordine• Effettua controlli di congestione effettuando strozzature negli invii (client e

server)

• I progettisti di applicazioni web scelgono TCP

Page 28: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEutilizzo protocolli del livello di trasporto

• UDP• Senza connessione-non effettua handshaking• Trasferimento dati non affidabile-non garantisce l’arrivo del messaggio e non

garantisce l’ordine• Non effettua controlli di congestione

• I progettisti di applicazioni di telefonia come Skype scelgono UDP

Page 29: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP

• E’ il principale protocollo a livello di applicazione• Definisce le regole di colloquio tra client e server• E’ implementato in due programmi: client e server• Un browser web implementa il lato client di HTTP• Un web server implementa il lato server di HTTP• HTTP utilizza TCP anziché UDP• Quando il client ha mandato un messaggio alla sua interfaccia socket,

questo è gestito dall’altro protocollo• HTTP è un protocollo senza memoria di stato (stateless protocol)

Page 30: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP

• Il modello è un client che invia una richiesta al server ed il server che risponde• Ciascuna coppia richiesta/risposta può avvenire su • Connessioni TCP distinte - connessione NON persistente• Unica connessione TCP – connessione persistente

• HTTP usa di default la connessione persistente ma può usarle entrambi• RTT (round-trip-time) è il tempo impiegato da un piccolo pacchetto

per viaggiare dal client al server e tornare indietro

Page 31: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP: formato del messaggio RICHIESTA

• Riga di richiesta: metodo, campo URL, campo versione HTTP• Righe di intestazione• Metodi principali: GET – POST• Nel metodo GET, l’URL contiene i dati trasmessi• Nel metodo POST i dati sono presenti nel ‘body’ del messaggioche è

vuoto nel caso di GET• Il campo URL contiene l’oggetto richiesto• Nelle righe di intestazione viene tra l’altro indicato:• L’host in cui risiede l’oggetto richiesto• Il tipo di connessione richiesto (persistente o non persistente)• Il tipo di browser

Page 32: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP: formato del messaggio RISPOSTA

• Riga di stato: versione protocollo, codice di stato, messaggio di stato• Righe di intestazione: tipo di connessione, data, data ultima modifica,

lunghezza del contenuto, tipo del contenuto• Corpo• Esempio di riga di stato:• HTTP/1.1 200 OK

Page 33: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP: cookie

• I server HTTP sono privi di stato• Per ovviare a ciò, HTTP adotta i cookie• Al primo collegamento, il sito crea un identificativo nel proprio

database e risponde inviando l’identificativo• Il browser riceve la risposta e registra il cookie nel client• Ad ogni richiesta, il browser invia l’identificativo al server

Page 34: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP: proxy server

• Per ottimizzazione, le richieste HTTP possono essere dirette verso un proxy server che contiene gli oggetti precedentemente richiesti• Ad ogni richiesta il proxy server confronta la data dell’oggetto

richiesto con quella del corrispondente oggetto sul server• A seconda della data inoltra la richiesta al server o restituisce l’oggetto

al client• Generalmente un proxy server è installato ed acquistato da un ISP

Page 35: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEHTTP: prova su PC

• telnet /index.php 80• GET /index.php HTTP/1.1• Host: www.categoriesdownload.com• Connection: close

Page 36: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEFTP

• Usato per trasferire file tra host locale ed host remoto• L’host locale fornisce il nome dell’host remoto per ottenere una connessione e poi utente e

password sulla connessione• FTP utilizza due connessioni• Connessione di controllo per informazioni di controllo come utente e password e

informazioni relative alle cartelle• Connessione dati per l’invio dei file• La connessione di controllo avviene sulla porta 21• La connessione dati avviene sulla porta 20• Ad ogni invio di file, viene aperta una nuova connessione dati (non persistente) e rimane la

stessa connessione di controllo per tutta la durata della sessione (persistente)• Mantenere lo stato dell’utente e della sessione limita di molto il numero totale di sessioni

Page 37: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEFTP ed HTTP

• HTTP e FTP sono entrambi protocolli di trasferimento file• Entrambi fanno uso di TCP• A differenza di FTP, nell’HTTP non ci sono informazioni di stato da

mantenere

Page 38: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEFTP: comandi

• I comandi inviati e le risposte usano la connessione di controllo e sono inviati in formato ascii a 7 bit• Esempi di comandi:• USER username• PASS password

• Esempi di risposte:• 331 Username OK, password required• 125 Data connection already open

Page 39: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEFTP: esempio

• Si possono verificare facilmente su un server di test come ftptest.net con cui si crea una connessione con: telnet ftptest.net 21

Page 40: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP

• Vi sono tre componenti:• User agent (per esempio Microsoft Outlook) per inoltrare e leggere messaggi• Server di posta che contiene le caselle di posta• Protocollo SMTP

• SMTP trasferisce i messaggi dal mail server del mittente a quello del destinatario• SMTP fa uso del servizio di trasferimento dati affidabile TCP• SMTP presenta un lato client in esecuzione sul mail server del mittente

ed un lato server presente sul mail server del destinatario• Client e server sono interscambiabili a seconda di chi dei due trasmette

Page 41: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP

• SMTP fa uso di connessioni persistenti: se il mail server di invio ha molti messaggi da inviare allo stesso mail server in ricezione, può mandarli tutti sulla stessa connessione TCP• telnet serverName 25 o 465

Page 42: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP e POP3

• SMTP è usato per trasferire la posta dal server del mittente a quello del destinatario ed anche per trasferire la posta dal server agent del mittente al server di posta del mittente• Dal server del destinatario al suo user agent è usato un altro

protocollo: POP3• E’ un protocollo di accesso alla posta. Entra in funzione quando lo

user agent (il client) apre una connessione TCP verso il mail server (il server) sulla porta 110.• A connessione stabilita il POP3 procede in 3 fasi:• AutorizzazioneTransazione Aggiornamento

Page 43: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP e POP3

• SMTP è usato per trasferire la posta dal server del mittente a quello del destinatario ed anche per trasferire la posta dal server agent del mittente al server di posta del mittente• Dal server del destinatario al suo user agent è usato un altro

protocollo: POP3• E’ un protocollo di accesso alla posta. Entra in funzione quando lo

user agent (il client) apre una connessione TCP verso il mail server (il server) sulla porta 110.• A connessione stabilita il POP3 procede in 3 fasi:• AutorizzazioneTransazione Aggiornamento

Page 44: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP e IMAP

• In alternativa al POP3 esiste l’IMAP con le stesse peculiarità ed in più la capacità di gestire cartelle sul server

Page 45: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEPosta elettronica: SMTP e posta web• Sostituisce POP3 ed IMAP con HTTP quando gli user agent sono

browser

Page 46: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONESMTP e HTTP

• Entrambi i protocolli trasferiscono file da un host ad un altro• Sia HTTP persistente che SMTP utilizzano connessioni persistenti• HTTP è un protocollo pull, mentre SMTP è un protocollo push• HTTP incapsula ogni oggetto in un separato messaggio: se vi sono N immagini

in una pagina, crea N+1 messaggi. SMTP pone tutti gli oggetti in un unico messaggio.• Il formato tipico di un messaggio costituito da un’intestazione:

• From: [email protected]• To: [email protected]• Subject: abcdefghijkl

seguita da una riga vuota e poi dal testo del messaggio

Page 47: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEDNS

• Ciascun host all’interno di internet è identificato attraverso un indirizzo detto IP e composto di 4 byte (ciascuno varia da 0 a 255)• Quindi esistono due modi per identificare gli host: il nome e l’indirizzo IP• DNS è un database distribuito implementato in una gerarchia di DNS

server ed un protocollo a livello di applicazione che consente agli host di interrogare il database• Il protocollo DNS utilizza UDP e la porta 53• DNS viene utilizzato da altri protocolli a livello di applicazione:

HTTP,SMTP, FTP per tradurre i nomi degli host in indirizzi IP• Ciò avviene nel modo che illustreremo:

Page 48: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEDNS

• Il browser estrae il nome dell’host dall’URL e lo passa al lato client dell’applicazione DNS• Il client DNS invia un’interrogazione contenente l’hostname ad un DNS

server• Il client DNS riceve la risposta• A questo punto il browser può dare inizio ad una connessione TCP verso il

processo server HTTP collegato alla porta 80 di quell’indirizzo IP• Il DNS può avere a fronte di un hostname una famiglia di indirizzi IP. Questo

è il caso di server replicati. Il DNS fornirà l’insieme degli indirizzi sempre in ordine diverso per consentire un utilizzo più equilibrato dei server.

Page 49: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEDNS

• Il browser estrae il nome dell’host dall’URL e lo passa al lato client dell’applicazione DNS• Il client DNS invia un’interrogazione contenente l’hostname ad un DNS server• Il client DNS riceve la risposta• A questo punto il browser può dare inizio ad una connessione TCP verso il

processo server HTTP collegato alla porta 80 di quell’indirizzo IP• Il DNS può avere a fronte di un hostname una famiglia di indirizzi IP. Questo è

il caso di server replicati. Il DNS fornirà l’insieme degli indirizzi sempre in ordine diverso per consentire un utilizzo più equilibrato dei server.• Anche il DNS gestisce il caching

Page 50: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello APPLICAZIONEP2P

• Lo scenario è quello di coppi di host connessi in modo intermittente, chiamati peer, che comunicano direttamente l’uno con l’altro.• I peer sono computer fissi e portatili di utenti privati• In una Client/Server, il server dovrebbe provvedere ad uploadare il file

su ciascun client.• In una P2P (di cui BitTorrent è un esempio), ciascun peer può

redistribuire agli altri qualsiasi porzione del file abbia ricevuto aiutando cosi il server

Page 51: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOINTRODUZIONE

• Un protocollo a livello di trasporto mette a disposizione una comunicazione logica tra processi applicativi di host differenti• I protocolli a livello di trasporto sono implementati nei sistemi periferici, ma non nei

router della rete.• Lato mittente il livello di trasporto converte i messaggi che riceve da un processo

applicativo in pacchetti a livello di trasporto• Il livello di trasporto passa il segmento al livello di rete dove viene incapsulato

all’interno di un pacchetto a livello di rete (datagramma).• I router leggono solo i campi del datagramma e non quelli applicativi• Il livello di rete del ricevente estrae il segmento dal datagramma e lo passa al livello

di trasporto che a sua volta ne estrae il messaggio passandolo al livello applicativo

Page 52: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOOverview

• Il livello di trasporto mette a disposizione due protocolli:• UDP che fornisce un servizio non affidabile e non orientato alla connessione• TCP che offre un servizio affidabile ed orientato alla connessione

• Un’applicazione sceglie uno di questi due protocolli• Il protocollo a livello di rete è IP e fornisce comunicazione logica tra host• Entrambi i protocolli hanno le seguenti due funzionalità:

• Consegna dati da processo a processo• Controllo degli errori

• In particolare le due funzioni di sopra sono le uniche fornite da UDP, invece TCP ne fornisce molte altre che esamineremo in seguito

Page 53: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOMultiplexing e Demultiplexing

• E’ la funzione «Consegna dati da processo a processo»• Se ad esempio sul nostro computer abbiamo una sessione FTP, due sessioni

Telnet e stiamo scaricando pagine web, avremo 4 processi applicativi in esecuzione: 2 Telnet, 1 FTP ed 1 HTTP. Quando la nostra macchina riceve dati dal livello di rete sottostante deve indirizzare i dati ricevuti ad uno di questi processi• Un processo può gestire una o più socket, attraverso le quali i dati passano per

raggiungere il processo• Quindi il livello di trasporto non trasferisce i dati direttamente ad un processo ma

ad una socket• Una socket ha un identificatore univoco che ha un formato differente a seconda

del protocollo di trasporto utilizzato (TCP o UDP)

Page 54: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTO>> Multiplexing e Demultiplexing

•Demultiplexing: trasportare i dati dei segmenti/pacchetti verso la giusta socket•Multiplexing: processo inverso, prende i dati provenienti dalle socket e li inserisce in pacchetti con intestazione per passarli al livello di rete

Page 55: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOMultiplexing e Demultiplexing UDP

• All’interno di un pacchetto a livello di trasporto viaggiano, tra le altre, le informazioni sulla porta origine, ip origine, porta destinazione e ip destinazione• Il lato client dell’applicazione consente al livello di trasporto l’assegnazione

automatica del numero di porta• Il lato server dell’applicazione assegna un numero di porta specifico• Una socket UDP viene identificata dalla coppia: indirizzo IP, numero porta di

destinazione• Quindi in UDP due pacchetti provenienti da diversi client ma diretti verso lo stesso

processo verranno presi in carico dalla stessa socket• L’indirizzo IP di origine ed il numero di porta di origine servono come indirizzo di

ritorno

Page 56: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOMultiplexing e Demultiplexing TCP

• All’interno di un pacchetto a livello di trasporto viaggiano, tra le altre, le informazioni sulla porta origine, ip origine, porta destinazione e ip destinazione• Il lato client dell’applicazione consente al livello di trasporto l’assegnazione

automatica del numero di porta• Il lato server dell’applicazione assegna un numero di porta specifico• Una socket TCP viene identificata da 4 parametri: indirizzo IP di origine, numero

porta di origine, indirizzo IP di destinazione, numero porta di destinazione• Quindi in TCP due pacchetti provenienti da diversi client ma diretti verso lo stesso

processo verranno presi in carico socket differenti• L’indirizzo IP di origine ed il numero di porta di origine servono come indirizzo di

ritorno

Page 57: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOWEB server e TCP

• Sia i segmenti per stabilire la connessione iniziale, sia quelli che trasportano messaggi di richiesta HTTP hanno la porta destinazione 80• In generale un web server genera un nuovo processo per ogni connessione e

ciascuno di questi processi ha una propria socket attraverso la quale giungono richieste e sono inviate risposte HTTP• Se client e server usano HTTP persistente, allora scambiano messaggi HTTP

attraverso la stessa socket per tutta la durata della connessione• Se client e server usano HTTP non persistente allora viene creata e chiusa una

nuova connessione TCP per ciascuna coppia richiesta/risposta, e da quel momento viene creata e chiusa una nuova socket per ogni richiesta/risposta

Page 58: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOUDP

• UDP è un protocollo di trasporto con le seguenti funzionalità:• Consegna dati da processo a processo• Controllo degli errori

• In pratica questo protocollo prende i messaggi dal processo applicativo, aggiunge il numero di porta di origine e di destinazione per il multiplexing / demultiplexing e passa il segmento risultante al livello di rete (IP)• UDP utilizza il numero di porta di destinazione per consegnare il pacchetto al

processo applicativo• UDP non è orientato alla connessione

Page 59: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOUDP: struttura dei pacchetti

• L’intestazione UDP presenta solo 4 campi di 2 byte ciascuno:• Lunghezza: indica il numero di byte del pacchetto

• Checksum

• Numero di porta di origine

• Numero di porta di destinazione

• CHECKSUM• Viene utilizzato per verificare che i bit del segmento siano rimasti inalterati durante il trasporto

• Lato mittente UDP effettua il complemento a 1 della somma di tutte le parole da 16 bit nel segmento e l’eventuale riporto viene sommato al primo bit. Tale risultato viene posto nel campo checksum del pacchetto

Page 60: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOUDP: esempio per checksum

• Supponiamo di avere le seguenti tre parole di 16 bit:• 0110011001100000• 0101010101010101• 1000111100001100

• La somma delle prime due è:• 1011101110110101

• A cui sommo la terza ed ottengo• 0100101011000001

• Sommo il riporto al primo bit ed ottengo• 0100101011000010

• Calcolo il complemento a 1• 1011010100111101

• In ricezione si sommano le tre parole iniziali ed il checksum. Se non ci sono errori il risultato della somma dovrebbe essere • 1111111111111111

Page 61: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOUDP

•Sebbene UDP metta a disposizione tale controllo, non fa niente per risolvere la situazione di errore. Alcune implementazione di UDP scartano il segmento, altre lo trasmettono all’applicazione con un avvertimento di errore

Page 62: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: inizio

• Viene detto ‘ORIENTATO ALLA CONNESSIONE’ -> handshake• Handshake a tre vie: il client invia un pacchetto TCP-il server risponde con

un secondo pacchetto-il client risponde con un terzo pacchetto• Lo stato della connessione risiede nei due sistemi periferici -> i router

sono ignari• La connessione TCP è full-duplex -> può esserci passaggio contemporaneo

di dati nei due versi sulla stessa connessione• La connessione TCP è punto-punto -> tra singolo mittente e singolo

destinatario -> non è possibile il multicast (da un mittente a molti destinatari)

Page 63: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: invio dei dati

• Dopo aver instaurato la connessione, i due processi C/S possono scambiarsi dati (pacchetti)• Il client manda dati attraverso la socket• Dalla socket passano al TCP in esecuzione sul client• TCP dirige i dati al buffer di invio• Dal buffer di invio di tanto in tanto preleverà blocchi di dati e li invierà

al livello di rete• Ogni lato della connessione presenta un proprio buffer di invio e

ricezione• Una connessione conserva: buffer, variabili e connessione socket

Page 64: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: pacchetti o segmenti

• La massima quantità di dati prelevabili e posizionabili in un pacchetto viene limitata dal MSS (maximun segment size)

• Ogni segmento ha un’intestazione a lunghezza variabile da 20 a 32 byte• Struttura di un pacchetto TCP:

• Numero porta origine 16 bit• Numero porta destinazione 16 bit• Checksum 16 bit• Numero di sequenza e numero di acknowledgement: usati per trasferimento dati affidabile -

entrambi da 32 bit• Campo finestra di ricezione indica il numero di byte che il destinatario può accettare e viene usato

per il controllo del flusso 16 bit• Campo lunghezza intestazione 4 bit• Campo flag: ack, rst, syn, fin, psh, urg lungo 6 bit

• Il bit ack indica che trattasi di un segmento di acknowledgement

Page 65: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: numeri sequenza e acknowledgement

•Numero di sequenza: numero nel flusso di byte del primo byte del pacchetto•Numero di acknowledgement: scritto dal processo mittente è

il numero di sequenza del byte successivo che l’host A attende dall’host B• Se A ha ricevuto 500 byte da B, scriverà 501

nell’acknowledgement number• TCP effettua l’acknowledgement solo dei byte fino al primo

mancante nel flusso -> TCP offre acknowledgement cumulativi

Page 66: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP:sequenza e acknowledgement•Cosa fa un host destinatario quando riceve segmenti

fuori sequenza?•Due approcci comunemente seguiti:• Scarta i pacchetti non ordinati• Li mantiene ed attende quelli mancanti (più seguito)

Page 67: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: trasferimento dati affidabile

• Il servizio di rete IP non è affidabile –>• Non garantisce la sequenza• Non garantisce la consegna• Non garantisce l’integrità dei dati

• I datagrammi di IP possono:• Sovraffollare i buffer dei router• Non raggiungere la destinazione• Arrivare in ordine casuale• Arrivare con bit alterati

Page 68: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: trasferimento dati affidabile

• TCP usa:• TIMER• ACKNOWLEDGEMENT duplicati

• Ciascun segmento include un numero di sequenza• Se il timer non è già in funzione TCP lo avvia quando il segmento viene passato ad IP• Il timer è associato al più vecchio segmento che non ha ricevuto acknowledgement

(variabile TimeoutInterval)• Per timeout su ack, TCP ritrasmette il segmento che lo ha causato e riavvia il timer• Se riceve un segmento di acknowledgement (lo capisce dal bit ack impostato) confronta

il numero di sequenza con la sua variabile relativa all’ultimo numero di sequenza che non ha ricevuto acknowledgement e si comporta di conseguenza

• Ricordare che TCP adotta acknowledgement cumulativi

Page 69: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: trasferimento dati affidabile

• Quando il destinatario riceve un segmento con numero di sequenza superiore a quella attesa, invia nuovamente un ack relativo all’ultimo segmento ricevuto nella corretta sequenza • Se il mittente riceve 3 ack duplicati per lo stesso dato, il

mittente ritrasmette il segmento mancante

Page 70: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: controllo di flusso e di congestione• TCP evita che il mittente saturi il buffer del ricevente• TCP regola l’invio a seconda della congestione percepita• Entrambi gli obiettivi si raggiungono rallentando il mittente• TCP usa la variabile ‘finestra di ricezione’ per fornire al mitt un’indicazione

dello spazio libero nel buffer del dest• Il dato relativo alla ‘finestra’ viene inviato dal ricevente nel pacchetto• Il mittente verifica costantemente che la differenza tra l’ultimo byte inviato e

l’ultimo byte per cui ha ricevuto ack non superi il valore della finestra• Quando la finestra è zero, il mittente continua ad inviare segmenti con dati da

1 byte ed il destinatario risponderà con un ack fino a che non si torni ad una situazione di finestra > 0

Page 71: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: gestione della connessione

• Passo 1. Il TCP client invia uno speciale segmento al TCP server che non contiene dati applicativi ed il bit SYN è ad 1. il numero di sequenza è inizializzato.• Passo 2. Il TCP server estrae il pacchetto dal datagramma, alloca i buffer e le

variabili TCP ed invia un segmento al client TCP senza dati applicativi, con bit SYN ad 1 e campo ACK con valore inizializzato lato server che corrisponde ad un numero di sequenza iniziale lato server. • Passo 3. Alla ricezione del pacchetto SYNACK il client alloca buffer e variabili ed

invia un altro segmento con bit SYN posto a zero, il campo ack impostato con il valore ricevuto dal server ed il campo dati del segmento può contenere informazioni• Per terminare una connessione ciascuno dei due (mittente o destinatario) può

inviare un pacchetto con il bit FIN posto ad 1.

Page 72: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello TRASPORTOTCP: controllo di congestione

• Principi guida del controllo di congestione:• Un segmento perso implica congestione e TCP decrementerà il

tasso di trasmissione del mittente• La ricezione di un acknowledgement non duplicato comporterà un

aumento del tasso di trasmissione• Per la verifica di questi eventi, mittente e destinatario

utilizzano variabili associate alla connessione

Page 73: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIntroduzione

• Il ruolo del livello di rete è quello di trasferire pacchetti da un host ad un altro• In una generica trasmissione da H1 ad H2• Il livello di rete in H1 prende i segmenti dal livello di trasporto, li incapsula

in un datagramma (pacchetto a livello di rete) e li trasmette al proprio router limitrofo (il più vicino), R1.• Nell’host H2 il livello di rete riceve i datagrammi (che hanno una loro

struttura definita) dal proprio router contiguo R2, estrae i segmenti e li consegna al livello di trasporto• In questo schema i router hanno la sola funzione di inoltrare i datagrammi

dai loro collegamenti di ingresso a quelli di uscita

Page 74: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIntroduzione

• Due importanti funzioni del livello di rete:• Inoltro: quando un router riceve un pacchetto lo deve trasferire da uno dei collegamenti di input

(quello a cui è giunto) ad uno di output• Instradamento: il livello di rete deve determinare tramite algoritmo di instradamento il percorso che

i pacchetti devono seguire

Per inoltrare i pacchetti i router estraggono dal campo di intestazione il valore che utilizzano come indice nella tabella di inoltro per ottenere l’interfaccia di collegamento a cui il pacchetto dovrà essere inoltrato.Il router riceve messaggi di instradamento che vengono utilizzati per configurare la sua tabella di inoltro.Tra i vari servizi che una rete può offrire (consegna garantita, consegna ordinata, …), il livello di rete Internet mette a disposizione un solo servizio: servizio best-effort. In realtà questo vuol dire ‘nessun servizio’ in quanto anche non consegnando nulla soddisferebbe la definizione di ‘servizio best-effort’.

Page 75: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEReti datagram

• Quando un pacchetto giunge al router, questo utilizza l’indirizzo di destinazione per cercare nella tabella di inoltro a quale interfaccia di collegamento avviarlo• Nella tabella di inoltro presente in ciascun router non ci sono tutti

gli indirizzi IP presenti nella rete (sarebbero 2^32 = 4.294.967.296). • In genere nelle tabelle sono presenti prefissi o intervalli di valori. • In caso di prefissi sceglie il prefisso più lungo per inoltrare• Le tabelle di inoltro vengono gestite da algoritmi che le aggiornano

con periodicità che va da 1 a 5 minuti

Page 76: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEArchitettura di un router

• Porte di ingresso• Sono interfacce fisiche di input: nulla a che fare con le porte

software associate alle applicazioni di rete ed alle socket• E’ qui che, utilizzando le informazioni della tabella di inoltro, viene

determinata la porta di uscita a cui dirigere un pacchetto attraverso la struttura di commutazione• Una volta determinata la porta di output di un pacchetto esso può

essere inviato alla struttura di commutazione. Se la struttura di commutazione è impegnata, il pacchetto viene accodato sulla porta di input

Page 77: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEArchitettura di un router

• Struttura di commutazione• Connette fisicamente le porta di ingresso e quelle di uscita

• Porte di uscita• Memorizzano i pacchetti che provengono dalla struttura di commutazione e li

trasmettono sul collegamento in uscita• Processore di instradamento• Esegue i protocolli di instradamento• Gestisce le tabelle di inoltro• Gestisce le informazioni sui collegamenti attivi• Implementa le funzioni di gestione della rete

Page 78: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEArchitettura di un router

• Le porte di input, le porte di output e la struttura di commutazione implementano la funzione di inoltro• Questa implementazione avviene quasi sempre in modalità hardware

per ragioni di ottimizzazione dei tempi di elaborazione (nanosecondi)

Page 79: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEArchitettura di un router

• Si possono formare code di pacchetti sia presso le porte di ingresso che presso quelle di uscita• Quando queste code crescono, la memoria dei router può

esaurirsi e quindi può avvenire perdita di pacchetti.

Page 80: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIndirizzamento IPv4

• Il collegamento tra Host e collegamento fisico è detto interfaccia• Un router è connesso almeno a due collegamenti• Anche il confine tra un router ed il suo collegamento è detto interfaccia• Ad ogni interfaccia è associato un indirizzo IP e non all’host o al router che

la contiene• Un router può interconnettere tre sottoreti su tre collegamenti. Ciascuno

di questi collegamenti ha un proprio indirizzo IP.• Ciascuna sottorete ha un indirizzo di sottorete • L’indirizzo di una sottorete è nella forma a.b.c.d/x dove x rappresenta il

numero di bit prefisso della sottorete

Page 81: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIndirizzamento IPv4

223.1.1.4223.1.1.1

223.1.1.3

223.1.3.2223.1.3.1223.1.2.2223.1.2.1

223.1.7.0

223.1.7.1

223.1.2.6 223.1.3.27

223.1.9.2

223.1.9.1

223.1.8.0 223.1.8.1

Nella figura vi sono 6 sottoreti

223.1.1.0/24223.1.2.0/24223.1.3.0/24223.1.9.0/24223.1.8.0/24223.1.7.0/24

Page 82: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIndirizzamento Internet globale

• La strategia di assegnazione degli indirizzi Internet è detta CIDR (classless interdomain routing).• L’indirizzo IP viene diviso in due parti ed ha la forma a.b.c.d/x dove x indica il

numero di bit nella prima parte dell’indirizzo (prefisso)• I router esterni alla rete dell’organizzazione considerano solo gli x bit del prefisso• I bit 32-x possono essere usati per distinguere i dispositivi interni

all’organizzazione che quindi avranno tutti lo stesso prefisso e saranno usati dai router interni alla rete• Prima dell’adozione del CIDR le part di rete di un indirizzo IP dovevano essere

lunghe 8, 16 o 24 bit. Tale schema di indirizzamento era noto come classful addressing dato che le sottoreti con indirizzi di sottorete 8, 16 e 24 erano note rispettivamente come reti di classe A, B e C

Page 83: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEIndirizzamento Internet globale

• Il classful addressing portò ad un rapido esaurimento degli indirizzi della classe B e ad uno scarso utilizzo dello spazio di indirizzamento assegnato• Indirizzo IP broadast 255.255.255.255. Quando un host

emette un datagramma con destinazione 255.255.255.255, il messaggio viene consegnato a tutti gli host sulla stessa sottorete

Page 84: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEOttenimento blocco indirizzi

• Un blocco di indirizzi viene fornito dal provider a varie organizzazioni.• Ad esempio, un provider che dispone del blocco di indirizzi 200.23.16.0/20 può fornire i seguenti

blocchi di indirizzi a varie organizzazioni:• 200.23.16.0/23• 200.23.18.0/23• 200.23.20.0/23• …• 200.23.30.0/23

• Notiamo che la terza parte di 20 bit è di 4 bit, cioè 16, quindi gli altri 4 bit possono variare generando i numeri da 17 a 255, fermo restando i primi 20 bit

• L’autorità globale per l’assegnazione degli indirizzi è ICANN (Internet Corporation for Assigned Names and Numbers), società senza scopo di lucro, che si occupa anche dell’assegnazione dei nomi di domini

• Esistono anche i registri internet regionali. Per l’europa è il RIPE

Page 85: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEDHCP e NAT

• In una sottorete, ciascun host può ottenere un indirizzo IP sia in modo manuale che automatico e dinamico• Esiste il protocollo DHCP che consente attraverso un server della sottorete di

assegnare un indirizzo IP ad un host • Nelle reti domestiche, ai dispositivi interni viene assegnato un IP che ha significato

solo all’interno della rete• Gli IP dei dispositivi sono ‘nattati’ attraverso un router NAT che ha un indirizzo IP

riconosciuto all’esterno• Un dispositivo che richiede una pagina web, ha nella sua richiesta numero di porta e

indirizzo IP. Il router inoltra questa richiesta al destinatario sostituendo IP e porta e tenendo traccia in una tabella di traduzione NAT (NAT translation table) per il response

Page 86: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEICMP

• Le tre componenti del livello di rete sono:• Protocollo IP• Protocollo di instradamento (RIP,… che vedremo)• Protocollo ICMP

• ICMP viene utilizzato per scambiarsi messaggi tra host e router. Tipicamente questi sono messaggi di errore. Per esempio quando un router non ha potuto trovare un percorso verso un host, il router stesso emette un messaggio di errore verso l’host mittente

Page 87: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmi di instradamento

• Un host è connesso direttamente ad un router di default che chiameremo router sorgente, cui trasferisce tutti i pacchetti diretti all’esterno della sottorete• Anche l’host di destinazione ha un router di default che chiameremo

router di destinazione• La rete è un grafo fatto da nodi (router) collegati da archi (collegamenti).

Ciascun arco ha un costo associato.• Il problema è instradare un pacchetto tra questi due router, cercando un

percorso a costo minimo• La ricerca di un percorso fa uso di algoritmi detti ‘algoritmi di

instradamento’

Page 88: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• In quest’algoritmo la topologia di rete e tutti i costi dei collegamenti sono disponibili in input all’algoritmo.• Ciò si ottiene facendo inviare a ciascun nodo pacchetti sullo stato (identità e

costo) dei suoi collegamenti a tutti gli altri nodi della rete (broadcast)• Tutti i nodi avranno la stessa vista della rete e ciascun nodo che lancerà

l’algoritmo avrà lo stesso risultato degli altri• L’algoritmo in esame calcola il percorso a costo minimo da un dato nodo a

tutti gli altri nodi della rete• Al termine dell’algoritmo per ciascun nodo si avrà il suo predecessore lungo

il percorso a costo minimo da nodo origine.• Da qui si potrà costruire la tabella di inoltro.

Page 89: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

Calcoliamo i percorsi a costo minimo da u a tutte le destinazioni

u

x y

z

wv

5

3

1

3

1

2

2

1

5

2

Page 90: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Indichiamo con • D(v): il costo minimo del percorso dal nodo origine alla

destinazione v per quanto concerne l’iterazione corrente dell’algoritmo• P(v): il predecessore immediato di v lungo il percorso a costo

minimo dall’origine a v• N’: il sottoinsieme di nodi v già considerati, cioè quelli per cui il

percorso a costo minimo dall’origine a v è già noto definitivamente

Page 91: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 0: inizializzazione• N’ è composto solo da u• Per ogni nodo n adiacente imposta D(n)=c(n , v) dove c(n , v)

è il costo del collegamento• Qui i valori dei percorsi a costo minimo noti da u ai suoi nodi

adiacenti v, w, e x sono posti rispettivamente a 2,5,1• I costi verso y e z non sono impostatiPasso N’ D(v) - p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z)

0 u 2 – u 5 – u 1 – u - -

Page 92: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 1: prima iterazione• Individua un nodo n non in N’ tale che D(n) sia minimo ed

aggiungilo ad N’ (dalla tabella, nel nostro esempio n è x)• Aggiorna D(s) per ciascun nodo s adiacente a n e non in N’ nel

seguente modo:• D(s) = min (D(s), D(n)+c(n , s))

• Nel nostro esempio i nodi s adiacenti ad x sono y, w, v, quindi la tabella diventa la seguente

Passo N’ D(v) - p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 ux 2 - u 4 - x 2 - x

Page 93: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 2 : seconda iterazione• I nodi v ed y hanno il costo D minimo, quindi scegliamo uno dei due, per esempio y.

• Aggiungiamo y ad N’

• I nodi adiacenti non ancora in N’ da considerare sono w e z

• Applicando l’iterazione otteniamo la tabella seguente

Passo N’ D(v) - p(v) D(w) -p(w) D(x) - p(x) D(y) - p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 ux 2 - u 4 - x 2 - x

2 uxy 3 - y 4 - y

Page 94: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 3 : terza iterazione• Il nodo v ha il costo D minimo

• Aggiungiamo v ad N’

• I nodi adiacenti non ancora in N’ da considerare è solo w

• Applicando l’iterazione otteniamo la tabella seguente

Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 u x 2 - u 4 - x 2 - x

2 u x y 3 - y 4 - y

3 u x y v 3 - y

Page 95: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 4 : quarta iterazione• Il nodo w

• Aggiungiamo w ad N’

• I nodi adiacenti non ancora in N’ da considerare è solo z

• Applicando l’iterazione otteniamo la tabella seguente

Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 u x 2 - u 4 - x 2 - x

2 u x y 3 - y 4 - y

3 u x y v 3 - y

4 u x y v w 4 – y

Page 96: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Passo 5 : quinta iterazione• Il nodo z

• Aggiungiamo z ad N’

• I nodi adiacenti non ancora in N’ da considerare … non ve ne sono

Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 u x 2 - u 4 - x 2 - x

2 u x y 3 - y 4 - y

3 u x y v 3 - y

4 u x y v w 4 – y

5 u x y v w z

Page 97: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo di Dijkstra

• Per ciascun nodo abbiamo il suo predecessore. Quindi possiamo costruire il percorso minimo da u a qualunque nodo. Per esempio da u a z: il predecessore di z è y, il cui predecessore è x, il cui predecessore è u, dunque il percorso sarà: u x y z.• Un utile esercizio è cambiare i costi e vedere come variano i percorsi

Passo N’ D(v) - p(v) D(w)-p(w) D(x) - p(x) D(y)- p(y) D(z) - p(z)

0 u 2 - u 5 - u 1 - u - -

1 u x 2 - u 4 - x 2 - x

2 u x y 3 - y 4 - y

3 u x y v 3 - y

4 u x y v w 4 – y

5 u x y v w z

Page 98: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• L’algoritmo di Dijkstra usa informazioni globali, mentre il seguente algoritmo è iterativo, asincrono e distribuito.• Iterativo: si ripete finché non avviene ulteriore scambio informativo

tra nodi vicini• Asincrono: non richiede che tutti i nodi operino al passo con gli altri• Distribuito: ciascun nodo riceve informazioni dai nodi vicini e

restituisce a questi i risultati

Page 99: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Relazione importante (formula di Bellman-Ford):• Sia d (x,y) il costo del percorso a costo minimo dal nodo x al nodo y• Sia c (x,y) il costo del percorso sull’arco che congiunge x ed y• Allora

d (x , y) = min ( c(x , v) + d(v , y) ) al variare di v• dove v indica tutti i nodi vicini ad x• La relazione dice che dopo aver viaggiato da x a v,

consideriamo il costo minimo da v ad y; dunque il problema è individuare quel v per cui sia minima la somma.

Page 100: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Indichiamo con D(x , y) una stima del costo del percorso a costo minimo da x ad y per tutti i nodi y del grafo.• Indichiamo con D(x) l’insieme (o vettore) delle distanze dal

nodo x a tutti i nodi del grafo• Nell’algoritmo che presentiamo, ciascun nodo x mantiene le

seguenti informazioni:• c(x , v) per tutti i suoi vicini v• D(x) costo del percorso da x verso tutti i nodi• D(v) per ciascun vicino v, cioè i vettori di tutti i suoi vicini (di x)

Page 101: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Di quando in quando un nodo invia una copia del proprio vettore delle distanze a ciascuno dei suoi vicini. Quando il generico nodo x riceve un nuovo vettore da uno dei suoi vicini v, applica la formula di Bellman-Ford per aggiornare il proprio vettore (e lo distribuisce a sua volta ai suoi vicini) come segue:

• D (x , y) = min ( c(x , v) + D(v , y) ) per ciascun nodo y del grafo• Ogni volta che il vettore delle distanze cambia in un nodo, questo manderà il

proprio vettore a tutti i suoi vicini. In questo modo la stima de costi D(x,y) convergerà verso d(x,y) che è l’effettivo costo minimo da x ad y.• Ogni nodo quindi attende aggiornamento dai suoi vicini.

Page 102: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• D (x , y) = min ( c(x , v) + D(v , y) ) per ciascun nodo y del grafo• Vediamo con un semplice grafo il funzionamento dell’algoritmo:

y

zx2

7

1

X

x y z

0 2 7

Y

x y z

2 0 1

Z

x y z

7 1 0

Page 103: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Quando x riceve il vettore da y e da z aggiorna il proprio così:• D(x,x)=0 (non varia)

• D(x,y)=min(c(x,y)+D(y,y), c(x,z)+D(z,y))=min(2+0, 7+1)=2 (non varia)

• D(x,z)=min(c(x,z)+D(z,z), c(x,y)+D(y,z))=min(7+0, 2+1)=3 (varia)

• A questo punto x aggiorna la propria tabella di inoltro verso il nodo z: il percorso minimo passa da y per andare verso z

• Oltre ad aggiornare la propria tabella di inoltro invia il proprio vettore modificato ai suoi nodi vicini che aggiorneranno i propri rispettivi vettori

y

zx2

7

1X

x y z

0 2 7

Y

x y z

2 0 1

Z

x y z

7 1 0

X

x y z

0 2 3

2 0 1

7 1 0

Page 104: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Quando z riceve il vettore da x si aggiorna• D(z,z)=0 (non varia)

• D(z,y)=min(c(z,y)+D(y,y), c(z,x)+D(x,y))=min(1+0, 7+2)= 1 (non varia)

• D(z,x)=min(c(z,x)+D(x,x), c(z,y)+D(y,x))=min(7+0, 1+2)=3 (varia)

• A questo punto z aggiorna la propria tabella di inoltro verso il nodo x: il percorso minimo passa da y per andare verso x

• Oltre ad aggiornare la propria tabella di inoltro invia il proprio vettore modificato ai suoi nodi vicini che aggiorneranno i propri rispettivi vettori

y

zx2

7

1X

x y z

0 2 7

Y

x y z

2 0 1

Z

x y z

7 1 0

Z

x y z

0 2 3

2 0 1

3 1 0

Page 105: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEAlgoritmo distance vector (DV)

• Anche y riceverà i vettori dai vicini e resta come esercizio per il lettore. Si noterà che il vettore delle distanze di y non cambia e quindi non invierà nulla ai vicini.• In generale, ogni qualvolta interviene una modifica nel costo

di un collegamento, il nodo interessato invia il vettore ai suoi vicini.• Nell’algoritmo DV, ciascun nodo comunica solo con i vicini inviando i

costi da sé stesso verso tutti i nodi che conosce. • Nell’algoritmo Dijkstra invece comunica in modalità broadcast con tutti i

nodi comunicando soltanto i costi dei collegamenti direttamente connessi.

Page 106: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEInstradamento gerarchico

• Al crescere del numero dei router accade che:• il tempo di calcolo diventa proibitivo

• è necessaria un’enorme quantità di memoria

• Il traffico generato dal broadcast occupa parecchia banda

• Per risolvere questi problemi si organizzano i router in sistemi autonomi (AS), mettendoli sotto l stesso controllo amministrativo (stesso ISP o stessa rete aziendale).

• I router sotto lo stesso AS eseguono lo stesso algoritmo di instradamento• Vi sarà dunque un protocollo di instradamento intra-AS per ciascun AS ed un

protocollo di instradamento inter-AS• In internet tutti i sistemi autonomi usano lo stesso protocollo intra-AS chiamato BGP4• Ciascun router riceve informazioni sia dal protocollo intra-AS che da quello inter-AS

per configurare la propria tabella di inoltro

Page 107: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETEInstradamento in internet

• In internet è usato RIP come protocollo di instradamento all’interno di un sistema autonomo.• RIP è di tipo DV in cui tutti i collegamenti hanno costo unitario• In RIP i router adiacenti si scambiano gli aggiornamenti approssimativamente

ogni 30 secondi• Ciascun router mantiene una tabella di instradamento che include il vettore delle

distanze e la tabella di inoltro• Una tabella di instradamento avrà una riga per ciascuna sottorete del sistema

autonomo• Per il routing interno ai sistemi autonomi a livello di ISP di livello superiore, viene

usato OSPF e l’algoritmo Dijkstra• BGP è lo standard dei protocollo di instradamento tra sistemi autonomi

Page 108: Internet Una rete di reti. Quadro generale Internet interconnette centinaia di milioni di sistemi periferici/end system (server, pc, smartphone, cornici

Livello RETELivello di collegamento