pub/sub IoT messaging protocol: three QoS levels, persistent sessions, small headers, TLS and OAuth auth