MQTT Sensors and Network Traffic Observations

MQTT is primarily a M2M protocol. It was originally designed for send sensor data from a remote oil field. As the number of sensors increases the amount of network traffic generated by sensors will increase dramatically and depending on the transport it could prove expensive. It will be important to understand this sensor traffic and how it can be reduced.

Continue reading

Host Name Resolution Methods Explained

On computer and home networks when you type an Internet address into a web browser the web browser needs to convert that web address into an IP address. To do that it uses the the name resolution processes provided by the host machine. There are several ways that the host machine can resolve a domain name. The main ones are:

Continue reading

DNS Lookups Explained

In this tutorial we will examine what happens when you use DNS to lookup or resolve a domain name to an IP address. We look at how DNS lookups work, and the exact process involved when looking up a domain name. We follow the client DNS query as it is processed by the various DNS servers in the response chain. Before we start it might be useful to compare DNS name resolution with a standard question and answer that takes place in everyday life.

Continue reading

Paho Python MQTT Client-Understanding The Loop

When writing code using the Paho Python client you would have had to use the loop() function . In this tutorial we will look at what it does, and why it is necessary. When new messages arrive at the Python MQTT client they are placed in a receive buffer. The messages sit in this receive buffer waiting to be read by the client program.

Continue reading

Mosquitto MQTT Bridge -Usage and Configuration

A MQTT bridge lets you connect two MQTT brokers together. They are generally used for sharing messages between systems. A common usage is connect edge MQTT brokers to a central or remote MQTT network. The Mosquitto broker (server) can be configured to work as an MQTT bridge.

Continue reading

Understanding the MQTT Protocol Packet Structure

In this tutorial we will take a more detailed look at the MQTT protocol, and how MQTT messages or packets are formatted. We will be looking at: The MQTT message format. The MQTT message header Message fields and coding Control Message coding example

Continue reading

Using MQTT Over WebSockets with Mosquitto

What is Websockets and How it Works? WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP/IP connection. Wiki It is closely associated with http as it uses http for the initial connection establishment.. The client and server connect using http and then negotiate a connection upgrade to websockets, the connection then switches from http to websockets. The client and server can now exchange full duplex binary data over the connection. Video -MQTT Over Websockets Explained   Why Use MQTT over Websockets? MQTT over Websockets allows you to receive MQTT data directly into a web browser.

Continue reading

Understanding MQTT Topics

MQTT topics are a form of addressing that allows MQTT clients to share information. MQTT Topics are structured in a hierarchy similar to folders and files in a file system using the forward slash ( / )as a delimiter. Using this system you can create a user friendly and self descriptive naming structures of you own choosing. Topic names are: Case sensitive use UTF-8 strings. Must consist of at least one character to be valid.

Continue reading

Mosquitto SSL Configuration -MQTT TLS Security

In this tutorial we will configure the mosquitto MQTT broker to use TLS security. We will be using openssl to create our own Certificate authority (CA), Server keys and certificates. We will also test the broker by using the Paho Python client to connect to the broker using a SSL connection. You should have a basic understanding of PKI, certificates and keys before proceeding. See SSL and SSL Certificates Explained

Continue reading