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:
- Start with a window size of like 2
- Run benchmark.py and observe the throughput (the first big number printed)
- 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.