-
Notifications
You must be signed in to change notification settings - Fork 16
Description
Because we don't have complete control over the sending rate of the kernel module, we cannot easily line up monitor intervals such that a single monitor interval contains packets sent at exactly the same rate.
To illustrate the problem, consider two adjacent monitor intervals with three sending rates on a 100Mbps link.
MI 1:
t = 0.00 -> t = 0.75, rate = 120Mbps, latency = 200ms (full buffer)
t = 0.75 -> t = 1.00, rate = 80Mbps, latency = 100ms (empty buffer)
average rate: 110Mbps
latency inflation: -100ms
MI 2:
t = 1.00 -> t = 1.75, rate = 80Mbps, latency = 100ms
t = 1.75 -> t = 2.00, rate = 120Mbps, latency = 200ms
average rate: 90Mbps
latency inflation: 100ms
In this case, we would conclude that 110Mbps is a better sending rate because it decreases our latency, while 90Mbps increases our latency. If we had finer granularity in our monitor intervals or they lined up with observed sending rates, we could see that 80Mbps is preferable to 120Mbps and we could change our target rate accordingly.