12. IANA の考慮事項
12.1. CoAP コードレジストリ
本文書は、"Constrained RESTful Environments (CoRE) Parameters" レジストリ (以下 "CoRE Parameters" レジストリと呼ぶ) 内に、CoAP ヘッダーの Code フィールドの値のための 2 つのサブレジストリを定義する。
2 つのサブレジストリの値は、3 桁の十進数 c.dd として表記される 8 ビット値であり、1 桁目と 2 桁目の間はピリオドで区切られる。1 桁目の c は 0 から 7 の間で、コードクラスを表す。2 桁目と 3 桁目の dd は、詳細を表す 00 から 31 の間の十進数を表す。
すべての Code 値は、以下の範囲に従ってサブレジストリによって割り当てられる:
0.00 空のメッセージを表す (4.1 節を参照)。
0.01-0.31 リクエストを表す。この範囲の値は "CoAP Method Codes" サブレジストリによって割り当てられる (12.1.1 節を参照)。
1.00-1.31 予約済み
2.00-5.31 レスポンスを表す。この範囲の値は "CoAP Response Codes" サブレジストリによって割り当てられる (12.1.2 節を参照)。
6.00-7.31 予約済み
12.1.1. メソッドコード
サブレジストリの名前は "CoAP Method Codes" である。
サブレジストリの各エントリには、0.01-0.31 の範囲の Method Code、メソッドの名前、およびメソッドの文書への参照を含めなければならない (MUST)。
このサブレジストリの初期エントリは以下のとおりである:
| Code | Name | Reference |
|---|---|---|
| 0.01 | GET | [RFC7252] |
| 0.02 | POST | [RFC7252] |
| 0.03 | PUT | [RFC7252] |
| 0.04 | DELETE | [RFC7252] |
表 5: CoAP メソッドコード
他のすべての Method Code は Unassigned である。
将来このサブレジストリに追加する際の IANA ポリシーは、[RFC5226] に記述されている "IETF Review or IESG Approval" である。
Method Code の文書は、そのコードを持つリクエストのセマンティクスを、以下の特性を含めて規定するべきである:
-
メソッドが成功時に返す Response Code。
-
メソッドが冪等 (idempotent) であるか、安全 (safe) であるか、またはその両方であるか。
12.1.2. レスポンスコード
サブレジストリの名前は "CoAP Response Codes" である。
サブレジストリの各エントリには、2.00-5.31 の範囲の Response Code、Response Code の説明、および Response Code の文書への参照を含めなければならない (MUST)。
このサブレジストリの初期エントリは以下のとおりである:
| Code | Description | Reference |
|---|---|---|
| 2.01 | Created | [RFC7252] |
| 2.02 | Deleted | [RFC7252] |
| 2.03 | Valid | [RFC7252] |
| 2.04 | Changed | [RFC7252] |
| 2.05 | Content | [RFC7252] |
| 4.00 | Bad Request | [RFC7252] |
| 4.01 | Unauthorized | [RFC7252] |
| 4.02 | Bad Option | [RFC7252] |
| 4.03 | Forbidden | [RFC7252] |
| 4.04 | Not Found | [RFC7252] |
| 4.05 | Method Not Allowed | [RFC7252] |
| 4.06 | Not Acceptable | [RFC7252] |
| 4.12 | Precondition Failed | [RFC7252] |
| 4.13 | Request Entity Too Large | [RFC7252] |
| 4.15 | Unsupported Content-Format | [RFC7252] |
| 5.00 | Internal Server Error | [RFC7252] |
| 5.01 | Not Implemented | [RFC7252] |
| 5.02 | Bad Gateway | [RFC7252] |
| 5.03 | Service Unavailable | [RFC7252] |
| 5.04 | Gateway Timeout | [RFC7252] |
| 5.05 | Proxying Not Supported | [RFC7252] |
表 6: CoAP レスポンスコード
Response Code 3.00-3.31 は将来の使用のために予約されている。他のすべての Response Code は Unassigned である。
将来このサブレジストリに追加する際の IANA ポリシーは、[RFC5226] に記述されている "IETF Review or IESG Approval" である。
Response Code の文書は、そのコードを持つレスポンスのセマンティクスを、以下の特性を含めて規定するべきである:
-
Response Code が適用されるメソッド。
-
ペイロードが必須 (required)、任意 (optional)、または許可されない (not allowed) のいずれであるか。
-
ペイロードのセマンティクス。例えば、2.05 (Content) レスポンスのペイロードは対象リソースの表現である。エラー応答のペイロードは人間が読める診断ペイロード (human-readable diagnostic payload) である。
-
ペイロードの形式。例えば、2.05 (Content) レスポンスの形式は Content-Format Option によって示される。エラー応答のペイロードの形式は常に Net-Unicode テキストである。
-
freshness model に従って、レスポンスがキャッシュ可能であるか。
-
validation model に従って、レスポンスが検証可能であるか。
-
レスポンスが、request URI に対して保存されたレスポンスをキャッシュに not fresh としてマークさせるか。
12.2. CoAP オプション番号レジストリ
本文書は、"CoRE Parameters" レジストリ内に、CoAP オプションで使用される Option Number のためのサブレジストリを定義する。サブレジストリの名前は "CoAP Option Numbers" である。
サブレジストリの各エントリには、Option Number、オプションの名前、およびオプションの文書への参照を含めなければならない (MUST)。
このサブレジストリの初期エントリは以下のとおりである:
| Number | Name | Reference |
|---|---|---|
| 0 | (Reserved) | [RFC7252] |
| 1 | If-Match | [RFC7252] |
| 3 | Uri-Host | [RFC7252] |
| 4 | ETag | [RFC7252] |
| 5 | If-None-Match | [RFC7252] |
| 7 | Uri-Port | [RFC7252] |
| 8 | Location-Path | [RFC7252] |
| 11 | Uri-Path | [RFC7252] |
| 12 | Content-Format | [RFC7252] |
| 14 | Max-Age | [RFC7252] |
| 15 | Uri-Query | [RFC7252] |
| 17 | Accept | [RFC7252] |
| 20 | Location-Query | [RFC7252] |
| 35 | Proxy-Uri | [RFC7252] |
| 39 | Proxy-Scheme | [RFC7252] |
| 60 | Size1 | [RFC7252] |
| 128 | (Reserved) | [RFC7252] |
| 132 | (Reserved) | [RFC7252] |
| 136 | (Reserved) | [RFC7252] |
| 140 | (Reserved) | [RFC7252] |
表 7: CoAP オプション番号
将来このサブレジストリに追加する際の IANA ポリシーは、以下の 3 つの階層に分かれている。0..255 の範囲は IETF が定義するオプション用に予約されている (IETF Review or IESG Approval)。256..2047 の範囲は公開仕様を持つ一般的に使用されるオプション用に予約されている (Specification Required)。2048..64999 の範囲は、プライベートまたはベンダー固有のものを含む他のすべてのオプション用であり、オプションのセマンティクスが正しく定義されることを保証するために Designated Expert によるレビューを受ける。65000 から 65535 まで (両端を含む) のオプション番号は実験用に予約されている。これらは、いかなる種類のベンダー固有の使用も意図されておらず、運用環境で使用してはならない (MUST NOT)。
| Range | Registration Procedures |
|---|---|
| 0-255 | IETF Review or IESG Approval |
| 256-2047 | Specification Required |
| 2048-64999 | Expert Review |
| 65000-65535 | Experimental use (no operational use) |
表 8: CoAP オプション番号: 登録手続き
Option Number の文書は、その番号を持つオプションのセマンティクスを、以下の特性を含めて規定するべきである:
-
リクエストにおけるオプションの意味。
-
レスポンスにおけるオプションの意味。
-
Option Number によって決定される、オプションが critical であるか elective であるか。
-
Option Number によって決定される、オプションが Safe-to-Forward であるか、またそうである場合、Cache-Key の一部であるか (5.4.2 節を参照)。
-
オプションの値の形式と長さ。
-
オプションが最大 1 回だけ出現しなければならないか、複数回出現できるか。
-
デフォルト値がある場合はその値。デフォルト値を持つ critical オプションについては、そのデフォルト値が、critical オプションをサポートしない実装による処理をどのように可能にするかについての議論 (5.4.4 節)。
12.3. CoAP コンテンツフォーマットレジストリ
インターネットメディアタイプは、"application/xml" [RFC2046] のような文字列で識別される。ペイロードの形式を示すためにこれらのメディアタイプを使用する際のオーバーヘッドを最小限に抑えるため、本文書は CoAP で使用されるインターネットメディアタイプのサブセットのためのサブレジストリを定義し、それぞれに content-coding と組み合わせて数値識別子を割り当てる。サブレジストリの名前は、"CoRE Parameters" レジストリ内の "CoAP Content-Formats" である。
サブレジストリの各エントリには、IANA に登録されたメディアタイプ、CoAP でそのメディアタイプに使用される 0-65535 の範囲の数値識別子、この識別子に関連付けられた content-coding、およびそのメディアタイプを持つペイロードが意味的に何を意味するかを記述した文書への参照を含めなければならない (MUST)。
CoAP には、content-encoding 情報をリクエストまたはレスポンスとともに伝えるための別個の方法が含まれていない。そのため、content-encoding も各識別子に対して (存在する場合) 指定される。1 つのメディアタイプで複数の content-encoding を使用する場合は、それぞれに対して別個の Content-Format 識別子を登録する。同様に、level など、インターネットメディアタイプに関連する他のパラメーターも、CoAP Content-Format エントリに対して定義できる。
このサブレジストリの初期エントリは以下のとおりである:
| Media type | Encoding | ID | Reference |
|---|---|---|---|
| text/plain; | - | 0 | [RFC2046] [RFC3676] |
| charset=utf-8 | [RFC5147] | ||
| application/link-format | - | 40 | [RFC6690] |
| application/xml | - | 41 | [RFC3023] |
| application/octet-stream | - | 42 | [RFC2045] [RFC2046] |
| application/exi | - | 47 | [REC-exi-20140211] |
| application/json | - | 50 | [RFC7159] |
表 9: CoAP コンテンツフォーマット
65000 から 65535 まで (両端を含む) の識別子は実験用に予約されている。これらは、いかなる種類のベンダー固有の使用も意図されておらず、運用環境で使用してはならない (MUST NOT)。256 から 9999 までの識別子は、将来の IETF 仕様での使用のために予約されている (IETF Review or IESG Approval)。他のすべての識別子は Unassigned である。
single-byte 識別子の名前空間は非常に小さいため、このサブレジストリの 0-255 (両端を含む) の範囲に将来追加する際の IANA ポリシーは、[RFC5226] に記述されている "Expert Review" である。10000-64999 (両端を含む) の範囲への追加の IANA ポリシーは、[RFC5226] に記述されている "First Come First Served" である。これは以下の表に要約されている。
| Range | Registration Procedures |
|---|---|
| 0-255 | Expert Review |
| 256-9999 | IETF Review or IESG Approval |
| 10000-64999 | First Come First Served |
| 65000-65535 | Experimental use (no operational use) |
表 10: CoAP コンテンツフォーマット: 登録手続き
machine-to-machine アプリケーションでは、text/plain、application/xml、application/octet-stream のような汎用のインターネットメディアタイプが、長期的に実際のアプリケーションに有用であるとは期待されていない。CoAP を利用する M2M アプリケーションは、ペイロードを作成または解析する方法に関する意味情報を示して、IANA に新しいインターネットメディアタイプを要求することが推奨される。例えば、XML として運ばれる Smart Energy アプリケーションのペイロードは、application/se+xml や application/se-exi のようなより具体的なタイプを要求してもよい。
12.4. URI スキームの登録
本文書は、Uniform Resource Identifier (URI) スキーム "coap" の登録要求を含む。この登録要求は [RFC4395] に準拠している。
URI scheme name. coap
Status. Permanent.
URI scheme syntax. Defined in Section 6.1 of [RFC7252].
URI scheme semantics. "coap" URI スキームは、Constrained Application Protocol (CoAP) を介してアクセス可能な可能性のあるリソースを識別する方法を提供する。リソースは、それを管理する CoAP サーバーに接触することで特定でき、そのサーバーに CoAP リクエストを送信することで操作できる。したがって、このスキームは "http" URI スキーム [RFC2616] と比較できる。操作の詳細については [RFC7252] の 6 節を参照のこと。
Encoding considerations. このスキームのエンコーディングは、[RFC3986] で URIs に対して確立されたエンコーディング規則に準拠する。すなわち、国際化された文字および予約文字は UTF-8 ベースの percent-encoding を用いて表現される。
Applications/protocols that use this URI scheme name. このスキームは、CoAP エンドポイントが CoAP リソースにアクセスするために使用される。
Interoperability considerations. None.
Security considerations. See Section 11.1 of [RFC7252].
Contact. IETF Chair [email protected]
Author/Change controller. IESG [email protected]
References. [RFC7252]
12.5. セキュア URI スキームの登録
本文書は、Uniform Resource Identifier (URI) スキーム "coaps" の登録要求を含む。この登録要求は [RFC4395] に準拠している。
URI scheme name. coaps
Status. Permanent.
URI scheme syntax. Defined in Section 6.2 of [RFC7252].
URI scheme semantics. "coaps" URI スキームは、トランスポートセキュリティに Datagram Transport Layer Security (DTLS) を用いて、Constrained Application Protocol (CoAP) を介してアクセス可能な可能性のあるリソースを識別する方法を提供する。リソースは、それを管理する CoAP サーバーに接触することで特定でき、そのサーバーに CoAP リクエストを送信することで操作できる。したがって、このスキームは "https" URI スキーム [RFC2616] と比較できる。操作の詳細については [RFC7252] の 6 節を参照のこと。
Encoding considerations. このスキームのエンコーディングは、[RFC3986] で URIs に対して確立されたエンコーディング規則に準拠する。すなわち、国際化された文字および予約文字は UTF-8 ベースの percent-encoding を用いて表現される。
Applications/protocols that use this URI scheme name. このスキームは、CoAP エンドポイントが DTLS を用いて CoAP リソースにアクセスするために使用される。
Interoperability considerations. None.
Security considerations. See Section 11.1 of [RFC7252].
Contact. IETF Chair [email protected]
Author/Change controller. IESG [email protected]
References. [RFC7252]
12.6. サービス名とポート番号の登録
CoAP の機能の 1 つはリソース発見である。CoAP クライアントは、CoAP サーバーが提供するリソースについてそのサーバーに問い合わせることができる (7 節を参照)。IP アドレスの知識だけに基づいてリソース発見を可能にするには、リソース発見のための CoAP ポートを標準化する必要がある。
IANA は [RFC6335] に従い、ポート番号 5683 とサービス名 "coap" を割り当てた。
CoAP は、ユニキャストのほか、マルチキャストとエニーキャストの両方で使用できる。
Service Name. coap
Transport Protocol. udp
Assignee. IESG [email protected]
Contact. IETF Chair [email protected]
Description. Constrained Application Protocol (CoAP)
Reference. [RFC7252]
Port Number. 5683
12.7. セキュアなサービス名とポート番号の登録
CoAP のリソース発見は、DTLS で保護された CoAP "coaps" スキームを用いて提供することもできる。したがって、セキュアなリソース発見のための CoAP ポートを標準化する必要がある。
IANA は [RFC6335] に従い、ポート番号 5684 とサービス名 "coaps" を割り当てた。
CoAP は、ユニキャストのほか、エニーキャストで使用できる。
Service Name. coaps
Transport Protocol. udp
Assignee. IESG [email protected]
Contact. IETF Chair [email protected]
Description. DTLS-secured CoAP
Reference. [RFC7252]
Port Number. 5684
12.8. マルチキャストアドレスの登録
8 節 "Multicast CoAP" は、マルチキャストの使用を定義している。IANA は CoAP ノードが使用するために以下のマルチキャストアドレスを割り当てた:
IPv4 -- "All CoAP Nodes" アドレス 224.0.1.187 ("IPv4 Multicast Address Space Registry" より)。このアドレスは単一のネットワークを超えて広がる可能性のある発見に使用されるため、Internetwork Control Block (224.0.1.x、RFC 5771) から取得されている。
IPv6 -- "All CoAP Nodes" アドレス FF0X::FD ("IPv6 Multicast Address Space Registry" より、"Variable Scope Multicast Addresses" 空間内、RFC 3307)。関心のある CoAP ノードがリッスンすべきスコープごとに異なるマルチキャストアドレスがあることに注意。CoAP に必要なのは Link-Local スコープと Site-Local スコープのみである。