Livello di Trasporto Flashcards

1
Q

Cos’è il livello di trasporto

A

I protocolli di Livello Trasporto sono presenti solo negli end-system. Offre un canale di comunicazione logica
tra applicazioni attive su differenti host

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Differenze tra livello di rete e livello di trasporto

A

Network-layer: trasferimento dati tra end-system
Transport layer: trasferimento dati tra processi. Naturalmente necessita dei servizi offerti dal livello rete.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Cosa si intende per Multiplexing e Demultiplexing

A

Segment: dati che sono scambiati tra processi a livello trasporto
Demultiplexing: inoltrare i segment ricevuti al corretto processo cui i dati sono destinati
Multiplexing: Raccogliere i dati provenienti dalle applicazioni, imbustare i dati con un header approriato

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cos’è UDP

A

User Datagram Protocol è un protocollo per il livello di trasporto. Ha un servizio best effort come IP ed è connectionless ovvero non è prevista una fase di inizializzazione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

E’ possibile rendere UDP affidabile?

A

Si tramite una conferma di avvenuta ricezione e gestione degli errori che può essere effettuati anche tramite checksum

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Come si può realizzare una trasmissione affidabile

A

Se la rete presenta errori di trasmissione bisogna effettuare il rilevamento degli errori e eventualmente la correzione o notifica di ritrasmissione al mittente. Per risolvere il problema dei duplicati in caso di ritrasmissione occorre inserire nell’header del segmento un numero di sequenza
Nel caso di canale che introduce perdita di pacchetti, è necessario introdurre un altro parametro: il tempo
In particolare un conto alla rovescia chiamato timeout dopo il quale scatterà la ritrasmissione

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Come funziona lo Stop & Wait

A

Viene inviato un messaggio e si aspetta un riscontro prima di ritrasmettere un nuovo messaggio quindi come numero di sequenza è sufficiente utilizzare un bit.
Ad ogni ricezione di pacchetto il ricevente risponde con un ACK per segnalare che il pacchetto è arrivato a destinazione.
In caso di perdita di pacchetto o di ACK avviene una ritrasmissione del pacchetto
Ha delle performance molto basse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Come funziona il Go Back-N

A

Viene utilizzato il pipelining, ovvero più pacchetti inviati successivamente, senza aspettare il riscontro prima di inviarne un altro.
Nell’header del segmento vengono utilizzati k-bit per il numero di sequenza
Si utilizza una finestra di max N pacchetti dove una porzione della finestra saranno i pacchetti mandati ma che ancora non hanno ricevuto un riscontro e il resto sono ancora da mandare. Prima di questa finestra si trovano i pacchetti già ricevuti e dopo si trova uno spazio al momento non utilizzabile se non con lo scorrimento della finestra.
Viene introdotto l’ACK cumulativo, ovvero ricevere l’ACK di n significa che tutti i pacchetti precedenti all’n-esimo sono stati ricevuti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Come funziona il metodo Selective Repeat

A

In Go Back-N un errore su un solo pacchetto può
provocare la ritrasmissione di un elevato numero di
pacchetti, quindi va implementato un nuovo metodo. Nel Selective repeat il ricevente invia riscontri specifici per tutti i pacchetti ricevuti correttamente e il mittente ritrasmette soltanto i pacchetti per i quali non ha
ricevuto un ACK.
C’è ancora l’utilizzo della finestra che si sposta solo dopo che avrà ricevuto l’ACK per tutti i pacchetti all’interno di essa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cos’è TCP

A

TCP (Transmission Control Protocol) è un protocollo per il livello di trasporto. Le sue caratteristiche sono:
-una connessione unica tra host
-senza errori e con una sequenza ordinata
-pipelined
-connection oriented (handshaking)
-full duplex data (flusso bidirezionale in una connessione)
-controllo di flusso

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Com’è strutturato un segmento TCP

A

-HLEN: 4 bit che indicano la grandezza dell’intestazione
-Porta: numero di porta di TCP
-Numero di Sequenza: identifica la posizione dei dati nel segmento
-Numero di riscontro: si riferisce allo stream che viene nella direzione opposta del num di sequenza
-Bit di Codice: ACK, RST, SYN, FIN, PSH, URG
-Finestra: numero che specifica la dimensione del buffer che TCP ha a disposizione per i dati in arrivo
-Puntatore urgente: punta i dati non urgenti per garantire che i più urgenti siano inviati per primi
-Checksum: verifica l’integrità dei dati che avviene tramite l’aggiunta di una pseudointestazione
-Opzioni: maximum TCP payload, window scale e selective repeat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quali sono le caratteristiche principali di TCP

A

Riscontro e ritrasmissione: consiste nella ritrasmissione di un segmento se non è giunta conferma entro un tempo massimo (time-out)
Il numero di sequenza per un segmento è il numero nel flusso di byte del primo byte nel segmento.
Il numero di riscontro che un host scrive nei propri segmenti è il numero di sequenza del byte successivo che l’host attende da un altro. (ACK)
Invia riscontri cumulativi
Con questo metodo di riscontro cumulativo si ha il vantaggio che la perdita di un riscontro non blocca la trasmissione se confermato dal riscontro successivo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Che valore deve assumere il timeout?

A

Di sicuro sarà maggiore del RTT ma:
-Se timeout è scelto troppo breve: timeout prematuro, ritrasmissioni ridondanti, scarsa efficienza
-Se timeout è scelto troppo lungo: scarsa efficienza nella gestione delle ritrasmissioni
Quindi viene fatta una stima del RTT:
EstimatedRTT = (1-a)EstimatedRTT + aSampleRTT
(media esponenziale pesata)
e il valore del timeout sarà uguale a:
Timeout = EstimatedRTT + 4DevRTT,
dove:
DevRTT = (1-b)
DevRTT + b*|SampleRTT-EstimatedRTT|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cosa succede se scade il timeout?

A

Allo scadere di un timeout si imposta il prossimo intervallo al doppio del valore precedente
Quando il timer viene riavviato (ricezione di un ACK o di nuovi dati dall’applicazione), l’intervallo di timeout viene nuovamente configurato in funzione dei valori più recenti (forma limitata di controllo della congestione).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Quando avviene una ritrasmissione veloce?

A

Gli ACK duplicati ci consentono di rilevare la perdita di un pacchetto prima del timeout poiché se un segmento viene perso ci saranno molti ACK duplicati continui ed è qui che avverrà la ritrasmissione del pacchetto mancante

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Come viene aperta una connessione prima dell’invio dei dati

A

Tramite il Three way handshake:
Passo 1: il client invia segmento di controllo TCP SYN al sever
Passo 2: server riceve SYN e risponde con un SYN/ACK
Passo 3: client riceve SYN/ACK e invia ACK al server
Connessione Instaurata

17
Q

Come viene chiusa la connessione con TCP?

A

Ci si presenta il problema dei due eserciti.
Passo 1: client invia un segmento TCP con FIN alto al server
Passo 2: server riceve FIN risponde con ACK e inizia la chiusura della connessione inviano FIN al client
Passo 3: client riceve FIN e risponde con un ACK (rimane in attesa nel caso riceva un FIN duplicato)
Passo 4: server riceve ACK e chiude la connessione

18
Q

Come vengono gestiti il controllo di flusso e il controllo di congestione in TCP

A

Receiver window: dipende dalla dimensione del buffer di ricezione
Congestion window: basata su una stima della capacità della rete

19
Q

Come funziona il controllo di flusso

A

Il mittente non dovrà sovraccaricare il ricevente inviando dati ad una velocità troppo elevata
Il ricevente comunica dinamicamente al mittente la dimensione corrente del buffer (campo RcvWindow nel segmento TCP) e il mittente conserva i dati già trasmessi ma non riscontrati e limita tale quantità all’ultima RcvWindow ricevuta

20
Q

Cos’è l’algoritmo di Nagle

A

Per applicazioni che inviano dati un byte alla volta:
invia il primo byte e bufferizza il resto finché non giunge l’ACK, in seguito:
-invia, in un unico segmento, tutti i caratteri bufferizzati
-ricomincia a bufferizzare finché non giunge l’ACK per ognuno di essi
Elimina cosi la sindrome della Silly Window al trasmettitore

21
Q

Cos’è la sindrome della silly window

A

Si verifica quando il sender invia blocchi grandi ma il receiver legge un byte alla volta
Soluzione di Clark: Impedisce al receiver di aggiornare la finestra un byte alla volta
Il ricevitore indica una finestra nulla finchè il buffer di ricezione non si è svuotato per metà o per una porzione uguale a MSS.

22
Q

Come funziona il controllo della congestione

A

La congestione nella rete è dovuta a:
* un numero elevato di sorgenti di traffico
* sorgenti di traffico che inviano troppi dati
* traffico inviato ad una frequenza troppo elevata
In presenza di questi fenomeni, singoli o concomitanti, la rete è sovraccarica e si possono verificare ritardi e perdita dei pacchetti

23
Q

Quali sono le tecniche di controllo della congestione

A

Approccio end-to-end: Nessuna segnalazione esplicita dalla rete ma a partire dall’osservazione di ritardi e perdite di pacchetti gli end-system deducono uno stato di congestione nella rete
Approccio utilizzato da TCP
Approccio in base a segnalazioni della rete: I router forniscono informazioni circa lo stato della rete agli end-system

24
Q

Come viene controllata la congestione in TCP

A

Controllo end-to-end: nessun feedback dalla rete
Frequenza di trasmissione variabile, ovvero dipendente dalla cosiddetta finestra di congestione (CongWin)
Considerando controllo di flusso e controllo di congestione insieme, si ha, dunque:
LastByteSent – LastByteAcked ≤ min{RcvWindow, CongWin}

Si procede per tentativi, per stabilire quanto si può trasmettere:
Incrementare Congwin finché non si verifica la perdita di un segmento (interpretata come il sopraggiungere dello stato di congestione)
In seguito alla perdita di un segmento:
– decrementare Congwin
– ricominciare daccapo

25
Q

Cos’è lo Slow start e l’AIMD in TCP

A

“Partenza lenta”
Si ha una crescita esponenziale della dimensione della finestra (ogni RTT) fino a quando non si ha un evento di perdita. Dopo di esso abbiamo due possibilità:
-Additive Increase: Una volta raggiunta la soglia ci si avvicina con cautela al valore della banda disponibile tra le due estremità della connessione. Questa fase è nota come fase di congestion avoidance
-Multiplicative Decrease: Al sopraggiungere della congestione (scadenza di un timeout o ricezione di tre ACK duplicati consecutivi), la finestra di congestione viene dimezzata

26
Q

Cos’è la soglia o threshold

A

Parametro stimato che ci permette di controllare la congestione

27
Q

Cos’è il TCP Reno

A

TCP Reno “fast recovery” elimina la fase di partenza lenta dopo un evento di perdita dedotto dalla ricezione di tre ACK duplicati: tale evento indica che, nonostante si sia perso un pacchetto, almeno 3 segmenti successivi sono stati ricevuti dal destinatario