Aller au contenu principal

5.8. UUID Version 8 (UUID version 8)

5.8. UUID Version 8

UUIDv8 fournit un format compatible RFC pour des cas d'utilisation expérimentaux ou spécifiques au fournisseur. La seule exigence est que les bits de variante et de version DOIVENT être définis comme indiqué dans les sections 4.1 et 4.2. L'unicité d'UUIDv8 sera spécifique à l'implémentation et NE DOIT PAS être supposée.

Les seuls bits explicitement définis sont ceux des champs de version et de variante, laissant 122 bits pour les UUID spécifiques à l'implémentation. Pour être clair, UUIDv8 n'est pas un remplacement pour UUIDv4 (section 5.4) où tous les 122 bits supplémentaires sont remplis avec des données aléatoires.

Quelques exemples de situations dans lesquelles l'utilisation d'UUIDv8 pourrait se produire:

  • Une implémentation souhaite intégrer des informations supplémentaires dans l'UUID autres que ce qui est défini dans ce document.

  • Une implémentation a d'autres restrictions d'application et/ou de langage qui inhibent l'utilisation de l'un des UUID actuels.

L'annexe B fournit deux exemples illustratifs d'algorithmes UUIDv8 personnalisés pour répondre à deux scénarios d'exemple.

 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Figure 12: UUIDv8 Field and Bit Layout (Disposition des champs et des bits UUIDv8)

Définitions des champs:

custom_a: Les 48 premiers bits de la disposition qui peuvent être remplis comme une implémentation le juge approprié. Occupe les bits 0 à 47 (octets 0-5).

ver: Le champ de version de 4 bits tel que défini par la section 4.2, défini sur 0b1000 (8). Occupe les bits 48 à 51 de l'octet 6.

custom_b: 12 bits supplémentaires de la disposition qui peuvent être remplis comme une implémentation le juge approprié. Occupe les bits 52 à 63 (octets 6-7).

var: Le champ de variante de 2 bits tel que défini par la section 4.1, défini sur 0b10. Occupe les bits 64 et 65 de l'octet 8.

custom_c: Les 62 derniers bits de la disposition suivant immédiatement le champ var à remplir comme une implémentation le juge approprié. Occupe les bits 66 à 127 (octets 8-15).