Eigenes kleines Protokoll schreiben ?

theborg

theborg

KBitdefender Programierer
Hi ich habe nen kleines Problem ich habe hier mehrere kleine Geräte die ich gerne mit irda vernetzen möchte nun brauche ich nen kleines Protokoll dafür die Daten Geschwindigkeit ist unwichtig was wichtig ist das die Daten Pakete so klein wie möglich sind und das auch nur das Gerät das Paket verarbeitet und Bestätigt welches es auch soll.

Paket inhalt:
- Sender ID 4bit (also max. 32 Geräte)
- Enfänger ID 4bit ( also max 32 Geräte)
- Datensatz 8bit (sollte reichen sind 256 Möglichkeiten)

Der Etfänger sollte zur Überprüfung dann das ganze zurückschicken
nur das Sender und Entfänger ID vertauscht ist wenn das ok ist geht der Enfänger ne runde in Lauschstellung und wenn nichts mehr kommt akzeptiert er es als Gültig.

Neste Idee wehre das der Sender 8bit(Enfänger id + Sender id) schickt und dann auf ne Antwort vom Entfänger wartet und dann erst ein 16bit Paket(Sender id +Entfänger id + Datensatz) sendet und danach auf bestetigung wartet.

Und noch eine Idee der Sender Schikt gleich die kompletten 16bit wartet auf ne bestetigung z.b. die kompletten 16bit zurück und sendet daraufin nen kleines Datenpaket ob gültig oder nicht.

Vieleicht hat ja einer ne Idee.

mfg tb
 
Wenn du wirklich sichergehen willst daß nix verloren geht mußt du die zweite Möglichkeit nehmen. Also der Sender muß nochmal an den Empfänger bestägigen daß die Bestätigung angekommen sind.

Dann hast du folgende Fehlerszenarien:
1. Sender sendet, Empfänger empfängt nix -> Sender kriegt auch keine Bestätigung und weiß: ok, Sense, war nix. Nochmal senden
2. Sender sendet, Empfänger empfängt, Empfänger bestätigt, Sender empfängt die Bestätigung nicht: gleiches Problem wie 1
3. Sender sendet, Empfänger empfängt, Empfänger bestätigt, Sender empfängt die Bestätigung, Sender bestätigt die Bestägigung, Empfänger empfängt die Bestätigung der Bestätigung nicht:
* fürn Sender ist alles glatt gegangen
* Empfänger wartet immernoch auf die Rückbestätigung, wenn die nach nem timeout nicht kommt weiß er: ok, irgendwas is mit dem Sender oder dem Netzwerk, er kann / muss die Daten nochmal anfordern

die vierte Möglichkeit ist dann wie 3, nur daß die Rückbestätigung ankommt und beide merken daß es geklappt hat.

Kannst dir einfach mal den Verbindungsaufbau bei TCP anschauen, das funktioniert so.
Wenn du nur einzelne Pakete verschicken willst ist das vielleicht eh zuviel Overhead, da kannst du dir dann was anderes überlegen.
 

Ähnliche Themen

Ubuntu X / dbus problem

IBM T22, Debian Etch 4, X-server start nach Neuinstall

Zurück
Oben