Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SERVIZIO E FUNZIONI
D E L L O S T R A T O DI T R A S P O R T O
i prncipi che sono alla base dei servizi del livello di trasporto
il muitiplexing/demultiplexing
l'indirizzamento di trasporto: le porte e i socket
il concetto di trasferimento dati affidabile
Generalit
Lo strato d i trasporto si colloca a livello 4 della pila ISO-OSI e svolge u n compito di collegamento
tra i l sottostante livello di rete e i livelli applicativi, mettendo i n comunicazione i diversi processi
software instaurando u n collegamento logico tra le applicazioni residenti su host remoti.
Come possiamo vedere nell'immagine seguente, nei protocolli TCP/IP i processi software (chiamati
anche processi applicativi o applicazioni software) si appoggiano direttamente al livello di trasporto.
Lo strato d i trasporto, sia nel modello ISO-OSI che nel modello TGP-IP, ha i l compito d i mettere
in connessione i livelli pi bassi, orientati alla gestione del canale, con i dispositivi e i componenti
hardware molto diversi tra loro, orientati al trasporto dei dati per le applicazioni dei livelli superiori.
Grazie alla sua strutturazione software e ai suoi protocolli, i l livello di trasporto offre le stesse p r i -
mitive standard ai livelli superiori, i n modo da rendere trasparente l'hardware dal software d i rete.
La comunicazione tra applicazione e applicazione avviene con scambio di messaggi che vengono
segmentati e trasformati i n < TPDU (Transport Protocol Data Unit) di livello 4.
156
ervizio e funzioni dello strato di trasporto
Seguiamo nella pila ISO-OSI i l percorso delle PDU inviate da una applicazione: i l livello d i trasporto
passa le PDU al livello d i rete che le incapsula i n PDU d i livello 3 e le inoltra; dopo alcuni passaggi
intermedi giungono al livello 3 del destinatario che l i passa al livello 4 dove vengono ricostruiti
dell'applicazione destinazione.
IP
DL DL
prot. appi. Ph Ph prot. appi.
TCP o UDP TCP o UDP
IP connesione logica tra end-systems IP
Data Link Data Link
Physical IP IP Physical
DL DL DL DL DL DL
Ph Ph Ph Ph Ph Ph
"T
ESEMPIO 1
L'esempio dell'invio di una lettera attraverso i l servizio postale fornisce una valida analogia. Sup-
poniamo d i voler spedire una cartolina: possiamo individuare i seguenti componenti d i sistema e i
relativi elementi di rete:
I mittente/destinatario : processi (applicazioni livelli superiori)
abitazioni : host
cartolina : messaggi ( T P D U )
La cartolina viene imbucata nella cassetta delle lettere da cui verr ritirata dal servizio postale per
essere portata nella centrale d i smistamento. Dopo alcuni passaggi tra sportelli e filiali, la cartolina
verr consegnata all'ufficio postale della citt dove risiede i l destinatario per essere poi collocata
nella casella postale del destinatario.
< Entity Si definisce entit (entity) di rete un elemento o processo che effettua una conversazione in
rete. Le entit (processi) che effettuano una conversazione con un elemento di pari livello si chiamano
peer entitiy (entit di pari livello).
Host 1 Host 2
/
Livello
di applicazione Interfaccia
o sessione SAP di trasporto applicazione/
SAP d trasporto
trasporto
Livello T f T t
Entit di trasporto TPDU Entit di trasporto
di trasporto
1
w
Livello Interfaccia SAP di rete
SAP di rete
di rete trasporto/rete
Lo strato di trasporto della rete Internet mette a disposizione delle applicazioni attive i n ciascun
host due distinti protocolli d i trasporto:
T C P (Transmission Control Protocol);
I UDP (User Datagram Protocol).
TCP e UDP svolgono funzioni diverse, cio offrono servizi diversi allo strato applicativo: ogni appli-
cazione (processo) i n esecuzione, prima d i poter trasmettere messaggi sulla rete, sceglie i l protocol-
lo da usare per poter realizzare la comunicazione. La differenza fondamentale tra i due protocolli,
che saranno descritti dettagliatamente nelle prossime due lezioni, che i l protocollo T( IP orien-
tato alla connessione (connection-oriented), ed quindi affidabile i n quanto consente i l controllo
dell'integrit dell'informazione contenuta nei pacchetti, inoltre possiede u n sistema per la segnala-
zione dell'errore al mittente (scambio d i messaggi d i A acknowledge ) , mentre i l protocollo UDP
senza connessione (connectionless) e quindi non affidabile.
Zoom su...
CONNECTION-ORIENTED E CONNECTIONLESS
Nella comunicazione connection-oriented prima di poter iniziare a effettuare la trasmissione
necessario provvedere alla connessione tra mittente e destinatario e individuare anche gli inter-
mediari che permettono di realizzarla (router intermedi): la comunicazione pu avvenire in modo
bidirezionale e offre una elevata qualit e maggiori garanzie, naturalmente con costi pi elevati.
La comunicazione connectionless adatta per dati occasionali, quando non richiesta una
elevata qualit della comunicazione e non neppure necessario il rispetto della sequenza nella
ricezione dei messaggi, dato che in questa modalit un messaggio trasmesso successivamente
pu arrivare prima di uno precedente.
Il costo di questa modalit limitato ma sono scarse le garanzie che offre.
159
e vengono utilizzate dal trasmettitore con la seguente tipica sequenza:
T-CONNECT: attiva la connessione con negoziazione
n S E N D DATA: invio di n segmenti di dati
T-DISCONNECT: chiusura della connessione
Per esempio:
T-CONNECT.response()
Servizio confermato
PRIMITIVA.REQUEST
PRIMITIVA.INDICATION
o
<- J
E
PRIMITIVA.RESPONSE
PRIMITIVA.CONFIRM
Per esempio, per stabilire una connessione sincrona fra A e B si eseguono le seguenti opzioni:
160
Servizio e funzioni dello strato di trasporto
Il multiplexing/demultiplexing
Quando pi applicazioni sono attive, sia su diversi end-system che su diversi host, circolano i n rete
pi messaggi generati dalle diverse applicazioni: i l livello d i trasporto genera dei canali logici tra le
diverse applicazioni svolgendo la funzione d i A multiplexing/demultiplexing .
Data Unit
L'indirizzamento di trasporto
Per poter risolvere i l problema della trasmissione dei dati tra applicazioni diverse sui medesimi
host, i l protocollo d i trasporto utilizza i l meccanismo delle ^ porte .
Porte Per i protocolli a livello di trasporto, viene introdotto il concetto di porta. Una porta (port) un
valore numerico specificato su 2 byte (da 0 a 65535) che identifica un particolare canale utilizzabile per la
comunicazione. In questo modo possibile instaurare simultaneamente pi comunicazioni, cosicch due
applicazioni possono comunicare l'una con l'altra indipendente dal fatto che sulla rete stiano avvenendo
altre comunicazioni: sufficiente utilizzare porte diverse. Si viene cos a delineare il socket che rappre-
senta un punto di connessione per una comunicazione, identificato univocamente da un indirizzo IF e un
numero di porta, ovvero da una coppia indirizzo IP: porta. Un'applicazione che vuole comunicare con
un'altra utilizzando un protocollo a livello di trasporto, deve creare un socket locale formato da:
indirizzo IP locale:porta locale,
comunicando al sistema operativo di voler utilizzare una determinata porta, in modo tale che tutti i
pacchetti a essa destinati le vengano recapitati. L'applicazione invier i pacchetti a un determinato
socket di destinazione formato da:
indirizzo IP di destinazione:porta di destinazione.
I pacchetti verranno ricevuti dall'interfaccia di rete il cui indirizzo IP quello specificato come destina-
zione all'interno dei pacchetti stessi e il sistema ricevente recapiter i pacchetti ricevuti all'applicazione
a cui si riferisce la porta di destinazione.
161
3 Lo strato di trasporto
bene sottolineare il fatto che i numeri di porta sono relativi soltanto al protocollo conside-
rato: una determinata porta per il protocollo diversa dallo stesso numero di porta per
il protocollo UDP (si tratta effettivamente di porte diverse), anche se in genere viene utilizzato
lo stesso numero di porta per un servizio che gestisce entrambi i protocolli.
ESEMPIO 2
Riprendendo l'analogia con i l servizio postale, supponiamo di spedire una lettera a un amico che
vive i n condominio: non sufficiente mettere l'indirizzo d i destinazione ma necessario indicare i l
cognome e, se non vive da solo, anche i l suo nome. Per individuare univocamente i l destinatario
necessario specificare quindi oltre al suo indirizzo anche i l suo nome completo: gli stessi dati sono
a lui necessari affinch possa darci una risposta e quindi l i indicheremo sul retro della busta, come
indirizzo del mittente.
A ogni macchina viene associato u n insieme d i porte, i flussi di dati distinti all'interno della stessa
macchina sono caratterizzati da porte diverse, cio vengono associati ciascuno a una specifica porta.
Una connessione tra due computer viene quindi univocamente identificata dalle coppie:
"indirizzo IP: porta" del mittente
"indirizzo IP: porta" del destinatario
I valori delle porte sono scritti nell'header che viene aggiunta ai dati dallo strato d i trasporto.
TCP/UDP
Data Transport Layer
Header
Packet
Nell'header, oltre alla porta del mittente (search port number) altri campi header
e alla porta del destinatario (target port number), vengono
scritte delle informazioni d i controllo come una sequenza d i dati applicazione
numeri di controllo e una cecksum per i l controllo d'integrit (messaggi)
del dato.
Come vedremo in seguito, gli header dell'UDP hanno una dimensione di 8 bytes mentre quelli
del T C P dai 20 ai 24 bytes e la dimensione massima (in byte) del campo dati viene fissata, di
volta in volta, al momento in cui viene stabilito il canale logico tra i due processi comunicanti. La
dimensione massima detta Maximum Segment Size (MSS) ed espressa in byte.
162
Servizio e funzioni dello strato di trasporto
ESEMPIO 3
Nell'esempio d i figura, due applicazioni dell' host A
host A: <137.204.10.85:3300>
host A: <137.204.10.85:3301 >
e una dell'host B
host B: <137.204.56.10:3301 >
non possono essere distinti solo dal loro indirizzo IP ma sono univocamente individuati mediante
l'indirizzo del socket.
137.204.59.10 IP 137.204.57.85 IP
Host B
3301 TCP
137.204.56.20 IP
I processi elient/server
Come abbiamo visto sugli host possono essere eseguite ap-
plicazioni che scambiano messaggi con altre applicazioni 4 Client/server The client/
server model is a compu-
remote: affinch u n calcolatore possa effettivamente utiliz-
ting model that acts as a distribui-
zare u n messaggio i n arrivo, necessario che i n quel mo-
teci application wich partitions tasks
mento vi sia i n esecuzione u n processo i n attesa di quel or workloads between the providers
messaggio e che lo possa interpretare. i l caso tipico di of a resource or service, called ser-
applicazioni internet, dove la maggior parte dei servizi te- vers, and service requesters, called
lematici offerti si basano su questa modalit di architettura clients.
che prende i l nome di A client-server .
Il modello client-server organizzato i n due moduli, chiamati appunto server e client, operanti su
macchine diverse:
i l server svolge le operazioni necessarie per realizzare u n servizio;
9 i l client, generalmente tramite una interfaccia utente, acquisisce i dati, l i elabora e l i invia al ser-
ver richiedendo u n servizio.
Quindi i n rete sono presenti calcolatori su cui girano processi Server che erogano servizi e sono i n at-
tesa di ricevere richieste di connessione da parte di processi Client interessati a usufruire di tali servizi.
Naturalmente allo stesso server arrivano contemporaneamente richieste da client diversi che po-
trebbero anche utilizzare la stessa porta, come nel seguente esempio la 3301, o richieste da porte
diverse dello stesso host: i l collegamento avviene univocamente tramite i socket.
ESEMPIO 4
Un client si connette alla porta d i u n server SMTP remoto (servizio d i posta elettronica)
Client Server
Client Server
Net. Add. 128.36.1.24
Port: 53358
Quando un client apre un socket, non dovrebbe utilizzare una porta nota, in quanto riservata
per l'offerta di servizi.
ESEMPIO 5
Riportiamo di seguito due frammenti di codice tipici di un'applicazione client-server:
Server Client
...
connect();
accept(); receive();
send(); send();
receive();
... disconnect));
La chiamata di queste primitive i n questa sequenza permette d i realizzare una comunicazione sen-
za errori, come vedremo nelle prossime lezioni.
165
Qualit del servizio QoS
I l livello d i trasporto ha anche la funzione d i aumentare la qualit del servizio offerto dalla rete e
introduce i l QoS (Quality of Service), che descrive i l livello delle prestazioni d i rete che deve essere
assicurato per una particolare applicazione.
L'utilit d i valutare la qualit del servizio necessaria soprattutto sulle reti d i medie/grandi dimen-
sioni dove presente un notevole flusso d i dati e le applicazioni necessitano d i tempi di risposta
diversa (alcune richiedono qualit elevata).
ESEMPIO 6
Se un server d i posta consegna una mail con un minuto d i ritardo nessuno se ne accorge e questo
ritardo non crea nessun problema oggettivo: per questa trasmissione baster u n basso livello d i QoS.
Se invece una applicazione d i video streaming trasmette ogni frame video con u n ritardo d i mezzo
secondo i l filmato si visualizza a scatti e risulta quindi inaccettabile: per questa trasmissione ne-
cessario i l pi alto livello d i QoS.
possibile specificare i l QoS come un range d i valori entro i l quale definire la qualit del servizio
per differenziare a dovere le diverse necessit, e pu essere definito i n modo:
I assoluto: vengono stabiliti i valori che devono essere rispettati da un insieme d i parametri indica-
tori delle prestazioni (per esempio i l ritardo massimo, la probabilit d i perdita di pacchetti ecc.);
I relativo: si definiscono le modalit d i trattamento d i una classe d i traffico rispetto alle altre (per
esempio i l livello d i priorit d i servizio, i l livello di priorit d i scarto ecc.).
Pdportiamo d i seguito l'elenco dei parametri indicatori che permettono d i dare la definizione stan-
dard del QoS:
ritardo massimo nell'attivazione della connessione;
numero d i byte trasferiti nell'unit d i tempo (throughput);
k velocit di consegna o ritardo d i transito;
probabilit d i fallimento della connessione o d i interruzione i n caso d i congestione;
I probabilit che la connessione non venga stabilita entro i l massimo tempo d i ritardo di attivazione;
I tasso d i errore residuo o numero d i messaggi persi sul numero totale d i messaggi inviati;
I probabilit d i fallimento del trasferimento;
ritardo d i rilascio della connessione e probabilit d i fallimento nel rilascio della connessione;
protezione contro le intercettazioni dati (lettura o modifica non autorizzata);
I priorit della connessione;
probabilit che i l livello d i trasporto termini la connessione per problemi interni o di congestione.
Prima d i effettuare una connessione tra due macchine avviene quella che prende i l nome d i ne-
goziazione delle opzioni: le stazioni trasmissive negoziano all'inizio per concordare i parametri da
utilizzare e se non raggiungono un accordo la connessione pu anche essere rifiutata.
166
servizio e funzioni dello strato di trasporto
- richiede alla macchina di destinazione d i stabilire una connessione e le invia una contro-
proposta indicando i valori che i n grado d i offrire: se la proposta accettata dall'utente, la
connessione pu essere attivata; i n alternativa l'utente a fare una controrichiesta a livelli
pi bassi e cos via.
importante sottolineare che i parametri QoS negoziati alla fine della trattativa restano validi
e fissati per tutta la durata della connessione.
In particolare:
167