まあ、それは異なります。
定義されたメカニズムの1つによってUUIDが生成される場合、それらは一意であることが保証されているか、他のすべての生成されたUUIDとは異なります(つまり、これまでに生成されたことがなく、再度生成されることもありません)。一意である(メカニズムによって異なります)。
これは、使用しているジェネレーターに問題がある可能性があることを意味します。彼らは、ITU-T仕様を使用していると言っています。
ドキュメントの7ページに移動しましょう。時間を使用していて、次のことを想定できる場合:
- システム時刻は変更されません。
- マシンの識別に使用されるノードIDは変更されません。
次に、少なくとも次のことを主張できます。
「UUIDは、生成された他のすべてのUUIDとは異なります」。これは、時間が流れ、粒度が100nsであるためです。
生成されたUUIDを他のマシンと共有する必要がある場合、衝突が発生する可能性があります。そうしないと、時間が変更されます(多くの国では、年に2回、時間調整があることを忘れないでください)。そのため、クロックシーケンスフィールドがあります。さらに、それはかなり小さいので、この場合、あなたはそれを主張することになります:
「UUIDは一意である可能性が非常に高いです。」
これの代わりに乱数ジェネレーターを使用している場合は、次のことだけをアサートできます。
「UUIDは一意である可能性が非常に高いです。」乱数ジェネレーターの要件は一意の数値を生成することではないためです(ただし、優れた乱数ジェネレーターを使用すると、非常に可能性が非常に高くなります)。
したがって、通常の状態(たとえば、あるコンピューターから別のコンピューターに1つのネットワークカードを移動せず、時間を過去に戻す場合)では、それらは(時間を使用して)一意であると見なすことができると思います。乱数ジェネレーターを使用している場合、それらが一意であるとは想定できませんが、一意である可能性が非常に高くなります(衝突の確率について...まあ...それが優れた乱数ジェネレーターで発生する場合は、次の流星群の家)。
参照
http://blogs.msdn.com/b/oldnewthing/archive/2008/06/27/8659071.aspxhttp://en.wikipedia.org/wiki/Birthday_attack
_