Sei sulla pagina 1di 13

Il livello 4: Trasporto e UDP

Sez.A12

Il livello di Trasporto
Il livello Transport il cuore di tutta la gerarchia di protocolli. Il suo compito quello di fornire un
trasporto affidabile ed efficace dall'host di origine a quello di destinazione, indipendentemente dalla
rete utilizzata, quindi ricevere e/o inviare i dati, suddividerli in pacchetti, se necessario, controllarli e
dove previsto possibilmente correggerli. A tale scopo fornisce servizi al livello superiore e sfrutta i
servizi del livello di rete.
A questo livello anche affidata la qualit del servizio QoS (Qualit of Service) ovvero che i pacchetti
arrivino, senza errori, tutti, senza n perdite n duplicazioni.
Questo il livello in cui si gestisce per la prima volta una conversazione diretta fra sorgente e
destinazione (end-to-end), il trasporto svincolato dai problemi di connessione fisica dei
livelli inferiori.

Da host ad host:
i messaggi di unapplicazione vengono segmentati e trasformati in PDU (Protocol Data Unit) di
livello4 (trasporto), detti segmenti.
il livello di trasporto passa le PDU al livello di rete che le incapsula in PDU di livello 3 e le inoltra
in rete
a destinazione i messaggi passano dal livello 3 al 4 e i messaggi dellapplicazione vengono
ricostruiti
il livello di trasporto rende trasparente il trasporto fisico dei messaggi alle applicazioni.
Da ci discende che il software di livello transport presente solo sugli host, e non nei router della
subnet di comunicazione.
Il segmento, ovvero lunit di dati scambiata dal protocollo di trasporto, detto TPDU (Trasport
Protocol Data Unit):

Servizi offerti dal livello transport


Ricordiamo che per servizi intendiamo quelle interfacce software che vengono utilizzate affinch
un'entit possa comunicare con un'altra entit di livello inferiore o superiore.
Il servizio offerto da uno strato rappresentato logicamente con una porta di accesso al servizio, detta
Service Access Point (SAP), che ha un nome unico ed identificata da un indirizzo.

I servizi realizzati dal livello transport possono essere:

(pag.167)

Gestione della connessione: poich generalmente il livello rete non stabilisce una connessione
con l'host di destinazione, il livello di trasporto si incarica di realizzare una connessione che
viene poi chiusa quando non pi necessaria.
Corretto ordine di consegna e controllo errori. Poich i pacchetti possono seguire percorsi
diversi all'interno della rete, il livello di trasporto verifica che i pacchetti vengano riordinati
nella giusta sequenza prima di passarli al livello superiore.
Trasferimento affidabile. Il protocollo di trasporto si occupa di garantire che tutti i dati inviati
vengano ricevuti; nel caso il servizio di rete utilizzato perda pacchetti, il protocollo di trasporto
si occupa di ritrasmetterli.
Controllo di flusso. Se gli host coinvolti nella comunicazione hanno prestazioni molto
differenti pu capitare che un pc pi veloce "inondi" di dati uno pi lento. Mediante il controllo
di flusso, un host in "difficolt" pu chiedere di abbassare il tasso di trasmissione in modo da
poter gestire le informazioni in ingresso.
Controllo di Congestione: il protocollo di trasporto riconosce uno stato di congestione della
rete, e adatta di conseguenza la velocit di trasmissione.
Multiplazione. Il protocollo di trasporto permette di stabilire diverse connessioni
contemporanee tra gli stessi due host, utilizzando le porte (di cui parleremo). Nell'uso
comune, diversi servizi utilizzano porte diverse.

Nessuno di tali servizi obbligatorio, quindi per ciascuna applicazione possibile scegliere il
protocollo pi adatto allo scopo.
Sotto certi aspetti i servizi di livello transport assomigliano 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 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.
2

Propriet ed esempi di Servizi


- affidabilit della comunicazione e sequenza dei flussi di dati
- connessione affidabile non affidabile
- non connessione affidabile non affidabile
- datagramma senza connessione non affidabile
- connessioni affidabili sequenze di messaggi
Ma anche richieste diverse: solo garanzia di sequenza di dati che si possono anche perdere, anche dati
che vogliamo che siano ricevuti, sequenze di byte che richiediamo ricevute in modo unico,

Primitive a livello transport


Per accedere ad un servizio e poter usare i protocolli vengono fornite allentit di livello delle funzioni
di base chiamate primitive.
Le primitive servono a richiedere il servizio e essere informati dellesito della richiesta e devono
contenere tutte le informazioni necessarie al fornitore del servizio.
Ad esempio:

E ogni primitiva pu avere quattro possibili parametri:


- Request - il service user richiede un servizio (una azione)
- Indication - il service provider indica al service user che stato richiesto un servizio (segnalazione di
evento)
- Response - il service user specifica la risposta alla richiesta di servizio (una azione)
- Confirm - il service provider segnala la risposta alla richiesta di servizio (segnalazione di evento)
Esempio:

La multiplazione e le porte
TCP permette di effettuare un compito importante: la multiplazione/demultiplazione, cio di far
transitare su una stessa linea dei dati provenienti da applicazioni diverse. Un host connesso in rete
identificato da un indirizzo IP e ogni singolo host pu usufruire contemporaneamente di uno o pi
servizi a livello application che utilizzano il TCP a livello transport, lutilizzo del solo indirizzo IP non
sufficiente a indirizzare correttamente i dati provenienti dalla rete allapplicazione giusta. Si pensi ad
esempio che sul medesimo host si stia navigando in internet e facendo un download di un file, il
browser utilizzer il protocollo http e www a livello application e il download lFTP ma a livello di
transport tutti e due utilizzeranno il TCP, come far quindi il TCP a indirizzare correttamente i dati
per il web-browser e quelli per lFTP?
Pi applicazioni possono essere attive su un end-system e il livello di trasporto svolge funzioni di
multiplexing/demultiplexing (ciascun collegamento logico tra applicazioni indirizzato dal livello di
trasporto):

(Per entit di trasporto si intendono le librerie del sistema operativo disponibili al programmatore che
implementano le funzionalit di trasporto).
In Internet le funzioni di multiplexing/de multiplexing vengono gestite mediante indirizzi contenuti
nelle PDU di livello di trasporto.
Tali indirizzi sono lunghi 16 bit e prendono il nome di porte.
Le porte, numerate da 0 a 65.535, corrispondono ad ogni applicazione sul server in ascolto e si
suddividono in tre parti:
1. Well Known Ports (da 0 a 1023)
Sono porte assegnate univocamente e sono riservate ai servizi server standard. I client non dovrebbero
mai usare queste porte.
2. Registered Ports (da 1024 a 49151)
Lutilizzo di questo insieme di porte generalmente libero nonostante contenga dei servizi registrati.
Non esistono vincoli restrittivi a riguardo tanto che tutti i client usano normalmente le porte a partire
dalla numero 1024 per collegarsi ad un sistema remoto.
3. Dynamic and/or Private Ports (da 49152 a 65535)
Nessun servizio registrato in questarea. Il suo utilizzo e assolutamente libero.

Le porte tra 0 e 1023 sono assegnate dalla IANA (Internet Assigned Number Authority), di seguito
vengono elencate alcune di quelle pi utilizzate:
Porta
0
7
13
20
21

Servizio
Riservato
Echo
DAYTIME Restituisce data e ora
FTP (Canale dati)
FTP (Canale controllo)

Protocollo
UDP
UDP
UDP
TCP
TCP
4

23
25
37
42
43
53
80
110
139
161
513
514
525

Telnet
Smtp
TIME ora
NAME Server dei nomi host
WHOIS Chi in servizio
DNS
http
Pop (versione 3)
Servizi NetBios
SNMP Monitor di rete
WHO Demone Remote Who UNIX
SYSLOG system log
TIMED demone Time

TCP
TCP
UDP
UDP
UDP
TCP
TCP
TCP
UDP
UDP
UDP
UDP
UDP

Nel momento in cui un host mittente voglia inviare delle informazioni ad un host di destinazione
riguardante un particolare servizio, lhost origine richieder una connessione specificando indirizzo IP
e porta del servizio, la combinazione indirizzo IP e numero della porta prende il nome di indirizzo di
socket, una socket pu essere considerata n pi n meno che un punto di accesso allhost:

Ci pensano le entit di trasporto a suddividere il flusso in arrivo dal livello application in segmenti, a
trasmetterli e a ricombinarli in un flusso che viene consegnato al livello application di destinazione.
Quando un processo viene associato ad una porta (lato cliento lato server) viene associato sempre dal
sistema operativo a due code, una dingresso e una duscita, per non perdere la priorit di esecuzione.
Funzionalit di buffering dei dati.
Esempio di Multiplazione/Demultiplazione

Multiplazione: Creazione dei segmenti provenienti


dai messaggi di diversi processi applicativi

La multiplazione avviene dal lato del nodo


mittente

Demultiplazione: Ogni segmento dello strato


di trasporto possiede un campo contenente
linformazione usata per determinare a quale
processo deve essere consegnato il segmento

La demultiplazione avviene dal lato del nodo


destinatario

Qualit del Servizio


QoS (Quality of Service) e un servizio aggiuntivo introdotto nel livello di trasporto che permette di
specificare appunto la qualit del servizio richiesta.
L'utilit di questo servizio si nota soprattutto nelle reti medio/grandi, dove c' un pi che discreto
traffico di dati e alcune connessioni necessitano di una qualit comunque elevata. La qualit in
evidenza la velocit di trasferimento dei dati. Sostanzialmente si pu specificare un range di valori
entro il quale definire la qualit del servizio per differenziare a dovere le diverse necessit.
Ad esempio:
- se un server di posta consegna una mail con mezzo secondo di ritardo (ma anche con mezzo
minuto) nessuno se ne accorge o ci fa caso: questa trasmissione pu accontentarsi del valore pi
basso della scala.
- se un applicazione di video streaming trasmette ogni frame video con un ritardo di mezzo secondo,
allora s che la gente se ne accorge: una tale trasmissione dovr richiedere il pi alto livello di
qualit del servizio
Le stazioni trasmissive negoziano allinizio per concordare i parametri da utilizzare e se non si
raggiunge un accordo la connessione pu anche essere rifiutata.

Negoziazione del QoS

I protocolli del livello di Trasporto


Allinterno dellarchitettura TCP/IP, il livello di trasporto basato su due protocolli:
TCP (Transmission Control Protocol) connesso e affidabile RFC 793, 1122 e 1323;
UDP (User Datagram Protocol) non connesso e non affidabile RFC 768.
I protocolli TCP / UDP forniscono quindi il meccanismo di trasferimento dei dati.
Il TCP un protocollo cosiddetto connection oriented , ovvero garantisce la consegna dei dati inviati
tra un host e un altro, si stabilisce prima una connessione tra i due host e poi inizia il trasferimento dati.
Il TCP offre un servizio connection oriented, e si occupa di:
accettare dati dal livello application;
spezzarli in segment, il nome usato per i TPDU (dimensione massima 64 Kbyte, tipicamente
circa 1.500 byte);
consegnarli al livello network, eventualmente ritrasmettendoli;
ricevere segmenti dal livello network;
rimetterli in ordine, eliminando buchi e doppioni (eventuali ritrasmissioni);
consegnare i dati, in ordine, al livello application.
LUDP invece non garantisce che i dati siano giunti a destinazione. La scelta delluso di un protocollo
rispetto ad un altro da decidersi in base allesigenza, lUDP pi veloce e meno sicuro, il TCP pi
6

sicuro ma pi lento in quanto oltre ad occuparsi della consegna delle informazioni durante una
transazione TCP necessario eseguire tutta una serie di controlli e impostazioni sullo stato della
connessione. Il protocollo TCP stato progettato per fornire un flusso di byte affidabile, da sorgente a
destinazione.
In base al tipo di applicazione viene scelto il tipo di protocollo di trasporto pi adatto:

Il protocollo TCP
Le caratteristiche pi importanti del protocollo TCP sono le seguenti:
TCP usa un meccanismo di finestre scorrevoli con timeout. Se questo scade, il segmento si
ritrasmette. Questo garantisce l'affidabilit: l'host ricevente invia un messaggio
(Acknowledgements) al trasmettitore per indicare che ha ricevuto correttamente la stream di
dati.
ogni byte del flusso TCP numerato con un numero usato sia per il controllo di flusso che per
la gestione degli ack;
un segmento TCP non pu superare i 65.535 byte;
un segmento TCP formato da:
o un header, a sua volta costituito da:
una parte fissa di 20 byte;
una parte opzionale;
o i dati da trasportare.
Abbiamo detto che il TCP utilizza un metodo, noto come finestra scorrevole, che ottimizza e rende pi
efficiente la trasmissione, poich sfrutta meglio la larghezza di banda disponibile.
Consideriamo una porzione di dati da trasmettere, chiamata segmento:

Finestra scorrevole in TCP:


a) Inizio trasmissione, b) ricezione Ack 1 2 e 3, c) flusso di datagrammi sulla linea

Il TCP trasmittente sovrappone una piccola finestra alla sequenza ed invia tutti i pacchetti all'interno di
essa. Quando riceve il primo riscontro, la finestra scorre in avanti ed il TCP invia il pacchetto
successivo. Fintanto che arrivano i riscontri la finestra scorre.
Le prestazioni di un protocollo a finestra scorrevole dipendono dalle dimensioni della finestra stessa e
dalla velocit con cui la rete accetta i datagrammi. Pi la finestra larga, pi la banda utilizzata.
Il ricevitore gestisce una finestra simile, accettando e riscontrando i pacchetti che arrivano (inviando
ack).
Il formato di un segmento TCP il seguente:

Porta di Provenienza e Porta di Destinazione sono le porte utilizzate nella connessione


Il campo Numero Sequenziale indica la posizione dei dati nel segmento. Questo valore riferito ai dati
che fluiscono nella medesima direzione del segmento, mentre il Numero di Riscontro si riferisce ai
dati che fluiscono nella direzione opposta
Il campo Numero Riscontro contiene il numero sequenziale del byte successivo a quello
correttamente ricevuto dalla destinazione. Tale campo valido solo nei segmenti di riscontro (ACK) e
fa riferimento ai dati che fluiscono nella direzione opposta a tale segmento.
NOTA: Nel datagramma di riscontro la destinazione comunica quale byte dei dati si aspetta di
ricevere successivamente e i riscontri specificano sempre il numero sequenziale del primo byte non
ancora ricevuto.
per Esempio: in un messaggio di 1000 byte segmentato in blocchi di 100 byte, il primo riscontro
conterr il numero sequenziale 101
Con questo metodo di riscontro cumulativo si ha il vantaggio che la perdita di un riscontro (ack) non
blocca la trasmissione se confermato dal riscontro successivo
Il campo HLEN (data offset) contiene un numero intero che specifica la lunghezza del datagramma,
misurata in multipli di 32 bit.
Il campo Riservato non attualmente utilizzato.
Il campo Bit di Codice serve per determinare lo scopo ed il contenuto del pacchetto. Infatti, lo stesso
frame utilizzato per trasmettere i dati, per trasmettere un riscontro, per stabilire o chiudere una
connessione.
Bit di Codice in TCP
Il campo Puntatore Urgente ed il relativo bit di codice URG servono per trasmettere dati che non
possono aspettare in coda di essere trasmessi, quali ad esempio una sequenza che fa abortire il
programma sull'host remoto. necessario che questi dati prevarichino gli altri, altrimenti non si
potrebbe interrompere un programma che funziona in maniera non corretta.
Quando il bit URG attivato, il puntatore specifica la posizione della fine dei dati urgenti nella finestra.
Il bit PSH serve per forzare la consegna dei dati. Il TCP, infatti, prima di trasmettere un segmento,
aspetta che il buffer si sia riempito. Se i dati non sono sufficienti, ma necessitano ugualmente di essere
trasferiti, il programma applicativo pone ad 1 tale bit.
Il campo SYN serve per stabilire la connessione.
8

Il bit RST, se posto ad 1, fa in modo che la connessione si interrompa immediatamente, senza la


spedizione di ulteriori messaggi.
Il campo Finestra contiene un intero senza segno di 32 bit ed indica la quantit di dati che il TCP
ricevente disposto ad accettare.
Il campo Opzioni facoltativo. Viene utilizzato ,ad esempio, per concordare con l'host remoto la
dimensione massima del segmento MSS (Maximum Segment Size).

Sessione TCP e gestione della connessione.


Una sessione TCP composta da:

unattivazione di connessione,
una serie di passaggi per linvio e la ricezione delle informazioni
il rilascio della connessione.

Per compiere un trasferimento dati utilizzando il TCP necessario, come si detto, instaurare una
connessione e il campo SYN viene utilizzato per stabilire la connessione.
La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host chiamata
three-way handshake (stretta di mano a 3 vie), indicando la necessit di scambiare 3 messaggi tra host
mittente e host ricevente affinch la connessione sia creata correttamente. Ad esempio:
Il client invia una richiesta di connessione (passo 1) contenente un identificativo A. Se il server riceve
questa notifica, questi risponde con un ack (passo 2) contenente una conferma per A, sotto forma di un
nuovo identificativo B. infine il mittente pu attivare la connessione inviando una sequenza (passo 3)
contenente gli identificativi AB.

Il terzo segmento non sarebbe, idealmente, necessario per l'apertura della connessione in quanto gi
dopo la ricezione da parte di A del secondo segmento, entrambi gli host hanno espresso la loro
disponibilit all'apertura della connessione. Tuttavia esso risulta necessario al fine di permettere anche
all'host B una stima del timeout iniziale, come tempo intercorso tra l'invio di un segmento e la ricezione
del corrispondente ACK.
I segmenti utilizzati durante l'handshake sono solitamente 'solo header', ossia hanno il campo Data
vuoto essendo questa una fase di sincronizzazione tra i due host e non di scambio di dati.

Il rilascio della connessione avviene generalmente quando finito il trasferimento dei dati, nel
seguente modo:
quando una delle due parti non ha pi nulla da trasmettere, questa invia un pacchetto con il flag
FIN a 1, se esso riconfermato dallaltro host, la connessione in uscita viene rilasciata;
di conseguenza ci sar una richiesta di fine dallaltro host e un pacchetto di risposta per
rilasciare la connessione nell'altra direzione, la connessione termina.

Se un pacchetto di risposta perso dopo un certo tempo, la connessione rilasciata automaticamente.


Per evitare il problema (detto dei 2 eserciti) si usano i timer, impostati al doppio della vita massima di
un pacchetto.

Il protocollo UDP
Il protocollo UDP quindi un protocollo non connesso (connession-less) e non affidabile, utile per
inviare dati senza stabilire connessioni (ad esempio per applicazioni client-server).
Non viene quindi stabilita nessuna connessione e lUDP si limita ad inviare i pacchetti sulla rete senza
richiesta di conferma allavvenuta ricezione, quindi non verifica se lhost di destinazione abbia o meno
ricevuto le informazioni che gli sono state inviate.
Il protocollo viene utilizzato da quelle applicazioni che inviano piccole quantit di dati o dove
necessario avere unalta velocit di trasferimento (ad esempio nello streaming audio e video) e inoltre,
contrariamente al TCP, lUDP in grado di supportare il multicast, ovvero linvio di uninformazione
ad un gruppo di destinatari (es. Chat)
Gli unici servizi che UDP fornisce sono:
-

multiplazione/demultiplazione

rilevazione degli errori (tramite il calcolo del checksum sia dal mittente che dal ricevente, con
successivo controllo)

Utilizza i numeri di porta in modo che un indirizzo IP specifico possa identificare un processo
particolare: le porte UDP sono diverse dalle porte TCP.

Struttura del segmento UDP


Il segmento UDP composto da due parti:
lintestazione ed il corpo
10

Il corpo contiene i dati ed ha una lunghezza


massima teorica di 65535 byte
in pratica la dimensione pi piccola ed
limitata dal massimo frame del protocollo IP
Lintestazione composta da quattro campi,
ciascuno di 16 bit
I campi dellintestazione sono:
numero di porta sorgente

numero di porta destinazione


lunghezza del corpo in byte
codice di controllo per gli errori
di trasmissione (checksum)

campo di 16 bit (facoltativo), contiene la porta UDP di origine

dell'host sorgente; viene generato allapertura della socket in


trasmissione, oppure viene preso come parametro da una socket
in ricezione
campo di 16 bit, contiene la porta UDP di destinazione del
pacchetto sull'host remoto; un parametro della primitiva di
creazione di una socket
campo di 16 bit, contiene la lunghezza in byte dell'intestazione
UDP e dei dati; viene calcolato allatto dellinvio di un
messaggio attraverso una socket
campo di 16 bit, viene calcolato in trasmissione e viene

verificato in ricezione (in alcune implementazioni il segmento


viene scartato, in altre viene consegnato allapplicazione
segnalando lerrore)

Comunicazioni UDP
Per spedire un datagramma UDP il mittente deve conoscere lIP del destinatario e la porta di
destinazione, per ricevere deve anche inviare la porta sorgente.
La trasmissione funziona cos:
a priori lhost mittente conosce quindi la porta e lindirizzo IP del destinatario.
Il mittente invier un pacchetto UDP (incapsulato in un datagramma IP)
Il pacchetto sar ricevuto dal destinatario che al livello IP eseguir un controllo ed estrapoler il
pacchetto arrivato per controllare che un pacchetto UDP.
In seguito, prelevato il numero di porta, si eseguir una verifica se sullhost ricevente la
Destination port in ascolto, in quel caso saranno recapitati i dati al livello successivo
altrimenti sar inviato un paccheto ICMP (Internet Control Message Protocol) all'host mittente
con messaggio di port unreachable (porta irraggiungibile).
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.
NOTA:

Attraverso un network sniffer possibile visualizzare i vari campi di un pacchetto UDP. Un


esempio:
Source IP: 192.168.0.97 Target IP: 195.130.224.18 UDP Length: 27
Essendo UDP incapsulato in IP vediamo prima l'intestazione IP con gli indirizzi sorgente e destinazione e la
dimensione
Source Port: 33997 Target Port: 53 Leng: 35 ChkSum: 2342
Nell'header UDP troviamo la porta sorgente (33997) e la porta destinazione (53 - richiesta DNS) la dimensione (35)
ed il checksum (2342)
00000000: 1A B4 01 00 00 01 00 00 00 00 00 00 09 6C 6F 63

11

...
Infine troviamo il campo dati

Calcolo del Checksum


L'header UDP breve, ma contiene un metodo complicato per calcolare un checksum. Si considera il
pacchetto come somma di parole di 16 bit, se il numero di byte nella sezione dati del pacchetto
dispari, il programma di calcolo aggiunge un byte di padding all- zero alla fine dei dati. Questo assicura
che il pacchetto contiene completi parole di 16 bit. Successivamente, le parole da 16b bit vengono
sommate a due a due, considerando i riporti, quindi viene fatto il complemento a 1 del risultato.
Il programma ricevente esegue lo stesso calcolo. Se i risultati non sono gli stessi, il pacchetto viene
scartato ma nessun messaggio di errore viene rispedito al mittente.
Esempio:

sommando i riporti. Facendo quindi il complemento a 1 il checksum sar: 1011010100111101


Le caratteristiche di UDP sono diametralmente opposte ai servizi e le funzionalit forniti da TCP. Nella
tabella seguente vengono indicate le differenze nella gestione delle comunicazioni TCP/IP a seconda
che venga utilizzato UDP o TCP per il trasporto dei dati.
UDP

TCP

Servizio senza connessione; non viene stabilita alcuna


sessione tra gli host.

Servizio orientato alla connessione; viene stabilita


una sessione tra gli host.

UDP non garantisce o riconosce in alcun modo la


consegna n la sequenza dei dati.

TCP garantisce la consegna attraverso l'utilizzo di


riconoscimenti e il recapito in sequenza dei dati.

I programmi che utilizzano UDP devono fornire


l'affidabilit necessaria per il trasporto dei dati.

Ai programmi che utilizzano TCP viene garantito un


trasporto affidabile dei dati.

UDP rapido, presenta bassi requisiti di overhead e


supporta la comunicazione point-to-point e point-tomultipoint.

TCP pi lento, presenta elevati requisiti di


overhead e supporta solo la comunicazione point-topoint.

Sia il protocollo UDP che il protocollo TCP utilizzano porte per identificare le comunicazioni di ogni
programma basato su TCP/IP.
12

Il servizio di trasferimento affidabile

(pag. 177)

Un servizio si dice affidabile abbiamo gi parlato di finestre scorrevoli


(studiare capitolo lezione 3 pagina 177-181) RTT, RTO

Un esempio di uso dei numeri di sequenza: una sessione telnet

Seq= Numero sequenza (numero del primo byte di dati nel segmento)
Ris = Numero riscontro: (numero sequenza del prossimo byte che ci si aspetta dall'altro lato)
Nell'esempio in figura, l'utente sul terminale A apre una sessione telnet. Ricordiamo che telnet
un protocollo di livello applicazione per il collegamento remoto che usa TCP come protocollo
di livello trasporto. Dopo aver aperto la sessione telnet e quindi aver iniziato la connessione
TCP avviene quanto segue:
o L'utente sul terminale A digita la lettera W
o B riceve W, spedisce il riscontro per (Ris = 106) e rispedisce anche W (per l'eco sul
terminale)
o A riceve W e rispedisce il riscontro

13