corso di laurea in informatica reti di calcolatori a.a. 2003/2004 protocolli di trasporto alberto...

43
Corso di laurea Corso di laurea in in INFORMATICA INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti [email protected]

Upload: enrico-serafini

Post on 01-May-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Corso di laureaCorso di laureainin

INFORMATICAINFORMATICA

RETI di CALCOLATORI A.A. 2003/2004Protocolli di trasporto

Alberto [email protected]

Page 2: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 2Alberto Polzonetti

Reti di calcolatori

TCP & UDPTCP & UDP

Operano tra lo strato applicativo e quello IP Fungono da intermediari tra i programmi applicativi

e le operazioni di rete

APPLICATIVO SMTP FTP DNS ……….

TRASPORTO TCP UDP

RETEICMP

IP ARP RARPIGM

P

COMUNICAZIONE Tecnologia delle LAN e delle WAN sottostantiFISICO

Page 3: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 3Alberto Polzonetti

Reti di calcolatori

Compiti dello strato di trasportoCompiti dello strato di trasporto

Creazione di comunicazione processo – processo (udp – tcp)

Garantire l’affidabilità (TCP) Instaurare connessioni tra i

processi : UDP – TCP Meccanismi per il controllo

di errore tempo limite e ritrasmissione : TCP

Meccanismi per il controllo di flusso finestre scorrevoli (sliding window) : TCP

Perché un processo dovrebbe richiedere i servizi UDP ?

I. Il protocollo è sempliceII. Adatto per messaggi

piccoli e poco importantiIII. Non dovendo l’UDP

stabilire prioritariamente una connessione con il destinatario, viene usato quando la consegna tempestiva è importante (SNMP)

Page 4: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 4Alberto Polzonetti

Reti di calcolatori

UDP: datagramma utenteUDP: 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 16 bit

header

Page 5: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 5Alberto Polzonetti

Reti di calcolatori

Funzionamento del protocollo UDPFunzionamento del protocollo UDP

Servizi senza connessione1. Non esiste nessuna

relazione tra i datagrammi d’utente

2. I processi devono inviare all’UDP richieste di piccole dimensioni che possono essere inserite nel datagramma utente

Protocollo non affidabile1. 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 l’affidabilità non è importante

l’applicazione 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

Page 6: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 6Alberto Polzonetti

Reti di calcolatori

Dati UDPHeaderUDP

Dati IPHeader IP

Dati TRAMAHeader TRAMA

Dati dal processo

processo

Dati al processo

Dati UDPHeaderUDP

Dati IPHeader IP

Dati TRAMAHeader TRAMA

processo

UDP:incapsulamento ed estrazioneUDP:incapsulamento ed estrazione

Page 7: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 7Alberto Polzonetti

Reti di calcolatori

TCP: Transmission Control ProtocolTCP: 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 dall’applicazione un intero flusso di dati Crea i segmenti estraendo sequenze appropriate di dati Riceve i segmenti, estrae i dati li riordina Consegna i dati all’applicazione 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

Page 8: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 8Alberto Polzonetti

Reti di calcolatori

TCP: controllo di flussoTCP: 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 l’efficienza 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

Page 9: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 9Alberto Polzonetti

Reti di calcolatori

End to end flow controlEnd to end flow control

E’ composto da due algoritmi Sliding window mechanismSliding 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 EstimateRound Trip Estimate: è il meccanismo che controlla il round trip delay per sapere

quando procedere alla ritrasmissione

Page 10: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 10Alberto Polzonetti

Reti di calcolatori

Sliding Window Sliding Window

Meccanismo che permette la trasmissione di N dati (N-window) prima che giunga l’acknowledge del primo dato trasmesso

Page 11: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 11Alberto Polzonetti

Reti di calcolatori

Sliding window [dimensione variabile]Sliding window [dimensione variabile]

1. Deve essere stabilito un valore iniziale (che può essere diverso per Sender e Receiver); viene negoziato all’apertura della connessione

2. A connessione aperta il ricevitore comunica al trasmettitore, insieme all’acknowledge, 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

L’incremento della window porta ad un incremento di prestazioni, visibile soprattutto nel caso di lunghe distanze (nel quale il round trip time è notevole)

Page 12: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 12Alberto Polzonetti

Reti di calcolatori

Sliding window [dimensione e forme]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

L’acknowledge è dato in forma “cumulativa” L’arrivo 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)

Page 13: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 13Alberto Polzonetti

Reti di calcolatori

Sliding window [simulazione]Sliding window [simulazione]

mittente destinatario

tempotempo

Numero di sequenzaNumero di riscontro Dimensione finestraBuffer

4K

1001 4000

Buffer 4K

5001 0

Buffer 4K

5001 1000

5001 1000

Page 14: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 14Alberto Polzonetti

Reti di calcolatori

Retrasmission timerRetrasmission timer

1. Tempo limite (soglia massima di tempo che deve intercorrere da quando un pacchetto è inviato a quando si riceve l’ACK)

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. All’atto dell’invio di un segmento il mittente gli associa l’orologio2. L’orologio esegue un conto alla rovescia a partire dal tempo limite

fissato3. Quando l’orologio 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)

Page 15: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 15Alberto Polzonetti

Reti di calcolatori

TCP: orologiTCP: orologi

OROLOGI1. 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

Page 16: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 16Alberto Polzonetti

Reti di calcolatori

TCP: segmento rovinatoTCP: segmento rovinatomittente destinatario

tempotempo

1801

1201 200

1401 200

16011601 200

1601 200

OKOK

S

OK

rovinato

Page 17: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 17Alberto Polzonetti

Reti di calcolatori

TCP: segmento smarritoTCP: segmento smarritomittente destinatario

tempotempo

1801

1201 200

1401 200

16011601 200

1601 200

OKOK

S

OK

Page 18: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 18Alberto Polzonetti

Reti di calcolatori

TCP: riscontro smarritoTCP: riscontro smarritomittente destinatario

tempotempo

1801

1201 200

1401 200

16011601 200

OKOKOK

Page 19: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 19Alberto Polzonetti

Reti di calcolatori

Controllo di congestioneControllo 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)

Page 20: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 20Alberto Polzonetti

Reti di calcolatori

Finestra di congestioneFinestra 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 dall’algoritmo slow start

Malgrado il nome, l’algoritmo 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

Page 21: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 21Alberto Polzonetti

Reti di calcolatori

Algoritmo slow startAlgoritmo 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

Page 22: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 22Alberto Polzonetti

Reti di calcolatori

TCP: segmentoTCP: segmento

Dimensione della finestra (16 bit)

flag(6 bit)

4 byte

Numero di sequenza (32 bit)

Indirizzo di porta del mittente16 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)

URG ACK PSH RST SYN FIN

Richiesta di push

Richiesta di

azzeramento

connessione

Urgent Pointer Valido

Page 23: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 23Alberto Polzonetti

Reti di calcolatori

FINE

Page 24: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 24Alberto Polzonetti

Reti di calcolatori

Comunicazione processo - processoComunicazione processo - processo

IP si occupa della comunicazione tra dispositivi Il messaggio deve giungere al processo UDP e TCP

p pp p

internet

Dominio del protocollo IP

Dominio dei protocolli UDP e TCP

Page 25: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 25Alberto Polzonetti

Reti di calcolatori

Indirizzo di portaIndirizzo di porta

Day

time

mail

client

www

internet

Day

time

mail

server

www

Gli host vengono individuati per mezzo del loro indirizzo IPI processi vengono individuati per mezzo del loro indirizzo di porta(Punti di destinazione astratti gestiti dal sistema operativo locale)

193.14.6.23

193.12.8.21

13 25 80

I protocolli TCP/IP usano numeri di porta compresi tra 0 e 65535

Page 26: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 26Alberto Polzonetti

Reti di calcolatori

Indirizzi effimeri e ben conosciutiIndirizzi effimeri e ben conosciuti

0 – 1023 Indirizzi NOTI

49152 – 65535 Indirizzi effimeri

0 – 1023 Indirizzi NOTI

49152 – 65535 Indirizzi effimeri

Day

time

mail

client

www

internet

Day

time

mail

server

www

13 25 80

Indiriz

ziBen

co

nos

ciu

ti (not

i)

DATI ? ?

TCP/UDP

13 52000

Indiriz

zieffi

mer

i

52000

Page 27: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 27Alberto Polzonetti

Reti di calcolatori

Indirizzi socketIndirizzi socket

Se due client utilizzano allo stesso tempo lo stesso processo sul server ?

mail

client

192.168.5.2

50000

mail

client

10.235.14.76

50000

mail

Server

172.16.2.1

25

Indirizzo Socket192.168.5.2 50000

192.168.5.2:50000 172.16.2.1 : 25

10.235.14.76:50000

172.16.2.1 : 25

Page 28: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 28Alberto Polzonetti

Reti di calcolatori

ConnessioniConnessioni

TCP/UDP identificano un “canale” di comunicazione con il nome di connessioneconnessione

Sono identificate dalla quadrupla: <IP client><IP server><Port client><Port Server> | 32 bit | 32 bit | 16 bit | 16 bit |

Questa soluzione permette1. A molti client diversi di accedere allo stesso servizio sullo

stesso server2. 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

Page 29: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 29Alberto Polzonetti

Reti di calcolatori

Connessioni multipleConnessioni multiple

Page 30: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 30Alberto Polzonetti

Reti di calcolatori

Server iterativi e concorrentiServer 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

Page 31: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 31Alberto Polzonetti

Reti di calcolatori

Connessioni tra i processi: TCPConnessioni tra i processi: TCP

1. Il processo invia i dati allo strato di trasporto2. TCP del mittente

1. Collega mittente a destinatario2. Suddivide i dati in unità trasportabili (segmenti)3. Numera i segmenti e li trasmette uno a uno

3. TCP del ricevente1. Attende fino alla completa ricezione2. Controlla e filtra i segmenti errati3. Consegna i dati al processo destinatario4. Chiude la connessione

Page 32: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 32Alberto Polzonetti

Reti di calcolatori

Apertura della connessione (funzionamento Apertura della connessione (funzionamento del protocollo)del protocollo)

Numero di sequenza

Numero di riscontro

ACK SYN FINmittente destinatario

tempotempo

11200

0 1 0

Nu

mero

di se

qu

en

za

inizia

le ra

nd

om

ico

48001201

1 1 0

12014801

1 0 0

Triplice stretta di mani

Page 33: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 33Alberto Polzonetti

Reti di calcolatori

TRIPLICE STRETTA DI MANITRIPLICE STRETTA DI MANI

Page 34: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 34Alberto Polzonetti

Reti di calcolatori

Chiusura della connessione della Chiusura della connessione della connessioneconnessione

Numero di sequenza

Numero di riscontro

ACK SYN FINmittente destinatario

tempotempo

12500

0 0 1

70002501

1 0 0

25017002

1 0 0

quadruplice stretta di mani

70012501

0 0 1

Page 35: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 35Alberto Polzonetti

Reti di calcolatori

Quadruplice stretta di maniQuadruplice stretta di mani

3-way handshake modificato3-way handshake modificato:

l’host B può ancora voler trasmettere dei dati, anche se l’host A ha chiuso la connessione; quindi la chiusura della connessione (lato host B) può avvenire in un secondo tempo

Page 36: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 36Alberto Polzonetti

Reti di calcolatori

Connessioni tra i processi: UDPConnessioni tra i processi: UDP1. UDP non invia messaggi di riscontro per notificare l’avvenuta

ricezione2. UDP fornisce un servizio di consegna non affidabile senza

connessione usando IP per trasportare i messaggi tra le macchine3. UDP introduce in aggiunta la capacità di distingure tra più

destinazioni all’interno di un computer remoto4. Esercita un controllo di errore limitandosi a distruggere i pacchetti in

cui individua l’errore

HEADER

DATI

CHECKSUM

Pseudo - header

Il segmento, pur non avendo subito danni, può finire

nell’host sbagliato

Page 37: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 37Alberto Polzonetti

Reti di calcolatori

Il CHECKSUM di UDPIl 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 è l’unico 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 dell’intestazione da IP2. Assemblarli nel formato della pseudo istruzione3. Ricalcolare la somma di controllo

Page 38: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 38Alberto Polzonetti

Reti di calcolatori

TCP: finistre scorrevoliTCP: finistre scorrevoli

1 2 3 4 5 6 7 8 9 10 11 12

Il mittente crea una finestra di invio impostata sulla sua massima dimensione (apertura della connessione)

1 2 3 4 5 6

1 2 3 4 5 6ACK 3

1 2 3 4 5 6 7 8 9 10 11 12

3 4 5 6 7 8 1 2 3 4 5 61 2

3 4 5 6 7 8ACK 9 1 2

12 segmenti

da trasmetter

e

Page 39: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 39Alberto Polzonetti

Reti di calcolatori

Considerazioni sulla “sliding window”Considerazioni sulla “sliding window”

Un semplice protocollo con conferma di ricezione spreca un enorma quantità di larghezza di banda perché ritarda l’invio 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 insiemi1. Quelli a sinistra sono stati trasmessi con successo, ricevuti e la

ricezione confermata2. Quelli a destra non sono stati ancora inviati3. Quelli che sono nella finestra stanno per essere inoltrati

Page 40: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 40Alberto Polzonetti

Reti di calcolatori

Come garantire l’affidabilità ?Come garantire l’affidabilità ? Unica tecnica: Conferma di ricezione positiva con ritrasmissioneConferma di ricezione positiva con ritrasmissione :

Il ricevente comunica con la sorgente inviando un messaggio ACKACK (ACKnowledgementACKnowledgement)

Il mittente tiene una registrazione per ogni pacchetto che invia e prima di inoltrare il successivo attende una conferma

mittente destinatario

tempotempo

Ricezione ACK 2

invio pacchetto 1 Ricezione pacchetto

1

Invio ACK 1Ricezione ACK 1

Invio pacchetto 2

Ricezione pacchetto 2

Invio ACK 2

Page 41: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 41Alberto Polzonetti

Reti di calcolatori

TCP: sequence number - acknowledgementTCP: sequence number - acknowledgement

Dati suddivisi in unità trasportabili segmenti Sequence numberSequence number

esprime un offset in byte che indica la posizione del primo byte ricevuto o spedito

ACKACK esprime un offset in byte che indica la posizione del primo byte

attesoatteso Nel protocollo per questi due numeri sono usati 32 bit (0 a 232

- 1 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 dall’utente)

1 Seg. 1 Seg. 2 Seg. 3 Seg. 4

Page 42: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 42Alberto Polzonetti

Reti di calcolatori

TCP:consegna garantitaTCP:consegna garantita

1 Seg. 1 Seg. 2 Seg. 3 Seg. 4

2 Seg. 1 Seg. 3 Seg. 4

3Ack 2

4 Seg. 2 Seg. 3 Seg. 4

6Ack 5

5 Seg. 2 Seg. 3 Seg. 4

Page 43: Corso di laurea in INFORMATICA RETI di CALCOLATORI A.A. 2003/2004 Protocolli di trasporto Alberto Polzonetti alberto.polzonetti@unicam.it

Protocolli di trasporto 43Alberto Polzonetti

Reti di calcolatori

Timeout e ritrasmissioneTimeout e ritrasmissione

mittente destinatario

tempotempo

Ritrasmissione pacchetto 1

Avvio del timer

invio pacchetto 1

Avvio del timerIl pacchetto dovrebbe arrivare

ACK 1 non ricevuto

Timer scade

Ricezione pacchetto 1

Invio ACK 1

Ricezione ACK 1

Annullamento del timer