2011-01-08 6 views
3

GUIDがわかりません。つまり、重複する可能性はほとんどない大きな乱数であることを理解していますが、そのような厳密に定義された形式を持つのはなぜですか? (ほとんどの私の情報をhttp://en.wikipedia.org/wiki/Globally_unique_identifierから参照しています)GUIDのデザインの背景には何がありますか?

GUIDを完全にランダムな128ビット整数にして、それを1日と呼ぶのはなぜですか?それらを生成する際に加えられるすべての制約や規則は、いくつかの点でエントロピーを減少させるようです。なぜいくつかのビットはフォーマットと変種仕様のために予約されていますか?エンディアンを指定するのはなぜですか?

異形とフォーマットの仕様は、本当に私を困惑させるものです。その単なるランダムな識別子である場合、GUIDの消費者はなぜそれがどの形式であったかを気にするのでしょうか?それは128ビットのランダムな識別子です。十分ではありませんか?

+2

ランダムとユニークの違いがあります。 GUIDはグローバルに一意である必要があります。そのため、繰り返しの確率があるため、乱数を使用するのは適切ではありません。また、あなたのコンピュータだけでなく、世界中のすべてのコンピュータからグローバルにユニークでなければなりません。 –

答えて

2

ランダム性と一意性を混同しないでください。

たとえば、MACアドレスが組み込まれている場所で厳密なフォーマットを行わなければ、2台のマシンが同時に同じランダム識別子を生成する可能性があります。この時点では、もはや「グローバルにユニーク」ではありません。

+0

しかし、V4はMACアドレスを使用しません。擬似乱数ジェネレータを使用するだけです。 GUIDに書式指定を含める理由は何ですか?一意性が低下するだけです。 –

+0

@dave:v4識別子のUUIDにバージョンIDを含めると、バージョン4のUUIDがv4以外の識別子と衝突しないようになります。 – ig0774

関連する問題