La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti

Presentazioni simili


Presentazione sul tema: "Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti"— Transcript della presentazione:

1 Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti

2 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 2 TCP & UDP Operano tra lo strato applicativo e quello IP Fungono da intermediari tra i programmi applicativi e le operazioni di rete APPLICATIVO SMTPFTPDNS………. TRASPORTO TCPUDP RETE ICMP IP ARPRARP IGMP COMUNICAZIONE Tecnologia delle LAN e delle WAN sottostanti FISICO

3 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 3 Compiti dello strato di trasporto Creazione di comunicazione processo – processo (udp – tcp) processo – processo Garantire laffidabilità (TCP)laffidabilità (TCP) Instaurare connessioni tra i processi : UDP – TCPUDPTCP Meccanismi per il controllo di errore tempo limite e ritrasmissione : TCPtempo limite e ritrasmissione : TCP Meccanismi per il controllo di flusso finestre scorrevoli (sliding window) : TCPfinestre scorrevoli Perché un processo dovrebbe richiedere i servizi UDP ? I. Il protocollo è semplice II. Adatto per messaggi piccoli e poco importanti III. Non dovendo lUDP stabilire prioritariamente una connessione con il destinatario, viene usato quando la consegna tempestiva è importante (SNMP)

4 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 4 UDP: datagramma utente I pacchetti UDP sono chiamati datagramma utente DATI (0 – 65507) ChecksumDimensione (in ottetti) Numero di porta del destinatario Numero di porta del mittente 16 bit headerheader

5 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 5 Funzionamento del protocollo UDP Servizi senza connessione 1. Non esiste nessuna relazione tra i datagrammi dutente 2. I processi devono inviare allUDP richieste di piccole dimensioni che possono essere inserite nel datagramma utente Protocollo non affidabile 1. Non essendoci controllo di flusso il destinatario potrebbe trovarsi in situazione di congestione 2. Nei casi di errori evidenziati dal checksum non sono previste notifiche Il processo deve sopperire a queste carenze Utile quando: si opera su rete affidabile oppure quando laffidabilità non è importante lapplicazione mette tutti i dati in un singolo pacchetto non è importante che tutti i pacchetti arrivino a destinazione Principali applicazioni classiche che utilizzano UDP: NFS (Network File System) SNMP (Simple Network Management Protocol) Trasmissioni in Real-Time H.323 videoconferenza RTP Real Time Transfer Protocol

6 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 6 Dati UDP Hea derU DP Dati IP Header IP Dati TRAMA Header TRAMA Dati dal processo processo Dati al processo Dati UDP Hea derU DP Dati IP Header IP Dati TRAMA Header TRAMA processo UDP:incapsulamento ed estrazione

7 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 7 TCP: Transmission Control Protocol Protocollo di trasporto Byte oriented Connesso Utilizzato da applicativi che richiedono la trasmissione affidabile di applicazioni telnet, ftp, http, smtp SERVIZI Servizio data stream (usato con i buffer) Accetta dallapplicazione un intero flusso di dati Crea i segmenti estraendo sequenze appropriate di dati Riceve i segmenti, estrae i dati li riordina Consegna i dati allapplicazione ricevente Servizio Full – Duplex (trasferimento simultaneo in entrambe le direzioni) Servizio affidabile Controllo del flusso Tecnica del riscontro per il controllo della ricezione dei pacchetti

8 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 8 TCP: controllo di flusso Stabilisce la quantità di dati che il mittente può inviare prima della ricezione del riscontro Caso massimo : il mittente aspetta un riscontro per ogni byte Caso minimo : il mittente invia tutti i suoi dati riscontrandoli alla fine End-to-end flow control Migliora lefficienza della trasmissione Controlla il flusso dei dati in modo tale di non congestionare il ricevente La dimensione della finestra è gestita dal destinatario in relazione allo spazio disponibile sul suo buffer di ricezione Controlla che i pacchetti arrivino correttamente e nel momento in cui qualcuno si perde procede alla loro ritrasmissione

9 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 9 End to end flow control E composto da due algoritmi Sliding window mechanism Sliding window mechanism: è il meccanismo che gestisce il numero di pacchetti da trasmettere prima di ricevere una conferma di avvenuta ricezione controlla inoltre che i pacchetti siano arrivati e in caso non siano arrivati procede alla ritrasmissione Round Trip Estimate Round Trip Estimate: è il meccanismo che controlla il round trip delay per sapere quando procedere alla ritrasmissione

10 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 10 Sliding Window Meccanismo che permette la trasmissione di N dati (N- window) prima che giunga lacknowledge del primo dato trasmesso

11 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 11 Sliding window [dimensione variabile] 1. Deve essere stabilito un valore iniziale (che può essere diverso per Sender e Receiver); viene negoziato allapertura della connessione 2. A connessione aperta il ricevitore comunica al trasmettitore, insieme allacknowledge, il valore della window ammessa Può ad esempio diminuirla se il buffer nel quale mette i dati TCP è pieno e la ricezione di altri segmenti provocherebbe la perdita di alcuni dati per overflow Lincremento della window porta ad un incremento di prestazioni, visibile soprattutto nel caso di lunghe distanze (nel quale il round trip time è notevole)

12 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 12 Sliding window [dimensione e forme] In TCP la dimensione della finestra è in byte, non in segmenti Il campo window del pacchetto TCP indica quanti byte possono ancora essere trasmessi prima di un ACK Lacknowledge è dato in forma cumulativa Larrivo di un ack relativo al segmento X indica implicitamente che tutti i segmenti precedenti ad X sono stati ricevuti E un vantaggio se la connessione non ha perdite di pacchetti (si diminuisce il traffico di controllo tra il receiver e il sender) Può essere uno svantaggio nel caso di perdita di pacchetti (può essere forzata la trasmissione di un segmento anche se questo era precedentemente arrivato correttamente)

13 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 13 Sliding window [simulazione] mittentedestinatario tempo Numero di sequenzaNumero di riscontroDimensione finestra Buffer 4K Buffer 4K Buffer 4K

14 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 14 Retrasmission timer 1. Tempo limite (soglia massima di tempo che deve intercorrere da quando un pacchetto è inviato a quando si riceve lACK) 2. Orologio di ritrasmissione (tempo limite) Impostato di solito a 2 volte il tempo di andata e ritorno Aggiornato dinamicamente è calcolato in base alle condizioni del traffico: connessioni con basso Round Trip Delay hanno timer bassi a run-time è inoltre in grado di adattarsi ad eventuali variazioni del round trip time medio generando un aumento del timer senza causare ritrasmissioni ad ogni ack ricevuto il valore del timer viene ricalcolato per tenere conto delle variazioni di round trip time 1. Allatto dellinvio di un segmento il mittente gli associa lorologio 2. Lorologio esegue un conto alla rovescia a partire dal tempo limite fissato 3. Quando lorologio va a zero il mittente rispedisce quel segmento 3. Non essendo obbligatorio confermare tutti i segmenti, basta che un segmento successivo sia stato a sua volta confermato 4. Se si ritrasmette una quantità di dati pari a tutta la Window ammessa, è possibile dare origini a congestioni (Entrano in gioco i meccanismi di Congestion Control)

15 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 15 TCP: orologi OROLOGI 1. Orologio di ritrasmissione (tempo limite) Impostato di solito a 2 volte il tempo di andata e ritorno Aggiornato dinamicamente 2. Orologio di persistenza Viene attivato quando il destinatario imposta la finestra a zero Viene disattivato quando il destinatario fa ripartire la trasmissione Quando si raggiunge il tempo di persistenza il mittente manda un messaggio di sonda per avvisare il destinatario 3. Orologio di permanenza in attività Usato per evitare connessioni con periodi troppo lunghi di inattività (es. crash del client) 4. Orologio tempo di attesa Usato durante le operazioni di chiusura della trasmissione

16 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 16 TCP: segmento rovinato mittentedestinatario tempo OK S rovinato

17 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 17 TCP: segmento smarrito mittentedestinatario tempo OK S

18 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 18 TCP: riscontro smarrito mittentedestinatario tempo OK

19 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 19 Controllo di congestione In teoria, il controllo della congestione della communication subnet dovrebbe essere svolto dal livello Network. In pratica, il modo più efficiente per risolvere le situazioni di congestione consiste nel regolare la velocità del trasmittente, quindi a livello Transport Il protocollo TCP integra il controllo della congestione nel meccanismo di controllo del flusso Presupposto: gli algoritmi TCP utilizzati in Internet assumono che tutti i timeout dovuti a segmenti non ricevuti sono causati da congestione della communication subnet (e non da disturbi delle linee di trasmissione)

20 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 20 Finestra di congestione Ogni trasmittente mantiene due diverse finestre: la finestra di trasmissione per il controllo del flusso la finestra di congestione per il controllo della congestione Ad ogni istante, il trasmittente può inviare un numero di byte pari al minimo tra la dimensione della finestra di trasmissione e della finestra di congestione La dimensione della finestra di congestione non supera mai la dimensione della finestra di trasmissione Nel protocollo TCP la dimensione della finestra di congestione è regolata dallalgoritmo slow start Malgrado il nome, lalgoritmo aumenta in modo esponenziale la dimensione della finestra di congestione fino a quando: si verifica congestione (scade il timer di trasmissione di un segmento) la finestra di congestione raggiunge una dimensione di soglia (threshold) la finestra di congestione raggiunge la dimensione della finestra di trasmissione

21 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 21 Algoritmo slow start Il valore di threshold iniziale è pari a 64 KB, e la dimensione iniziale della finestra di congestione è pari alla massima dimensione di un segmento (M) ad ogni ricezione di un acknowledgement (senza timeout) per W byte: se la finestra di congestione è al di sotto del threshold, aggiungi W alla sua dimensione (generalmente raddoppia la dimensione) se la finestra di congestione è al di sopra del threshold, aggiungi M alla dimensione della finestra ad ogni timeout di un segmento: poni threshold a metà della dimensione della finestra di congestione imposta la dimensione della finestra di congestione a M

22 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 22 TCP: segmento Dimensione della finestra (16 bit) flag (6 bit) 4 byte Numero di sequenza (32 bit) Indirizzo di porta del mittente 16 bit Indirizzo di porta del destinatario (16 bit) Numero di riscontro (32 bit) Checksum (16 bit) Opzioni (sino a 40 byte) Puntatore urgente (16 bit) HLEN (4 bit) (6bit) URGACKPSHRSTSYNFIN Richiesta di push Richiesta di azzeramento connessione Urgent Pointer Valido

23 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 23 FINE

24 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 24 Comunicazione processo - processo IP si occupa della comunicazione tra dispositivi Il messaggio deve giungere al processo UDP e TCP pp pp internet Dominio del protocollo IP Dominio dei protocolli UDP e TCP

25 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 25 Indirizzo di porta Day tim e mail client www internet Day tim e mail server www Gli host vengono individuati per mezzo del loro indirizzo IP I processi vengono individuati per mezzo del loro indirizzo di porta (Punti di destinazione astratti gestiti dal sistema operativo locale) I protocolli TCP/IP usano numeri di porta compresi tra 0 e 65535

26 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 26 Indirizzi effimeri e ben conosciuti 0 – 1023 Indirizzi NOTI – Indirizzi effimeri Day tim e mail client www internet Day tim e mail server www Indirizzi Ben conosciuti (noti) DATI?? TCP/UDP Indirizzi effimeri 52000

27 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 27 Indirizzi socket Se due client utilizzano allo stesso tempo lo stesso processo sul server ? mail client mail client mail Server Indirizzo Socket : : : : 25

28 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 28 Connessioni connessione TCP/UDP identificano un canale di comunicazione con il nome di connessione Sono identificate dalla quadrupla: | 32 bit | 32 bit | 16 bit | 16 bit | Questa soluzione permette 1. A molti client diversi di accedere allo stesso servizio sullo stesso server 2. Allo stesso client di attivare più sessioni dello stesso servizio Viola il modello a layer informazioni di livello 4 mischiate con informazioni di livello 3

29 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 29 Connessioni multiple

30 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 30 Server iterativi e concorrenti Modalità con le quali i server possono gestire le connessioni in ingresso Iterativi: esiste un solo thread server; gestisce la connessione seguente solo quando quella precedente è terminata Utilizzati spesso da servizi basati su UDP Concorrenti: esiste un main thread server, che si clona ogni volta che arriva una nuova connessione; possono essere servite più connessioni contemporaneamente Utilizzati spesso da servizi basati su TCP

31 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 31 Connessioni tra i processi: TCP 1. Il processo invia i dati allo strato di trasporto 2. TCP del mittente 1. Collega mittente a destinatario 2. Suddivide i dati in unità trasportabili (segmenti) 3. Numera i segmenti e li trasmette uno a uno 3. TCP del ricevente 1. Attende fino alla completa ricezione 2. Controlla e filtra i segmenti errati 3. Consegna i dati al processo destinatario 4. Chiude la connessione

32 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 32 Apertura della connessione (funzionamento del protocollo) Numero di sequenza Numero di riscontro ACK SYNFIN mittentedestinatario tempo Numero di sequenza iniziale randomico Triplice stretta di mani

33 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 33 TRIPLICE STRETTA DI MANI

34 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 34 Chiusura della connessione della connessione Numero di sequenza Numero di riscontro ACK SYNFIN mittentedestinatario tempo quadruplice stretta di mani

35 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 35 Quadruplice stretta di mani 3-way handshake modificato 3-way handshake modificato: lhost B può ancora voler trasmettere dei dati, anche se lhost A ha chiuso la connessione; quindi la chiusura della connessione (lato host B) può avvenire in un secondo tempo

36 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 36 Connessioni tra i processi: UDP 1. UDP non invia messaggi di riscontro per notificare lavvenuta ricezione 2. UDP fornisce un servizio di consegna non affidabile senza connessione usando IP per trasportare i messaggi tra le macchine 3. UDP introduce in aggiunta la capacità di distingure tra più destinazioni allinterno di un computer remoto 4. Esercita un controllo di errore limitandosi a distruggere i pacchetti in cui individua lerrore HEADER DATI CHECKSUM Pseudo - header Il segmento, pur non avendo subito danni, può finire nellhost sbagliato

37 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 37 Il CHECKSUM di UDP UDP fa checksum anche sui dati del datagramma Dal momento che IP non calcola la sua checksum sui dati del datagramma, il cheksum di UDP è lunico strumento di controllo che garantisce che i dati siano arrivati intatti La pseudo intestazione consente un controllo più accurato e viene realizzata con : Source ip address 4 ottetti Destination ip address 4 ottetti Codice di tipo protocollo 1 ottetto Lunghezza del datagramma ip 2 ottetti Zero 1 ottetto per rendere la pseudo intestazione multipla di 16 La pseudo intestazione non viene trasmessa A destinazione bisogna 1. Estrarre i campi dellintestazione da IP 2. Assemblarli nel formato della pseudo istruzione 3. Ricalcolare la somma di controllo

38 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 38 TCP: finistre scorrevoli Il mittente crea una finestra di invio impostata sulla sua massima dimensione (apertura della connessione) ACK ACK segmenti da trasmettere

39 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 39 Considerazioni sulla sliding window Un semplice protocollo con conferma di ricezione spreca un enorma quantità di larghezza di banda perché ritarda linvio di un nuovo pacchetto finchè non riceve una conferma di ricezione del pacchetto precedente Un protocollo a finestra di scorrimento mantiene la rete completamente satura di pacchetti ed ottiene una velocità di trasferimento maggiore rispetto ad un protocollo con conferma di ricezione Quando il mittente fa scorrere la finestra oltrepassa tutti i pacchetti confermati La finestra del ricevente divide la sequenza di pacchetti in tre insiemi 1. Quelli a sinistra sono stati trasmessi con successo, ricevuti e la ricezione confermata 2. Quelli a destra non sono stati ancora inviati 3. Quelli che sono nella finestra stanno per essere inoltrati

40 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 40 Come garantire laffidabilità ? Conferma di ricezione positiva con ritrasmissione Unica tecnica: Conferma di ricezione positiva con ritrasmissione : ACK ACKnowledgement Il ricevente comunica con la sorgente inviando un messaggio ACK (ACKnowledgement) Il mittente tiene una registrazione per ogni pacchetto che invia e prima di inoltrare il successivo attende una conferma mittente destinatario tempo Ricezione ACK 2 invio pacchetto 1 Ricezione pacchetto 1 Invio ACK 1 Ricezione ACK 1 Invio pacchetto 2 Ricezione pacchetto 2 Invio ACK 2

41 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 41 TCP: sequence number - acknowledgement Dati suddivisi in unità trasportabili segmenti Sequence number Sequence number esprime un offset in byte che indica la posizione del primo byte ricevuto o spedito ACK ACK atteso esprime un offset in byte che indica la posizione del primo byte atteso Nel protocollo per questi due numeri sono usati 32 bit (0 a quasi 4 Gbyte) Usare un offset offre il vantaggio di poter ricostruire nel buffer i segmenti arrivati anche in presenza di buchi Non tutti i segmenti sono della medesima lunghezza (in telnet ad esempio dipende dallutente) 1 Seg. 1Seg. 2Seg. 3Seg. 4

42 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 42 TCP:consegna garantita 1 Seg. 1Seg. 2Seg. 3Seg. 4 2 Seg. 1Seg. 3Seg. 4 3 Ack 2 4 Seg. 2Seg. 3Seg. 4 6 Ack 5 5 Seg. 2Seg. 3Seg. 4

43 Alberto Polzonetti Reti di calcolatori Protocolli di trasporto 43 Timeout e ritrasmissione mittente destinatario tempo Ritrasmissione pacchetto 1 Avvio del timer invio pacchetto 1 Avvio del timer Il pacchetto dovrebbe arrivare ACK 1 non ricevuto Timer scade Ricezione pacchetto 1 Invio ACK 1 Ricezione ACK 1 Annullamento del timer


Scaricare ppt "Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti"

Presentazioni simili


Annunci Google