Protokoll für P2P-Wireless-Übertragung zwischen mehreren Geräten

Gast #825529
Lesenswert?

Hallo,

mit dem RFM12-Funkmodul von Pollin (433MHz Band) in Verbindung mit einem 
ATtiny84-AVR versuche ich momentan ein Netzwerk zwischen mehreren dieser 
Geräte herzustellen.

Die Hardware und die grundlegenden Routinen stehen bereits, nur muss ich 
mich jetzt an ein Protokoll für die Übertragung wagen.

Hat hier jemand Erfahrungen, Links, Ideen oder Vorschläge für 
Funkübertragung zwischen mehr als zwei Endgeräten?

Wie gesagt, es gibt keinen Server, das Protokoll muss quasi Peer-2-Peer 
fähig sein.

Ich hoffe ihr könnt mir helfen. ;-)

Gruß,
Paul
#825542
Lesenswert?

Geht es dabei um kleine Datenblöcke oder eher größere Datenmengen? Du 
könntest dir z.B. so eine art Mini-TCP/IP machen. Jeder "rechner" 
bekommt eine ID (=>IP). Dann einfach einen kleinen Header, der z.B. 
Quelle,Ziel,Länge,Checksumme enthält und dann einfach dahinter die 
Daten. Gibt zig Möglichkeiten. Du könntest auch NMEA nehmen oder so. 
NMEA hätte den vorteil dass sie in ASCII sind => ohne Umwandlung lesbar, 
dafür natürlich ein ziemlich großer Overhead.
Gast #825806
Lesenswert?

Hey,

danke für die Antwort. Bei der Anwendung handelt es sich um einen Chat, 
es werden also hauptsächliche kleine Blöcke Klartext übertragen.

Das mit der ID ist schon klar, aber ich weiß noch nicht wie ich es 
Timingtechnisch hinbekomme, dass nicht z.B. zufällig zwei Geräte 
gleichzeitig senden und dann natürlich nur Datenmüll herauskommt... :-/

Gruß,
Paul
Gast #825876
Lesenswert?

Schrieb dir doch dein eigenes Protokoll:

Header mit:

  * ID
  * Größe des Datenpaketes
  * Checksumme ( zb. CRC )

Datenblock mit deinem Text

EOF-Message


Du musst dann nur dafür sorgen das die anderen Teilnehmer, die gerade 
nicht an gefunkt werden bis zum EOF warten und dann erst wieder senden 
dürfen, damit haste auch abgesichert das es kein Datenwirwar gibt.
Am besten du deklarierst einen als Host, der die Kontrolle über das Netz 
hat.
Gast #825897
Lesenswert?

Also ich würde vielleicht einen logische Ring aufbauen durch den ein 
Sende-Token läuft. Wenn sich die Anzahl der Stationen in deinem Chat nie 
ändert, ist das sicher ne einfache Möglichkeit.

Du vergibst jeder Station ne eindeutige Nummer. Am Anfang hat die 
Station mit der Nummer 0 das Sendetoken. Alle anderen Stationen 
überwachen den Äther und empfangen die Daten (einfache Pakete wie oben 
beschrieben). Sendet eine Station mal nix (weil sie ausgeschaltet ist) 
dann übernimmt nach einem Timeout die nächste in der Reihenfolge 
automatisch das Token.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren