-
Die vorliegende Erfindung betrifft ein Verfahren zur Nachrichtenübertragung in einem Rechnernetz. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.
-
Stand der Technik
-
Auf dem Gebiet der industriellen Kommunikationsnetze und insbesondere hochverfügbaren Automatisierungsnetze gestattet das sogenannte Parallelredundanzprotokoll (parallel redundancy protocol, PRP) eine weitgehend unterbrechungsfreie Übertragung insbesondere sicherheitsrelevanter Daten in Rechnernetzen.
-
WO 2006 002695 A1 offenbart ein redundantes Datenbussystem mit zwei Datenbussen, zwischen denen mindestens zwei fehlersichere Steuergeräte angekoppelt sind, wobei beide Datenbusse mit dem gleichen Datenbusprotokoll bei im Wesentlichen der gleichen Übertragungsfrequenz arbeiten, sicherheitsrelevante Steuernachrichten über beide Datenbusse parallel übertragen und in den Steuergeräten verarbeitet werden, wobei jedes der Steuergeräte eine eigene Steuerungsaufgabe erfüllt, die über eine zugeordnete Steuerungssoftware abgearbeitet wird. In jedem Steuergerät sind zwei voneinander unabhängig arbeitende Mikrorechner vorgesehen, die sowohl die Steuerungssoftware der ersten als auch der zweiten Steuerungsaufgabe aufweisen, sodass beim Ausfall eines Steuergeräts die Steuerungsaufgabe durch das andere Steuergerät mit übernommen werden kann und dass jeweils eine Datenschnittstelle im Steuergerät zwischen den beiden Mikrorechnern angeordnet ist, über die die aus den sicherheitsrelevanten Steuernachrichten berechneten Ergebnisdaten austauschbar und miteinander vergleichbar sind und dass ein Entscheidungsmittel vorgesehen ist, das aufgrund des Vergleichs der Ergebnisdaten entscheidet, welcher Mikrorechner bzw. welches Steuergerät eine Steuerungsaufgabe durchführt.
-
DE 10 2014 200111 A1 betrifft ein Batteriemanagementsystem zum Überwachen und Regeln des Betriebs einer nachladbaren, eine Mehrzahl von Batteriezellen umfassenden Batterie, welches eine Steuergeräteeinheit, eine Trenneinheit zur galvanischen Trennung der Batterie von einer Verbraucher- und/oder einer Ladeeinrichtung, eine Mehrzahl von jeweils wenigstens einer Batteriezelle zuzuordnenden Zellüberwachungseinheiten und ein Kommunikationssystem zum Senden und/oder Empfangen von Daten umfasst, wobei das Batteriemanagementsystem teilweise zum Betrieb auf Hochspannungspotential und teilweise zum Betrieb auf Niederspannungspotential ausgebildet ist. Eine Übertragung von Daten von den Zellüberwachungseinheiten erfolgt dabei unter Nutzung des Kommunikationssystems nach dem Master-Slave-Prinzip, wobei eine der Zellüberwachungseinheiten eine Master-Zellüberwachungseinheit ist, welche zum Betrieb auf Hochspannungspotential und zum Betrieb auf Niederspannungspotential ausgebildet ist, und wobei die weiteren Zellüberwachungseinheiten Slave-Zellüberwachungseinheiten sind, welche zum Betrieb auf Hochspannungspotential ausgebildet sind.
-
DE 10 2013 114355 A1 schließlich betrifft eine Steuerung, betreibbar zum Übertragen von digitalen Datennachrichten zu einem Empfänger über eine Kommunikationsstrecke, die mindestens einen ersten und einen zweiten Übertragungspfad aufweist, wobei die Steuerung einen ersten Signalanschluss für den ersten Übertragungspfad und einen zweiten Signalanschluss für den zweiten Übertragungspfad umfasst. Der erste Signalanschluss ist betreibbar zum digitalen Übertragen einer ersten Nachricht zu dem Empfänger gemäß einer ersten Übertragungstechnik und der zweite Signalanschluss ist betreibbar zum digitalen Übertragen einer zweiten Nachricht zu dem Empfänger gemäß einer zweiten, anderen Übertragungstechnik.
-
Offenbarung der Erfindung
-
Die Erfindung stellt ein Verfahren zur Nachrichtenübertragung in einem Rechnernetz, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium gemäß den unabhängigen Ansprüchen bereit.
-
Ein Vorzug dieser Lösung liegt in der Schaffung eines flexibel neukonfigurierbaren Verfahren zur selektiv-redundanten Übertragung von Nachrichten in Abhängigkeit bestimmter Kriterien („Selektoren“), die über eine Konfigurationsschnittstelle zur Laufzeit festgelegt und verändert werden können. Diese Schnittstelle dient der Konfiguration von Filterregeln, mit denen die Duplikation und Deduplikation von Nachrichten sowie die Wahl geeigneter Übertragungspfade in den Netzwerkknoten bzw. -elementen gesteuert wird. Mit dieser Schnittstelle kann die Konfiguration alternativ direkt aus Softwarekomponenten oder über einen zentralen (oder über einen verteilt implementierten aber logisch zentralen) Netzwerk-Controller bzw. -Coordinator vorgenommen werden.
-
Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich. So kann vorgesehen sein, dass über eine Schnittstelle des Controllers Anforderungen an das Rechnernetz definiert und aus diesen Anforderungen durch den Controller die Regeln abgeleitet werden. Ein Vorteil dieser Ausgestaltung ist die Schaffung einer softwaredefinierten Netzwerkarchitektur (software-defined networking, SDN) zur Steuerung der Kommunikation, insbesondere (aber nicht ausschließlich) mit dem Ziel, die Fehlertoleranz bzw. Verfügbarkeit der Datenübertragung in Kraftfahrzeugen zu verbessern und/oder die Latenz bei Übertragungsfehlern zu minimieren.
-
Gemäß einem weiteren Aspekt kann eine Anwendung von Verfahren zum schnellen Vergleich von Nachrichteninhalten (inkl. Headerfeldern bzw. Verwaltungs- und Verarbeitungsinformationen eines Protokollstacks) mit Filtermasken auf Basis von dreiwertigem Assoziativspeicher (ternary content-addressable memory, TCAM) in Steuergeräten, Gateways oder Fahrzeugrechnern vorgesehen sein.
-
Figurenliste
-
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
- 1 die konzeptionelle Beziehung zwischen Knoten, Kommunikationsschnittstelle und Nachricht.
- 2 die Beziehung zwischen Knoten und Verbindung.
- 3 schematisch die Interaktion zwischen Controller und Knoten.
- 4 verschiedene Wege zwischen zwei Knoten.
- 5 eine Gegenüberstellung von durchgehend und teilweise redundanter Übertragung.
- 6 den vereinfachten Ablauf einer erfindungsgemäßen Deduplikation.
- 7 das Verhältnis von Duplikations- zu Deduplikationsknoten.
-
Ausführungsformen der Erfindung
-
Die Zusammenschau der 1 und 2 illustriert eine erfindungsgemäße Architektur: Steuergeräte bzw. durch Mikrocontroller oder -prozessor gesteuerte Systeme (11) - im Folgenden zusammenfassend als „Knoten“ bezeichnet -, die exklusiv oder unter anderem der Erzeugung oder Weiterleitung von Nachrichten (13) in Gestalt von Frames, Paketen etc. dienen, werden über eine Schnittstelle (bestehend aus Software und/oder Hardware) bezüglich der Nachrichtenerzeugung und/oder Weiterleitung beeinflusst. Eine Ausprägung der Nachrichtenerzeugung und/oder Weiterleitung ist dabei die oben beschriebene Duplikation und Deduplikation von Nachrichten (13). Eine weitere Ausprägung ist die Weiterleitung dieser Nachrichten (13) auf geeigneten Wegen im Netzwerk. Die in diesem Sinne „geeigneten Wege“ werden von einem nachfolgend beschriebenen Controller berechnet.
-
Der Begriff „Weiterleitung“ bezeichnet in diesem Zusammenhang das Annehmen einer Nachricht (13) an einer Kommunikationsschnittstelle (12) und die anschließende Ausgabe dieser Nachricht (13) - ggf. auch in veränderter Form oder in Gestalt von Duplikaten - auf mindestens einer Kommunikationsschnittstelle (12). Die Kommunikationsschnittstellen (12) können dabei auf unterschiedlichen Technologien, Standards oder Verfahren basieren, was die Umwandlung von Nachrichten (13) und deren Duplikaten in ein anderes Format ausdrücklich einschließt.
-
Die Beeinflussung erfolgt dabei - wie 3 verdeutlicht - durch das Versenden sowie Empfangen und Verarbeiten von Steuernachrichten (33), welche von mindestens einem Teilsystem - dem besagten Controller (30) - erzeugt werden, auf dem ein Verfahren zur Planung bzw. Optimierung des Kommunikationsverhaltens des Gesamtsystems implementiert ist. Dabei werden abstrahierte Beschreibungen des gewünschten Kommunikationsverhaltens über eine weitere Schnittstelle (S) an den Controller (30) übergeben. Der Controller (30) berechnet nun aus dieser abstrakten und generischen Beschreibung die jeweilige spezifische Ausprägung der Nachrichtenweiterleitung bzw. -erzeugung auf den einzelnen Knoten (11) für die jeweils vorliegende spezifische Gesamtsystemausprägung, sodass sich das abstrakt beschriebene Gesamtsystemverhalten in der konkreten Ausprägung einstellt. Der Begriff „konkrete Ausprägung“ bezeichnet in diesem Zusammenhang beispielsweise eine Konfiguration von Steuergeräten, Kommunikationsschnittstellen, Kommunikationsverbindungen und darüber kommunizierenden Softwarekomponenten.
-
Das Verfahren zur selektiv-redundanten Übertragung von Nachrichten (13) gliedert sich dabei in die Erzeugung bzw. Weiterleitung (10) von Nachrichten (13), die Berechnung geeigneter Wege für Nachrichten (13) sowie die Übersetzung generisch beschriebener Anforderungen an die Nachrichtenweiterleitung in ein Datenformat zur Konfiguration von Knoten (11) in einer spezifischen Ausprägung eines Rechnernetzes. Das zur Erzeugung bzw. Weiterleitung von Nachrichten (13) eingesetzte Teilverfahren (10) wird in den Knoten (11) implementiert (Steuergeräte, Gateways, Switches, Fahrzeugrechner etc.). Der jeweilige Knoten (11) kann über eine Konfigurationsschnittstelle (V) vom Controller (30) mit Konfigurationsdaten versorgt werden. Diese Daten dienen der Neukonfiguration des Kommunikationsverhaltens des Knotens (11), insbesondere der Frame- oder Paket-Weiterleitung von einer oder mehreren Eingangs-Kommunikationsschnittstellen (12) an mindestens eine Ausgangs-Kommunikationsschnittstelle (12). Die Konfigurationsdaten beschreiben u. a. Filterregeln und Verarbeitungsregeln.
-
Beim Eingang einer Nachricht (13) wird diese mit den Filterregeln verglichen. Ein Filter beschreibt dabei ein Datenmuster (z. B. das Vorhandensein oder Nichtvorhandensein bestimmter Werte oder Felder, deren Inhalt dem Suchmuster entspricht). Logische Verknüpfungen sowie die Verwendung von Platzhaltern (wildcards) oder regulären Ausdrücken ermöglichen dabei auch eine komplexere Mustererkennung. Die Verarbeitungszeit der Mustererkennung lässt sich durch den Einsatz von dreiwertiger Logik und von Hardwarebeschleunigung wie beispielsweise der Verwendung von TCAMs erheblich beschleunigen.
-
Beispielhafte Filterbedingungen und logische Verknüpfungen entsprechen der folgenden Grundstruktur:
- • Die Nachricht (13) enthält im Feld F (nicht) das Muster M, wobei F beispielsweise ein Absender- oder Empfängerfeld und M eine Adresse, Kennung (z. B. Ethernet-MAC, IP-Adresse, CAN-ID) oder auch Adressbereiche (z. B. MAC-Adressen der Form „00:AA:*“) oder IP-Adressen der Form „192.*.*.1“ unter Verwendung von Platzhaltern oder Bereichsangaben (z. B. „192.168.0.1 bis 192.169.0.5“) bzw. Netzwerk-Masken (beispielsweise gemäß RFC 5942 oder 950) bezeichnen kann. Ebenso kann F beispielsweise ein VLAN-Feld nach IEEE 802.1Q sein, sodass M dann beispielsweise eine VLAN-ID oder eine Priorität bezeichnet.
- • Die Nachricht (13) wurde (nicht) an einer bestimmten Kommunikationsschnittstelle (12) angenommen, beispielsweise einem Ethernet-Port oder einer CAN-Schnittstelle.
- • Die Nachricht (13) wurde (nicht) an einer Kommunikationsschnittstelle (12) angenommen, die (nicht) über die Eigenschaft E (im Wertebereich W) und/oder (nicht) über die Fähigkeit G verfügt und/oder (nicht) im Zustand Z ist, wobei E beispielsweise eine Auslastung, Latenz, Fehlerrate, oder einen Paketverlust des an Kommunikationsschnittstelle (12) angeschlossenen Kommunikationssystems oder Kanals bezeichnet; in Verbindung mit W sind dabei auch die Operatoren wie beispielsweise „größer als“ und „kleiner als“ nutzbar, z. B. in einem Ausdruck der Form „Latenz < 10 ms“. G indes mag eine Fähigkeit des an der Kommunikationsschnittstelle (12) angeschlossenen Kommunikationssystems oder Kanals bezeichnen, beispielsweise Echtzeitfähigkeit, deterministische Übertragung oder Zuverlässigkeit, optional in Verbindung mit den oben genannten Wertebereichen und Operatoren. Z schließlich beschreibt den Zustand der Kommunikationsschnittstelle (12) bzw. des daran angeschlossenen Kommunikationssystems, beispielsweise „OK“, „nicht OK“, „temporär nicht OK“, „verbunden“, „nicht verbunden“ oder „gestört“.
- • Mögliche weitere Filterbedingungen enthalten Zusatzfelder, die Anforderungen bzgl. sicherheitskritischer Funktionen beschreiben und beispielsweise von einer Softwarekomponente, Datenbank (ggf. in einem Backend) oder Middleware angefügt werden. Diese Felder können Teil eines Nachrichtenheaders auf der Sicherungsschicht oder einer höheren Abstraktionsebene des OSI-Modells sein; ebenso können diese Felder in der Nutzlast enthalten sein oder aus anderen Daten abgeleitet werden.
-
Zum schnellen Vergleich von Mustern, Filtern oder Nachrichteninhalten und insbesondere zur Prüfung der oben beschriebenen Filterbedingungen ist die Anwendung von Hardwarebeschleunigungsverfahren (z. B. auf Basis von TCAMs) vorteilhaft. Die Filterregeln sind dabei in einer Reihenfolge angeordnet. Sobald ein Frame, Paket oder eine Nachricht (13) eingeht, wird entsprechend der Reihenfolge geprüft, ob die Nachricht (13) zu einer Filterregel „passt“. Sobald die Nachricht (13) einer betrachteten Filterregel genügt, wird der Vergleich abgebrochen; die weiteren Filter werden nicht mehr angewendet. Durch eine solche Rangfolge von Filterregeln lässt sich eine effiziente Bearbeitung implementieren.
-
Anschließend wird eine in den Konfigurationsdaten festgelegte Verarbeitungsregel auf die Nachricht (13) angewendet. Falls kein Filter sich als anwendbar erweist, wird eine vorgegebene (default) Verarbeitungsregel ausgelöst. Eine solche Verarbeitungsregel gibt die weitere Verarbeitung einer Nachricht (13) vor, zum Beispiel:
- • Weiterleitung auf eine bestimmte Ausgangs-Kommunikationsschnittstelle (12),
- • Duplikation (Kopie) der Nachricht (13) und Ausgabe an mehrere Kommunikationsschnittstellen (12) oder Ausgabe von mehreren Duplikaten an mindestens eine Ausgangsschnittstelle,
- • Verwerfen von Nachrichten (13) ohne Weiterleitung,
- • Manipulation von Nachrichtenfeldern (Kopf- und Nutzdaten etc.) durch Überschreiben, Ändern, Einfügen oder Erweitern, insbesondere das Entfernen oder Verschlüsseln von Nachrichtenteilen,
- • Extrahieren und Duplizieren von besonders schützenswerten Inhalten oder Nachrichtenteilen (weil beispielsweise nur ein Signal, Zustand oder Wert besonders kritisch oder wichtig ist,
- • Übersetzen in ein anderes Kommunikationsprotokoll,
- • Einkapseln in ein anderes Kommunikationsprotokoll, indem die ursprüngliche Nachricht (13) mit allen Headern als Nutzdaten (payload) in eine Nachricht (13) des anderen Protokolls eingebettet wird,
- • Aufteilen (Fragmentieren) einer eingehenden Nachricht (13) auf mehrere ausgehende Nachrichten (13), die jeweils einen Teil des Nachrichteninhalts der eingehenden Nachricht (13) enthalten,
- • Aufteilen von mehreren eingehenden Nachrichten (13) und Zusammenfügen dieser Teile zu mehreren ausgehenden Nachrichten (13) beispielsweise durch eine lineare Netzkodierung (linear network coding),
- • Zusammenfügen von mehreren, möglicherweise kleinen eingehenden Nachrichten (13) zu mindestens einer typischerweise größeren ausgehenden Nachricht (13) oder
- • Erweitern der Nachricht (13) oder des Frames um zusätzliche Felder beispielsweise zur Fehlererkennung, Fehlerkorrektur, Markierung, Programmfehlersuche und -behebung (debugging), zeitlichen Abstimmung (timing), Zeitstempelung (timestamping), Absicherung - insbesondere Signatur - und Verschlüsselung von Nachrichten (13), Nachrichtenteilen oder Feldern.
-
Die Duplikation dient dem Zweck, die Ausfallsicherheit eines Systems durch eine erhöhte Zuverlässigkeit der Kommunikation zu erhöhen. Dabei sind insbesondere Paket-, Frame- und Nachrichtenverluste und -verfälschungen durch Störung, Unterbrechung, Beschädigung etc. der Verbindungen (20), Kanäle oder Zwischenknoten einer Kommunikation zwischen Softwarekomponenten bzw. Teilsystemen relevant. Ein Hauptanwendungsbereich dieser Ausführungsform liegt in fahrzeugelektronischen Netzen (in-vehicle networks). Ihre Anwendung in anderen Bereichen mit erhöhten Anforderungen an die Verfügbarkeit bzw. Fehlertoleranz (z. B. in der Industrievernetzung) ist naheliegend.
-
Das Verfahren (10) ist insbesondere, aber nicht ausschließlich, für die Kommunikation von Steuergeräten und ähnlichen Komponenten in Kraftfahrzeugen ausgelegt. Eine beispielhafte Netzarchitektur in einer solchen Anwendung ist ausschnittsweise in 4 dargestellt. Als Besonderheit verfügen die Subsysteme in derartigen Architekturen zukünftig über (zumindest teilweise) „vermaschte“ (meshed) Kommunikationsverbindungen, sodass eine redundante Kommunikation ermöglicht wird. In 4 können ein erstes Subsystem (41) und ein zweites Subsystem (42) auf einem ersten Weg (43) und einem zweiten Weg (44) kommunizieren. Diese Ausgestaltung dient unter anderem dazu, wichtige Nachrichten (13) auf beiden Wegen gleichzeitig zu übertragen, wobei das Verfahren dabei dynamisch konfiguriert und zur Laufzeit (z. B. an veränderte Anforderungen) angepasst werden kann.
-
Eine Duplikation und Deduplikation kann entweder durchgehend - dann wird direkt an der Quelle dupliziert und direkt an der Senke dedupliziert - oder auf einer Teilstrecke angewendet werden. In 5 sind beide Varianten dargestellt. Die Knoten 52 und 53 können eine durchgehende Duplikation und Deduplikation durchführen. Für die Knoten 51 und 54 ist dies nur auf einer Teilstrecke möglich. Daher wird bei einer Nachrichtenübertragung von Knoten 51 an Knoten 54 die Duplikation von Knoten 52 und die Deduplikation von Knoten 53 durchgeführt.
-
Das Verfahren (10) ist transparent ausgelegt und erlaubt die Wiederverwendung vorhandener Softwarekomponenten bzw. Subsysteme. Aus Sicht der Softwarekomponenten bzw. Subsysteme werden nach wie vor „normale“ Nachrichten (13) gesendet und empfangen. Das Verfahren (10) gliedert sich hierzu grob in vier Schritte:
- 1. Entscheidung über Duplikation: Es wird ein eingehender Frame, eine eingehende Nachricht (13) oder ein eingehendes Paket über eine (interne oder externe, physische oder virtuelle) Kommunikationsschnittstelle (12) empfangen. Dann werden die oben in diesem Abschnitt beschriebenen Filterregeln angewendet, die ggf. im Auslösen einer Verarbeitungsregel resultieren. Im konkreten Fall der Duplikation dienen die Filterregeln der Entscheidung, ob Nachrichten (13) dupliziert werden sollen (z. B. nach Absender, Empfänger, Priorität etc.) oder z. B. regulär weitergeleitet werden. Die Verarbeitungsregeln dienen entsprechend der Ausführung der Duplikation. Wie oben beschrieben können die Filter- und Verarbeitungsregeln dabei dynamisch von einem Controller (30) initial an die Knoten (11) verteilt und/oder zur Laufzeit geändert werden. In 7 werden in einem Duplikationsknoten (71) die beschriebenen Filterregeln zur Entscheidung über die Duplikation einer Eingangsnachricht (O) angewendet.
- 2. Durchführung der Duplikation: Falls die Filterregel „passt“, wird die Verarbeitungsregel zur Duplikation angewendet. Eine mögliche Implementierungsvariante dieser Verarbeitungsregel gestaltet sich wie folgt: Der eingehende Frame wird vervielfacht (im Beispiel dupliziert); die Kopien werden dabei mit einer Kennung (z. B. Sequenznummer) versehen, anhand derer sich sowohl die Eingangsnachricht (O) als auch deren erstes Duplikat (D1) und zweites Duplikat (D2) eindeutig identifizieren lassen. Der Sequenznummernraum wird dabei so gewählt, dass trotz beschränkter Feldlänge - und somit zur Darstellung der Sequenznummer verfügbarer Bits - und der aus dieser Beschränkung resultierenden Zählerüberläufe eine eindeutige Zuordnung erhalten bleibt, d. h. dass sich keine Nachrichten (13) mit alten (vor dem Überlauf) und neuen (nach dem Überlauf), aber identischen Sequenznummern gleichzeitig im System befinden können, da die maximale Paketlebensdauer niedriger als die minimale Zeit zum kompletten Durchlauf der verfügbaren Sequenznummern ist. Anschließend werden die Kopien als ausgehende Nachrichten (13) entsprechend der Verarbeitungsregeln - die sich aus dem nachfolgend beschriebenen Teilverfahren zur Berechnung geeigneter Wege für Nachrichten (13) ergeben - weitergeleitet, sodass sie auf zwei verschiedenen Kommunikationsschnittstellen (12) und dementsprechend zwei verschiedenen Wegen weitergeleitet werden. Nach der Weiterleitung der (um Sequenznummern etc. ergänzten) Kopien wird die Eingangsnachricht (0) verworfen. Eine Implementierungsalternative ist das Anfertigen von lediglich einer Kopie und das Ergänzen der Eingangsnachricht (0) um Sequenznummern etc. In diesem Fall kann die Eingangsnachricht (O) im Wesentlichen erhalten und direkt weitergeleitet werden. Diese Variante kann je nach Hardwarearchitektur des Knotens (11) und dessen daraus folgender Rechenleistung (performance) vorteilhaft sein. In 7 ist ein Duplikationsvorgang dargestellt: die am Duplikationsknoten (71) eingegangene Eingangsnachricht (O) wird kopiert; das erste Duplikat (D1) und das zweite Duplikat (D2) werden über die Kommunikationsschnittstellen auf der rechten Seite des Duplikationsknotens (71) an die Knoten 73 und 74 weitergeleitet.
- 3. Übertragung: Das erste Duplikat (D1) und das zweite Duplikat (D2) werden von den Knoten 73 und 74 regulär (nach dem Stand der Technik) weitergeleitet. Alternativ (und vorteilhaft für eine mögliche Anpassung an wechselnde Anforderungen) können die Weiterleitungstabellen (forwarding tables) auf den Knoten 73 und 74 durch den Controller (30) konfiguriert werden. Noch flexibler und vorteilhafter ist die vollständige Implementierung der oben beschriebenen Filter- und Verarbeitungsregeln, da in diesem Fall jeder Knoten des Systems über die vollständigen Fähigkeiten verfügt, sodass die Duplikation oder Deduplikation (und ähnliche Funktionen) zur Laufzeit neukonfiguriert bzw. verteilt werden können. In 7 ist dargestellt, wie das erste Duplikat (D1) und das zweite Duplikat (D2) von den Knoten 73 und 74 auf der jeweils linken Kommunikationsschnittstelle (12) empfangen werden und zur rechten Schnittstelle in Richtung eines sogenannten Deduplikationsknotens (72) weitergeleitet werden.
- 4. Deduplikation: Gemäß 7 wird vom Deduplikationsknoten (72) die Deduplikation durchgeführt. Dazu werden das eingehende erste Duplikat (D1) und das eingehende zweite Duplikat (D2) zu einer einzigen, der Eingangsnachricht (0) entsprechenden Ausgangsnachricht (O') zusammengeführt. Diese wird dann entweder an einen lokalen Softwareprozess auf dem Deduplikationsknoten (72) oder an eine externe Kommunikationsschnittstelle (12) weitergeleitet.
- a. Im Normalfall, wenn keine Störung auftritt, werden nun mehrere Kopien der Nachricht (13) beim Empfängerknoten ankommen. Das Verfahren (10) soll jedoch transparent arbeiten, d. h. der Software auf dem Empfängerknoten soll nur eine einzige, zu der Eingangsnachricht (0) inhaltsgleiche Ausgangsnachricht (0') zugestellt werden. Dafür wird das in 6 dargestellte Verfahren (10) angewendet. Nach dem Empfang einer Nachricht (13) wird zunächst geprüft, ob es sich um eine reguläre oder eine duplizierte Nachricht (13) handelt. Eine reguläre Nachricht (13) wird normal weitergeleitet, da die Duplikation nicht angewendet wurde. Dies wird am Fehlen der Zusatzheader bzw. Sequenznummern erkannt. Die Prüfung findet mit Hilfe der beschriebenen Filterregeln statt.
- b. Falls es sich nicht um eine reguläre Nachricht (13) handelt, wird nun geprüft, ob sich die im Zusatzheader angegebene Sequenznummer schon im Ringpuffer befindet. In dem Ringpuffer werden die Sequenznummern der letzten Nachrichten (13) vorgehalten. So kann anhand der Sequenznummer der jeweiligen Nachricht (13) geprüft werden, ob vorher bereits eine Kopie empfangen wurde. Die Größe des Ringpuffers ist entsprechend der maximalen Nachrichtenlebensdauer auszulegen. Alte Einträge werden entsprechend dem Ringpufferprinzip zyklisch überschrieben. Befindet sich die Sequenznummer bereits im Ringpuffer, wird die Nachricht (13) verworfen, da bereits vorher ein Duplikat angekommen ist. Alternative Implementierungsvarianten sind möglich, beispielsweise aufgrund der Datenstrukturen Vektor oder Stapelspeicher (stack). Vorteilhaft an der Verwendung eines Ringpuffers ist die niedrige Komplexität und die hohe Robustheit der Implementierung; andere Alternativen könnten jedoch ebenso vorteilhaft sein und im Rahmen einer Ausführungsform der Erfindung Anwendung finden.
- c. Befindet sich die Sequenznummer noch nicht im Puffer, wird die Sequenznummer in den Puffer aufgenommen. Dann werden die Zusatzheader der Kopie entfernt, sodass eine mit der Eingangsnachricht (O) inhaltsgleiche Ausgangsnachricht (O') verbleibt. Diese wird dann an den Empfänger weitergeleitet.
- d. Im Fehlerfall (Störung) ist zumindest ein Duplikat - beispielsweise durch Paketverlust - nicht übertragen worden. Von einem verbleibenden Duplikat wird durch den Algorithmus dennoch eine der Eingangsnachricht (O) entsprechende Ausgangsnachricht (0') erzeugt. Auf den Ringpuffer haben Paketverluste keinen negativen Einfluss. Tritt der unwahrscheinliche, aber theoretisch mögliche Fall ein, dass keines der Duplikate am Deduplikationsknoten (72) ankommt, führt dies ebenfalls nicht zu einer Verklemmung des Algorithmus.
-
Zur Berechnung eines geeigneten Weges empfiehlt sich hierbei eine Bestimmung der Nebenbedingungen und Anpassung bekannter Algorithmen zur Lösung des Problems der kürzesten Pfade, um diese Algorithmen zur Bestimmung von Wegen für die selektiv redundante Übertragung in E/E-Architekturen verwendbar zu machen und zu optimieren. Zur Bestimmung von zwei oder mehr Wegen mit einem bekannten Algorithmus wie jenem von Dijkstra, welcher in seiner typischen Form nur zur Berechnung eines einzigen Weges ausgelegt ist, wird das Verfahren zunächst zur Berechnung eines ersten Weges W1 durch einen Graphen G angewendet. Anschließend wird vom Graphen jede Kante entfernt, die Element des Weges W1 ist. Es ergibt sich G'. Nun wird das bekannte Verfahren erneut auf G' angewendet, sodass sich ein Weg W2 ohne gemeinsame Kanten mit W1 ergibt. Nun könnte mit G' W2 = G" ein weiterer Durchlauf gestartet werden usw., bis die gewünschte Anzahl von Wegen erreicht ist oder kein weiterer Weg mehr gefunden wird. In einer Variante des Algorithmus werden neben den Kanten von W1 auch alle Knoten (11) auf W1 mit Ausnahme der Endknoten (Quelle und Senke) entfernt. Dies hat den Vorteil, dass neben der Widerstandsfähigkeit gegen Verbindungsstörungen und -ausfällen auch jene gegen Knotenstörungen und -ausfällen erhöht wird.
-
In Erweiterung des beschriebenen Ansatzes kann bei der Berechnung der Wege ein Teilgraph mit Kommunikationsverbindungen angelegt werden, die über Merkmale zur Verbesserung der Funktionssicherheit verfügen (z. B. CRC-Absicherung, Frequenzexklusivität, bestätigte und somit zuverlässige Übertragung sowie erhöhte Ausfallsicherheit wie z. B. im Falle von Flexray).
-
Eine Bestimmung von zwei oder mehr Wegen mit Technologie-Diversität möglichst auf allen Verbindungen (20) zwischen den Knoten (11) ist ebenfalls denkbar: Eine solche Technologie-Diversität der Übertragungsverfahren verringert die Ausfallwahrscheinlichkeit und ist daher vorteilhaft. Dabei wird beispielsweise sichergestellt, dass nicht zwei oder mehr der Wege zur redundanten Übertragung auf derselben Übertragungstechnologie basieren. Ein weiteres Beispiel wäre die Sicherstellung der Verwendung von verschiedenen Frequenzen für die verschiedenen Wege bei der Verwendung von funkbasierten Drahtlosverfahren.
-
Zur Berechnung unabhängiger Wege auf der Basis verschiedener Technologien werden zunächst Teilgraphen für jede Technologie aufgebaut. Diese Graphen enthalten dann beispielsweise nur Ethernet- oder nur CAN-Verbindungen (20). Die bekannten Algorithmen zur Berechnung von beispielsweise kürzesten Pfaden werden dann unabhängig auf diese Teilgraphen angewendet und liefern (falls topologisch möglich) jeweils Wege für die einzelnen Technologien. Eine mögliche Variante des Teilverfahrens ist die Bestimmung eines Weges, der nur „teilweise redundant“ ist oder teilweise über Technologie-Diversität verfügt, für den Fall, dass auf Grund der Topologie oder auf Grund von Ausfällen keine vollständig redundanten Wege möglich sind.
-
Bei der Übersetzung generisch beschriebener Anforderungen an die Nachrichtenweiterleitung in ein Datenformat zur Konfiguration der Knoten (11) wird ein Hardware-Software-System zur Nachrichtenweiterleitung mit Hilfe einer abstrakten und generischen Beschreibung der Anforderungen konfiguriert. Ziel ist die automatisierte Übersetzung dieser einheitlichen digitalen Beschreibung auf verschiedene Varianten bzw. Ausprägungen einer Infrastruktur zur Nachrichtenweiterleitung, insbesondere (aber nicht ausschließlich) einer E/E-Architektur in einem Fahrzeug. Vorteilhaft ist ein modularer Aufbau der abstrakten Beschreibung, in der beispielsweise verschiedene Softwarekomponenten mit ihren jeweiligen Anforderungen hinterlegt sind. Eine solche Anforderung könnte beispielsweise lauten: „Softwarekomponente A erfordert periodisch im zeitlichen Abstand von jeweils 10 ms eine redundante Übertragung der Fahrzeuggeschwindigkeit“. Für die selektive Redundanz sind in der Beschreibung die Anforderungen bezüglich der Duplikation und Deduplikation hinterlegt. Ein möglicher Ablauf des Verfahrens gestaltet sich wie folgt:
- 1. Die generische Beschreibung der Anforderungen wird an den Controller (30) übertragen. Auslöser für diese Übertragung ist beispielsweise ein geplantes Softwareupdate und eine dadurch erforderliche Anpassung der Kommunikation zwischen den Knoten (11). Der Controller (30) interpretiert die Anforderungen.
- 2. Der Controller (30) kennt die spezifische Ausprägung der E/E-Architektur bzw. ermittelt diese unter Verwendung der Konfigurationsschnittstelle (V) zu den Knoten (11). Zunächst wird die Erfüllbarkeit der Anforderungen überprüft; deren Nichterfüllbarkeit wird ggf. zurückgemeldet.
- 3. Der Controller (30) berechnet die erforderlichen Anpassungen und übersetzt somit die generische Beschreibung in Knotenkonfigurationen.
- 4. Schließlich wird das im Folgenden beschriebene Teilverfahren zur Steuerung der Konfiguration, Verteilung und Inbetriebnahme virtualisierter Funktionen angewendet, um die in konkrete Knotenkonfigurationen übersetzte Beschreibung auf den Knoten (11) umzusetzen.
-
Um eine flexible Konfigurationsänderung des Systems zur Laufzeit zu ermöglichen, ist die Implementierung der Duplikation und Deduplikation (sowie beliebiger anderer Netzwerkfunktionen) in Form einer virtualisierten Funktion vorteilhaft, beispielsweise gekapselt in einen Container oder eine virtuelle Maschine. Eine logisch zentralisierte Instanz, hier der Controller (30), steuert dann die Konfiguration, Verteilung und Ausführung der virtualisierten Funktion auf den Knoten (11). Dazu nutzt er beispielsweise die Ergebnisse des Teilverfahrens zur Berechnung geeigneter Wege (s. o.). Das Teilverfahren gliedert sich in folgende Schritte:
- • Startbedingung: Am Controller (30) wird ein Neukonfigurationsdurchlauf gestartet. Dies wird beispielsweise von einer Softwarekomponente, einer Middleware oder durch eine manuelle Anfrage ausgelöst. Die Anfrage enthält dabei eine abstrakte Beschreibung von Anforderungen. Als Beispiel mag die Einrichtung von redundanter Kommunikation zwischen ECU und Zentralrechner bei einer Datenrate von 100 kBit/s und Latenz von weniger als 2 ms dienen.
- • In einem zweiten Schritt überprüft der Controller (30) zunächst, ob die entsprechenden Verbindungen (20) und Ressourcen zur Verfügung stehen. Falls nicht, erfolgen Abbruch und negative Rückmeldung.
- • Anschließend werden die entsprechenden Container mit den Funktionen (hier Duplikation und Deduplikation) auf die Knoten (11) kopiert und dort in Betrieb genommen. Danach erfolgt die Konfiguration der Funktionen, Kommunikationsschnittstellen etc. und es werden die oben beschriebenen Filter- und Verarbeitungsregeln installiert. Alternativ kann die Konfiguration schon vor dem Verteilen direkt im Container vorgenommen werden.
- • Abschließend wird vom Controller (30) die erfolgreiche Inbetriebnahme der virtuellen Funktionen zurückgemeldet.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- WO 2006002695 A1 [0003]
- DE 102014200111 A1 [0004]
- DE 102013114355 A1 [0005]