Guid-Eindeutigkeit auf anderem Rechner [duplizieren]

8

Nach dem Lesen aller Beiträge auf Guid, bin ich immer noch über eine einfache Sache unklar:

Guids, die von verschiedenen Maschinen generiert werden, behalten ihre Eindeutigkeit oder nicht.

Ich habe über Guid-Eindeutigkeit auf einer einzelnen Maschine gelesen, aber ich weiß immer noch nicht über Einzigartigkeit mit verschiedenen Maschinen

    
Rohit Garg 28.12.2012, 18:46
quelle

3 Antworten

4

GUID sind "praktisch" universell eindeutig.

  

Eine GUID ist eine 128-Bit-Ganzzahl (16 Byte), die auf allen Computern und Netzwerken überall dort verwendet werden kann, wo eine eindeutige Kennung erforderlich ist. Ein solcher Bezeichner hat eine sehr geringe Wahrscheinlichkeit, dupliziert zu werden.

Von der MSDN

    
Tilak 28.12.2012, 18:49
quelle
12

Es wird allgemein akzeptiert, dass eine neue zufällige GUID IMMER einzigartig ist. Probabilistisch ist das nicht wahr, aber die Wahrscheinlichkeit, einen Betrogenen zu erzeugen, ist so klein, dass wir uns nicht darum kümmern müssen.

Die Wahrscheinlichkeit, zwei identische Guids zu erzeugen, beträgt 1 in 5.316.911.983.139.663.491.615.228.241.121.400.000

Wenn Sie also 1 Million Guids auf 1 Million Computern generieren, sind die Chancen, ein Duplikat zu erzeugen,: 1 in 5.316.911.983.139.663.491.615.228

Nehmen Sie 1 Milliarde Leitfäden für 1 Milliarde Computer, die Chancen, einen Betrogenen zu generieren, sind: 1 in 5.316.911.983.139.663.491 (das ist 5,3 Trillionen).

Die Zahlen sprechen für sich selbst, du wirst keinen Betrogenen erzeugen.

Wenn Sie sich fragen, wo ich diese Zahlen bekomme, ist der Wert einer GUID 122 Bit. 2 ^ 122 ist 5.3169119831396634916152282411214 x 10 ^ 36

Einige verrückte Figuren ...
Wenn Sie 1 Million Leiter pro Sekunde erzeugen, würden 168.486.464.147.580.370.470.736 Jahre ausreichen, um probabilistisch ein Duplikat zu garantieren.

@viggity erwähnt einige Guids haben 48 Bits von einer Mac-Adresse genommen, die Zahlen sind immer noch Staffelung daher die Erschwinglichkeit zu verlieren diese Bits. Wenn man das obige Beispiel von 2 Millionen Führungen pro Sekunde (auf demselben Computer) nimmt, würde es immer noch 598.584.166 Jahre dauern, um einen Betrogenen zu garantieren. Das sind 600 Millionen Jahre. Das ist länger als das Leben auf der Erde. Oder, wenn du ein Kreationist der jungen Erde bist, ist das mindestens sechzigtausend Mal so lang wie die Erde.

    
Paul Fleming 28.12.2012 18:48
quelle
2

Ich erinnere mich, irgendwo zu hören, dass, wenn Sie den IPV4-Adressraum (32 Bit) als die Größe einer Briefmarke visualisiert haben, IPV6 (128 Bit) die Größe unseres Sonnensystems ist. Es wird einfach nicht passieren, einen Betrogenen zu erzeugen.

Außerdem ist es wahrscheinlicher, dass Sie die gleiche Maschine als zwei verschiedene Maschinen duplizieren, da die meisten Guid-Generierungsalgorithmen die NIC-MAC-Adresse Ihres Computers in die GUID einbetten (es sind 48 Bit). Obwohl es Algorithmen gibt, die die MAC-Adresse nicht einbetten und rein zufällig sind. siehe: Ссылка

Edit: ein weiteres spaßiges Beispiel das Volumen der Erde beträgt ungefähr 10 ^ 27 Kubikzentimeter. Das bedeutet, dass jeder Kubikzentimeter für das GESAMTE VOLUMUM der Erde 340.000.000.000 Guids für sich allein haben könnte. Diese Zahl ist überwältigend groß.

Alternativ könnte jeder quadratische NANOmeter der Erdoberfläche etwa 650.000 Guids für sich haben.

    
viggity 28.12.2012 18:57
quelle