Also don't forget that there is a lot more happening on the connection than you think.
If you are downloading a 1MB file, you are not just transferring 1MB across the wire. The 1MB will be broken down into "chunks" of approx. 1400 bytes each.
So I'll make the worst case assumptions here, and do some math to simply illustrate the point.
1MB is 1,000,000 bytes.
That's about 714 chunks of 1400 bytes that has to be transferred.
Each chunk has overhead to trasmit, which is at least 54 bytes. Each transmission might also have an acknowledgement of 54 bytes.
So the "overhead" is at max 108 bytes in this example.
714x108 bytes=77,112 bytes.
So at this point, your transmission overhead is about 7% of your data size.
Now it gets ugly, say your connection isn't entirely stable or the tower is busy etc etc. Some of those chunks would have to be re-transmitted. Let'ts say your connection is stable 80% of the time and make it simple that 20% of transmissions fail.
So you started off with 714 chunks to transmit.
You transmit 714, but 143 failed.
You transmit 143, but 29 failed.
You transmit 29, but 6 failed.
You transmit 6, but 2 failed.
You transmit 2.
In the end, you've transmitted 714+143+29+6+2 chunks to get your 1MB. That's 894 transmissions, not 714.
894x108 bytes=96,552 bytes.
HOWEVER, because you've re-transmitted some data, you've sent some chunks twice!
894-714=180 chunks that were sent twice.
180*1400=252,000 bytes.
So, your overhead (96,552 bytes) plus your retransmitted chunks (252,000 bytes) is 348,552 bytes.
Therefore, to transfer your 1,000,000 bytes actually cost you an additional 348,552 bytes.
...and therefore your overhead is 34%.
So you would consume 34% more data than you realized.
So you'd think you downloaded 1MB, but you actually downloaded 1.3MB.
On 1GB, that would then be 1.3GB if we just make this a linear scenario.
*disclaimer, I made a lot of assumptions here to explain the math