Understanding MTU and Fragmentation Issues in Cellular IoT Devices

Overview

IoT devices may experience network failures due to incorrect MTU settings. This guide explains why MTU matters, how different networks handle large packets, and how various network routes and equipment impact packet transmission.

What is MTU?

MTU stands for Maximum Transmission Unit. It defines the largest size (in bytes) of a packet of data that can be sent over a network without needing to be fragmented into smaller pieces. If a packet is larger than the network’s MTU and fragmentation is not allowed, it is dropped. Some networks fragment large packets, while others strictly enforce MTU limits and discard them.

  • The MTU size includes both the header and payload of a packet.

  • If a packet exceeds the MTU limit, it may be fragmented into smaller packets or dropped altogether, which can cause performance issues such as increased latency, packet loss, or broken connections.

Why Some Networks Drop Large Packets

IoT devices often operate in cellular environments, where packets pass through multiple network elements before reaching the destination.

How Network Routes & Equipment Affect MTU

As an IoT packet travels from a device to the server, it may pass through multiple elements: - IoT Device (Modem, Router, or Embedded System) – Sends the packet based on its configured MTU. - Cellular Network (e.g., LTE, 5G) – May have an internal MTU limit, typically 1400–1500 bytes. - Tunnels (e.g., GTP, GRE, VPNs) – Can reduce MTU due to encapsulation overhead. - ISP Backbone & Peering Networks – May have their own restrictions. - Cloud or Application Server – If the MTU is too high, the server may never receive the packet.

Common MTU sizes

Protocol/Connection Type

Typical MTU Size

Ethernet

1500 bytes

Monogoto Network

1400 bytes

Mobile Networks (4G/LTE)

1428 bytes

VPN Connections

1300–1400 bytes

Symptoms of MTU Issues in IoT Devices

- No connectivity after switching SIM cards or networks. - Intermittent failures in MQTT, HTTP, or UDP communication. - Data not reaching servers or connections timing out. - Modem connects to the network but fails to send data.

MTU size with Monogoto

Monogoto supports an MTU size of up to 1400 bytes. However, many devices (like Quectel, Telit, U-blox modules) default to a typical Ethernet MTU size of 1500 bytes.

This mismatch can lead to the following issues:

  • Packet fragmentation

  • Increased latency

  • Packet loss

  • Connection drops

  • Failed video transmissions

Why Choose 1400 MTU size with Monogoto?

An MTU of 1400 bytes ensures compatibility across networks, avoiding packet loss due to:

  • IPSec tunneling (VPNs, corporate networks).

  • LTE networks with strict MTU policies.

  • Cloud-based IoT platforms that enforce lower MTUs.

Selecting 1400 MTU with Monogoto ensures optimal data transmission efficiency and network performance. By reducing packet fragmentation, this configuration enhances connectivity, reduces latency, and improves the overall reliability of IoT applications.

How to Check and Set MTU on IoT Devices

How to check and set MTU on Quectel modems using AT commands

Check current MTU: AT+QICSGP=1

Set MTU manually (if supported by firmware): AT+QICSGP=1,1,"your-apn","","",1,1400

Restart the network connection: AT+CFUN=1,1

How to check and set MTU on Linux-Based IoT Devices (Raspberry Pi, Embedded Systems)

Check current MTU: ip link show Example output: 3: wwan0: <UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN mode DEFAULT group default Set MTU to 1400: sudo ip link set wwan0 mtu 1400 Make the change persistent: sudo nano /etc/dhcpcd.conf Add:

interface wwan0 mtu 1400 Save and reboot: sudo reboot

How to check MTU size via capture file

  1. Generate a PCAP file to any of your SIMs using this guide

  2. Open the file in Wireshark tool

  3. Check the total length value of the IPv4 layer (see pic below)

Troubleshooting MTU Issues on IoT Devices

Test MTU with Ping

To find the largest working MTU, use: ping -M do -s 1400 8.8.8.8

  • If packets are dropped, reduce the value (`ping -M do -s 1350 8.8.8.8`).

  • The highest value that does not drop is the correct MTU.

Verify MTU After Reboot

Check that the settings are persistent: ip link show wwan0 Ensure `mtu 1400` is set.

Conclusions

  • Set MTU to 1400 bytes or lower for reliable IoT connectivity.

  • Use AT commands or OS settings to configure it.

  • Test with ping to find the correct MTU.

  • Remember that different network paths may affect MTU behavior.

  • By following these recommendations, IoT devices will work reliably across different networks.

Last updated

Was this helpful?