[White Paper]

T-Engine Forum
Ubiquitous ID Center
Specification
DRAFT
910-S202/UID-00005-01.A0.02
2013-01-16

簡易 ucode 解決プロトコル
Simplified ucode Resolution Protocol

T-Engine Forum
Ubiquitous ID Center Specification

Number:Title:
Status:Date:

910-S202/UID-00005-01.A0.02

910-S202/UID-00005-01.A0.02
簡易 ucode 解決プロトコル
Simplified ucode Resolution Protocol[X] Working Draft, [ ] Final Draft for Voting, [ ] Standard
2013/01/16

Copyright (C) 2013, T-Engine Forum, Ubiquitous ID Center, all rights reserved.

2

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

目次（Table of Contents）
はじめに .............................................................................................................................................................................. 5
規定範囲 ......................................................................................................................................................................... 5
本書の位置付け........................................................................................................................................................... 5
参照規定 ......................................................................................................................................................................... 5
用語定義 .............................................................................................................................................................................. 6
1. 目的 ................................................................................................................................................................................. 7
1.1. 定義 ......................................................................................................................................................................... 7
1.2. 目的 ......................................................................................................................................................................... 7
2. ucode 解決サーバ ...................................................................................................................................................... 8
2.1. 概説 ......................................................................................................................................................................... 8
2.2. ucode 解決データベース .................................................................................................................................. 8
2.2.1. データモデル ................................................................................................................................................ 8
2.3. ucode 解決 ........................................................................................................................................................... 11
2.3.1. 基本動作 ..................................................................................................................................................... 11
2.3.2. 検索アルゴリズム .................................................................................................................................... 122.3.3. カスケード検索 .......................................................................................................................................... 14
2.3.4. キャッシュ検索........................................................................................................................................... 15
2.3.5. プロキシサーバ ......................................................................................................................................... 15
2.3.6. ucode 解決ゲートウェイ .......................................................................................................................... 15
2.4. コンテンツの取得 .............................................................................................................................................. 16
3. ucode 解決プロトコルのパケット構造及びコマンド ...................................................................................... 17
3.1. 概説 ....................................................................................................................................................................... 17
3.2. コマンド ................................................................................................................................................................. 173.3. パケット構造 ....................................................................................................................................................... 17
3.4. コード定義 ........................................................................................................................................................... 18
3.5. コマンド仕様 ....................................................................................................................................................... 19
3.5.1. res_ucd........................................................................................................................................................... 193

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

更新履歴

バージョン

更新日

更新内容

00.00.01

2006.10.17

初版発行．

01.A0.00

2008.10.17

・参照規定に RFC3986，RFC952，ucode 解決
ゲートウェイを追加．
・コマンド名を res_ucd に変更．
・署名サーバの属性を追加．
・定数名（マクロ）を変更．
・データタイプにホスト名を追加．
・ucode 解決サーバを指定するパラメタを廃止．
・コマンドパケットに Version を追加．
・コマンドパケットのリトルエンディアンを廃止
して，全てネットワークバイトオーダに統一．
・検索アルゴリズムに attribute が一致しない場
合の処理を明記．
・eTP 関連のステータスとエラーを削除．

01.A0.01

2008.10.23

・検索アルゴリズムを修正．

01.A0.02

2013.01.16

・運用事例に則し，ucode 解決の流れから CC 領域を解決するサーバを削除．
・解決結果の URL に%U または%u を含める記法を追記．

4

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

簡易 ucode 解決プロトコル
Simplified ucode Resolution Protocol

はじめに
規定範囲
本仕様では，「モノ」や「場所」に割り当てられた ucode（ユビキタスコード）に基づいて，「モノ」や「場所」に関連付けられたコンテンツの位置情報（ucode 解決情報）を取得するための，簡易 ucode 解決プロトコルについて規定する．また，ucode 解決
情報を保持する ucode 解決サーバの内部構造について規定する．

本書の位置付け
本書は簡易 ucode 解決プロトコルについての規定である．「ユビキタス ID アーキ
テクチャ」[1]に基づいた ucode 解決プロトコル（標準版）については[2]を参照すること．

参照規定[1] T-Engine フォーラム，ユビキタス ID センター，「ユビキタス ID アーキテクチャ」，
910-S002/UID-00002, 2006.
[2] T-Engine フォーラム，ユビキタス ID センター，「ucode 解決プロトコル（標準版）」，910-S221/UID-00008, 2006.
[3] T-Engine フォーラム，ユビキタス ID センター，「ユビキタスコード：ucode」，
930-S101/UID-00010, 2006
[4] T-Engine フォーラム，ユビキタス ID センター，「 ucode 解決ゲートウェイ 」，
910-S204/UID-00007, 2006.
[5] RFC3986, 「Uniform Resource Identifier (URI): Generic Syntax」, 2005.
[6] RFC952, 「DOD INTERNET HOST TABLE SPECIFICATION」, 1985.

5

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

用語定義
z

ucode
現実世界の「モノ」や「場所」を識別することを目的とした番号（ID）．

z

ユビキタスコミュニケータ（UC）
ucode タグとインタフェースをとり，また ucode を用いて情報サービスを受ける機能を提供するユーザ端末．

6

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

1. 目的
1.1. 定義
ucode 解決プロトコルは，現実世界の「モノ」や「場所」を識別するための ucode から，識別された「モノ」や「場所」に関連する情報の格納位置やアクセス方法を取得するためのデータベース検索プロトコルである．位置情報には，IPv4 アドレス，IPv6
アドレス，URL，ホスト名，e-mail アドレス，電話番号などが含まれる．

1.2. 目的
ユビキタス ID アーキテクチャでは，ucode タグに書き込まれた ucode により「モノ」
や「場所」の識別が可能になるが，識別された「モノ」や「場所」に関する情報（例えば「モノの利用方法」や「その場所の地図」などのコンテンツ）を参照したいという要求がある．しかし，一般的に ucode タグは十分な量のメモリ容量を持たないため，コンテンツはタグの外部（例えば十分な容量を持ったネットワーク上のサーバ）に格納することが想定される．このため，ucode 解決サーバが，ucode とコンテンツの格納位置の対応付けデータベース（ucode 解決データベース）を管理し，ucode からコンテンツ位置を解決できる仕組みを提供する．このときの，ucode 解決サーバへのプ
ロトコルとして，ucode 解決プロトコル（ucodeRP: ucode Resolution Protocol）を規定
する．
利用者は，ucodeRP を用いて ucode 解決サーバにアクセスし，タグの外部に置かれたコンテンツの位置情報やアクセス方法を取得した後に，得られた情報に基づいて実際のコンテンツにアクセスできる．

7

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

2. ucode 解決サーバ
2.1. 概説
ucode 解決サーバは，それぞれの ucode とコンテンツ位置の対応付け情報を管理する，ユビキタス ID アーキテクチャの基盤ノードの 1 つである．あらゆる「モノ」や「場所」を識別するという ucode の特性から，ucode 解決サーバは膨大な数の ucodeを管理する必要がある．従って，ucode 解決サーバは，複数のサーバが広範囲に分散して ucode を管理することで，ucode の爆発的な増加にも対応できる仕組みとなっている．ucode 解決サーバはツリー型に多段に階層化され，上位のサーバは国や国際標準化団体が，下位のサーバは企業や個人が運用することを想定している．
なお，本仕様書では，ucode とコンテンツ位置の対応付け情報を，ucode 解決情報と呼ぶ．ucode 解決情報は ucode 解決データベースに格納される．

2.2. ucode 解決データベース
2.2.1. データモデル
ucode 解決情報を管理する ucode 解決データベースは，「データファイル」と「デー
タエントリ」の 2 つの要素から構成される．
分散配置された ucode 解決サーバには，それぞれ管理すべき ucode 領域が割り当てられる．各 ucode 解決サーバは，管理すべき ucode 領域を示す「データファイ
ル」を持っており，具体的な ucode 解決情報はデータファイル内の「データエントリ」と呼ばれるレコードに登録する（図 1）．データファイルには 1 つ以上のデータエント
リが登録され，各データエントリの ucode 解決情報は必ず所属データファイルのucode 領域のものでなくてはならない．

データファイル#1
データエントリ#1-1
データエントリ#1-2
データエントリ#1-3
・・・

図 1：データファイルとデータエントリの間の関係

8

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

ucode 解決データベースでは，広大な ucode 空間を，「データファイル」をツリー型に階層化していくことで分散管理する（図 2）．例えば，上位階層には Top Level
Domain（TLD）などのより広い ucode 領域を管理するデータファイルが，下位階層には Second Level Domain（SLD），Identification Code（IC）などのより絞られた ucode
領域を管理するデータファイルが配置される．各 ucode 解決サーバは 1 つ以上のデータファイルを管理することが可能である．
ucode 空間
データファイル#1
管理領域

データファイル#3
管理領域

データファイル#2
管理領域

図 2：データファイルの階層化

表 1 に，ucode 解決サーバが管理するデータファイルの例を示す．この例では，2つのデータファイルを管理している．また，表 1-(2)のデータファイル内に登録された
データエントリを表 2 に示す．この例では，3 つのデータエントリが登録されている．
表 1：データファイルの例
dbucode(1) 0EFFFEC000000000
0000000000040000(2) 0EFFFEC000000000
0000000000050000

dbmaskFFFFFFFFFFFFFFFF
FFFFFFFFFFFF0000
FFFFFFFFFFFFFFFF
FFFFFFFFFFFF0000

cascade_mode
UIDC_NOCSCUIDC_CSC※ 1 レコードが 1 データファイルを示す．

表 2：データエントリの例（表 1-(2)のデータファイルに登録されたエントリ）
ucode
ucodemask
attribute ver(1) 0EFFFEC000000000 FFFFFFFFFFFFFFFF UIDC_ATTR 10000000000050100 FFFFFFFFFFFFFF00 _IS

ttl
0(2) 0EFFFEC000000000 FFFFFFFFFFFFFFFF UIDC_ATTR 10000000000050200 FFFFFFFFFFFFFF00 _RS(3) 0EFFFEC000000000 FFFFFFFFFFFFFFFF UIDC_ATTR 20000000000050300 FFFFFFFFFFFFFF00 _RS

3600※ 1 レコードが 1 データエントリを示す．

90datatype data
UIDC_DATA http://www.ui
TYPE_URL dcenter.org/g
etinfo.cgi
UIDC_DATA 192.168.10.1
TYPE_IPV4
UIDC_DATA 192.168.10.2
TYPE_IPV4

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

データファイルでは，dbucode と dbmask の 2 つの値により管理すべき ucode 範
囲を指定する．dbucode & dbmask（ビット積）が ucode の範囲を示す値となる．例えば，表１-(1)のデータファイルは，0EFFFEC0…00040000～0EFFFEC0…004FFFF の範
囲の ucode を管理することを示している．各データファイルは，dbucode & dbmask
をキーにして管理される．
データエントリでは，同様に，ucode と ucodemask の 2 つの値により，エントリが指し示す ucode 範囲を指定する．ucode & ucodemask が，ucode の範囲を示す値となる．例 えば ， 表 2-(2)のデー タエン ト リは， 0EFFFEC0…00050200 ～0EFFFEC0…
000502FF の範囲の ucode を指し示すことを表わしている．各データエントリは，
ucode & ucodemask をキーにして管理される．また，attribute～data までの各属性には，キーが示す ucode 範囲に対する ucode 解決情報が登録されている．このように，データエントリでは，1 つ 1 つの ucode ではなく，ucode 範囲に対して ucode 解
決情報を登録する．
表 3 と表 4 にデータファイルの属性と属性値の定義を，表 5 と表 6 にデータエント
リの属性と属性値の定義を示す．
表 3：データファイル属性一覧
データファイル属性
dbucodedbmaskcascade_mode

意味
データファイルが管理する ucode
dbucode のうち有効ビットを示すビットマスク
サポートするカスケード接続のモード

表 4：データファイル属性値定義
データファイル属性
cascade_mode

属性値
0x01

定数名
UIDC_NOCSC

0x02

UIDC_CSC

意味
カスケード検索機能を提供しないucode 解決サーバへのカスケード
検索機能を提供する

表 5：データエントリ属性一覧
データエントリ属性
ucode
ucodemask
attribute
versionttl
datatype
data

意味
データエントリが示す ucode
ucode のうち有効ビットを示すビットマスク
data が指し示すノードの種別
データエントリのバージョン
データエントリのキャッシュ有効期限（秒）data の表現形式
解決要求 ucode に対応する位置情報

10

↑
│
ucode
解決情報
│
↓

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

表 6：データエントリ属性値定義
データエントリ
属性
attributedatatype

属性値

定数名

意味

0x00010x00020x00030x00FF
0x00010x00020x00030x00040x00110x00120x00130x00140x00210x00310x00FE
0x00FF

UIDC_ATTR_RS
UIDC_ATTR_IS
UIDC_ATTR_SIGS
UIDC_ATTR_USER
UIDC_DATATYPE_UCODE_128
UIDC_DATATYPE_UCODE_256
UIDC_DATATYPE_UCODE_384
UIDC_DATATYPE_UCODE_512
UIDC_DATATYPE_IPV4
UIDC_DATATYPE_IPV6
UIDC_DATATYPE_URL
UIDC_DATATYPE_HOST
UIDC_DATATYPE_EMAILUIDC_DATATYPE_PHONE
UIDC_DATATYPE_TXT
UIDC_DATATYPE_USER

ucode 解決サーバ
情報サーバ
署名サーバ
ユーザ定義
128bit 型 ucode
256bit 型 ucode384bit 型 ucode
512bit 型 ucode
IPv4 アドレス
IPv6 アドレス
URL
HOST
e-mail アドレス
電話番号
テキスト情報
ユーザ定義型

データエントリに登録された ucode 解決情報は，ucode とコンテンツ位置を対応付
ける情報であり，典型的にはコンテンツが格納されているサーバのアドレスが登録される．本仕様では，このサーバを情報サーバと呼ぶ．
データファイルは多段階に階層化されているため，データエントリに直接情報サーバアドレスが登録されるとは限らない．上位層のデータファイルには，次に検索すべき下位階層のデータファイルを管理している ucode 解決サーバアドレスが登録される．
このように，ucode 解決データベースは，ビットマスクを利用することで任意のビッ
ト境界による多段階の階層化が可能で，特定のビットに固定的な情報を割り当てない動的な構造となっている．また，ucode の割り当て構造とも論理的に独立している．

2.3. ucode 解決
2.3.1. 基本動作
ユビキタス ID アーキテクチャでは，ucode を取得したユビキタスコミュニケ－タ（UC）が，ucode 解決データベースを検索して情報サーバアドレスを取得し，コンテ
ンツへのアクセスを行う．従って，ネットワークを介して ucode 解決データベースを検索できる機能が必要となる．本節では，ucode をキーにした ucode 解決データベースの検索メカニズムについて述べる．
ucode 解決の基本的動作を図 3 に示す．ucode 解決サーバが多段階に階層化されている場合には，UC は ucode 解決サーバ以外のアドレスが見つかるまで再帰的
11

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02に ucode 解決サーバへの問い合わせを行う．図 3 には，ucode 領域が TLD，SLDの三段に階層化されているときの動作が示されている．
UC

タグ
ucode
<1>──→

サーバ群
ucode<2>──────────→←───────────
192.168.1.1

TLD 管理用
ucode 解決サーバ
192.168.0.1

ucode<3>──────────→←───────────
http://www.uidcenter.org/
getinfo.cgi

SLD 管理用
ucode 解決サーバ
192.168.1.1

ucode<4>─────────→←──────────
コンテンツ

情報サーバ
http://www.uidcenter.org/
getinfo.cgi<1> タグから ucode を読み出す．
<2> TLD 管理用 ucode 解決サーバへ ucode を送信し，SLD 領域管理用 ucode 解決サーバの位
置情報（192.168.1.1）を取得する．
<3> SLD 管 理 用 ucode 解 決 サ ー バ へ ucode を 送 信 し ， 情 報 サ ー バ の 位 置 情 報（http://www.uidcenter.org/getinfo.cgi）を取得する．
<4> 情報サーバへ ucode を送信し，コンテンツを取得する．

図 3：ucode 解決の基本動作例．<2>から<4>までが ucodeRP 仕様として定義される．

ucode 解決サーバは，受信した ucode と保持しているデータファイルを照合する．
データファイルが管理する ucode 範囲に含まれていた場合には続いてデータエント
リの検索を行い，検索結果を UC に返信する．UC は，返信された ucode 解決情報
が ucode 解決サーバアドレスの場合には，次の ucode 解決サーバへ ucode 解決要
求を送信する（<3>）．また，情報サーバアドレスの場合には，情報サーバからコンテンツを取得する（<4>）．このうち，<2>～<3>のアクセスプロトコルが，ucodeRP 仕様として定義される．

2.3.2. 検索アルゴリズム
ucode 解決サーバが UC から ucode 解決要求を受信したときの，データファイル
及びデータエントリの検索アルゴリズムについて述べる．
UC は，表 7 に示す 3 つのパラメタを ucode 解決要求として ucode 解決サーバに送信する．データファイルやデータエントリと同様に，検索要求も ucode とマスクビッ
トを指定する．
表 7：ucode 解決要求パラメタ

12

T-Engine Forum
Ubiquitous ID Center Specification

パラメタ名
queryucode
querymask
queryattribute

910-S202/UID-00005-01.A0.02

意味
解決対象の ucode
queryucode のうち有効ビットを示すビットマスク
獲得したい ucode 解決情報の属性

ucode 解決サーバは，ucode 解決要求を受信すると，まず対象となるデータファイ
ルを検索し，次に検索されたデータファイル内のデータエントリの検索を行う．このときの検索条件を以下に示す．

1. データファイルの検索条件
・(queryucode & querymask & dbmask) が (dbucode & querymask & dbmask) と等しくなるデータファイル．
2. データエントリの検索条件（以下の条件を全て満たすこと）
・(queryucode & querymask & ucodemask) が (ucode & querymask & ucodemask) と等
しくなり,かつ(querymask & ucodemask)が ucodemask と等しくなるデータエントリ．
・queryattribute が attribute と等しいデータエントリ．queryattibute が attributeと等しいエントリがない場合は，attribute が UIDC_ATTR_RS と等しいエントリ．ただし，queryattribute が UIDC_ATTR_ANONYMOUS である場合にはこの条件を満たす必要は無い．

データファイルの検索に失敗した場合には，その時点でサーバは検索失敗を返信する．データファイルの検索に成功したが，データファイル内のデータエントリの検索に失敗した場合にも，検索失敗となる．
データエントリの検索に成功すると，ucode 解決サーバは表 8 に示すパラメタを含
む ucode 解決情報をクライアントに返信する．
表 8：ucode 解決情報のパラメタ
パラメタ名
dataattributedataversion
ttl
datatype
data
returnmask
resolvemode

意味
検索された位置情報の属性
ucode 解決情報のバージョン
ucode 解決情報の有効期間 (秒)検索された位置情報の種類と形式検索された位置情報
解決に使用したビットを示すビットマスク値実施された ucode 解決データベースの検索モード

ucode 解決情報には，データエントリが持つ ucode 解決情報に加えて，解決に使用したビットを示す returnmask と，実施された検索モードを示す resolvemode が含まれる．
また，検索に失敗した場合の挙動として，サーバは検索が成功するであろうサー
バ（上位サーバ等）のアドレスを検索結果として返信してもよい．複数のデータエン
トリが検索された場合の選択基準については，本仕様では規定しない．
13

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

2.3.3. カスケード検索
基本動作に加えて，ucode 解決サーバはカスケード検索機能をサポートしてもよい．カスケード検索は，ucode 解決サーバが数珠つなぎに ucode 解決データベースの検索を行う方式で，処理速度やネットワークが貧弱なクライアントに対する負荷を軽減することが可能である．本節では，ucode 解決サーバへのカスケード検索について規定する．
TLD 領域管理用 ucode 解決サーバがカスケード検索する場合の動作例を図 4に示す．カスケード検索では，UC は一回の ucode 解決要求で，情報サーバアドレ
スの獲得が可能である．
UC

タグ
ucode
<1>──→

サーバ群
ucode<2>──────────→←──────────<5>http://www.uidcenter.org/
getinfo.cgi

TLD 領域管理用
ucode 解決サーバ
192.168.0.1↑ <3>ucode
http://www.uidcenter.org/│ │getinfo.cgi<4> ↓SLD 管理用
ucode 解決サーバ
192.168.1.1
ucode<6>──────────→←───────────
コンテンツ

情報サーバ
http://www.uidcenter.org/
getinfo.cgi<1> タグから ucode を読み出す．
<2> TLD 領域管理用 ucode 解決サーバへ ucode を送信する．TLD 領域管理用 ucode 解決サー
バは受信 ucode を検索した結果，SLD 管理用 ucode 解決サーバアドレス（192.168.1.1）を取得す
る．
<3> TLD 領域管理用 ucode 解決サーバは，SLD 管理用 ucode 解決サーバへ ucode を送信する．
SLD 管理用 ucode 解決サーバは受信した ucode を検索した結果，情報サーバの位置情報（http://www.uidcenter.org/getinfo.cgi）を取得する．
<4> SLD 管理用 ucode 解決サーバは，検索結果（http://www.uidcenter.org/getinfo.cgi）を TLD
領域管理用 ucode 解決サーバに返信する．
<5>TLD 領域管理用 ucode 解決サーバは，検索結果（http://www.uidcenter.org/getinfo.cgi）を
UC に返信する．
<6> 情報サーバへ ucode を送信し，コンテンツを取得する．

図 4：カスケード検索例．<2>から<5>までが ucodeRP として定義される．

TLD 領域管理用 ucode 解決サーバは，次に問い合わせるべき SLD 管理用
ucode 解決サーバに検索要求を直接送信する（<3>）．このとき，TLD 領域管理用

14

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

ucode 解決サーバは，SLD 管理用 ucode 解決サーバに対しては解決クライアントとして振舞う．なお，図 6 は，ucode 解決サーバが２段にカスケードされた場合の構成例であるが，一般的にはｎ段（ｎは１以上の自然数）のカスケードが可能である．
ucode 解決サーバは，以下の条件を全て満たした場合にカスケード検索を実行
する．

1. 検索要求でカスケード接続が要求されている．
2. 検索対象となったデータファイルがカスケード接続機能をサポートしている．すなわ
ち，cascade_mode の値が UIDC_CSC である．
3. 検索結果として得られたアドレスが，ucode 解決サーバのアドレスである．

カスケード検索先からエラー応答が返信された場合は，エラー応答を UC にそのまま転送してもよいし，カスケード検索をしなかったものとして通常の検索結果を返信してもよい．
なお，情報サーバへのカスケード接続については，本仕様では規定しない．

2.3.4. キャッシュ検索
ucode 解決サーバや UC は，検索の効率化のために検索結果として得られた
ucode 解決情報をキャッシュしてもよい．また，キャッシュサーバ等のキャッシュ専用ノードを設置してもよい．
ただし，キャッシュにより応答を行う場合には，キャッシュ応答であることを明示しなくてはならない．また，各データエントリの ttl フィールドは，エントリのキャッシュ
許可期間を示しており，この期間を過ぎたキャッシュを利用してはならない．なお，
ttl が 0 のエントリはキャッシュ不可であることを示す．
クライアントはキャッシュによる応答を許可するかどうかを指定できる．ucode 解
決サーバはキャッシュ応答不可の検索要求に対してキャッシュ応答を行ってはならない．

2.3.5. プロキシサーバ
UC のネットワークアドレス等の秘匿のために，プロキシサーバを経由して ucode
解決サーバへアクセスしてもよい．プロキシサーバについては，本仕様では規定しない．

2.3.6. ucode 解決ゲートウェイ
処理速度やネットワークが貧弱なクライアントに対する負荷軽減のために，
ucode 解決ゲートウェイを設置してもよい．ucode 解決ゲートウェイは，クライアントから解決要求を受け取り，ucode 解決サーバや情報サーバに対して一連の検索処
15

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

理を行った後に，最終検索結果をクライアントに返す．ucode 解決ゲートウェイの機能やアクセスプロトコルについては[4]で規定する．

2.4. コンテンツの取得
UC は，ucode 解決により取得した情報サーバアドレスに基づいて，コンテンツへのアクセスを行う．コンテンツへのアクセス方式については本仕様では規定しない．
ただし，UC は ucode 解決情報からアクセスプロトコルを判別できる場合がある．例
えば，URL であればスキーム情報（"http://"など）により判別が可能である．
ucode 解決により得られた URL に"%U"が含まれる場合，これは"%U"部分を問い合わせられた ucode（英字部分を大文字）に置き換えることを意味する．ucode 解決
により得られた URL に"%u"が含まれる場合，これは"%u"部分を問い合わせられた
ucode（英字部分を小文字）に置き換えることを意味する．
上記を利用して， CGI の引き数に ucode を含む URL を解決結果として得られる．このとき，UC は例えば以下のような HTTP 要求を情報サーバに送信する．
http://www.uidcenter.org/getinfo.cgi?ucode=0EFFFEC0000000000000000000050123

16

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

3. ucode 解決プロトコルのパケット構造及びコマンド
3.1. 概説
ucodeRP は，ucode 解決データベースへのアクセス機能を提供するプロトコルである．UC は，ucodeRP を利用して ucode 解決サーバへのアクセスを行い，ucode
解決情報を取得することが可能である．ucodeRP はアプリケーションレイヤのプロトコルであり，下位層のプロトコルに依存しない．

3.2. コマンド本仕様書で規定する ucodeRP コマンド一覧を表９に示す．
表 9：ucodeRP コマンド一覧
コマンド名
res_ucd機能
ucode 解決データベースの検索を行う

3.3. パケット構造
ucodeRP の送りパケット構造定義を図 5 に，戻りパケット構造定義を図 6 に示す．
すべてのパラメタはネットワークバイトオーダで格納される．
D0
Ver

D1
Serial
No

D2

D3

D4

Command ID

D5

D6

予約

D7
PL 長

DATA
･･･

･･･

･･･

DATA

フィールド
Ver
Serial No
Command ID
PL 長
DATA
予約

意味
ucodeRP プロトコルのバージョン．1 固定．
ucodeRP 要求の識別番号．送信側が自由に設定できる．
ucodeRP コマンドコード．
ucodeRP パケット全体の長さ(8 オクテットブロック数)．例えば，
48 オクテットであれば，PL 長=0x0006 となる．
コマンド毎に規定されるコマンドパラメタ．
0 固定とする．
図 5：送り ucodeRP パケット

17

T-Engine Forum
Ubiquitous ID Center Specification

D0
Ver

D1
Serial
No

910-S202/UID-00005-01.A0.02

D2

D3

D4

Error Code

D5

D6

予約

D7
PL 長

DATA
･･･

･･･

･･･

DATA

フィールド
Ver
Serial No
Error Code
PL 長
DATA
予約

意味
ucodeRP プロトコルのバージョン．1 固定．
ucodeRP 応答の識別番号．対応する ucodeRP 要求の Serial No +
1 の値としなくてはならない．
ucodeRP コマンドの終了ステータス．
ucodeRP パケット全体の長さ(8 オクテットブロック数)．例えば，48 オクテットであれば，PL 長=0x0006 となる．
コマンド毎に規定されるレスポンスパラメタ．
0 固定とする．
図 6：戻り ucodeRP パケット

3.4. コード定義（１）コマンドコード
ucodeRP コマンドコードの一覧を表 10 に示す．
表 10：ucodeRP コマンドコード一覧
コマンドコード
0x0001

コマンド名
res_ucd（２）エラーコード
ucodeRP エラーコード一覧を表 11 に示す．
表 11：エラーコード一覧
状態
正常終了
異常終了

値
0x00000xFFEF
0xFFDF
0xFFCC

定数名
E_UIDC_OK
E_UIDC_NOSPTE_UIDC_PAR
E_UIDC_NOEXS

意味
解決成功
未サポート機能
パラメタエラー
エントリが存在しない※ resolvemode==UIDC_RSMODE_CASCADE の場合には，カスケード先が返したエラーコード
となる．

18

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

3.5. コマンド仕様
3.5.1. res_ucd（１）機能概要
指定された ucode をキーに ucode 解決データベースを検索し，ucode 解決情報を提供する．

（２）送りパラメタ
res_ucd コマンドの送りパケット構造定義を図 7 に，パラメタ一覧を表 12 に，パラ
メタ値定義を表 13 に示す．

D0
Ver

D1
Serial
No

D2

D3

D4

Command ID

D5
予約

t
querymode

D6

D7
PL 長

予約
queryattributeucodetypeucodelength

queryucode(0)queryucode(1)
･･･

･･･

･･･

querymask(0)querymask(1)
･･･

･･･

･･･

図 7：res_ucd コマンド送りパケット

表 12：送りパラメタ一覧
フィールド
t

意味
コマンドの送信時刻（2000 年 1 月 1 日 AM 0:00 からの積算
秒数（グリニッジ標準時））
querymodeucode 解決データベースの検索モード
queryattribute 検索したいデータの属性
ucodetype
検索する ucode の型
ucodelength
queryucode/querymask の長さ合計(byte)
queryucode
検索する ucode
querymask
ucode のうち有効ビットを示すビットマスク値
予約
0 固定

19

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

表 13：送りパラメタ値定義
パラメタ
querymode(論理和で指定)queryattributeucodetype

queryucode
querymask

値
0x00000x00010x00020x00000x00010x00020x00030x00FF
0x00010x00020x00030x0004<ucodebinary><ucodebinary>

定数名
UIDC_RSMODE_RESOLUTIONUIDC_RSMODE_CACHEUIDC_RSMODE_CASCADEUIDC_ATTR_ANONYMOUSUIDC_ATTR_RS
UIDC_ATTR_IS
UIDC_ATTR_SIGS
UIDC_ATTR_USER
UIDC_DATATYPE_UCODE_128
UIDC_DATATYPE_UCODE_256
UIDC_DATATYPE_UCODE_384
UIDC_DATATYPE_UCODE_512-

意味ucode 解決を指示
キャッシュ検索を許可
カスケード検索を許可
属性を指定しない
ucode 解決サーバ
情報サーバ
署名サーバ
ユーザ定義
128bit 型 ucode
256bit 型 ucode384bit 型 ucode
512bit 型 ucode
ucode のバイナリ値-

ビットマスクのバイナリ
値<ucode binary> ::= 16(%x00-%xFF)※1※2※1 : n<element>は，n 個の<element>が並ぶことを示す．
※2 : %x は，16 進の数値を示す．

（３）戻りパラメタ
res_ucd コマンドの戻りパケット構造定義を図 8 と図 9 に，パラメタ一覧を表 14に，パラメタ値定義を表 15 に示す．
D0

D1
D2
D3
SerialError Code
Ver
No
ttl
resolvemodedataattribute

D4

D5

D6

D7

予約

PL 長

予約
datatype

dataversion
datalengthdata(0)･･････
data(N)･･･
0 padding

予約

masklength
returnmask(0)returnmask(1)

･･･

･･･

･･･

図 8：res_ucd コマンド戻りパケット（正常時）

20

T-Engine Forum
Ubiquitous ID Center Specification

D0
Ver

D1
SerialNo

D2

910-S202/UID-00005-01.A0.02

D3

D4

Error Code

D5
予約

D6

D7
PL 長

図 9：res_ucd コマンド戻りパケット（エラー時）

表 14：戻りパラメタ一覧
フィールド
ttl
dataversion
resolvemodedataattributedatatype
datalengthdatamasklength
returnmask
予約意味
取り出されたデータの有効期間 (秒)検索データのバージョン
実施されたデータベースの検索モード
検索されたデータの属性検索されたデータの種類と形式検索されたデータのデータ長検索されたデータ
returnmask のバイト数解決されたデータのビットマスク値
0 固定

表 15：戻りパラメタ値定義
パラメタ
resolvemode(論理和で指定)

dataattributedatatypedata

値0x00000x0001

定数名
UIDC_RSMODE_RESOLUTIONUIDC_RSMODE_CACHE

0x0002

UIDC_RSMODE_CASCADE

0x0001

UIDC_ATTR_RS

0x00020x00030x00FF
0x00010x00020x00030x00040x00110x00120x00130x00140x00210x00310x00FE
0x00FF<data
value>

UIDC_ATTR_IS
UIDC_ATTR_SIGS
UIDC_ATTR_USER
UIDC_DATATYPE_UCODE_128
UIDC_DATATYPE_UCODE_256
UIDC_DATATYPE_UCODE_384
UIDC_DATATYPE_UCODE_512
UIDC_DATATYPE_IPV4
UIDC_DATATYPE_IPV6
UIDC_DATATYPE_URL
UIDC_DATATYPE_HOST
UIDC_DATATYPE_EMAILUIDC_DATATYPE_PHONE
UIDC_DATATYPE_TXT
UIDC_DATATYPE_USER
-

21

意味
通常の ucode 解決応答
キャッシュ検索による応答
カスケード検索による応答
ucode 解決サーバアドレ
ス
情報サーバ
署名サーバ
ユーザ定義
128bit 型 ucode
256bit 型 ucode384bit 型 ucode
512bit 型 ucode
IPv4 アドレス
IPv6 アドレス
URL
ホスト名e-mail アドレス
電話番号
テキスト情報
ユーザ定義型
検索されたデータの実体

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02<data value>::= <ucode binary> |<IPv4 address binary> |<IPv6 address binary> |<URL の ASCII 表記※1> |<host の ASCII 表記※2> |*CHAR<IPv6 address binary> ::= 16(%x00-ff)
CHAR = <US-ASCII 文字>※1 : [5]を参照※2 : [6]を参照

22; for UIDC_DATATYPE_UCODE_*; for UIDC_DATATYPE_IPV4; for UIDC_DATATYPE_IPV6; for UIDC_DATATYPE_URL; for UIDC_DATATYPE_HOST; for other types

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

付録 A. ucode 解決サーバの構築例及び動作例
A.1. ucode 解決サーバの構築例
ucode を，TLD（上位 20bit），SLD（上位 112bit）の 2 階層のデータファイルで管理し，各データファイルを別々の ucode 解決サーバで管理したときの構成例を示す．
サーバ群の階層構造は以下のようになる．
TLD 管理用TLDc=0x0efff の領域を管理
ucode 解 決 サ ー バ(0EFFF000...000 ～ 0EFFFFFF...FFFF)(192.168.0.1)

SLD 管理用
ucode 解決サーバ(192.168.1.1)

TLDc=0x0EFFF/CC=0xE/
SLDc=0xC00...005 の領域を管理(0EFFFEC0...00050000～ 0EFFFEC0...0005FFFF)

情報サーバ

コンテンツを提供
http://www.uidcenter.org/
getinfo.cgi
図 10：サーバ群の階層構造（１）TLD 管理用 ucode 解決サーバ
TLD 管理用 ucode 解決サーバが管理するデータファイルと，それに含まれるデータエントリの構築例を以下に示す．このデータファイルは，0EFFF000…000～
0EFFFFFF…FFFF の ucode 範囲を管理している．また，データエントリでは，0EFFFEC0…00050000～0EFFFEC0…0005FFFF の ucode 範囲に対して，下位階層の ucode 解決サーバを指し示す IPv4 アドレス"192.168.1.1"を対応付けている．

データファイル
dbucode= 0EFFF000000000000000000000000000
dbmask= FFFFF000000000000000000000000000
cascade_mode = UIDC_NOCSC
データエントリucode= 0EFFFEC0000000000000000000050000
ucodemask = FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
attribute = 0x0001 (UIDC_ATTR_RS)
version= 0x0001
ttl= 0x00015180
datatype = 0x0011 (UIDC_DATATYPE_IPV4)
data= 0xC0A80101// "192.168.1.1"の Binary 表記

23

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02（２）SLD 管理用 ucode 解決サーバ
SLD 管理用 ucode 解決サーバが管理するデータファイルと，それに含まれるデータエントリの構築例を以下に示す．このデータファイルは，0EFFFEC0…00050000～0EFFFEC0…0005FFFF の ucode 範囲を管理している．また，データエントリでは，0EFFFEC0…00050100～0EFFFEC0…000501FF の ucode 範囲に対して，情報サー
バを指し示す URL "http://www.uidcenter.org/getinfo.cgi"を対応付けている．

データファイル
dbucodedbmaskcascade= 0EFFFEC0000000000000000000050000= FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000= UIDC_NOCSC

データエントリucode= 0EFFFEC0000000000000000000050100
ucodemask = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
attribute = 0x0002 (UIDC_ATTR_IS)
version= 0x0001
ttl= 0x00000000
datatype = 0x0013 (UIDC_DATATYPE_URL)data= "http://www.uidcenter.org/getinfo.cgi"

A.2. ucode 解決の動作例
図 9 の構成例における，ucode 解決の動作例を示す．検索する ucode は，
0EFFFEC0000000000000000000050123 とする．

（１）TLD 管理用 ucode 解決サーバ
TLD 管理用 ucode 解決サーバへ ucode 解決要求を送信し，SLD 領域管理用
ucode 解決サーバアドレスを取得する場合の例を示す．

データエントリucode= 0EFFFEC0000000000000000000050000
ucodemask = FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
attribute = 0x0001 (UIDC_ATTR_RS)
version= 0x0001
ttl= 0x00015180
datatype = 0x0011 (UIDC_DATATYPE_IPV4)
data= 0xC0A80101// "192.168.1.1"の Binary 表記
検索要求
queryucode
querymask= 0EFFFEC0000000000000000000050123= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

24

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

検索結果
attribute= 0x0001 (UIDC_ATTR_RS)
version= 0x0001
ttl= 0x00015180
datatype= 0x0011 (UIDC_DATATYPE_IPV4)
data= 0xC0A80101
returnmask = FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000
resolvemode = 0x0000 (UIDC_RSMODE_RESOLUTION)

上位 112bit を使用して ucode 解決が行われ，SLD 領域管理用 ucode 解決サー
バの IPv4 アドレス"192.168.1.1"が検索結果として返信される．

（２）SLD 管理用 ucode 解決サーバ
SLD 管理用 ucode 解決サーバへ ucode 解決要求を送信し，情報サーバアドレスを取得する場合の例を示す．

データエントリucode= 0EFFFEC0000000000000000000050100
ucodemask = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
attribute = 0x0002 (UIDC_ATTR_IS)
version= 0x0001
ttl= 0x00015180
datatype = 0x0013 (UIDC_DATATYPE_URL)data= "http://www.uidcenter.org/getinfo.cgi"
検索要求
queryucode
querymask= 0EFFFEC0000000000000000000050123= FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

検索結果
attribute= 0x0002 (UIDC_ATTR_IS)
version= 0x0001
ttl= 0x00015180
datatype= 0x0013 (UIDC_DATATYPE_URL)data= "http://www.uidcenter.org/getinfo.cgi"
returnmask = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00
resolvemode = 0x0000 (UIDC_RSMODE_RESOLUTION)

上 位 120bit を 使 用 し て ucode 解 決 が 行 わ れ ， 情 報 サ ー バ の URL
25

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02"http://www.uidcenter.org/getinfo.cgi" が検索結果として返信される．

26

T-Engine Forum
Ubiquitous ID Center Specification

910-S202/UID-00005-01.A0.02

Copyright (C) 2013, T-Engine Forum, Ubiquitous ID Center, all rights reserved.

27