Ответ 1
простой ответ: без разницы, это одно и то же. Рассматривайте их как значение в 16 байт (128 бит), которое используется как уникальное значение. В Microsoft говорят, что они называются GUID, но называть их UUID, когда вы не используете Microsoft-talk.
Даже авторы спецификации UUID и Microsoft утверждают, что они являются синонимами:
-
От введения к IETF RFC 4122 "Универсальное уникальное идентификационное имя (UUID) URN Namespace":" Единое пространство имен имен унифицированных ресурсов для UUID (универсально уникальный идентификатор), также известный как GUID (глобально уникальный идентификатор).
-
Из Рекомендация ITU-T X.667, ISO/IEC 9834-8: 2004 Международный стандарт:" UUID также известных как глобально уникальные идентификаторы (GUID), но этот термин не используется в настоящей Рекомендации.
-
И Microsoft даже утверждает, GUID указывается в UUID RFC: "В Microsoft Windows и в операционных системах Windows глобальный уникальный идентификатор (GUID), как указано в [RFC4122],... Термин универсально уникальный идентификатор (UUID) иногда используется в спецификациях протокола Windows как синоним GUID."
Но правильный ответ зависит от того, что означает этот вопрос, когда он говорит "UUID"...
Первая часть зависит от того, что думает ассер, когда говорят "UUID".
Утверждение корпорации Microsoft подразумевает, что все UUID являются идентификаторами GUID. Но являются ли все GUID реальными UUID? То есть, набор всех UUID - это просто соответствующее подмножество набора всех GUID, или это то же самое множество?
Глядя на детали RFC 4122, существует четыре разных "варианта" UUID. Это происходит главным образом из-за того, что такие 16-байтовые идентификаторы использовались до того, как эти спецификации были объединены при создании спецификации UUID. Из раздела 4.1.1 RFC 4122 четыре варианта UUID:
- Зарезервированная, обратная совместимость системы сетевых вычислений
- Вариант, указанный в RFC 4122 (из которых пять подвариантов, которые называются "версиями" )
- Зарезервированная, обратная совместимость Microsoft Corporation
- Зарезервировано для будущего определения.
Согласно RFC 4122, все варианты UUID являются "реальными UUID", тогда все GUID являются реальными UUID. В буквальном вопросе "есть ли разница между GUID и UUID" ответ определенно нет для RFID 4122 UUID: без разницы (но подчиняется второй части ниже).
Но не все GUID являются вариантами UUID 2 (например, Microsoft COM имеет идентификаторы GUID, которые являются вариантами 3 UUID). Если бы вопрос был "есть ли разница между GUID и вариантами UUID варианта 2", тогда ответ был бы да - они могут быть разными. Кто-то, задающий вопрос, вероятно, не знает о вариантах, и они могут думать только о вариантах UUID варианта 2, когда говорят слово "UUID" (например, они смутно знают о MAC-адресе + времени и формах алгоритмов случайных чисел UUID, которые оба варианта варианта 2). В этом случае ответ да другой.
Таким образом, ответ, отчасти, зависит от того, о чем думает человек, когда говорят слово "UUID". Они означают UUID варианта 2 (потому что это единственный вариант, о котором они знают) или все UUID?
Вторая часть зависит от того, какая спецификация используется как определение UUID.
Если вы считаете, что это путано, прочитайте ITU-T X.667 ISO/IEC 9834-8: 2004, который должен быть согласован и полностью технически совместим с RFC 4122. В разделе 11.2 содержится дополнительное предложение, в котором говорится: "Все стандарты UUID, соответствующие этой Рекомендации, должны иметь биты варианта с битом 7 октета 7, установленным в 1 и бит 6 октета 7, установленным в 0". Это означает, что только UUID варианта 2 соответствует этому стандарту (эти два битовых значения означают вариант 2). Если это так, то не все GUID соответствуют ITU-T/ISO/IEC UUID, потому что соответствующие UUID ITU-T/ISO/IEC могут быть только вариантами 2.
Следовательно, реальный ответ также зависит от того, какую спецификацию UUID задает вопрос. Предполагая, что мы четко говорим обо всех UUID, а не только о вариантах UUID: между идентификаторами GUID и IETF UIVID существует без разницы, но да разница между GUID и соответствующими ITU-T/ISO/IEC UUIDs!
Двоичные кодировки могут отличаться
При кодировании в двоичном формате (в отличие от текстового формата, пригодного для человека) GUID может храниться в структуре с четырьмя различными полями следующим образом. Этот формат отличается от стандартом UUID только в байтовом порядке первых трех полей.
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big