5.8. UUID Version 8 (UUID Version 8)
5.8. UUID Version 8
UUIDv8 bietet ein RFC-kompatibles Format für experimentelle oder anbieterspezifische Anwendungsfälle. Die einzige Anforderung ist, dass die Varianten- und Versionsbits MÜSSEN wie in den Abschnitten 4.1 und 4.2 definiert gesetzt werden. Die Eindeutigkeit von UUIDv8 ist implementierungsspezifisch und DARF NICHT angenommen werden.
Die einzigen explizit definierten Bits sind die der Versions- und Variantenfelder, wodurch 122 Bits für implementierungsspezifische UUIDs übrig bleiben. Um es klar zu sagen, UUIDv8 ist kein Ersatz für UUIDv4 (Abschnitt 5.4), wo alle 122 zusätzlichen Bits mit zufälligen Daten gefüllt sind.
Einige Beispielsituationen, in denen die Verwendung von UUIDv8 auftreten könnte:
-
Eine Implementierung möchte zusätzliche Informationen innerhalb der UUID einbetten, die über das hinausgehen, was in diesem Dokument definiert ist.
-
Eine Implementierung hat andere Anwendungs- und/oder Sprachbeschränkungen, die die Verwendung einer der aktuellen UUIDs behindern.
Anhang B bietet zwei illustrative Beispiele für benutzerdefinierte UUIDv8-Algorithmen, um zwei Beispielszenarien anzusprechen.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_a |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_a | ver | custom_b |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|var| custom_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| custom_c |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Abbildung 12: UUIDv8 Feld- und Bit-Layout
Felddefinitionen:
custom_a: Die ersten 48 Bits des Layouts, die nach Belieben einer Implementierung gefüllt werden können. Belegt Bits 0 bis 47 (Oktette 0-5).
ver: Das 4-Bit-Versionsfeld, wie in Abschnitt 4.2 definiert, auf 0b1000 (8) gesetzt. Belegt Bits 48 bis 51 von Oktett 6.
custom_b: 12 weitere Bits des Layouts, die nach Belieben einer Implementierung gefüllt werden können. Belegt Bits 52 bis 63 (Oktette 6-7).
var: Das 2-Bit-Variantenfeld, wie in Abschnitt 4.1 definiert, auf 0b10 gesetzt. Belegt Bits 64 und 65 von Oktett 8.
custom_c: Die letzten 62 Bits des Layouts unmittelbar nach dem var-Feld, die nach Belieben einer Implementierung gefüllt werden können. Belegt Bits 66 bis 127 (Oktette 8-15).