In contracts carrier specifies how much data we can use (i.e. download plus upload) per month without extra charge. However, did you think how they calculate data amount used by an user? Unfortunately you will not find any information about this topic. On many forums you can find infomation about differences between data usage measurement by user equipment (e.g. Android smartphone) and amount reported by the carrier. What could be the reason?
Carrier measures data used by us during single session and then this value is rounded up to e.g. 100 KB. It can be annoying in case of mobile Internet used in smartphone when we often have short data transmission periods. However if we use LTE at home then it is not an issue, because during single session we use a lot of data. Therefore we do not loose so much because of rounding problem.
What is the single session? In this case it is PDN context, which is established during connection with the mobile network. Even if we do not use phone, the PDN context stays active. The context is released when we disconnect with the network. Unfortunately it will also happen when we move from LTE network to 3G.
It is in our favor 🙂 Sometimes carriers offers non-charged (unlimited) access to the classic WWW sites (i.e. only text and image data) which does not include encrypted connections (HTTPS). Sometimes we can have unlimited access to selected sites (e.g. Facebook). Of course it does not apply to 3rd party YouTube movies posted on Facebook.
Some carriers (e.g. in USA) do not charge for DNS queries. So, if could create special “tunnel” (i.e. to “smuggle” data in DNS packets) then we would transmit data without any charge.
This case is very complicated. Data usage measurement tool in our phone calculates only received data (i.e. packets). What is happening with data that do not reach the destination? From carrier’s point of view, we have used the data, because our provider has delivered packets to the basestation and we have used resources reserved for us. The worst case is when we use UDP protocol (e.g. during video streaming), we loose the reception and the application server still sends data to us. Unfortunately we will be charged for these data.
For our luck it does not look so bad in the practice. The effect of lost data is minimized by mechanisms built-in TCP protocol (used in most of cases) and UDP applications. You can find more information in this article. Have a nice lecture 🙂
What are your experiences with the data charging by the operators? Have you noticed any irregularities?