문제

나는이 두 가지 약어가 주변에 던져진 것을 보았고, 안내와 UUID 사이에 차이가 있는지 궁금합니다.

도움이 되었습니까?

해결책

그만큼 간단한 답변 이다: 차이 없음, 그들은 같은 것입니다. 고유 한 값으로 사용되는 16 바이트 (128 비트) 값으로 취급하십시오. Microsoft-Speak에서는 Guids라고 불리며 Microsoft-Speak를 사용하지 않을 때는 UUID를 호출합니다.

UUID 사양 및 Microsoft의 저자조차도 동의어라고 주장합니다.

  • IETF 소개에서 RFC 4122 "보편적으로 고유 한 식별자 (UUID) 항아리 네임 스페이스":"UUIDS 용 균일 리소스 이름 네임 스페이스 (전 세계적으로 고유 한 식별자)라고도하는 UUIDS (UUIDS) (범용 고유 식별자). "

  • 로부터 ITU-T 추천 X.667, ISO/IEC 9834-8 : 2004 국제 표준: "UUID는 전 세계적으로 고유 한 식별자 (Guids)로도 알려져 있지만이 용어는이 권장 사항에는 사용되지 않습니다."

  • 그리고 Microsoft도 주장 안내는 UUID RFC에 의해 지정됩니다. "Microsoft Windows 프로그래밍 및 Windows 운영 체제에서 [RFC4122]에 지정된 전 세계적으로 고유 한 식별자 (GUID)는 ... UUID (UD)라는 용어가 사용됩니다. Windows 프로토콜 사양에서 Guid의 동의어로. "

하지만 정답 "uuid"라고 말할 때 질문이 무엇을 의미하는지에 따라 다릅니다.

첫 번째 부분은 Asker가 "uuid"라고 말할 때 생각하는 것에 달려 있습니다.

Microsoft의 주장은 모든 UUID가 안내임을 암시합니다. 그러나 모든지도가 진짜 uuids입니까? 즉, 모든 UUID의 세트는 모든 안내서 세트의 적절한 하위 집합 일뿐입니까, 아니면 정확히 동일한 세트입니까?

RFC 4122의 세부 사항을 살펴보면 UUID의 네 가지 "변형"이 있습니다. 이는 대부분 UUID 사양의 생성에서 이러한 사양이 모기 전에 16 바이트 식별자가 사용 되었기 때문입니다. 4.1.1 절에서 RFC 4122, 네 변형 UUID의 다음과 같습니다.

  1. 예약 된 네트워크 컴퓨팅 시스템 후진 호환성
  2. 그만큼 변종 RFC 4122에 지정된 (그 중 5 개의 하위 변수가 있으며, 이는 "버전"이라고합니다.
  3. 예약, Microsoft Corporation 후진 호환성
  4. 향후 정의를 위해 예약되었습니다.

RFC 4122에 따르면 모든 uuid 변형 "진짜 uuids"이고 모든지도는 실제 uuid입니다. 문자 그대로의 질문에 "Guid와 UUID 사이에 어떤 차이가 있습니까?"에 대한 답은 RFC 4122 UUID에 대한 대답이 아닙니다. 차이 없음 (그러나 아래 두 번째 부분에 따라).

그러나 모든지도가있는 것은 아닙니다 변종 2 UUIDS (예 : Microsoft Com에는 변형 3 UUID 인 GUID가 있습니다). 질문이 "Guid와 변형 2 UUID 사이에 차이가 있습니까"라면 대답은 예일 것입니다. 질문을하는 사람은 아마도 모를 것입니다 변형 그리고 그들은 단지 생각할 수 있습니다 변종 그들이 "uuid"라는 단어를 말할 때 2 개의 uuids (예 : Mac 주소+시간과 임의의 숫자 알고리즘 형태는 모두 UUID를 모호하게 알고 있습니다. 버전변종 2). 어떤 경우에는 대답이 있습니다 예 다릅니다.

따라서 대답은 부분적으로 "uuid"라는 단어를 말할 때 사람이 생각하는 것에 달려 있습니다. 그것들은 변형 2 uuid (그들이 알고있는 유일한 변형이기 때문에) 또는 모든 uuids를 의미합니까?

두 번째 부분은 UUID의 정의로 사용되는 사양에 따라 다릅니다.

그것이 혼란 스러웠다 고 생각한다면, 읽으십시오 ITU-T X.667 ISO/IEC 9834-8 : 2004 정렬되고 완전히 기술적으로 호환됩니다. RFC 4122. 11.2 절에 추가 문장이 있습니다. 즉, "이 권고에 부합하는 모든 UUID | 국제 표준은 Octet 7의 비트 7이 1로 설정된 변형 비트와 OCTET 7의 비트 6이 0으로 설정되어 있어야합니다." 그것은만을 의미합니다 변종 2 UUID는 해당 표준을 준수합니다 (이 두 비트 값은 평균 변종 2). 그것이 사실이라면, 모든 Guid가 ITU-T/ISO/IEC UUID를 준수하는 것은 아닙니다. 적합한 ITU-T/ISO/IEC UUID는 변종 2 값.

따라서 실제 대답은 질문이 묻는 UUID의 사양에 따라 다릅니다. 우리가 변형 2 uuid만이 아니라 모든 uuid에 대해 명확하게 이야기하고 있다고 가정 할 때 : 차이 없음 Guid와 Ietf의 uuids 사이에 있지만 네 차이 Guid와 따르게 하는 ITU-T/ISO/IEC의 UUIDS!

이진 인코딩은 다를 수 있습니다

이진으로 인코딩 될 때 (사람이 읽을 수있는 텍스트 형식과 반대), Guid 저장 될 수 있습니다 다음과 같이 네 개의 다른 필드를 갖는 구조에서. 이 형식은 다음과 같습니다 UUID 표준 처음 3 개의 필드의 바이트 순서에서만.

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

다른 팁

Guid는 Microsoft의 UUID 표준 구현입니다.

위키 백과:

GUID라는 용어는 일반적으로 Microsoft의 구현을 의미합니다. 보편적으로 고유 한 식별자 (uuid) 표준.

동일한 Wikipedia 기사에서 업데이트 된 인용문 :

RFC 4122 자체는 UUID가 "Guids"라고도합니다. 이 모든 것이 "Guid"는 원래 Microsoft가 사용하는 UUID의 변형을 언급하는 반면, 단순히 UUID의 대체 이름이되었음을 암시합니다.

설마. GUID는 Microsoft 중심적이지만 UUID는 더 광범위하게 사용됩니다 (예 : URN : UUID : URN 체계 및 Corba).

Guid는 UUID와 같은 방식으로 반드시 128 비트 값이 아닌 영역에서 오랫동안 사용되는 사용법을 가지고 있습니다. 예를 들어, RSS 사양은 GUIDS를 정의합니다 "IsperMalink"속성을 사용하여 독특한 한, 선택한 값이 사용중인 값이 신디케이트되는 항목에 대한 퍼머 링크 일뿐임을 지정할 수 있습니다.

마이크로 소프트 GUID의 텍스트 표현은 두 개의 곱슬 괄호로 둘러싸인 uuid의 형태 일 수 있습니다. {}.

SQL Server의 Guid와 PostgreSQL의 UUID 간의 한 가지 차이점은 문자 케이스입니다. SQL Server는 PostgreSQL이 출력하는 동안 상단을 출력합니다.

16 진수 값 "A"Through "F"는 소문자로 출력되며 입력에 대해서는 둔감합니다. - RFC4122#섹션 -3

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top