GUID的设计背后的原理是什么?

4
我不理解GUID。我的意思是,我知道它们是一个大的随机数,极小的可能重复,但为什么它们有如此严格的定义格式?(我参考了维基百科的大部分信息http://en.wikipedia.org/wiki/Globally_unique_identifier。)
为什么不只是将GUID作为完全随机的128位整数并完成呢?似乎对生成它们施加的所有限制和规则都会在某些方面降低熵。为什么要保留一些位用于格式和变体规范?为什么要指定字节序?
变体和格式规范真正让我感到困惑。如果它只是一个随机标识符,那么GUID的使用者为什么关心它是什么格式?这是一个128位的随机标识符,不是足够了吗?

2
随机和唯一是有区别的。GUID 应该是全局唯一的,所以使用随机数不适合,因为有可能会重复。而且,它们应该不仅在你的计算机上是唯一的,而且在全世界所有计算机中也必须是唯一的。 - Darin Dimitrov
1个回答

2
不要混淆随机性和唯一性。
如果没有严格的格式约束,比如MAC地址嵌入的位置,则两台机器可能会在同一时刻生成相同的随机标识符。此时,它就不再是“全局唯一”的了。

但是V4不使用MAC地址,它只使用伪随机数生成器。为什么要在GUID中包含格式指定?那只会降低唯一性。 - dave mankoff
包括版本ID在UUID v4标识符中可以确保没有版本4的UUID与非v4标识符发生冲突。 - ig0774

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接