Page 1 of 2

ESP32 MQTT Paket size

Posted: Wed Nov 17, 2021 1:21 pm
by msawaftah
Hello all,

I have a mqtt applecation using esp32 board.

I have 2 questions:

1) In which document can I find information about the MTU WIFI size of an ESP32? I have googled that and in the other forums they say 1500 Byte but I cant find the Information in the datasheet or in a specific document.

2) The maximum mqtt message size is 256 MB that means we can send 256 MB messages with mqtt but at the same time we are limited by the MTU size so that we can max send 1500 Byte messages. Do I understand this correctly?


Thanks in advance

regards
msawaf

Re: ESP32 MQTT Paket size

Posted: Thu Nov 18, 2021 3:02 am
by Sprite
Yes. Note you can send packets larger than 1500 bytes, they'll simply get sent in chunks of 1500 bytes and reassembled automatically on the other side.

Re: ESP32 MQTT Paket size

Posted: Thu Nov 18, 2021 12:00 pm
by msawaftah
Yes. Note you can send packets larger than 1500 bytes, they'll simply get sent in chunks of 1500 bytes and reassembled automatically on the other side.
so no data will be lost right?

But I think getting the data in chunks and reassembled the data will slow dow the speed connection is that right?

Re: ESP32 MQTT Paket size

Posted: Fri Nov 19, 2021 1:43 am
by Sprite
No data will be lost. Not sure what you compare the speed to when you say 'will slow down the speed'... there's no way to get a greater MTU as it's a property of the WiFi protocol, not specifically of the ESP32.

Re: ESP32 MQTT Paket size

Posted: Mon May 26, 2025 7:16 am
by MichaelS
I have not found this to be the case. If my MQTT packet size is larger than MTU, the transmission fails.
Am I missing something as this is what I really want?

Re: ESP32 MQTT Paket size

Posted: Mon May 26, 2025 5:19 pm
by Sprite
Could be that fragmenting and reassembly is somehow disabled in the LWIP config, you could check menuconfig to see if that is the case.

Re: ESP32 MQTT Paket size

Posted: Mon May 26, 2025 8:50 pm
by MicroController
If my MQTT packet size is larger than MTU, the transmission fails.
1. "fails" = what? Any error code/message?
2. What maximum acceptable MQTT packet size does the server announce?

Re: ESP32 MQTT Paket size

Posted: Tue Jan 27, 2026 3:13 pm
by leschge
Yes. Note you can send packets larger than 1500 bytes, they'll simply get sent in chunks of 1500 bytes and reassembled automatically on the other side.
I am having a strange problem. From the doc:
MQTT_EVENT_DATA: The client has received a publish message. The event data contains: message ID, name of the topic it was published to, received data and its length. For data that exceeds the internal buffer, multiple MQTT_EVENT_DATA events are posted and current_data_offset and total_data_len from event data updated to keep track of the fragmented message.
For
esp_mqtt5_connection_property_config_t.maximum_packet_size I set 2 MB. Then why do I get:
mqtt5_client: Connect maximum_packet_size property is over buffer_size(4096), Please first change it
Because I thought esp_mqtt_client_config_t.buffer.size was the internal buffer (that I set to 4KB)


Edit: Created this issue ticket: https://github.com/espressif/esp-mqtt/issues/319

Re: ESP32 MQTT Paket size

Posted: Wed Jan 28, 2026 9:35 am
by MicroController
You can set the "buffer size" via esp_mqtt_client_init() (esp_mqtt_client_config_t::buffer::size).

Re: ESP32 MQTT Paket size

Posted: Wed Jan 28, 2026 12:23 pm
by leschge
You can set the "buffer size" via esp_mqtt_client_init() (esp_mqtt_client_config_t::buffer::size).
Thats correct, but messages to be received can be larger than the buffer defined in esp_mqtt_client_init.