The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Во FreeBSD появился режим быстрого ограничения скорости в dummynet

19.03.2008 11:01

Незамеченным прошло добавление патчей в MAIN-ветку разработки FreeBSD, изменяющих поведение dummynet.

Ранее, при задании с помощью dummynet пропускной способности канала, он не только ограничивал скорость, но и вносил временные задержки в каждый пакет, проходящий через него, с целью эмуляции заданного канала.

В реальности гораздо более востребован режим, когда ограничивается лишь скорость, но не вводится никаких временных задержек.

И вот 6 и 17 ноября 2007 года в dummynet внесены необходимые изменения. В текущей реализации все пакеты, которые "помещаются" в заданный канал, просто пропускаются мимо dummynet, что даёт сразу несколько преимуществ:

  1. Уменьшает задержки
  2. Уменьшает избыточность и за счёт этого - загрузку
  3. Уменьшает вероятность наступления рекурсии (например, в этом случае):

  	kldload dummynet
	sysctl net.inet.ip.fw.one_pass=0
	ipfw pipe 1 config bw 0
	for i in `jot 30`; do ipfw add 1 pipe 1 icmp from any to any; done
	ping -c 1 localhost

Соответственно, появились новые переменные:

  • net.inet.ip.dummynet.io_fast - задаёт старое("0", эмуляция канала) или новое поведение dummynet("1", шейпирование канала)
  • net.inet.ip.dummynet.io_pkt - пакетов, прошедших через dummynet
  • net.inet.ip.dummynet.io_pkt_fast - пакетов, пропущенных мимо dummynet
  • net.inet.ip.dummynet.io_pkt_drop - пакетов, отброшенных dummynet


  1. Главная ссылка к новости (http://www.freebsd.org/cgi/cvs...)
Автор новости: Dennis Yusupoff
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/14823-freebsd
Ключевые слова: freebsd, dummynet, traffic, shaper, bandwidth, ipfw
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (22) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, ZANSWER (??), 11:37, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Приятная фишка, вот бы ещё с PF-ом подружили бы dummynet, цены бы не было им...:)
     
     
  • 2.2, viper (??), 11:47, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Дык были патчи. http://lists.freebsd.org/pipermail/freebsd-pf/2007-October/003849.html
    Тестируй отписывайся
     
     
  • 3.5, ZANSWER (??), 12:49, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Дык были патчи. http://lists.freebsd.org/pipermail/freebsd-pf/2007-October/0...
    > Тестируй отписывайся

    Спасибо, попробую...:)

     

  • 1.3, Timka (??), 12:04, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    действительно, прошлоо незамеченным. а кто знает, в FreeBSD 7.0-Release это уже есть по умолчанию или тоже надо патчить?
     
     
  • 2.4, grayich (??), 12:42, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    судя по отсутствию net.inet.ip.dummynet.io наверное нет
     
     
  • 3.11, drurus (?), 16:02, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    гм, а не пробовали сделать
    # kldload dummynet
     
     
  • 4.14, aZ (?), 17:45, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    А вы? :)
     
  • 4.16, grayich (??), 18:52, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    # kldload dummynet
    kldload: can't load dummynet: File exists

    =)

     

  • 1.7, Осторожный (?), 14:16, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Чего-то гонят - в dummnynet всегда можно было задать задержку 0 ms !
     
     
  • 2.9, Дмитрий Ю. Карпов (?), 14:36, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    AFAIK, пакет, попавший в правило шейпинга, помещался в очередь и отправлялся только при просмотре очередей, т.е. HZ раз в секунду. Средняя задержка была 1/(2*HZ).
     
     
  • 3.10, Dyr (ok), 15:25, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Сначала прочитал как "ХЗ раз в секунду". ;-)
     
  • 3.17, Осторожный (?), 21:49, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >AFAIK, пакет, попавший в правило шейпинга, помещался в очередь и отправлялся только
    >при просмотре очередей, т.е. HZ раз в секунду. Средняя задержка была
    >1/(2*HZ).

    Ну хорошо.

    Для dummynet рекомендуется HZ=1000
    И задержка становится совсем маленькой.
    Или у всех внешний канал в Internet работает на полной скорости в >=10 Mbit/sec ?
    Сомнительно.

    Самое главное - если dummynet выполняет ограничение скорости,
    то как собственно реализуется это ограничение скорости ?
    Да так и релизуется - пакеты ставятся в очередь - то есть пакет может получить (и получает) задержку ...

    Вообщем IMHO это улучшение имеет смысл только при высоких скоростях >1Mbit/sec - скажем в локальной сети или на магистрали.

     
  • 3.18, Dyr (ok), 23:04, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Что считаете?
    Каждому пакету рассчитывалась временнАя задержка, соответствующая эмулируемому каналу.
     

  • 1.8, aZ (?), 14:33, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не понял, что-то не вижу этого ни в 6.3, ни в 7.0. dummynet подгружен.
     
     
  • 2.13, aZ (?), 16:18, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле я хотел сказать, что почему не видно этого в 6.3. и 7.0 если "И вот 6 и 17 ноября 2007 года в dummynet внесены необходимые изменения."? Они же вышли гораздо позже этой даты.
     
     
  • 3.15, Аноним (-), 18:39, 19/03/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Слабо по ссылке сходить? MFC не было.
     

  • 1.12, nanodaemon (?), 16:07, 19/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    наряду с патчем позволяющим крутить думминет из пф начинается казаться что жизнь налаживается ^_^ ещё бы мультипас таблицы.. ))

    хотя, по-хорошему, конечно, хочется порт HTB на pf :)

    пс: надо скорее бежать тестить :)

     
  • 1.19, Adrian (?), 18:58, 27/03/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Объясните пожалуйста как пропачить этот dummynet, ни как не догоняю как это сделать.

    Буду очень признателен!

     
     
  • 2.20, Dyr (ok), 19:58, 01/04/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Скачиваете предлагаемый патч, затем накладываете его и пересобираете ядро.
    Как-то так.
     

  • 1.21, Adrian (?), 19:23, 03/04/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    там не пач а .с файл, пробовал менять оригинал на этот, при компиляций ядра выдаёт ошибку
    помогите разобраться
     
     
  • 2.22, Backspace (?), 01:58, 25/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    mkdir /src_backup
    mv /usr/src/sys/net/if_bridge.c /src_backup
    mv /usr/src/sys/net/if_bridgevar.h /src_backup
    mv /usr/src/sys/net/if_ethersubr.c /src_backup
    mv /usr/src/sys/netinet/ip_dummynet.c /src_backup
    mv /usr/src/sys/netinet/ip_dummynet.h /src_backup
    mv /usr/src/sys/netinet/ip_fw_pfil.c /src_backup

    fetch -o /usr/src/sys/net/if_bridge.c "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/net/if_bridge.c?rev=
    fetch -o /usr/src/sys/net/if_bridgevar.h "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/net/if_bridgevar.h?r
    fetch -o /usr/src/sys/net/if_ethersubr.c "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/net/if_ethersubr.c?r
    fetch -o /usr/src/sys/netinet/ip_dummynet.c "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/netinet/ip_dummynet.
    fetch -o /usr/src/sys/netinet/ip_dummynet.h "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/netinet/ip_dummynet.
    fetch -o /usr/src/sys/netinet/ip_fw_pfil.c "http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/sys/netinet/ip_fw_pfil.c?rev=1.27;content-type=text%2Fplain"


    Удалить из /usr/src/sys/net/if_bridge.c, 33 строка, "IFCAP_TOE|"

     
     
  • 3.23, Backspace (?), 02:02, 25/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылки в предыдущем сообщении покоцались, вместо
    fetch -o ... "http...
    нужно будет повставлять нормальные ссылки и закрыть двойную кавычку. Сорри, если обидел таким подробным объяснением :)


     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру