Data Flow Control in IoT: A Study on Throttling Implementations in MQTT
2025 (English)Independent thesis Basic level (university diploma), 5 credits / 7,5 HE credits
Student thesis
Abstract [sv]
Tillämpningen av IoT (’Internet of Things’) teknologi växer i stadig takt, och de smart-devices som ingår arbetar i allt större antal, hanterar större datamängder och i högre hastigheter – samtidigt som deras processorkraft och minne är begränsade. Om en enhet slutar att fungera kan det dessutom bli mycket kostsamt om det exempelvis orsakar driftstopp.
MQTT-protokollet hjälper dessa enheter med att kommunicera under ansträngda förhållanden genom en effektiv ’publisher-and-subscriber’-modell, men de enheter som agerar som ’subscriber’ riskerar att överväldigas av snabba dataflöden eftersom det ofta saknas inbyggda metoder för att reglera hastigheten på den inkommande datan i ett MQTT-nätverk.
Detta examensarbete fokuserar på att utvärdera ’subscriber-side-throttling’ – även kallat ’backpressure’ – så som det implementerats i två olika open-source MQTT-klienter: HiveMQ och Fusesource. Målet är att jämföra hur effektivt dessa klienter kan minska belastningen på en IoT-enhet som agerar som subscriber. Genom kontrollerade experiment med både låg och hög belastning genom datainflöde så samlades viktiga systemmätvärden in, såsom CPU- och minnesanvändning.
Resultaten visar att båda klienterna minskar CPU-belastningen när throttling är aktiverad, men att Fusesource mer konsekvent lyckas begränsa datainflödet till det som specificerats. Studien understryker vikten av flödeskontroll på sidan av subscribern för att upprätthålla systemets stabilitet, och ger värdefulla insikter för val av MQTT-klienter i miljöer med begränsade resurser.
Abstract [en]
Utilization of IoT (‘Internet of Things’) technology is growing at a steady pace, and the smart-devices that are involved find themselves operating in greater numbers, handling bigger amounts of data and at higher rates – at the same time as processing power and memory is constrained. If a device stops working it could end up very costly, due to for ex-ample causing production downtime.
The MQTT-protocol helps these devices communi-cate in strained conditions through an efficient ‘publisher-and-subscriber’-model, but the devices that act as ‘subscribers’ can find themselves susceptible to being overwhelmed by high-rates of data due to lacking built in methods for controlling the incoming rate of data in an MQTT network.
This thesis focuses on evaluating ‘subscriber-side throttling’ – also known as ‘backpressure’ – as implemented in two different open-source MQTT clients: HiveMQ and Fusesource. The aim is to compare how efficiently these clients imitigate performance strain on an IoT device acting as a subscriber. Using controlled experiments un-der low and high-load message rates, key system metrics such as CPU and memory usage were collected.
Results show that while both clients reduce CPU usage when throttling is enabled, Fusesource more consistently enforces specified data-rate limits. The study highlights the importance of subscriber side flow control in maintaining system stability and offers insights for selecting MQTT clients in resource-constrained environments.
Place, publisher, year, edition, pages
2025. , p. 26
Keywords [en]
Internet of Things, IoT, networking, MQTT, throttling, subscriber, rate-limit, back-pressure, open-source, performance
National Category
Computer Systems
Identifiers
URN: urn:nbn:se:hv:diva-24163Local ID: EXN300OAI: oai:DiVA.org:hv-24163DiVA, id: diva2:1994519
Subject / course
Computer engineering
Educational program
Nätverksteknik med IT-säkerhet
Supervisors
Examiners
2025-09-082025-09-032025-09-30Bibliographically approved