TCP-UDP


Il protocollo TCP (Transmission Control Protocol) è un protocollo connection-oriented che opera al livello trasporto della pila OSI.  TCP fornisce un servizio full-duplex con conferma e controllo di flusso, UDP un servizio non connesso.  E' stato introdotto per la prima volta nel 1974.

TCP  viene utilizzato da applicativi che richiedono una trasmissione affidabile, cioè con garanzia di consegna dei dati. Esso stabilisce un canale virtuale bidirezionale fra i due host che creando su ciascun host due connessioni, una in ricezione e una in trasmissione, ciascuna identificata da un numero, il Port Number. Gli applicativi server comunemente usati in rete hanno un port number assegnato ufficialmente da IANA (Internet Assigned Numbers Authority). Per es. HTTP 80, TELNET 23, FTP 21.

Il pacchetto TCP viene chiamato segmento. L'header ha lunghezza variabile, multipla di 32 bit, e contiene numerosi campi, di cui i più importanti sono:

 

Ad ogni segmento viene assegnato un numero di sequenza. Per ogni segmento trasmesso il ricevitore deve deve inviare un messaggio di ACK entro uno specifico timeout. Se l’ACK non viene ricevuto il segmento viene ritrasmesso.

TCP tratta un segmento come una sequenza di byte senza delimitatori di record o di campi. Una comunicazione di questo tipo si dice byte-stream.

L'operazione di connessione viene effettuata tramite uno scambio di messaggi il cui scopo è quello di impostare i parametri della comunicazione. La tecnica usata è nota come handshake a tre vie (three-way handshake):

 



La terminazione di una connessione avviene attraverso  i seguenti passi

 

UDP

Il protocollo UDP fornisce un servizio connectionless: non garantisce né l’arrivo dei pacchetti a destinazione, né la ritrasmissione in caso di perdita d’informazione, né la corretta sequenza. I dati vengono trasmessi in pacchetti chiamati datagram di dimensioni prestabilite

UDP viene utilizzato da applicazioni che non richiedono acknowledgment e che trasmettono pacchetti di piccole dimensioni. Esempi di protocolli che utilizzano UDP sono DNS (Domain Name Service), TFTP (Trivial File Transfer Protocol) e SNMP (Simple Network Management Protocol).