Recently I read a post from someone talking about efficiency of USSD over IMS, and how crazy it was that such a small amount of data used so much overhead to get transferred across the network.
Having built an SMSc a while ago, my mind immediately jumped to SMS over IMS as being a great example of having so much overhead.
If we’re to consider sending the response “K” to a text message, how much overhead is there?
I’m using a common Qualcomm based smartphone, and here’s the numbers I’ve got from Wireshark when I send the message:
Transport Ethernet Header – 14 Bytes
Transport IP Header – 20 Bytes
Transport UDP Header – 8 Bytes
Transport GTP Header – 12 Bytes
User IP Header – 20 Bytes
IPsec ESP Header (For Um interface protection) – 22 Bytes
Encapsulated UDP Header – 8 Bytes
SIP Headers – 707 Bytes
SMS Header – 16 Bytes
SMS Message Body “K” – 1 Byte
That seems pretty bad in terms of efficiency, but let’s look at how that actually works out:
This means our actual message body makes up just 1 byte of 828 bytes, or 0.12% of the size of the overall payload.
Even combined with the SMS header (which contains all the addressing information needed to route an SMS) it’s still just on 2% of the overall message.
So USSD efficiency isn’t great, but it’s not alone!