A cura di Stefano Scarpellini

Slides:



Advertisements
Presentazioni simili
Prof. Carla Fanchin – L.S. Tron
Advertisements

Laboratorio di Telematica
Stack TCP/IP - Socket Douglas E. Comer, "Internetworking con TCP/IP, principi, protocolli, architettura.", Gruppo Editoriale Jackson W. Richard. Stevens,
Il livello di trasporto
Elaborazione del Book Informatico
Italo Losero S tray B ytes strane cose succedono nelle reti....
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Messaggi di errore e di controllo Alberto Polzonetti
I protocolli TCP/UDP prof.: Alfio Lombardo.
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
Come programmare servizi di rete?
Sistemi e Tecnologie della Comunicazione
La rete del futuro nellautonomia scolastica Sezione propedeutica I fondamentali e concetti di TCP/IP.
Reti di Calcolatori Domande di riepilogo Quarta Esercitazione
Programmazione su Reti
Architettura del World Wide Web
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
TCP Transmission Control Protocol. Programmazione II: Programmazione su Reti -- Prof. G. Persiano 2 TCP TCP fornisce un servizio di connessione –orientato.
1 Protocollo di comunicazione. 2 Reti eterogenee.
RETI E INTERNET.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO RETE.
Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP.
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
ICMP - PING - TRACEROUTE
Corso di Informatica per Giurisprudenza Lezione 7
Realizzato da Roberto Savino 3-1 Il livello di trasporto r Dobbiamo assumere di avere a che fare con un canale di comunicazione molto particolare 1. Inaffidabile.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Il modello di riferimento OSI
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
TCP/IP.
Informatica Lezione 9 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Reti di Calcolatori ed Internet Fabio Massimo Zanzotto.
TCP/IP.
L’architettura a strati
Internet: una panoramica
Distributed System ( )7 TCP/IP four-layer model.
FTP File Transfer Protocol
Questo modello può essere utilizzato come file iniziale per la presentazione di materiale didattico per la formazione in gruppo. Sezioni Fare clic con.
RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione.
Creato da Riccardo Nuzzone
Greco Rodolfo 2002 Application Trasport Network Phisic HTTP IP UDPTCP DNS SNAP MAC ARP L’utente fa una richiesta di pagina.
Livello di trasporto Protocolli TCP e UDP.
1 Sistemi e Tecnologie della Comunicazione Lezione 22: transport layer: introduzione, funzionalita’
Configurazione IP4a-1 Configurazione IP Reti II Stefano Leonardi.
Comunicazione nelle reti – protocolli
Il DHCP (Dinamic Host Configuration Protocol) fornisce un meccanismo per assegnare dinamicamente gli indirizzi IP ed i parametri di configurazione ad un.
1: Introduction1 Stratificazione protocollare (Protocol “Layering”) Le reti sono complesse! r Molti elementi: m host m router m link fisici dalle caratteristiche.
Livello 3 Network (Rete)
Servizi Internet Claudia Raibulet
Reti II Stefano Leonardi
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 3 -Instradamento statico Ernesto Damiani Lezione 2 – ICMP.
Controllo di flusso TCP. Elementi base del flusso TCP (1) Comunicazione punto-punto Un mittente, un destinatario. Flusso di byte affidabile Flusso suddiviso.
Sistemi di elaborazione dell’informazione Modulo 2 -Protocolli di rete TCP/IP Unità didattica 6 -User Datagram Protocol Ernesto Damiani Lezione 2 – UDP.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
1 Sistemi e Tecnologie della Comunicazione Lezione 23: transport layer: TCP e UDP.
Sistemi e Tecnologie della Comunicazione
ARCHITETTURA DI RETE Protocollo: insieme di regole che governano le comunicazioni tra i nodi di una rete. La condivisione di queste regole tra tutte gli.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET PROTOCOL SUITE FACOLTA’ DI INGEGNERIA Corso di Laurea Specialistica in Ingegneria delle Telecomunicazioni Docente: Prof. Pasquale Daponte Tutor:
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Sezione propedeutica I fondamentali e concetti di TCP/IP.
 Network Address Traslation: tecnica che permette di trasformare gli indirizzi IP privati in indirizzi IP pubblici  Gli indirizzi devono essere univoci.
II PROVA Svolgimento tramite protocollo ISO/OSI. I LIVELLO : LIVELLO FISICO Scelta del mezzo fisico; tenere conto degli standard IEEE Procedura di codifica.
Livello 7: Applicazione. Protocolli più importanti HTTP = Hyper Text Transfer Protocol HTTPS = Hyper Text Transfer Protocol over Secure Socket Layer DNS.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
Transcript della presentazione:

A cura di Stefano Scarpellini Il livello di Trasporto Pictures in 3-D flip book (Intermediate) To reproduce the picture effects on this slide, do the following: On the Home tab, in the Slides group, click Layout, and then click Blank. Also on the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle (first option from the left). On the slide, drag to draw a rectangle. Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 3.71” in the Height box and 2.57” in the Width box. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Outline, and then click No Outline. On the Home tab, in the Clipboard group, click the arrow to the right of Copy, and then click Duplicate. Select the first rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Shape dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following: Click the button next to Presets, and then under Perspective click Perspective Contrasting Right. In the X box, enter 342.5°. In the Y box, enter 57.2°. In the Z box, enter 11°. In the Perspective box, enter 25°. Select the second rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select another picture and then click Insert. In the Presets list, under Perspective, click Perspective Contrasting Right. In the X box, enter 300.6°. In the Y box, enter 68.7°. In the Z box, enter 329°. In the Perspective box, enter 0°. Position the two rectangles so that the bottom left corners touch. On the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle. Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 2.5” into the Height box and 3.25” into the Width box. Select the third rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Picture dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following: In the X box, enter 303.1°. In the Y box, enter 313°. In the Z box, enter 78°. In the Perspective box, enter 100°. Select the fourth rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. In the X box, enter 310.3°. In the Y box, enter 330°. In the Z box, enter 63°. In the Perspective box, enter 90°. Also in the Format Picture dialog box, click Shadow in the left pane, and in the Shadow pane, do the following: Click the button next to Color, and then under Theme Colors click Black, Text 1. In the Transparency box, enter 47%. In the Size box, enter 102%. In the Blur box, enter 16 pt. In the Angle box, enter 160°. In the Distance box, enter 4 pt. Position the third and fourth rectangles so that the left corners touch the bottom left corners of the first and second rectangles. To reproduce the background effects on this slide, do the following: Right-click the slide background area, and then click Format Background. In the Format Background dialog box, click Fill in the left pane, select Gradient fill in the Fill pane, and then do the following: In the Type list, select Linear. Click the button next to Direction, and then click Linear Down (first row, second option from the left). Under Gradient stops, click Add gradient stops or Remove gradient stops until four stops appear in the slider. Also under Gradient stops, customize the gradient stops as follows: Select the first stop in the slider, and then do the following: In the Position box, enter 0%. Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 15% (third row, first option from the left). Select the next stop in the slider, and then do the following: In the Stop position box, enter 56%. Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 5% (second row, first option from the left). In the Stop position box, enter 57%. Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 169, Green: 169, Blue: 169. Select the last stop in the slider, and then do the following: In the Stop position box, enter 100%. Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 211, Green: 211, Blue: 211. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Ripassiamo… Il modello ISO-OSI 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; Rete 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; Collegamento Trasferisce le sequenze di bit da una parte all’altra del collegamento, senza curarsi di eventuali disturbi. Fisico A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il livello applicativo si occupa di: Trasferimento, accesso e gestione dei file; Posta elettronica; Terminale virtuale; Gestione di messaggi; Scambio risultati tra programmi. Applicazione 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; Presentazione Il livello di sessione si occupa di suddividere il dialogo tra le applicazioni in unità logiche; Sessione 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 A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Ripassiamo… Il modello TCP-IP Applicazione Applicativo Presentazione Sessione Trasporto Da estremo a estremo Rete Internet Collegamento Accesso in rete Fisico Modello ISO/OSI Modello TCP/IP A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Accesso in rete 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 Internet layer Transport layer I pacchetti possono arrivare in ordine differente, ha il compito di ordinare i pacchetti per ricomporre l’intero messaggio Due 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 rete I più conosciuti sono: TELNET SMTP (Simple Mail Transfer Protocol) FTP (File Transfer Protocol) HTTP DNS (Domain Name Server) Application layer A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Ora passiamo a Esaminare il 4° livello Del modello ISO/OSI Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico A cura di Stefano Scarpellini

Il livello di trasporto Una volta giunti a destinazione i messaggi contenuti nei pacchetti devono essere consegnati 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 operano soprattutto 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 dei diversi flussi di un mittente è chiamata multiplazione. L’host destinatario svolge la demultiplazione. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Funzioni del livello 4 Gli indirizzi di livello 4 sono detti TSAP. Il livello 4 deve svolgere tutti i controlli e tutti i servizi orientati alla connessione che 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; A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Connessioni Molto 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. HTTP SMTP NFS FTP TCP UDP IP routing ICMP IGMP ARP non specificati Modello TCP/IP A cura di Stefano Scarpellini THREE-WAY HANDSHAKE

A cura di Stefano Scarpellini Il protocollo UDP UDP (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) : questo protocollo è 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. A cura di Stefano Scarpellini

Il protocollo UDP – le porte Lo 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 A cura di Stefano Scarpellini

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. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Connessioni attive visualizzate tramite il comando netstat –a –p udp 2 A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Comunicazioni UDP Quando un host vuol comunicare con un altro host tramite UDP, deve conoscerne l’IP del destinatario, la porta UDP su cui inviare il pacchetto e il numero di porta sul quale 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 porta di 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. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Protocollo UDP utilizzato nella richiesta di DHCP A cura di Stefano Scarpellini

A cura di Stefano Scarpellini IGMP e UDP In 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. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il protocollo TCP TCP (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… A cura di Stefano Scarpellini

Il protocollo TCP – le porte Lo 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 A cura di Stefano Scarpellini

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. A cura di Stefano Scarpellini

partire dall’ultimo byte confermato. 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) A cura di Stefano Scarpellini A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Connessioni attive visualizzate tramite il comando netstat –a –p tcp A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Protocollo TCP utilizzato in una comunicazione A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Connessione TCP Durante lo scambio a tre vie (three-way handshake) le entità di trasporto client e server negoziano anche qualche parametro necessario all’implementazione dei numerosi algoritmi di supporto a TCP: porta effimera, numeri di sequenza iniziali(ISN), massima dimensione del pacchetto 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) A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Connessione TCP A cura di Stefano Scarpellini

Disconnessione TCP Alla 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. Il server invia un segmento TCP contenente il flag FIN=1 e relativo N. sequenza attuale In risposta il client invia un segmento TCP contenente il flag ACK=1, conferma segmento di disconnessione Il client invia un altro segmento TCP con flag FIN=1 e relativo n. di sequenza attuale 4. In risposta il server invia un segmento TCP con flag ACK=1, conferma del segmento di disconnessione

A cura di Stefano Scarpellini Sliding Window Dovendo 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) A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Sliding Window Si 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. A cura di Stefano Scarpellini

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. A cura di Stefano Scarpellini

Vediamolo schematicamente… … socket UDP Qui sotto è schematizzata la creazione e uso dei socket UDP… A cura di Stefano Scarpellini

Vediamolo schematicamente… … socket TCP Qui sotto è schematizzata la creazione e uso dei socket TCP… A cura di Stefano Scarpellini

Vediamolo schematicamente… … socket TCP connessione Qui sotto è schematizzata la connessione dei socket TCP… A cura di Stefano Scarpellini

Vediamolo schematicamente… … socket TCP disconnessione Qui sotto è schematizzata la disconnessione dei socket TCP… A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Vediamolo in C#… socket UDP Qui sotto è mostrato il pezzo di codice per creazione e uso socket UDP… Librerie per socket Creazione socket Creazione socket Attesa client socket Invio di dati Invio di dati Ricezione di dati Ricezione di dati Chiusura Chiusura Server A cura di Stefano Scarpellini Client

A cura di Stefano Scarpellini Vediamolo in C#… socket TCP Qui sotto è mostrato il pezzo di codice per creazione e uso socket TCP… Librerie per socket Creazione socket Creazione socket Accettazione client socket Richiesta connessione Invio di dati Invio di dati Ricezione di dati Ricezione di dati Chiusura Chiusura Server A cura di Stefano Scarpellini Client

A cura di Stefano Scarpellini Il livello di Applicazione Pictures in 3-D flip book (Intermediate) To reproduce the picture effects on this slide, do the following: On the Home tab, in the Slides group, click Layout, and then click Blank. Also on the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle (first option from the left). On the slide, drag to draw a rectangle. Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 3.71” in the Height box and 2.57” in the Width box. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Outline, and then click No Outline. On the Home tab, in the Clipboard group, click the arrow to the right of Copy, and then click Duplicate. Select the first rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Shape dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following: Click the button next to Presets, and then under Perspective click Perspective Contrasting Right. In the X box, enter 342.5°. In the Y box, enter 57.2°. In the Z box, enter 11°. In the Perspective box, enter 25°. Select the second rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select another picture and then click Insert. In the Presets list, under Perspective, click Perspective Contrasting Right. In the X box, enter 300.6°. In the Y box, enter 68.7°. In the Z box, enter 329°. In the Perspective box, enter 0°. Position the two rectangles so that the bottom left corners touch. On the Home tab, in the Drawing group, click Shapes, and then under Rectangles click Rectangle. Select the rectangle. Under Drawing Tools, on the Format tab, in the Size group, enter 2.5” into the Height box and 3.25” into the Width box. Select the third rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. Also under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Effects, point to 3-D Rotation, and then click 3-D Rotation Options. In the Format Picture dialog box, click 3-D Rotation in the left pane, and in the 3-D Rotation pane do the following: In the X box, enter 303.1°. In the Y box, enter 313°. In the Z box, enter 78°. In the Perspective box, enter 100°. Select the fourth rectangle. Under Drawing Tools, on the Format tab, in the Shape Styles group, click Shape Fill, and then click Picture. In the Insert Picture dialog box, select a picture and then click Insert. In the X box, enter 310.3°. In the Y box, enter 330°. In the Z box, enter 63°. In the Perspective box, enter 90°. Also in the Format Picture dialog box, click Shadow in the left pane, and in the Shadow pane, do the following: Click the button next to Color, and then under Theme Colors click Black, Text 1. In the Transparency box, enter 47%. In the Size box, enter 102%. In the Blur box, enter 16 pt. In the Angle box, enter 160°. In the Distance box, enter 4 pt. Position the third and fourth rectangles so that the left corners touch the bottom left corners of the first and second rectangles. To reproduce the background effects on this slide, do the following: Right-click the slide background area, and then click Format Background. In the Format Background dialog box, click Fill in the left pane, select Gradient fill in the Fill pane, and then do the following: In the Type list, select Linear. Click the button next to Direction, and then click Linear Down (first row, second option from the left). Under Gradient stops, click Add gradient stops or Remove gradient stops until four stops appear in the slider. Also under Gradient stops, customize the gradient stops as follows: Select the first stop in the slider, and then do the following: In the Position box, enter 0%. Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 15% (third row, first option from the left). Select the next stop in the slider, and then do the following: In the Stop position box, enter 56%. Click the button next to Color, and then under Theme Colors click White, Background 1, Darker 5% (second row, first option from the left). In the Stop position box, enter 57%. Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 169, Green: 169, Blue: 169. Select the last stop in the slider, and then do the following: In the Stop position box, enter 100%. Click the button next to Color, click More Colors, and then in the Colors dialog box, on the Custom tab, enter values for Red: 211, Green: 211, Blue: 211. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Ora passiamo a Esaminare il 7° livello Del modello ISO/OSI Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico A cura di Stefano Scarpellini

Il livello applicazione Nelle reti TCP/IP non è previsto nessun livello tra il livello 4 e il livello 7. I compiti del 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 protocolli di livello 7 utilizzano TCP come strato di trasporto, i protocolli applicativi vengono spesso 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 di porta 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 A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP DHCP (Dynamic Host Configuration Protocol) è un protocollo client/server trasportato da 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 le richieste 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 server di 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. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il protocollo DHCP Il protocollo DHCP è costruito su un modello client/server. La distribuzione degli indirizzi deve essere definita su un ambito, ovvero su un gruppo ben preciso di indirizzi IP: l’ambito è l’insieme di indirizzi IP da cui il DHCP sceglie gli indirizzi da distribuire. Per un host generico, la modalità di assegnazione standard è quella dinamica: in base 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). A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il pacchetto DHCP Il protocollo DHCP utilizza un tipo di pacchetto nel quale una serie di campi identificano 4 messaggi principali che realizzano un handshake simmetrico a 4 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; A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer All’inizio l’host non ha un proprio indirizzo IP… quindi fa una richiesta se qualcuno è un server DHCP: A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il pacchetto è questo : L’IP è Broadcast A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il server risponde in broadcast proponendo un IP: A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il pacchetto è questo : L’IP è Broadcast IP proposto Il pacchetto contiene l’indirizzo IP del server A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il client accetta la configurazione proposta: A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il pacchetto è questo : L’IP è Broadcast IP proposto e accettato Il pacchetto contiene l’indirizzo IP del server A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il server risponde in broadcast fornendo la configurazione IP definitiva: A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DHCP in Packet Tracer Il pacchetto è questo : L’IP è Broadcast IP proposto Il pacchetto contiene l’indirizzo IP del server A cura di Stefano Scarpellini

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

A cura di Stefano Scarpellini Sicurezza DHCP Siccome 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 configurazioni scorrette ai client DHCP. Questa situazione è detta DHCP rogue server. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DNS Il DNS (Domain Name System) indica un sistema complessivo per ottenere l’indirizzo IP 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 assegnato a un nodo della rete (risoluzione inversa). Con lo stesso acronimo (DNS) si intende anche il protocollo omonimo di livello 7 che regola il funzionamento del sistema attraverso le macchine server. Cionondimeno tutta la rete TCP/IP necessita di indirizzi IP in formato numerico per far funzionare i protocolli, pertanto il servizio DNS è fondamentale sia per le reti TCP/IP locali, sia per la rete Internet mondiale (DNS pubblico). In sostanza il protocollo DNS deve essere in grado di agire a livello 7 come supporto ad altre applicazioni dello stesso livello che utilizzano nomi simbolici al posto di indirizzi IP. La parte client del protocollo DNS è sempre attiva su ogni host di una rete ed è spesso chiamata resolver. La parte server è chiamata name server. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il protocollo DNS Nella 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 memorizzate le 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). A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Il protocollo DNS L’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. A cura di Stefano Scarpellini

A cura di Stefano Scarpellini Comunicazione DNS A cura di Stefano Scarpellini

Risoluzione ricorsiva DNS Root server 3 6 7 8 9 10 edu 2 com 4 5 Fhda.edu 1 client Mcgraw.com A cura di Stefano Scarpellini

Risoluzione iterativa DNS Root server 6 5 edu 3 4 com 7 8 Fhda.edu 1 2 client Mcgraw.com 9 10 A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DNS in Packet Tracer L’host richiede un sito web ( nel esempio www.w3school.it) : A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DNS in Packet Tracer Il pacchetto è : A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DNS in Packet Tracer Il server DNS risponde con l’indirizzo IP : A cura di Stefano Scarpellini

A cura di Stefano Scarpellini DNS in Packet Tracer Il pacchetto è : A cura di Stefano Scarpellini

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

A cura di Stefano Scarpellini Sicurezza DNS Il tipico attacco al DNS comporta la simulazione di pacchetti DNS Standard response falsi, contenenti indirizzi IP differenti da quello che una risposta autentica avrebbe fornito. Ciò è molto insidioso dato che l’applicazione richiedente viene rediretta su un sito diverso da quello prestabilito. Questa situazione è detta DNS cache poisoning. A cura di Stefano Scarpellini