Я знаю, что могу формировать выходной трафик с помощью tc
или аналогичный инструмент. Однако сейчас я хочу сформировать входной трафик - на самом деле, я хочу установить приоритет загрузки файлов определенного типа через медленное соединение с потерями.
Я знаю причину tc
может только формировать выходной трафик: сам хост не имеет прямого контроля над объемом входящего трафика. С другой стороны, TCP имеет некоторые встроенные меры, которые предотвращают переполнение TCP-трафика при медленном соединении. Итак, могу ли я изменить что-то в заголовке TCP, чтобы удаленный хост подумал, что мое соединение медленнее, чем он думает?
Предположим, что я могу поставить соответствующую отметку на обоих типах соединений с iptables
. Есть ли способ уменьшить входную полосу пропускания для соединений первого типа, но только при наличии соединений второго типа?
Вы имеете в виду уведомление о явной перегрузке TCP (http://en.wikipedia.org/wiki/Explicit_Congestion_Notification.) Я не думаю, что то, что вы ищете, технически возможно, поскольку к тому времени, когда пакет был получен самим сервером Linux, вы уже получили пакеты и пытаетесь настроить их постфактум. .
На самом деле, если вы хотите QOS или формирование трафика, это должно выполняться у вашего вышестоящего провайдера, а не на принимающей стороне. Другими словами, все формирование трафика выполняется на стороне источника, а не на стороне назначения.
Для этого есть очень хорошие решения, к сожалению, ни одно из них не доступно бесплатно в Linux. Задержка или отбрасывание пакетов работает очень и очень плохо. При необходимости можно, но результат в лучшем случае удовлетворительный. К тому времени, когда вы получили пакет, он уже израсходовал входящую полосу пропускания, которую вы пытаетесь защитить.
Правильный способ сделать это - исказить рекламу исходящих окон TCP, рекламируя меньшее окно на другой стороне. Существуют аппаратные и программные реализации, которые делают это, но, насколько мне известно, ни одна из них не доступна бесплатно в Linux.
это сценарий объясняет один из способов сделать это и содержит очень подробные комментарии, объясняющие теорию и ограничения.