2011-01-08 7 views
3

GUID를 이해할 수 없습니다. 내 생각에, 그것들은 복제의 가능성이 아주 적은 큰 임의의 숫자라는 것을 이해합니다. 그러나 왜 그것들은 엄격하게 정의 된 포맷을 가지고 있습니까? (대부분의 정보를 http://en.wikipedia.org/wiki/Globally_unique_identifier에서 참조하고 있습니다.)GUID의 설계에 대한 이유는 무엇입니까?

GUID를 완전히 랜덤 한 128 비트 정수로 만들고 하루를 호출하지 않는 이유는 무엇입니까? 그것들을 생성 할 때 모든 제한과 규칙들이 엔트로피를 감소시키는 것으로 보인다. 형식 및 변형 사양에 대해 예약 된 비트가있는 이유는 무엇입니까? 엔디안을 지정하는 이유는 무엇입니까?

변형 및 형식 사양은 실제로 나를 혼란스럽게합니다. 그것의 단지 임의의 식별자라면, 왜 GUID의 소비자는 그것이 어떤 포맷인지에 대해 관심을 가질 것인가? 128 비트 무작위 식별자입니다. 충분하지 않아?

+2

무작위와 고유의 차이점이 있습니다. GUID는 전 세계적으로 고유해야하므로 반복 가능성이 있기 때문에 난수를 사용하는 것이 적합하지 않습니다. 또한 컴퓨터뿐만 아니라 전 세계의 모든 컴퓨터에서 전 세계적으로 고유해야합니다. –

답변

2

임의성과 고유성을 혼동하지 마십시오.

예를 들어 MAC 주소가 통합 된 위치에 엄격한 형식 지정이 없으면 두 컴퓨터가 동시에 동일한 임의의 식별자를 생성 할 수 있습니다. 이 시점에서 더 이상 "전 세계적으로 고유"하지 않습니다.

+0

그러나 V4는 mac 주소를 사용하지 않습니다. 그냥 의사 난수 생성기를 사용합니다. GUID에 형식을 지정해야하는 이유는 무엇입니까? 그것은 단지 유일성을 감소시킵니다. –

+0

@dave : v4 식별자에 대한 UUID에 버전 ID를 포함하면 버전 4 UUID가 비 -v4 식별자와 충돌하지 않습니다. – ig0774

관련 문제