# ndInIoT-FC: IoT Devices as First-Class Traffic in Name Data Networks
## 3 ICN Architecture for IoT Environments
### ndnlIoT-FC Pub-Sub Architecture
#### Forwarding Process  
Although no changes were applied directly to the original NDN structures, the information they carry over the course of both Interest and Data packets, now is treated in a different manner. As illustrated in Figure 4, when subscription events are concerned, there are four key points to be addressed: _persistent interests_, _caching_, _entry management_, and _naming aggregation_ explained in the previous section. Figure 4: ndInoT-FC pub-sub general communication. **Persistent Interests**: PIT entries created as a result of an incoming Interest packet, marked as a subscription, are maintained over an extended period of time (_Lifetime_ field in PIT Table), and are not erased after a successful content retrieval via a publisher node, allowing the same entry to be used for subsequent communications. **Caching:** Data obtained from sensors in a Smart City are either used for aggregation systems for calculating average values, for joint analysis for wider observation or for real-time usage (indication of accidents, traffic lights, etc.). In all referenced cases they are for immediate consumption, i.e., they are periodic and temporary, a conduct that directly influences how caching strategies must react to deal with such volatile content, as caches need to be continuously updated for the most updated data, which puts a huge strain on already limited devices such as sensors, both from a caching size and energy-constrained perspective. To this extent, we argue that data resulting from subscription requests should not be added to the caching of intermediate ICN nodes, and in order to reduce the burden caused by continuously updated data deriving from the publisher-subscriber mechanism, while also guaranteeing its freshness, caching is disabled for such packets in the proposed solution. **Interest management**: when meddling with persistent PIT entries two key points need to be considered: entry lifetime, and path availability. On the first hand, since no acknowledgement packets are used in the NDN architecture, it is important to infer if a party invested in a specific subscribed content still exists and, therefore, if data should keep being transmitted towards known paths; On the other hand, in a dynamic network, paths need to be constantly updated in order to address availability concerns and to ensure data received can be successfully forwarded towards the end-user. To this extent, subscribers are required to periodically send new subscription packets for the same content to keep entries fresh on all nodes involved. When a PIT entry already exists for a received subscription packet, the _Lifetime_ value of the received interest will be used as a replacement of the current PIT entry lifetime, serving as a token of the investment of the subscriber in continuing to receive the subscribed data. Furthermore, as we are dealing with a publish-subscribe mechanism where Interests are scarce compared to the native NDN workflow, this interest packet will be forwarded according to known paths in order to allow nodes further into the network to likewise update their own table entries, as opposed to the native mechanism where interests would be dropped. As for the aggregated PIT entries, a single entry serves numerous incoming data packets, which means that only one lifetime value is attributed to the entry as a whole. In an effort to guarantee that all interests requests are offered a chance to be resolved, the lifetime value of the most recent Interest is used to update the aggregated PIT entry. This behavior allows intermediate nodes to keep forwarding content towards the subscriber until no remaining Interest exists in the services promoted by the specified DCU while also promoting cases where content keeps being delivered when the subscriber has not renewed investment in the data and PIT entries would have otherwise expired.