ISO/IEC 9834-8:2014
(Main)Information technology — Procedures for the operation of object identifier registration authorities — Part 8: Generation of universally unique identifiers (UUIDs) and their use in object identifiers
Information technology — Procedures for the operation of object identifier registration authorities — Part 8: Generation of universally unique identifiers (UUIDs) and their use in object identifiers
ISO/IEC 9834-8:2014 specifies procedures for the generation of universally unique identifiers (UUIDs) and for their use in the international object identifier tree under the joint UUID arc.
Technologies de l'information — Procédures opérationnelles pour les organismes d'enregistrement d'identificateur d'objet — Partie 8: Génération des identificateurs uniques universels (UUID) et utilisation de ces identificateurs dans les composants d'identificateurs d'objets
General Information
Relations
Standards Content (Sample)
INTERNATIONAL ISO/IEC
STANDARD 9834-8
Third edition
2014-08-15
Information technology — Procedures for
the operation of object identifier
registration authorities —
Part 8:
Generation of universally unique
identifiers (UUIDs) and their use in object
identifiers
Technologies de l'information — Procédures opérationnelles pour les
organismes d'enregistrement d'identificateur d'objet —
Partie 8: Génération des identificateurs uniques universels (UUID) et
utilisation de ces identificateurs dans les composants d'identificateurs
d'objets
Reference number
ISO/IEC 9834-8:2014(E)
©
ISO/IEC 2014
© ISO/IEC 2014
All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any
means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission.
Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.
ISO copyright office
Case postale 56 CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.org
Web www.iso.org
Published in Switzerland
ii © ISO/IEC 2014 – All rights reserved
Foreword
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical
Commission) form the specialized system for worldwide standardization. National bodies that are members of
ISO or IEC participate in the development of International Standards through technical committees
established by the respective organization to deal with particular fields of technical activity. ISO and IEC
technical committees collaborate in fields of mutual interest. Other international organizations, governmental
and non-governmental, in liaison with ISO and IEC, also take part in the work. In the field of information
technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 2.
The main task of the joint technical committee is to prepare International Standards. Draft International
Standards adopted by the joint technical committee are circulated to national bodies for voting. Publication as
an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent
rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
ISO/IEC 9834-8 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology,
Subcommittee SC 6, Telecommunications and information exchange between systems, in collaboration with
ITU-T. The identical text is published as Rec. ITU-T X.667 (10/2012).
This third edition cancels and replaces the second edition (ISO/IEC 9834-8:2008), which has been technically
revised.
ISO/IEC 9834 consists of the following parts, under the general title Information technology — Procedures for
the operation of object identifier registration authorities:
— Part 1: General procedures and top arcs of the international object identifier tree
— Part 2: Registration procedures for OSI document types
— Part 3: Registration of Object Identifier arcs beneath the top-level arc jointly administered by ISO and
ITU-T
— Part 4: Register of VTE Profiles
— Part 5: Register of VT Control Object Definitions
— Part 6: Registration of application processes and application entities
— Part 7: Joint ISO and ITU-T Registration of International Organizations
— Part 8: Generation of universally unique identifiers (UUIDs) and their use in object identifiers
— Part 9: Registration of object identifier arcs for applications and services using tag-based identification
© ISO/IEC 2014 – All rights reserved iii
CONTENTS
Page
1 Scope . 1
2 Normative references . 1
2.1 Identical Recommendations | International Standards . 1
2.2 Other normative references . 1
3 Terms and definitions . 2
3.1 ASN.1 notation . 2
3.2 Registration authorities . 2
3.3 Network terms . 2
3.4 Additional definitions . 2
4 Abbreviations . 3
5 Notation . 3
6 UUID structure and representation . 3
6.1 UUID field structure . 3
6.2 Binary representation . 4
6.3 Representation as a single integer value . 4
6.4 Hexadecimal representation . 4
6.5 Formal syntax of the hexadecimal representation . 4
7 Use of a UUID as the primary integer value and Unicode label of a Joint UUID arc . 5
8 Use of a UUID to form a URN . 5
9 Rules for comparison and ordering of UUIDs . 5
10 Validation . 6
11 Variant bits . 6
12 Use of UUID fields and transmission byte order . 6
12.1 General . 6
12.2 Version . 7
12.3 Time . 7
12.4 Clock sequence . 8
12.5 Node . 8
13 Setting the fields of a time-based UUID. 9
14 Setting the fields of a name-based UUID . 9
15 Setting the fields of a random-number-based UUID . 10
Annex A – Algorithms for the efficient generation of time-based UUIDs . 11
A.1 Basic algorithm . 11
A.2 Reading stable storage . 11
A.3 System clock resolution . 11
A.4 Writing stable storage . 12
A.5 Sharing state across processes . 12
Annex B – Properties of name-based UUIDs . 13
Annex C – Generation of random numbers in a system . 14
Annex D – Sample implementation . 15
D.1 Files provided . 15
D.2 The copyrt.h file . 15
D.3 The uuid.h file . 15
D.4 The uuid.c file . 16
D.5 The sysdep.h file . 19
Rec. ITU-T X.667 (10/2012) iii
Page
D.6 The sysdep.c file . 19
D.7 The utest.c file . 21
D.8 Sample output of utest . 21
D.9 Some name space IDs . 22
Bibliography . 23
iv Rec. ITU-T X.667 (10/2012)
Introduction
This Recommendation | International Standard standardizes the generation of universally unique identifiers (UUIDs).
UUIDs are an octet string of 16 octets (128 bits). The 16 octets can be interpreted as an unsigned integer encoding, and
the resulting integer value can be used as the primary integer value (defining an integer-valued Unicode label) for an arc
of the International Object Identifier tree under the Joint UUID arc. This enables users to generate object identifier and
OID internationalized resource identifier names without any registration procedure.
UUIDs are also known as globally unique identifiers (GUIDs), but this term is not used in this Recommendation |
International Standard. UUIDs were originally used in the network computing system (NCS) [7] and later in the Open
Software Foundation's Distributed Computing Environment (DCE) [6]. ISO/IEC 11578 [5] contains a short definition
of some (but not all) of the UUID formats specified in this Recommendation | International Standard. The specification
in this Recommendation | International Standard is consistent with all these earlier specifications.
UUIDs forming a component of an OID are represented in ASN.1 value notation as the decimal representation of their
integer value, but for all other display purposes it is more usual to represent them with hexadecimal digits with a hyphen
separating the different fields within the 16-octet UUID. This representation is defined in this Recommendation |
International Standard.
If generated according to one of the mechanisms defined in this Recommendation | International Standard, a UUID is
either guaranteed to be different from all other UUIDs generated before 3603 A.D., or is extremely likely to be different
(depending on the mechanism chosen).
No centralized authority is required to administer UUIDs. Centrally generated UUIDs are guaranteed to be different
from all other UUIDs centrally generated.
A UUID can be used for multiple purposes, from tagging objects with an extremely short lifetime, to reliably
identifying very persistent objects across a network, particularly (but not necessarily) as part of an object identifier or
OID internationalized resource identifier value, or in a uniform resource name (URN).
The UUID generation algorithm specified in this Recommendation | International Standard supports very high
allocation rates: 10 million per second per machine if necessary, so UUIDs can also be used as transaction IDs. An
informative annex provides a program in the C language that will generate UUIDs in accordance with this
Recommendation | International Standard.
Three algorithms are specified for the generation of unique UUIDs, using different mechanisms to ensure uniqueness.
These produce different versions of a UUID.
The first (and most common) mechanism produces the so-c
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.