【问题标题】:What's the Rationale Behind the Design of GUID's?GUID 设计背后的基本原理是什么?
【发布时间】:2011-01-08 22:54:45
【问题描述】:

我不懂 GUID。我的意思是,我知道它们是一个很大的随机数,重复的可能性很小,但为什么它们有如此严格定义的格式? (我的大部分信息都来自http://en.wikipedia.org/wiki/Globally_unique_identifier。)

为什么不直接将 GUID 设为一个完全随机的 128 位整数并收工?似乎在生成它们时施加的所有限制和规则都会以某种方式减少熵。为什么要为格式和变体规范保留一些位?为什么要指定字节顺序?

变体和格式规范让我很困惑。如果它只是一个随机标识符,为什么 GUID 的消费者会关心它的格式?这是一个 128 位的随机标识符。这还不够吗?

【问题讨论】:

  • 随机和唯一之间是有区别的。 GUID 应该是全局唯一的,因此不适合使用随机数,因为存在重复的可能性。它们不仅在您的计算机上而且在全世界所有计算机上都应该是全球唯一的。

标签: theory guid


【解决方案1】:

不要混淆随机性和唯一性。

如果没有严格的格式,例如,MAC 地址被合并到哪里,那么两台机器可能会同时生成相同的随机标识符。此时,它不再是“全球唯一”。

【讨论】:

  • 但是V4没有使用mac地址。它只是使用一个伪随机数生成器。为什么要包含 GUID 中指定的格式?这只会降低唯一性。
  • @dave:在 v4 标识符的 UUID 中包含版本 ID 可确保版本 4 UUID 不会与非 v4 标识符发生冲突。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2017-03-09
  • 1970-01-01
  • 2010-12-09
  • 2012-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多