Really, they also should be using erasure codes over UDP with TCP-friendly flow control in order to make more efficient use of noisy or high-latency channels.
What sort of protocols are used for this kind of thing, and what would I research if I wanted to do this myself?
How do I know? I was roaming and the data plan ran out, we caught it in the act.
Metered!
If you are connected through a Bluetooth link to a cell phone, Windows will probably assume that it is tethered to a phone and therefore metered. Likewise, WiFi connections are probably assumed to be unmetered, for better or worse. But you can tell Windows that a given network connection is metered.
(I am not a Windows user 98% of the time and I find this behavior annoying too, FWIW.)
He didn't change it back. My quota was blown an hour later (I don't recall how much data I had left, but it was hundreds of MB). In spite of it being set to metered seconds after connecting to the hotspot.