K |
K |
||
Zeile 8: | Zeile 8: | ||
=== Allgemeines === | === Allgemeines === | ||
− | + | Die von Schicht 1 zur Verfügung gestellten Kommunikationsinfrastruktur bietet einen virtuellen zusammenhängenden | |
− | + | Kommunikationsraum in dem einfache Nachrichten übertragen werden können. Dies ist jedoch für eine Anwendung | |
− | + | meistens nicht ausreichend. Wünschenswert wären folgende Eigenschaften für Nachrichten: | |
+ | |||
+ | * Datenintegrität: Die Nachrichten sind unabhängig vom Kommunikationsmedium immer durch CRC gesichert | ||
+ | * Übertragungssicherung: Es ist sichergestellt, das die Nachricht ankommt, z.B. durch | ||
+ | ** Ack/Nack/Timeout: Empfangsbestätigungen für Nachrichten | ||
+ | ** Automatische Retries wenn der Versand fehlschlägt | ||
+ | * Streambasiertheit: Bei Versendung mehrere Nachrichten kommen diese vollständig und in genau der Reihenfolge an, in der sie abgesendet wurden. | ||
+ | |||
+ | Die Aufgabe der Schicht 2 ist nun die Sicherstellung einiger oder aller dieser Eigenschaften. | ||
+ | |||
+ | Zu beachten ist, das jede Eigenschaft auch gewisse Nachteile bezüglich Übertragungslatenz sowie Protokollkomplexität | ||
+ | und -overhead mit sich bringt. Aus diesem Grund werden im folgenden zwei mögliche Übertragungsmodi definiert, die schnell, flexible und auch auf einem uC einfach zu implementieren sind. | ||
+ | |||
+ | |||
+ | === Verbindungslose Nachrichten === | ||
+ | |||
+ | Bei Verbindungslosen Nachrichten erwartet der Sender weder eine (direkte) Antwort noch einen Timeout wenn | ||
+ | die Übertragung fehlschlägt. Es wird weder die Übertragung- noch die Datenintegrität gesichert. Im Gegenzug | ||
+ | sind verbindungslose Nachrichten schnell und unkomplizierte Einwegnachrichten. | ||
+ | |||
+ | |||
+ | === Sessionbasierte Nachrichten === | ||
+ | |||
+ | |||
+ | |||
+ | === Beispiele für die Verwendung === | ||
− | |||
Version vom 11. März 2006, 19:37 Uhr
An diesem Artikel arbeitet gerade Mitglied Ragnar.
Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen. Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor Ragnar per PM / Mail oder Forum nachfragen ob er vergessen wurde. |
Inhaltsverzeichnis
RNcom Schicht 2 - Übersicht
Allgemeines
Die von Schicht 1 zur Verfügung gestellten Kommunikationsinfrastruktur bietet einen virtuellen zusammenhängenden Kommunikationsraum in dem einfache Nachrichten übertragen werden können. Dies ist jedoch für eine Anwendung meistens nicht ausreichend. Wünschenswert wären folgende Eigenschaften für Nachrichten:
- Datenintegrität: Die Nachrichten sind unabhängig vom Kommunikationsmedium immer durch CRC gesichert
- Übertragungssicherung: Es ist sichergestellt, das die Nachricht ankommt, z.B. durch
- Ack/Nack/Timeout: Empfangsbestätigungen für Nachrichten
- Automatische Retries wenn der Versand fehlschlägt
- Streambasiertheit: Bei Versendung mehrere Nachrichten kommen diese vollständig und in genau der Reihenfolge an, in der sie abgesendet wurden.
Die Aufgabe der Schicht 2 ist nun die Sicherstellung einiger oder aller dieser Eigenschaften.
Zu beachten ist, das jede Eigenschaft auch gewisse Nachteile bezüglich Übertragungslatenz sowie Protokollkomplexität und -overhead mit sich bringt. Aus diesem Grund werden im folgenden zwei mögliche Übertragungsmodi definiert, die schnell, flexible und auch auf einem uC einfach zu implementieren sind.
Verbindungslose Nachrichten
Bei Verbindungslosen Nachrichten erwartet der Sender weder eine (direkte) Antwort noch einen Timeout wenn die Übertragung fehlschlägt. Es wird weder die Übertragung- noch die Datenintegrität gesichert. Im Gegenzug sind verbindungslose Nachrichten schnell und unkomplizierte Einwegnachrichten.
Sessionbasierte Nachrichten
Beispiele für die Verwendung
Allgemeiner Nachrichtenaufbau:
Kommt alles noch ...
Die Nachrichten vom Typ 128..255 werden an die Schicht 2 weitergeleitet und müssen geroutet werden.
Deshalb wird für diese Nachrichten das Format um die Ziel- und Absenderadresse erweitert.
Length | Länge des Datenpaketes, evtl abzüglich der bereits definierten Headerbytes |
Byte 1 | Type | 128..255 = Schicht 2 Nachricht |
Byte 2 | Dest Net | Netznummer des Empfängers |
Byte 3 | Dest Node | Knotennummer des Empfängers |
Byte 4 | Src Net | Netznummer des Absenders |
Byte 5 | Src Node | Knotennummer des Absenders |
Byte 6 | Datenpaket, Format abhängig von Schicht 2 | |
... | ||
Byte n |
Siehe auch
- RNcom Schicht 2
und auch: