12. Considerazioni IANA
12.1. Registri dei codici CoAP
Il presente documento definisce due sotto-registri per i valori del campo Code nell'intestazione CoAP all'interno del registro "Constrained RESTful Environments (CoRE) Parameters", di seguito denominato registro "CoRE Parameters".
I valori nei due sotto-registri sono valori a otto bit indicati come tre cifre decimali c.dd separate da un punto tra la prima e la seconda cifra; la prima cifra c è compresa tra 0 e 7 e indica la classe di codice; la seconda e la terza cifra dd indicano un numero decimale compreso tra 00 e 31 per il dettaglio.
Tutti i valori di Code sono assegnati dai sotto-registri secondo i seguenti intervalli:
0.00 Indica un messaggio vuoto (vedere la Sezione 4.1).
0.01-0.31 Indica una richiesta. I valori in questo intervallo sono assegnati dal sotto-registro "CoAP Method Codes" (vedere la Sezione 12.1.1).
1.00-1.31 Riservato
2.00-5.31 Indica una risposta. I valori in questo intervallo sono assegnati dal sotto-registro "CoAP Response Codes" (vedere la Sezione 12.1.2).
6.00-7.31 Riservato
12.1.1. Codici dei metodi
Il nome del sotto-registro è "CoAP Method Codes".
Ogni voce del sotto-registro deve includere il Method Code nell'intervallo 0.01-0.31, il nome del metodo e un riferimento alla documentazione del metodo (MUST).
Le voci iniziali di questo sotto-registro sono le seguenti:
| Code | Name | Reference |
|---|---|---|
| 0.01 | GET | [RFC7252] |
| 0.02 | POST | [RFC7252] |
| 0.03 | PUT | [RFC7252] |
| 0.04 | DELETE | [RFC7252] |
Tabella 5: Codici dei metodi CoAP
Tutti gli altri Method Codes sono Unassigned.
La politica IANA per future aggiunte a questo sotto-registro è "IETF Review or IESG Approval", come descritto in [RFC5226].
La documentazione di un Method Code dovrebbe specificare la semantica di una richiesta con quel codice, incluse le seguenti proprietà:
-
I Response Codes che il metodo restituisce in caso di successo.
-
Se il metodo è idempotente, sicuro (safe) o entrambe le cose.
12.1.2. Codici di risposta
Il nome del sotto-registro è "CoAP Response Codes".
Ogni voce del sotto-registro deve includere il Response Code nell'intervallo 2.00-5.31, una descrizione del Response Code e un riferimento alla documentazione del Response Code (MUST).
Le voci iniziali di questo sotto-registro sono le seguenti:
| 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] |
Tabella 6: Codici di risposta CoAP
I Response Codes 3.00-3.31 sono riservati per uso futuro. Tutti gli altri Response Codes sono Unassigned.
La politica IANA per future aggiunte a questo sotto-registro è "IETF Review or IESG Approval", come descritto in [RFC5226].
La documentazione di un Response Code dovrebbe specificare la semantica di una risposta con quel codice, incluse le seguenti proprietà:
-
I metodi a cui si applica il Response Code.
-
Se il payload è obbligatorio, opzionale o non consentito.
-
La semantica del payload. Ad esempio, il payload di una risposta 2.05 (Content) è una rappresentazione della risorsa di destinazione; il payload in una risposta di errore è un payload diagnostico leggibile da un essere umano.
-
Il formato del payload. Ad esempio, il formato in una risposta 2.05 (Content) è indicato dall'opzione Content-Format; il formato del payload in una risposta di errore è sempre testo Net-Unicode.
-
Se la risposta è memorizzabile in cache secondo il modello di freschezza.
-
Se la risposta è validabile secondo il modello di validazione.
-
Se la risposta induce una cache a contrassegnare come non fresche le risposte memorizzate per l'URI di richiesta.
12.2. Registro dei numeri di opzione CoAP
Il presente documento definisce un sotto-registro per gli Option Numbers utilizzati nelle opzioni CoAP all'interno del registro "CoRE Parameters". Il nome del sotto-registro è "CoAP Option Numbers".
Ogni voce del sotto-registro deve includere l'Option Number, il nome dell'opzione e un riferimento alla documentazione dell'opzione (MUST).
Le voci iniziali di questo sotto-registro sono le seguenti:
| 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] |
Tabella 7: Numeri di opzione CoAP
La politica IANA per future aggiunte a questo sotto-registro è suddivisa in tre livelli come segue. L'intervallo 0..255 è riservato alle opzioni definite dall'IETF (IETF Review or IESG Approval). L'intervallo 256..2047 è riservato alle opzioni di uso comune con specifiche pubbliche (Specification Required). L'intervallo 2048..64999 è destinato a tutte le altre opzioni, comprese quelle private o specifiche del fornitore, che sono sottoposte a una revisione da parte di un Designated Expert per contribuire a garantire che la semantica delle opzioni sia definita correttamente. I numeri di opzione compresi tra 65000 e 65535 inclusi sono riservati agli esperimenti. Non sono destinati ad alcun tipo di uso specifico del fornitore e non devono essere utilizzati in distribuzioni operative (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) |
Tabella 8: Numeri di opzione CoAP: procedure di registrazione
La documentazione di un Option Number dovrebbe specificare la semantica di un'opzione con quel numero, incluse le seguenti proprietà:
-
Il significato dell'opzione in una richiesta.
-
Il significato dell'opzione in una risposta.
-
Se l'opzione è critica o elettiva, come determinato dall'Option Number.
-
Se l'opzione è Safe-to-Forward e, in tal caso, se fa parte della Cache-Key, come determinato dall'Option Number (vedere la Sezione 5.4.2).
-
Il formato e la lunghezza del valore dell'opzione.
-
Se l'opzione deve comparire al massimo una volta o se può comparire più volte.
-
Il valore predefinito, se presente. Per un'opzione critica con un valore predefinito, una discussione su come il valore predefinito consenta l'elaborazione da parte di implementazioni che non supportano l'opzione critica (Sezione 5.4.4).
12.3. Registro dei formati di contenuto CoAP
I tipi di media Internet sono identificati da una stringa, come "application/xml" [RFC2046]. Al fine di ridurre al minimo il sovraccarico derivante dall'uso di questi tipi di media per indicare il formato dei payload, il presente documento definisce un sotto-registro per un sottoinsieme dei tipi di media Internet da utilizzare in CoAP e assegna a ciascuno, in combinazione con un content-coding, un identificatore numerico. Il nome del sotto-registro è "CoAP Content-Formats", all'interno del registro "CoRE Parameters".
Ogni voce del sotto-registro deve includere il tipo di media registrato presso l'IANA, l'identificatore numerico nell'intervallo 0-65535 da utilizzare per quel tipo di media in CoAP, il content-coding associato a questo identificatore e un riferimento a un documento che descrive cosa significa semanticamente un payload con quel tipo di media (MUST).
CoAP non include un modo separato per trasmettere informazioni di content-encoding con una richiesta o una risposta, e per questo motivo il content-encoding è specificato anche per ogni identificatore (se presente). Se si devono utilizzare più content-encoding con un tipo di media, è necessario registrare un identificatore Content-Format separato per ciascuno. Analogamente, altri parametri relativi a un tipo di media Internet, come il livello, possono essere definiti per una voce CoAP Content-Format.
Le voci iniziali di questo sotto-registro sono le seguenti:
| 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] |
Tabella 9: Formati di contenuto CoAP
Gli identificatori compresi tra 65000 e 65535 inclusi sono riservati agli esperimenti. Non sono destinati ad alcun tipo di uso specifico del fornitore e non devono essere utilizzati in distribuzioni operative (MUST NOT). Gli identificatori compresi tra 256 e 9999 sono riservati a un uso futuro nelle specifiche IETF (IETF Review or IESG Approval). Tutti gli altri identificatori sono Unassigned.
Poiché lo spazio dei nomi degli identificatori a singolo byte è molto piccolo, la politica IANA per future aggiunte nell'intervallo 0-255 inclusi al sotto-registro è "Expert Review", come descritto in [RFC5226]. La politica IANA per le aggiunte nell'intervallo 10000-64999 inclusi è "First Come First Served", come descritto in [RFC5226]. Ciò è riassunto nella tabella seguente.
| 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) |
Tabella 10: Formati di contenuto CoAP: procedure di registrazione
Nelle applicazioni machine-to-machine, non si prevede che tipi di media Internet generici come text/plain, application/xml o application/octet-stream siano utili a lungo termine per applicazioni reali. Si raccomanda che le applicazioni M2M che utilizzano CoAP richiedano all'IANA nuovi tipi di media Internet, indicando informazioni semantiche su come creare o analizzare un payload. Ad esempio, un payload di un'applicazione Smart Energy trasportato come XML potrebbe richiedere un tipo più specifico come application/se+xml o application/se-exi.
12.4. Registrazione dello schema URI
Il presente documento contiene la richiesta di registrazione dello schema Uniform Resource Identifier (URI) "coap". La richiesta di registrazione è conforme a [RFC4395].
URI scheme name. coap
Status. Permanent.
URI scheme syntax. Defined in Section 6.1 of [RFC7252].
URI scheme semantics. Lo schema URI "coap" fornisce un modo per identificare risorse potenzialmente accessibili tramite il Constrained Application Protocol (CoAP). Le risorse possono essere individuate contattando il server CoAP che le governa e possono essere operate inviando richieste CoAP a quel server. Questo schema può quindi essere paragonato allo schema URI "http" [RFC2616]. Vedere la Sezione 6 di [RFC7252] per i dettagli del funzionamento.
Encoding considerations. La codifica dello schema è conforme alle regole di codifica stabilite per gli URI in [RFC3986], ovvero i caratteri internazionalizzati e riservati sono espressi utilizzando il percent-encoding basato su UTF-8.
Applications/protocols that use this URI scheme name. Lo schema è utilizzato dagli endpoint CoAP per accedere alle risorse 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. Registrazione dello schema URI sicuro
Il presente documento contiene la richiesta di registrazione dello schema Uniform Resource Identifier (URI) "coaps". La richiesta di registrazione è conforme a [RFC4395].
URI scheme name. coaps
Status. Permanent.
URI scheme syntax. Defined in Section 6.2 of [RFC7252].
URI scheme semantics. Lo schema URI "coaps" fornisce un modo per identificare risorse potenzialmente accessibili tramite il Constrained Application Protocol (CoAP) utilizzando Datagram Transport Layer Security (DTLS) per la sicurezza del trasporto. Le risorse possono essere individuate contattando il server CoAP che le governa e possono essere operate inviando richieste CoAP a quel server. Questo schema può quindi essere paragonato allo schema URI "https" [RFC2616]. Vedere la Sezione 6 di [RFC7252] per i dettagli del funzionamento.
Encoding considerations. La codifica dello schema è conforme alle regole di codifica stabilite per gli URI in [RFC3986], ovvero i caratteri internazionalizzati e riservati sono espressi utilizzando il percent-encoding basato su UTF-8.
Applications/protocols that use this URI scheme name. Lo schema è utilizzato dagli endpoint CoAP per accedere alle risorse CoAP utilizzando 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. Registrazione del nome del servizio e del numero di porta
Una delle funzioni di CoAP è la scoperta delle risorse: un client CoAP può interrogare un server CoAP sulle risorse da esso offerte (vedere la Sezione 7). Per consentire la scoperta delle risorse basandosi solo sulla conoscenza di un indirizzo IP, la porta CoAP per la scoperta delle risorse deve essere standardizzata.
L'IANA ha assegnato il numero di porta 5683 e il nome del servizio "coap", in conformità con [RFC6335].
Oltre che in unicast, CoAP può essere utilizzato sia in multicast che in 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. Registrazione del nome del servizio sicuro e del numero di porta
La scoperta delle risorse CoAP può anche essere fornita utilizzando lo schema "coaps" di CoAP protetto da DTLS. Pertanto, la porta CoAP per la scoperta sicura delle risorse deve essere standardizzata.
L'IANA ha assegnato il numero di porta 5684 e il nome del servizio "coaps", in conformità con [RFC6335].
Oltre che in unicast, CoAP protetto da DTLS può essere utilizzato in 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. Registrazione degli indirizzi multicast
La Sezione 8, "Multicast CoAP", definisce l'uso del multicast. L'IANA ha assegnato i seguenti indirizzi multicast per l'uso da parte dei nodi CoAP:
IPv4 -- Indirizzo "All CoAP Nodes" 224.0.1.187, dal registro "IPv4 Multicast Address Space Registry". Poiché l'indirizzo è utilizzato per la scoperta che può estendersi oltre una singola rete, esso proviene dall'Internetwork Control Block (224.0.1.x, RFC 5771).
IPv6 -- Indirizzo "All CoAP Nodes" FF0X::FD, dal registro "IPv6 Multicast Address Space Registry", nello spazio "Variable Scope Multicast Addresses" (RFC 3307). Si noti che esiste un indirizzo multicast distinto per ogni scope a cui i nodi CoAP interessati dovrebbero ascoltare; CoAP necessita solo degli scope Link-Local e Site-Local.