Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#15

AW: Dauerhafte "Onlineüberprüfung" mit Serverseitigen Befehlen

  Alt 18. Mai 2013, 10:14
und es könnte einzig das Problem auftreten, dass Server oder Client abschmieren.
Oder ein Wackelkontakt, oder Kabel wird rausgezogen, oder ein falsch konfigurierter Switch, oder überlastete Switches, oder WLAN, oder Internet, oder die Putzfrau, oder, oder, oder.

Bei TCP ist es nicht so, das Du Pech hast, wenn etwas nicht läuft, sondern Glück hast, das etwas läuft. Du musst hier wirklich Hosenträger, Gürtel und Antackern-An-Den-Bierbauch implementieren. Und zwar im Protokoll.

Also:
1. Heartbeats wie beschrieben.
2. Pack dein Telegramm in einen Frame mit Längenangabe: <STX><Len><Data><ETX> (vielleicht sogar eine Prüfsumme). Begrenze 'Len', denn auch hier kann Müll stehen, und Du willst ja nicht 300Gig an Daten lesen...
3. Jedes Telegramm wird per ACK/NAK beantwortet. Ich hatte hier mal ein Protokoll mit Checksum, was bei TCP eigentlich überflüssig ist, aber trotzdem bei einem Kunden in Indien diverse NAKs Aufgrund fehlerhafter Prüfsummen.
4. Jedes Telegramm erhält zudem eine eindeutige ID (fortlaufende Nummer reicht)

Wenn hier irgendetwas schief läuft (Heartbeat bleibt aus, Antwort kommt nicht, Länge zu groß) wird die Verbindung gnadenlos gekappt.

Mach Dir lieber mehr Gedanken über ein robustes und idiotensicheres Protokoll. Wenn Du dich darauf verlassen kannst, dann macht TCP sogar richtig Spaß.

Gibts da eigentlich nix Fertiges?
  Mit Zitat antworten Zitat