Menu

Optimizing the Sliding Window size

The sliding window size for the packet protocol can be changed in the tamproxy/config.yaml file on the line that looks like:

window_size:            12

The window size is how many packets the packet controller is allowed to release at any time. A non-unity window size means that the packet controller doesn't have to stop and wait for the response for a packet it just send before sending the next one.

The optimal window size probably varies a lot depending on the host computer and can be calibrated as follows:

  1. Start with a window size of like 2
  2. Run benchmark.py and observe the throughput (the first big number printed)
  3. Keep increasing the window size until the throughput stays more or less constant

On Mitchell's OSX machine this is around 12 but it's probably different for most other people

Here's a really preliminary, unlabeled axis chart I made of sliding window size vs throughput. I think the vertical axis has bytes per second. Packets are typically 5-10 bytes.