Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
12
12
UDP provvede alle funzioni basilari della consegna dei segmenti tra le applicazioni, con una
sorveglianza e verifica dei dati molto lievi. UDP un protocollo di tipo best-effort, ovvero
inaffidabile perch non invia responsi di avvenuta consegna (NACK). UDP non ha processi a
livello di transport layer che informano il mittente se avvenuta la consegna. UDP equivale a
spedire una lettera senza tracking, pu giungere a destinazione oppure no ed il mittente non
avr la conferma di avvenuto recapito.
Sia il TCP che lUDP sono protocolli di trasporto validi, a seconda delle
necessit dellapplicazione preferibile uno o laltro, per alcune
applicazione i segmenti devono arrivare con una sequenza specifica per
essere elaborati con successo, altre hanno bisogno di ricevere tutti i
segmenti prima di poterli utilizzare, in questi casi si usa TCP (esempio: i
database, web browsers e gli email client necessitano che al destinatario
giunga il dato completo e nella sua condizione originale, qualsiasi dato
mancante pu causare la completa rovina della comunicazione),per tale
motivo necessario avere un protocollo che supervisiona la comunicazione
per questi tipi di comunicazione. Altre volte invece, certe applicazioni sono
in grado di tollerare la perdita di dati durante la trasmissione ma non
possono ammettere un ritardo, in questi casi il protocollo UDP pi indicato perch necessita
di meno supervisione e quindi non crea ritardi (es: streaming audio, video, e VoIP). Se uno o
due segmenti di un flusso video si perdono, si crea una momentanea distorsione nel flusso che
appare come una distorsione dellimmagine, lutente pu anche non notarla. Invece se lo
streaming video avesse un sistema che ritrasmette i pacchetti non ricevuti, si verificherebbe
un degrado peggiore per limmagine, in questi casi preferibile la velocit di UDP e tralasciare
laffidabilit. Unaltra applicazione che usa UDP la radio su web, se parte del messaggio
perduto durante la trasmissione non viene ritrasmesso. Con UDP la perdita di qualche
pacchetto causa una rapidissima interruzione, con TCP i pacchetti verrebbero ritrasmessi e la
resa finale sarebbe di gran lunga peggiore.
Establishing a session: stabilendo una sessione: TCP un protocollo di tipo connectionoriented, ovvero negozia e stabilisce una connessione permanente (detta anche sessione) tra
il mittente e il destinatario prima di inoltrare il traffico. Le sessioni preparano i dispositivi per la
futura comunicazione. Attraverso le sessioni i dispositivi negoziano lammontare del traffico che
pu essere inoltrato in un dato periodo di tempo e lo amministrano. La sessione viene
terminata solo ad avvenuta e completa trasmissione.
12
Reliable Delivery: TCP ha un metodo per assicurarsi la consegna affidabile dei dati, in termini
di networking, il termine affidabilit significa assicurarsi che tutti i segmenti che partono da un
mittente giungano al destinatario. Per molte ragioni, possibile che un segmento si deteriori o
si perda del tutto, e TCP assicura la ritrasmissione dei dati corrotti.
Same Order delivery: consegna con lo stesso ordine: in una rete ci possono essere tante
rotte con diverse velocit di trasmissione e i dati possono arrivare nellordine sbagliato.
Numerando e aggiungendo una sequenza ai segmenti, il TCP assicura che i segmenti vengano
riassemblati in ordine corretto.
Flow Control: controllo del flusso: gli host di una rete hanno risorse limitate (memoria e la
bandwidth) e quando TCP si accorge che queste risorse sono utilizzate in maniera massiva, pu
richiedere allapplicazione trasmittente di ridurre il flusso dei dati. Questo processo si chiama
flow control e previene la perdita di segmenti in rete evitando la necessit di ritrasmetterli.
Role of TCP: ruolo del TCP: una volta che TCP ha
stabilito una sessione , capace di tenere traccia della
conversazione che avviene durante la sessione. Grazie
alla capacit di TCP di tracciare le attuali conversazioni
considerato un protocollo statement (STATEMENT
PROTOCOL), ovvero un protocollo che traccia lo stato
delle sessioni di comunicazione. Es: quando un data
trasmesso con TCP, il mittente attende che il destinatario
gli risponda con un ACK di avvenuta ricezione del dato, il
TCP traccia le informazioni che ha spedito e quelle per le
quali ha ricevuto ACK, se i dati sono NACK il mittente
capisce che i dati non sono arrivati e li rispedisce. Ogni
segmento di TCP ha 20 byte di overhead (controllo) nellintestazione (header), mentre un
segmento di tipo UDP ne ha solo 8. Controlli extra includono:
Header lenght (4 bit): detto anche data offset, indica la lunghezza dellheader di un
segmento TCP.
Control bits (6 bit): include codici di bit e flags che indicano lo scopo e la funzione del
segmento TCP.
Window size (6 bit): indica il numero dei segmenti che possono essere accettati in un
solo istante.
Checksum (16 bit): usato per error checking dellheader e del data che compongono il
segmento.
12
Connectionless: non stabilisce una connessione tra gli host prima che avvenga la
trasmissione.
Unreliable delivery: UDP non assicura laffidabilit della comunicazione, non esistono
processi per ritrasmettere i dati persi o corrotti.
No Flow Control: UDP non pu controllare e regolare lammontare dei dati che si
scambiano gli host durante la trasmissione, quindi pu accadere che il dispositivo
ricevente sia sovraccarico di dati, in questo caso, se il destinatario troppo carico,
elimina i segmenti sino a che non sar in grado di riceverli.
Role of UDP: ruolo dellUDP: anche se UDP non ha la reliability e il flow control,
la sua semplicit lo rende perfetto per quelle applicazioni che possono tollerare
una piccola percentuale di perdita dei dati trasmessi. I segmenti della
comunicazione in UDP si chiamano DATAGRAM e sono spediti in maniera beseffort dal protocollo di transport layer. DNS, lo streaming video e VoIP usano
UDP. Uno dei pi importanti requisiti del video e della voce in rete il fluire
veloce dei dati, le applicazioni per video e voce possono tollerare una piccola
perdita di dati senza che leffetto sia notabile. UDP un protocollo
STATELESS, ovvero n il client n il server tracciano lo stato delle sessioni di comunicazione.
Separating Multiple Communications: separazione delle comunicazioni
multiple: il transport layer deve poter separare e amministrare le comunicazioni
multiple per poterle gestire con i diversi requisiti necessari al trasporto. Es: un
utente sta simultaneamente chattando e ricevendo e spedendo email , guarda
pagine web ed effettua una telefonata di tipo VoIP, tutte queste applicazioni
ricevono e spediscono dati simultaneamente, nonostante ci siano diversi
requisiti di affidabilit. tollerabile un po di ritardo per il caricamento delle
email o delle pagine web, e perdere piccole porzioni di dati durante una
telefonata pu comportare la perdita di alcune parole, ed quindi possibile poter chiedere
allinterlocutore di ripetere. Questi inconvenienti sono considerati accettabili rispetto ai ritardi
che si verificherebbero se ogni volta i dati corrotti o persi venissero ritrasmessi. Nella figura si
vede come TCP e UDP amministrano diversamente le conversazioni simultanee variando i
requisiti, sia TCP che UDP tengono taccia delle varie applicazioni comunicanti ma la differenza
sta nei segmenti e datagrammi delle applicazioni, sia TCP che UDP hanno il campo PORT
NUMBER a identificarli.
12
Destination Port: il client immette un numero di porta destinataria nel segmento per
avvisare il server di destinazione circa il tipo di applicazione richiesta per
linterpretazione del messaggio. La porta 80 per HTTP o servizi web, quando il client
specifica la porta 80, il server capisce che sono richiesti servizi web. Un server pu
offrire svariati servizi simultanei sulla porta 80 e allo stesso tempo provvedere allFTP
sulla porta 21.
Source Port: il source port number generato casualmente dal dispositivo mittente,
permettendo cos di identificare una comunicazione tra due dispositivi e quindi di
intraprenderne altre allo stesso momento. Un dispositivo pu spedire svariate
richieste HTTP ad un web server allo stesso tempo perch sono tracciate grazie alle
source ports. Le porte di sorgente e destinazione sono immesse nel segmento, i
segmenti sono poi incapsulati in pacchetti IP.
IANA (Internet Assigned Numbers Authority)organizzazione che assegna il numero delle porte.
Diversi tipi di port numbers:
Registered Ports ( Numbers 1024 to 49151 ): questi numeri di porte sono assegnate ai
processi dellutente e alle sue applicazioni. Questi processi sono i programmi che
lutente ha scelto di installare. Queste porte sono scelte dinamicamente dal client.
12
Dynamic or Private Ports ( Numbers 49152 to 65535 ): anche dette ephemeral ports
(porte passeggere), assegnate dinamicamente alle applicazioni del client quando il
client inizia a connettersi con un servizio. La dynamic port, identifica lapplicazione
del client durante la comunicazione dato che il client usa le well-known port per
identificare e connettersi al server per il servizio richiesto. Non comune che un host
usi una porta dinamica o una porta privata (solo alcuni programmi peer-to-peer le
usano).
Using both TCP and UDP: usare sia TCP che UDP: alcune applicazioni usano sia TCP che UDP,
ad es: il pi basso controllo di UDP abilita il DNS a servire svariate richieste client in maniera
molto veloce, e a volte spedire le richieste richiede laffidabilit di TCP. In casi come questo si
usa la porta well-known 53, che implementa sia TCP che UDP.
A volte necessario sapere quali sono le connessioni TCP attive, aperte e
funzionanti in un host di rete. Il comando netstat verifica queste
connessioni, mostra il protocollo in uso, lindirizzo locale e il numero di
porta, lindirizzo destinatario e la sua porta e lo stato della connessione.
Netstat si usa per capire la performance di un host quando qualcosa
sembra non andare bene.
TCP and UDP 7.2: la chiave di distinzione tra TCP e UDP e laffidabilit.
TCP Server Processes: un solo server pu gestire svariate applicazioni simultaneamente,
questi processi attendono sino a che un client non inizia la comunicazione tramite una richiesta
di informazioni o altri servizi. Ogni processo del server configurato per usare una port
number, sia di default che scelta da amministratore. Un server non pu avere due tipologie di
servizi assegnati ad una sola porta. Le richieste socket che provengono da un client sono
accettate quando la porta aperta open, significa che il transport layer accetta e processa i
segmenti indirizzati a quella porta. Ci possono essere svariate porte aperte su un server, una
per ogni tipo di applicazione server. Un modo per aumentare la sicurezza su un server quello
di restringere gli accessi al server alle sole porte associate ai servizi e applicazioni di client
autorizzati.
12
12
Quando due host comunicano usando TCP stabilita una connessione prima che I dati vengano
scambiati. Quando la comunicazione completata la sessione viene chiusa e la connessione
terminata. Sono i meccanismi di connessione e sessione ad abilitare laffidabilit di TCP.
Gli host tengono traccia di ogni segmento allinterno della sessione e si scambiano informazioni
circa il data che stato ricevuto usando lintestazione TCP. TCP un protocollo di tipo fullduplex, ogni comunicazione ha due flussi in una sola direzione, dette sessioni. Gli host compino
la three-way handshake stretta di mano , unoperazione in pu step che permette di
stabilire la connessione. I bit di controllo dellintestazione TCP indicano il progresso e lo stato
della connessione. Three-way handshake:
Verifica che il dispositivo ricevente abbia un servizio attivo e che possa ricevere
richieste sulla port number necessaria al mittente.
Nelle connessioni TCP lhost client stabilisce la connessione con il server, tre passaggi:
Per capire il processo three-way handshake bisogna guardare ai vari valori che si scambiano gli
host. Allinterno dellheader di un segmento TCP ci sono sei campi a 1 bit che contengono
informazioni di controllo per amministrare TCP:
I campi ACK e SYN sono rilevanti per lanalisi del three-way handshake.
Step1: il client inizia una richiesta di tipo client-to-server con il
server: un client TCP inizia la sessione di three-way handshake
spedendo un segmento con controllo SYN (Synchronize sequence
number numero di sequenza sincronizzato)al server, che indica un
valore iniziale nel campo di numero di sequenza dellheader. Questo
valore iniziale per il numero di sequenza si chiama ISN (initial
sequence number), ed scelto casualmente e usato per iniziare a
tracciare il data dal client al server. LISN contenuto nellheader di
ogni segmento incrementato di uno per ogni byte spedito dal client
al server durante tutta la conversazione. Nella figura vediamo loutput
di un programma di tipo protocol analyzer per il SYN: possiamo
vedere la control flag del SYN settata e il relativo numero di sequenza
a 0. I valori veri sono quelli a 32 bit, la figura rappresenta i 4 byte in esadecimale.
12
trova nellheader e questo valore usato per monitorare il flusso dei dati tra server e client
della sessione.
Step 3: il client riconosce la sessione di tipo server-to-client.: infine, il
client TCP risponde con un segmento contenente un ACK che la
risposta al SYN spedito dal server. Non c user data nel segmento, il
valore presente nel campo di number acknowledgement contiene un
valore in pi nell ISN ricevuto dal server. Dopo che entrambe le sessioni
sono state stabilite tra client e server, tutti i segmenti scambiati in
questa comunicazione avranno un flag di ACK settato.
NOTA: pu essere aggiunta delle sicurezza alla rete dati negando la
possibilit di stabilire delle sessioni TCP, permettendo solamente sessioni
per specifici servizi, permettendo solamente il fluire del traffico come parte di sessioni
precedentemente stabilite.
anche possibile terminare una connessione con una three-way handshake, quando il client ha
terminato i dati manda un FIN al server; se anche il server non ha pi dati da spedire pu
rispondere sia con un FIN che con un ACK, combinando due passaggi in uno. Il client quindi
risponde con un ACK.
12
valore di partenza per i byte di questa sessione. Quando i dati sono trasmessi durante la
sessione, il numero della sequenza incrementato con il numero di byte che sono stati
trasmessi. Questa maniera di tracciare il segmento in base ai byte rende unico il pacchetto, i
pacchetti mancanti possono quindi essere identificati. I numeri di sequenza dei segmenti
indicano come riassemblare e riordinare i segmenti ricevuti, questo processo identificato
come reliability.
12
window size. Durante il ritardo che si crea nellattesa dellACK, il mittente non spedisce nessun
pacchetto, e nei momenti in cui la rete congestionata il ritardo pu aumentare, quindi il reale
tasso di trasmissione per la sessione diminuisce. Il rallentamento dei dati aiuta a mitigare i
conflitti sulla rete. TCP usa la window size per amministrare il tasso di trasmissione alla
massima velocit sostenibile dalla rete e dal ricevente mentre tenta di minimizzare la perdita di
dati e la necessit di ritrasmetterli.
DNS
DHCP
VoIP
Online Games
Alcune applicazioni come il gioco online e il VoIP possono tollerare una piccola perdita dei dati,
se queste applicazioni usassero TCP avrebbero enormi ritardi a causa delle tante ritrasmissioni.
Altre applicazioni, come il DNS, reinoltrano la richiesta se non ricevono risposta, quindi non
hanno necessit del TCP per avere una consegna garantita.
12
UDP Client Processes: processi del Client: come per TCP, anche in
UDP le comunicazioni client-server sono iniziate dallapplicazione del
client che richiede dei dati da un processo server. Il client UDP seleziona
una port number casuale dal range delle porte dinamiche disponibili e la
usa come porta sorgente della conversazione. La porta di destinazione
del processo server una porta di tipo well-known oppure una porta
registrata. Scegliere il numero di porta sorgente ina maniera casuale
incrementa la sicurezza, se esistesse uno schema presumibile si
potrebbero simulare accessi al client cercando di connettersi alle porte
presumibilmente aperte. Dopo che il client ha scelto le porte di sorgente
e destinazione, lo stesso paio di porte usato nellintestazione di tutti i
datagrammi della trasmissione. Per i dati che tornano al client dal server, il numero di porte di
sorgente e destinazione sono invertite.
TCP or UDP, that is the question: si sceglie TCP o UDP a seconda della
necessit dellapplicazione.
TCP: HTTP, FTP, SMTP, Telnet.
12
Molte applicazioni si gestiscono autonomamente la reliability, quindi non hanno bisogno dei
servizi di TCP e si affidano al pi snello UDP: DHCP, DNS (usa sia TCP che UDP), SNMP,TFTP.
12