An SMPP connection's submit speed

This document is created for the users of high performance SMS messageing systems. It help to understand the time it takes for a message submission to occur. It also gives information about the "windowing" technology that can be used to increase performance, and it provides a table of network bandwidth requirements for various Ozeki SMS licenses. By reading this document you will understand where a performance issue can come from, and it might help in resolving these issues.

1. The time it takes to send the message

The time it takes to submit an SMS messages consist of 5 steps (Figure 1). Step 1 is the encoding time of the message (T1). Step 2 is the network "upload" time (T2), when the encoded SMPP PDU is sent through the network and reaches the SMSC Step 3 happens, which is the processing time in the SMSC. The SMSC decodes the PDU, it generates a response and encodes the response. (T3), than the response is downloaded through the network (T4), and finally the response is processed (T5).

sms message transmit speed
Figure 1 - SMS message transmit speed

2. Slow network connection

The time it takes to transmit an SMS message on a slow network link, is determined by the network bandwidth (Figure 2). The upload or download speed can vary. On a server hosted at a hosting facility usually, the bandwidth that allows data to "leave" the data center is significantly slower than the speed that allwos data to get to the data center. Data centers host many computers, and most of them provide content for download. Your throughput in this direction is expected to be worse.

sms message transmit speed on slow network
Figure 2 - SMS message transmit speed on a slow network link

3. Fast network connection

If you have a fast network link, the time is determined by the processing power of the computers. In this case most of the time the network is not used (Figure 3). A fast network can significantly increase the message throughput. The processing time of the messages encoding/decoding is significantly harder to modify than it is to get a faster network link.

sms message transmit speed on fast network
Figure 3 - SMS message transmit speed on a fast network link

4. Slow SMSC performance

At Ozeki we often meet slow SMSC systems. For these systems it takes a lot of time to return a response to the submitted SMS messages. This increases T3 in the message transmission procedure, which results in slow performance.

it takes a lot of time for the smsc to return a response to the submitted message
Figure 4 - It takes a lot of time for the SMSC to return a response to the submitted message.

5. Inefficient network usage (window size 1)

In most SMSC connections the communication is handled in a synchronous way. This means that one sms messages is submitted, than the system waits for a response from the SMSC before submitting the next message. In these systems, the network "uplink" (Figure 5) to the SMSC is not used most of the time. In these systems it is very crucial to have a fast network uplink, because during the time it is used it is essential to get the message through it as quickly as possible.

the smpp network uplink is not used all the time
Figure 5 - The SMPP network uplink is not used all the time.

synchronized sms transfer using windows
Figure 5/2 - Synchronized SMS transfer using windows size 1 (default setup)

6. More efficient network usage (window size 3)

A technology called windowing is introduced in Ozeki 10 in order increase throughput. If windowing is enabled, the processing time and the network transmit times for each message can overlap. This way the network can be used more efficiently. Note however, that windowing must be supported by the SMSC. The way windowing works, is that we do not wait for a response for an SMS before submitting the next message to the SMSC. If the window size is set to 3, we always have 3 outstanding messages waiting for a response.

the smpp network uplink is used more efficiently if the window size is greater
Figure 6 - The SMPP network uplink is used more efficiently if the window size is greater.

7. How to configure windowing in Ozeki 10

To configure windowing in Ozeki 10, you need to open the configuration form of the smpp connection, than select advanced, open the throttling groupbox and edit the window size field.

open the smpp details page
Figure 7 - Open the smpp details page

select the configuration tab
Figure 8 - Select the configuration tab

open the advanced settings
Figure 9 - Open the advanced settings

edit the windows size
Figure 10 - Edit the window size

8. How to calculate the pure network bandwidth requirement

You may be interested in calculating the pure network bandwidth requirement of the SMPP traffic. Note that

Step 1 - Use wireshark to capture an SMPP PDU
Step 2 - Find out the number of bytes of this PDU
Step 3 - Multiply the number of bytes by the number of messages you wish to send per second

Note: when you calculate network bandwidth requirement you need to add the following bytes together: IP packet header bytes + TCP packet header bytes + SMPP PDU bytes. For a standard SMPP SUBMIT SM message sending PDU, that carries 160 latin characters this is 265 bytes. Every SMPP SUBMIT SM triggers an SUBMIT SM RESP, which is 81 bytes. Network speeds are given in bits. This means an SMS messages takes up (265+81)*8 = 2768 bits. This means to transmit 1 SMS message per secon you need 2.768 kbit/second bandwidth.

smpp pdus in wireshark
Figure 10 - SMPP PDUs in wireshark

SUBMIT_SM PDU in bytes (outgoing) SUBMIT_SM_RESP PDU in bytes (incoming) 1 message data in bits
265 bytes 81 bytes (265+81)*8 = 2768 bits

Required network speed calculation:
(MPS * (length*8))/1000 = Required network speed (Mbit/s)

Message speed Bits in 1 second Required network bandwidth
5 MPM 230.667 0.231 Kbit/s
10 MPM 461.333 0.461 Kbit/s
20 MPM 922.667 0.923 Kbit/s
30 MPM 1384.000 1.384 Kbit/s
1 MPS 2768 2.768 Kbit/s
10 MPS 27680 27.68 Kbit/s
25 MPS 69200 69.2 Kbit/s
50 MPS 138400 138.4 Kbit/s
100 MPS 276800 276.8 Kbit/s
200 MPS 553600 553.6 Kbit/s
300 MPS 830400 830.4 Kbit/s
500 MPS 1384000 1384 Kbit/s

MPM = Messages Per Minute
MPS = Messages Per Second

smpp pdu headers
Figure 12 - SMPP PDU headers

More information