Livello di trasporto (Transport layer 4) Flashcards
Quali sono le funzioni del livello di trasporto?
Il livello di trasporto ha il compito di instaurare un collegamento logico tra le applicazioni residenti su host remoti, rende invisibile il trasporto fisico dei messaggi alle applicazioni
Il livello di trasporto è presente solo negli end systems (host)
Svolge funzioni di multiplexing/demultiplexing per applicazioni
Come avviene l’indirizzamento dei processi applicativi? (Gestione del multiplexing)
Le funzioni di multiplexing/demultiplexing vengono gestite mediante indirizzi contenuti nelle PDU di livello di trasporto, questi indirizzi sono lunghi 16 bit e prendono il nome di porte e possono assumere valori compresi tra 0 e 65535.
I numeri noti sono assegnati ad importanti applicativi dal lato server (HTTP, FTP, SMTP, DNS, ecc.) 1 - 1023
I numeri registrati sono assegnati a specifiche applicazioni da chi ne faccia richiesta (tipicamente protocolli proprietari) 1024 - 49151
I numeri dinamici sono assegnati dinamicamente ai processi applicativi lato client 41952 - 65535
Cos’è il servizio di buffering?
Quando un processo viene associato ad una porta (lato client o lato server) viene associato dal sistema operativo a due code, una d’ingresso e una d’uscita
Quali sono i principali protocolli per il servizio di trasporto?
TCP (Transmission Control Protocol), orientato alla connessione e affidabile
UDP (User Datagram Protocol), senza connessione e non affidabile
Quali sono le caratteristiche del protocollo UDP?
E’ il modo più semplice di usare le funzionalità di IP
Funzionalità aggiuntive:
– Indirizzamento delle applicazioni (mux/demux)
– Blando controllo d’errore sull’header (senza correzione)
Protocollo datagram
Non garantisce la consegna
Non esercita nessun controllo (né di flusso, né di errore)
Come sono formati i segmenti del protocollo UDP?
Gli header contengono 4 campi: source port, destination port, length, checksum
Infine vi è il campo dati a cui è destinato un numero arbitrario di spazio
Perchè usare UDP e non TCP?
Minore latenza poichè non occorre stabilire una connessione
Maggiore semplicità:
– Non occorre tenere traccia dello stato della connessione
– Poche regole da implementare
Minore overhead cioè l’header UDP è minore dell’header TCP
Come viene effettuato il controllo di integrità?
Il protocollo UDP per effettuare questo controllo utilizza il campo checksum
Il campo di checksum (16 bit) è calcolato dal trasmettitore ed inserito nell’header del datagram
Il ricevitore ripete lo stesso calcolo sul segmento ricevuto e se il risultato è corretto accetta il segmento, altrimenti lo scarta
Come viene calcolato il checksum lato client e lato server?
Viene calcolato considerando l’header UDP, uno pseudo-header IP ed i dati
Lato trasmettitore:
L’insieme dei campi è diviso in blocchi da 16 bit
Il campo Checksum è inizializzato a 0
Tutti i blocchi vengono sommati in aritmetica complemento a uno
Il risultato è complementato ed inserito nel campo di checksum del segmento inviato
Lato ricevitore:
L’insieme di bit è diviso ancora in blocchi da 16 bit
Tutti i blocchi vengono sommati in aritmetica complemento a uno
Il risultato è complementato
Se sono tutti 0 il pacchetto è accettato altrimenti è scartato
Cos’è un collegamento ideale?
Un collegamento su cui tutto ciò che viene trasmesso arriva nello stesso ordine e viene correttamente interpretato a destinazione
Come vengono effettuati i controlli d’errore?
Gli errori sono gestiti attraverso i protocolli d’errore
Ciascuna trama ricevuta correttamente viene riscontrata positivamente con un messaggio di (Acknowledgment o ACK)
A volte l’errore può essere segnalato da un messaggio detto di NACK
La mancanza di ACK o la presenza di NACK segnala la necessità di ritrasmettere
La procedura si ripete finché la trama viene ricevuta corretta
Sono usati meccanismi come: timeout, finestra di ritrasmissione
Queste procedure possono essere attivate a qualunque livello, sono state sempre presenti a livello di linea
sui collegamenti fisici a causa delle cattive linee fisiche del passato ma proteggere i collegamenti fisici non basta, i pacchetti
possono andare persi nei buffer dei router
Da quali componenti è composto il protocollo di ritrasmissione Stop and Wait? Cos’è e come si calcola la sua efficienza?
Come messaggio usa ACK
Meccanismo di timeout
Ogni messaggio ricevuto correttamente è riscontrato dal ricevitore
Numerazione dei pacchetti
L’efficienza di un protocollo è data dalla frazione di tempo in cui il canale è usato per trasmettere informazione utile in assenza di errori (Tempo utile/Tempo totale)
Efficienza bassa se T«_space;tau
Protocollo non adatto a situazioni con elevato ritardo di propagazione e/o elevato ritmo di trasmissione
Utilizzato spesso in modalità half-duplex
Com’è organizzata la numerazione dei pacchetti nel flusso?
Sono numerati i pacchetti (sn) e gli ack
Se viene inviato uno stesso pacchetto questo viene riconosciuto perchè avrà lo stesso sn di un precedente
Quando il trasmettitore riceve un ACK lo può assegnare al pacchetto corretto
Da quali componenti è composto il protocollo di ritrasmissione Go Back N? Cos’è e come si calcola la sua efficienza?
Come messaggio usa ACK Meccanismo di finestra scorrevole: se il riscontro del primo pacchetto arriva prima della fine della finestra, la finestra viene fatta scorrere di una posizione, sennò (quando si verifica un errore) si ricomincia a trasmettere la finestra dal primo pacchetto non riscontrato allo scadere di un timeout Il riscontro (ACK) può essere collettivo, dunque convalidare la ricezione di pacchetti precedenti
Se non ci sono errori la trasmissione non si ferma mai (efficienza 100%)
Cos’è il piggy banking?
Gli ACK possono anche essere inseriti negli header dei pacchetti che viaggiano in direzione opposta