2012-04-20 8 views
7

(I vor gefragt habe zu suchen, aber ich konnte nur schnellste Java IPC-Techniken finden)Schnellste Möglichkeit, Pakete zwischen zwei verbundenen Computern zu senden?

Was in Java ist der schnellste Weg ein Paket zwischen zwei Computern in Java (verbunden durch ein Ethernet-Kabel), auf Windows senden und Linux (wenn die Antwort je Betriebssystem variiert)?

Ich habe vermutet, UDP wäre schneller als TCP (aufgrund der TCP-Drei-Wege-Handshake-Schema), aber gibt es andere Überlegungen, die gemacht werden müssen?

Sind wir auf Sockets beschränkt (Unix-spezifische Antwort?) Oder gibt es Alternativen? Mit welchen Technologien kann das UDP so schnell wie möglich gesendet/empfangen werden?

Gibt es auch besonders leistungsfähige Möglichkeiten, die von einem anderen Computer gesendeten Daten zu empfangen und zu lesen?

+4

Wenn Sie "nahe" wählen, haben Sie zumindest den Anstand, um zu erklären, warum. Diese Frage ist absolut gültig. – user997112

+1

Definieren Sie "Schnell". Sorgen Sie sich um Latenz oder Durchsatz? UDP ist in Ordnung, wenn ein gelegentlicher Datenverlust Ihnen nichts ausmacht. – user949300

+1

@ user949300 Latenz ist wichtiger – user997112

Antwort

2

Nun, es gibt nicht viel zwischen TCP/UDP, wenn Sie die Verbindungs-/Trennungslatenz ignorieren. Wenn Ihr Protokoll eine TCP-Verbindung aufrecht erhalten und unpassende Latenz-induzierende Optimierungen wie den Nagle-Algorithmus deaktivieren kann, sehe ich nicht, warum TCP als Lösung gestrichen werden sollte, obwohl es die leichte Komplikation gibt, ein Protokoll on-top zu erfordern um Nachrichten auszutauschen, die größer als ein Byte sind.

Die meisten Netzwerkraten- und Latenzzeiten sind normalerweise durch Einschränkungen in phy und route begrenzt. Wenn man sich ein Paket zwischen zwei Peers anschaut, spielt es keine Rolle, welches IP-Protokoll man seit den dubiosen Routern, c-limitierten Satellitenverbindungen, überlasteten Fasern, verrauschten und erneut gesendeten Mikrowellen-/Wifi/3G-Verbindungen und Müll verwendet. Meile Kupfer wird dich sowieso stopfen.

+1

Ich nehme an, die Deaktivierung des Nagle-Algorithmus würde das Kopieren und Bearbeiten einer TCP-Implementierung erfordern? – user997112

+0

@ user997112 - Nein, es ist eine Socket-Option - Sie können es ausschalten. –

+0

Danke Martin. Ich vermute, das ist nur in Unix konfigurierbar? – user997112

0

Die Antwort ist über courier pigeon. Andere Alternativen sind Sneakernet und Autonet. Ich bevorzuge Fahrradnetz.

Verwandte Themen