Имеется локальная сеть с выходом в инет (ADSL). Между ADSL-модемом и локалкой стоит сервер (Linux 2.6.7, Squid2.5.Stable7). Поднят маскарадинг, сделано прозрачное проксирование.
Пример проблемы: user1 качает файл в 2 потока (или 2 файла) user2 качает файл в 1 поток. Сервер честно делит ADSL-канал на 3 ровные части. Итого, user1 выкачивает в 2 раза больше чем user2 за один и тот же промежуток времени. Для других коэффициентов соотношения еще более страшные :-)
Как это решить? Хотелось бы, что бы даже если user1 запустит 10 файлов на скачку, то канал он получал не больше, чем другие, не более 1/n, при n одновременных качающих пользователях. То бишь, нужно равномерное деление канала между локальными IP-адресами.
Вопрос - как? :-)
Приходят в голову ограничить количество параллельных закачек на уникального пользователя для определенных типов файлов (архивы-мп3-.. - не больше одной закачки на человека, html-jpg - без ограничений)