Risposte:
TCP è supportato da acks e tentativi per assicurarsi che i dati arrivino dove stanno andando. UDP è senza connessione e "spara e dimentica". UDP viene utilizzato principalmente per applicazioni di tipo streaming, in cui se si perdono alcuni dati non è necessario provare a inviarli di nuovo.
Quale usi dipende dall'applicazione. Ad esempio, un server Web utilizza TCP.
Puoi trovare un buon riassunto qui:
Qual è la differenza tra i protocolli Internet UDP e TCP?
Sia TCP che UDP funzionano sul modello TCP / IP del livello di trasporto, ma hanno un utilizzo molto diverso.
Le differenze più importanti sono:
Struttura del telaio
Quando i dati vengono inviati attraverso la rete, devono essere incapsulati nei cosiddetti "frame". Esistono vari metodi di incapsulamento in base al protocollo e alla topologia utilizzati. Le seguenti immagini mostrano come differiscono le strutture dei frame TCP e UDP.
Questa è la struttura del frame TCP:
Questa è la struttura del frame UDP, molto più semplice:
I protocolli tipici che utilizzano TCP sono HTTP, FTP e SMTP. Esempi di protocolli che utilizzano UDP sono DNS e DHCP.
E la spiegazione del livello CEO:
UDP è quando si lancia la carta nella direzione generale del cestino.
TCP è quando manca, si lanciano ripetutamente copie esatte della stessa carta fino a quando non cade nel cestino. Ci sarebbero sprechi di carta, anche i pacchetti TCP rinviati causerebbero uno spreco di risorse di rete o di sistema.
TCP e UDP sono entrambi protocolli eseguiti su IP. TCP ha garantito la consegna e UDP no. Selezionare uno o l'altro per il port forwarding a seconda del servizio che si sta tentando di inoltrare. HTTP, ad esempio, è TCP. Se non sai quale protocollo è il servizio che stai tentando di inoltrare, è quasi sicuramente TCP.
Per rispondere ad altra parte della tua domanda, devi inoltrare ciò che la tua applicazione utilizza. Per inoltrare il traffico HTTP, selezionare TCP. Per inoltrare il traffico TFTP, selezionare UDP. I programmi p2p usano principalmente sia tcp che udp, quindi inoltrali entrambi.
Tutto dipende dal protocollo e dal programma in uso.
Oltre alle differenze menzionate finora, TCP fornisce anche
controllo del flusso. Utilizzando un meccanismo a finestra, il destinatario limita il numero di ottetti (byte) che desidera ricevere dal mittente prima che il mittente debba attendere l'autorizzazione per inviare più dati. La dimensione della finestra può essere modificata dal destinatario mentre la conversazione procede. Ciò consente a un destinatario di "limitare" la velocità dei dati provenienti da un mittente: UDP non lo consente e tutto ciò che un destinatario può fare è gettare via i dati che non può bufferizzare o elaborare all'arrivo.
alcune strutture più tecniche come il riconoscimento non contiguo (utilizza i riconoscimenti selettivi per consentire al mittente di ritrasmettere solo un frame mancante anziché il frame mancante e quelli successivi che il destinatario ha già ma che non è stato in grado di riconoscere nel solito modo), gestione della congestione e ritrasmissione adattiva (regolazione del timer che decide quanto tempo deve inviare nuovamente un frame trasmesso quando non viene ricevuto un riconoscimento). Questi non sono rilevanti per UDP ma aiutano TCP a fornire servizi extra su UDP senza aumentare notevolmente il carico di rete per lo stesso volume di payload.
TCP si impegna a garantire che i dati siano stati inviati al destinatario; UDP no.
Non importa tutte le risposte che spiegano l'una contro l'altra. Ai fini della configurazione di un port-forward, le regole sono piuttosto semplici: devi scegliere TCP, a meno che i documenti per il protocollo / l'applicazione che stai usando dicano di usare UDP. Di solito quelli che usano UDP sono legati allo streaming, o cose molto semplici che favoriscono protocolli leggeri / velocità rispetto all'affidabilità (in particolare DNS e NTP). Nota che ci sono altri protocolli oltre a TCP e UDP: ICMP, protocolli di tunneling, ecc.
Più un protocollo è noto, più router sul percorso interviene con il protocollo. Invia pacchetti tcp e c'è una grande probabilità che i pacchetti ricevuti siano fortemente alterati. UDP di solito non è così mutilato, e gli altri 254 protocolli paylod IP sono di solito completamente intatti.
User Datagram Protocol (UDP)
Fa parte dei protocolli di base di Internet Protocol Suite. I programmi su computer in rete possono inviare brevi messaggi a volte chiamati come datagrammi. UDP non garantisce alcuna affidabilità (capita che il datagramma possa arrivare fuori servizio, duplicato o mancante senza preavviso). Il fatto che non venga verificato se tutti i pacchetti vengono effettivamente consegnati, UDP si rivela più veloce ed efficiente, per le applicazioni che non richiedono la consegna garantita. UDP trova i suoi usi in tali situazioni:
Applicazioni sensibili al tempo. I problemi dovuti a pacchetti ritardati vengono evitati
È anche utile per i server che rispondono a piccole query da un numero enorme di client. UDP supporta la trasmissione di pacchetti (trasmette a tutti sulla rete locale) e il multicast (trasmette a tutti gli abbonati).
TCP (Transmission Control Protocol)
Viene spesso indicato come TCP / IP a causa dell'importanza di questo protocollo in Internet Protocol Suite. TCP opera a un livello superiore, riguardando solo i due sistemi finali (ad esempio tra browser Web e server Web). TCP fornisce una consegna affidabile e sequenziale di un flusso di dati da un programma su un computer a un altro programma su un altro computer. Gli usi comuni del TCP raggruppano il supporto e-mail e il trasferimento di file e le applicazioni Web. Tra le sue attività di gestione, TCP controlla la dimensione dei messaggi, la velocità con cui vengono scambiati i messaggi e la congestione del traffico di rete. Per quanto riguarda l'IP, gestisce le trasmissioni di livello inferiore da un computer all'altro come un messaggio trasferito su Internet.
Bene, entrambi sono protocolli di rete basati su qualcosa chiamato Internet Protocol o IP. Il protocollo Internet è il protocollo principale di Internet ed è, ad esempio, ciò che ci consente di navigare sul Web. Ecco perché vedrai spesso questi protocolli scritti come TCP / IP o UDP / IP. In realtà sono protocolli fondamentali di Internet.
In entrambi i casi i tuoi dati sono suddivisi in blocchi chiamati pacchetti. TCP garantisce che questi pacchetti arrivino a destinazione e nell'ordine corretto e senza errori.
UDP d'altra parte non garantirà nemmeno l'arrivo di un pacchetto di dati. Garantirà solo che se arriva sarà senza errori.
In genere, altri protocolli verranno eseguiti su TCP e UDP e sono noti come protocolli applicativi perché operano all'interno di un'applicazione e non all'interno del sistema operativo. La tua navigazione web utilizza il protocollo HTTP che utilizzerà il protocollo TCP.
Le ricerche dei nomi di dominio o le query DNS spesso usano UDP ma possono anche usare TCP. Numerosi servizi di streaming utilizzano UDP sotto altri protocolli applicativi.
Spero che risponda alla tua domanda in un inglese più semplice.