TCP Verbindung überprüfen OHNE daten zu verschicken

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo ich wollte mal fragen ob jemand eine Möglichkeit kennt Serverseitig zu prüfen ob eine TCP Verbindung noch funktionstüchtig ist ohne daten zu schicken.
 
T

tuxedo

Gast
Was willst du damit bezwecken? Viele Programme senden diesbezüglich ein "KeepAlive". Damit weiß man dann ob die Verbindung noch da ist.

- Alex
 
G

Guest

Gast
ich bin leider gezwungen tcp zu verwenden um den Overhead zu minimieren will ich möglichst selten eine neue Verbindung aufbauen um aber mitzukriegen wann mir ein Client weggebrochen ist muss ich die Verbindung überprüfen. Wenn ich aber den Overhead minimieren möchte dann würde ich spätestens bei im Durchschnitt 5 KeepAlive Paketen pro Verbindung besser fahren wenn ich die Verbindung beende und neu aufbaue. Deswegen suche ich nach Alternativen aber ein Zeitstempel gefällt mir auch net wirklich.

Dariusum
 
T

tuxedo

Gast
Wie schnell musst du denn auf einen weggefallenen Client reagieren können?
 
G

Guest

Gast
nicht wirklich schnell ist halt um zum einen den Speicherbedarf klein zu halten und zum anderen habe ich einen Aufwand weil ich ja bei allen Sockets schauen muss ob was geschickt wurde was bei vielen "toten" Verbindungen viel Overhead bedeutet.
 
T

tuxedo

Gast
wie schnell ist "nicht wirklich schnell" ?
Innerhalb einer Minute? Innerhalb 5min? Innerhalb 30min?

Ein Keep-Alive-Paket muss ja nicht groß sein. Theoretisch reicht ja ein einziges Byte.

Wenn du dann 6mal in der Minute testest (alle 10 Sek.) wären das dann 0,1Byte/Sek .. Von Overhead kann man da nicht wirklich sprechen.

Und wenn eine Verbindung wirklich tot ist, dann gibts auch keinen Overhead. Weil dann gibts nur eine IOException.
Selbst bei 10.000 Clients sollten die 0,1byte/sek kein Thema sein (wären am Server immer noch unter 1kbyte/sek).

- Alex
 
G

Guest

Gast
praktisch baut TCP aber auf IP Pakete auf und die haben eine deutlich höhree Minimalgröße und eine neue Verbindung aufzubauen ist auch net so teuer.
 
T

tuxedo

Gast
?? Du willst mir erzählen dass ein komplett neuer Socket-Verbindungsaufbau weniger bits in anspruch nimmt als ein einziges TCP/IP Paket mit 1Byte Nutzdaten?

Kann ich nicht ganz glauben. Was für eine "krasse" Anwendung hast du denn die sooooo sparsam arbeiten muss dass 0,1Byte/sek TCP-Nutzdaten zu viel Overhead verbraucht? Selbst zu analogmodem-Zeiten mit 14.00 Baud (bei mir ist das über 10 Jahre her), wären 0,1Byte/s TCP/IP Nutzdaten noch okay gewesen...

- Alex
 
G

Guest

Gast
Wenn mich nicht alles täuscht ist die minimallänge 64 Byte was bei einmal pro minute checken 3,75 kByte Daten pro Stunde macht da ich damit rechnen muss da eine Verbindung potentiell mehrere Stunden brachliegen kann um dann wiederbenutzt zu werden und ich Handys als Clients habe führt das bei ihnen zu unnötigen mehrkosten. Eine Alternative wäre halt ein Timer und eine Verbindung nach 10 min oder 1 h brachliegen kicken hätte aber lieber ne elegantere Alternative. Würde mal schätzen das die Pakete die bei einem Verbindungsaufbau verschickt werden auch net größer als 64 Byte sind da passen ja schließlich 44byte Nutzdaten rein und da werden auch nur max 3 Pakete versendet
 
G

Guest

Gast
Wenn mich nicht alles täuscht ist die minimallänge 64 Byte was bei einmal pro minute checken 3,75 kByte Daten pro Stunde macht da ich damit rechnen muss da eine Verbindung potentiell mehrere Stunden brachliegen kann um dann wiederbenutzt zu werden und ich Handys als Clients habe führt das bei ihnen zu unnötigen mehrkosten. Eine Alternative wäre halt ein Timer und eine Verbindung nach 10 min oder 1 h brachliegen kicken hätte aber lieber ne elegantere Alternative. Würde mal schätzen das die Pakete die bei einem Verbindungsaufbau verschickt werden auch net größer als 64 Byte sind da passen ja schließlich 44byte Nutzdaten rein und da werden auch nur max 3 Pakete versendet
 
T

tuxedo

Gast
Die Provider rechnen meist in 100kbyte-Schritten ab. Da wären 3,75kbyte wohl nicht der rede Wert...

Die Sache mit den Handy's als Client hättest du ja auch gleiuch zu Anfang schreiben können ;-)

Wenn die Cleints mehrere Stunden vor sich hinvegetieren können, dann würde ich auch nicht im Minutenrhytmus prüfen ob der Client noch da ist. Bei Mehreren Stunden sind 15min oder so wohl eher angebracht. Und das würde nach deiner Rechnung nur noch 0,25kbyte/Stunde betragen. Also ein wirklich lächerlicher Wert.

Die Idee mit dem Timer ist keine so schlechter Alternative. Für den Client kannst dud as ja transparent machen: Der kann sich, wenn er ne Stunde inaktiv war und die Verbindung Serverseitig getrennt wurde, stillschweigend wieder einloggen. Geht ja recht fix.
Du könntest auch den Testrhythmus sukzessive verlängern... Zuerst alle 1min, dann nach 15min alle 15min und nach einer Stunde nur noch einmal pro Stunde.

Alles in allem würde ich diese Zwei Dinge kombinieren:

- KeepAlive alle X Minuten (15 wären vermutlich ein guter Anfang wenn man bedenkt dass die Verbindung mehrere Stunden brach liegen darf/kann)
- nach 2h den Server die Verbindung kappen lassen und dem Client die Möglichkeit geben sich sofort und ohne Stress für den Anwender erneut einzuwählen.

Gruß Alex
 

Dariusum

Mitglied
also komm ich wohl net herum, schade finde es immer etwas unelegant mit timern und keepalives aver danke für die hilfe
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O TCP Socket-Verbindung überprüfen Netzwerkprogrammierung 4
X Kann ich einen Client/Server verbindung hinkriegen die mir alle paar Sekunden die aktuellen Daten per Realtime zuschickt ? Netzwerkprogrammierung 9
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
D Verbindung zu Geräten mit gleicher IP aber in unterschiedlichen VLans aufbauen Netzwerkprogrammierung 2
M Socket Socket lehnt Verbindung ab Netzwerkprogrammierung 3
IAmFloppy Socket Nachstellen der Verbindung Netzwerkprogrammierung 6
M Socket Verbindung Matlab(Server) Java(Client) Netzwerkprogrammierung 1
M Socket peer to peer Verbindung zwischen Java und Matlab Netzwerkprogrammierung 0
S Bluetooth Verbindung zwischen Android app und Raspberry Pi 3 Netzwerkprogrammierung 1
S Peer2Peer Verbindung trotz NAT Netzwerkprogrammierung 2
T VPN-Verbindung über Java Netzwerkprogrammierung 4
Aruetiise Socket Verbindung Überprüfen Netzwerkprogrammierung 18
F Socket Verbindung mit Verschlüsselung und Authentifierzung Netzwerkprogrammierung 1
F Probleme mit Connection Reset bei Telnet Verbindung Netzwerkprogrammierung 1
U Client Soap Verbindung wieder schließen Netzwerkprogrammierung 0
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
P Socket Socket-Verbindung Input sehr langsam Netzwerkprogrammierung 1
S FTP Verbindung zu einem BS2000 Großrechner mit Commons Net Netzwerkprogrammierung 0
F Einfache Socket Verbindung Netzwerkprogrammierung 2
F Verbindung zwischen Server und handy Netzwerkprogrammierung 1
M TCP Verbindung Byte-weise lesen? Netzwerkprogrammierung 5
Shams Problem mit Eventbus in Verbindung mit Server Netzwerkprogrammierung 0
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
F TCP Client, verbindung aufrecht halten Netzwerkprogrammierung 0
I Swing hängt sich auf bei Verbindung zum Server Netzwerkprogrammierung 3
P RMI Hohe CPU Last RMI Verbindung Netzwerkprogrammierung 4
J Pc - Handy Verbindung? Netzwerkprogrammierung 3
M Socket 2x Proxy multithread-server mit Cross Verbindung Netzwerkprogrammierung 0
T Verbindung zum Server fehlgeschlagen Netzwerkprogrammierung 7
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
B Nach Verbindung gleich ObjectStream empfangen Netzwerkprogrammierung 1
R Dauerhaft offene Socket-Verbindung? Netzwerkprogrammierung 3
P server - client verbindung (anfänger) Netzwerkprogrammierung 8
G Socket Socket verbindung für Chat System Netzwerkprogrammierung 3
S Socket Socket Verbindung wiederherstellen Netzwerkprogrammierung 16
T Socket Bidirektionale Verbindung mit Sockets Netzwerkprogrammierung 8
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
N Lan-Verbindung erstellen Netzwerkprogrammierung 2
H Socket Java Chat - Verbindung zum Server fehlgeschlagen. Netzwerkprogrammierung 5
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
D TCP Verbindung (Java Client und Visual Basic Server) Netzwerkprogrammierung 12
E Verbindung zu SQL-Datenbank auf einem Server Netzwerkprogrammierung 13
S Socket Applet Client bekommt keine GLOBALE Verbindung zum Server Netzwerkprogrammierung 25
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
V NullPointerException bei Verbindung zu RabbitMQ-Server Netzwerkprogrammierung 4
B FTP commons net verschlüsselte verbindung Netzwerkprogrammierung 11
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
T Socket Client versucht zyklische Verbindung zum Server Netzwerkprogrammierung 4
X Über eine Socket-Verbindung Arrays übergeben Netzwerkprogrammierung 5
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
A Socket Socket Verbindung unterbrochen --> keine Exception Netzwerkprogrammierung 7
S SVNKit - Verbindung zum Repository trennen? Netzwerkprogrammierung 2
P Socket neuer Client - neue(r) Socket/Verbindung geöffnet? Netzwerkprogrammierung 6
M Problem mit Socket-Verbindung Netzwerkprogrammierung 2
X SSH Verbindung zu Remote Datenbank Netzwerkprogrammierung 2
S TCP Verbindung zu Beamer Netzwerkprogrammierung 8
Y server client socket verbindung übers internet aufbauen Netzwerkprogrammierung 8
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
D Verbindung zw. zwei Rechnern funzt nicht Netzwerkprogrammierung 5
F Socket Socket Verbindung Netzwerkprogrammierung 10
E Server schließt einfach verbindung? Netzwerkprogrammierung 6
Shoox VPN-Verbindung für Datenbankzugriff Netzwerkprogrammierung 2
X Socket Handy/PC Verbindung unterscheiden Netzwerkprogrammierung 18
O Telnet verbindung Netzwerkprogrammierung 4
Dit_ UDP Verbindung durch Proxy Netzwerkprogrammierung 4
H Socket Client server,verbindung läst sich nicht abbauen&code optimierung Netzwerkprogrammierung 3
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
N Verbindung zu Fritzbox Socket/Telnet ??? Netzwerkprogrammierung 5
multiholle RMI Verbindung Linux <-> Windows Netzwerkprogrammierung 4
S netzwerkprotokoll auf basis einer tcp verbindung erstellen Netzwerkprogrammierung 9
S SSH Verbindung mit j2ssh Netzwerkprogrammierung 3
H Socket Mit Applet Verbindung zu eigener Website aufbauen Netzwerkprogrammierung 4
H Socket Socket verbindung mit einem TeamSpeak2 Server Netzwerkprogrammierung 5
H TCP verbindung hinter NAT Netzwerkprogrammierung 28
G TCP SSL Verbindung Netzwerkprogrammierung 3
P Java / My-Sql Verbindung herstellen Netzwerkprogrammierung 6
W Socket Shellscript über ssh Verbindung aufrufen Netzwerkprogrammierung 14
N Socket Verbindung wird immer verweigert Netzwerkprogrammierung 5
Dit_ UDP-Verbindung, DatagramPakete Netzwerkprogrammierung 3
S Socket verbindung trennen Netzwerkprogrammierung 3
D Verbindung zu einem Server - POST Netzwerkprogrammierung 2
musiKk SSL-Verbindung mit Client-Zertifikat (Private Key) scheitert Netzwerkprogrammierung 13
D Socketprogrammierung Verbindung C++=>Java Netzwerkprogrammierung 23
B Probleme mit FTP verbindung Netzwerkprogrammierung 22
T Mac Adresse über Socket Verbindung abfragen? Netzwerkprogrammierung 9
L SSL Verbindung aber Server wird erst im Programm festgelegt Netzwerkprogrammierung 4
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
M Verbindung über Proxy// Problem mit Outputstream bei URLConn Netzwerkprogrammierung 5
F Peer to Peer Verbindung zwischen mehreren Clients? Netzwerkprogrammierung 8
F applet verbindung zum server Netzwerkprogrammierung 6
T Verbindung über das Internet Netzwerkprogrammierung 2
G Verbindung zwischen PC und Handy Netzwerkprogrammierung 10
B Bibliothek, um Eckdaten zur Internet-Verbindung rauszufinden Netzwerkprogrammierung 2
C Verbindung zwischen 2 Computern herstellen Netzwerkprogrammierung 12
G USB-Verbindung herstellen Netzwerkprogrammierung 3
O SSH-Verbindung (trilead-ssh2-build212) Netzwerkprogrammierung 2
K Verbindung mit Unix Server aufnehmen Netzwerkprogrammierung 2
J close() Socket Verbindung nötig ? Netzwerkprogrammierung 3
U problem mit verbindung zu einem irc server Netzwerkprogrammierung 3

Ähnliche Java Themen


Oben