An SMPP connection's submit speed
This document is created for the users of high-performance SMS messaging systems. It helps 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 message 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), then 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 centre is significantly slower than the speed that allows data to get to the data centre. Data centres 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. (Figure 4)
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, then 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. (Figure 6)
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, then select advanced, open the throttling group box and edit the window size field. (Figure 7, Figure 8, Figure 9, Figure 10))
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 second you need 2.768 kbit/second bandwidth. (Figure 11)
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
FAQs
What is MPM?
MPM (Messages Per Minute): This keeps the original abbreviation but adds an explanation for clarity. For example, if you purchase the Ozeki SMS Gateway 10 MPM, you can handle 10 SMS messages being sent or received every minute.
What is MPS?
MPS stands for Messages Per Second. It indicates the maximum number of SMS messages your Ozeki license can handle, whether sending or receiving. For instance, an Ozeki SMS Gateway 1 MPS license allows your gateway to process 1 SMS message per second.
If I have a 20 MPS license, how is this speed distributed between incoming and outgoing messages?
Ozeki SMS Gateway intelligently allocates your message processing capacity. Here's how it works:
- Balanced Traffic: If you have outgoing messages and incoming messages waiting, the capacity is split evenly. For example, with a 20 MPS license, 10 MPS would be dedicated to sending and 10 MPS to receiving messages simultaneously.
- Maximized Throughput: When there are no incoming messages, the full capacity (20 MPS in this case) is used for sending outgoing messages as quickly as possible. Conversely, if there are no outgoing messages waiting, the entire capacity is directed towards receiving incoming messages.
Do delivery reports effect my message capacity?
Receiving delivery reports is completely separate from your message sending capacity. Even with delivery reports coming in, your 20MPS license lets you continue sending 20 messages per second.
More information
- SMPP specification
- SMPP PDU logging
- Throttling error
- How to use SMPP API with programming languages
- Secure SMPP connection over SSL TLS
- SMPP delivery report format
- What is an SMPP simulator
- SMPP error codes
- SMPP network bandwidth calculator
- How to send a test SMPP SMS message
- SMPP PDU decode
- SMPP Character encoding
- SMPP wireshark