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).
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.
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.
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.
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.
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.
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.
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.
|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