1
votes

I am working with a distributed application communicating over GPRS. I use UDP packets to send business data and ICMP pings to verify connectivity. And now I have a problem with calculating a traffic for which I will be charged by the provider. I have to consider following factors:

  1. UDP payload: that is obvious.
  2. UDP overhead: UDP header + IP header = 8 + 20 bytes.
  3. ICMP echo request without data: IP header + ICMP payload = 28 bytes.
  4. ICMP echo reply: as in 3.

Above means that for every data packet I am charged for payload + 28 bytes and for every ping 56 bytes. Am I right or I am missing/misunderstanding something?

3

3 Answers

0
votes

You may also need to establish whether there's any overhead from your GPRS network provider for encapsulating your packets over their network.

Whilst GPRS is fundamentally an IP network, they may try to charge you for link layer traffic, not just your actual useful data.

0
votes

This also depends on the type of header compression scheme used in the network. There is 40 bytes of overhead of IP, UDP, and RTP in the case of IPv4 and it is 60 bytes in the case of IPv6. If IPHC or CRTP is used, they can compress up to 2 bytes. If ROHC is used by network, it shall compress the overhead of 40 bytes or 60 bytes to 1 or 3 bytes. In that case the overhead will be greatly reduced.

0
votes

Answers was done before my mostly related to difficulties with calculating real network traffic amount. But you have to be aware of such thing as different charging policies of your operator.

GPRS bytes charging may vary greatly according to day time, Geo region, destination address, discounts, rate plan, additional services, rounding and so on only your mobile operator knows all such billing rules. If you want precise result, you have to know all this.

Taking into account such huge amount of information is very hard, and will require building your own "small billing system".