Ideen zum Netzwerkstack: Alles TLS-verschlüsselt. Initalisierung der Verbindung: Client/Dämon -> Server +---+---+---+-------+-------+---------------------+---------------------+ | 1 | 2 | 3 | 4 | 5 - 6 | 7 | 8 | +---+---+---+-------+-------+---------------------+---------------------+ |'M'|'A'|'D'|'C'/'D'|Version|min. Protokollversion|max. Protokollversion| +---+---+---+-------+-------+---------------------+---------------------+ Server -> Client/Dämon +---+---+---+---+-------+----------------+---+ | 1 | 2 | 3 | 4 | 5 - 6 | 7 | 8 | +---+---+---+---+-------+----------------+---+ |'M'|'A'|'D'| 0 |Version|Protokollversion| 0 | +---+---+---+---+-------+----------------+---+ Datenpakete: +-------------------+----------+-------+-------------------+----- | 1 - 2 | 3 - 4 | 5 - 6 | 7 - 8 | 9 - ... +-------------------+----------+-------+-------------------+----- |Typ des Datenpakets|Request-ID| 0 |Größe der Nutzdaten|Nutzdaten +-------------------+----------+-------+-------------------+----- Jeder Client/Dämon und der Kern verwalten ihre eigenen Request-IDs, und insgesamt wird ein Request durch Quelle und ID identifiziert. Damit es nicht zu Konflikten zwischen vom Kern und von Clients/Dämonen generierten IDs kommt, ist bei Client/Dämon-IDs das letzte Bit gesetzt, bei Kern-IDs nicht. Mögliche Pakettypen: * Login-Anfrage -> Übertragung von Kerberos-Daten * Login-Antwort * Dämon-Discovery * Status-Anfrage (an Kern/Dämon) * Status-Antwort * Kommando (Shutdown, etc.) * Kommando-Antwort * Error * Verbindung trennen - Anfrage und Antwort (implementiert) + weitere Anfragen und Antworten...