12. IANA-Überlegungen
12.1. CoAP-Code-Register
Dieses Dokument definiert zwei Unterregister für die Werte des Code-Felds im CoAP-Header innerhalb des Registers "Constrained RESTful Environments (CoRE) Parameters", im Folgenden als Register "CoRE Parameters" bezeichnet.
Die Werte in den beiden Unterregistern sind Acht-Bit-Werte, die als drei Dezimalziffern c.dd notiert werden, getrennt durch einen Punkt zwischen der ersten und der zweiten Ziffer; die erste Ziffer c liegt zwischen 0 und 7 und bezeichnet die Codeklasse; die zweite und dritte Ziffer dd bezeichnen eine Dezimalzahl zwischen 00 und 31 für das Detail.
Alle Code-Werte werden von den Unterregistern nach den folgenden Bereichen zugewiesen:
0.00 Bezeichnet eine leere Nachricht (siehe Abschnitt 4.1).
0.01-0.31 Bezeichnet eine Anfrage. Werte in diesem Bereich werden vom Unterregister "CoAP Method Codes" zugewiesen (siehe Abschnitt 12.1.1).
1.00-1.31 Reserviert
2.00-5.31 Bezeichnet eine Antwort. Werte in diesem Bereich werden vom Unterregister "CoAP Response Codes" zugewiesen (siehe Abschnitt 12.1.2).
6.00-7.31 Reserviert
12.1.1. Methodencodes
Der Name des Unterregisters ist "CoAP Method Codes".
Jeder Eintrag im Unterregister muss den Method Code im Bereich 0.01-0.31, den Namen der Methode und einen Verweis auf die Dokumentation der Methode enthalten (MUST).
Die anfänglichen Einträge in diesem Unterregister lauten wie folgt:
| Code | Name | Reference |
|---|---|---|
| 0.01 | GET | [RFC7252] |
| 0.02 | POST | [RFC7252] |
| 0.03 | PUT | [RFC7252] |
| 0.04 | DELETE | [RFC7252] |
Tabelle 5: CoAP-Methodencodes
Alle anderen Method Codes sind Unassigned.
Die IANA-Richtlinie für zukünftige Ergänzungen dieses Unterregisters ist "IETF Review or IESG Approval", wie in [RFC5226] beschrieben.
Die Dokumentation eines Method Code sollte die Semantik einer Anfrage mit diesem Code angeben, einschließlich der folgenden Eigenschaften:
-
Die Response Codes, die die Methode im Erfolgsfall zurückgibt.
-
Ob die Methode idempotent, sicher (safe) oder beides ist.
12.1.2. Antwortcodes
Der Name des Unterregisters ist "CoAP Response Codes".
Jeder Eintrag im Unterregister muss den Response Code im Bereich 2.00-5.31, eine Beschreibung des Response Code und einen Verweis auf die Dokumentation des Response Code enthalten (MUST).
Die anfänglichen Einträge in diesem Unterregister lauten wie folgt:
| 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] |
Tabelle 6: CoAP-Antwortcodes
Die Response Codes 3.00-3.31 sind für zukünftige Verwendung reserviert. Alle anderen Response Codes sind Unassigned.
Die IANA-Richtlinie für zukünftige Ergänzungen dieses Unterregisters ist "IETF Review or IESG Approval", wie in [RFC5226] beschrieben.
Die Dokumentation eines Response Code sollte die Semantik einer Antwort mit diesem Code angeben, einschließlich der folgenden Eigenschaften:
-
Die Methoden, für die der Response Code gilt.
-
Ob eine Nutzlast erforderlich, optional oder nicht zulässig ist.
-
Die Semantik der Nutzlast. Beispielsweise ist die Nutzlast einer 2.05 (Content)-Antwort eine Darstellung der Zielressource; die Nutzlast in einer Fehlerantwort ist eine für Menschen lesbare Diagnosenutzlast.
-
Das Format der Nutzlast. Beispielsweise wird das Format in einer 2.05 (Content)-Antwort durch die Option Content-Format angegeben; das Format der Nutzlast in einer Fehlerantwort ist immer Net-Unicode-Text.
-
Ob die Antwort gemäß dem Freshness-Modell cachefähig ist.
-
Ob die Antwort gemäß dem Validierungsmodell validierbar ist.
-
Ob die Antwort einen Cache dazu veranlasst, die für die Anfrage-URI gespeicherten Antworten als nicht frisch zu markieren.
12.2. CoAP-Optionsnummern-Register
Dieses Dokument definiert ein Unterregister für die Option Numbers, die in CoAP-Optionen verwendet werden, innerhalb des Registers "CoRE Parameters". Der Name des Unterregisters ist "CoAP Option Numbers".
Jeder Eintrag im Unterregister muss die Option Number, den Namen der Option und einen Verweis auf die Dokumentation der Option enthalten (MUST).
Die anfänglichen Einträge in diesem Unterregister lauten wie folgt:
| 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] |
Tabelle 7: CoAP-Optionsnummern
Die IANA-Richtlinie für zukünftige Ergänzungen dieses Unterregisters ist wie folgt in drei Stufen unterteilt. Der Bereich 0..255 ist für Optionen reserviert, die vom IETF definiert werden (IETF Review or IESG Approval). Der Bereich 256..2047 ist für häufig verwendete Optionen mit öffentlichen Spezifikationen reserviert (Specification Required). Der Bereich 2048..64999 ist für alle anderen Optionen bestimmt, einschließlich privater oder anbieterspezifischer Optionen, die einer Prüfung durch einen Designated Expert unterzogen werden, um sicherzustellen, dass die Optionssemantik korrekt definiert ist. Die Optionsnummern zwischen 65000 und 65535 einschließlich sind für Experimente reserviert. Sie sind nicht für anbieterspezifische Verwendung jeglicher Art bestimmt und dürfen nicht in operativen Bereitstellungen verwendet werden (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) |
Tabelle 8: CoAP-Optionsnummern: Registrierungsverfahren
Die Dokumentation einer Option Number sollte die Semantik einer Option mit dieser Nummer angeben, einschließlich der folgenden Eigenschaften:
-
Die Bedeutung der Option in einer Anfrage.
-
Die Bedeutung der Option in einer Antwort.
-
Ob die Option kritisch oder elektiv ist, bestimmt durch die Option Number.
-
Ob die Option Safe-to-Forward ist und, falls ja, ob sie Teil des Cache-Key ist, bestimmt durch die Option Number (siehe Abschnitt 5.4.2).
-
Das Format und die Länge des Optionswerts.
-
Ob die Option höchstens einmal vorkommen darf oder mehrfach vorkommen kann.
-
Der Standardwert, falls vorhanden. Bei einer kritischen Option mit einem Standardwert eine Erörterung darüber, wie der Standardwert die Verarbeitung durch Implementierungen ermöglicht, die die kritische Option nicht unterstützen (Abschnitt 5.4.4).
12.3. CoAP-Inhaltsformate-Register
Internet-Medientypen werden durch eine Zeichenkette identifiziert, wie etwa "application/xml" [RFC2046]. Um den Aufwand bei der Verwendung dieser Medientypen zur Angabe des Formats von Nutzlasten zu minimieren, definiert dieses Dokument ein Unterregister für eine Teilmenge der in CoAP zu verwendenden Internet-Medientypen und weist jedem in Kombination mit einem Content-Coding eine numerische Kennung zu. Der Name des Unterregisters ist "CoAP Content-Formats" innerhalb des Registers "CoRE Parameters".
Jeder Eintrag im Unterregister muss den bei der IANA registrierten Medientyp, die im Bereich 0-65535 liegende numerische Kennung, die für diesen Medientyp in CoAP zu verwenden ist, das dieser Kennung zugeordnete Content-Coding sowie einen Verweis auf ein Dokument enthalten, das beschreibt, was eine Nutzlast mit diesem Medientyp semantisch bedeutet (MUST).
CoAP enthält keine separate Möglichkeit, Content-Encoding-Informationen mit einer Anfrage oder Antwort zu übermitteln, und aus diesem Grund wird das Content-Encoding auch für jede Kennung angegeben (sofern vorhanden). Wenn mehrere Content-Encodings mit einem Medientyp verwendet werden sollen, ist für jedes eine separate Content-Format-Kennung zu registrieren. Ebenso können andere Parameter im Zusammenhang mit einem Internet-Medientyp, wie etwa die Ebene, für einen CoAP-Content-Format-Eintrag definiert werden.
Die anfänglichen Einträge in diesem Unterregister lauten wie folgt:
| 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] |
Tabelle 9: CoAP-Inhaltsformate
Die Kennungen zwischen 65000 und 65535 einschließlich sind für Experimente reserviert. Sie sind nicht für anbieterspezifische Verwendung jeglicher Art bestimmt und dürfen nicht in operativen Bereitstellungen verwendet werden (MUST NOT). Die Kennungen zwischen 256 und 9999 sind für zukünftige Verwendung in IETF-Spezifikationen reserviert (IETF Review or IESG Approval). Alle anderen Kennungen sind Unassigned.
Da der Namensraum der Ein-Byte-Kennungen sehr klein ist, ist die IANA-Richtlinie für zukünftige Ergänzungen im Bereich 0-255 einschließlich des Unterregisters "Expert Review", wie in [RFC5226] beschrieben. Die IANA-Richtlinie für Ergänzungen im Bereich 10000-64999 einschließlich ist "First Come First Served", wie in [RFC5226] beschrieben. Dies ist in der folgenden Tabelle zusammengefasst.
| 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) |
Tabelle 10: CoAP-Inhaltsformate: Registrierungsverfahren
In Machine-to-Machine-Anwendungen wird nicht erwartet, dass generische Internet-Medientypen wie text/plain, application/xml oder application/octet-stream langfristig für echte Anwendungen nützlich sind. Es wird empfohlen, dass M2M-Anwendungen, die CoAP nutzen, neue Internet-Medientypen bei der IANA beantragen und dabei semantische Informationen darüber angeben, wie eine Nutzlast erstellt oder analysiert wird. Beispielsweise könnte eine als XML übertragene Nutzlast einer Smart-Energy-Anwendung einen spezifischeren Typ wie application/se+xml oder application/se-exi anfordern.
12.4. Registrierung des URI-Schemas
Dieses Dokument enthält den Antrag auf Registrierung des Uniform Resource Identifier (URI)-Schemas "coap". Der Registrierungsantrag entspricht [RFC4395].
URI scheme name. coap
Status. Permanent.
URI scheme syntax. Defined in Section 6.1 of [RFC7252].
URI scheme semantics. Das URI-Schema "coap" bietet eine Möglichkeit, Ressourcen zu identifizieren, die potenziell über das Constrained Application Protocol (CoAP) zugänglich sind. Die Ressourcen können lokalisiert werden, indem der zuständige CoAP-Server kontaktiert wird, und können bearbeitet werden, indem CoAP-Anfragen an den Server gesendet werden. Dieses Schema kann daher mit dem URI-Schema "http" [RFC2616] verglichen werden. Einzelheiten zum Betrieb siehe Abschnitt 6 von [RFC7252].
Encoding considerations. Die Kodierung des Schemas entspricht den für URIs in [RFC3986] festgelegten Kodierungsregeln, d. h. internationalisierte und reservierte Zeichen werden mittels UTF-8-basierter Prozentkodierung ausgedrückt.
Applications/protocols that use this URI scheme name. Das Schema wird von CoAP-Endpunkten verwendet, um auf CoAP-Ressourcen zuzugreifen.
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. Registrierung des sicheren URI-Schemas
Dieses Dokument enthält den Antrag auf Registrierung des Uniform Resource Identifier (URI)-Schemas "coaps". Der Registrierungsantrag entspricht [RFC4395].
URI scheme name. coaps
Status. Permanent.
URI scheme syntax. Defined in Section 6.2 of [RFC7252].
URI scheme semantics. Das URI-Schema "coaps" bietet eine Möglichkeit, Ressourcen zu identifizieren, die potenziell über das Constrained Application Protocol (CoAP) unter Verwendung von Datagram Transport Layer Security (DTLS) für die Transportsicherheit zugänglich sind. Die Ressourcen können lokalisiert werden, indem der zuständige CoAP-Server kontaktiert wird, und können bearbeitet werden, indem CoAP-Anfragen an den Server gesendet werden. Dieses Schema kann daher mit dem URI-Schema "https" [RFC2616] verglichen werden. Einzelheiten zum Betrieb siehe Abschnitt 6 von [RFC7252].
Encoding considerations. Die Kodierung des Schemas entspricht den für URIs in [RFC3986] festgelegten Kodierungsregeln, d. h. internationalisierte und reservierte Zeichen werden mittels UTF-8-basierter Prozentkodierung ausgedrückt.
Applications/protocols that use this URI scheme name. Das Schema wird von CoAP-Endpunkten verwendet, um mittels DTLS auf CoAP-Ressourcen zuzugreifen.
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. Registrierung von Dienstname und Portnummer
Eine der Funktionen von CoAP ist die Ressourcenerkennung: Ein CoAP-Client kann einen CoAP-Server nach den von ihm angebotenen Ressourcen fragen (siehe Abschnitt 7). Um die Ressourcenerkennung allein auf der Grundlage der Kenntnis einer IP-Adresse zu ermöglichen, muss der CoAP-Port für die Ressourcenerkennung standardisiert werden.
Die IANA hat gemäß [RFC6335] die Portnummer 5683 und den Dienstnamen "coap" zugewiesen.
Neben Unicast kann CoAP sowohl mit Multicast als auch mit Anycast verwendet werden.
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. Registrierung von sicherem Dienstnamen und sicherer Portnummer
Die CoAP-Ressourcenerkennung kann auch über das DTLS-gesicherte CoAP-Schema "coaps" bereitgestellt werden. Daher muss der CoAP-Port für die sichere Ressourcenerkennung standardisiert werden.
Die IANA hat gemäß [RFC6335] die Portnummer 5684 und den Dienstnamen "coaps" zugewiesen.
Neben Unicast kann DTLS-gesichertes CoAP mit Anycast verwendet werden.
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. Registrierung von Multicast-Adressen
Abschnitt 8, "Multicast CoAP", definiert die Verwendung von Multicast. Die IANA hat die folgenden Multicast-Adressen zur Verwendung durch CoAP-Knoten zugewiesen:
IPv4 -- Adresse "All CoAP Nodes" 224.0.1.187, aus dem Register "IPv4 Multicast Address Space Registry". Da die Adresse für die Erkennung verwendet wird, die sich über ein einzelnes Netz hinaus erstrecken kann, stammt sie aus dem Internetwork Control Block (224.0.1.x, RFC 5771).
IPv6 -- Adresse "All CoAP Nodes" FF0X::FD, aus dem Register "IPv6 Multicast Address Space Registry", im Raum "Variable Scope Multicast Addresses" (RFC 3307). Beachten Sie, dass es für jeden Scope, auf den interessierte CoAP-Knoten hören sollten, eine eigene Multicast-Adresse gibt; CoAP benötigt nur die Scopes Link-Local und Site-Local.