# Context-Aware Gossip-Based Protocol for Internet of Things Applications
## 1 Introduction  
Interconnectivity between dissimilar devices to form a pervasive network of services is possible among a broad variety of electronic devices due to the miniaturisation of these devices and reductions in their cost [1]. Such electronic devices are made smart by endowing physical things with local intelligence, thereby bridging the gulf between the physical world and the world of information [2]. The network connecting these smart devices, i.e., intelligent things, has been termed the Internet of Things (IoT) [3]. IoT technology is driving the third wave of the information technology (IT) revolution, which is striving towards an era of ubiquity, heterogeneity, and connectivity [4]. This revolution is occurring in concert with the popularisation of wireless and sensor technologies enabled by wireless sensor networks (WSNs) [5, 6]. The IoT is a communicating-actuating network of devices that augment digital information with information about the physical world, i.e., the environment around us [7]. In other words, devices in an IoT network dynamically cooperate to fulfil an IoT application's goal. An IoT network is characterised by its ability to offer comprehensive perception, reliable transmission, and intelligent processing [1]. Identification technology and sensors are utilised in an IoT network to enable people to interact with the real world remotely via a variety of wired and wireless technologies for transmission and communication among machines (i.e., machine-to-machine, or M2M, communication) and with the users of IoT applications. Within the context of the IoT, WSNs permit the utilisation of different network topologies and multi-hop communication to enable the monitoring of physical and environmental conditions via spatially distributed devices. The instantaneous and intelligent processing of the collected data is facilitated by intelligent computing technologies, e.g., cloud computing, and the results are communicated to humans or other devices. Human-to-device communication is implemented in IoT applications to provide reliable and robust interaction. Device-to-device interactions are also made possible in IoT applications through the utilisation of intelligent devices that are able to identify a problem, communicate effectively, and resolve the issue without human intervention [8]. The capabilities of IoT applications are varied and depend on the types of services being offered by said applications. For instance, IoT applications for smart agriculture (e.g., [9]) are currently being used for the clean and sustainable growing of food. An application of this sort requires the deployment of a large number of sensors to detect environmental and ecological factors to support the remote control of actuators based on those readings. As another example, an IoT application intended for electronic health (e-health) monitoring (e.g., [10]) collects and analyses data from an ad hoc network of several devices that are placed on a patient's body to provide end users with feedback on health-related habits and advice. The performance of IoT applications is further impacted by the capabilities of the devices being utilised and of the network itself. This is because most IoT devices are resource-challenged devices, with limited memory, processing capabilities, electrical energy supplies, and other abilities [11]. Often, an IoT application requires additional computational power to process the data collected by the sensors. This requires the sensors to forward their data to a control station (i.e., sink) for further operations. This is accomplished through efficient routing protocols, such as gossiping protocols, which can, in turn, impact the performance of the IoT network and application. Gossiping is a traditional communication mechanism that mimics the behaviour of common dissemination phenomena, such rumours or epidemics.