# A Secure Internet of Things Smart Home Network: Design and Configuration
## 2 Related Works  
MQTT is a lightweight messaging protocol with extremely small overhead. The lightweight feature comes with a 2-byte only packet header, publish/subscribe model, and bidirectional capabilities to meet the demands of the control systems. The publish/subscribe model allows MQTT clients to publish their information with a particular topic to a MQTT broker as publishers. Each MQTT client can subscribe for a specific topic through the MQTT broker as a subscriber, i.e., MQTT clients are connected to the MQTT broker, which then mediates communications between the MQTT clients. MQTT has a bidirectional communication property, which means any MQTT client can publish or subscribe for any topic handled by the MQTT broker. Therefore, there is no limitation to who or what one can publish or subscribe for across the network, meaning a client can be a publisher as well as a subscriber at the same time.  
To implement a smart home network environment, research works were carried out to find a proper messaging and control protocol which can be applied for IoT services. Many candidate protocols including Constrained Application Protocol (CoAP) [3], Advanced Message Queuing Protocol (AMQP) [4] and MQTT have been evaluated against HTTP. The performance comparison of HTTP and MQTT when used for IoT systems is discussed in [5] with the conclusion that MQTT is better than HTTP for IoT network. An experiment to apply MQTT protocol in embedded networks with limited resources was conducted in [6] with the finding that adopting a MQTT implementation with a single micro-controller board with low hardware specification was even more suitable in embedded networks. The performance overhead of HTTP and MQTT are compared in [7] using a case study of public bus tracking system. A more comprehensive review of the existing messagingprotocols is presented in [8] where they compared applicability of the protocols across various IoT environments.  
An implementation example of home automation system using the MQTT protocol to communicate between the MQTT clients are introduced in [9] with micro-controller boards with built-in ESP8266 shields. The micro-controllers act as MQTT clients while an online remote server acts as a MQTT broker. A similar paradigm is also introduced in [10] by developing an IoT-based smart library.  
There was some research focused on the enhancement of data quality and reliability using MQTT protocol. An example is performing data acquisition in real time and storing it in the database of a MQTT broker. Additionally, in [11], mechanisms to develop a MQTT broker equipped with capability to handle multi-protocol architecture was discussed. A research [12] has been conducted to provide enhancement of security for a MQTT protocol for IoT systems. A depth analysis for IoT security requirements and their countermeasures along with software-defined security was discussed in [13]. Hardware-level security vulnerabilities of the IoT devices themselves were summarized in [14] and its test bed are introduced in [15]. In addition, attempts to apply machine learning [16] or deep learning [17] methods to IoT security were introduced.