In order to collect data, most of the IoT-based applications utilize sensors, which are limited in terms of computational and storage capabilities. Therefore, the collected raw data by the IoT sensors must be transmitted to capable servers for processing, storage, and data mining purposes.