Menu

Transport-Protokoll

Anonymous  czghans Lorenz

Das Transport-Protokoll wird zur Übertragung von Daten zwischen Client und Control-Server verwendet.
Dabei muss durch HTTP getunnelt werden, da die Übertragung sonst durch den Proxy blockiert wird.

Verbinden mit Server (Handshake)

Client

  • Programm-Kennung (WORLDHD, 7 Bytes)
  • Protokoll-Version (3 Bytes, signed)
  • Benutzer-ID (UTF)

|W :O :R :L :D :H :D |0:0:1| l : o : r : e : n : z |
|87:79:82:76:68:72:68|0:0:1|108:111:114:101:110:122|

Server

  • Programm-Kennung (WORLDHD, 7 Bytes)
  • Protokoll-Version (3 Bytes, signed)
  • Server-Name (UTF)

Client-Befehle

Byte Bedeutung
1 Datei hochladen
2 Datei löschen

Senden von Dateien

|1|Länge d. Pfades, 2 Byte|Pfad|Timestamp, 8 Byte|Länge d. Usernames, 2 Byte|Username|Content|Hash, 40 Byte|

Der Conent ist in Blocks unterteilt. Jeder Block besteht aus der Länge des Blocks und dem Inhalt. Der Inhalt muss genau solang sein wie am Anfang des Blockes angegeben. Den Schluss bildet ein Block der Länge 0.

Revision erstellen

  • verschlüsselter Revisions-String
  • Server sendet Bestätigung

Revision abfragen

  • Nummer der Revision
  • Server sendet verschlüsselten Revisionsstring zurück

Revisionsanzahl abfragen

  • Server sendet Anzahl der Revisionen als 4-Byte-Integer

Datei abfragen

  • ID der Datei wird gesendet
  • Content-Bytes werden zurück gesendet

Dateien downloaden

  • (coming soon)

es werden dann alle vorhandenen Pakete ermittelt und zurückgesendet.


MongoDB Logo MongoDB