Router and method for connecting an IPv4 network and an IPv6 network
10637825 ยท 2020-04-28
Assignee
Inventors
Cpc classification
H04L69/167
ELECTRICITY
International classification
Abstract
The present disclosure discloses a method (400) performed by a router connected to an IPv6 network and an IPv4 network. The method comprises receiving (S410), from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network, and obtaining (S420) from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource. The first resource directory comprises a name, a local IPv6 address and a local IPv6 port for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number. The method (400) further comprises creating (S430) an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource. The entry comprises the external IPv4 address, the external IPv4 port number, the local IPv6 address and the local IPv6 port number for the IPv6 network resource, and a local IPv4 address and a local IPv4 port for the IPv4 compliant device. The method further comprises transmitting (S440) the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
Claims
1. A method performed by a router connected to an Internet Protocol Version 6 (IPv6) network and an Internet protocol Version 4 (IPv4) network, the method comprising: receiving, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network; obtaining from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource, the first resource directory comprising a name, a local IPv6 address, and a local IPv6 port, for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number; creating an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource, the entry comprising the external IPv4 address, the external IPv4 port number, the local IPv6 address and the local IPv6 port number for the IPv6 network resource, and a local IPv4 address and a local IPv4 port for the IPv4 compliant device; and transmitting the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
2. The method of claim 1, wherein the external IPv4 address is an IPv4 address of the router.
3. The method of claim 1, wherein, before receiving the request for the IPv6 network resource, the method further comprises: storing the external IPv4 address and the external IPv4 port number corresponding to the IPv6 network resource in the first resource directory.
4. The method of claim 1, further comprising storing in the entry the local IPv4 address and the local IPv4 port number of the IPv4 compliant device.
5. The method of claim 1, further comprising: receiving, from the IPv4 compliant device, one or more packets destined to the external IPv4 address and the external IPv4 port; and forwarding the one or more packets to the local IPv6 address and the local IPv6 port of the IPv6 network resource.
6. The method of claim 1, wherein the method further comprises, before receiving the request for the IPv6 network resource: receiving, from the IPv4 compliant device, a request to discover IPv6 network resources in the IPv6 network; and transmitting information about at least one of the IPv6 network resources to the IPv4 compliant device.
7. The method of claim 1, wherein the IPv6 network resource is indicated in a link format in the first resource directory.
8. The method of claim 1, wherein the first resource directory has a first identifier, and the method further comprises transmitting the first identifier to the IPv4 compliant device.
9. The method of claim 8, wherein the first identifier is transmitted to the IPv4 compliant device in a Hypertext Transfer Protocol, HTTP, message or a Constrained Application Protocol, CoAP, message.
10. A router for connecting an Internet Protocol Version 6 (IPv6) network and an Internet Protocol Version 4 (IPv4) network, the router comprising: a processor; and a memory storing instructions configured so that when executed on the processor, the instructions cause the router to: receive, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network; obtain from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource, the first resource directory comprising a name, a local IPv6 address, and a local IPv6 port, for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number; create an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource, the entry comprising the external IPv4 address, the external IPv4 port number, the local IPv6 address and the local IPv6 port number for the IPv6 network resource, and a local IPv4 address and a local IPv4 port for the IPv4 compliant device; and transmit the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
11. The router of claim 10, wherein the external IPv4 address is an IPv4 address of the router.
12. The router of claim 10, wherein the instructions are further configured so as to cause the router to, before receiving the request for the IPv6 network resource, store the external IPv4 address and the external IPv4 port number corresponding to the IPv6 network resource in the first resource directory.
13. The router of claim 10, wherein the instructions are further configured so as to cause the router to store in the entry the local IPv4 address and the local IPv4 port number of the IPv4 compliant device.
14. The router of claim 10, wherein the instructions are further configured so as to cause the router to: receive, from the IPv4 compliant device, one or more packets destined to the external IPv4 address and the external IPv4 port; and forward the one or more packets to the local IPv6 address and the local IPv6 port of the IPv6 network resource.
15. The router of claim 10, wherein the instructions are further configured so as to cause the router to, before receiving the request for the IPv6 network resource, receive, from the IPv4 compliant device, a request to discover IPv6 network resources in the IPv6 network; and transmit information about at least one of the IPv6 network resources to the IPv4 compliant device.
16. The router of claim 10, wherein the IPv6 network resource is indicated in a link format in the first resource directory.
17. The router of claim 10, wherein the first resource directory has a first identifier, and wherein the instructions are further configured so as to cause the router to transmit the first identifier to the IPv4 compliant device.
18. The router of claim 17, wherein the first identifier is transmitted to the IPv4 compliant device in a Hypertext Transfer Protocol, HTTP, message or a Constrained Application Protocol, CoAP, message.
19. The router of claim 17, wherein the first identifier is a part of the link format for the IPv6 network resource.
20. A non-transitory computer-readable medium comprising, stored thereupon, a computer program product comprising a computer program, wherein the computer program comprises instructions configured so that, when executed on a router connected to an Internet Protocol Version 6 (IPv6) network and an Internet protocol Version 4 (IPv4) network, the instructions configure the router to: receive, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network; obtain from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource, the first resource directory comprising a name, a local IPv6 address, and a local IPv6 port, for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number; create an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource, the entry comprising the external IPv4 address, the external IPv4 port number, the local IPv6 address and the local IPv6 port number for the IPv6 network resource, and a local IPv4 address and a local IPv4 port for the IPv4 compliant device; and transmit the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10) Hereinafter, the present disclosure is described with reference to embodiments shown in the attached drawings. However, it is to be understood that those descriptions are just provided for illustrative purpose, rather than limiting the present disclosure. Further, in the following, descriptions of known structures and techniques are omitted so as not to unnecessarily obscure the concept of the present disclosure.
(11)
(12) As shown in
(13) Furthermore, a RD and a network address translator are integrated into the router 100. The RD is used as a repository for IoT resources of the IPv6 network 110 and implements the Representational State Transfer (REST) interfaces for registration, distribution, and lookup, of those resources. Having the RD located in the router gives the possibility for nodes or devices in the IPv4 network 120 (e.g., IPv4 compliant device 130) to discover different resources in the IPv6 network 110. It should be noted that resources in the IPv6 network here may be also referred to as IPv6 network resources enabled or provided by an IPv6 compliant device, e.g., the IPv6 compliant device 140 or 150 as shown in
(14) As shown in
(15)
(16) As shown in
(17) The external IPv4 address and port refers to the (external) IP address of the IPv6 compliant device in the IPv4 network. This external IPv4 address is used by the IPv4 compliant device in the IPv4 network to communicate with the IPv6 compliant device or, more specifically, to its network resources. The external IPv4 address and port may be assigned by the router to the IPv6 compliant device. Additionally, there is also the IPv6 internal address and port defined herein to refer to the IP address and port of the IPv4 compliant device in the IPv6 network. The internal IPv6 address is used by the IPv6 compliant device in the IPv6 network to communicate with the IPv4 compliant device outside the IPv6 network. Furthermore, an IPv4 address and port (without external as prefix) refers to the local IP address of the IPv4 compliant device in the IPv4 network, so may be also called as a local IPv4 address and port. Similarly, IPv6 address and port (without external as prefix) refers to the local IP address and port of the IPv6 compliant device in the IPv6 network, so may be also called as a local IPv6 address and port.
(18) For example, as shown in
(19) Moreover, the router 100 may store the IPv6 address and IPv6 port number of the IPv6 compliant device 140 and the external IPv4 address and external IPv4 port number of the IPv6 compliant device 140 in an entry of the RD table. As well, the router may store the IPv4 address and IPv4 port number of the IPv4 compliant device 130, the IPv6 address and the IPv6 port number of the IPv6 compliant device 140, the external IPv4 address and external IPv4 port number of the IPv6 compliant device 140, and the internal IPv6 address and internal IPv6 port number of the IPv4 compliant device 130 in and entry of the NAT table.
(20) In an implementation, the external IPv4 address here may be an IPv4 address of the router, and correspondingly the external IPv4 port may be an IPv4 port of the router.
(21)
(22) As shown in
(23)
(24) The RD/Router keeps some IPv4 and/or ports free for dynamic network address translations. The router can use those free addresses in case there is a basic NAT one-to-one communication between the nodes in the IPv6 and IPv4 networks. Consequently, the router can still provide normal network address translation (NAT) while the IoT resources behind the router are still reachable by the public Internet. Note that normal NAT only enables connections initiated from the constrained network to the public internet.
(25)
(26) At step S410, the router receives, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network. Taking the scenario in
(27) At step S420, the router obtains from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource. The first resource directory comprises a name, an IPv6 address, and an IPv6 port, for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number. For example, the first resource directory may comprise the RD table as shown in the upper portion of
(28) In an implementation, the external IPv4 address may be an IPv4 address of the router.
(29) In another implementation, before step S410, the method 400 may further comprise storing the external IPv4 address and the external IPv4 port number corresponding to the IPv6 network resource in the first resource directory (not shown).
(30) In yet another implementation, the method 400 may further comprising storing in the entry the IPv4 address and the IPv4 port number of the IPv4 compliant device (not shown).
(31) At step S430, the router creates an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource. The entry comprises the external IPv4 address, the external IPv4 port number, the IPv6 address and the IPv6 port number for the IPv6 network resource, the IPv4 address and an IPv4 port for the IPv4 compliant device and the internal IPv6 address and the IPv6 port number for the IPv4 compliant device. For example, the network address translation table may be represented by the NAT table in the lower portion of
(32) At step S440, the router transmits the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
(33) Optionally, the method 400 may further comprise steps S450 and S460 as shown in
(34) At step S450, the router receives, from the IPv4 compliant device, one or more packets destined to the external IPv4 address and external IPv4 port.
(35) At step S460, the router forwards the one or more packets to the IPv6 address and the IPv6 port of the IPv6 network resource.
(36) Before step S410, the method 400 may optionally comprise steps S401 and S402 as shown in
(37) At step S401, the router receives, from the IPv4 compliant device, a request to discover IPv6 network resources in the IPv6 network. The router may receive the network resources of the IPv6 network from the RD.
(38) At step S402, the router transmits information about at least one of the IPv6 network resources to the IPv4 compliant device.
(39) With the method 400, the present disclosure allows an IPv4 compliant device to establish communications with an IPv6 compliant device behind a NAT. That is, the method 400 provides means for an IPv4 network to discover IoT resources of an IPv6 network that is behind a NAT.
(40) In an implementation, the first resource directory has a first identifier. The method 400 may further comprise an optional step of transmitting the first identifier to the IPv4 compliant device (not shown). In such an implementation, for example, the first identifier may be transmitted to the IPv4 compliant device in an HTTP message or a CoAP message. The use of the first identifier can differentiate a RD among several RDs having the same link format for different resources.
(41)
(42) Initially, the IPv6 compliant devices 140 and 150 in the IPv6 network 110 register their resources to the router, e.g., in the RD. In particular, the IPv6 compliant device 140 registers its resource with link format sensors/temp1 (operation 710). After the registration, the router generates an ID and assigns an IPv4 address and unallocated port to the resource (operation 720). The corresponding information of the resource would be <4521, sensors/temp1, 74.12.43.10, 61616, FE80::8329>. The IPv6 compliant device 150 does the same and registers its resource with link format sensors/temp2 (operation 730). The router generates another ID and assigns a different IPv4 address and port for that resource and stores it in the RD table, e.g., as shown in
(43) Thereafter, there is a node from the IPv4 network (e.g., the IPv4 compliant device 130) wants to discover resources of the IPv6 network 110 by requesting a /.well-known/core (operation 750) to the RD. The router sends back all the resources of the IPv6 network in a payload message (operation 760) and then the node decides to lookup for the IP information of the resource with web link format sensors/temp1 (operation 770). The router returns the IP information of that resource (<coap://74.12.43.10:61616/sensors/temp1>) but instead of providing the IPv6 address to the node, the router provides the IPv4 address and port assigned to that resource in the RD table (operation 780). Thereby, the router will be responsible to route the message from the IPv4 address and port combination 74.12.43.10:61616 to the right node in the constrained network and vice versa.
(44) Each time there is a packet from the IPv4 network with a destination address/port matching with an entry in the NAT table, e.g., as shown in
(45) The traffic is then routed using the NAT table. For an IPv4 packet received, an IPv6 packet is generated with the same contents but with the destination address of the address from the NAT table. The source address is the IPv6 address of the router. The IPv6 compliant device sees the traffic as if it was coming from the router, thus, also replies to messages will be sent back to the router. For returning packets, the router again consults the NAT table, extracting the corresponding IPv4 address and port, and generates an IPv4 packet sent to the IPv4 address in the NAT table. In this way, the network address translation is transparent to both the IPv4 compliant device and the IPv6 compliant device.
(46) Under some circumstances, an IPv4 network could have several IPv6 networks attached to it. In this situation, every IPv6 network would have its own RD in its router and, eventually, a node in the IPv4 network will not be able to differentiate from which IPv6 network the resources belong to. Besides that, if two different IPv6 networks happen to have two resources with the same resource name, the nodes in the IPv4 networks will not be able to differentiate to which node they are communicating with.
(47) In consideration of this situation, the present disclosure proposes to make each RD have a unique identifier to differentiate resources within their networks. The identifier could be chosen from the unique MAC address of the route or randomly selected by a network administrator. The RD could replace the link format of a resource with the unique identifier of the router, e.g., replacing sensors/temp1 with [08:00:34:12:11:34]/sensors/temp1. Alternatively, the unique identifier of the RD may be comprised inside responses of messages, for instance:
(48) TABLE-US-00001 Req: GET coap://.well-known/core Res: 2.05 Content </rd>;id=08:00:69:02:01:FC, </sensors/temp>;ct=41;rt=temperature-c;if=sensor, </sensors/light>;ct=41;rt=light-lux;if=sensor
(49) In the example above, the </rd> includes the unique identifier of the RD. Although the above example is explained by taking a CoAP message as an example, it would be appreciated by those skilled in the art that an HTTP message or any other appropriate message could be used here for signaling the unique identifier.
(50)
(51) The operations for an IPv4 compliant device discovering resources of an IPv6 network are similar to operation 750 as illustrated in
(52) At operation 820, each RD sends, to the IPv4 compliant device, the information assigned to the resources in the RD table as well as a unique identifier of the RD.
(53) As an example, RD1 may send the following information to the IPv4 compliant device:
(54) TABLE-US-00002 </rd>;id=08:00:69:02:01:FC , </sensors/temp1>; rt=temperature-c;if=sensor, </sensors/temp2>; rt= temperature-c;if=sensor
(55) As another example, RD2 may send information to the IPv4 compliant device as follows:
(56) TABLE-US-00003 </rd>;id=06:00:00:09:FF:F0 , </sensors/temp1>; rt=temperature-c;if=sensor
(57) In this case, the IPv4 compliant device is able to differentiate the resources because the messages send by both RDs comprise respective unique identifier in the </rd> field. Thus, the IPv4 compliant device that receives resources with the same name from different RDs will be able to differentiate them.
(58)
(59) The part of the router 900 which is most affected by the adaptation to the herein described method, e.g., the method 400, is illustrated as an arrangement 901, surrounded by a dashed line. The router 900 and arrangement 901 are further configured to communicate with other entities such as an IPv4 compliant device or an IPv6 compliant device via a communication unit 902 which may be regarded as part of the arrangement 901. The communication unit 902 comprises means for wireless communication. The arrangement 901 or the router 900 may further comprise other functional units 904, such as functional units providing regular routing functions, and may further comprise one or more memories 903.
(60) The arrangement 901 could be implemented, e.g., by one or more of: a processor or a microprocessor and adequate software and memory for storing of the software, a Programmable Logic Device (PLD), or other electronic component(s) or processing circuitry configured to perform the actions described above, and illustrated, e.g., in
(61) Referring to
(62) The receiving unit 910 is configured to receive, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network.
(63) The obtaining unit 920 is configured to obtain from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource. The first resource directory comprises a name, an IPv6 address, and an IPv6 port, for the IPv6 network resource, the external IPv4 address, and the external IPv4 port number, e.g., as shown in the upper portion of
(64) In an implementation, the external IPv4 address may be an IPv4 address of the router.
(65) In another implementation, the first storing unit 950 is configured to store the external IPv4 address and the external IPv4 port number corresponding to the IPv6 network resource in the first resource directory, before receiving the request for the IPv6 network resource.
(66) In yet another implementation, the second storing unit is configured to store the IPv4 address and the IPv4 port number of the IPv4 compliant device.
(67) The creating unit 930 is configured to create an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource. The entry comprises the external IPv4 address, the external IPv4 port number, the IPv6 address and the IPv6 port number for the IPv6 network resource, and an IPv4 address and an IPv4 port for the IPv4 compliant device, e.g., as shown in
(68) In an implementation, the entry comprises an internal IPv6 address and an internal IPv6 port for the IPv6 network resource. Alternatively, the entry in the network address translation table comprises an external IPv4 address and an external IPv4 port for the IPv6 network resource.
(69) In an implementation, the first resource directory and the network address translation table may be comprised in the router, e.g., as shown in
(70) The transmitting unit 940 is configured to transmit the external IPv4 address and the external IPv4 port number to the IPv4 compliant device.
(71) In an implementation, the receiving unit 910 is further configured to receive, from the IPv4 compliant device, one or more packets destined to the IPv4 external address and the IPv4 external port. In this implementation, the transmitting unit 940 is further configured to forward the one or more packets to the IPv6 address and the IPv6 port of the IPv6 network resource.
(72) In another implementation, the receiving unit 910 is further configured to receive, from the IPv4 compliant device, a request to discover IPv6 network resources in the IPv6 network, before receiving the request for the IPv6 network resource. In such an implementation, the transmitting unit 940 is further configured to transmit information about at least one of the IPv6 network resources to the IPv4 compliant device.
(73) In yet another implementation, the first resource directory has a first identifier. In this case, the transmitting unit 940 is further configured to transmit the first identifier to the IPv4 compliant device.
(74) As an example of this implementation, the first identifier may be transmitted to the IPv4 compliant device in an HTTP message or a CoAP message. Alternatively, the first identifier may be a part of the link format for the IPv6 network resource.
(75) As another example of this implementation, the router is connected to at least one further IPv6 network and comprises a second resource directory of IPv6 network resources in the further IPv6 network. Moreover, the second resource directory has a second identifier being different from the first identifier. Then, the first resource directory may be differentiated from the second resource directory.
(76) It should be noted that two or more different units in this disclosure may be logically or physically combined. For example, the receiving unit 910 and the transmitting unit 940 may be combined as one single unit, e.g., a transceiver in the router.
(77)
(78) Furthermore, the at least one computer program product 1008 may be in the form of a non-volatile or volatile memory, e.g., an Electrically Erasable Programmable Read-Only Memory (EEPROM), a flash memory, and a hard drive. The computer program product 1008 comprises a computer program 1010, which comprises code/computer readable instructions, which when executed by the processing unit 1006 in the arrangement 1000 causes the arrangement 1000 and/or the router in which it is comprised to perform the actions, e.g., of the procedure described earlier in conjunction with
(79) The computer program 1010 may be configured as a computer program code structured in computer program modules 1010A-1010F. Hence, in an exemplifying embodiment when the arrangement 1000 is used in the router 900, the code in the computer program of the arrangement 1000 comprises a receiving module 1010A, for receiving, from an IPv4 compliant device connected to the IPv4 network, a request for an IPv6 network resource enabled by an IPv6 compliant device connected to the IPv6 network. The code in the computer program 1010 further comprises an obtaining module 10106, for obtaining from a first resource directory an external IPv4 address and an external IPv4 port number corresponding to the IPv6 network resource. The first resource directory comprises a name, an IPv6 address and an IPv6 port for the IPv6 network resource, and the external IPv4 address, and the external IPv4 port number. The code in the computer program 1010 may further comprise a creating module 1010C, for creating an entry in a network address translation table for enabling communication between the IPv4 compliant device and the IPv6 network resource. The entry comprises the external IPv4 address, the external IPv4 port number, the IPv6 address and the IPv6 port number for the IPv6 network resource, and an IPv4 address and an IPv4 port for the IPv4 compliant device. The code in the computer program 1010 may further comprise a transmitting module 1010D, for transmitting the external IPv4 address and the external IPv4 port number to the IPv4 compliant device. The code in the computer program 1010 may further comprise a transmitting module 1010E, for storing the external IPv4 address and the external IPv4 port number corresponding to the IPv6 network resource in the first resource directory, before receiving the request for the IPv6 network resource, or for storing the IPv4 address and IPv4 port number of the IPv4 compliant device.
(80) The code in the computer program 1010 may comprise further modules, illustrated as module 1010F, e.g. for controlling and performing other related procedures associated with the router's operations.
(81) The computer program modules could essentially perform the actions of the flow illustrated in
(82) Although the code means in the embodiments disclosed above in conjunction with
(83) The processor may be a single CPU, but could also comprise two or more processing units. For example, the processor may comprise general purpose microprocessors; instruction set processors and/or related chips sets and/or special purpose microprocessors such as Application Specific Integrated Circuits (ASICs). The processor may also comprise board memory for caching purposes. The computer program may be carried by a computer program product connected to the processor. The computer program product may comprise a computer readable medium on which the computer program is stored. For example, the computer program product may be a flash memory, a Random-access memory (RAM), a Read-Only Memory (ROM), or an EEPROM, and the computer program modules described above could in alternative embodiments be distributed on different computer program products in the form of memories within the router.
(84) The present disclosure is described above with reference to the embodiments thereof. However, those embodiments are provided just for illustrative purpose, rather than limiting the present disclosure. The scope of the disclosure is defined by the attached claims as well as equivalents thereof. Those skilled in the art can make various alternations and modifications without departing from the scope of the disclosure, which all fall into the scope of the disclosure.
ABBREVIATIONS
(85) 6LoWPAN IPv6 over Low power Wireless Personal Area Networks ASIC Application Specific Integrated Circuit CoAP Constrained Application Protocol CPU Central processing unit DSP Digital Signal Processor EEPROM Electrically Erasable Programmable Read-Only Memory HTTP Hypertext Transfer Protocol IETF Internet Engineering Task Force IoT Internet of Things IP Internet Protocol IPv4 Internet Protocol Version 4 IPv6 Internet Protocol Version 6 NAT Network Address Translation ND Neighbor Discovery PLD Programmable Logic Device RAM Random-Access Memory RD Resource Directory REST Representational State Transfer ROM Read-Only Memory UDP User Datagram Protocol