## 2 Named Data Networking and Its Role in IoT Smart Environments
### NDN in Smart Environments  
The potential of NDN in IoT smart environments has been widely recognized in the literature [17; 18]. Indeed, NDN well matches the pattern of many IoT applications that focus on the data itself (e.g., the temperature in a room and the average speed of vehicles in a road segment) rather than on a specific data producer. The NDN interest/data exchange can be used to support a variety of monitoring services by directly using application-level names [19]: requests for monitored parameters can be carried in interest packets; at the reception of the interest, a provider can send the data back. In-network caching and request aggregation natively reduce the traffic load and the number of accesses to the original producer; this is especially useful when providers are resource-constrained IoT devices.  
NDN communication can also support actuation services, e.g., to switch on/off lights [20; 21]: in this case, specific named commands can be carried in the interest packets that are forwarded towards the things in charge of executing them. A data packet can be sent back to acknowledge the command execution.  
According to References [17; 19], NDN names for smart environments can be conveniently structured in three main parts. First, a main prefix should be identified that specifically refers to the IoT domain, e.g., \(/unirc\). The main prefix can be advertised by the routing protocol and maintained in the FIBs of network core nodes to allow the reachability of the IoT domain from remote consumers. If the IoT domain is large, e.g., a university campus, other subcomponents of the domain name can be specified, e.g., \(/eng/buildingA/telcolab\) identifies a specific laboratory in a given building of a certain faculty. Second, a set of middle components can be defined to identify the IoT data (e.g., \(/temperature\), the thing, or the actuation command (e.g., \(/light/on\)). Finally, a last optional component can identify the specific instance of the data, e.g., \(/2019031430\). Therefore a name like \(/unirc/eng/buildingA/telcolab/temperature/2019031430\) uniquely identifies a temperature value sensed on 3 March 2019 at 14:40 in the Telco Laboratory of the Engineering Faculty at the University of Reggio Calabria.  
Last but not least, NDN communication in smart environments can leverage a strong per-packet authentication and integrity support involving both interest and data packets. Data packets are always signed by their original producers, and in the case of sensitive actuation services, the interest packets can be signed by the consumers to ensure that certain actions are requested only by authorized authenticated entities [20]. Public key cryptography is usually the reference mechanism for signing NDN packets [22]. However, mechanisms based on symmetric cryptography are preferred for resource-constrained IoT devices [23].  
To ensure data confidentiality and access control when dealing with sensitive IoT services, NDN uses encryption and requires an automated key management system to distribute the session encryption and decryption keys to the involved entities [24].