Hallo,
ich suche ein Übertragungsprotokoll (natürlich in Java implementiert), welches auf TCP und / oder UDP / IP basiert. Ich möchte kurze Nachrichten übertragen (bis zu 100Zeichen) aber dafür sehr häufig (1000 Stück pro Sekunde / Client). Es gibt Anwendungsfälle wo es wichtig ist, dass alle Nachrichten ankommen aber auch Anwendungsfälle, wo diese Nachrichten verloren gehen dürfen, aber nicht müssen .
Für den Anfang gibt es nur wenig Clients, aber die können auch mehr werden. Übertragen werden die meisten Daten vom Client an den Server und nur wenige zum Client. Verschlüsselung soll das Protokoll automatisch ermöglichen.
Ich habe mir bereits HTTP / HTTPs angeschaut. Aber dadurch, dass ich der Verbindungsaufbau "so lange" dauert, komme ich etwas in Bedrängnis bei 1000 Aufrufen / Sekunde / Client, da eine Abarbeitung auf meinem Testserver (Tomcat 7 Servlet, mit Datenhaltung nur im RAM, keine DB) ca. 50ms. dauert (grad bei https). Vielleicht liegt es aber auch an meinem Setup. Ich habe auch schon versucht diese Nachrichten zu bündeln und gleich 20 Stück per HTTPs GET übertragen. Aber das brachte nur minimale Verbesserung. Ich fand aber an diesem Protokoll gut, dass ich auch parallele Anfragen schicken konnte um vielleicht andere NachrichtenTypen zur gleichen Zeit zu senden. Vielleicht hat jemand von euch auch andere Erfahrung mit dem Protokoll gemacht. Ich sehe das größte Problem darin, dass die Verbindung scheinbar immer wieder neu aufgebaut wird. Kann mich aber auch täuschen.
Noch mal zusammengefasst: Verschlüsselte Datenübertragung (nicht grad die einfachste Verschlüsselung, aber Performance ist hier wichtiger als der beste Schutz), schneller Verbindungsaufbau, bidirektionale Verbindung, 100 Zeichen / Nachricht (ca. 780Kbit/s Nettodaten bei 1000 Nachrichten pro Sekunde), wenig Overhead.
Das Protokoll soll deshalb so "schnell" und "klein" sein, weil es auch über WLAN sicher funktionieren sollte.
Hat jemand Vorschläge dazu? Ich wollte mal in die Runde fragen, bevor ich selbst anfange was zu kreiren.
ich suche ein Übertragungsprotokoll (natürlich in Java implementiert), welches auf TCP und / oder UDP / IP basiert. Ich möchte kurze Nachrichten übertragen (bis zu 100Zeichen) aber dafür sehr häufig (1000 Stück pro Sekunde / Client). Es gibt Anwendungsfälle wo es wichtig ist, dass alle Nachrichten ankommen aber auch Anwendungsfälle, wo diese Nachrichten verloren gehen dürfen, aber nicht müssen .
Für den Anfang gibt es nur wenig Clients, aber die können auch mehr werden. Übertragen werden die meisten Daten vom Client an den Server und nur wenige zum Client. Verschlüsselung soll das Protokoll automatisch ermöglichen.
Ich habe mir bereits HTTP / HTTPs angeschaut. Aber dadurch, dass ich der Verbindungsaufbau "so lange" dauert, komme ich etwas in Bedrängnis bei 1000 Aufrufen / Sekunde / Client, da eine Abarbeitung auf meinem Testserver (Tomcat 7 Servlet, mit Datenhaltung nur im RAM, keine DB) ca. 50ms. dauert (grad bei https). Vielleicht liegt es aber auch an meinem Setup. Ich habe auch schon versucht diese Nachrichten zu bündeln und gleich 20 Stück per HTTPs GET übertragen. Aber das brachte nur minimale Verbesserung. Ich fand aber an diesem Protokoll gut, dass ich auch parallele Anfragen schicken konnte um vielleicht andere NachrichtenTypen zur gleichen Zeit zu senden. Vielleicht hat jemand von euch auch andere Erfahrung mit dem Protokoll gemacht. Ich sehe das größte Problem darin, dass die Verbindung scheinbar immer wieder neu aufgebaut wird. Kann mich aber auch täuschen.
Noch mal zusammengefasst: Verschlüsselte Datenübertragung (nicht grad die einfachste Verschlüsselung, aber Performance ist hier wichtiger als der beste Schutz), schneller Verbindungsaufbau, bidirektionale Verbindung, 100 Zeichen / Nachricht (ca. 780Kbit/s Nettodaten bei 1000 Nachrichten pro Sekunde), wenig Overhead.
Das Protokoll soll deshalb so "schnell" und "klein" sein, weil es auch über WLAN sicher funktionieren sollte.
Hat jemand Vorschläge dazu? Ich wollte mal in die Runde fragen, bevor ich selbst anfange was zu kreiren.
Zuletzt bearbeitet: