2012-04-20 6 views
7

(ho fatto una ricerca prima di chiedere, ma sono riuscito a trovare solo più veloci tecniche di Java IPC)Il modo più veloce per inviare pacchetti tra due computer collegati?

Qual è il modo più veloce in Java per inviare un pacchetto tra due computer in Java (collegati da un cavo ethernet), su Windows e Linux (se la risposta varia a seconda del sistema operativo)?

Ho indovinato che UDP sarebbe più veloce del TCP (a causa dello schema di handshake a tre vie del TCP), ma ci sono altre considerazioni da fare?

Ci siamo limitati a socket (risposta specifica Unix?) O ci sono alternative? Quali tecnologie possono essere utilizzate per inviare/ricevere l'UDP il più velocemente possibile?

Allo stesso modo, ci sono particolari modi ad alte prestazioni per ricevere e leggere i dati inviati da un altro computer?

+4

Se hai intenzione di votare "vicino", almeno avere la decenza di spiegare perché. Questa domanda è perfettamente valida. – user997112

+1

Definire "Veloce". Sei preoccupato per la latenza o il throughput? UDP va bene se non ti dispiace una perdita occasionale di dati. – user949300

+1

@ user949300 La latenza è più importante – user997112

risposta

2

Bene, non c'è molto tra TCP/UDP se si ignora la latenza di connessione/disconnessione. Se il tuo protocollo può mantenere attivo un conection TCP e disabilitare ottimizzazioni inappropriate, che inducono la latenza come l'algoritmo Nagle, non vedo perché TCP debba essere eliminato come soluzione, sebbene ci sia la leggera complicazione di richiedere un protocollo in cima per scambiare qualsiasi messaggio più grande di un byte.

La maggior parte delle prestazioni di rete e latenza sono in genere limitate dai limiti di phy e route. Guardando un pacchetto tra due peer, non importa molto quale protocollo IP usi dai roiosi router, collegamenti satellitari c-limitati, fibre congestionate, collegamenti a microonde/wifi/3G rumorosi e ritrasmessi da buste e ultima spazzatura- Il miglio rame ti riempirà comunque.

+1

Suppongo che disabilitare l'algoritmo di Nagle richieda la copia e la modifica di un'implementazione TCP? – user997112

+0

@ user997112 - no, è un'opzione presa - è possibile spegnerla. –

+0

Grazie Martin. Presumo che questo sia configurabile solo in Unix? – user997112

0

La risposta è tramite courier pigeon. Altre alternative includono sneakernet e autonet. Preferisco andare in bicicletta.

Problemi correlati