Grundüberlegungen bei Datensynchronisation (Client-Server)



  • Hallo zusammen

    Ich habe das Ziel einen Windowsdienst mit C++ zu schreiben, der Daten vom PC mit der Dropbox synchronisiert. Dazu gibt es ein API. Meine Frage ist aber letztlich unabhängig von diesem Dienst. Wesentlich ist, dass man über einen Secure-HTTP-Request einen Token abrufen kann und anschliessend die Daten, soweit ich weis ebenfalls über das Secure-HTTP-Protokoll synchronisiert.

    Meine Frage diesbezüglich ist nun, was man bei einem solchen Vorhaben für Überlegungen anstellen muss (von der Sicherheit bis zu einer synchronisierten Datenbübertragung). Was kommen da beispielsweise für Algorithmen zum Einsatz, wie kann ich gewährleisten, dass auch grosse Daten fehlerfrei übertragen werden usw.
    Ich denke, da muss ein grösserer Aufwand dahinter stecken als einfach load buffer und send buffer.
    Ich hoffe ihr könnt mich beraten.

    LG Samuel



  • TCP gewährleistet das fehlerfreie Übertragen, wenn dir das nicht sicher genug ist schick halt noch einen MD5/CRC32 Hash mit.

    Zur Sicherheit: HTTPS ist schon einigermaßen sicher, ansonsten bieten sich asymmetrische Verfahren an.

    Alles in allem sollte das eigentlich gar nicht soo kompliziert sein.



  • Ich hab schon genügend Downloads gehabt, die fehlerhaft waren. Eine zusätzliche Prüfsumme, so wie es bei Images üblich ist, wäre also nicht verkehrt. In dem Zusammenhang wäre es vielleicht auch sinnvoll große Dateien in Teilen zu speichern. Sinnvollerweise mit jeweils eigener Prüfsumme. Bittorrent arbeitet auch so und damit hab ich immer zuverlässige Downloads gehabt. Selbst wenn der Download ständig unterbrochen wurde, weil der Rechner nur für kurze Zeit am Tag lief.



  • Nick Unbekannt schrieb:

    Ich hab schon genügend Downloads gehabt, die fehlerhaft waren.

    In so einem Fall würde ich als allererstes den Treiber der Netzwerkkarte verdächtigen. Obwohl die TCP-Checksumme relativ schwach ist, sollten Fehler nur extrem selten auftreten.



  • cooky451 schrieb:

    Zur Sicherheit: HTTPS ist schon einigermaßen sicher, ansonsten bieten sich asymmetrische Verfahren an.

    HTTPS (SSL/TLS) verwendet asymmetrischen Verfahren. Natürlich nur beim Handshake, der Stream wird dann mit normalen symmetrischen Block-Ciphern verschlüsselt. Was auch das einzig praktikable ist.

    Wenn man sich Sorgen um die Sicherheit macht, und sich mit dem Thema nicht wirklich gut auskennt, sollte man IMO tunlichst vermeiden etwas eigenes zu stricken. Sondern eine fertige SSL/TLS Implementierung verwenden.


Anmelden zum Antworten