Optimizing DLE, and ATT MTU for specific data packet size

Hi everyone,

I know there are many posts asking about DLE and ATT MTU in attempt to improve throughput of BLE. Some forums have significantly highlighted these such as (1), (2),...However, they all just gave examples either 27 bytes or 251 bytes for DLE and assess how its performance. Thus, if having a specific data packet size, are there any suggestions for specific DLE and ATT MTU size being used?

Let take an example:

  • I need to send a data packet with the size of 56 bytes.
  • I believe setting DLE of 251 bytes and ATT MTU of 247 bytes seems to be overkill.

Thus, my thought was:

  •  Regarding DLE, Link Layer Packet Structure for BLE 4.2/5.0 looks like the following, so I would set DLE with the exact size it's supposed to be, say 63 bytes (56 bytes from my data packet size + 7 bytes from L2CAP header and ATT header). 

  • Regarding ATT MTU, with 3 bytes of ATT Header I would set it as 59 bytes which covers 56 bytes from my data packet size and its ATT header.
  • I used Sniffer to check the length of the data at LL layer and at L2CAP layer. It shows exactly what I mentioned above (e.i., DLE with 63 bytes and MTU with 59 bytes). 

This leads to a question that I wanna ask:

  1. Does this matter to set optimal DLE and ATT MTU size for specific data packet size? like save power consumption or even increase throughput?
  2. For data packet size greater than 23, with the use of DLE of 251 bytes and ATT MTU of 247 bytes, is it overkill?
Parents
  • Hi!

    Does this matter to set optimal DLE and ATT MTU size for specific data packet size? like save power consumption or even increase throughput?

    Yes. If the ATT packet cannot fit in a single on-air packet, it will be split up into multiple on-air packets. By using DLE, you can set DLE to ATT packet size plus the header bytes. This will avoid fragmentation of the ATT packet into several on-air data packets.

    For data packet size greater than 23, with the use of DLE of 251 bytes and ATT MTU of 247 bytes, is it overkill?

    I don't see any downside to setting DLE and ATT MTU to these values. Even if your application don't actually need this high values, the peer device you are connected to might benefit from these higher values.

  • Thanks  for this information!

    Regarding the question 2, could you explain a little bit more about? Let say the data packet size is 40 bytes, using DLE size of 251 bytes and ATT MTU of 247 bytes, will it be more packets (multiple 40-byte data packets) needing to be sent for the same amount of data? I'm asking this as it may lower the throughput in this case.

Reply
  • Thanks  for this information!

    Regarding the question 2, could you explain a little bit more about? Let say the data packet size is 40 bytes, using DLE size of 251 bytes and ATT MTU of 247 bytes, will it be more packets (multiple 40-byte data packets) needing to be sent for the same amount of data? I'm asking this as it may lower the throughput in this case.

Children
Related