Zum Hauptinhalt springen

7. Discovery (Entdeckung)

7.1. Service Discovery (Dienstentdeckung)

Als Teil der Entdeckung der von einem CoAP-Server angebotenen Dienste muss ein Client über den vom Server verwendeten Endpunkt lernen.

Ein Client kann einen Server entdecken, indem er (über oder) einen URI lernt, der auf eine Ressource im Namensraum des Servers verweist. Alternativ könnte ein Client Multicast-CoAP (siehe Abschnitt 8) und die "All CoAP Nodes"-Multicast-Adresse verwenden, um CoAP-Server zu finden.

Sofern die Portsubkomponente in einem "coap"- oder "coaps"-URI nicht den UDP-Port angibt, auf dem sich der CoAP-Server befindet, wird angenommen, dass der Server über den Standardport erreichbar ist.

Ein Server, der Ressourcenentdeckungsdienste anbietet, MUSS die CoAP-Standardportnummer 5683 (für Ressourcenentdeckung und für die Ressourcen, zu denen er Zugang bietet) unterstützen und SOLLTE die Standardportnummer 5684 für DTLS-gesichertes CoAP unterstützen. Darüber hinaus können andere Endpunkte auf anderen Ports gehostet werden, beispielsweise im dynamischen Portbereich.

Implementierungshinweis: Wenn ein CoAP-Server von einem 6LoWPAN-Knoten gehostet wird, wird die Header-Kompressionseffizienz verbessert, wenn er auch eine Portnummer im in [RFC4944] und [RFC6282] definierten komprimierten UDP-Portbereich im Bereich 61616-61631 unterstützt. (Beachten Sie, dass es, da sein UDP-Port vom Standardport abweicht, ein anderer Endpunkt als ein Server am Standardport ist.)

7.2. Resource Discovery (Ressourcenentdeckung)

Die Entdeckung von Ressourcen, die von einem CoAP-Endpunkt angeboten werden, ist in Maschine-zu-Maschine-Anwendungen äußerst wichtig, bei denen keine Menschen in der Schleife sind und statische Schnittstellen zu Fragilität führen. Um die Interoperabilität in einer CoRE-Umgebung zu maximieren, SOLLTE ein CoAP-Endpunkt das CoRE-Link-Format entdeckbarer Ressourcen wie in [RFC6690] beschrieben unterstützen und dieses unter dem Standard-Entdeckungspfad "/.well-known/core" verfügbar machen. Ebenso sollten Hosts Web Linking [RFC5988] auf ihren HTTP-Servern anbieten und dies unter demselben Standard-Entdeckungspfad verfügbar machen, es sei denn, eine manuelle Konfiguration ist gewünscht. Es liegt am Server, welche Ressourcen entdeckbar gemacht werden (falls vorhanden).

7.2.1. 'ct' Attribute ('ct'-Attribut)

Dieser Abschnitt definiert ein neues Web Linking [RFC5988]-Attribut zur Verwendung mit [RFC6690]. Das Content-Format-Code-Attribut "ct" bietet einen Hinweis auf die Content-Formate, die diese Ressource zurückgibt. Beachten Sie, dass dies nur ein Hinweis ist und die Content-Format-Option einer CoAP-Antwort, die durch tatsächliches Anfordern der Darstellung der Ressource erhalten wurde, nicht überschreibt. Der Wert liegt im CoAP-Identifikator-Code-Format als dezimale ASCII-Ganzzahl vor und MUSS im Bereich 0-65535 (16-Bit vorzeichenlose Ganzzahl) liegen. Zum Beispiel würde "application/xml" als "ct=41" angegeben. Wenn kein Content-Format-Code-Attribut vorhanden ist, kann nichts über den Typ angenommen werden. Das Content-Format-Code-Attribut KANN eine durch Leerzeichen getrennte Sequenz von Content-Format-Codes enthalten, die angibt, dass mehrere Content-Formate verfügbar sind. Die Syntax des Attributwerts ist in der Produktion "ct-value" in Abbildung 12 zusammengefasst, wobei die Definitionen von "cardinal", "SP" und "DQUOTE" wie in [RFC6690] sind.

ct-value =  cardinal
/ DQUOTE cardinal *( 1*SP cardinal ) DQUOTE

Abbildung 12