# Network Measurement and Performance Analysis at Server Side
## 5 Validation
### Performance Limit Validation
** Similar to the previous tests, \(10\) MB files were transferred from server to client. The server randomly wrote \(1\) to \(10\) MSS bytes to network stack for randomly \(1\) to \(100\) ms, with \(TCP\_NODELAY\) and \(tcp\_autocorking\) options turned on or off. EVA identified all connections as application limited. However, for BBR server, when \(TCP\_NODELAY\) is off and \(tcp\_autocorking\) is on, EVA reported some congestion control limited flights, since the network stack tried to coalesce small writes as much as possible, decreasing the number of less-MSS-sized packets. **Congestion control limited. ** Congestion control limited was tested by transferring \(10\) MB files, with packet loss rate induced by dummynet, ranged from \(1\%\) to \(10\%\), incremented by \(1\%\). EVA reported totally different results of Cubic and BBR: Cubic connections were deemed congestion control limited, while BBR connections were deemed bandwidth limited. This is not hard to explain: Cubic interpreted loss as a signal of congestion, but BBR did not. There is a point to make about the experiments. For Cubic connections, EVA was unable to observe real BitBw due to extremely low throughput. Nonetheless, EVA still correctly identified these connections as congestion control limited. **Bandwidth limited. ** To validate bandwidth limited, we transferred \(10\) MB files with on other competing flows in the network. Send and receive buffers were auto adjusted by network stack, and packet loss rate were set to zero by dummynet. EVA not only identified all connections as bandwidth limited, but also reported the right BitBw and RTprop. **Bufferbloat limited. ** Bufferbloat limited was tested by transferring \(100\) MB files. The bottleneck buffer was set to \(1\) MB by dummynet, which was large enough to introduce high delay. Again, EVA reported totally different results of Cubic and BBR: Cubic connections were deemed bufferbloat limited, while BBR connections were not. To explain this, the principles of Cubic and BBR must be understood. Cubic is loss-based thus keeps the bottleneck buffer full, while BBR explicitly controls the queue size in bottleneck link. **More than one limiting factors. ** After validating the limiting factors one by one, we further evaluated EVA's performance by simultaneously generating flows with different performance problems. Since network resources were shared, flows that monopolize the resources can greatly affect the transmission of the others. More specifically, if the network path is already saturated, host limited (application limited, receive window limited, etc.) flows may suffer network congestion or bufferbloat unexpectedly. To avoid this ambiguity, we only validated host limited flows. In particular, we set up four long-lived flows, each limited by application, send buffer, receive window and congestion control. At the same time, we repeatedly generated short-lived flows (transfer \(100\) KB files) to validate slow start limited. In other words, at any given time, there were five flows in the network. The test lasted for one minute and 5708 flights were collected. Based on the diagnosis of each flight, Table 3 reports EVA's accuracy for each host limiting factor. We can see that EVA achieved 0.80 in recall of slow start limited, which was lower than other limiting factors. We carefully inspected the slow start limited packet traces and found that the last flights did not satisfy the exponential relationship due to insufficient data.