Чудо формирователь очень специальная сеть формирователь скрипт с большим количеством функций. Работает на Linux 2.4 и выше
Голы
я попытался создать Святой Грааль:.
* Поддержание низкой задержкой для interfactive трафика на все времена .
Это означает, что загрузки или файлы не должны нарушать SSH или Telnet даже. Они являются наиболее важные вещи, даже 200 мс задержка вяло работать над.
* Разрешить '' серфинг по разумным скоростях, до или скачивания
Даже если HTTP является "основная" трафик, остальной трафик не утопить его слишком много.
* Убедитесь, что добавления не навредить скачивали и наоборот
Это гораздо наблюдаемое явление, где перед движением просто разрушает скорость загрузки. Оказывается, что все это возможно, за счет чуть-чуть пропускной способности. Причина того, что добавления, загрузки и SSH больно друг друга является наличие больших очередей на многих внутренних устройств доступа, как кабельные или DSL модемов.
Почему это не работает хорошо по умолчанию
<бр /> Интернет-провайдеры знают, что они протестированные исключительно на как быстро люди могут скачать. Кроме того, доступной пропускной способности, скорость загрузки зависит в значительной степени от потери пакетов, которые серьезно затрудняет работу TCP / IP. Большие очереди могут помочь предотвратить packetloss, и ускорить загрузку. Так провайдеры настроить большие очереди. Однако
Эти большие очереди повредить интерактивность. Клавиши должны сначала путешествовать вверх по течению очередь, которая может быть секунд (!) Долго и перейти к удаленному хосту. Это будет отображаться, что приводит к пакету возвращаясь, которые должны затем траверс вниз по течению очередь, расположенный на вашем ISP, прежде чем она появится на экране.
Этот документ научит вас, как калечить и обрабатывать очередь во многих отношениях, но, к сожалению, не все очереди нам доступны. Очередь за у провайдера полностью закрыты, в то время как перед очереди, вероятно, живет внутри кабельного модема или DSL устройства. Вы можете или не можете быть в состоянии настроить его. Скорее всего, нет.
Так, что дальше? Поскольку мы не можем контролировать любой из этих очередей, они должны быть устранены, и переехал в свой Linux маршрутизатора. К счастью, это возможно.
Ограничение скорости загрузки несколько
Ограничивая нашу скорость загрузки немного меньше, чем по-настоящему доступной скорости, никаких очередей не будут созданы в нашем модема. Очередь теперь переехала в Linux.
Лимит скорости загрузки
Это немного сложнее, поскольку мы не можем влиять, как быстро в Интернете корабли данные по США. Мы, однако, может отбрасывать пакеты, которые идут слишком быстро, что приводит к TCP / IP, чтобы замедлить, чтобы просто скорости мы хотим. Потому что мы не хотим, чтобы упасть трафика без необходимости, мы настраиваем "разрыва" размер мы позволяем при более высокой скорости.
Теперь, когда мы сделали это, мы устранили вниз по течению очередь полностью (за исключением короткие всплески), и получить возможность управления вверх по течению очередь со всеми предложениями питания Linux.
Пусть интерактивного трафика пропустить очередь
Что остается сделать, это сделать уверен интерактивного трафика переходит к передней части верхнего очереди. Чтобы убедиться, что добавления не больно загрузки, мы также двигаться ACK пакеты к передней очереди. Это то, что обычно вызывает огромный спад наблюдается при генерации трафика большого объема в оба конца. В БЛАГОДАРНОСТИ для нисходящего трафика должен конкурировать с входной трафик, и получить задерживается в процессе
Мы также перемещать другие небольшие пакеты в начале очереди -. Это помогает операционных систем, которые не установленные биты TOS, как и все из Microsoft.
Разрешить пользователю указать низкий приоритет трафика (новое в 1.1!)
Иногда вы можете заметить, низкий приоритет исходящего трафика замедляется важную трафик. В этом случае, следующие опции могут помочь вам:
NOPRIOHOSTSRC
Установите на хозяев или сетевые маски в вашей сети, должны иметь низкий приоритет
NOPRIOHOSTDST <бр / > Установите к хостам или сетевые маски в Интернете, который должен иметь низкий приоритет
NOPRIOPORTSRC
указан это исходных портов, которые должны иметь низкий приоритет. Если у вас есть веб-сервер незначительную на трафик, установите на 80
NOPRIOPORTDST
установить это портах назначения, которые должны иметь низкий приоритет.
См начало wshaper и wshaper.htb
Результаты
Если мы делаем все это, мы получим следующие измерения с использованием отличную связь ADSL от xs4all в Нидерландах:
задержки Baseline:
туда-обратно мин / ср / макс = 14,4 / 17,1 / 21,7 МС
без движения кондиционера, при загрузке:
туда-обратно мин / ср / макс = 560,9 / 573,6 / 586,4 МС
без движения кондиционера, в то время как загрузки:
туда-обратно мин / ср / макс = 2041,4 / 2332,1 /2427.6 мс
с кондиционером, во загрузки 220kbit / с:
туда-обратно мин / ср / макс = 15,7 / 51,8 / 79,9 мс
с кондиционером, во 850kbit / с для скачивания:
туда-обратно мин / ср / макс = 20,4 / 46,9 / 74,0 мс
При загрузке, загрузки перейдите на ~ 80% от доступной скорости. Загружено на уровне около 90%. Задержка затем прыгает до 850 мс, до сих пор выяснить, почему.
Что вы можете ожидать от этого сценария во многом зависит от скорости вашего фактического восходящей линии связи. При загрузке на полной скорости, всегда будет один пакет впереди своего клавиши. Это нижний предел задержки можно добиться - разделить свой MTU по вышестоящего скорости для расчета. Типичные значения будет несколько выше, чем это. Опустите MTU для лучшего эффекта
маленький столик:
скорость восходящей линии | Ожидаемые задержки из-за загрузки
----------- ---------------------------------------
32 | 234ms
64 | 117ms
128 | 58ms
256 | 29ms
Так, чтобы рассчитать эффективную задержку, принять измерение базовой (пинг на ненагруженном ссылке), и искать номер в стол, и добавить его. То есть о лучшее, что вы можете ожидать. Это число происходит из расчета, что предполагает, что ваш выше клавиши будет иметь не более половины полного размера пакета в впереди него
Это сводится к:.
MTU * 0,5 * 10
-------------- + baseline_latency
кбит
фактором 10 не совсем правильно, но хорошо работает на практике. <бр / >
ваше ядро
Если вы запустите последнюю распределение, все должно быть нормально. Вы должны 2,4 с параметрами QoS включен.
Если вы планируете скомпилировать собственное ядро, он должен иметь несколько вариантов включены. В частности, в меню Networking Options, QoS и / или Fair очередью, по крайней мере, превратить CBQ, ПРИО, SFQ, Степень, движения полицейской, поддержка QoS, ставка Оценщик, классификатор QoS, U32 классификатор, классификатор fwmark.
< ш /> На практике, я (и большинство дистрибутивов) просто включите все.
Сценарии
скрипт поставляется в двух версиях, один из которых работает на стандартных ядер и реализуется с помощью CBQ. Другая использует отличную HTB Qdisc которое не ядра по умолчанию. Версия CBQ более испытания, чем HTB одной!
См 'wshaper' и '' wshaper.htb.
Тюнинг
Эти сценарии нужно знать "реальный" курс вашего ISP подключения. Это трудно определить заранее, как различные провайдеры используют различные виды бит кажется. Люди сообщают успех, используя следующую методику:
оценить как ваш вверх и вниз по на половину ставки ваш провайдер указывает,. Теперь проверьте, если скрипт работает - проверьте интерактивность при загрузке и при загрузке. Это должно обеспечить задержку в расчете выше. Если нет, проверьте, если скрипт выполняется без ошибок.
Теперь медленно увеличить добывающие и вниз по течению число в сценарии до задержки не возвращается. Таким образом, вы можете найти оптимальные значения для вашего соединения. Если вы счастливы, пожалуйста, сообщите мне, чтобы я мог составить список номеров, которые хорошо работают. Пожалуйста, дайте мне знать, какой провайдер вы используете, и имя вашей подписки, и его предполагаемых спецификаций, так что я могу перечислить вам здесь и спасти других неприятностей.
Установка
Если Вы набираете, вы можете скопировать скрипт для /etc/ppp/ip-up.d, и он будет работать на каждый подключения.
Если вы хотите, чтобы удалить формирователь с интерфейсом, работать " wshaper остановка. Чтобы увидеть информацию о состоянии, запустите 'wshaper статус "
ИЗВЕСТНЫЕ ПРОБЛЕМЫ
Если вы получаете ошибки, добавить -x к первой строке, а именно:.
#! / bin / Баш х
и повторите попытку. Это покажет вам, какие линии дает ошибку. Прежде чем обращаться в меня, чтобы убедиться, что вы используете последнюю версию iproute
Последние версии можно найти на дистрибьютора Linux, или если вы предпочитаете компиляции, здесь:
FTP: // ftp.inr.ac.ru/ip-routing/iproute2-current.tar.gz
Детали программы:
Версия: 1.1a
Дата загрузки: 2 Jun 15
Тип распространения: Бесплатная
Популярность: 55
Комментарии не найдены