Lezione 14 – Sintesi TCP Reti di calcolatori Modulo 2 - Protocollo di rete TCP/IP Unità didattica 5 – Tecniche di controllo Ernesto Damiani Università di Milano Protocolli e servizi di trasporto (1) • Forniscono la comunicazione logica tra processi applicativi in esecuzione su host diversi • I protocolli di trasporto vengono eseguiti solo nei punti terminali – lato invio: scinde i messaggi in segmenti e li passa al livello di rete – lato ricezione: riassembla i segmenti in messaggi e li passa al livello di applicazione • Per le applicazioni sono disponibili più protocolli di trasporto – Internet: TCP e UDP Protocolli e servizi di trasporto (2) application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Livello di rete e livello di trasporto (1) • Livello di rete: comunicazione logica tra host • Livello di trasporto: comunicazione logica tra processi – Si basa sui servizi del livello di rete Livello di rete e livello di trasporto (2) Analogia con la posta ordinaria • 12 ragazzi inviano lettere a 12 ragazzi – processi = ragazzi – messaggi delle applicazioni = lettere nelle buste – host = abitazioni – protocollo di trasporto = manuale – protocollo del livello di rete = servizio postale Protocolli di trasporto Internet: TCP e UDP (1) • Affidabile, consegne nell’ordine originario (TCP) – Controllo di congestione – Controllo di flusso – Setup della connessione • Inaffidabile, consegne senz’ordine (UDP) – Estensione dell’IP “best-effort” dalla destinazione a livello di host a quella di processo • Servizi non disponibili: – Latenza garantita – Larghezza di banda garantita Protocolli di trasporto Internet: TCP e UDP (2) application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Multiplexing/demultiplexing (1) • Demultiplexing nell’host ricevente – Consegnare i segmenti ricevuti al socket appropriato • Multiplexing nell’host mittente – Raccogliere i dati da più socket, incapsularli con l’intestazione (poi utilizzata per il demultiplexing) Multiplexing/demultiplexing (2) application P3 transport network link P1 P1 application transport network P2 P4 application transport network link link physical physical host 1 = socket host 2 = process physical host 3 Come funziona il demultiplexing (1) • L’host riceve i datagram IP – Ogni datagram ha un indirizzo IP di origine e un indirizzo IP di destinazione – Ogni datagram trasporta 1 segmento a livello di trasporto – Ogni segmento ha un numero di porta di origine e un numero di porta di destinazione • L’host usa gli indirizzi IP e i numeri di porta per inviare il segmento al socket appropriato Come funziona il demultiplexing (2) Demultiplexing orientato alla connessione (1) • Il socket TCP è identificato da 4 parametri – Indirizzo IP di origine – Numero di porta di origine – Indirizzo IP di destinazione – Numero di porta di destinazione • L’host ricevente usa tutti i quattro parametri per inviare il segmento al socket appropriato Demultiplexing orientato alla connessione (2) • Un host server può supportare molti socket TCP contemporaneamente: – Ogni socket è identificato dai suoi 4 parametri • I server web hanno socket diversi per ogni client di connessione client – HTTP non-persistente avrà un socket diverso per ogni richiesta Demultiplexing orientato alla connessione (3) Demultiplexing orientato alla connessione: server Web multithread P1 P2 P4 P1P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 client IP: A DP: 80 S-IP: A D-IP:C SP: 9157 server IP: C DP: 80 S-IP: B D-IP:C Client IP:B Demultiplexing senza connessione (1) • Crea socket specificando i numeri di porta – DatagramSocket mySocket1 = new DatagramSocket(33111); – DatagramSocket mySocket2 = new DatagramSocket(33222); • Il socket UDP è identificato da 2 parametri – (indirizzo IP di destinazione, numero della porta di destinazione) Demultiplexing senza connessione (2) • Quando l’host riceve il segmento UDP: – Controlla il numero della porta di destinazione nel segmento – Invia il segmento UDP al socket con quel numero di porta • I datagram IP con indirizzi IP di origine e/o numeri di porta di origine diversi vengono inviati allo stessa socket Demultiplexing senza connessione (3) Principi del trasferimento dati affidabile • Importanti nelle applicazioni, nel trasporto, negli strati di data link Trasferimento dati affidabile: preparazione FINE