Từ khoá: Số Hiệu, Tiêu đề hoặc Nội dung ngắn gọn của Văn Bản...

Đăng nhập

Đang tải văn bản...

Tiêu chuẩn quốc gia TCVN 10583-8:2014 về Công nghệ thông tin - Liên kết hệ thống mở - Phần 8

Số hiệu: TCVN10583-8:2014 Loại văn bản: Tiêu chuẩn Việt Nam
Nơi ban hành: *** Người ký: ***
Ngày ban hành: Năm 2014 Ngày hiệu lực:
ICS:35.100.01 Tình trạng: Đã biết

Bit 7

Bit 6

Bit 5

Mô tả

0

-

-

Lưu trữ để cung cấp tính tương thích NCS sau này

1

0

-

Giá trị biến thể được quy định trong Tiêu chuẩn này

1

1

0

Lưu trữ để cung cấp tính tương thích sau này của tập đoàn Microsoft

1

1

1

Lưu trữ để sử dụng trong tương lai của Tiêu chuẩn này

12 Sử dụng các trường UUID và thứ tự byte khi truyền

12.1 Yêu cầu chung

12.1.1 Bảng 2 cung cấp vị trí và tóm tắt cách sử dụng các trường UUID khác nhau trong biểu diễn nhị phân

Bảng 2 – Vị trí và cách sử dụng các trường UUID

Trường

Octet # trong

UUID

Mô tả

 “TimeLow”

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bit hàng thấp của giá trị Time (32 bits)

 “TimeMid”

11-10

Bit hàng giữa của giá trị Time (16 bits)

 “VariantAndTimeHigh”

9-8

Version (4 bits) kế tiếp bit hàng cao của Clock Sequence (6 bits)

 “VariantAndClockSeqHigh”

7

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

 “ClockSeqLow”

6

Bit hàng thấp của Clock Sequence (8 bits)

 “Node”

5-0

Node (Xem điều 12.5) (48 bits)

12.1.2 Vị trí của trường UUID trong biểu diễn nhị phân được mô tả trong Hình 1

Hình 1 – Ví trí của trường UUID trong biểu diễn nhị phân

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

GHI CHÚ 1: Thứ tự các bit trong một octet được quy định bởi cơ chế truyền thông tin.

GHI CHÚ 2: 16 octet liên tiếp theo thứ tự như quy định ở trên được sử dụng để truyền một UUID nhưng các đặc tả giao thức có thể chọn phương tiện truyền UUID luân phiên, bao gồm sự phân m ảnh hoặc truyền đi các phần của UUID (ví dụ như các phần thêm vào giá trị Time).

12.2 Phiên bản

12.2.1 Ba phương thức thay thế để tạo ra UUID (theo thời gian, theo tên, theo số ngẫu nhiên) được xác định và phân biệt bằng bốn bit quan trọng nhất của trường “VersionAndTimeHigh” (Bit 4 đến 7 của octet 9 của UUID). UUID được tạo ra sử dụng các cơ chế khác nhau gọi là “các phiên bản UUID khác nhau”.

CHÚ THÍCH – Không hoàn toàn đúng khi m ô tả phiên bản này như “ phiên bản UUID khác”, tuy nhiên tên gọi này vẫn được sử dụng vì một số lý do lịch sử. Không có khái niệm “số phiên bản” truyền thống đối với định dạng UUID, phiên bản m ới được xác định như một phiên bản sửa đổi trong tiêu chuẩn này. Bất cứ định dạng UUID mới nào trong tương lai sẽ được định danh bởi một giá trị khác của các bit biến thể.

12.2.2 Bảng 3 liệt kê “UUID version” hiện tại sử dụng 4 bit đầu tiên của trường “VersionAndTimeHigh” (Bit 4 đến 7 của octet 9 của UUID). Nó cũng ấn định giá trị “Version” nguyên cho liên kết của các bit.

CHÚ THÍCH - Giá trị phiên bản của 2 không được sử dụng cho mục tiêu tương thích với định nghĩa cũ của UUID. Giá trị phiên bản của O và 6 đến 15 được lưu trữ để sử dụng trong tương lai.

Bảng 3 – Các phiên bản UUID hiện tại

Bit 7

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Bit 5

Bit 4

Giá trị phiên bản

Mô tả

0

0

0

1

1

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

0

0

1

0

2

Lưu trữ cho phiên bản bảo mật DCE cùng với POSIX UUID kèm theo.

0

0

1

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

3

Phiên bản theo tên quy định trong Tiêu chuẩn này cùng với MD5 (xem điều 14)

0

1

0

0

4

Phiên bản theo số ngẫu nhiên quy định trong Tiêu chuẩn này (Xem điều 15)

0

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

1

1

5

Phiên bản theo tên quy định trong Tiêu chuẩn này cùng với SHA-1 (Xem điều 14)

12.3 Thời gian

12.3.1 Thời gian phải là giá trị 60 bit

CHÚ THÍCH - Tên “Tim e” thích hợp cho phiên bản theo thời gian của UUID (phiên bản 1), nhưng không được sử dụng cho các nội dung của giá trị tương ứng trong phiên bản khác của UUID (phiên bản 3 và 4).

12.3.2 Đối với phiên bản theo thời gian của UUID, Time sẽ được tính bằng khoảng 100 nano giây của Giờ phối hợp quốc tế (UTC) từ nửa đêm cho đến sáng ngày 15 tháng 10 năm 1582 (ngày theo lịch Gregory có sửa đổi so với lịch Cơ đốc)

CHÚ THÍCH 1 - Trước khi thành lập văn phòng quốc tế de l’Heur e (Văn phòng thời gian quốc tế), 1 phút được quy ước có 60 giây. Do đó, các giây xen kẽ xuất hiện khi cần thiết, số giây sẽ tăng (hoặc giảm) mỗi năm.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

CHÚ THÍCH 3: Đối với các hệ thống không truy cập được vào tín hiệu thời gian tổng, một đồng hồ hệ thống sẽ ghi lại thời gian địa phương, thời gian này có thể được sử dụng cùng với thời gian khác, ngoài ra không có UUID được tạo ra khi có thay đổi về thời gian tiết giảm ban ngày, hoặc thay đổi giá trị Clock Sequence (Xem 12.4).

12.3.3 Phiên bản theo tên của UUID là giá trị 60 bit được tạo ra từ một tên chung duy nhất như quy định tại Điều 14.

CHÚ THÍCH - Ví dụ về tên chung duy nhất là OID, URN và các tên phân biệt thư điều (xem [5]).

12.3.4 Phiên bản theo số ngẫu nhiên của UUID là ngẫu nhiên hoặc giả ngẫu nhiên tạo ra giá trị 60 bit như quy định tại Điều 15.

12.4 Chuỗi định giờ

12.4.1 Đối với phiên bản theo thời gian của UUID, Clock Sequence được sử dụng để tránh trùng lặp phát sinh khi giá trị của Time được thiết lập lại hoặc giá trị Node thay đổi.

CHÚ THÍCH - Tên “Clock Sequence” thích hợp cho phiên bản theo thời gian của UUID, nhưng tên này không được sử dụng cho các nội dung của giá trị tương ứng trong phiên bản theo tên và số ngẫu nhiên của UUID.

12.4.2 Nếu giá trị Time được thiết lập lại hoặc có thể được thiết lập lại (ví dụ khi hệ thống bị ngắt) thì bộ phát UUID không thể nhận biết UUID tạo ra giá trị Time lớn hơn giá trị Time đã được thiết lập hay không. Trong trường hợp này, giá trị Clock Sequence sẽ thay đổi.

CHÚ THÍCH - Nếu giá trị trước của Clock Sequence tăng lên thì Clock Sequence sẽ được thiết lập giá trị bảo mật ngẫu nhiên hoặc giá trị giả ngẫu nhiên.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

12.4.4 Clock Sequence sẽ lấy giá trị ban đầu (có nghĩa là một lần trong chu kỳ sống của hệ thống tạo ra UUID) từ một số ngẫu nhiên không dẫn xuất từ giá trị Node.

CHÚ THÍCH - Đây là hình thức tối giản hệ thống tương quan cung cấp bảo vệ tối đa cho địa chỉ MAC, địa chỉ này có thể di chuyển hoặc hoán đổi nhanh từ hệ thống này sang hệ thống khác.

12.4.5 Đối với phiên bản theo tên của UUID, Clock Sequence là giá trị 14 bit được tạo ra từ tên như quy định tại điều 14.

12.4.6 Đối với phiên bản theo số ngẫu nhiên của UUID, Clock Sequence tạo ra giá trị 14 bít ngẫu nhiên hoặc giả ngẫu nhiên như quy định tại Điều 15.

12.5 Nút

12.5.1. Đối với phiên bản theo thời gian của UUID, giá trị Node sẽ bao gồm địa chỉ MAC (Xem ISO/IEC 8802-3) là địa chỉ host của một vài giao thức mạng.

12.5.2. Đối với hệ thống có nhiều địa chỉ MAC, có thể sử dụng bất cứ địa chỉ nào ngoại trừ địa chỉ multicast. Octet 5 của UUID (octet đầu tiên của “Node”) sẽ thiết lập octet đầu tiên của địa chỉ MAC do hệ thống tương ứng ISO/IEC 8802-3 truyền đi.

CHÚ THÍCH 1: Octet này bao gồm bit toàn cục/bit cục bộ và bit đơn nhân/bit phổ rộng. Bit đơn nhân/bit phổ rộng được đặt tại truyền thông đơn hướng để tránh xung đột với địa chỉ được tạo ra theo quy định tại điều 12.5.3.

CHÚ THÍCH 2 - Có thể lấy khóa của địa chỉ MAC từ cơ quan đăng ký địa chỉ MAC (Xem [4]).

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

CHÚ THÍCH: Điều này đảm bảo địa chỉ tạo ra không bị xung đột với địa chỉ lấy từ các mạng như đã quy định ở điều

12.5.2.

12.5.4 Đối với UUID theo tên, giá trị Node là giá trị 48 bit được tạo ra bằng cách kết hợp hoặc phân chia từ tên duy nhất như quy định tại điều 14.

12.5.5 Đối với UUID dựa trên số ngẫu nhiên, giá trị Node sẽ tạo ra giá trị 48 bit ngẫu nhiên hoặc giả ngẫu nhiên như quy định tại điều 15.

13 Thiết lập các trường của UUID theo thời gian

Các trường của UUID theo thời gian sẽ được thiết lập như sau:

- Xác định giá trị cho Time theo UTC và Clock Sequence để sử dụng trong UUID như quy định tại điều 12.3 và 12.4.

- Mục tiêu của thuật toán này là xác định Time như số nguyên không dấu 60 bit và Clock Sequence như số nguyên không dấu 14 bit. Các bit kề nhau trong mỗi giá trị cùng với số 0 dành cho bit ít quan trọng nhất.

- Đặt trường “TimeLow” cùng với 32 bít ít quan trọng nhất (từ bit 0 đến bit 31) của Time theo thứ tự quan trọng như nhau.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Đặt 12 bít ít quan trọng (từ bit 0 đến bit 11) của trường “VersionAndTimeHigh” cùng với các bit từ 48 đến 59 của Time theo thứ tự quan trọng như nhau.

- Đặt 4 bit quan trọng nhất (Từ bit 12 đến 15) của trường “VersionAndTimeHigh” vào số phiên bản 4 bít như quy định tại điều 12.2

- Đặt trường “ClockSeqLow” vào tám bít ít quan trọng nhất (Từ bit 0 đến 7) của trường ClockSequence theo thứ tự quan trọng như nhau.

- Đặt sáu bit ít quan trọng nhất (Từ bit 0 đến 5) của trường “VariantAndClockSeqHigh” vào 6 bit quan trọng nhất (từ bit 8 đến 13) của trường Clock Sequence theo thứ tự quan trọng như nhau.

- Đặt 2 bit quan trọng nhất (bit 6 và 7) của trường “VariantAndClockSeqHigh” vào vị trí 0 và 1 tương ứng.

- Đặt trường Node vào địa chỉ MAC 48 bit theo thứ tự quan trọng như nhau.

14 Thiết lập các trường UUID theo tên

Điều này quy định các thủ tục để tạo ra UUID theo tên. Điều 14.1 quy định các thủ tục chung cho hàm băm (Xem ISO/IEC 10118). Điều 14.2 quy định sử dụng MD5 và điều 14.3 quy định sử dụng SHA-1.

CHÚ THÍCH: Sử dụng MD5 giới hạn các trường hợp yêu cầu tương thích với các UUID hiện tại, khi SHA-1 cung cấp thuật toán băm ít tương thích hơn thì giá trị băm giống nhau được tạo ra từ các tài nguyên băm khác (xem C.4).

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Phân bố UUID để sử dụng “định danh vùng tên” cho tất cả UUID được tạo ra từ tên trong vùng tên đó.

CHÚ THÍCH: Điều D.9 khuyến cáo rằng UUID sử dụng cho 4 vùng tên phổ thông.

- Chuyển tên thành chuỗi chính tắc của octet (được xác định như tiêu chuẩn hoặc quy ước vùng tên của chuỗi).

- Tính giá trị băm 16 octet của định danh vùng tên liên kết với tên sử dụng hàm băm như quy định tại 14.2 hoặc 14.3. Số lượng octet trong giá trị băm từ 0 đến 15 như quy định trong IETF RFC 1321 (dành cho MD5) và quy định trong FIPS PUB 180-3 dành cho cho SHA-1.

- Đặt octet từ 0 đến 3 của trường “TimeLow” vào octet từ 0 đến 3 của giá trị băm.

- Đặt octet từ 0 đến 1 của trường “TimeMid” vào octet 5 và 4 của giá trị băm.

- Đặt octet 1 và 0 của trường “VersionAndTimeHigh” vào octet 7 và 6 của giá trị băm.

- Ghi đè 4 bit quan trọng nhất (từ bit 12 đến bit 15) của trường “VersionAndTimeHigh” lên số phiên bản 4 bit trong bảng 3 của điều 12.2 cho hàm băm sử dụng.

- Ghi đè 2 bit quan trọng nhất (bit 7 và 6) của trường “VariantAndClockSeqHigh” lên bit 0 và 1 tương ứng.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Ghi đè hai bit quan trọng (bit 7 và 6) của trường “VariantAndClockSeqHigh lên bit 1 và 0 tương ứng.

- Đặt trường “ClockSeqLow” vào octet 9 của giá trị băm.

- Đặt octet từ 0 đến 5 của trường “Node” vào octet từ 10 đến 15 của giá trị băm.

14.2. Điều này quy định UUID theo tên sử dụng MD5 như một hàm băm, nhưng MD5 không được sử dụng cho UUID mới (xem C.4). Đối với hàm băm MD5, “giá trị băm” được tham chiếu tại điều 14.1 là giá trị 16 octet quy định bởi IETF RFC 1321 từ octet 0 đến octet 15.

CHÚ THÍCH – Đặc tả của MD5 và số phiên bản liên quan bao gồm tính tương thích trái với quy định cũ.

14.3. Điều này quy định UUID theo tên gọi sử dụng SHA-1 như một hàm băm. Đối với hàm băm SHA-1, “giá trị băm” tham chiếu tại điều 14.1 sẽ là octet từ 0 đến 15 của giá trị 20 octet lấy từ giá trị Message Digest 160-bit quy định bởi FIPS PUB 180-3. Octet từ 16 đến 19 của giá trị 20 octet sẽ bị loại bỏ. Giá trị 20 octet được lấy từ giá trị Message Digest 160-bit của FIPS PUB 180-3 bằng cách đặt bit quan trọng nhất của giá trị 160-bit vào bit quan trọng nhất của octet đầu tiên (octet 0) của giá trị 20 octet, và đặt bit ít quan trọng nhất vào octet cuối cùng (octet 19) của giá trị 20 octet.

15 Thiết lập các trường của UUID theo số ngẫu nhiên

15.1 Các trường của UUID theo số ngẫu nhiên sẽ được thiết lập như sau:

- Đặt hai bit quan trọng nhất (bit 6 và 7) của trường “VariantAndClockSeqHigh” vào vị trí 0 và 1 tương ứng.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Đặt tất cả các bit khác của UUID vào giá trị được tạo ra ngẫu nhiên hoặc giả ngẫu nhiên.

CHÚ THÍCH: Số giả ngẫu nhiên có thể tạo ra cùng một giá trị nhiều lần. Số ngẫu nhiên dạng mật mã được đặc biệt khuyến cáo sử dụng để giảm khả năng lặp các giá trị.

15.2 Phụ lục C cung cấp hướng dẫn cách thức tạo ra các số ngẫu nhiên trong một hệ thống.

16 Đăng ký UUID và cách sử dụng UUID trong cây định danh đối tượng quốc tế

16.1 Cây định danh đối tượng quốc tế

16.1.1 Tiêu chuẩn này xác định các thủ tục hoạt động của cơ quan đăng ký UUID. Đăng ký này cho phép sử dụng các UUID như giá trị nguyên sơ cấp và cung của cây định danh đối tượng quốc tế thuộc cung liên kết UUID (Xem Điều 7).

CHÚ THÍCH: UUID có thể sử dụng để định danh các cung thuộc cung UUID mà không cần đăng ký, nhưng định danh của các cung như vậy không đảm bảo tính rõ ràng và cách sử dụng này không được chấp nhận.

16.1.2 Cây định danh đối tượng quốc tế là hình thức định danh rõ ràng theo cấu trúc cây phân cấp và cơ quan đăng ký phân cấp độc lập. Cây định danh này có nút gốc, các cung bên dưới nút gốc, các cung bên dưới các cung đó và phân cấp thấp hơn nữa. Các cung được định danh bởi giá trị nguyên bắt buộc đầu tiên (Định danh nhãn Unicode giá trị nguyên) (Xem điều 16.1.7) cung cấp định danh rõ ràng cho một cung trong nút cấp cao. Các cung có thể được cung cấp một hoặc nhiều nhãn Unicode thập phân (chuỗi ký tự Unicode), hoặc định danh thứ cấp. Một đối tượng được định danh bởi chuỗi các nhãn unicolde gán cho các cung từ nút gốc đến đối tượng đó.

16.1.3 Các Nhãn Unicode là rõ ràng. Các định danh thứ cấp có thể không rõ ràng. Định danh đối tượng ASN.1 sử dụng giá trị nguyên sơ cấp rõ ràng và duy nhất cho mỗi cung khi mã hóa toàn bộ, nhưng cho phép bao gồm các định danh thứ cấp (không rõ ràng) trong ký pháp giá trị dễ đọc. Kiểu tham chiếu nguồn quốc tế hóa ASN.1 OID sử dụng nhãn Unicode (rõ ràng) trên mỗi cung trong mã hóa và trong ký hiệu giá trị dễ đọc.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

CHÚ THÍCH: Xem mô tả đầy đủ của cây OID trong TCVN 10583-1 (ISO/IEC 9834-1 Recomm endation ITU-T X.660).

16.1.5 (HƯỚNG DẪN) UUID không đăng ký có thể được sử dụng như thành phần thẻ định định danh đối tượng thuộc các cung giống nhau của định danh UUID được đăng ký (Xem 16.1.1). Do đó, Giá trị định danh giống nhau của các cung khác nhau sử dụng một UUID đã đăng ký và một UUID không đăng ký (hoặc hai UUID không đăng ký) cũng có thể được sử dụng, mặc dù khả năng xảy ra trường hợp này là rất nhỏ. Khả năng này sẽ tăng lên nếu UUID được tạo ra từ giá trị băm MD5 hoặc số giả ngẫu nhiên, mà không phải tạo ra từ giá trị băm SHA-1 và số ngẫu nhiên dạng mật mã. Điều này có thể gây ra xung đột giữa người sử dụng OID và khởi đầu các nguy cơ, ví dụ như lừa đảo. Cơ quan đăng ký UUID chịu trách nhiệm cho xung đột xảy ra giữa các UUID đã đăng ký, nhưng không chịu trách nhiệm cho xung đột giữa một UUID đã đăng ký và một UUID không đăng ký bởi vì cơ quan này không quản lý các UUID không đăng ký. Nếu xảy ra xung đột, ngữ nghĩa liên kết với UUID đã đăng ký sẽ được ưu tiên, ngữ nghĩa liên kết với giá trị UUID không đăng ký sẽ không được sử dụng. Do đó, đăng ký của một OID với một UUID không đảm bảo OID này có tính duy nhất hơn UUID. Mục tiêu của đăng ký này là công khai UUID và ngữ nghĩa của chúng.

16.1.6 Biểu diễn dữ liệu trong máy tính của định danh đối tượng hoặc định danh nguồn quốc tế hóa OID chỉ ra (theo ngữ cảnh của biểu diễn dữ liệu trong máy tính) định danh của đường dẫn từ gốc đến một đối tượng trong cây OID. Do đó, nếu định danh đối tượng hoặc giá trị định danh nguồn quốc tế hóa OID được tạo thành như quy định tại Điều 7 thì một biểu diễn dữ liệu có thể bao gồm duy nhất giá trị UUID.

16.1.7 Giá trị nguyên sơ cấp của các cung là giá trị nguyên dương không giới hạn độ lớn. Nhãn Unicode trên các cung là dãy của ký tự Unicode, với điều kiện chúng không phải là các số nguyên khác với giá trị nguyên sơ cấp của cung.

16.2 Chỉ định cơ quan đăng ký

16.2.1 ITU-T|ISO/IEC được ủy nhiệm tổ chức đăng ký theo quy định trong tiêu chuẩn này. Để thực hiện việc đăng ký, theo yêu cầu và quy định của mình, ITU-T|ISO/IEC chỉ định một tổ chức thực hiện theo RA cho tiêu chuẩn này.

CHÚ THÍCH: Để đăng ký, Sử dụng đường dẫn http://www.itu.int/ITU-T/asn1/uuid.html (Vị trí dự án ITU-T ASSN.1)

16.2.2 Cơ quan đăng ký sẽ không chịu trách nhiệm cho bất cứ sai sót nào trong quá trình hoạt động theo các thủ tục này hoặc cho bất kỳ hoạt động nào liên quan đến trách nhiệm của cơ quan đăng ký theo Tiêu chuẩn này, ngoại trừ trường hợp nó được miễn trách nhiệm mà không bị phạt bởi nhóm nghiên cứu | tiểu ban kỹ thuật liên quan. Cơ quan đăng ký sẽ không chịu trách nhiệm cho việc sử dụng giá trị OID không đăng ký giống giá trị OID đã đăng ký, bởi vì cơ quan này không kiểm soát việc sử dụng các giá trị đó xem 16.1.5).

CHÚ THÍCH: Nếu Nhóm nghiên cứu | Tiểu ban kỹ thuật quyết định cơ quan đăng ký được miễn trách nhiệm vì nguyên nhân này hay bất kỳ nguyên nhân nào khác, thông tin đăng ký bởi RA sẽ luôn sẵn có cho bất kỳ RA được chỉ định sau này.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

16.3.1 Tổ chức cung cấp RA này sẽ hoạt động trên cơ sở phục hồi lệ phí. Cơ cấu lệ phí dự kiến để phục hồi lệ phí điều hành RA, đăng ký xuất bản web, hỗ trợ yêu cầu truy vấn và ngăn cản việc xuất hiện nhiều yêu cầu và các yêu cầu vô lý.

16.3.2 Lệ phí sẽ do RA quyết định, phụ thuộc vào phê duyệt của nhóm nghiên cứu | Tiểu ban kỹ thuật liên quan. Lệ phí có thể áp dụng cho:

a) Đăng ký;

b) Yêu cầu truy vấn;

c) Công khai trên web;

d) Yêu cầu cập nhật;

16.3.3 Lệ phí sẽ độc lập với quốc gia mà ứng dụng được tạo, phụ thuộc vào sự biến động tỷ giá

16.4 Thủ tục đăng ký

Điều này quy định các thủ tục tuân theo đăng ký của UUID. Các thủ tục này dự kiến để đảm bảo quy trình mở và đóng trong vận hành của RA.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

16.4.1.2 Tùy thuộc vào việc hoàn thành các thủ tục đăng ký, giá trị UUID 128 bít được đăng ký cũng như chuyển giao cho (hoặc bởi) tổ chức nhận, và sau đó sẽ được xuất bản.

16.4.2 Quy trình xác nhận

Đăng ký thành công được xác nhận qua phản hồi trên web và ứng dụng web.

16.4.3 Nội dung của đơn

16.4.3.1 Điều này quy định thông tin do RA yêu cầu để kiểm soát quá trình đăng ký.

CHÚ THÍCH: Tại thời điểm xuất bản tiêu chuẩn này, thông tin có thể được gửi tới bằng em ail, điện thoại, đĩa cứng hoặc đăng ký trên website.

16.4.3.2 Đăng ký bao gồm các thông tin sau

a) Quốc gia nơi tổ chức đăng ký có trụ sở chính;

b) Tên của tổ chức cùng với thông tin đăng ký nếu công ty, tổ chức từ thiện được đăng ký, v.v...hoặc chi nhánh công ty được biết như là một tổ chức quốc tế;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

d) Thông tin dạng tự do để xác minh tính chân thực của tổ chức đăng ký được xem như phương tiện kiểm tra và loại bỏ các đăng ký giả mạo.

e) (Phần không bắt buộc) Có thể truy cập URL để cung cấp thêm thông tin về việc sử dụng UUID.

16.4.3.3 Nội dung của đơn chung cho OID được quy định bởi TCVN 10583-1 (ISO/IEC 9834-1| Recommendation ITU-T X.660 ), Điều 8.

16.5 Duy trì sổ đăng ký trên Web

16.5.1 RA sẽ duy trì một website để lựa chọn sổ đăng ký cho tất cả các đăng ký.

16.5.2 Thông tin về tổ chức liên quan đến việc đăng ký được cập nhật bằng lệ phí của RA nếu RA được cung cấp các chi tiết thay đổi về tên công ty hoặc các thông tin tương tự và quyền thay đổi thích hợp. Cơ chế thực hiện điều này do RA quyết định và sẽ được thông báo trên website.

 

Phụ lục A

(Tham khảo)

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Phụ lục này mô tả thuật toán được sử dụng để liên tục tạo ra UUID theo thời gian trong hệ thống máy tính

A.1 Thuật toán cơ bản

A.1.1 Thuật toán sau đây đơn giản, chính xác nhưng không hiệu quả:

- Lấy khóa toàn hệ thống.

- Bộ nhớ ổn định chia sẻ dữ liệu của một hệ thống lớn (ví dụ: tệp) đọc trạng thái của bộ tạo UUID: Giá trị Time, Clock Sequence và Node được sử dụng để tạo ra UUID cuối cùng.

- Lấy thời gian hiện tại khi đếm 60 bit trong khoảng 100 nano giây từ 00:00:00:00 ngày 15 tháng 10 năm 1528 vào giá trị Time.

- Lấy giá trị Node hiện tại.

- Nếu giá trị Node ở trạng thái không có sẵn (ví dụ không tồn tại hoặc bị ngắt) hoặc khác so với giá trị Node hiện tại thì sẽ tạo ra giá trị Clock Sequence ngẫu nhiên.

- Nếu giá trị Time ở trạng thái có sẵn nhưng giá trị Time lưu trữ tới muộn hơn giá trị Time hiện tại thì giá trị Clock Sequence sẽ tăng lên.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Ngắt đồng hồ tổng

- Định dạng UUID từ giá trị Time, ClockSequence và Node theo từng bước trong Điều 13.

A.1.2 Nếu UUID không thường xuyên được tạo ra thì thuật toán trên đây hoàn toàn đầy đủ. Tuy nhiên, đối với các yêu cầu thể hiện cao hơn thì các vấn đề với thuật toán đơn giản bao gồm:

- Đọc trạng thái từ bộ nhớ ổn định mỗi lần là không hiệu quả;

- Độ chính xác của đồng hồ hệ thống là 100 nano giây;

- Viết trạng thái vào bộ nhớ ổn định mỗi lần là không hiệu quả;

- Chia sẻ trạng thái ngoài giới hạn quy trình có thể không hiệu quả.

A.1.3 Mỗi kết quả có thể được ghi theo kiểu mô đun bằng cách cải thiện cục bộ các chức năng đọc, viết trạng thái và đọc giờ. Chúng được ấn định địa chỉ lần lượt trong các điều nhỏ.

A.2 Bộ nhớ đọc ổn định

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

A.2.2 Nếu một quá trình thực hiện không có bộ nhớ ổn định sẵn có, thì có thể khẳng định rằng các giá trị không dùng được. Quá trình thực hiện này ít được mong đợi nhất bởi vì nó làm tăng tần số tạo ra số Clock Sequence mới, dẫn đến tăng khả năng trùng lặp.

A.2.3 Nếu giá trị Node không bao giờ thay đổi (ví dụ cạc mạng không gắn liền với hệ thống) hoặc nếu bất kỳ thay đổi nào khởi tạo lại Clock Sequence theo giá trị ngẫu nhiên thì thay vì giữ giá trị trong bộ nhớ ổn định, giá trị Node hiện tại sẽ được trả lại.

A.3 Tính chính xác của đồng hồ hệ thống

A.3.1 Giá trị Time được tạo ra từ thời gian hệ thống có độ chính xác ít hơn độ chính xác của giá trị Time được yêu cầu.

A.3.2 Nếu UUID không được tạo ra thường xuyên thì giá trị Time đơn giản là thời gian hệ thống được phân chia thành số trong khoảng 100 nano giây cho mỗi khoảng thời gian hệ thống.

A.3.3 Nếu hệ thống bị khởi động quá do bộ sinh yêu cầu nhiều UUID trong khoảng thời gian hệ thống đơn thì dịch vụ UUID sẽ trả lại lỗi, hoặc ngắt bộ sinh UUID cho đến khi đồng hồ hệ thống bắt kịp.

A.3.4 Giá trị thời gian chính xác có thể được mô phỏng bằng cách liên tục đếm số lượng UUID được tạo ra giá trị giống nhau của thời gian hệ thống và sử dụng nó để tạo ra bit hàng thấp của giá trị Time. Khoảng đếm sẽ từ 0 đến 100 nano giây cho mỗi khoảng thời gian hệ thống.

CHÚ THÍCH: Nếu bộ xử lý thường xuyên bị tràn UUID thì các địa chỉ MAC thêm vào được phân bố cho hệ thống sẽ cho phép phân bố tốc độ cao bằng cách tạo ra nhiều UUID sẵn có cho mỗi giá trị Tim e.

A.4 Bộ nhớ ghi ổn định

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

A.5 Chia sẻ trạng thái qua các quy trình

Nếu việc truy cập vào trạng thái chia sẻ khi tạo ra UUID quá tốn kém thì bộ sinh của hệ thống lớn có thể hoạt động để phân bố khóa của giá trị Time tại thời điểm bị gọi, và bộ tạo mỗi quy trình từ khóa đó có thể phân bố khóa cho đến khi kết thúc.

 

Phụ lục B

(Tham khảo)

Đặc tính của UUID theo tên

B.1 UUID theo tên nghĩa là tạo ra ra một UUID từ một tên được lấy từ và duy nhất trong một vài vùng tên. Khái niệm tên và vùng tên cần được phân tích đại thể và không giới hạn tên dạng văn bản. Các cơ chế hoặc chuyển đổi để phân bố tên và đảm bảo tính duy nhất của tên, vùng tên của tên nằm ngoài phạm vi của Tiêu chuẩn này.

CHÚ THÍCH: Để tránh các vấn đề lặp lại, UUID theo tên sẽ không được tạo ra từ một OID kết thúc cùng với UUID theo tên.

B.2 Đặc tính của UUID theo tên được tạo ra theo điều 14 và vùng tên được lựa chọn phù hợp như sau:

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- UUID được tạo ra từ hai tên khác nhau trong vùng tên giống nhau sẽ có xác suất khác nhau rất cao.

- UUID được tạo ra từ tên giống nhau trong hai vùng tên khác nhau sẽ có xác suất khác nhau rất cao.

- Nếu hai UUID theo tên tương đương nhau thì hai UUID này có khả năng được tạo ra từ tên giống nhau trong vùng tên giống nhau.

 

Phụ lục C

(Tham khảo)

Phát sinh các số ngẫu nhiên trong một hệ thống

C.1 Nếu một hệ thống không tạo ra số ngẫu nhiên dạng mật mã thì đa số hệ thống có số lượng lớn ngang nhau các nguồn ngẫu nhiên sẵn có từ hệ thống có khả năng tạo ra số ngẫu nhiên dạng mật mã. Các nguồn này đều rõ ràng một cách hệ thống, nhưng thường bao gồm:

- Phần trăm sử dụng bộ nhớ;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Số lượng byte trống trong bộ nhớ chính;

- Các byte trống của trang hoặc tệp trung gian;

- Kích cỡ tính theo byte của khoảng địa chỉ ảo dành cho người sử dụng;

- Tổng số byte sẵn có của khoảng địa chỉ dành cho người sử dụng;

- Kích cỡ tính theo byte của ổ đĩa khởi động;

- Kích cỡ tính theo byte của ổ đĩa mồi;

- Kích cỡ tính theo byte của vùng đĩa trống trên ổ mồi;

- Thời gian hiện tại;

- Tổng thời gian từ hệ thống được mồi;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

- Chuẩn bị tệp, đọc lần cuối và sửa đổi thời gian của tệp trong các thư điều hệ thống khác nhau;

- Nhân tố đầu tiên của các nguồn hệ thống khác nhau (vùng lưu trữ heap,v…v);

- Vị trí con trỏ chuột hiện tại;

- Vị trí dấu cartet (ký hiệu số mũ hoặc lũy thừa bậc);

- Số lượng hiện tại của các quy trình, các chuỗi hiện thời;

- Ô điều khiển hoặc các ID của cửa sổ màn hình và cửa sổ hiện hành;

- Giá trị con trỏ ngăn xếp của bộ gọi;

- Quy trình và định danh chuỗi của bộ gọi;

- Cấu trúc bộ xử lý khác nhau quy định việc đếm các biểu diễn (các lệnh được thực hiện, thiếu vùng nhớ đệm, hoặc thiếu TLB)

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

C.3 Thuật toán chính xác tạo ra giá trị Node sử dụng dữ liệu này có tính rõ ràng bởi vì dữ liệu sẵn có và các hàm chứa chúng thường rất rõ ràng. Tuy nhiên, cần tiếp cận tổng quát để tích lũy được nhiều nguồn vào bộ đệm và sử dụng ký hiệu truyền tin như SHA-1, lấy 6 octet bất kỳ từ giá trị băm và thiết lập bit đổi kiểu như mô tả trên.

C.4 Các hàm băm khác như MD5 và hàm băm quy định tại ISO/IEC 10118 có thể được sử dụng. Yêu cầu duy nhất là kết quả phù hợp ngẫu nhiên nghĩa là đầu ra từ một tập hợp các đầu vào được phân bố giống nhau và các đầu vào này cũng phân bố giống nhau, một bit đơn thay đổi trong đầu vào có thể làm một nửa các bít đầu ra thay đổi. (Sử dụng MD5 nhưng không sử dụng UUID mới bởi vì các nghiên cứu hiện nay cho thấy giá trị đầu vào không được phân bố đồng đều).

 

 

Phụ lục D

(Tham khảo)

Biểu diễn mẫu

D.1 Các tệp dự phòng

Biểu diễn này bao gồm 6 tệp: Copyt.h, uuid.c, sysdep.h, sysdep.c và utest.c. Tệp uuid.* biểu diễn độc lập của thuật toán tạo ra UUID quy định tại Điều 13, 14 và 15 như mô tả tối ưu tại phụ lục A (ngoại trừ trạng thái đầy đủ phân chia cho các quy trình). Giả thiết rằng mã hỗ trợ số nguyên 64 bit trong đó làm cho mã này rõ ràng nhiều.

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

D.2 Tệp copyrt.h

Tất cả các tệp nguồn được đánh giá để đưa ra thông báo bản quyền sau đây:

/*

**Bản quyền (c) 1990 – 1993, 1996 Tập đoàn sáng lập phần mềm mở.

**Bản quyền (c) 1989 của công ty Hewlett-Packard, palo Alto, Ca. &

**Tập đoàn thiết bị số Maynard, Mass.

**Đối với các cá nhân nhận thức rằng tệp này do “AS IS” cung cấp nhưng không có

**thông tin hoặc bảo đảm nào về việc cho phép sử dụng, sao chép, sửa đổi và phân **phối tệp vì bất kỳ mục tiêu nào mà không trả lệ phí, trừ khi thông báo bản quyền **bên trên và thông báo bản quyền này sao chép mã nguồn và không sử dụng tên của **Tập đoàn sáng lập mã nguồn mở, công ty Hewlett-Packard hoặc tập đoàn thiết bị **số trong quảng cáo hoặc liên hệ công khai để phân phối phần mềm không được **cấp phép bằng văn bản rõ ràng trước đó. Tập đoàn sáng lập mã nguồn mở, công ty **Hewlett-Packard hoặc tập đoàn thiết bị số không đưa ra tuyên bố nào về tính phù **hợp của phần mềm này vì bất kỳ mục tiêu nào.

D3 Tệp uuid.h

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#undef uuid_t

Typedef struct { unsigned32 time_low; unsigned16 time_mid;

unsigned16 tiem_hi_and version; unsigned8 clock_seq_hi_and_reserved; unsigned8 clock_seq_low;

byte node [6];

} uuid_t;

/* uuid_create - - tạo ra một UUID */

Int uuid_create (uuid_t * uuid);

/* uuid_create_from_name - - tạo ra một UUID sử dụng “name” từ “name space”*/

Void uuid_create_from_name {

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

uuid_t nsid, /* UUID của vùng tên */

void *name, /* tên tạo ra UUID */

int namelen /* độ dài của tên */

};

/ * uuid_compare – So sánh hai “lexically” của UUID và trả giá trị

-1 u1 đứng trước u2

0 u1 bằng u2

1 u1 sau u2

Chú thích: Thứ tự lexical không phải là thứ tự tạm thời

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Int uuid_compare (uudi_t *u1, uuid_t *u2);

D.4 Tệp uuid.c

#include “copyrt.h”

#include <string.h>

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

#ifndef _WINDOW_

#include <arpa/inet.h>

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#include “uuid.h”

/* Các khai báo chuyển tiếp khác nhau*/

Static int read_state (unsigned16 *clockseq, uuid_time_t *timestamp, uuid_node_t *node);

static void write_state (unsigned16 clockseq, uuid_tiem timestamp, uuid_node_t node);

static void format_uuid_v1 (uuid_t *uuid, unsigned16 clockseq, uuid_time_t timestamp, uuid_node_t node);

static void format_uuid_v3(uuid_t *uuid, unsigned char hash[16]);

static unsigned16 true_random(void);

/* uuid_create - - tạo ra UUID */

Int uuid_create (uuid_t *uuid)

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

uuid_time_t timestamp, last_time;

unsigned16 clockseq; uuid_node_t last_node; int f;

/* yêu cầu đồng hồ tổng vì vậy chúng được xếp một mình */ LOCK;

/* Lấy time, node identifier,saved state từ bộ nhớ không ổn định */

get_current_time (&timestamp);

get_ieee_node_identifier (&node);

f = read_state (&clockseq, &last_time, &last_node);

/* Nếu không có trạng thái NV, hoặc nếu đồng hồ bị chậm, hoặc định danh

Node thay đổi (ví dụ như cạc mạng mới) làm thay đổi clockseq */

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

Clockseq = true_random();

Else if (timestamp < last_time)

Clockseq++;

/* lưu trạng thái cho lần tiếp theo*/ Write_state (clockseq, timestamp, node); UNCLOCK

/* gán trường vào UUID */

Format_uuid_v1 (uuid, clockseq, timestamp, node);

Return 1;

}

/* format_uuid_v1 - - tạo ra UUID từ timestamp, clockseq và node identifier */

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

{

/* tạo ra phiên bản 1 UUID cùng thông tin được tập hợp thêm hằng số.*/

uuid ->time_low = (unsigned long) (timestamp & 0xFFFFFFFF) ;

uuid->time_mid = (unsigned short)((timestamp >> 32) & 0xFFFF);

uuid->time_hi_and_version = (unsigned short)((timestamp >> 48) & 0x0FFF);

uuid->time_hi_and_version |= (1 << 12);

uuid->clock_seq_low = clock_seq & 0xFF;

uuid->clock_seq_hi_and_reserved = (clock_seq & 0x3F00) >> 8;

uuid->clock_seq_hi_and_reserved |= 0x80;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

}

/* Kiểu dữ liệu cho trạng thái ổn định tạo ra UUID*/

typedef struct {

uuid_time_t ts;  /* timestamp được lưu trữ */

uuid_node_t node; /* node identifier được lưu trữ */

unsigned16 cs;  /* Clock Sequence được lưu trữ */

} uuid_state;

static uuid_state st;

/* read_state -- đọc trạng thái tạo ra UUID từ bộ nhớ không ổn định*/

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

{

static int inited = 0; FILE *fp;

/* Chỉ cần đọc trạng thái một lần mỗi khi khởi động */

if (!inited) {

fp = fopenC'state", "rb");

if (fp == NULL)

return 0;

fread(&st, sizeof st, 1, fp);

fclose(fp);

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

}

*clockseq = st.cs;

*timestamp = st.ts;

*node = st.node;

return 1;

}

/* write_state -- lưu trạng thái tạo ra UUID về bộ nhớ không ổn định */

void write_state(unsigned16 clockseq, uuid_time_t timestamp, uuid_node_tnode)

{

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

static uuid_time_t next_save; FILE* fp;

if (!inited) {

next_save = timestamp;

inited = 1;

}

/* Luôn lưu trạng thái đến trạng thái chia sẻ ổn định */

st.cs = clockseq;

st.ts = timestamp;

st.node = node;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

/* schedule next save for 10 seconds from now */

next_save = timestamp + (10 * 10 * 1000 * 1000);

}

}

/* get-current_time -- Lấy giá trị time là 60 bit 100 nano giây từ UUID. Bù độ chính xác đồng hồ thực nhỏ hơn 100 nano giây */

void get_current_time(uuid_time_t *timestamp)

{

static int inited = 0;

static uuid_time_t time_last;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

uuid_time_t time_now;

if (!inited) {

get_system_time(&time_now); uuids_this_tick = UUIDS_PER_TICK; inited = 1;

}

for ( ; ; ) {

get_system_time(&time_now);

/* Nếu đồng hồ đọc thay đổi khi tạo ra UUID cuối cùng, */

if (time_last != time_now) {

/* Đếm lại uuid được tạo ra cùng đồng hồ đọc */

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

}

if (uuids_this_tick < UUIDS_PER_TICK) {

uuids_this_tick++;

break;

}

/* đồng hồ chạy quá nhanh; quay vòng */

}

/* Bổ sung việc đếm UUID vào bit hàng thấp của đồng hồ đọc */

*timestamp = time_now + uuids_this_tick;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

/* true_random – tạo ra số ngẫu nhiên mã hóa.

** Ví dụ này không thực hiện điều đó.** */

static unsigned16 true_random(void)

{

static int inited = 0; uuid_time_t time_now; if (!inited) {

get_system_time(&time_now);

time_now = time_now / UUIDS_PER_TICK;

srand((unsigned int)(((time_now >> 32) A time_now) & 0xffffffff));

inited = 1;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

return rand();

{

/* uuid_create_from_name -- tạo ra UUID sử dụng “name” từ “namespace” */

void uuid_create_from_name(uuid_t *uuid, uuid_t nsid, void *name, int namelen)

{

MD5_CTX c;

unsigned char hash[16];

uuid_t net_nsid;

/* Đặt định danh vùng tên theo thứ tự byte trên mạng mặc dù chúng đặt trong kiểu thứ tự byte ngược*/

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

htonl(net_nsid.time_low);

htons(net_nsid.time_mid);

htons(net_nsid.time_hi_and_version);

MD5lnit(&c);

MD5Update(&c, &net_nsid, sizeof net_nsid); MD5Update(&c, name, namelen); MD5Final(hash, &c);

/* giá trị băm trong thứ tự byte mạng tại vị trí này */

format_uuid_v3(uuid, hash);

}

/* format_uuid_v3 -- tạo ra UUID từ số 128 bit ngẫu nhiên (giả ngẫu nhiên)

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

void format_uuid_v3(uuid_t *uuid, unsigned char hash[16])

{

/* Chuyển UUID theo thứ tự byte cục bộ */ memcpy(uuid, hash, sizeof *uuid); ntohl(uuid->time_low);

ntohs(uuid->time_mid);

ntohs(uuid->time_hi_and_version);

/* Đặt vào bit biến thể và bit phiên bản */

uuid->time_hi_and_version &= 0x0FFF;

uuid->time_hi_and_version |= (3 << 12);

uuid->clock_seq_hi_and_reserved &= 0x3F;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

}

/* uuid_compare -- So sánh hai “lexically” của UUID và trả lại giá trị */

#define CHECK(f1, f2) if (f1 != f2) return f1 < f2 ? -1 : 1;

int uuid_compare(uuid_t *u1, uuid_t *u2)

{

int i;

CHECK(u1->time_low, u2->time_low); CHECK(u1->time_mid, u2->time_mid);

CHECK(u1->time_hi_and_version, u2->time_hi_and_version);

CHECK(u1->clock_seq_hi_and_reserved, u2->clock_seq_hi_and_reserved);

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

for (i = 0; i < 6; i++) {

if (u1->node[i] < u2->node[i])

return -1;

if (u1->node[i] > u2->node[i])

return 1;

}

return 0;

}

#undef CHECK

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#include "copyrt.h"

/* Loại bỏ xác định sau đây nếu không chạy Windows 32 */

#define WININC 0

# ifdef WININC

#include <windows.h>

#else

#include <time.h>

#include <unistd.h>

#include <sys/types.h>

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#endif

#include "global.h"

/* Thay đổi đối với chu kỳ của MD5. I/IETF RFC 1321 có một biểu diễn mẫu*/

#include "md5.h"

/* Thiết lập sau đây vào số 100 nano giây cho độ chính xác thực của đồng hồ hệ thống*/

#define UUIDS_PER_TICK 1024

/* Thiết lập sau đây cho cuộc gọi để nhận và trả đồng hồ tổng*/

#define LOCK

#define UNLOCK

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

typedef unsigned short unsigned16;

typedef unsigned char unsigned8;

typedef unsigned char byte;

/* Thiết lập này cho chương trình biên dịch sử dụng kiểu dữ liệu 64 bit */

#ifdef WININC

#define unsigned64_t unsigned_int64

#define I64(C) C

#else

#define unsigned64_t unsigned long long

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#endif

typedef unsigned64_t uuid_time_t;

typedef struct {

char nodeID[6];

} uuid_node_t;

void get_ieee_node_identifier(uuid_node_t *node);

void get_system_time(uuid_time_t *uuid_time);

void get_random_info(unsigned char seed[16]);

D.6 Tệp sysdep.c

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#include <stdio.h>

#include <string.h>

#include "sysdep.h"

/* Lệnh call độc lập trong hệ thống nhận định danh node MAC. Biểu diễn mẫu này tạo ra định danh ngẫu nhiên*/

void get_ieee_node_identifier(uuid_node_t *node)

{

static int inited = 0;

static uuid_node_t saved_node;

unsigned char seed[16]; FILE *fp;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

fp = fopen("nodeid", "rb");

if (fp) {

fread(&saved_node, sizeof saved_node, 1, fp);

fclose(fp);

}

else {

get_random_info(seed);

seed[0] |= 0x80;

memcpy(&saved_node, seed, sizeof saved_node);

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

if (fp) {

fwrite(&saved_node, sizeof saved_node, 1, fp);

fclose(fp);

}

}

inited = 1;

}

*node = saved_node;

}

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

#ifdef _WINDOWS_

void get_system_time(uuid_time_t *uuid_time)

{

ULARGE_INTEGER time;

/* Win NT giữ time theo định dạng Tệp TIME là 100 nano giây từ tháng 1/1601. UUID sử dụng thời gian 100 nano giây từ 15/10/1582. Sự khác biệt ở đây là 17 ngày trong tháng 10 + ngày 30 (tháng 11) + ngày 31 (tháng 12) + 18 năm và 5 ngày nhuận */

GetSystemTimeAsFileTime((FILETIME *)&time);

time.QuadPart +=

(unsigned int64) (1000*1000*10) // giây

* (unsigned int64) (60 * 60 * 24) // ngày

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

*uuid_time = time.QuadPart;

}

void get_random_info(unsigned char seed[16])

{

MD5_CTX c;

struct {

MEMORYSTATUS m;

SYSTEM_INFO s;

FILETIME t;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

DWORD tc;

DWORD l;

char hostname[MAX_COMPUTERNAME_LENGTH + 1];

}

r; MD5Init(&c);

GlobalMemoryStatus(&r.m);

GetSystemInfo(&r.s);

GetSystemTimeAsFileTime(&r.t);

QueryPerformanceCounter(&r.pc);

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

r.l = MAX_COMPUTERNAME_LENGTH + 1;

GetComputerName(r.hostname, &r.l);

MD5Update(&c, &r, sizeof r);

MD5Final(seed, &c);

}

#else

void get_system_time(uuid_time_t *uuid_time)

{

struct timeval tp;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

/* Khoảng trống giữa thời gian định dạng UUID và thời gian định dạng Unix.

Thời gian theo UUID UTC là 15/10/1582.

Thời gian theo Unix là 1/1/1970 */

*uuid_time = (tp.tv_sec * 10000000) + (tp.tv_usec * 10)

+ I64(0X01B21DD213814000);

}

void get_random_info(unsigned char seed[16])

{

MD5_CTX c;

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

struct timeval t;

char hostname[257];

}

r; MD5lnit(&c);

gettimeofday(&r.t, (struct timezone *)0);

gethostname(r.hostname, 256);

MD5Update(&c, &r, sizeof r);

MD5Final(seed, &c);

}

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

D.7 Tệp utest.c

#include "copyrt.h"

#include "sysdep.h"

#include <stdio.h>

#include "uuid.h"

uuid_t NameSpace_DNS = {

/* 6ba7b810-9dad-11d1-80b4-00c04fd430c8 */

0x6ba7b810,

0x9dad,

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8

};

/* puid – In ra một UUID */

void puid(uuid_t u)

{

int i;

printf("%8.8x-%4.4X-%4.4X-%2.2x%2.2x-", u.time_low, u.time_mid, u.time_hi_and_version, u.clock_seq_hi_and_reserved,

u.clock_seq_low);

for (i = 0; i < 6; i++)

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

printf ("\n");

}

/* Ổ đĩa đơn giản cho bộ phát UUID */

int main(int argc, char **argv)

{

uuid_t u;

int f;

uuid_create(&u);

printf("uuid_create(): ");

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

f = uuid_compare(&u, &u);

printf("uuid_compare(u,u): %d\n", f); /* sẽ là giá trị 0 */

f = uuid_compare(&u, &NameSpace_DNS);

printf("uuid_compare(u, NameSpace_DNS): %d\n", f); /* sẽ là giá trị 1 */

f = uuid_compare(&NameSpace_DNS, &u);

printf("uuid_compare(NameSpace_DNS, u): %d\n", f); /* sẽ là giá trị -1 */

uuid_create_from_name(&u, NameSpace_DNS, "www.widgets.com", 15);

printf("uuid_create_from_name(): "); puid(u);

}

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

uuid_create(): 7d444840-9dc0-11d1-b245-5ffdce74fad2

uuid_compare(u,u): 0

uuid_compare(u, NameSpace_DNS): 1

uuid_compare(NameSpace_DNS, u): -1

uuid_create_from_name(): e902893a-9d22-3c7e-a7b8-d6e313b71d9f

D.9 Một vài ID vùng tên

Điều này liệt kê ID vùng tên cho các vùng tên tiềm năng như cấu trúc đầu tiên trong ngôn ngữ C và biểu diễn chuỗi được xác định bên trên.

/* Chuỗi Name là tên miền đầy đủ */

uuid_t NameSpace_DNS = {

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

0x6ba7b810,

0x9dad,

0x11d1,

0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8

};

/* Name string là một URL */

uuid_t NameSpace_URL = {

/* 6ba7b811-9dad-11d1-80b4-00c04fd430c8 */

0x6ba7b811,

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

0x11d1,

0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8

};

/* Name string là một OID */

uuid_t NameSpace_OID = {

/* 6ba7b812-9dad-11d1-80b4-00c04fd430c8 */

0x6ba7b812,

0x9dad,

0x11d1,

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

};

/* Name string là tên phân biệt thư điều (trong DER or định dạng xuất ký tự*/

uuid_t NameSpace_X500 = {

/* 6ba7b814-9dad-11d1-80b4-

00c04fd430c8 */

0x6ba7b814,

0x9dad,

0x11d1,

0x80, 0xb4, 0x00, 0xc0, 0x4f, 0xd4, 0x30, 0xc8

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

 

THƯ MỤC TÀI LIỆU THAM KHẢO

[1] Zahn, L., Dineen, T., Leach, P. (January 1990), Network computing architecture , ISBN 0-13-

611674.-4.

[2] Open group CAE:DCE: Remote procedure call, Specification C309, ISBN 1-85912=041-5, August 1994.

[3] ISO/IEC 11578:1996, Information technology – Open system interconnection – Remote procedure call (RPC).

[4] IEEE, Request form for an individual address block (also known as an Ethernet address block)

of 4,096 MAC Address, http://standards.ieee.org/regauth/oui/pilot-ind.html.

[5] ITU-T Recommendation X.500 (2008) ׀ ISO/IEC 9594-1:2008 Information technology – Open system Interconnection – The Directory: Overview of concept, models and services

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

[7] IETF RFC 4122 (2005), A universally unique identifier (UUID) URN Namespace

 

MỤC LỤC

Lời nói đầu

Lời giới thiệu

1 Phạm vi áp dụng

2 Tài liệu viện dẫn

3 Thuật ngữ và định nghĩa

4 Các từ viết tắt

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

6 Cấu trúc UUID và các phép biểu diễn

7 Sử dụng UUID như giá trị nguyên sơ cấp và nhãn Unicode của cung UUID

8 Sử dụng UUID để tạo URN

9 Các quy tắc so sánh và sắp xếp UUID

10 Tính hợp lệ

11 Bit biến thể

12 Sử dụng các trường UUID và thứ tự byte khi truyền

13 Thiết lập các trường của UUID theo thời gian

14 Thiết lập các trường UUID theo tên

...

...

...

Bạn phải đăng nhập hoặc đăng ký Thành Viên TVPL Pro để sử dụng được đầy đủ các tiện ích gia tăng liên quan đến nội dung TCVN.

Mọi chi tiết xin liên hệ: ĐT: (028) 3930 3279 DĐ: 0906 22 99 66

16 Đăng ký UUID và cách sử dụng UUID trong cây định danh đối tượng quốc tế

Phụ lục A (Tham khảo) Thuật toán tạo ra UUID theo thời gian

Phụ lục B (Tham khảo) Đặc tính của UUID theo tên

Phụ lục C (Tham khảo) Phát sinh các số ngẫu nhiên trong một hệ thống

Phụ lục D (Tham khảo) Biểu diễn mẫu

1 ISO/IEC 9834-1:2008 đã hủy v à thay thế bằng ISO/IEC 9834-1:2012

Văn bản này chưa cập nhật nội dung Tiếng Anh

Bạn Chưa Đăng Nhập Thành Viên!


Vì chưa Đăng Nhập nên Bạn chỉ xem được Thuộc tính của văn bản.
Bạn chưa xem được Hiệu lực của Văn bản, Văn bản liên quan, Văn bản thay thế, Văn bản gốc, Văn bản tiếng Anh,...


Nếu chưa là Thành Viên, mời Bạn Đăng ký Thành viên tại đây


Bạn Chưa Đăng Nhập Thành Viên!


Vì chưa Đăng Nhập nên Bạn chỉ xem được Thuộc tính của văn bản.
Bạn chưa xem được Hiệu lực của Văn bản, Văn bản liên quan, Văn bản thay thế, Văn bản gốc, Văn bản tiếng Anh,...


Nếu chưa là Thành Viên, mời Bạn Đăng ký Thành viên tại đây


Bạn Chưa Đăng Nhập Thành Viên!


Vì chưa Đăng Nhập nên Bạn chỉ xem được Thuộc tính của văn bản.
Bạn chưa xem được Hiệu lực của Văn bản, Văn bản liên quan, Văn bản thay thế, Văn bản gốc, Văn bản tiếng Anh,...


Nếu chưa là Thành Viên, mời Bạn Đăng ký Thành viên tại đây


Bạn Chưa Đăng Nhập Thành Viên!


Vì chưa Đăng Nhập nên Bạn chỉ xem được Thuộc tính của văn bản.
Bạn chưa xem được Hiệu lực của Văn bản, Văn bản liên quan, Văn bản thay thế, Văn bản gốc, Văn bản tiếng Anh,...


Nếu chưa là Thành Viên, mời Bạn Đăng ký Thành viên tại đây


Tiêu chuẩn quốc gia TCVN 10583-8:2014 (ISO/IEC 9834-8:2008) về Công nghệ thông tin - Liên kết hệ thống mở - Thủ tục điều hành của cơ quan đăng ký OSI - Phần 8: Tạo và đăng ký các định danh đơn nhất (UUIDs) và sử dụng như các thành phần định danh đối tượng ASN.1

Bạn Chưa Đăng Nhập Thành Viên!


Vì chưa Đăng Nhập nên Bạn chỉ xem được Thuộc tính của văn bản.
Bạn chưa xem được Hiệu lực của Văn bản, Văn bản liên quan, Văn bản thay thế, Văn bản gốc, Văn bản tiếng Anh,...


Nếu chưa là Thành Viên, mời Bạn Đăng ký Thành viên tại đây


4.116

DMCA.com Protection Status
IP: 18.190.253.56
Hãy để chúng tôi hỗ trợ bạn!