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?
![](https://nickvsnetworking.com/wp-content/uploads/2022/12/SIP-Message-K-Focused.png)
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
![](https://i0.wp.com/nickvsnetworking.com/wp-content/uploads/2022/12/SMS-K-2.png?fit=1321%2C810&ssl=1)
That seems pretty bad in terms of efficiency, but let’s look at how that actually works out:
![](https://i0.wp.com/nickvsnetworking.com/wp-content/uploads/2022/12/image-1.png?fit=1174%2C436&ssl=1)
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!