How can I diagnose what is using my 3g connection in small packets My GSM carrier rounds all used data up to 100KB. Which means that if some app is sending/receiving 500 bytes, I get charged for 100KB.

Lately I observed that I go through several hundred megabytes per day.

Data usage in phone shows that I used ~ 400MB, while carrier charged me for over 2GB of data.

In detailed billing I see literally thousands of short connections (multiple per minute, 24 hours a day), each using 100KB - which means that actual data transfer is much lower.

Carrier helpdesk said that they can't tell me what I'm using the data for. Phone shows real data transfer, which in my case is useless.

What can I do to find out what application/process is sending lots of small packets of data (or receives)?

If it helps with anything, I'm using Motorola Moto G2 (only 1 SIM has data transfer enabled), and it's running Android 5.0.2.

While debugging the problem, I disabled Google Backup Services from using 3G (only works over Wifi now), and an hour ago I disabled it altogether. But given that it was disabled over 3G, I don't think it's the culprit.
To diagnose the issue you could try a third-party network monitoring tool - Network Connections


  Powerful tool that displays and monitors (tracks) all inbound and
  outbound connection from and to your Android device.


Other features bundles in the app:


  
  Monitors all internet connections from and to your Android device
  Displays notification when hidden apps are connecting to remote servers
  Displays detailed IP information for each connection - IP address, reverse resolving (PTR), AS number, Abuse RBL data, administrative
  information, etc. 
  Gets detailed info about each app that connects to remote servers and network connections used by it - permissions granted to each
  captured package and all IP addresses used by it.