sviluppo-web-qa.it

Qual è la differenza tra UDP e TCP?

Il mio router ha due protocolli (e un'opzione "entrambi") che posso selezionare durante l'impostazione del port forwarding: UDP e TCP. Qual è la differenza tra questi due protocolli e quando sceglieresti uno sopra l'altro nel port forwarding?

47
Guy

TCP è supportato da acks e tentativi per assicurarsi che i tuoi 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.

52
user640

Puoi trovare un buon riassunto qui:

Qual è la differenza tra UDP e TCP protocolli Internet?

Entrambi TCP e UDP funzionano sul modello TCP/IP del livello di trasporto, ma hanno un utilizzo molto diverso.

Le differenze più importanti sono:

  • Affidabilità :
    TCP: orientato alla connessione
    UDP: senza connessione
  • ordinato :
    TCP: l'ordine di ricezione del messaggio è garantito
    UDP: l'ordine non è garantito
  • Peso protocollo :
    TCP: heavyweight, a causa del sovraccarico di connessione/ordinazione
    UDP: leggero, con pochissime spese generali
  • Pacchetti :
    TCP: streaming, i dati vengono letti come "stream", con nulla che distingue dove finisce un pacchetto e ne inizia un altro. Potrebbero esserci più pacchetti per chiamata in lettura.
    UDP: datagrammi, un pacchetto per una chiamata in lettura.

Struttura della cornice

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 immagini seguenti mostrano come TCP e le strutture dei frame UDP differiscono.

Questa è la struttura TCP:

TCP frame

Questa è la struttura del frame UDP, molto più semplice:

UDP frame

Protocolli tipici che utilizzano TCP sono HTTP, FTP e SMTP. Esempi di protocolli che utilizzano UDP sono DNS e DHCP.

74
splattne

E la spiegazione del livello CEO:

UDP è quando si getta 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 sarebbe uno spreco di carta, persino risentito TCP comporteranno uno spreco di risorse di rete o di sistema.

45
pgs

TCP e UDP sono entrambi protocolli eseguiti su IP. TCP ha la consegna garantita 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 si " Non so quale protocollo sia il servizio che stai tentando di inoltrare, è quasi sicuramente TCP.

7
Brian

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.

3
hayalci

Oltre alle differenze menzionate finora TCP

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 ricevitore 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 per fornire servizi extra su UDP senza aumentare notevolmente il carico di rete per lo stesso volume di payload.

2
mas

TCP si impegna a garantire che i dati siano stati inviati al destinatario; UDP no.

2
J. Polfer

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 anche UDP - ICMP, protocolli di tunneling, ecc.

1
Lee B

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.

1
user60557

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, essere duplicato o mancare senza alcun 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 terminali (ad esempio tra browser Web e server Web). TCP fornisce recapito 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 di 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.

0
surendran

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 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.

0
Matt