Handle、DOA物联网标识系统和协议
简介
Handle 系统是由互联网奠基人、图灵奖获得者、TCP/IP 协议联合发明人、被称为“互联网之父”的罗伯特•卡恩(Robert Kahn)博士于 1994 发明。Handle 系统是一套起源于互联网,以实现信息系统的互联互通为目标的标识注册、解析、管理技术体系。
Handle 系统以一定的方式赋予网络上的各种对象(文档、图像、多媒体等)一个唯一、合法、安全和永久的标识,通过这个标识和解析可以实现对被标识对象的解读、定位、追踪、查询、应用等功能。
Handle 系统位于应用层之下,在 TCP/IP(传输层、网络层)之上,是一层依托底层网络传输能力、对于应用提供支撑的基础标识层。
Handle 系统采用全球唯一的两段式编码,对各类数字对象提供管理机构与本地唯一编码,对本地唯一编码规则不做过多限制。
Handle 系统具有独立解析体系,与 DNS 兼容互补,也不受制于 DNS 而自主运行。解析过程从 Handle 编码、到信息所在服务器或设备的 IP 地址、到信息本身。
Handle 系统依托 DONA 的多边共管、各方自主可控的治理体系。中国已建成 Handle 系统全球顶级根节点(MPA),拥有对自己国家 Handle 系统运营和服务的自治权,同时可辐射到亚大地区乃至全球。
Handle的管理架构
Handle的DOA编码说明及使用规范
Handle协议
共有两类:
DOIP(Digital Object Interface Protocol):https://www.dona.net/sites/default/files/2018-11/DOIPv2Spec_1.pdf
IRP(Identifier/Resolution Protocol):https://www.ietf.org/rfc/rfc3650.txt ,https://www.ietf.org/rfc/rfc3651.txt
https://www.ietf.org/rfc/rfc3652.txt
协议流程:
------------------------ | | 4. Result of client request | Client with global | <-------------------------------. | service information | | | | ----------------------------. | ------------------------ 3. Request to responsible | | | ^ Local Handle Service | | 1. Client | | | | query for | | | | naming | | 2. Service information | | authority | | for "10.1045" V | "10.1045" | | ---------------------- | | | | V | | Local Handle Service | --------------- | responsible for the | | | | naming authority | | Global Handle | | "10.1045" | | Registry | | | | | ---------------------- ---------------
消息格式:
.----------------------. | | ; Message wrapper for proper message | Message Envelope | ; delivery. Not protected by the | | ; digital signature in the Message | | ; Credential. |----------------------| | | ; Common data fields for all handle | Message Header | ; operations. | | |----------------------| | | ; Specific data fields for each | Message Body | ; request/response. | | |----------------------| | | ; Contains digital signature or | Message Credential | ; message authentication code (MAC) | | ; upon Message Header and Message '----------------------' ; Body. 消息体举例:一个handle有多个值,比如下面的例子有三个json格式的值,index为值索引,data为值内容。
Handle "10.1045/may99-payette" | | V ------------------------------------------------------------- | <index>: 3 | ------------------------------------------------------------- | | <index>: 2 | | ------------------------------------------------------------- | | | | | | | <index>: 1 | | | | <type>: URL | | | | <data>: http://www.dlib.org/dlib... | | | | <TTL>: {Relative: 24 hours} | | | | <permission>: PUBLIC_READ, ADMIN_WRITE | | | | <timestamp>: 927314334000 | | | | <reference>: {empty} | |- | |- -------------------------------------------------------------
------------------------------------------------------------- ------------------------------------------------------------- | ------------------------------------------------------------- | | | | | | | <index>: 2 | | | | <type>: HS_ADMIN | | | | <data>: | | | | <AdminRef>: "0.NA/10": 3 | | | | <AdminPerm>: Add_NA, Delete_NA, | | | | Add Handle, Delete_Handle, | | | | Add_Value, Delete_Value, Modify_Value, | | | | Authorized_Read, List_Handle, List_NA | | | | | | | | <TTL>: 24 hours | | | | <permission>: PUBLIC_READ, ADMIN_WRITE | | | | <reference>: {empty} | |- | |- -------------------------------------------------------------