How does SilkPerformer simulate different modem speeds and compression?
Modems are simulated by slowing down the rate at which data is sent and received. An exact bandwidth calculation per virtual user (normally up to 4 concurrent connections) is processed. Before each TCP-Receive, the point of time when the data is expected to be ready at the socket (according to the bandwidth) gets computed. The actual function call to receive the data then gets delayed at this point in time.
The data that virtual users send and receive is interspersed with pauses of a specified duration over a period of time. Due to the TCP/IP flow control, it is guaranteed that the data sent by the server is clamped into packets, and not sent all at once.
The buffer size (how many bytes to read) is dependent on the profile setting "optimize network setting for" and has a range of 8K (Maximum number of users) und 32K (System default). By simulating modems in this way, the connection through a local area network can accurately represent the Internet connections achieved with modems.
SETTINGS | ACTIVE PROFILE | REPLAY | INTERNET | NETWORK - Modem
SETTINGS | ACTIVE PROFILE | REPLAY | INTERNET | NETWORK - Optimize network setting for
SilkPerformer does not compress the data but instead uses a reduced transmission duration. This can be achieved by simply increasing the transmission speed to simulate a modem's hardware compression.
If you had 30,000 bytes being sent with a modem then SilkPerformer would simulate this, using different compression rates, in the following way: -
- Compression 1.0x = 30,000 bytes not being compressed since 1.0x means no compression;Transmission duration is unchanged.
- Compression 2.0x = 30,000 bytes are compressed down to 15,000 bytes, so 15,000 bytes are transmitted; Transmission duration is half of the original.
- Compression 3x = 30,000 bytes are compressed down to 10,000 bytes, so 10,000 bytes are transmitted; Transmission duration is one third of the original.
SIMULATION AT SMALLER LOADS
When running small load levels (eg 300kb), Modem Simulation may show some difference between the simulated bandwidth and the actual bandwidth required. At larger loads (eg 2000kb+) any differences between the simulated bandwidth and the required bandwidth is significantly lower.
Take these 2 examples when simulating an ISDN 64Kb/sec modem:
- Total data sent is 315 bytes at 5KB per sec = 40Kb per sec (5.0KB x 8 = 40.0 Kbits/sec). This means a 37.5% difference (64-40)/64*100.
- Total data sent is 2200 bytes at 7.4KB per sec = 59Kb per sec (7.4KB x 8 = 59.2 Kbits/sec). This means a 7.5% difference (64-59.2)/64*100.
This behaviour can be seen because the larger load gives more scope for splitting and sending the traffic in the packets mentioned above and spreading them over the simulation time.
Again, considering real world applications such as e-Commerce sites, users tend to interact with them to generate much more than a few hundred bytes of data.
With this in mind customers should be careful when calculating the Required Bandwidth in tests with very low levels of sent and received data.