GUID是什么意思

GUID(全球唯一标识符)也称为UUID(通用唯一标识符)。

特点:

GUID/UUID是由特定算法生成的二进制长度为128位的数字。

在空间和时间上是唯一的,保证了同一时间不同地方产生的数字是不一样的。

公元3400年之前产生的UUID/GUID不同于任何其他产生的uuid/GUID。

当需要GUID时,它可以由算法自动生成,不需要任何权限来管理它。

GUID长度固定,相对较短,非常适合排序、识别和存储。

使用:

识别特定的组件、程序、文件、数据、用户等。,并且可以在网络中使用。

格式:

UUID字符串格式可以用以下EBNF语言来描述:

UUID = & lt;time _ low & gt“-”& lt;time _ mid & gt"-"

& lt时间上限和版本& gt"-"

& lt时钟_序列_和_保留& gt

& ltclock _ seq _ low & gt“-”& lt;node & gt

time _ low = 4 * & lthexOctet & gt

time _ mid = 2 * & lthexOctet & gt

time _ high _ and _ version = 2 * & lthexOctet & gt

clock _ seq _ and _ reserved = & lthexOctet & gt

clock _ seq _ low = & lthexOctet & gt

node = 6 * & lthexOctet & gt

hexOctet = & lthexDigit & gt& lthexDigit & gt

十六进制数字=

"0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

| "a" | "b" | "c" | "d" | "e" | "f "

| "A" | "B" | "C" | "D" | "E" | "F "

例如:f 81 D4 FAE-7 dec-11 d0-a765-00 a0c 91 e6bf 6。

算法:

GUID的算法不是唯一的,可以通过多种方法生成。

GUID生成器不仅标识不同的时间,还唯一标识不同的地点,可以使用网卡的48位IEEE 802地址。

GUID的128位可分为16个字节,前8个字节是时间和版本号,中间2个字节是UUID变量和时钟序数,后6个字节标识地点。

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|时间下限|

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| time_mid | time_hi_and_version |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|时钟序列高分辨率|时钟序列低分辨率|节点(0-1) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|节点(2-5) |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

UUID变量位于第9个字节的前3位,有四种定义:

Msb0 Msb1 Msb2描述

0 - -保留,NCS向后兼容。

1 0 -本文档中指定的变体。

1 1 0保留,微软公司向后

和睦相处

1 1 1保留给将来定义。

版本号位于第七个字节的前4位:

Msb0 Msb1 Msb2 Msb3版本描述

0 0 0 1 1基于时间的版本

在此指定

文档。

0 0 1 0 2为DCE保留

安全版,带

嵌入式POSIX UIDs。

0 0 1 1 3基于名称的版本

在此指定

文件

0 1 0 0 4随机或伪

随机生成

版本在中指定

这份文件

时间戳(时间戳)

UUID版本1,UTC时间从15年10月1582的00: 00: 00.00开始,以100纳秒计数。

当没有UTC时间时,也可以使用本地时间,只要在系统中保持一致即可,不建议使用。

当地时间和UTC时间只是时差问题。

UTC -协调世界时

UUID版本3,它从命名空间生成一个60位数字。

UUID版本4,随机或伪随机产生一个60位数字。

时钟顺序

UUID版本1,时钟序数用于避免时钟变慢后的重复。比如把网卡搬到另一台机器上,或者断电。

如果知道之前的时钟序列号,就加1,否则随机生成。替换随机数种子以减少重复的可能性。

UUID版本3,从命名空间生成一个14数字。

位置(节点)的标识

UUID版本1,使用主机的IEEE地址,如果系统有多个IEEE 802地址,选择任意一个;

如果没有IEEE地址,将其设为随机或伪随机,并确保它不同于网卡上的地址(参见第4节)。

UUID版本3,它从命名空间生成一个48位数字。

UUID版本4,随机或伪随机产生一个48位数字。

参考资料:

http://www . ics . UCI . edu/~ ejw/authoring/uuid-guid/draft-leach-uuids-guids-01 . txt