Corso di Reti di Calcolatori
A.A. 2005-2006
Prof. D. Rosaci
Capitolo Cinque:
Il livello di Trasporto
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il livello di Trasporto




E’ il cuore dell’intera gerarchia di protocolli
Compito: fornire comunicazioni affidabili e convenienti
dal computer sorgente al computer destinatario,
indipendentemente dalla rete fisica utilizzata
Per assolvere questo compito, il livello di trasporto
utilizza i servizi forniti dal livello di rete
Gli utenti del livello di trasporto sono i processi del
livello delle applicazioni
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Entità di trasporto


L’hardware e\o il software che esegue il
lavoro è chiamato entità di trasporto
Può essere situata nel nucleo del sistema
operativo, in un processo utente separato, in
un pacchetto di libreria collegato alle
applicazioni di rete oppure nella scheda di
rete
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Tipologie del livello di trasporto



Come nel livello di rete, abbiamo servizi
connection-oriented e servizi connectionless.
Anche l’indirizzamento e il controllo di flusso
sono simili in entrambi gli strati
Allora, perché abbiamo due strati diversi e
non uno solo?
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Giustificazione dell’esistenza del livello
di rete





Il livello di rete fa parte della sottorete di comunicazione ed è
eseguito dal fornitore (almeno nelle WAN)
Il livello di rete può essere soggetto a perdite di pacchetti, o
guasti.
L’utente non può fare nulla per intervenire: il livello di trasporto
può cercare di ovviare ai problemi che sorgono nel livello di
rete
Ad esempio, se una connessione di rete si chiude prima che un
trasferimento dati sia stato completato, il livello trasporto può
aprire una nuova connessione di rete con l’host remoto e
informarsi su quali dati siano arrivati e quali no, e riprendere dal
punto di interruzione
Il livello di trasporto ha l’obiettivo di migliorare la Quality of
Service (QoS) del livello di rete
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Altra giustificazione dell’esistenza del
livello di trasporto



Le primitive di questo livello possono essere
progettate in modo da essere indipendenti da
quelle del livello di rete, le quali possono
variare considerevolmente da rete a rete
Così diventa possibile scrivere applicazioni
basate su un insieme standard di primitive
Solo se le reti reali fossero senza difetti e
condividessero le stesse primitive, il livello di
trasporto sarebbe inutile
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Differenze tra servizi di trasporto e
servizi di rete



Un servizio di rete intende modellare un servizio
della rete reale, con le sue imperfezioni (es., perdita
di pacchetti) e quindi è generalmente inaffidabile
Un servizio di trasporto è in genere affidabile, pur
essendo inaffidabile la rete sulla quale opera
Inoltre un servizio di trasporto deve essere
conveniente e facile da usare, perché utilizzato da
molti programmatori, a differenza di un sistema di
rete che è usato solo dai programmatori dell’entità di
trasporto
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Esempio (essenziale) di interfaccia di
trasporto
Primitiva
TPDU spedito
Significato
LISTEN
(nessuna)
Si blocca fino a quando un
processo cerca di connettersi
CONNECT
CONNECTION REQ.
Cerca di creare una connessione
SEND
DATA
Spedizione di informazioni
RECEIVE
(nessuna)
Si blocca fino all’arrivo di un
TPDU DATA
DISCONNECT
DISCONNECT
REQU.
Questo lato vuole chiudere la
connessione
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Applicazione client-server



Il server esegue la primitiva LISTEN e si
blocca in attesa di una chiamata da un client
Un client vuole parlare col server ed esegue
la primitiva CONNECT
L’entità di trasporto del client esegue
CONNECT bloccando il chiamante ed
inviando al server un pacchetto che contiene
un messaggio del livello trasporto destinato
all’entità di trasporto del server.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
TPDU



Transport Protocol Data Unit: Unità di dati del
protocollo di trasporto
I TPDU sono scambiati dalle entità di
trasporto al livello di trasporto, e sono
contenuti in pacchetti scambiati dal livello
rete
A loro volta i pacchetti sono contenuti in
frame scambiati dal livello data link
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Ancora sull’esempio client-server



CONNECT fa in modo che venga spedito un TPDU
CONNECTION REQUEST al server
Quando questo arriva, l’entità di trasporto del server
verifica che il server sia bloccato su LISTEN (cioè
sia interessato a gestire richieste) e, in caso
affermativo, sblocca il server e invia al client un
TPDU CONNECTION ACCEPTED
Quando questo arriva il client viene sbloccato e la
connessione viene stabilita
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
SEND e RECEIVE




Servono per scambiare i dati
RECEIVE blocca l’attore che l’ha invocata
per aspettare che qualche altro attore
esegua una SEND
Quando il TPDU arriva, il ricevitore viene
sbloccato
Modello molto semplificato
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Modello basato su SOCKET
primitiva
Significato
SOCKET
Crea un nuovo punto finale di comunicazione
BIND
Associa un indirizzo locale ad un socket
LISTEN
Annuncia la volontà di accettare connessioni
ACCEPT
Arresta il visitatore finchè non arriva la connessione
CONNECT
Tenta attivamente di stabilire una connessione
SEND
Spedisce dati sulla connessione
RECEIVE
Riceve dati dalla connessione
CLOSE
Chiude la connessione
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Lato Server: SOCKET



La primitiva SOCKET crea un nuovo punto di
accesso e alloca spazio per esso nelle tabelle
dell’entità di trasporto
I parametri della chiamata specificano il formato di
indirizzamento che dovrà essere usato, il tipo di
servizio desiderato (es. flusso di byte affidabile) e il
protocollo
Se ha successo, SOCKET restituisce un descrittore
di file ordinario da utilizzare nelle chiamate
successive
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Lato Server: BIND



I socket appena creati non hanno indirizzi
Questi sono assegnati usando la primitiva
BIND
Una volta che il server ha collegato un
indirizzo a un socket, i client possono
connettersi a esso
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Lato Server: LISTEN e ACCEPT


LISTEN alloca spazio per la coda delle
chiamate in arrivo, nel caso più client
cerchino di connettersi contemporaneamente
LISTEN non è bloccante: per bloccarsi in
attesa di una connessione in arrivo il server
esegue una primitiva ACCEPT
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Lato Server: arrivo di richieste


Quando arriva una TPDU di richiesta
connessione, l’entità di trasporto crea un
nuovo socket con le stesse proprietà
dell’originale e restituisce per esso un
descrittore di file
Il server crea un processo o un thread per
gestire la connessione di un nuovo socket, e
torna ad aspettare nuove connessioni sul
socket
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Lato Client





Anche il client invoca SOCKET. In questo caso, non ha bisogno
di assegnare un indirizzo al socket con BIND, perché l’indirizzo
utilizzato non ha importanza per il client
La primitiva CONNECT blocca il chiamante e attiva la
procedura di connessione
Quando il TPDU viene ricevuto dal server, il client viene
sbloccato e la connessione è stabilita
Entrambi i lati possono usare SEND e RECEIVE per
trasmettere e ricevere dati sulla connessione full dupex
In questo modello, la chiusura delle connessioni è simmetrica e
si realizza con CLOSE
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Protocolli di livello Transport











I protocolli di livello transport (sulla base dei quali si implementano i servizi)
assomigliano per certi aspetti a quelli di livello data link. Infatti si occupano, fra
le altre cose, anche di:
controllo degli errori;
controllo di flusso;
riordino dei TPDU.
Ci sono però anche delle importanti differenze. Quella principale è che:
nel livello data link fra le peer entity c'è un singolo canale di comunicazione;
nel livello transport c'è di mezzo l'intera subnet di comunicazione.
Questo implica che, a livello transport:
è necessario indirizzare esplicitamente il destinatario;
è più complicato stabilire la connessione;
la rete ha una capacità di memorizzazione, per cui dei TPDU possono saltare
fuori quando la destinazione meno se li aspetta;
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Indirizzamento








Quando si vuole attivare una connessione, si deve ovviamente specificare con
chi la si desidera. Dunque, si deve decidere come è fatto l'indirizzo di livello
transport, detto TSAP address (Transport Service Access Point address).
Tipicamente un TSAP address ha la forma
(NSAP address, informazione supplementare)
Ad esempio, in Internet un TSAP address (ossia un indirizzo TCP o UDP) ha la
forma:
(IP address:port number)
dove IP address è il NSAP address, e port number è l'informazione
supplementare.
Questo meccanismo di formazione degli indirizzi dei TSAP ha il vantaggio di
determinare implicitamente l'indirizzo di livello network da usare per stabilire la
connessione.
In assenza di tale meccanismo, diviene necessario che l'architettura preveda
un servizio per effettuare il mapping fra gli indirizzi di livello transport e i
corrispondenti indirizzi di livello network.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Attivazione della connessione



Questa operazione sembra facile ma non lo è, perché la subnet
può perdere o duplicare (a causa di ritardi interni) dei pacchetti.
Ad esempio, a causa di ripetuti ritardi nell'invio degli ack può
succedere che vengano duplicati e successivamente arrivino in
perfetto ordine a destinazione tutti i pacchetti precedentemente
generati nel corso di una connessione. Ciò in linea di principio
può significare che l'attivazione della connessione e tutto il suo
svolgimento abbiano luogo due volte.
Si immaginino le conseguenze di tale inconveniente se lo
scopo di tale connessione fosse stato la richiesta (a una banca)
di versare un miliardo sul conto di un personaggio dalla dubbia
onestà.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Duplicati ritardatari



Il problema di fondo risiede nella possibile esistenza di
duplicati ritardatari che arrivano a destinazione molto dopo
essere partiti.
Una volta che la connessione è stabilita, il problema non si
pone. Infatti durante il setup della connessione le peer entity si
accordano sul numero iniziale di sequenza, e quindi i doppioni
ritardatari non vengono accettati.
Viceversa, per risolvere il problema dei duplicati relativi alla
fase di attivazione della connessione esiste una soluzione detta
three-way handshaking (Tomlinson, 1975).
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Three-way handshaking









Il protocollo funziona così:
il richiedente invia un TPDU di tipo conn.request con un
numero x proposto come inizio della sequenza;
il destinatario invia un TPDU di tipo ack contenente:
la conferma di x;
la proposte di un proprio numero y di inizio sequenza;
il richiedente invia un TPDU di tipo dati contenente:
i primi dati del dialogo;
la conferma di y.
I valori x e y possono essere generati, ad esempio, sfruttando
l'orologio di sistema, in modo da avere valori ogni volta diversi.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
In assenza di errori:
Mittente
Destinatario
conn.request(seq= x)
ack(seq= y, ack=x)
data(seq=x,ack=y)
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
In presenza di duplicati
Se arriva a destinazione un duplicato della richiesta di attivazione, il
destinatario risponde come prima ma il mittente, che sa di non aver
richiesto una seconda connessione, lo informa dell'errore
Mittente
Destinatario
conn.request(seq= x)
ack(seq= y, ack=x)
reject(ack= y)
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Altra situazione - 1

Se infine arrivano al
destinatario sia un
duplicato della richiesta
di attivazione che un
duplicato del primo
TPDU dati, la
situazione è la
seguente:
Mittente
Destinatario
conn.request(seq=x)
ack(seq= y, ack=x)
data(seq= x, ack=z)
reject(ack= y)
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Altra situazione - 2



Infatti, in questo caso:
il mittente invia un reject alla risposta del
destinatario, perché sa di non aver richiesto
una seconda connessione (come nel caso
precedente);
il destinatario scarta il TPDU dati, perché
questo reca un ack relativo ad un numero di
sequenza (z) precedente e non a quello (y)
da lui testé inviato.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Rilascio di una connessione -1





Rilasciare una connessione è più semplice che
stabilirla, ma comunque qualche piccolo problema
c'è anche in questa fase.
In questo contesto, rilasciare la connessione
significa che l'entità di trasporto rimuove le
informazioni sulla connessione dalle proprie tabelle e
informa l'utente di livello superiore che la
connessione è chiusa.
Ci sono due tipi di rilasci:
asimmetrico;
simmetrico.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Rilascio di una connessione -2


Nel primo caso (esemplificato dal sistema telefonico) quando
una delle due parti "mette giù" si chiude immediatamente la
connessione. Ciò però può portare alla perdita di dati, in
particolare di tutti quelli che l'altra parte ha inviato e non sono
ancora arrivati.
Nel secondo caso si considera la connessione come una
coppia di connessioni unidirezionali, che devono essere
rilasciate indipendentemente. Quindi, lungo una direzione
possono ancora scorrere dei dati anche se la connessione
lungo l'altra direzione è stata chiusa. Il rilascio simmetrico è
utile quando un processo sa esattamente quanti dati deve
spedire, e quindi può autonomamente decidere quando
rilasciare la sua connessione in uscita.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Rilascio di una connessione -3

Se invece le due entità
vogliono essere
d'accordo prima di
rilasciare la
connessione, un modo
di raggiungere lo scopo
potrebbe essere
questo:
Mittente
Destinatario
Ho finito. Anche tu?
Si, anch'io.
OK, bye bye.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Rilascio di una connessione - 4

Purtroppo, le cose non sono così semplici: c'è un
problema famoso in proposito, il problema delle due
Armata A
armate:
A
A
Esercito 1
Esercito 2
B
Armata B
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il problema delle due armate - 1








La definizione del problema è la seguente:
i due eserciti che compongono l'armata A sono ciascuno più debole dell'esercito
che costituisce l'armata B;
l'armata A però nel suo complesso è più forte dell'armata B;
i due eserciti dell'armata A possono vincere solo se attaccano
contemporaneamente;
i messaggi fra gli eserciti dell'armata A sono portati da messaggeri che devono
attraversare il territorio dell'armata B, dove possono essere catturati.
Come fanno ad accordarsi gli eserciti dell'armata A sull'ora dell'attacco? Una
possibilità è la seguente:
il comandante dell'esercito 1 manda il messaggio "attacchiamo a mezzanotte.
Siete d'accordo?";
il messaggio arriva, un ok di risposta parte e arriva a destinazione, ma il
comandante dell'esercito 2 esita perché non può essere sicuro che la sua
risposta sia arrivata.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il problema delle due armate - 2


Si potrebbe pensare di risolvere il problema con un
passaggio in più (ossia con un three-way
handshake): l'arrivo della risposta dell'esercito 2
deve essere a sua volta confermato. Ora però chi
esita è il comandante dell'esercito 1, perché se tale
conferma si perde, l'armata 2 non saprà che la sua
conferma alla proposta di attaccare è arrivata e
quindi non attaccherà.
Aggiungere ulteriori passaggi non aiuta, perché c'è
sempre un messaggio di conferma che è l'ultimo, e
chi lo spedisce non può essere sicuro che sia
arrivato. Dunque, non esiste soluzione.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il problema delle due armate - 4






Per fortuna, rilasciare una connessione è meno critico che attaccare
un'armata nemica. Quindi, qualche rischio si può anche prendere.
Un protocollo di tipo three-way handshaking arricchito con la gestione
di timeout è considerato adeguato, anche se non infallibile:
il mittente invia un disconn.request e, se non arriva risposta entro un
tempo prefissato (timeout), lo invia nuovamente per un massimo di n
volte:
appena arriva una risposta (disconn.request) rilascia la connessione in
ingresso e invia un ack di conferma;
se non arriva nessuna risposta, dopo l'ultimo timeout rilascia
comunque la connessione in ingresso;
il destinatario, quando riceve disconn.request, fa partire un timer, invia
a sua volta un disconn.request e attende l'ack di conferma. Quando
arriva l'ack o scade il timer, rilascia la connessione in ingresso.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
I protocolli di trasporto di Internet: TCP
e UDP


TCP (Transmission Control Protocol):
protocollo orientato alla connessione
UDP (User Data Protocol): protocollo senza
connessione
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
TCP





Fu progettato esplicitamente per fornire un flusso affidabile
end-to-end a partire da un internet inaffidabile
Ogni macchina che supporta TCP possiede un’entità di
trasporto TCP che gestisce i flussi di dati TCP e si interfaccia
col livello IP
Un’entità TCP riceve flussi di dati dai processi locali, li spezza
in unità larghe al più 64 KB (ma generalmente di circa 1500
byte) e spedisce queste unità come datagram IP separate
Ogni datagram che arriva al destinatario viene passato all’entità
TCP che ricostruisce il flusso originario dei dati
Il livello IP non fornisce alcuna garanzia sulla consegna corretta
dei datagram: quindi è compito di TCP ritrasmetterli quando
necessario
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il modello di servizio TCP - 1



Il servizio di TCP si ottiene mediante la
creazione, da parte dell’utente e del
ricevente, di punti di accesso (socket)
Ogni socket è caratterizzato da un
identificatore (indirizzo), consistente
nell’indirizzo IP dell’host, e di un numero di
16 bit locale all’host, detto porta
Una porta è una Transport Service Access
Point (TSAP)
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il modello di servizio TCP - 2






Un socket può essere utilizzato
contemporaneamente da più connessioni
Una connessione è caratterizzata dai socket degli
interlocutori, cioè dalla coppia (s1, s2)
Le porte inferiori alla 256 sono chiamate porte ben
note, e vengono usate per servizi standard
Ad es., nell’ambito di un processo di scambio file
(FTP) TCP usa la porta 21, per il login remoto
(TELNET) usa la porta 23
Le connessioni TCP sono full duplex, punto-a-punto
Non sono supportati multicasting e broadcasting
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il modello di servizio TCP: modi di
operare




TCP trasferisce flussi di dati e non di messaggi.
Ovvero TCP non ha idea del significato dei byte
trasmessi, e di come vanno letti
Quando un processo passa dati a TCP, questi
potrebbe spedirli immediatamente oppure salvarli in
un buffer per un invio successivo (magari insieme ad
altri dati)
E’ possibile forzare l’invio immediato dei dati usando
il flag PUSH
Dati urgenti: vengono inviati in seguito all’utilizzo del
flag URGENT
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il protocollo TCP - 1






Le entità TCP mittente e ricevente si scambiano dati sotto
forma di segmenti
Un segmento consiste in un preambolo fisso di 20 byte (più
alcune parti opzionali) seguito da 0 o più byte di dati
Il software TCP decide la dimensione dei segmenti
Limite 1: ogni segmento, preambolo incluso, deve entrare in un
pacchetto IP di 65536 byte
Limite 2: ogni rete possiede un Maximum Transfer Unit (MTU,
lungo generalmente poche migliaia di byte) e ogni segmento
deve entrare in un MTU
Un segmento può arrivare ad una rete con un MTU più piccolo
della dimensione del segmento: in questo caso il segmento
viene frammentato dal router di confine della rete
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il protocollo TCP - 2




Ogni byte di una connessione TCP possiede un
proprio numero di sequenza
Al momento di trasmettere un segmento, il mittente
inizializza un timer
Quando il segmento arriva a destinazione, il
ricevente spedisce indietro un segmento che
contiene un numero di ack (conferma di ricezione)
uguale al successivo numero di sequenza che
attende di ricevere
Se il timer del mittente scade prima che il messaggio
sia ricevuto, il segmento viene ritrasmesso
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il preambolo del segmento TCP
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il significato dei campi














Source port,destination porti dentificano gli end point (locali ai due host) della connessione. Essi,
assieme ai corrispondenti numeri IP, formano i due TSAP.
Sequence number il numero d'ordine del primo byte contenuto nel campo dati.
Ack. Number il numero d'ordine del prossimo byte aspettato.
TCP header length quante parole di 32 bit ci sono nell'header (necessario perché il campo options è di
dimensione variabile).
URG 1 se urgent pointer è usato, 0 altrimenti.
ACK 1 se l'ack number è valido (cioè se si convoglia un ack), 0 altrimenti.
PSH dati urgenti (pushed data), da consegnare senza aspettare che il buffer si riempia.
RST richiesta di reset della connessione (ci sono problemi!).
SYN usato nella fase di setup della connessione:SYN=1 ACK=0 richiesta connessione;SYN=1 ACK=1
accettata connessione.
FIN usato per rilasciare una connessione.
Window size il controllo di flusso è di tipo sliding window di dimensione variabile. Window size dice
quanti byte possono essere spediti a partire da quello (compreso) che viene confermato con l'ack
number. Un valore zero significa: fermati per un pò, riprenderai quando ti arriverà un uguale ack
number con un valore di window size diverso da zero.
Checksum simile a quello di IP; il calcolo include uno pseudoheader.
Urgent pointer puntatore ai dati urgenti.
Options fra le più importanti, negoziabili al setup:dimensione massima dei segmenti da spedire;uso di
selective repeat invece che go-back-n;uso di NAK.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Attivazione della connessione - 1






Si usa la tecnica three-way handshake
una delle due parti (diciamo il server) esegue due primitive, listen() e
poi accept() rimanendo così in attesa di una richiesta di connessione
su un determinato port number e, quando essa arriva, accettandola;
l'altra parte (diciamo un client) esegue la primitiva connect(),
specificando host, port number e altri parametri quali la dimensione
massima dei segmenti, per stabilire la connessione; tale primitiva
causa l'invio di un segmento TCP col bit syn a uno e il bit ack a zero;
quando tale segmento arriva a destinazione, l'entity di livello transport
controlla se c'è un processo in ascolto sul port number in questione:
se non c'è nessuno in ascolto, invia un segmento di risposta col bit rst
a uno, per rifiutare la connessione;
altrimenti, consegna il segmento arrivato al processo in ascolto; se
esso accetta la connessione, l'entity invia un segmento di conferma,
con entrambi i bit syn ed ack ad uno
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Attivazione della connessione - 2
Client
Server
syn(seq= x)
syn(seq= y, ack=x+1)
syn(seq= x+ 1, ack=y+ 1)
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Rilascio della connessione





Il rilascio della connessione avviene considerando la
connessione full-duplex come una coppia di connessioni
simplex indipendenti, e si svolge nel seguente modo:
quando una delle due parti non ha più nulla da trasmettere,
invia un fin;
quando esso viene confermato, la connessione in uscita viene
rilasciata;
quando anche l'altra parte completa lo stesso procedimento e
rilascia la connessione nell'altra direzione, la connessione fullduplex termina.
Per evitare il problema dei 3 eserciti si usano i timer, impostati
al doppio della vita massima di un pacchetto.
D. Rosaci
Corso di Reti di Calcolatori
Capitolo Quinto
Il protocollo UDP



Il livello transport fornisce anche un protocollo non connesso
e non affidabile, utile per inviare dati senza stabilire
connessioni (ad esempio per applicazioni client-server).
Lo header di un segmento UDP è molto semplice:
La funzione di calcolo del checksum può essere disattivata,
tipicamente nel caso di traffico in tempo reale (come voce e
video) per il quale è in genere più importante mantenere
un'elevato tasso di arrivo dei segmenti piuttosto che evitare i
rari errori che possono accadere.
32 bit
Source port
Destination port
UDP length
UDP checksum
Scarica

Corso di Reti di Calcolatori