Il TCP è ancora considerato overhead significativo rispetto a UDP? [chiuso]

3

Sto lavorando a un'applicazione distribuita per un corso di specializzazione che sto prendendo. C'è stata molta discussione sull'implementazione di un modo per mantenere gli stati di salute della connessione peer. Pensa Gossip . Uno dei temi principali di questo progetto è stato il modo in cui dovremmo fare affidamento sulla comunicazione UDP per superare l'utilizzo "eccessivo" della larghezza di banda del TCP (per mantenere questi elenchi dello stato della connessione tra pari).

Non so se sono d'accordo con questa posizione. Per me, il vantaggio principale del TCP non è l'affidabilità della connessione, ma il controllo della congestione che offre. Sembra più probabile che le connessioni TCP tra host siano effettivamente più leggere di UDP perché ottieni affidabilità, controllo della congestione e notifiche di errori di connessione incorporate.

Uno scenario potenziale che potrebbe fare un uso adeguato dei pacchetti UDP è un meccanismo di backup per rilevare errori di collegamento (che è quello che ho iniziato a implementare, sebbene non sia positivo, questo è l'approccio giusto). L'idea è che la nostra connessione primaria ai peer è tramite un socket TCP, con il rilevamento degli errori integrato, ma se dovessimo perdere il messaggio di disconnessione da questo link, potremmo ricorrere a una lista di gossipy-peer che abbiamo ricevuto via UDP da altri host.

Sto guardando tutto questo in modo sbagliato? Tieni presente che questa domanda è specifica per gestire le connessioni peer e gli errori in un'applicazione distribuita, su più nodi.

    
posta ctote 30.09.2015 - 22:41
fonte

1 risposta

3

C'era una volta, una grande guerra combattuta tra due potenti eserciti, i CISCites e i RISCites. Gli uomini di RISC credevano che le loro forze fossero più potenti, perché i loro set di istruzioni erano più semplici. I CISC che trasportavano, hanno detto, dovevano avere un pesante strato di traduzione tra il set di istruzioni e l'esecuzione effettiva, in cui le istruzioni venivano ridotte dal modulo CISC ad un modulo RISC molto più semplice comunque, quindi basta andare con RISC per iniziare eliminerebbe questo sovraccarico e risulterebbe in un sistema molto più performante.

I CISCites hanno replicato che il loro sistema era più semplice da usare , perché le loro istruzioni erano semanticamente più potenti.

Entrambe queste affermazioni erano oggettivamente vere. Ma alla fine, accadde qualcosa di interessante: il mondo continuò a girare, e così fece la Legge di Moore. Il costo dell'overhead di traduzione CISC era un costo fisso, che diventava sempre più piccolo a ogni iterazione di hardware più veloce. Nel frattempo, RISC non è diventato più facile da usare. Oggi la CISC ha praticamente conquistato il mondo.

Un uomo saggio dovrebbe essere in grado di vedere come si presenta facilmente un parallelo con la situazione UDP / TCP ...

    
risposta data 30.09.2015 - 22:53
fonte