Resource directory device for a DNS record of a resource

The introduction of a Resource Directory device to manage DNS records and perform DNS resolution addresses the inefficiencies in existing DNS mechanisms for IoT devices, reducing resource consumption and latency while improving system performance.

WO2025095827A1PCT designated stage expired Publication Date: 2025-05-08TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/SE2023/051112
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-02
Publication Date
2025-05-08

AI Technical Summary

Technical Problem

Existing DNS resolution mechanisms in IoT devices are inefficient, leading to increased resource consumption and prolonged DNS resolution times, especially in constrained environments where IoT devices frequently change IP addresses.

Method used

A Resource Directory (RD) device is introduced to manage DNS records and perform DNS resolution, reducing the burden on IoT devices by caching DNS records and using CoAP observe attributes for updates, thereby optimizing resource usage and reducing latency.

Benefits of technology

The proposed solution significantly reduces resource consumption and latency in IoT devices by offloading DNS resolution tasks to the RD device, enhancing overall system performance and adaptability to dynamic IP addresses.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure SE2023051112_08052025_PF_FP_ABST
    Figure SE2023051112_08052025_PF_FP_ABST
Patent Text Reader

Abstract

A communication network (100), an RD device (120), a CCCD (110), a method (200; 300) performed by the network, the RD device and the CCCD, a corresponding computer program and computer program product each for the network, the RD device and the CCCD is disclosed The RD device receives a first message comprising a request for a DNS record of a resource. The RD device checks whether the RD device comprises a corresponding DNS record entry for the requested resource. If the RD device comprises the DNS record entry, the RD device transmits a second message comprising information of the DNS record entry. If the RD device does not comprise the DNS record entry, the RD device performs a DNS resolution for the resource, stores a DNS record obtained from the DNS resolution and transmits a third message comprising a DNS entry of the stored DNS record.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] RESOURCE DIRECTORY DEVICE FOR A DNS RECORD OF A RESOURCE

[0002] TECHNICAL FIELD

[0003] The invention relates to a communication network, a Resource Directory (RD) device and a Constrained Application Protocol (CoAP) compatible communication device (CCCD), a method performed by the communication network, the RD device and the CCCD, a corresponding computer program and computer program product each for the network, the RD device and the CCCD.

[0004] BACKGROUND

[0005] An Internet Protocol (IP) address is given to each device on the Internet, and the given IP address is required to find a device on the Internet - in a similar manner as a street address of a particular home is used to find the home. Domain Name System (DNS) resolution is a process of converting a hostname, such as www.example.com, into a computer-friendly IP address, such as 192.1.1.1.

[0006] Constrained Application Protocol (CoAP) is a web transfer protocol which was designed for machine-to-machine applications such as smart energy and building automation. CoAP is defined in Internet Engineering Task Force (IETF) Request for Comments (RFC) 7252. CoAP is modeled based on HyperText Transfer Protocol (HTTP), but CoAP is more suitable for constrained environments than the latter because CoAP is lightweight and consumes fewer resources. CoAP also supports subscriptions, acknowledged transmissions, and is equipped to handle retransmissions. One significant feature of CoAP is CoAP Observe attribute, as defined in IETF RFC 7641 , which allows a CoAP client to observe changes to resources on a CoAP server. In other words, the CoAP client automatically gets notified whenever a status or value of an observed resource changes at the CoAP server.

[0007] Constrained RESTful Environments (CoRE) link format, as defined in IETF RFC 6690, is used to define format and semantics of links shared between constrained devices. CoRE link format is an efficient method for constrained servers to advertise the availability of resources, effectively delivering service discovery within constrained networks. CoAP defines some new link attributes based on CoRE link format. Lenders, Martine S., et al. "Securing name resolution in the loT: DNS over CoAP." Proceedings of the CoNEXT Student Workshop, 2021 , discloses DNS over CoAP (DoC) for secure and privacy-friendly name resolution of constrained loT devices.

[0008] DoC, as defined in IETF draft titled “draft-ietf-core-dns-over-coap-03” by IETF CoRE work group, is a mechanism for sending DNS messages over CoAP. Each DoC client performs DNS resolution independently. A DoC request is forwarded from a DoC client until there is a cache hit in an intermediary CoAP endpoint in a path to a name server or the name server itself. The cache hit may occur in DoC only until a specified Time-To-Live (TTL). If the TTL expires, the DoC client is configured to send a request to the name server.

[0009] SUMMARY

[0010] An object of the invention is to improve resource efficiency in a communication network comprising an Internet-of-Things (loT) device. Another object of the invention is to provide reduced time taken for Domain Name System (DNS) resolution of a hostname of a resource in communication network comprising an loT device. In other words, another object of the invention is to reduce time taken for DNS resolution of a Uniform Resource Identifier (URI) of a resource in communication network comprising an loT device.

[0011] According to a first aspect, a method performed by a Resource Directory (RD) device is provided. The method comprises receiving, from a Constrained Application Protocol (CoAP) compatible communication device (CCCD), a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The comprises checking whether the RD device comprises a corresponding DNS record entry for the resource. The corresponding DNS record entry corresponds to the DNS record requested in the first request. If the RD device comprises the corresponding DNS record entry, the method comprises transmitting, to the CCCD, a second message comprising information of the DNS record entry. If the RD device does not comprise the corresponding DNS record entry, the method comprises performing a DNS resolution for the resource. If the RD device does not comprise the corresponding DNS record entry, the method comprises storing, in the RD device, a DNS record obtained from the DNS resolution. If the RD device does not comprise the corresponding DNS record entry, the method comprises transmitting, to the CCCD, a third message comprising a DNS entry of the stored DNS record. In some embodiments, the third message comprises the DNS record obtained from the performed DNS resolution. Hereby is achieved that, a number of processes to be performed by the CCCD is reduced. Hereby is also achieved that, resource consumption of the CCCD is reduced. Hereby is achieved that, overall system performance is improved for a communication network comprising the CCCD and the RD device.

[0012] According to an embodiment, the method comprises receiving, from the CCCD, a fourth message comprising a second request to register for a change in the DNS record for the resource. According to an embodiment, the method comprises transmitting, to the CCCD, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS record entry or the DNS entry of the stored DNS record of the resource changes, and / or if a specified time interval has elapsed. Hereby is achieved that, the CCCD reduces resource consumption when there is change in the DNS record of the resource. Hereby is also achieved that, the CCCD does not need to perform polling, which is a resource-intensive operation, to find out a new DNS record of the resource.

[0013] According to an embodiment, the method comprises performing resource discovery of the resource and transmitting, to the CCCD, in the second message or the third message, information related to performed resource discovery for the resource. Hereby is achieved that, a number of messages between the CCCD and the RD device is reduced since a combined / single message comprising information related resource discovery and the DNS record of the resource is provided to the CCCD.

[0014] According to an embodiment, the method comprises creating a new resource for storing information related to a DNS record for the resource in the RD device, wherein the new resource comprises information comprising the DNS entry of the DNS record or the DNS entry of the stored DNS record, and a Resource Record Signature (RRSig) comprising a digital signature associated to the DNS entry of the DNS record or the DNS entry of the stored DNS record. According to an embodiment, the method comprises receiving, from a DNS server node, the information related to the DNS record for the resource. Hereby is achieved that, security of the communication between the RD device and the DNS server node is improved. According to an embodiment, the method comprises performing a lookup in the RD device for the resource based on the received first message.

[0015] According to an embodiment, the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by Internet Engineering Task Force (IETF) Request for Comments (RFC) 2616.

[0016] According to a second aspect, a method performed by a CCCD is provided. The method comprises transmitting, to an RD device, a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The method comprises receiving, from the RD device, a second message comprising information of the DNS record entry.

[0017] According to an embodiment, the method comprises transmitting, to the RD device, a fourth message comprising a second request to register for a change in the DNS record for the resource.

[0018] According to an embodiment, the method comprises receiving, from the RD device, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

[0019] According to an embodiment, the method comprises receiving, from the RD device in the second message, information related to resource discovery for the resource.

[0020] According to an embodiment, the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by IETF RFC 2616.

[0021] According to a third aspect, a method performed by a communication network is provided. The communication network comprises a CCCD and an RD device. The method comprises receiving, at the RD device from the CCCD, a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The method comprises checking whether the RD device comprises a corresponding DNS record entry for the resource. The corresponding DNS record entry corresponds to the DNS record requested in the first request. If the RD device comprises the corresponding DNS record entry, the method comprises transmitting, from the RD device to the CCCD, a second message comprising information of the DNS record entry. If the RD device does not comprise the corresponding DNS record entry, the method comprises performing a DNS resolution for the resource. If the RD device does not comprise the corresponding DNS record entry, the method comprises storing, in the RD device, a DNS record obtained from the DNS resolution. If the RD device does not comprise the corresponding DNS record entry, the method comprises transmitting, from the RD device to the CCCD, a third message comprising a DNS entry of the stored DNS record.

[0022] According to a fourth aspect, an RD device is provided. The RD device is adapted to receive from a CCCD, a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The RD device is adapted to check whether the RD device comprises a corresponding DNS record entry for the resource. The corresponding DNS record entry corresponds to the DNS record requested in the first request. If the RD device comprises the corresponding DNS record entry, the RD device is adapted to transmit to the CCCD, a second message comprising information of the DNS record entry. If the RD device does not comprise the corresponding DNS record entry, the RD device is adapted to perform a DNS resolution for the resource. If the RD device does not comprise the corresponding DNS record entry, the RD device is adapted to store, in the RD device, a DNS record obtained from the DNS resolution. If the RD device does not comprise the corresponding DNS record entry, the RD device is adapted to transmit, to the CCCD, a third message comprising a DNS entry of the stored DNS record.

[0023] According to an embodiment, the RD device is adapted to receive, from the CCCD, a fourth message comprising a second request to register for a change in the DNS record for the resource.

[0024] According to an embodiment, the RD device is adapted to transmit, to the CCCD, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

[0025] According to an embodiment, the RD device is adapted to perform resource discovery of the resource, and transmit, to the CCCD in the second message or the third message, information related to performed resource discovery for the resource. According to an embodiment, the RD device is adapted to create a new resource for storing information related to a DNS record for the resource in the RD device, wherein the new resource comprises information comprising the DNS entry of the DNS record or the DNS entry of the stored DNS record, and a RRSig comprising a digital signature associated to the DNS entry of the DNS record or the DNS entry of the stored DNS record. According to an embodiment, the RD device is adapted to receive, from a DNS server node, the information related to the DNS record for the resource.

[0026] According to an embodiment, the RD device is adapted to perform a lookup in the RD device for the resource based on the received first message.

[0027] According to an embodiment, the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by IETF RFC 2616.

[0028] According to a fifth aspect, a CCCD is provided. The CCCD is adapted to transmit, to an RD device, a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The CCCD is adapted to receive, from the RD device, a second message comprising information of a DNS entry of the DNS record of the resource.

[0029] According to an embodiment, the CCCD is adapted to transmit, to the RD device, a fourth message comprising a second request to register for a change in the DNS record for the resource.

[0030] According to an embodiment, the CCCD is adapted to receive, from the RD device, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

[0031] According to an embodiment, the CCCD is adapted to receive, from the RD device in the second message, information related to resource discovery for the resource.

[0032] According to an embodiment, the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by IETF RFC 2616. According to a sixth aspect, a communication network is provided. The communication network comprises a CCCD and an RD device. The communication network is adapted to receive, at the RD deice from the CCCD, a first message comprising a first request for a DNS record of a resource made available through the CCCD or another CCCD. The communication network is adapted to check whether the RD device comprises a corresponding DNS record entry for the resource. The corresponding DNS record entry corresponds to the DNS record requested in the first request. If the RD device comprises the corresponding DNS record entry, the communication network is adapted to transmit, from the RD device to the CCCD, a second message comprising information of the DNS record entry. If the RD device does not comprise the corresponding DNS record entry, the communication network is adapted to perform a DNS resolution for the resource. If the RD device does not comprise the corresponding DNS record entry, the communication network is adapted to store, in the RD device, a DNS record obtained from the DNS resolution. If the RD device does not comprise the corresponding DNS record entry, the communication network is adapted to transmit, from the RD device to the CCCD, a third message comprising a DNS entry of the stored DNS record.

[0033] According to a seventh aspect, an RD device is provided. The RD device comprises at least one processing circuitry. The RD devices comprises at least one memory. The at least one memory is connected to the at least one processing circuitry. The at least one processing circuitry is storing program code. The stored program code is executed by the at least one processing circuitry to perform the method according to the first aspect or any of the embodiments of the first aspect.

[0034] According to an eighth aspect, a CCCD is provided. The CCCD comprises at least one memory. The at least one memory is connected to the at least one processing circuitry. The at least one processing circuitry is storing program code. The stored program code is executed by the at least one processing circuitry to perform the method according to the second aspect and / or any of the embodiments of the second aspect.

[0035] According to a ninth aspect, a communication network is provided. The communication network comprises a CCCD and an RD device. The communication network comprises at least one memory. The at least one memory is connected to the at least one processing circuitry. The at least one processing circuitry is storing program code. The stored program code is executed by the at least one processing circuitry to perform the method according to the third aspect and / or any of the embodiments of the third aspect.

[0036] According to a tenth aspect, a computer program is provided. In an embodiment, the computer program comprises instructions which, when executed by at least one processing circuitry of an RD device causes the RD device to carry out the method according to the first aspect and / or any of the embodiments of the first aspect.

[0037] According to an eleventh aspect, a computer program is provided. The computer program comprises instructions which, when executed by at least one processing circuitry of a CCCD causes the CCCD to carry out the method according to the second aspect or any of the embodiments of the second aspect.

[0038] According to a twelfth aspect, a computer program is provided. The computer program comprises instructions which, when executed by at least one processing circuitry of a communication network causes the communication network to carry out the method according to the third aspect or any of the embodiments of the third aspect.

[0039] According to a thirteenth aspect, a computer program product is provided. The computer program product is stored on a non-transitory computer readable medium and comprises program code that, when executed by at least one processing circuitry of an RD device causes the RD device to perform the method according to the first aspect and / or any of the embodiments of the first aspect.

[0040] According to a fourteenth aspect, a computer program product is provided. The computer program product is stored on a non-transitory computer readable medium and comprises program code that, when executed by at least one processing circuitry of a CCCD causes the CCCD to perform the method according to the second aspect and / or any of the embodiments of the second aspect.

[0041] According to a fifteenth aspect, a computer program product is provided. The computer program product is stored on a non-transitory computer readable medium and comprises program code that, when executed by at least one processing circuitry of a communication network causes the communication network to perform the method according to the third aspect and / or any of the embodiments of the third aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0042] The above, as well as additional objects, features and advantages of the invention, will be better understood through the following illustrative and non-limiting detailed description of embodiments of the invention, with reference to the appended drawings, in which:

[0043] Figs. 1a, 1 b illustrate embodiments of communication networks according to the invention.

[0044] Figs. 2, 3 illustrate embodiments according to methods of the invention.

[0045] Figs. 3-5 illustrate embodiments according to methods of the invention.

[0046] Figs. 4, 5, 6 illustrate signaling diagrams according to embodiments of the invention.

[0047] Fig. 7 shows an embodiment of a Resource Directory device according to the invention.

[0048] Fig. 8 shows an embodiment of a CoAP-compatible communication device according to the invention.

[0049] Fig. 9 illustrates an embodiment of a computer program product according to the invention.

[0050] All the figures are schematic, not necessarily to scale, and generally only show parts which are necessary in order to elucidate the invention, wherein other parts may be omitted or merely suggested.

[0051] DETAILED DESCRIPTION

[0052] The invention will now be described more fully hereinafter with reference to the accompanying drawings, in which certain embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.

[0053] Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and / or is implied from the context in which it is used. All references to a / an / the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and / or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the following description.

[0054] There are several problems with the prior art. A problem is that a Domain Name System (DNS) is configured to provide a DNS resolution for Uniform Resource Locators (URLs) for a World Wide Web (WWW) system. The WWW system is configured to run on datacenters or at least run on computing devices for which polling and messaging is not a big issue since the datacenters and the computing devices are not resource-constrained. Examples of resources are battery, back-up power supply, memory space and processing capacity. Internet-of-Things (loT) devices comprise constrained devices. loT devices may be associated with higher mobility, more frequent Internet Protocol (IP) address changes and devices which are battery and / or resource constrained. Thus, it would be beneficial if an loT device does not constantly perform polling, to finish an operation or a task such as DNS resolution, which depletes resources in the loT device.

[0055] As disclosed in Internet Engineering Task Force (IETF) Request for Comments (RFC) 7228, loT devices with constraints on CPU, memory, and power resources, may be referred to as constrained devices (e.g. constrained nodes as defined in chapter 2.1 of IETF RFC 7228). In the disclosure herein, constrained device relates to a Constrained Application Protocol (CoAP) - compatible communication device (CCCD). Examples of constrained devices are sensors, actuators, smart objects and smart devices as long as they are CoAP compatible, i.e. are configured for communication using the CoAP protocol. A network comprising one or more of the constrained devices may be referred to as a constrained network / constrained environment as defined in chapter 2.2 of IETF RFC 7228. The network (e.g. a constrained network as defined in IETF RFC 7228) exhibits a constraint due to the presence of one or more constrained devices in the network. The constraint may be related to a channel quality (e.g. unreliable channel, lossy channel), related to a bandwidth of the network (e.g. limited, unpredictable) and / or related to a topology (e.g. highly dynamic topology, changing IP addresses of nodes in the topology).

[0056] Another problem with the prior art is that a request for resolving DNS records or providing DNS resolution and a request for discovering resources are both handled as separate requests. Handling the two requests separately is timeconsuming and / or resource inefficient, especially in a constrained environment.

[0057] Yet another problem with the prior art is that DNS resolution may take up to 20 seconds to complete. An loT device or constrained device such as a CoAP server device, a CoAP client device, a Lightweight Machine-to-Machine (LwM2M) client device and an LwM2M server device may change IP addresses due to reasons such as geographical movement of the loT devices, change in a node providing access to the loT device to a network and topological movement of loT devices within a network. Conventional DNS resolution mechanisms are not adapted to keep up with changes of IP addresses for the loT devices, especially in cases wherein the IP address for the loT device is changing constantly. Thus, DNS resolution mechanisms as disclosed in the prior art may provide slower responses and delayed access to required resources. Some loT devices or constrained devices do not support DNS out of the box either, which lead to creation of DNS over CoAP, DoC.

[0058] Another problem with the prior art is that IP addresses may be preconfigured on loT devices. Lenders, Martine S., et al. "Securing name resolution in the loT: DNS over CoAP." Proceedings of the CoNEXT Student Workshop, 2021 discloses that omitting a DNS resolver on the loT device introduces several drawbacks of preconfiguring IP address on loT devices. First, IP addresses to access Internet services, e.g., cloud backends, need to be preconfigured on the loT device. This reduces flexibility and adds additional burden, if preconfigured addresses need changing.

[0059] A Resource Directory (RD), as defined by IETF RFC 9176, and also called Constrained RESTful Environments (CoRE) RD, is a function which is an integral part of a constrained environment. Constrained servers register with an RD function, allowing other devices within a network to discover available resources without having to individually query each device since the RD maintains up-to-date records of resources in the network.

[0060] The process of DNS resolution involves converting a hostname, such as www.example-1.com, into an IP address, such as 192.1.1.1. An IP address is given to each device on the Internet, and the IP address is necessary to identify or locate a corresponding connected Internet device.

[0061] Steps in a conventional process for DNS resolution or a DNS lookup for the hostname example.com as described in the prior art are in the following sentences described to differentiate the invention from the prior art. In an example, loading a webpage is performed by translating what a user provides as input to a web browser such as example.com and an IP address to display or load contents of the webpage. In the prior art, a web browser receives an input from a user. In an example, the input may be ‘example.com’. The web browser forwards, to a DNS recursive resolver in the Internet, a query including a request to resolve a hostname for ‘example.com’. The resolver then queries a DNS root nameserver for resolving the hostname for the hostname example.com. In other words, the resolver requests, to the DNS root nameserver, for a DNS record of the hostname. The root nameserver responds to the resolver with an IP address of a Top Level Domain (TLD) DNS server node such as .com, .net or .org. The TLD DNS server node stores information for domains such as .com, .net and .org. When searching for example.com, the request is routed towards the .com TLD DNS server node. Further, the resolver makes a request, to the .com TLD DNS server node, to resolve the DNS record for hostname example.com. The TLD DNS server node responds, to the resolver, with a message comprising an IP address of a .com domain nameserver for example.com. Furthermore, the resolver sends, to the .com domain nameserver of example.com, a query comprising a request for providing the IP address for example.com. The domain nameserver sends to the resolver, the IP address for example.com. Furthermore, the resolver sends, to the web browser, a response comprising the IP address of example.com. The web browser makes the request for a web page using the obtained / resolved / queried IP address corresponding to the hostname, example.com which renders the web page in the browser.

[0062] The disclosure herein advantageously provides a mechanism for managing a communication network comprising a CoAP compatible communication device and a device comprising functionality of an RD. The disclosure herein advantageously provides a mechanism to reduce workload and / or reduce resource consumption in a constrained device, such as a CoAP server, a CoAP client, an LwM2M client and an LwM2M server, for handling a query related to resolution of a DNS. The disclosure herein advantageously provides a mechanism for handling DNS records in a constrained environment or a network comprising of loT devices. The disclosure herein advantageously improves the time-taken to retrieve a DNS record for a resource in a constrained network. In other words, the disclosure herein advantageously reduces latency to retrieve a DNS record for a resource in a constrained network.

[0063] Fig. 1a illustrates a communication network 100 according to an embodiment of the invention. The communication network 100 comprises three CCCDs, CCCD 110a, CCCD 110b and CCCD 110c, an RD device 120 and a DNS server node 130. The CCCDs 110a, 110b and 110c, the RD device 120 and the DNS server node 130 are each a hardware device. In an example, functionality each of the CCCD 110a, the CCCD 110b, the CCCD 110c, the RD device 120 and / or the DNS server node 130 may be implemented in one or more virtual machines. The CCCDs 110a, 110b, 110c are devices which use CoAP for communication. In other words, the CCCDs 110a, 110b, 110c are host devices capable of communication via CoAP. The CCCDs 110a, 110b and 110c may be collectively referred to as CCCD 110 in the following description. The CCCD 110 may be a CoAP endpoint such as a device which comprises a CoAP server or a CoAP client. The RD device comprises functionality of an RD function as defined by IETF RFC 9176.

[0064] A resource, as defined in section 1 .3 of IETF RFC 2616, is a network data object or a service that can be identified by a URL The resource may be available in multiple representations (e.g. multiple languages, data formats, size, and resolutions). URIs, as defined in section 3.2 of IETF RFC 2616, may be referred to as: WWW addresses, Universal Document Identifiers (UDIs), Universal Resource Identifiers, Uniform Resource Locators (URLs) and / or Uniform Resource Names (URNs). For REST-based protocols (e.g. HTTP, CoAP), URIs are formatted strings which identify a resource via name, location, or any other characteristic. A resource made available through the CCCD 110a or another CCCD (e.g. CCCD 110b or CCCD 110c) is hosted by either of three CCCDs 110a, 110b, 110c. In an example, a resource made available through the CCCD 110a is hosted by the CCCD 110a. In an example, a resource made available through the CCCD 110a is hosted on another CCCD (e.g. the CCCD 110b, the CCCD 110c) which is accessible by the CCCD 110a. The RD device 120 is configured to store resources in the RD device 120. Entities interacting with the RD device 120 may be a CCCD 110 or a CoAP endpoint such as a CoAP server device or a CoAP client device. The CCCDs 110a, 110b, 110c may use CoAP for communication. A resource, represented by a referenced URI (e.g. a URL, a URN, a UDI), may comprise information regarding the CCCDs 110a, 110b, 110c and / or information regarding queries such as an indication of temperature, pressure, time and weight.

[0065] The RD device 120 is configured to store information related to one or more DNS records for one or more resources in the network 100. The information relating to a DNS record may include a DNS entry corresponding to a resource which indicates an IP address of the resource, an indication of a time-to-live (TTL) for the DNS record, the resource name of the resource or the hostname of the resource and / or a uniform resource identifier (URI) of the resource. In a case wherein the RD device 120 does not contain a corresponding entry of DNS record for a DNS request, the RD device 120 is configured to interact with the DNS server node 130 to resolve the DNS request originating from one or more of the CCCDs 110a, 110b and 110c. Also, in case the RD device 120 does not contain a corresponding entry of DNS record for the DNS request or in case the RD device 120 does not contain a corresponding entry of DNS record for a resource stored in the RD device 120, the RD device 120 performs operations similar to a DNS recursive resolver as presented above. The DNS server node 130 comprises a means to interact with a DNS root nameserver, a TLD DNS server and a domain nameserver as discussed above. In Fig. 1a, the DNS server node 130 is placed within the communication network 100.

[0066] Section 5.2 of IETF RFC 5988 discloses that a link description may include a link attribute. Also, IETF RFC 5988 discloses that link parameters may be extended using custom attributes prefixed with “ext-”. IETF RFC 6690 discloses that a link description includes a link attribute and that the link description uses link format. In an example embodiment, a new link extension parameter for ‘A7 IPv4 DNS records or ‘AAAA7 IPv6 DNS records may be referred to as ‘ext-dns-record’. The parameter ext-dns-record may be stored in the RD device 120 and / or the parameter ‘ext-dns- record’ may be retrieved / obtained from the DNS server node 130.

[0067] In case an ‘ext-dns-record’ is used as the new extension link parameter for DNS records, each DNS record is secured with DNS Security Extensions (DNSSEC) for data integrity authentication of the DNS records. In an example, a DNS server node 130 in the communication network 100 comprises DNS data. In an example, a DNS server node 130 present outside the communication network 100 comprises DNS data. The DNS server node 130 is configured by a user or an operator for each domain. The DNS server node 130 is configured to create a digital signature for each set of DNS records using a cryptographic key. Examples of the cryptographic key may be a Private signature key, a Public signature verification key, a Private authentication key, a Private key transport key, a Private static key agreement key and a Private ephemeral key agreement key. The DNS server node 130 is then configured to store the created digital signature in a new type of DNS record, here called a Resource Record Signature (RRSig). The RRSig is provided to any node that requests for a DNS record along with the DNS record. The DNS server node 130 is configured to store the RRSig in a new extension link parameter ‘ext-rrsig’ associated with each ext-dns-record extension link parameter. The DNS server node 130 is further configured to provide, to the RD device 120, the DNS record including the ext-dns-record and the ext-rrsig extension link parameters. The ext-dns-record field can be used for HyperText Transfer Protocol (HTTP) Uniform Resource Identifiers (URIs) or CoAP URIs, or any other URI pattern that makes use of IETF RFC 8288 and / or web linking. In some embodiments, the communication network 100 is a constrained environment as defined by IETF RFC 7228.

[0068] Fig. 1 b illustrates a communication network 100 according to an embodiment of the invention. The communication network 100 comprises three CoAP compatible communication devices (CCCDs), CCCD 110a, CCCD 110b and CCCD 110c and an RD device 120. This figure illustrates a variant of fig. 1a wherein the DNS server node 130 is placed outside the communication network 100. The RD device 120 and the DNS server node 130 may communicate even if the DNS server node 130 is placed outside the communication network 100. In some embodiments, the communication network 100 is a constrained network as defined in IETF RFC 7228.

[0069] Fig. 2 illustrates a method 200 according to an embodiment of the invention. The method 200 is performed by an RD device 120 in a communication network 100 comprising the RD device 120, three CCCDs 110a, 110b, 110c and optionally, a DNS server node 130. The method 200 comprises receiving 205 from the CCCD 110a, a first message comprising a first request for a DNS record of a resource made available through the CCCD 110a or another CCCD, which could be either CCCD 110b or CCCD 110c. The first request may comprise a query for resolution of a DNS of an identifier of the resource. Examples of the identifier are a hostname of a resource, a resource name, a domain name of the resource and a URI of the resource. The DNS record may comprise one or more of: i) the hostname or URI of the resource, ii) a DNS record type such as ‘A’ for an IP version 4 (IPv4) address, ‘AAAA’ for an IP version 6 (IPv6) address and nameserver (NS), iii) a value corresponding to a value of a DNS resolution (e.g. the value may be an IPv4 address if the DNS record type is IPv4 or the value may be an IPv6 address if the DNS record type is IPv6), iv) a value of TTL in seconds, which indicates an expiry of the DNS record once a time corresponding to the TTL value has elapsed. In some embodiments, the first message may comprise a first request for providing a translation for a hostname, URI of the resource and / or a domain name of the resource into an IP address each. The translation for a hostname / domain name of the resource may be produced to provide an IPv4 address or IPv6 address. In some embodiments, the resource may be part of a local network comprising the CCCD, thus the translation of the hostname or the translation of the URI of the resource is made into a local IP address of the local network. In some embodiments, the resource may be part of another network which does not comprise the CCCD, thus the translation of the hostname of the resource is made into a globally unique IP address. The hostname of the resource may be a URI of the resource.

[0070] The method comprises checking 210 whether the RD device 120 comprises a corresponding DNS record entry for the resource. The corresponding DNS record entry corresponds to the DNS record requested in the first request. The corresponding DNS record entry for the resource is checked by performing a lookup in a memory space of the RD device 120. In an example, if the resource hostname is “example.com”, a corresponding DNS record entry may comprise the hostname example.com, a value of an IPv4Z IPv6 address corresponding to the hostname, a DNS record type and a TTL in seconds.

[0071] If the RD device 120 comprises the corresponding DNS record entry, the method 200 comprises transmitting 215 to the CCCD 110a, a second message comprising information of the DNS record entry. In some embodiments, the DNS record entry may comprise the value of the IP address. In some embodiments, the DNS record entry may comprise one or more of: a DNS record type, a hostname of the resource, a value of the IP address and a TTL value. Each parameter or information element of a DNS record may be referred to as a DNS entry of the DNS record. Examples of parameters or information elements of the DNS record are DNS record type, a hostname of a resource, a value of the IP address and a value of IP address. If the RD device 120 does not comprise the corresponding DNS record entry, the method 200 comprises performing 220 a DNS resolution for the resource. The DNS resolution for the resource comprises operations known in the prior art for resolving a hostname into, for example, an IP address or resolving a hostname of the resource into, for example, another equivalent unique identifier that may be addressable by the CCCDs 110a, 110b 110c or addressable by the RD device 120. The method 200 comprises storing 225, in the RD device 120, a DNS record obtained from the performed DNS resolution. The stored DNS record may comprise information related to a DNS record as described above. The method comprises transmitting 230 to the CCCD 110a, a third message comprising a DNS entry of the stored DNS record. Advantageously, the features of method 200 optimize processes within a constrained environment, thus enhancing overall system performance. In an example, the method 200 may be applied to a CCCD 110 comprising a mobile CoAP server wherein an IP address of the mobile CoAP server periodically changes because of geographical or topographical mobility of the mobile CoAP server. Moreover, the disclosure herein advantageously provides real-time resource retrieval and synchronization. Furthermore, the disclosure herein advantageously reduces latency for DNS resolution of a hostname of a resource or a URI of a resource. An advantage of the disclosure herein is that more power consuming tasks are shifted to the RD device 120, which may or may not be a constrained device, from the CCCD 110a, which is a constrained device.

[0072] In some embodiments, the method 200 may comprise receiving 235 from the CCCD (e.g. the CCCD 110a, the CCCD 110b, the CCCD 110c), a fourth message comprising a second request to register for a change in the DNS record for the resource. One significant feature of CoAP is CoAP Observe attribute, as defined in IETF RFC 7641 . The CoAP Observe attribute enables a CoAP endpoint such as a CoAP client to observe changes to resources hosted on a CoAP server and / or to observe changes to resources made available through a CoAP server. The CoAP observe attribute enable sending of a notification, from the CoAP server to the CoAP client, automatically whenever there is a change in state or a value of the resource which is being observed. The second request thus enables a push-like mechanism for providing information to an entity requesting observation of the resource. The registration for a change in the DNS record for the resource may be made by either of the CCCDs 110a, 110b, 110c (which may each be a CoAP server or a CoAP client), or the RD device 120. The second request to register for a change in the DNS record for the resource may be indicated by sending a CoAP message comprising an observe option for the resource. In some embodiments, the method 200 may comprise transmitting 240 to the CCCD, a fifth message comprising an updated DNS entry of the DNS record of the resource (i.e. an updated DNS record entry), if either of the DNS record entry or the DNS entry of the stored DNS record of the resource changes. In some embodiments, the method 200 may comprise transmitting 240 to the CCCD, a fifth message comprising an updated DNS entry of the DNS record of the resource (i.e. an updated DNS record entry), if a specified time interval has elapsed (e.g. a TTL of the DNS request or the DNS record). In an example, the DNS record entry or the DNS entry of the stored DNS record changes due to geographical, topographical or physical movement of the another CCCD 110b or the another CCCD 110c outside of the communication network 100. In an example, the DNS record entry or the DNS entry of the stored DNS record changes due to geographical, topographical or physical movement of the CCCD 110a. In an example, the DNS entry of the DNS record or the DNS entry of the stored DNS record changes due to an expiration of a TTL value specified in seconds (e.g. the value of the TTL may be between a few seconds to a few thousand seconds).

[0073] In some embodiments, the method 200 may comprise performing 245 resource discovery of the resource. Performing 245 resource discovery of the resource comprises service and / or resource discovery of the resource, as defined in IETF RFC 7252. In an example, resource discovery may be supported using a Constrained RESTful Environments (CoRE) Link Format, as defined in IETF RFC 6690. In some embodiments, the method 200 may comprise transmitting 250 to the CCCD 110a in the second message or the third message, information related to performed resource discovery for the resource.

[0074] In some embodiments, the method 200 may comprise creating 255 a new resource for storing information related to a DNS record for the resource in the RD device 120. The new resource may comprise information comprising the DNS record entry or the DNS entry of the stored DNS record. The new resource may also comprise a RRSig comprising a digital signature associated to the DNS entry of the DNS record or the DNS entry of the stored DNS record. The method 200 may comprise receiving 260 from a DNS server node 130, the information related to the DNS record for the resource. Advantageously, by having the RD device 120 maintain DNS records and work as a facilitator to provide DNS resolution for the CCCDs, the tasks of resource discovery and DNS resolution are combined into one operation. The advantage of the RD device storing and / or maintaining DNS record entries may also enable optimizing resources in constrained environments and / or reducing resource consumption in constrained environments by reducing the number of messages to perform a DNS resolution for a resource.

[0075] In some embodiments, the method may comprise performing 265 a lookup in the RD device 120 for the resource based on the received first message. In an example, the lookup comprises matching a hostname of the resource or a URI of the resource to an entry in the memory space of the RD device 120. If a match corresponding to the hostname of the resource or if a match corresponding to the URI of the resource is found, the method comprises providing the corresponding entry to the CCCD 110a. In some embodiments, any one of the CCCDs 110a, 110b, 110c may be configured to perform a resource lookup in the RD device 120 for any type of resource type. The performed resource lookup may advantageously enable obtaining, by the CCCDs, the DNS record entries / the DNS records associated to the resource.

[0076] In some embodiments, the DNS record entry comprises an IP address of the resource. In some embodiments, the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by IETF RFC 2616.

[0077] The method 200 may be interchangeably performed by the RD device 120 for any one of the three CCCDs 110a, 110b or 110c for a resource made available through any one of the CCCDs 110a, 110b and 110c.

[0078] Fig. 3 illustrates a method 300 according to an embodiment of the invention. The method 300 is performed by a CCCD 110a in a communication network 100. The method 300 comprises transmitting 305, to an RD device 120, a first message comprising a first request for a DNS record of a resource made available through the CCCD 110a or another CCCD 110b, 110c. The method 300 comprises receiving 310 from the RD device, a second message comprising a DNS entry of the DNS record of the resource.

[0079] In some embodiments, the method 300 may comprise transmitting 315, to the RD device 120, a fourth message comprising a second request to register for a change in the DNS record for the resource. As described in relation to fig. 2, the fourth message may comprise a CoAP observe option for a change in state of the resource. In some embodiments, the change in sate of the resource may be a change in the DNS record of the resource which may include a change in IP address and / or a change in TTL. In some embodiments, the method 300 may comprise receiving 320, from the RD device 120, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

[0080] In some embodiments, the method 300 may comprise receiving 325, from the RD device in the second message, information related to resource discovery for the resource. Examples of information related to resource discovery are but not limited to: i) a DNS record of the resource, ii) a value of a payload of the resource, and iii) an indication of services that the resource or any one of the three CCCDs 110a, 110b, 110c is capable of providing.

[0081] In some embodiments, the DNS entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by IETF RFC 2616.

[0082] The method 300 may be interchangeably performed by any one of the three CCCDs 110a, 110b or 110c for a resource available through any one of the CCCDs 110a, 110b, 110c.

[0083] Fig. 4 illustrates a signaling diagram according to an embodiment of the invention. The figure provides an interaction between a CCCD 110, which may be any one of the three CCCDs 110a, 110b, 110c, and an RD device 120.

[0084] The CCCD 110 is configured to send / transmit 410, to the RD device 120, a first message comprising a first request for a DNS record of a resource made available through the CCCD 110 or another CCCD. In an example, the first message is a first CoAP message comprising a request for a DNS record of a resource named “temperature”. The RD device 120 is configured to search in a memory space of the RD device 120 for a resource “temperature”. The RD device 120 is configured to check if any entry corresponding to the resource “temperature” is found in the memory space. If there is one or more entries corresponding to the resource “temperature”, the RD device 120 is configured to respond 420 or send 420, to the CCCD 110, with a payload comprising one or more entries corresponding to the resource “temperature” with at least a corresponding DNS record entry. In some examples, the RD device 120 is configured to send 420, to the CCCD 110, one or more of: i) a corresponding DNS record of the resource “temperature”, ii) an RRSig of the resource “temperature”, iii) a hostname or a URI of the resource “temperature”, iv) an anchor entry of the resource “temperature”. An example of the first message is: {REQ: GET coap: / / rd. online. is / rd-lookup / res?rt=temperature}, wherein a path of the resource “temperature” is indicated by ‘res?rt=temperature’.

[0085] In an example, the payload sent, from the RD device 120 to the CCCD 110, comprises the following:

[0086] Entry 1 - <http: / / example.com>; rt="temperature"; dns-record="IPv6 address"; rrsig="RRSIG-Placeholder-1 "

[0087] Entry 2 - <coap: / / example2.com>; rt="temperature"; anchor="coap: / / [IPv6 address]",

[0088] Entry 3 - <coap: / / example3.com>; rt="temperature"; dns-record="IPv6 address"; rrsig="RRSIG-Placeholder-3" wherein payload content placed between “<>” is the hostname or the URI of the resource “temperature”, rt is the resource name provided as input for a query to the RD device 120, dns-record is the DNS record of the resource comprising a value of an IP address, rrsig is the Resource Record Signature comprising a digital signature associated to the DNS entry of the DNS record.

[0089] Fig. 5 illustrates a signaling diagram according to an embodiment of the invention. The signaling diagram shows an interaction between a CCCD 110, an RD device 120 and a DNS server node 130.

[0090] The CCCD 110 is configured to transmit 510, to the RD device 120, a first message comprising a request for a DNS record of a resource made available through the CCCD 110 or any other CCCD. In an example, the first message is a CoAP message comprising a request. The request may comprise an indication of a type of CoAP message, such as confirmable (CON), non-confirmable (NON), acknowledgement (ACK) and / or the first message may comprise a CoAP request or a CoAP response code such as GET, PUT, POST and FETCH. The request may relate to a query requesting for a DNS record of the resource. In other words, the request may relate to a translation request for obtaining a DNS record for the resource based on a URI of the resource. An example semantic of the first message may be: {"type", "CoAP request code", "URI"}. An example first message for requesting a resource may be: {"type": "CON", "code": "GET", "URI": "coap: / / rd. online. is / rd-lookup / res?base= coap: / / sensor33. riaoma.de"}. A request for a DNS record may be performed using any of the following operators - uchar,

[0091] "=". An example of the first message requesting for only the DNS record of the resource with an ext-dns-record parameter may be: {"type": "CON", "code": "GET", "URI": "coap: / / rd.online.is / rd-lookup / res?ext-dns- record&base=coap: / / sensor33. riaoma.de"}. In the example first message, the operator is used to request for the DNS record.

[0092] If the RD device 120 comprises a corresponding DNS entry of the DNS record for the resource or if the RD device 120 comprises a matching Uniform Resource Locator (URL) or a DNS record for the resource, the RD device 120 is configured to transmit 520, a second message comprising the DNS entry of the DNS record. An example semantic of the first message may be: {"type", "CoAP response code", "payload containing DNS record or IP address"}. An example of the second message is: {"type": "ACK", "code":"2.05 Content", "payload": "2400:cb00:2049:1 ::c628:d7a1"}.

[0093] If the RD device 120 does not comprises a corresponding DNS entry of the DNS record for the resource or if the RD device 120 does not comprise a matching URL or a DNS record for the resource, the RD device 120 is configured to transmit 530, to the DNS server node 130, a third message comprising a request to provide a resolution for the DNS record of the resource. In some embodiments, the DNS server node 130 may be a Top-Level Domain (TLD) DNS nameserver. An example semantic of the third message may be: {"type of query", "hostname of resource"}. The third message may comprise a query to resolve a DNS record of the resource. An example of the third message is: {"type": "DNS Query", "hostname": "Served "}.

[0094] The DNS server node 130 is configured to perform 540 DNS resolution of the resource. In other words, the DNS server node 130 is configured to query for the resource, resolve or find a matching resource with a corresponding DNS record and provide the corresponding DNS record for the resource to the RD device 120.

[0095] The RD device 120 is configured to receive 550, from the DNS server node 130, a fourth message comprising the DNS record for the resource. An example semantic of the fourth message may be: {“Payload containing DNS record for hostname of the resource”}. An example of the fourth message is: {“DNS record for hostname”}. Furthermore, the RD device 120 is configured to store the DNS record corresponding to the resource. The RD device 120 is configured to send 560, to the CCCD 110, a fifth message comprising a response comprising the DNS record as obtained by the RD device 120. An example semantic of the fifth message may be: {"type", "CoAP response code", "payload containing updated DNS record"}. An example of the fifth message is: {"type": "ACK", "code": "2.05 Content", "payload": "2400:cb00:2049: 1 : :c628:d7a1 "}.

[0096] Fig. 6 illustrates a signaling diagram in accordance with an embodiment of the invention. The signaling diagram shows an example interaction between a CCCD 110a, a CCCD 110b or a CCCD 110c, and an RD device 120.

[0097] The CCCD 110a is configured to transmit 610, to the RD device 120, a first message comprising a request to register for a change for a resource available through either of the CCCDs 110a, 110b, 110c. In an example embodiment, the first message is a CoAP message comprising a request for a change in a DNS record of the resource and the request comprising an indication to observe a change in the DNS record of the resource. The indication to observe a change in the DNS record may be performed by using a value ‘0’ for observing the resource, as defined in IETF RFC 7641 . An example of a semantic for the first message may be: {"type", "CoAP request code", "obs": "0", "URI"}, wherein i) type indicates a CoAP message type, ii) CoAP request code indicates a CoAP method for performing an operation such as GET, PUT, POST and FETCH, iii) obs indicates an observe option as defined in IETF RFC 7641 - obs = “0” indicates a registration of an entry for a resource to an observation list, if the entry is not present in the list and obs = “1” indicates a deregistration of an entry for a resource from the observation list, if the entry is present in the list, iv) URI indicates a URI or a hostname for a resource. The CCCDs 110a, 110b and 110c may be configured to receive only DNS entries corresponding to DNS records for resources that the CCCDs 110a, 110b and 110c have requested for with the CoAP observe option. In an example, the first message is: {"type": "CON", "code": "GET", "obs": "0", "URI": "coap: / / rd.online.is / rd- Iookup / res?base=coap: / / sensor33. riaoma.de"}.

[0098] The RD device 120 is configured to transmit 620, to the CCCD 110a, a second message comprising a first response for the request. In some embodiments, the second message may be a CoAP message and the first response comprises a payload comprising an entry corresponding to the DNS record of the resource. An example semantic of the second message may be: {"type", "CoAP response code", "payload containing DNS record"}. An example of the second message is: {"type": "ACK", "code": "2.05 Content", "payload": "2400:cb00:2049:1 ::c628:d7a1" }.

[0099] The CCCD 110b or the CCCD 110c is configured to transmit 630, a request to the RD device 120 a third message comprising a second request to register for a change for the resource. The third message may be similar to the first message, but sent at a different point in time. An example of a semantic for the first message may be: {"type", "CoAP request code", "obs": "0", "URI"}. In an example, the third message is: {"type": "CON", "code": "GET", "obs": "0", "URI": "coap: / / rd.online.is / rd- Iookup / res?base=coap: / / sensor33. riaoma.de"}.

[0100] The RD device 120 is configured to update 635 DNS records in a memory space of the RD device 120. The memory space may be a cache of DNS records and / or a list of DNS records and / or a list of resources with corresponding ext-dns- record parameter and / or a table of resources with corresponding entries of DNS records for the resources. In an example, the RD device 120 may determine that an entry of a DNS record of the resource has changed. The change in the entry of the DNS record may be a change in an IP address of the resource. The RD device 120 is configured to transmit 640, to the CCCD 110b or the CCCD 110c, a fourth message comprising a second response. In some embodiments, the second response may comprise a payload with corresponding the DNS entry of the DNS record for the resource. An example semantic of the fourth message may be: {"type", "CoAP response code", "payload containing DNS record"}. An example of the fourth message is: {"type": "ACK", "code": "2.05 Content", "payload": "2400:cb00:2049:1 ::c628:4f32"}.

[0101] The RD device 120 is configured to notify 645 all endpoints which have indicated an observe option for a change in DNS record of any resource in the cache of the RD device 120. In some embodiments, if the CCCD 110a has indicated an observe option for the resource and there is a change in an IP address of the resource, the RD device 120 is configured to transmit 650, to the CCCD 110a, a fifth message comprising a third response. In some embodiments, the third response comprises a payload with a corresponding DNS entry of the changed DNS record of the resource. In other words, the RD device 120 updates entries of DNS records corresponding to resources in the cache and the RD device 120 notifies the observing CoAP endpoints such as CoAP server and / or CoAP client with a new IP address of the resource using CoAP Observe feature. In an example, the payload comprises an updated DNS entry of the DNS record of the resource. An example semantic of the fifth message may be: {"type", "CoAP response code", "payload containing DNS record"}. An example of the fifth message is: {"type": "ACK", "code": "2.05 Content", "payload": "2400:cb00:2049:1::c628:4f32" }.

[0102] Fig. 7 shows an embodiment of the RD device 120 according to the invention. As used herein, the RD device 120 refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or UEs. Examples of the RD device 120 include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE. The CCCD 110 is configured to perform the operations according to the methods disclosed in relation to Figs. 2, 4, 5 and 6.

[0103] The RD device 120 may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to- infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, the RD device 120 may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, the RD device 120 may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, the RD device 120 may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).

[0104] The RD device 120 includes processing circuitry 702 that is operatively coupled via a bus 704 to an input / output interface 706, a power source 708, a memory 710, a communication interface 712, and / or any other component, or any combination thereof. Certain apparatus may utilize all or a subset of the components shown in Fig. 7. The level of integration between the components may vary from one apparatus to another apparatus. Further, certain apparatus may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.

[0105] The processing circuitry 702 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 710. The processing circuitry 702 may be implemented as one or more hardware- implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general- purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 702 may include multiple central processing units (CPUs).

[0106] In the example, the input / output interface 706 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the RD device 120. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.

[0107] In some embodiments, the power source 708 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 708 may further include power circuitry for delivering power from the power source 708 itself, and / or an external power source, to the various parts of the RD device 120 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 708. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 708 to make the power suitable for the respective components of the RD device 120 to which power is supplied.

[0108] The memory 710 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 710 includes one or more application programs 714, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 716. The memory 710 may store, for use by the RD device 120, any of a variety of various operating systems or combinations of operating systems.

[0109] The memory 710 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUlCC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 710 may allow the RD device 120 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 710, which may be or comprise a device-readable storage medium.

[0110] The processing circuitry 702 may be configured to communicate with an access network or other network using the communication interface 712. The communication interface 712 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 722. The communication interface 712 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another RD device or a network node in the communication network 100). Each transceiver may include a transmitter 718 and / or a receiver 720 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 718 and receiver 720 may be coupled to one or more antennas (e.g., antenna 722) and may share circuit components, software or firmware, or alternatively be implemented separately.

[0111] In the illustrated embodiment, communication functions of the communication interface 712 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11 , Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.

[0112] Regardless of the type of sensor, the RD device 120 may provide an output of data captured by its sensors, through its communication interface 712, via a wireless connection to a network node. Data captured by sensors of the RD device 120 can be communicated through a wireless connection to a network node via another apparatus. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).

[0113] As another example, the RD device 120 comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.

[0114] As yet another specific example, in an loT scenario, the RD device 120 may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another apparatus and / or a network node. In other scenarios, the RD device 120 may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.

[0115] In practice, any number of RD devices may be used together with respect to a single use case. For example, a first RD device might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second RD device that is a remote controller operating the drone. When the user makes changes from the remote controller, the first RD device may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second RD device can also include more than one of the functionalities described above. For example, the RD device 120 might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.

[0116] Although the computing devices described herein (e.g. the CCCD, the RD device) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.

[0117] Fig. 7 shows an embodiment of the RD device 120 according to the invention. As used herein, the RD device 120 refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or UEs. Examples of the RD device 120 include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE. The CCCD 110 is configured to perform the operations according to the methods disclosed in relation to Figs. 2, 4, 5 and 6.

[0118] The RD device 120 may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to- infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, the RD device 120 may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, the RD device 120 may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, the RD device 120 may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).

[0119] The RD device 120 includes processing circuitry 702 that is operatively coupled via a bus 704 to an input / output interface 706, a power source 708, a memory 710, a communication interface 712, and / or any other component, or any combination thereof. Certain apparatus may utilize all or a subset of the components shown in Fig. 7. The level of integration between the components may vary from one apparatus to another apparatus. Further, certain apparatus may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.

[0120] The processing circuitry 702 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 710. The processing circuitry 702 may be implemented as one or more hardware- implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general- purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 702 may include multiple central processing units (CPUs).

[0121] In the example, the input / output interface 706 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the RD device 120. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.

[0122] In some embodiments, the power source 708 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 708 may further include power circuitry for delivering power from the power source 708 itself, and / or an external power source, to the various parts of the RD device 120 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 708. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 708 to make the power suitable for the respective components of the RD device 120 to which power is supplied.

[0123] The memory 710 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 710 includes one or more application programs 714, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 716. The memory 710 may store, for use by the RD device 120, any of a variety of various operating systems or combinations of operating systems.

[0124] The memory 710 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUlCC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 710 may allow the RD device 120 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 710, which may be or comprise a device-readable storage medium.

[0125] The processing circuitry 702 may be configured to communicate with an access network or other network using the communication interface 712. The communication interface 712 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 722. The communication interface 712 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another RD device or a network node in the communication network 100). Each transceiver may include a transmitter 718 and / or a receiver 720 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 718 and receiver 720 may be coupled to one or more antennas (e.g., antenna 722) and may share circuit components, software or firmware, or alternatively be implemented separately.

[0126] In the illustrated embodiment, communication functions of the communication interface 712 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11 , Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.

[0127] Regardless of the type of sensor, the RD device 120 may provide an output of data captured by its sensors, through its communication interface 712, via a wireless connection to a network node. Data captured by sensors of the RD device 120 can be communicated through a wireless connection to a network node via another apparatus. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).

[0128] As another example, the RD device 120 comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.

[0129] As yet another specific example, in an loT scenario, the RD device 120 may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another apparatus and / or a network node. In other scenarios, the RD device 120 may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.

[0130] In practice, any number of RD devices may be used together with respect to a single use case. For example, a first RD device might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second RD device that is a remote controller operating the drone. When the user makes changes from the remote controller, the first RD device may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second RD device can also include more than one of the functionalities described above. For example, the RD device 120 might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.

[0131] Fig. 8 shows an embodiment of the CCCD 110 according to the invention. As used herein, the CCCD 110 refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or UEs. Examples of the CCCD 110 include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, etc. Other examples include any UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-loT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE. The CCCD 110 is configured to perform the operations according to the methods disclosed in relation to Figs. 3, 4, 5 and 6.

[0132] The CCCD 110 may support device-to-device (D2D) communication, for example by implementing a 3GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to- infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, the CCCD 110 may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, the CCCD 110 may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, the CCCD 110 may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).

[0133] The CCCD 110 includes processing circuitry 802 that is operatively coupled via a bus 804 to an input / output interface 806, a power source 808, a memory 810, a communication interface 812, and / or any other component, or any combination thereof. Certain apparatus may utilize all or a subset of the components shown in Fig. 8. The level of integration between the components may vary from one apparatus to another apparatus. Further, certain apparatus may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.

[0134] The processing circuitry 802 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 810. The processing circuitry 802 may be implemented as one or more hardware- implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general- purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 802 may include multiple central processing units (CPUs).

[0135] In the example, the input / output interface 806 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into the CCCD 110. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.

[0136] In some embodiments, the power source 808 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used. The power source 808 may further include power circuitry for delivering power from the power source 808 itself, and / or an external power source, to the various parts of the CCCD 110 via input circuitry or an interface such as an electrical power cable. Delivering power may be, for example, for charging of the power source 808. Power circuitry may perform any formatting, converting, or other modification to the power from the power source 808 to make the power suitable for the respective components of the CCCD 110 to which power is supplied.

[0137] The memory 810 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 810 includes one or more application programs 814, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 816. The memory 810 may store, for use by the CCCD 110, any of a variety of various operating systems or combinations of operating systems.

[0138] The memory 810 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUlCC), integrated UICC (iUICC) or a removable UICC commonly known as ‘SIM card.’ The memory 810 may allow the CCCD 110 to access instructions, application programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 810, which may be or comprise a device-readable storage medium.

[0139] The processing circuitry 802 may be configured to communicate with an access network or other network using the communication interface 812. The communication interface 812 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 822. The communication interface 812 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another CCCD or a network node in the communication network 100). Each transceiver may include a transmitter 818 and / or a receiver 820 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 818 and receiver 820 may be coupled to one or more antennas (e.g., antenna 822) and may share circuit components, software or firmware, or alternatively be implemented separately. In the illustrated embodiment, communication functions of the communication interface 812 may include cellular communication, Wi-Fi communication, LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the global positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented in according to one or more communication protocols and / or standards, such as IEEE 802.11 , Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / internet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.

[0140] Regardless of the type of sensor, the CCCD 110 may provide an output of data captured by its sensors, through its communication interface 812, via a wireless connection to a network node. Data captured by sensors of the CCCD 110 can be communicated through a wireless connection to a network node via another apparatus. The output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).

[0141] As another example, the CCCD 110 comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, the UE may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.

[0142] As yet another specific example, in an loT scenario, the CCCD 110 may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another apparatus and / or a network node. In other scenarios, the CCCD 110 may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.

[0143] In practice, any number of CCCDs may be used together with respect to a single use case. For example, a first CCCD (e.g. the CCCD 110a) might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second CCCD (e.g. the CCCD 110b, the CCCD 110b) that is a remote controller operating the drone. When the user makes changes from the remote controller, the first CCCD may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second CCCD can also include more than one of the functionalities described above. For example, the CCCD 110 might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.

[0144] Although the computing devices described herein (e.g., the CCCD 110 and / or the RD device 120) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein. Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non- computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware. Fig. 9 illustrates an example of a computer program product 910 in accordance with an embodiment of the invention. The computer program product 910 includes a computer readable storage medium 710 (storage or recording medium) as described in relation to Fig. 7 and / or a computer readable storage medium 810 (storage or recording medium) as described in relation to Fig. 7, storing a computer program 920 (e.g. computer program code) comprising computer readable instructions. The computer readable medium 710 of the RD device 120 and / or the computer readable medium 810 of the CCCD 110, may be a non- transitory computer readable medium, such as, magnetic media (e.g., a hard disk), optical media, memory devices (e.g., random access memory, flash memory), and the like. In some embodiments, the computer readable instructions of computer program 920 are configured such that when executed by the processing circuitry 702 and / or the processing circuitry 802, the computer readable instructions cause the RD device 120 and / or the CCCD 110 to perform steps described herein (e.g., methods 200, 300, 400, 500, 600). In other embodiments, the RD device 120 and / or the CCCD 110 may be configured / operable to perform steps described herein without the need for code. That is, for example, the processing circuitry 702 and / or the processing circuitry 802 may consist merely of one or more ASICs. Hence, the features of the embodiments described herein may be implemented in hardware and / or software.

[0145] The computer program code mentioned above may also be provided, for instance in the form of a data carrier carrying computer program code for performing the embodiments herein when being loaded into the hardware. One such carrier may be in the form of a CD ROM disc. It is however feasible with other data carriers such as a memory stick. The computer program code may furthermore be provided as pure program code on the RD device 120 or the CCCD 110 or the network 100, and downloaded to the hardware at production, and / or during software updates.

[0146] The disclosure herein provides methods and apparatus (e.g. the RD device 120 and / or the CCCD 110) for handling DNS records in a constrained environment / constrained network. In several embodiments of the disclosure, the RD device 120 maintains an entry of DNS records for resources and / or operates as a relay for DNS queries from a constrained endpoint such as the CCCD 110. The disclosure advantageously provides a means for merging resource discovery and DNS resolution into one operation which leads to optimization of processes in constrained environments. The disclosure is especially effective for mobile CoAP endpoints such as CoAP servers and CoAP clients, for which IP addresses frequently change. In several embodiments, the disclosure may potentially be implemented through a new extension link parameter for DNS records, called ext-dns-record, and / or by having the RD device 120 act as a DNS relay, both of which are based on IETF RFC 5988 and IETF RFC 6690. In several embodiments of the disclosure, the RD device 120 and / or the CCCDs 110a, 110b, 110c use CoAP observe option as defined in IETF RFC 7641 to register for DNS record updates and push the updates towards the CCCDs 110a, 110b, 110c, which can speed up DNS resolution queries.

[0147] The CCCDs 110a, 110b, 110c may be a device capable of sending and / or receiving a CoAP request to another CCCD or an RD device 120. The RD device 120 may be capable of working as a cache / storage for DNS records and / or the RD device 120 may be capable of relaying messages between the CCCDs 110a, 110b, 110c and the DNS server node 130. The RD device 120 may be capable of maintaining an up-to-date collection / record / entry of DNS records of resources, CoAP links and CoAP resources. The DNS Server node 130 may be capable of converting a hostname or a URI into a corresponding IP address. The RD device 120 is capable of communicating with the DNS Server node 130 for fetching a requested DNS record of a resource.

[0148] The prior art discloses that DNS resolution of a URI or a hostname into a DNS record is currently based on polling. However, DNS resolution based on polling considers resources to have a static IP address or a pre-configured IP address. With IPv6 addressing, IP addresses for resources are constantly changing. Thus, a method of polling for DNS resolution is not optimal and may be resource intensive. For CCCDs 110a, 110b, 110c, the IP addresses are considered to be dynamic (as opposed to static) and thus, DNS resolution based on polling is neither optimal nor resource efficient. The disclosure herein provides, methods such as the method 300 and the method 400, apparatus such as the CCCD 110, the RD device 120, the communication network 100, for resolution or resolving of a URI or a hostname of a resource into a corresponding DNS record.

[0149] Although the RD device 120 and / or the CCCD 110 have been used in the above embodiments, a person skilled in the art understands that the RD device 120 and / or the CCCD 110 may also be a UE, an Internet of Things (loT) device, a virtual machine, a cloud-computing node, an edge node, any electronic device with a network interface chip, a network management node, Operations Sub-System (OSS), Network Management System (NMS) and a 2G / 3G / 4G / 5G / 6G network node.

[0150] The RD device 120 or the CCCD 110 in the form of an loT device may be a device for use in one or more application domains, these domains comprising, but not limited to, home, city, wearable technology, extended reality, industrial application, and healthcare.

[0151] By way of example, the loT device for a home, an office, a building or an infrastructure may be a baking scale, a coffee machine, a grill, a fridge, a refrigerator, a freezer, a microwave oven, an oven, a toaster, a water tap, a water heater, a water geyser, a sauna, a vacuum cleaner, a washer, a dryer, a dishwasher, a door, a window, a curtain, a blind, a furniture, a light bulb, a fan, an air-conditioner, a cooler, an air purifier, a humidifier, a speaker, a television, a laptop, a personal computer, a gaming console, a remote control, a vent, an iron, a steamer, a pressure cooker, a stove, an electric stove, a hair dryer, a hair styler, a mirror, a printer, a scanner, a photocopier, a projector, a hologram projector, a 3D printer, a drill, a hand-dryer, an alarm clock, a clock, a security camera, a smoke alarm, a fire alarm, a connected doorbell, an electronic door lock, a lawnmower, a thermostat, a plug, an irrigation control device, a flood sensor, a moisture sensor, a motion detector, a weather station, an electricity meter, a water meter, and a gas meter.

[0152] By further ways of example, the loT device for use in a city, urban, or rural areas may be connected street lighting, a connected traffic light, a traffic camera, a connected road sign, an air control / monitor, a noise level detector, a transport congestion monitoring device, a transport controlling device, an automated toll payment device, a parking payment device, a sensor for monitoring parking usage, a traffic management device, a digital kiosk, a bin, an air quality monitoring sensor, a bridge condition monitoring sensor, a fire hydrant, a manhole sensor, a tarmac sensor, a water fountain sensor, a connected closed circuit television, a scooter, a hoverboard, a ticketing machine, a ticket barrier, a metro rail, a metro station device, a passenger information panel, an onboard camera, and other connected device on a public transport vehicle.

[0153] As further way of example, the loT device may be a wearable device, or a device related to extended reality, wherein the device related to extended reality may be a device related to augmented reality, virtual reality, merged reality, or mixed reality. Examples of such loT devices may be a smart-band, a tracker, a haptic glove, a haptic suit, a smartwatch, clothes, eyeglasses, a head mounted display, an ear pod, an activity monitor, a fitness monitor, a heart rate monitor, a ring, a key tracker, a blood glucose meter, and a pressure meter.

[0154] As further ways of example, the loT device may be an industrial application device wherein an industrial application device may be an industrial unmanned aerial vehicle, an intelligent industrial robot, a vehicle assembly robot, and an automated guided vehicle.

[0155] As further ways of example, the loT device may be a transportation vehicle, wherein a transportation vehicle may be a bicycle, a motor bike, a scooter, a moped, an auto rickshaw, a rail transport, a train, a tram, a bus, a car, a truck, an airplane, a boat, a ship, a ski board, a snowboard, a snow mobile, a hoverboard, a skateboard, roller-skates, a vehicle for freight transportation, a drone, a robot, a stratospheric aircraft, an aircraft, a helicopter and a hovercraft.

[0156] As further ways of example, the loT device may be a health or fitness device, wherein a health or fitness device may be a surgical robot, an implantable medical device, a non-invasive medical device, and a stationary medical device which may be: an in-vitro diagnostic device, a radiology device, a diagnostic imaging device, and an x-ray device.

Claims

CLAIMS1 . A method (200) performed by a Resource Directory, RD, device (120), the method comprising: receiving (205; 510) from a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b; 110c); checking (210) whether the RD device (120) comprises a corresponding DNS record entry for the resource, which corresponding DNS record entry corresponds to the DNS record requested in the first request; and if the RD device (120) comprises the corresponding DNS record entry, transmitting (215; 520) to the CCCD (110a), a second message comprising information of the DNS record entry; or if the RD device (120) does not comprise the corresponding DNS record entry, performing (220; 530; 540; 550) a DNS resolution for the resource; storing (225), in the RD device (120), a DNS record obtained from the DNS resolution; and transmitting (230; 560) to the CCCD (110a), a third message comprising a DNS entry of the stored DNS record.

2. The method according to claim 1 , comprising receiving (235; 610) from the CCCD (110a), a fourth message comprising a second request to register for a change in the DNS record for the resource.

3. The method according to claim 2, comprising transmitting (240; 650) to the CCCD (110a), a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS record entry or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

4. The method according to claims 1-3, comprising: performing (245) resource discovery of the resource; and transmitting (250) to the CCCD (110a) in the second message or the third message, information related to performed resource discovery for the resource.

5. The method according to claims 1 -4, comprising: creating (255) a new resource for storing information related to a DNS record for the resource in the RD device, wherein the new resource comprises information comprising the DNS record entry or the DNS entry of the stored DNS record, and a Resource Record Signature, RRSig, comprising a digital signature associated to the DNS record entry or the DNS entry of the stored DNS record; and receiving (260), from a DNS server node (130), the information related to the DNS record for the resource.

6. The method according to claims 1 -5, performing (265) a lookup in the RD device for the resource based on the received first message.

7. The method according to claims 1 -6, wherein the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by Internet Engineering Task Force, IETF, Request for Comments, RFC, 2616.

8. A method (300) performed by a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), the method comprising: transmitting (305; 510), to a Resource Directory, RD, device (120), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b; 110c); and receiving (310; 560) from the RD device (120), a second message comprising information of a DNS entry of the DNS record of the resource.

9. The method according to claim 8, comprising transmitting (315; 610), to the RD device, a fourth message comprising a second request to register for a change in the DNS record for the resource.

10. The method according to claim 9, comprising receiving, (320; 650), from the RD device, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

11. The method according to claim 8-10, comprising receiving (325), from the RD device in the second message, information related to resource discovery for the resource.

12. The method according to claims 8-11 , wherein the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by Internet Engineering Task Force, IETF, Request for Comments, RFC, 2616.

13. A method (200; 300) performed by a communication network (100), the communication network (100) comprising a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), and a Resource Directory, RD, device (120), the method comprising: receiving (205; 510), at the RD device (120) from the CCCD, (110a), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b;110c); checking (210) whether the RD device (120) comprises a corresponding DNS record entry for the resource, which corresponding DNS record entry corresponds to the DNS record requested in the first request; and if the RD device (120) comprises the corresponding DNS record entry, transmitting (215; 520), from the RD device (120) to the CCCD (110a), a second message comprising information of the DNS record entry; or if the RD device (120) does not comprise the corresponding DNS record entry, performing (220; 530; 540; 550) a DNS resolution for the resource;storing (225), in the RD device (120), a DNS record obtained from the DNS resolution; and transmitting (230; 560), from the RD device (120) to the CCCD (110a), a third message comprising a DNS entry of the stored DNS record.

14. A Resource Directory, RD, device (120), the RD device adapted to: receive (205; 510) from a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b; 110c); check (210) whether the RD device (120) comprises a corresponding DNS record entry for the resource which corresponding DNS record entry corresponds to the DNS record requested in the first request; and if the RD device (120) comprises the corresponding DNS record entry, transmit (215; 520) to the CCCD (110a), a second message comprising information of the DNS record entry; or if the RD device (120) does not comprise the corresponding DNS record entry, perform (220; 530; 540; 550) a DNS resolution for the resource; store (225), in the RD device (120), a DNS record obtained from theDNS resolution; and transmit (230; 560) to the CCCD (110a), a third message comprising a DNS entry of the stored DNS record.

15. The RD device according to claim 14, adapted to receive (235; 610) from the CCCD (110a), a fourth message comprising a second request to register for a change in the DNS record for the resource.

16. The RD device according to claim 15, adapted to transmit (240; 650) to the CCCD (110a), a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS record entry or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

17. The RD device according to claims 14-16, adapted to: perform (245) resource discovery of the resource; and transmit (250), to the CCCD (110a) in the second message or the third message, information related to performed resource discovery for the resource.

18. The RD device according to claims 14-17, adapted to: create (255) a new resource for storing information related to a DNS record for the resource in the RD device, wherein the new resource comprises information comprising the DNS record entry or the DNS entry of the stored DNS record, and a Resource Record Signature, RRSig, comprising a digital signature associated to the DNS record entry or the DNS entry of the stored DNS record; and receive (260), from a DNS server node (130), the information related to the DNS record for the resource.

19. The RD device according to claims 14-18, perform (265) a lookup in the RD device for the resource based on the received first message.

20. The RD device (120) according to claims 14-19, wherein the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by Internet Engineering Task Force, IETF, Request for Comments, RFC, 2616.21 .A Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), the CCCD (110a) adapted to: transmit (305; 510), to a Resource Directory, RD, device (120), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b; 110c); and receive (310; 560), from the RD device (120), a second message comprising information of a DNS entry of the DNS record of the resource.

22. The CCCD according to claim 21 , adapted to transmit (315; 610), to the RD device (120), a fourth message comprising a second request to register for a change in the DNS record for the resource.

23. The CCCD according to claim 22, adapted to receive (320; 650), from the RD device, a fifth message comprising an updated DNS entry of the DNS record of the resource, if the DNS entry of the DNS record or the DNS entry of the stored DNS record of the resource changes, or a specified time interval has elapsed.

24. The CCCD according to claims 21-23, adapted to receive (325), from the RD device in the second message, information related to resource discovery for the resource.

25. The CCCD according to claims 21-24, wherein the entry of the DNS record comprises an IP address of the resource or the DNS entry of the stored DNS record comprises an IP address of the resource and / or the resource comprises a resource as defined by Internet Engineering Task Force, IETF, Request for Comments, RFC, 2616.

26. A communication network (100) comprising a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), and a Resource Directory, RD, device (120), the communication network adapted to: receive (205; 510), at the RD deice from the CCCD (110a), a first message comprising a first request for a Domain Name System, DNS, record of a resource made available through the CCCD (110a) or another CCCD (110b; 110c); check (210) whether the RD device (120) comprises a corresponding DNS record entry for the resource, which corresponding DNS record entry corresponds to the DNS record requested in the first request; and if the RD device (120) comprises the corresponding DNS record entry, transmit (215; 520), from the RD device (120) to the CCCD (110a), a second message comprising information of the DNS record entry; or if the RD device (120) does not comprise the corresponding DNS record entry,perform (220; 530; 540; 550) a DNS resolution for the resource; store (225), in the RD device (120), a DNS record obtained from theDNS resolution; transmit (230; 560), from the RD device (120) to the CCCD (110a), a third message comprising a DNS entry of the stored DNS record.

27. A Resource Directory, RD, device (120), the RD device comprising: at least one processing circuitry (702); and at least one memory (710) connected to the at least one processing circuitry and storing program code (920) that is executed by the at least one processing circuitry to perform the method according to any one of claims 1 to 7.

28. A Constrained Application Protocol, CoAP, compatible communication device, CCCD (110a; 110b; 110c), the CCCD comprising: at least one processing circuitry (802); and at least one memory (810) connected to the at least one processing circuitry and storing program code (920) that is executed by the at least one processing circuitry to perform the method according to any one of claims 8 to 12.

29. A communication network (100) comprising a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a), and a Resource Directory, RD, device (120), the communication network comprising: at least one processing circuitry (702; 802); and at least one memory (710; 810) connected to the at least one processing circuitry and storing program code (920) that is executed by the at least one processing circuitry to perform the method according to claim 13.

30. A computer program (920) comprising instructions which, when executed: by at least one processing circuitry (702) of a Resource Directory, RD, device (120) causes the RD device to carry out the method according to claims 1 to 7; by at least one processing circuitry (802) of a Constrained Application Protocol, CoAP, compatible communication device, CCCD, (110a; 110b; 110c) causes the CCCD to carry out the method according to claims 8 to 12; and / orby at least one processing circuitry (702; 802) of a communication network (100) causes the communication network to carry out the method according to claim 13. 31 .A computer program product (910) stored on a non-transitory computer readable medium (710) or on a non-transitory computer readable medium (810) and comprising program code (920) that, when executed: by at least one processing circuitry (702) of a Resource Directory, RD, device (120) causes the RD device to carry out the method according to claims 1 to 7; by at least one processing circuitry (802) of a Constrained ApplicationProtocol, CoAP, compatible communication device, CCCD, (110a; 110b; 110c) causes the CCCD to carry out the method according to claims 8 to 12; and / or by at least one processing circuitry (702; 802) of a communication network (100) causes the communication network to carry out the method according to claim 13.

Citation Information

Patent Citations

  • Node, Another Node, and Methods Performed Thereby for Supporting Domain Name System Over Constrained Application Protocol

    US20210067482A1