The high level idea of the experiment is the same as that in Fig. 7. We keep running the same compression-transmission loop, measure the execution time of different modules, and try to illustrate the relationship between total execution time and computation time. In our implementation, the computation time should be controllable on a very small time scale, and we should be able to precisely control the computation time, which is very difficult to do for a compression module. With these implementation requirements, we replace the compression part in Fig. 7 with a loop of simple arithmetic calculation. The other part of the loop, send(), is implemented by a routine socket data sending procedure.
The experimental setting is the same as that in Fig. 5. The bottleneck link bandwidth is 10Mbps, socket buffer size is 16KB, and each chunk of data is also 16KB. A 6Mbps UDP competing flow is added to change the available bandwidth. For each computation time, we repeat the computation-transmission loop 100 times, recording the average value for computation time and buffer copying time .