Window size explained

EMG allows you to set the so called “window size” for connectors.

The window size is relevant for asynchronous protocols (such as SMPP) and defines the max allowed number of unacknowledged operations.

When window size is set to 1 (the EMG default value) for each message sent EMG will wait for the response before sending the next message.

This will impose a limit on the maximum throughput, especially for high-latency connections.

If the latency (packet roundtrip time) is 50 ms and a window size of 1 the maximum theoretical throughput would be 20 mps (messages per second).

By increasing the window size to 10 we increase the maximum theoretical throughput to 200 mps.

Please note however that there are often other bottlenecks than latency in which cases an increased window size may not have any positive effect.

A drawback of an increased window size is that if there are a number of outstanding submit operations and the connection drops the actual outcome of the submit operations is unknown and the recipient may receive duplicate messages if messages are resent once the connection has been reestablished.

Therefore it is not recommended to use an unnecessarily large window size. Usually a value between 1-20 should be enough.

It is also important to understand that it is the sending party that controls the window size. On the receiving side it is not relevant to configure a window size. However, SMPP connections are usually bi-directional so a window size defined on an inbound connector will affect MO messages or delivery reports sent via the connector.

Sample connector definition

An example of how to set window size to 10:

CONNECTOR smpp-out1 <
...
WINDOWSIZE=10
>

Sequence diagrams

The sequence diagrams below illustrate a window size of 1 and 3 respectively. As can be seen the increased window size leads to more efficient usage of the connection and increased performance.

Sequence diagrams