# An Overview on Push-Based Communication Models for Information-Centric Networking
## 1 Introduction  
_Information-centric networking (ICN)_ is being applied with success to content distribution in large-scale environments due to its capability to address data instead of hosts, and to natively support authenticated many-to-many communication. ICN aims at overcoming the limitations of IP-based solutions, which try to build an information-centric service model over a network infrastructure designed to support host-to-host communications. Another area where ICN shows promising results is _Internet-of-Things (IoT)_[1]. In IoT environments the broader concept of _publish/subscribe_ is being increasingly integrated into several IP-based messaging protocols, as publish/subscribe supports a faster deployment of many-to-many communications. Messaging protocols such as _Advanced Message Queuing Protocol (AMQP)_ (ISO 19464) [2] or _Message Queue Telemetry Transport (MQTT)_ protocol [3] follow a client-server approach, where an entity (_broker_) mediates between the different IoT devices/services, i.e., between (_producers_) and _consumers_. The abstraction supported by the use of a mediating entity (broker) is useful. However, the broker approach does not scale well in scenarios with high topological variability and high heterogeneity of devices, as occurs, for instance, in personal IoT scenarios, or in industrial IoT scenarios [4]. An advantage of the ICN publish/subscribe models is: decentralization. From a network architectural perspective, such models are promising candidates for data transmission in highly heterogeneous IoT scenarios [5]. The ICN publish/subscribe semantics support integrated security and data distribution/decentralization via in-network caching. Although the transient nature of IoT data may bring challenges related to in-network caching, new research findings corroborate that caching techniques specifically designed for small transient data can actually reduce the time-to-completion ofrequests [6]. Furthermore, the ICN interface abstraction model, _Face_, is extremely relevant in supporting the sharing of data between devices, as well as between applications and services. Such abstraction allows, for instance, to have automatic multihoming support. Despite the aforementioned advantages, by design, the ICN publish/subscribe paradigm follows a pull-based communication approach, where consumers need to express interest to receive each data packet. Such a pull-based model may reduce performance in scenarios holding a large number of resource constrained, mobile devices, as occurs in IoT environments, due to the need to frequently broadcast Interest packets. This would require devices to be in reception mode all of the time, for instance, thus resulting in battery drain. Or, it would require a method for fine-grained synchronization, based on the rate at which individual IoT devices emit data. Hence, the applicability of ICN in IoT environments is a relevant area of work, which requires further research into how to support both pull and push communication. In this context, the motivation for this work is two-fold: firstly, to debate on properties of different push-based communication models; secondly, to provide guidelines towards the integration of ICN pull and push communication models, particularly in the context of IoT environments, as one meaningful area of today's internet, and of next generation internet architectures. While our work is focused on the applicability area of IoT, the proposed guidelines are applicable to other areas that have similar assumptions and requirements in particular in what concerns data transmission over highly heterogeneous and mobile scenarios. This work contributions are three-fold. Firstly, this paper debates on the need to support push-based communications, when devising ICN architectures for IoT. Secondly, the paper describes mechanisms available to achieve such purpose, and what are their advantages and disadvantages. Thirdly, the paper provides design suggestions to integrate push-based communication in ICN architectures specifically developed for IoT.