7. Structured Data IDs (Strukturierte Daten-IDs)
Dieser Abschnitt definiert eine Reihe von SD-IDs (Structured Data IDs) zusammen mit ihren PARAM-NAMEs und der zugehörigen Semantik. Weitere SD-IDs KÖNNEN in anderen Dokumenten gemäß Abschnitt 6.3 definiert werden. Um Kollisionen zu vermeiden, ist die IANA für die Registrierung von SD-IDs verantwortlich. Abschnitt 9.1 behandelt die Details der Registrierung der hier definierten SD-IDs.
SD-IDs aus diesem Abschnitt DÜRFEN Herstellern als Vorlage dienen, um ihre eigenen strukturierten Datenelemente nach dem Schema in Abschnitt 6.3.2 zu definieren.
7.1. timeQuality (Zeitqualität)
Die SD-ID "timeQuality" KANN vom Originator verwendet werden, um seine Auffassung von der Systemzeit zu beschreiben. Dieses SD-ELEMENT SOLLTE geschrieben werden, wenn der Originator nicht ordnungsgemäß mit einer zuverlässigen externen Zeitquelle synchronisiert ist oder wenn er nicht weiß, ob sein Zeitzonen-Offset korrekt ist. Dies ist ein Hinweis an den Collector oder Relay, dass der TIMESTAMP möglicherweise nicht korrekt ist.
Die folgenden optionalen PARAM-NAMEs sind definiert. Es kann null, einen oder mehrere dieser Parameter in einem timeQuality SD-ELEMENT geben.
7.1.1. tzKnown (Zeitzone bekannt)
Der Parameter "tzKnown" KANN verwendet werden, um anzuzeigen, ob der Originator seine Zeitzone kennt. Er ist ein PARAM-VALUE, der ein einzelnes Zeichen enthält: entweder "0", wenn die Zeitzoneninformation unbekannt ist, oder "1", wenn sie bekannt ist. Wenn dieser Parameter nicht vorhanden ist oder auf "0" gesetzt ist, kennt der Originator seine Zeitzone nicht. Wenn er auf "1" gesetzt ist, ist die Auffassung des Originators über seinen Zeitzonen-Offset im TIMESTAMP enthalten.
7.1.2. isSynced (ist synchronisiert)
Der Parameter "isSynced" KANN verwendet werden, um anzuzeigen, ob die lokale Uhr des Originators mit einer zuverlässigen Zeitquelle synchronisiert ist, z. B. über das Network Time Protocol [RFC5905]. Er ist ein PARAM-VALUE, der ein einzelnes Zeichen enthält: entweder "0", wenn nicht synchronisiert, oder "1", wenn synchronisiert. Wenn dieser Parameter nicht vorhanden ist, weiß der Originator nicht, ob seine lokale Uhr synchronisiert ist.
7.1.3. syncAccuracy (Synchronisierungsgenauigkeit)
Der Parameter "syncAccuracy" KANN verwendet werden, um die Genauigkeit der Auffassung des Originators von der Systemzeit anzugeben. Er ist ein PARAM-VALUE, der eine ganze Zahl enthält, welche die maximale Abweichung von der maßgeblichen Zeitquelle in Mikrosekunden beschreibt. Ein Wert von "60000000" würde eine Genauigkeit von einer Minute anzeigen, während "2000" 2 Millisekunden bedeutet. Diese Zahl stellt den maximal erwarteten Fehler dar. Sie kann aus der Kenntnis abgeleitet werden, wie häufig die Uhr synchronisiert wird. Dies ist OPTIONAL.
Wenn der Parameter nicht vorhanden ist, ist die maximale Abweichung von der maßgeblichen Zeitquelle unbekannt.
7.1.4. Examples (Beispiele)
Beispiel 1
[timeQuality tzKnown="1" isSynced="1" syncAccuracy="60000"]
Diese STRUCTURED-DATA zeigt, dass der Originator mit einer maßgeblichen Zeitquelle synchronisiert ist. Der Originator geht davon aus, dass die von ihm gelieferte Zeitinformation innerhalb von 60 Millisekunden genau ist. Der Originator kennt seine Zeitzone.
Beispiel 2
[timeQuality tzKnown="1" isSynced="0"]
Diese STRUCTURED-DATA zeigt, dass der Originator nicht mit einer maßgeblichen Zeitquelle synchronisiert ist. Er kennt jedoch seinen Zeitzonen-Offset.
Beispiel 3
[timeQuality tzKnown="0" isSynced="1" syncAccuracy="60000"]
Diese STRUCTURED-DATA zeigt, dass der Originator mit einer maßgeblichen Zeitquelle synchronisiert ist, aber seinen Zeitzonen-Offset nicht kennt.
7.2. origin (Ursprung)
Die SD-ID "origin" KANN von einem Originator, Relay oder Collector verwendet werden, um seine Identität und seine Enclave-Grenzen anzugeben. Dieses SD-ELEMENT ist darauf ausgelegt, verkettet zu werden, sodass jedes Relay oder Collector, das es hinzufügt, seine Informationen an die bereits vorhandenen anhängen kann.
Die folgenden optionalen PARAM-NAMEs sind definiert. Es kann null, einen oder mehrere dieser Parameter in einem origin SD-ELEMENT geben.
7.2.1. ip (IP-Adresse)
Der Parameter "ip" KANN verwendet werden, um das Gerät zu identifizieren, das die Nachricht erzeugt hat. Der Wert ist eine gültige IP-Adresse im in Abschnitt 6.2.4 beschriebenen Format. Anonymisierte Adressen SOLLTEN nicht gesendet werden, da sie keine nützlichen Informationen zur Fehlerbehebung liefern. Dies kann zudem zu einem Konflikt mit anderen, ähnlich anonymisierten Geräten führen. Ist eine Anonymisierung erforderlich, SOLLTE die Nachricht stattdessen in einem Relay oder Collector anonymisiert werden.
7.2.2. enterpriseId (Unternehmenskennung)
Der Parameter "enterpriseId" MUSS ein "SMI Network Management Private Enterprise Code" sein, der von der IANA verwaltet wird und dessen Präfix iso.org.dod.internet.private.enterprise (1.3.6.1.4.1) lautet. Die folgende Nummer MUSS eindeutig sein und gemäß [RFC5226] bei der IANA registriert sein. Das Vorhandensein dieses Parameters dient der Identifizierung der Art des Originators. Originatoren SOLLTEN diesen Parameter angeben.
Ein Relay SOLLTE diesen Parameter angeben, wenn es die Bedeutung der Nachricht wesentlich verändert. Insbesondere SOLLTEN Relays, die Nachrichten aus einem Nicht-syslog-Protokoll in syslog umwandeln, diesen Parameter angeben.
Beim Lesen einer Nachricht mit diesem Parameter kann ein menschlicher Benutzer die Organisation, die den Nachrichtengenerator erstellt hat, anhand der Registrierungsinformationen für die "SMI Network Management Private Enterprise Codes" bei der IANA nachschlagen.
7.2.3. software (Software)
Der Parameter "software" wird verwendet, um das Softwareprodukt zu identifizieren, das die Nachricht erzeugt hat. Dies SOLLTE den Produktnamen enthalten, KANN aber auch andere Informationen enthalten. Ein Relay SOLLTE diesen Parameter nicht ändern.
7.2.4. swVersion (Softwareversion)
Der Parameter "swVersion" wird verwendet, um die Version des Softwareprodukts zu identifizieren, das die Nachricht erzeugt hat. Ein Relay SOLLTE diesen Parameter nicht ändern.
7.2.5. Example (Beispiel)
[origin ip="192.0.2.1" enterpriseId="32473" software="su" swVersion="1.2.3"]
In diesem Beispiel ist das Softwareprodukt, das die Nachricht erzeugt hat, als "su", Version "1.2.3", mit der Private Enterprise Number 32473 identifiziert. Das Gerät, das die Nachricht erzeugt hat, hat die IP-Adresse 192.0.2.1.
7.3. meta (Metadaten)
Die SD-ID "meta" KANN verwendet werden, um Meta-Informationen über die Nachricht bereitzustellen. Dies kann für eine Vielzahl von Zwecken genutzt werden, beispielsweise für Quality-of-Service-Informationen oder in anderen Fällen, in denen eine Klassifizierung oder Anreicherung der Nachricht wünschenswert ist.
Die folgenden optionalen PARAM-NAMEs sind definiert. Es kann null, einen oder mehrere dieser Parameter in einem meta SD-ELEMENT geben.
7.3.1. sequenceId (Sequenz-ID)
Der Parameter "sequenceId" SOLLTE verwendet werden, um eine eindeutige Sequenznummer zur Identifizierung einer Nachricht bereitzustellen. Diese Sequenznummer kann verwendet werden, um verlorene Nachrichten zu erkennen oder die Reihenfolge sicherzustellen. Die Sequenz-ID SOLLTE monoton steigend sein. Der genaue Algorithmus hierfür ist implementierungsspezifisch. Dieser PARAM-VALUE SOLLTE aus einer oder mehreren Dezimalzahlen bestehen. Er KANN umgebrochen werden oder am Anfang neu beginnen, wenn ein Sender neu startet.
7.3.2. sysUpTime (Systembetriebszeit)
Der Parameter "sysUpTime" KANN verwendet werden, um Informationen darüber bereitzustellen, wie lange das System bereits läuft. Wenn der Sender neu startet, SOLLTE dieser auf Null zurückgesetzt werden. Dies kann nützlich sein, um Folgen von Nachrichten bestimmten Geräte-Läufen zuzuordnen. Der Wert dieses Parameters ist eine Dezimalzahl, die die Anzahl der Sekunden seit dem Systemstart zählt.
7.3.3. language (Sprache)
Der Parameter "language" wird verwendet, um die im MSG-Teil verwendete Sprache anzugeben. Dieser PARAM-VALUE MUSS ein Sprach-Tag sein, wie in [RFC5646] definiert.
Wenn die Sprache des MSG nicht bekannt oder nicht identifizierbar ist, SOLLTE dieser Parameter nicht verwendet werden.