Os gerentes de download provavelmente trabalham conforme explicado no artigo em bloco .
A process utilizing BSD sockets may perform its own rate limiting. For upstream limiting, the application can do this by simply limiting the rate of data that is written to a socket. Similarly, for downstream limiting, an application may limit the rate of data it reads from a socket. However, the reason why this works is not immediately obvious. When the application neglects to read some data from a socket, its socket receive buffers fill up. This in turn will cause the receiving TCP to advertise a smaller receiver window (rwnd), creating back pressure on the underlying TCP connection thus limiting its data flow. Eventually this “trickle-down” effect achieves end-to-end rate limiting. Depending on buffering in all layers of the network stack, this effect may take some time to propagate.
Se você ocasionalmente precisar limitar um único programa em um sistema UNIX, uma solução simples é trickle . A modelagem real do tráfego, como você executaria em um gateway, pode ser feita com tc
. Isso está documentado em Capítulo 9. Disciplinas de enfileiramento para gerenciamento de largura de banda do roteamento avançado Linux & HOWTO de Controle de Tráfego.