The following diagram summarizes the different packages that are exchanged between an MQTT client and an MQTT server to publish a message with QoS levels 0, 1, and 2. This way, we can easily recognize the increased overhead as we increase the QoS level:
It is very important to take into account the additional overhead required by QoS level 2 and to use it only when it is really necessary.