How to prevent dropped packets?

I'm using 2 nRF52840 DK to run a data transfer test between a central and a peripheral.

The Central device uses ble_app_uart_c, The peripheral uses ble_app_uart. These examples are in SDK V17.

I ran a test where the peripheral keeps sending packets of 40 bytes to the Central. I looked at the results and I can tell the data were sent and received by the Central correctly. However I see a lot of dropped packets.

Up to 40% of packets were not received by the Central device. I wonder if it is a normal occurence. Is there a way I can reduce the number of dropped packets, assuming we have a normal environment.?

Related