  Queues allow network operators to control traffic: where queues build, they
can enforce scheduling and shaping policies. In the Internet today, however,
there is a mismatch between where queues build and where control is most
effectively enforced; queues build at bottleneck links that are often not under
the control of the data sender. To resolve this mismatch, we propose a new kind
of middlebox, called Bundler. Bundler uses a novel inner control loop between a
sendbox (in the sender's site) and a receivebox (in the receiver's site) to
determine the aggregate rate for the bundle, leaving the end-to-end connections
and their control loops intact. Enforcing this sending rate ensures that
bottleneck queues that would have built up from the bundle's packets now shift
from the bottleneck to the sendbox. The sendbox then exercises control over its
traffic by scheduling packets to achieve higher-level objectives. We have
implemented Bundler in Linux and evaluated it with real-world and emulation
experiments. We find that Bundler allows the sender-chosen policy to be
effective: when configured to implement Stochastic Fairness Queueing (SFQ), it
improves median flow completion time (FCT) by between 28% and 97% across
various scenarios.
