a cura di stefano scarpellini. fisico trasferisce le sequenze di bit da una parte all’altra del...

62
l livello d Trasport A cura di Stefano Scarpellini

Upload: stefano-scarpellini

Post on 02-May-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il livello di

Trasporto

Page 2: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Ripassiamo…Il modello ISO-OSI

FisicoTrasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi.

Collegamento

Il livello di collegamento, detto anche data link, si occupa di:

Suddividere i bit in frame;

Individuare la presenza di errori nei frame e correggerli;

Rete

Il livello di rete si occupa di: Multiplazione di due o più flussi di dati sullo

stesso circuito fisico; Instradamento (routing) dei dati dalla

stazione di partenza a quella di arrivo; Controllo della congestione della rete;

Page 3: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il livello di trasporto si occupa di: Segmentazione e assemblaggio dei dati Controllo end-to-end dei dati per prevenire

errori e fornire perciò un servizio affidabile al livello di sessione

Definizione della qualità del servizio

Trasporto

SessioneIl livello di sessione si occupa di suddividere il dialogo tra le applicazioni in unità logiche;

Presentazione

Il livello di presentazione si occupa della sintassi e della semantica. delle informazioni da trasferire, in generale si occupa di:

Rappresentazione dei dati; Compressione dei dati; Cifratura dei dati;

Applicazione

Il livello applicativo si occupa di: Trasferimento, accesso e gestione dei file; Posta elettronica; Terminale virtuale; Gestione di messaggi; Scambio risultati tra programmi.

Page 4: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Ripassiamo…Il modello TCP-IP

Fisico

Collegamento

Rete

Trasporto

Sessione

Presentazione

Applicazione

Modello ISO/OSI Modello TCP/IP

Applicativo

Da estremo a estremo

Internet

Accesso in rete

Page 5: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Accesso in rete

Internet layer

Transport layer

Application layer

Il protocollo utilizzato viene definito e varia da host a host e da rete a rete.L’importante è che in questo stato esisti un modo per recapitare i pacchetti prodotti dal livello superiore.

Corrisponde al network layer (livello di rete) dell’architettura OSI, ha il compito di spedire i pacchetti di informazioni verso ogni nodo destinazione

I pacchetti possono arrivare in ordine differente, ha il compito di ordinare i pacchetti per ricomporre l’intero messaggioDue protocolli: TCP Trasmission Control Protocol, orientato alla connessione UDP User Datagram Protocol, non orientato alla connessione: non effettua il

riassemblaggio dei pacchetti, usato per esempio nelle trasmissioni video in broadcast

Sono inseriti gli applicativi ad alto livello che permettono di risolvere i problemi concreti relativi all’utilizzo della reteI più conosciuti sono: TELNET SMTP (Simple Mail Transfer Protocol) FTP (File Transfer Protocol) HTTP DNS (Domain Name Server)

Page 6: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Ora passiamo a Esaminare il 4° livelloDel modello ISO/OSI

Fisico

Collegamento

Rete

Sessione

Presentazione

Applicazione

Trasporto

Page 7: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il livello di trasportoUna volta giunti a destinazione i messaggi contenuti nei pacchetti devono essereconsegnati correttamente e ordinatamente ai livelli superiori.Questo è compito del livello 4.

Il livello 4 è definito livello end-to-end perché i protocolli di livello 4 operanosoprattutto sugli ES.

I pacchetti a livello 4 vengono chiamati segmenti.

Il livello di trasporto non ha come mittente e destinatario degli host o nodi di rete, ma un processo in esecuzione su un host.

Siccome più processi su un host potrebbero comunicare in rete,il livello di trasporto deve identificare i vari flussi. L’identificazione deidiversi flussi di un mittente è chiamata multiplazione.

L’host destinatario svolge la demultiplazione.

Page 8: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Funzioni del livello 4Gli indirizzi di livello 4 sono detti TSAP.

Il livello 4 deve svolgere tutti i controlli e tutti i servizi orientati alla connessioneche il livello 3 non ha realizzato, se disconnesso. Inoltre esso si trova a dover gestire problemi di gestione del flusso, dell’errore e della congestione.

Le funzioni che quindi il livello 4 deve espletare sono :

Indirizzamento e multiplazione a livello applicativo;

Frammentazione;

Instaurazione delle connessioni;

Controllo del flusso;

Page 9: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

ConnessioniMolto spesso il livello 4 è connected oriented e quindi deve instaurare una connessione. Le connessioni sono gestite con tecniche di ARQ che confermano la connessione.La connessione è un momento critico e deve essere affidabile.Esistono protocolli orientati alla connessione, come TCP, e protocolli non orientati alla connessione, come UDP.

THREE-WAY HANDSHAKE

Modello TCP/IP

HTTPSMTP NFS

FTP

TCP UDPIP routing

ICMP IGMPARP

non specificati

Page 10: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo UDPUDP (User Datagram Protocol) è un protocollo di trasporto utilizzato nella rete TCP/IP,di tipo connectionless (non connesso).

Tra le funzioni tipiche del livello 4 , UDP gestisce solo l’indirizzamento, la multiplazione e il controllo dell’errore sul singolo pacchetto, lasciando al livello superiore (Applicazione) gli altri compiti.

Essendo un protocollo senza connessione, la sua affidabilità non è garantita.

Il pacchetto UDP non è chiamato più segmento ma datagramma (UDP) : questoprotocollo è semplice e veloce.

UDP è un protocollo di tipo peer-to-peer , ovvero ognuno dei 2 host ha le medesime capacità.

UDP consente una comunicazione full-duplex.

L’UDP è spesso utilizzato per streaming audio-video e comunicazioni real time.

Page 11: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo UDP – le porteLo schema di indirizzamento UDP si basa sul concetto di porta.

La porta è un identificativo numerico espresso su 16 bit capace di numerare 216= 65536 flussi differenti.

Le porte UDP sono classificate in tre categorie : Intervallo 0-1023: well-known ports (porte ben note), dedicate a processi che usano protocolli applicativi comunemente usati sulla rete TCP/IP, come DHCP, DNS, etc.. Intervallo 1024-49151: registered ports(porte registrate), assegnate da IANA su richiesta di utenti o aziende che hanno intenzione di implementare servizi di rete pubblici Intervallo 49152-65535: dynamic ports(porte dinamiche o locali), non assegnate e utilizzabili localmente come porte temporanee o porte per servizi locali alla rete di appartenenza

Page 12: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il pacchetto UDP

Intestazione

dati

Il significato dei campi dell’ header è questo : Source port (16) : è il numero di porta sulla quale si intendono ricevere pacchetti

Destination port (16) : è il numero di porta sulla quale si inviano i pacchetti

Lenght (16) : è la lunghezza totale del datagramma (header+dati)

Checksum (16) : checksum calcolata come complemento a due della somma dei complementi a due di tutti i gruppi da 16 bit costituenti i campi.

Page 13: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Connessioni attivevisualizzate tramite il comandonetstat –a –p udp 2

Page 14: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Comunicazioni UDPQuando un host vuol comunicare con un altro host tramite UDP, deve conoscernel’IP del destinatario, la porta UDP su cui inviare il pacchetto e il numero di porta sulquale ricevere pacchetti.

Ogni host UDP deve importare una tripla fatta in questo modo:<IP Destination address; UDP Source port; UDP Destination port>

per spedire basta una coppia di valori contenente solo IP di destinazione e portadi destinazione su una speciale struttura detta Socket.

Per la sua semplicità e la sua completa assenza di connessione, il protocollo UDP è detto protocollo fire e forget.

Page 15: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano ScarpelliniProtocollo UDP utilizzato nella richiesta di DHCP

Page 16: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

IGMP e UDPIn questa figura il flusso di dati è maggiore. Questa immagine mostra uno stream di audio-video con un protocollo con connessione.

In questa figura il protocollo utilizzato non instaura connessioni ma viene richiesto tramite il protocollo IGMP di partecipare allo stream e i router sanno quindi instradare i pacchetti per quegli host che lo richiedono, impostando un IP multicast.

Page 17: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo TCPTCP (Trasmission Control Protocol) è un protocollo di trasporto utilizzato nella rete TCP/IP,di tipo connection oriented (orientato alla connessione).

Tra le funzioni tipiche del livello 4 , TCP gestisce tutte le funzioni come l’indirizzamento, la multiplazione, il controllo dell’errore, controllo del flusso e delle congestioni.

Essendo un protocollo orientato alla connessione, la sua affidabilità è garantita.

La sua natura con connessione implica che esso sia un protocollo client-server, dove un host fa da cliente e l’altro da fornitore del servizio.

Il protocollo TCP è utilizzato nei protocolli applicativi come l’HTTP, l’HTTPS e altri…

Page 18: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo TCP – le porteLo schema di indirizzamento TCP si basa sul concetto di porta, come con UDP.

La porta è un identificativo numerico espresso su 16 bit capace di numerare 216= 65536 flussi differenti.

Le porte TCP sono classificate in tre categorie : Intervallo 0-1023: well-known ports (porte ben note), dedicate a processi che usano protocolli applicativi comunemente usati sulla rete TCP/IP, come HTTP, HTTPS, FTP etc.. Intervallo 1024-49151: registered ports(porte registrate), assegnate da IANA su richiesta di utenti o aziende che hanno intenzione di implementare servizi di rete pubblici Intervallo 49152-65535: dynamic ports(porte dinamiche o locali), non assegnate e utilizzabili localmente come porte temporanee o porte per servizi locali alla rete di appartenenza

Page 19: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il pacchetto TCP

Intestazione

dati

Il significato dei campi dell’ header è questo : Source port (16), Destination port (16) : è il numero di porta sulla quale si intendono ricevere e inviare pacchetti. Sequence number (32) : numero di sequenza del primo byte contenuto nel pacchetto. Acknowledgment number(32) : se il flag ACK vale 1, il campo indica il numero di sequenza del prossimo byte da ricevere. Header length(4) : indica il numero di parole a 32 bit dell’intestazione TCP. Il minimo valore è 5, mentre il massimo è 15. Flag(9) : uan raccolta di 9 bit da interpretare. I più importanti sono:

• URG: se settato a 1 sono presenti dati urgenti;• ACK: a 1 quando il campo corrispondente contiene un ack valido;• SYN: a 1 quando l’host mittente intende avviare una connessione;• FIN: a 1 quando il mittente del messaggio intende chiudere la connessione.

Page 20: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

A cura di Stefano Scarpellini

Intestazione

dati

Window size(16) : indica quanti byte il mittente del pacchetto è in grado di ricevere a partire dall’ultimo byte confermato. Checksum (16) : checksum calcolata come complemento a due della somma dei complementi a due di tutti i gruppi da 16 bit costituenti i campi.

Urgent pointer (16) : valido se il flag URG vale 1, indica l’indice del byte nella parte dati del pacchetto che inizia una sequenza di valori che devono essere consegnati e elaborati urgentemente.

Options(32) : contiene informazioni aggiuntive tra le quali la MSS(Maximum Segment Size)

Page 21: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Connessioni attivevisualizzate tramite il comandonetstat –a –p tcp

Page 22: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano ScarpelliniProtocollo TCP utilizzato in una comunicazione

Page 23: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Connessione TCPDurante lo scambio a tre vie (three-way handshake) le entità di trasporto client e server negoziano anche qualche parametro necessario all’implementazione dei numerosi algoritmidi supporto a TCP: porta effimera, numeri di sequenza iniziali(ISN), massima dimensione delpacchetto scambiabile(MSS) e la dimensione delle finestre.

Il protocollo TCP deve garantire che i vari flussi in arrivo sul server e diretti alla medesima siano distinguibili e separati, benché l’indirizzo TCP di destinazione dei vari client sia lo stesso.

Affinché ciò possa avvenire:

Quando due processi client sono avviati dallo stesso host, TCP impone a ogni processo di scegliere un numero di porta locale TCP sempre diversa per ogni connessione, detta porta effimera. Se invece i due processi agiscono su client differenti bisogna associare alle porte TCP anche gli indirizzi IP degli host.

Il flusso TCP è identificato univocamente da una quadrupla :<IP Source address; IP Destination address; TCP Source port; TCP Destination port>

Questa quadrupla per i due host è detta TCB (Trasmission Control Block)

Page 24: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Connessione TCP

Page 25: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

Disconnessione TCPAlla fine di una sessione veicolata da una connessione TCP, la connessione deve essere rilasciata. Il rilascio viene avviato da un capo della connessione e confermato dall’altro.

1. Il server invia un segmento TCP contenente il flag FIN=1 e relativo N. sequenza attuale

2. In risposta il client invia un segmento

TCP contenente il flag ACK=1, conferma segmento di disconnessione3. Il client invia un altro segmento TCP con

flag FIN=1 e relativo n. di sequenza attuale4. In risposta il server invia un segmento TCP con flag ACK=1, conferma del segmento di disconnessione

Page 26: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Sliding WindowDovendo garantire le funzionalità di un protocollo connesso, TCP deve gestire un meccanismo ARQ di gestione del flusso che consenta di ricostruire la corretta sequenza dei segmenti trasmessi e permetta di recuperare eventuali segmenti persi, ritardati o errati. Lo schema di gestione di flusso adottato da TCP è Sliding Window, un protocollo a finestra scorrevole senza NACK, con ACK cumulativi e con piggybacking. Lo schema seguente mette in evidenza l’importanza della dimensione della finestra rispetto alle prestazioni (Throughput, o numero di segmenti scambiati nell’unità di tempo)

Page 27: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Sliding WindowSi deduce che se le dimensioni della finestra è troppo piccola, il canale sarà sottoutillizzato: si potrebbe essere più efficienti aumentando la dimensione della finestra.

La dimensione della finestra di trasmissione dipende sicuramente dalle caratteristiche del destinatario.Nello schema è riportato in evidenza l’RTT(Round Trip Time) cioè il tempo di andata e ritorno di un pacchetto, e il tempo di timeout impostato per ogni segmento spedito RTO(Retransmission TimeOut).

TCP contrasta le congestioni usando una dimensione di finestra variabile a seconda delle condizioni contingenti, dapprima applicando all’avvio l’algoritmo di Slow Start. Esso impone una dimensione della finestra inferiore a quella negoziata, per poi aumentarla in modo esponenziale.Quando Slow Start arriva al limite prefissato, TCP abbandona Slow Start e applica Congestion Avoidance:la dimensione aumenta lentamente fino alla dimensione negoziata.

Page 28: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Per quanto riguarda la programmazione…

La programmazione in TCP/IP avviene, praticamente per ogni linguaggio e sistema operativo, secondo il modello Berkeley sockets o BSD sockets, una libreria con un’ API per internet e Unix.La libreria BSD sockets si basa sulla struttura dati denominata socket. La lista delle principali funzioni della libreria è la seguente: socket() : crea un socket a livello di sistema operativo; bind() : usata dal lato server TCP, serve per impostare gli indirizzi(porte) locali del socket; listen() : usata dal lato server TCP, serve per rendere operativo il socket in attesa di

connessione; connect() : usata dal lato client TCP per avviare una connessione (primo passo del three-

way handshake); accept() : usata dal lato server TCP per accettare una connessione (secondo passo del

three-way handshake); sendto(),recvfrom() : usate per spedire e ricevere pacchetti in UDP; send(),recv () : usate per spedire e ricevere pacchetti in TCP; close() : usate per avviare la disconnessione;

Le funzioni connect(),accept(), recvfrom() e recv() sono richieste bloccanti.

Page 29: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo schematicamente…

Qui sotto è schematizzata la creazione e uso dei socket UDP…

… socket UDP

Page 30: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo schematicamente…

Qui sotto è schematizzata la creazione e uso dei socket TCP…

… socket TCP

Page 31: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo schematicamente…

Qui sotto è schematizzata la connessione dei socket TCP…

… socket TCP connessione

Page 32: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo schematicamente…

Qui sotto è schematizzata la disconnessione dei socket TCP…

… socket TCP disconnessione

Page 33: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo in C#…Qui sotto è mostrato il pezzo di codice per creazione e uso socket UDP…

socket UDP

Server Client

Chiusura

Creazione socket

Invio di dati

Ricezione di dati

Librerie per socket

Chiusura

Creazione socket

Invio di dati

Ricezione di dati

Attesa client socket

Page 34: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Vediamolo in C#…Qui sotto è mostrato il pezzo di codice per creazione e uso socket TCP…

socket TCPLibrerie per socket

Chiusura

Creazione socket

Invio di dati

Ricezione di dati

Accettazione client socket

Chiusura

Creazione socket

Invio di dati

Ricezione di dati

Richiesta connessione

ClientServer

Page 35: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il livello di Applicazione

Page 36: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Trasporto

Ora passiamo a Esaminare il 7° livelloDel modello ISO/OSI

Fisico

Collegamento

Rete

Sessione

Presentazione

Applicazione

Page 37: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il livello applicazioneNelle reti TCP/IP non è previsto nessun livello tra il livello 4 e il livello 7. I compitidel livello 5 e 6 sono svolti dai protocolli di livello 7.

Data la natura connessa e client/server di TCP e il fatto che numerosi protocollidi livello 7 utilizzano TCP come strato di trasporto, i protocolli applicativi vengonospesso implementati in modo asimmetrico dalle relative applicazioni.In questi casi si hanno quindi due applicazioni differenti che utilizzano il medesimo protocollo di livello 7 ai due capi della connessione, un’applicazione client e un’applicazione server.

Bisogna ricordare che molti protocolli di livello 7 sono trasportati su TCP o UDP su porte ben note e che risulta abbastanza normale associare un protocollo al numero diporta sul quale è veicolato, anche se non è sempre così.Per esempio:- 20 e 21 File Transfer Protocol- 25 Simple Mail Transfer Protocol- 53 Domain Name Server- 67 e 68 Dynamic Host Configuration Protocol- 80 e in alcuni casi 8080 Hyper Text Transfer Protocol- 110 Post Office Protocol- 143 Internet Message Access Protocol

Page 38: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCPDHCP (Dynamic Host Configuration Protocol) è un protocollo client/server trasportatoda UDP su reti LAN, o PPP su collegamento WAN.E’ utilizzato per assegnare gli indirizzi IP e altri valori di impostazione agli host di una rete TCP/IP , evitando di doverli configurare manualmente per ogni singolo host.

In una LAN i pacchetti vengono sempre inviati in broadcast; la parte client spedisce lerichieste sulla porta UDP 67, mentre aspetta le risposte sulla porta UDP 68.

L’obbiettivo di DHCP è quello di mantenere la configurazione degli host di una rete priva di management da parte dell’amministratore.

L’amministratore ha però il compito di impostare adeguatamente la parte serverdi DHCP, in modo che la distribuzione degli indirizzi sia coerente con il piano di indirizzamento della rete TCP/IP.

Gli indirizzi ottenuti dal client sono i cosiddetti indirizzi IP dinamici.

Un server DHCP deve essere presente nel dominio di broadcast del host per rispondere alla richiesta. Se così non fosse, nel dominio deve esserci una stazione che opera in DHCP Relay.

Page 39: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo DHCPIl protocollo DHCP è costruito su un modello client/server.

La distribuzione degli indirizzi deve essere definita su un ambito, ovvero su un gruppoben preciso di indirizzi IP: l’ambito è l’insieme di indirizzi IP da cui il DHCP sceglie gliindirizzi da distribuire.

Per un host generico, la modalità di assegnazione standard è quella dinamica: inbase a criteri impostati sul DHCP server, il client ottiene un indirizzo IP dall’ambito,coerente e valido per un determinato periodo di tempo denominato lease.

Per quegli host che invece necessitano di indirizzi IP permanenti, l’assegnazione dell’indirizzo IP può essere ottenuta in modo tale che il servizio DHCP identifichi tali host attraverso il loro indirizzo MAC durante la richiesta e gli assegni un indirizzo IP predeterminato (reservation).

Page 40: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il pacchetto DHCPIl protocollo DHCP utilizza un tipo di pacchetto nel quale una serie di campi identificano 4 messaggi principali che realizzano un handshake simmetrico a4 vie detto DORA(Discovery, Offer, Request, Acknowledgement):

• DHCPDISCOVER, il client cerca un server (in broadcast) e chiede la configurazione.

• DHCPOFFER, un server offre una configurazione (in broadcast) al client, indicando il proprio IP.

• DHCPREQUEST, il client accetta la configurazione (in broadcast) di un server.

• DHCPACK, il server conferma i dati (in broadcast) e chiude la sessione.

I parametri di configurazione fondamentali offerti da DHCP a un client sono:- IP address;- Subnet Mask;- Default Gateway;- DNS;

Page 41: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerAll’inizio l’host non ha un proprio indirizzo IP… quindi fa una richiesta se qualcuno è un server DHCP:

Page 42: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl pacchetto è questo :

L’IP è Broadcast

Page 43: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl server risponde in broadcast proponendo un IP:

Page 44: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl pacchetto è questo :

L’IP è Broadcast

IP proposto

Il pacchetto contiene l’indirizzo IP del server

Page 45: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl client accetta la configurazione proposta:

Page 46: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl pacchetto è questo :

L’IP è Broadcast

IP proposto e accettato

Il pacchetto contiene l’indirizzo IP del server

Page 47: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl server risponde in broadcast fornendo la configurazione IP definitiva:

Page 48: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DHCP in Packet TracerIl pacchetto è questo :

L’IP è Broadcast

IP proposto

Il pacchetto contiene l’indirizzo IP del server

Page 49: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

DHCP in Packet TracerIl file di packet tracer può essere aperto qui cliccando sull’immagine:

Page 50: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Sicurezza DHCPSiccome DHCP è un protocollo per reti trust esso non prevede autenticazioni, né da parte client né da parte server. Un server DHCP non è certo che la richiesta che riceve sia una richiesta legittima.

Un programma speciale potrebbe infatti fare molte richieste DHCP impersonando MAC address diversi, causando l’esaurimento dei pool di indirizzi IP.

Questa situazione è detta DHCP address starvation.

Un programma speciale potrebbe sostituirsi al server DHCP inviando configurazioniscorrette ai client DHCP.

Questa situazione è detta DHCP rogue server.

Page 51: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DNSIl DNS (Domain Name System) indica un sistema complessivo per ottenere l’indirizzoIP di un nodo della rete dal suo nome simbolico o host name (risoluzione DNS); oppure offre la conversione inversa, da un indirizzo IP a un host name assegnatoa un nodo della rete (risoluzione inversa).

Con lo stesso acronimo (DNS) si intende anche il protocollo omonimo di livello 7che regola il funzionamento del sistema attraverso le macchine server.

Cionondimeno tutta la rete TCP/IP necessita di indirizzi IP in formato numerico per farfunzionare i protocolli, pertanto il servizio DNS è fondamentale sia per le reti TCP/IPlocali, sia per la rete Internet mondiale (DNS pubblico).

In sostanza il protocollo DNS deve essere in grado di agire a livello 7 come supportoad altre applicazioni dello stesso livello che utilizzano nomi simbolici al posto diindirizzi IP.

La parte client del protocollo DNS è sempre attiva su ogni host di una rete ed è spessochiamata resolver. La parte server è chiamata name server.

Page 52: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo DNSNella sua forma più semplice il protocollo DNS consiste in due passi:la richiesta del resolver e la risposta del name server.

Il resolver invia una richiesta di risoluzione di un nome con un pacchetto DNS standard query e il name server risponde con un pacchetto DNS Standard response.

Il name server prima di tutto consulta un database locale nel quale sono memorizzatele corrispondenze tra gli host name della rete e i relativi indirizzi IP.

Se la ricerca da esito negativo, il name server diventa a sua volta resolver verso un name server più profondo.Il processo si ripete fino al raggiungere un name server che possiede la corrispondenza richiesta.

Le richieste di risoluzione di host name pubblici si basa su un database distribuito e sulla gerarchia dei nomi di dominio.

Quando un nome di dominio indica un preciso nodo nell’albero, si chiama FQDN (Fully Qualified Domain Name).

Page 53: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Il protocollo DNSL’organizzazione dei nomi di dominio è affidata a ICANN/IANA.Sotto la radice IANA ha previsto nomi di dominio di primo livello TLD (Top Level Domain).

Quando il resolver di un client DNS avvia una richiesta che si espande al dominio pubblico,la richiesta viene presa in carico da più name server che possono operare in modo ricorsivo e/o iterativo: se un name server delega un altro name server, allora la richiesta èricorsiva; se invece coopera con altri name server, la richiesta e iterativa.

Quando una richiesta viene esaudita, potrebbe significare che un name server ha trovato nel suo database la corrispondenza nome di dominio/indirizzo IP: questo name serverè detto autoritativo.

I server autoritativi posseggono la parte di database distribuito necessaria per la mappatura di una precisa zona della gerarchia DNS a essi assegnata dalle autoritàdeleganti.

Page 54: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Comunicazione DNS

Page 55: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Risoluzione ricorsiva DNS

client

Mcgraw.com

Fhda.edu1

edu

2

Root server

3

com

4

5

67

8

9

10

Page 56: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Risoluzione iterativa DNS

client

Mcgraw.com

Fhda.edu1

2

edu

3

4

Root server

6

5

com7

8

9

10

Page 57: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DNS in Packet TracerL’host richiede un sito web ( nel esempio www.w3school.it) :

Page 58: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DNS in Packet TracerIl pacchetto è :

Page 59: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DNS in Packet TracerIl server DNS risponde con l’indirizzo IP :

Page 60: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

DNS in Packet TracerIl pacchetto è :

Page 61: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

DNS in Packet TracerIl file di packet tracer può essere aperto qui cliccando sull’immagine:

Page 62: A cura di Stefano Scarpellini. Fisico Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Collegamento

A cura di Stefano Scarpellini

Sicurezza DNSIl tipico attacco al DNS comporta la simulazione di pacchetti DNS Standard responsefalsi, contenenti indirizzi IP differenti da quello che una risposta autentica avrebbefornito.

Ciò è molto insidioso dato che l’applicazione richiedente viene rediretta su un sito diverso da quello prestabilito.

Questa situazione è detta DNS cache poisoning.