Setting up a TCP test

Introduction

In this section, we will look at running a TCP test.  A TCP test is interesting for several reasons.

  • TCP by design limits itself to the available bandwidth.
  • The final throughput of your TCP flow is thus a decent estimate of how fast users can go.
  • To set it up, you'll only need to configure a TCP flow.

Good:

  • Easy to set up.
  • Close to user experience.

Bad:

  • The result can vary significantly, especially when one part of the system isn't behaving properly.
  • Not easy to measure speed at different packet sizes.
Flow Template

It is possible to tweak the TCP settings in the TCP tab, but at this point, it is probably better to look at the other approaches seen below. The sole exception is perhaps the receive window, this value should be as high as possible → start from 8. 


TCP Parameters

Rate limit:                                                       Set as 'No' → This means the TCP flow will send the maximum throughput.

Unscaled Initial Received Window (Bytes):     This is set by default at the maximum of 65535 Bytes.

Window Scaling:                                              Set as 'Yes' → Can scale the window by a factor.

Receiver's Window Scaling Value:                    This is the scale factor (from 0-12) multiplied by 256. 

Slow Start Threshold:                                       This sets the time at which the slow (linear) growth function of TCP begins.

Congestion Avoidance Algorithm:                   Set to 'SACK' → This can detect if 1 packet is missing.

                                                                         It notices holes in the transmission.

Scenario

Go back to the 'Scenario' tab → Select the 'TCP flow → Click 'Run' 


Report

The first thing to notice is that 100% of the transmitted (TX)  frames were received (RX) → See 'Green box' above. 

The TCP flow plot has different parameters that you can select or de-select. This enables you to focus on what our interested in. For example, the plot below only shows the throughput and goodput. They are almost identical → This is a good outcome! 

The green line indicates the round trip time. The ByteBlower report will indicate the maximum and minimum values. The default unit is in microseconds but this can be changed in the preferences.