12. Considérations IANA
12.1. Registres de codes CoAP
Le présent document définit deux sous-registres pour les valeurs du champ Code de l'en-tête CoAP au sein du registre "Constrained RESTful Environments (CoRE) Parameters", ci-après appelé le registre "CoRE Parameters".
Les valeurs des deux sous-registres sont des valeurs de huit bits notées sous la forme de trois chiffres décimaux c.dd séparés par un point entre le premier et le deuxième chiffre ; le premier chiffre c est compris entre 0 et 7 et désigne la classe de code ; les deuxième et troisième chiffres dd désignent un nombre décimal compris entre 00 et 31 pour le détail.
Toutes les valeurs de Code sont attribuées par les sous-registres selon les plages suivantes :
0.00 Indique un message vide (voir la section 4.1).
0.01-0.31 Indique une requête. Les valeurs de cette plage sont attribuées par le sous-registre "CoAP Method Codes" (voir la section 12.1.1).
1.00-1.31 Réservé
2.00-5.31 Indique une réponse. Les valeurs de cette plage sont attribuées par le sous-registre "CoAP Response Codes" (voir la section 12.1.2).
6.00-7.31 Réservé
12.1.1. Codes de méthode
Le nom du sous-registre est "CoAP Method Codes".
Chaque entrée du sous-registre doit inclure le Method Code dans la plage 0.01-0.31, le nom de la méthode et une référence à la documentation de la méthode (MUST).
Les entrées initiales de ce sous-registre sont les suivantes :
| Code | Name | Reference |
|---|---|---|
| 0.01 | GET | [RFC7252] |
| 0.02 | POST | [RFC7252] |
| 0.03 | PUT | [RFC7252] |
| 0.04 | DELETE | [RFC7252] |
Tableau 5 : Codes de méthode CoAP
Tous les autres Method Codes sont Unassigned.
La politique de l'IANA pour les ajouts futurs à ce sous-registre est "IETF Review or IESG Approval", comme décrit dans [RFC5226].
La documentation d'un Method Code devrait spécifier la sémantique d'une requête portant ce code, y compris les propriétés suivantes :
-
Les Response Codes que la méthode renvoie en cas de succès.
-
Si la méthode est idempotente, sûre (safe), ou les deux.
12.1.2. Codes de réponse
Le nom du sous-registre est "CoAP Response Codes".
Chaque entrée du sous-registre doit inclure le Response Code dans la plage 2.00-5.31, une description du Response Code et une référence à la documentation du Response Code (MUST).
Les entrées initiales de ce sous-registre sont les suivantes :
| 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] |
Tableau 6 : Codes de réponse CoAP
Les Response Codes 3.00-3.31 sont réservés pour un usage futur. Tous les autres Response Codes sont Unassigned.
La politique de l'IANA pour les ajouts futurs à ce sous-registre est "IETF Review or IESG Approval", comme décrit dans [RFC5226].
La documentation d'un Response Code devrait spécifier la sémantique d'une réponse portant ce code, y compris les propriétés suivantes :
-
Les méthodes auxquelles le Response Code s'applique.
-
Si la charge utile est obligatoire, facultative ou interdite.
-
La sémantique de la charge utile. Par exemple, la charge utile d'une réponse 2.05 (Content) est une représentation de la ressource cible ; la charge utile d'une réponse d'erreur est une charge utile de diagnostic lisible par un humain.
-
Le format de la charge utile. Par exemple, le format dans une réponse 2.05 (Content) est indiqué par l'option Content-Format ; le format de la charge utile dans une réponse d'erreur est toujours du texte Net-Unicode.
-
Si la réponse est cachable selon le modèle de fraîcheur.
-
Si la réponse est validable selon le modèle de validation.
-
Si la réponse amène un cache à marquer comme non fraîches les réponses stockées pour l'URI de requête.
12.2. Registre des numéros d'option CoAP
Le présent document définit un sous-registre pour les Option Numbers utilisés dans les options CoAP au sein du registre "CoRE Parameters". Le nom du sous-registre est "CoAP Option Numbers".
Chaque entrée du sous-registre doit inclure l'Option Number, le nom de l'option et une référence à la documentation de l'option (MUST).
Les entrées initiales de ce sous-registre sont les suivantes :
| 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] |
Tableau 7 : Numéros d'option CoAP
La politique de l'IANA pour les ajouts futurs à ce sous-registre est divisée en trois niveaux comme suit. La plage 0..255 est réservée aux options définies par l'IETF (IETF Review or IESG Approval). La plage 256..2047 est réservée aux options couramment utilisées disposant de spécifications publiques (Specification Required). La plage 2048..64999 est destinée à toutes les autres options, y compris les options privées ou propres à un fournisseur, qui font l'objet d'un examen par un Designated Expert afin de contribuer à garantir que la sémantique des options est définie correctement. Les numéros d'option compris entre 65000 et 65535 inclus sont réservés aux expérimentations. Ils ne sont pas destinés à un usage propre à un fournisseur, quelle qu'en soit la nature, et ne doivent pas être utilisés dans des déploiements opérationnels (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) |
Tableau 8 : Numéros d'option CoAP : procédures d'enregistrement
La documentation d'un Option Number devrait spécifier la sémantique d'une option portant ce numéro, y compris les propriétés suivantes :
-
La signification de l'option dans une requête.
-
La signification de l'option dans une réponse.
-
Si l'option est critique ou élective, comme déterminé par l'Option Number.
-
Si l'option est Safe-to-Forward et, si oui, si elle fait partie de la Cache-Key, comme déterminé par l'Option Number (voir la section 5.4.2).
-
Le format et la longueur de la valeur de l'option.
-
Si l'option doit apparaître au plus une fois ou si elle peut apparaître plusieurs fois.
-
La valeur par défaut, le cas échéant. Pour une option critique ayant une valeur par défaut, une discussion sur la manière dont la valeur par défaut permet le traitement par des implémentations qui ne prennent pas en charge l'option critique (section 5.4.4).
12.3. Registre des formats de contenu CoAP
Les types de médias Internet sont identifiés par une chaîne, telle que "application/xml" [RFC2046]. Afin de minimiser la surcharge liée à l'utilisation de ces types de médias pour indiquer le format des charges utiles, le présent document définit un sous-registre pour un sous-ensemble des types de médias Internet à utiliser dans CoAP et attribue à chacun, en combinaison avec un content-coding, un identifiant numérique. Le nom du sous-registre est "CoAP Content-Formats", au sein du registre "CoRE Parameters".
Chaque entrée du sous-registre doit inclure le type de média enregistré auprès de l'IANA, l'identifiant numérique dans la plage 0-65535 à utiliser pour ce type de média dans CoAP, le content-coding associé à cet identifiant, et une référence à un document décrivant ce qu'une charge utile ayant ce type de média signifie sémantiquement (MUST).
CoAP n'inclut pas de moyen distinct de transmettre des informations de content-encoding avec une requête ou une réponse, et pour cette raison le content-encoding est également spécifié pour chaque identifiant (le cas échéant). Si plusieurs content-encodings doivent être utilisés avec un type de média, un identifiant Content-Format distinct doit être enregistré pour chacun. De même, d'autres paramètres liés à un type de média Internet, tels que le niveau, peuvent être définis pour une entrée CoAP Content-Format.
Les entrées initiales de ce sous-registre sont les suivantes :
| 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] |
Tableau 9 : Formats de contenu CoAP
Les identifiants compris entre 65000 et 65535 inclus sont réservés aux expérimentations. Ils ne sont pas destinés à un usage propre à un fournisseur, quelle qu'en soit la nature, et ne doivent pas être utilisés dans des déploiements opérationnels (MUST NOT). Les identifiants compris entre 256 et 9999 sont réservés à un usage futur dans les spécifications de l'IETF (IETF Review or IESG Approval). Tous les autres identifiants sont Unassigned.
Comme l'espace de noms des identifiants d'un seul octet est très restreint, la politique de l'IANA pour les ajouts futurs dans la plage 0-255 inclus au sous-registre est "Expert Review", comme décrit dans [RFC5226]. La politique de l'IANA pour les ajouts dans la plage 10000-64999 inclus est "First Come First Served", comme décrit dans [RFC5226]. Ceci est résumé dans le tableau suivant.
| 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) |
Tableau 10 : Formats de contenu CoAP : procédures d'enregistrement
Dans les applications de machine à machine, on ne s'attend pas à ce que les types de médias Internet génériques tels que text/plain, application/xml ou application/octet-stream soient utiles à long terme pour de véritables applications. Il est recommandé que les applications M2M utilisant CoAP demandent de nouveaux types de médias Internet à l'IANA, en indiquant des informations sémantiques sur la manière de créer ou d'analyser une charge utile. Par exemple, une charge utile d'application Smart Energy transportée sous forme de XML pourrait demander un type plus spécifique tel que application/se+xml ou application/se-exi.
12.4. Enregistrement du schéma d'URI
Le présent document contient la demande d'enregistrement du schéma d'Uniform Resource Identifier (URI) "coap". La demande d'enregistrement est conforme à [RFC4395].
URI scheme name. coap
Status. Permanent.
URI scheme syntax. Defined in Section 6.1 of [RFC7252].
URI scheme semantics. Le schéma d'URI "coap" fournit un moyen d'identifier des ressources potentiellement accessibles via le Constrained Application Protocol (CoAP). Les ressources peuvent être localisées en contactant le serveur CoAP qui les gère et manipulées en envoyant des requêtes CoAP à ce serveur. Ce schéma peut donc être comparé au schéma d'URI "http" [RFC2616]. Voir la section 6 de [RFC7252] pour les détails du fonctionnement.
Encoding considerations. L'encodage du schéma est conforme aux règles d'encodage établies pour les URI dans [RFC3986], c'est-à-dire que les caractères internationalisés et réservés sont exprimés au moyen d'un percent-encoding basé sur UTF-8.
Applications/protocols that use this URI scheme name. Le schéma est utilisé par les points de terminaison CoAP pour accéder aux ressources 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. Enregistrement du schéma d'URI sécurisé
Le présent document contient la demande d'enregistrement du schéma d'Uniform Resource Identifier (URI) "coaps". La demande d'enregistrement est conforme à [RFC4395].
URI scheme name. coaps
Status. Permanent.
URI scheme syntax. Defined in Section 6.2 of [RFC7252].
URI scheme semantics. Le schéma d'URI "coaps" fournit un moyen d'identifier des ressources potentiellement accessibles via le Constrained Application Protocol (CoAP) en utilisant Datagram Transport Layer Security (DTLS) pour la sécurité du transport. Les ressources peuvent être localisées en contactant le serveur CoAP qui les gère et manipulées en envoyant des requêtes CoAP à ce serveur. Ce schéma peut donc être comparé au schéma d'URI "https" [RFC2616]. Voir la section 6 de [RFC7252] pour les détails du fonctionnement.
Encoding considerations. L'encodage du schéma est conforme aux règles d'encodage établies pour les URI dans [RFC3986], c'est-à-dire que les caractères internationalisés et réservés sont exprimés au moyen d'un percent-encoding basé sur UTF-8.
Applications/protocols that use this URI scheme name. Le schéma est utilisé par les points de terminaison CoAP pour accéder aux ressources CoAP au moyen de DTLS.
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. Enregistrement du nom de service et du numéro de port
L'une des fonctions de CoAP est la découverte de ressources : un client CoAP peut interroger un serveur CoAP sur les ressources que celui-ci offre (voir la section 7). Pour permettre la découverte de ressources sur la seule base de la connaissance d'une adresse IP, le port CoAP destiné à la découverte de ressources doit être normalisé.
L'IANA a attribué le numéro de port 5683 et le nom de service "coap", conformément à [RFC6335].
Outre l'unicast, CoAP peut être utilisé avec le multicast et l'anycast.
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. Enregistrement du nom de service et du numéro de port sécurisés
La découverte de ressources CoAP peut également être fournie au moyen du schéma "coaps" de CoAP sécurisé par DTLS. Ainsi, le port CoAP destiné à la découverte sécurisée de ressources doit être normalisé.
L'IANA a attribué le numéro de port 5684 et le nom de service "coaps", conformément à [RFC6335].
Outre l'unicast, le CoAP sécurisé par DTLS peut être utilisé avec l'anycast.
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. Enregistrement des adresses multicast
La section 8, "Multicast CoAP", définit l'utilisation du multicast. L'IANA a attribué les adresses multicast suivantes pour utilisation par les nœuds CoAP :
IPv4 -- Adresse "All CoAP Nodes" 224.0.1.187, issue du registre "IPv4 Multicast Address Space Registry". Comme cette adresse est utilisée pour la découverte qui peut s'étendre au-delà d'un seul réseau, elle provient de l'Internetwork Control Block (224.0.1.x, RFC 5771).
IPv6 -- Adresse "All CoAP Nodes" FF0X::FD, issue du registre "IPv6 Multicast Address Space Registry", dans l'espace "Variable Scope Multicast Addresses" (RFC 3307). Notez qu'il existe une adresse multicast distincte pour chaque portée que les nœuds CoAP intéressés devraient écouter ; CoAP n'a besoin que des portées Link-Local et Site-Local.