Возможно вы искали: 'Combat Mission: Touch'

May 15 2025 18:19:39
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Подробнее об использовании pipe-s в IPFW (ipfw limit pipe queue traffic shaper limit freebsd)

Подробнее об использовании pipe-s в IPFW (ipfw limit pipe queue traffic shaper limit freebsd)

Ключевые слова: ipfw, limit, pipe, queue, traffic, shaper, limit, freebsd, (найти похожие документы)

From: napTu3aH <napTu @ front . ru>
Newsgroups: email
Date: Mon, 20 May 2005 14:31:37 +0000 (UTC)
Subject: Подробнее об использовании pipe-s в IPFW

В данной статье хочу поделиться собственными наработками в части ограничения
и распределения трафика для клиентов с помощью pipes в IPFW. Существующая
информация дает поверхностное описание и не описывает всех тонкостей работы
с pipes. В своём изучении pipes я основывался на известной статье by Kuzmich
( http://www.hub.ru/modules.php?name=Sections&sop=viewarticle&artid=24&page=4 ),
которая может дать толчек для начальных знаний, но оставляет при этом множество
вопросов. Здесь я приведу пример настроек в моей сети и опишу как это работает.


Когда настраиваются правила для IPFW, то перед запуском скрипта с новыми
правилами обычно производится очистка от старого набора при помощи команды

ipfw -f flush


как выяснилось, тоже самое необходимо делать и для pipes, т.е.

ipfw -f pipe flush


- для очистки всех каналов.


Подобным образом можно применять команду

ipfw -f queue flush


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

канал pipe с параметрами:

queue Q - размер очереди (отброс не поместившихся в очередь пакетов)
bw B - скорость выхода пакетов в [K|M]bit/s
delay D - дополнительная задержка каждого пакета на D ms

_____________________________________________
< очередь queue 1 описывается параметрами:
queue Q - размер очереди (отброс не поместившихся в очередь пакетов)
weight 50 - весовой коэффициент от 1 до 100 соответствует приоритету очереди
| пакет1 | пакет2|пакет3|...пакет Q|
_____________________________________________
< очередь queue 2 weight 40 | пакет1 | пакет2|пакет3|...пакет Q|
_____________________________________________
> очередь queue 3 weight 30 | пакет1 | пакет2|пакет3|...пакет Q|
_____________________________________________
> очередь queue 4 weight 20 | пакет1 | пакет2|пакет3|...пакет Q|
_____________________________________________


В правилах эта конструкция описыватся следующим образом:

ipfw pipe 1 config bw 100Kbit/s queue 20
ipfw queue 1 config pipe 1 weight 50 queue 20
ipfw queue 2 config pipe 1 weight 40 queue 20
ipfw queue 3 config pipe 1 weight 30 queue 20
ipfw queue 4 config pipe 1 weight 20 queue 20


"queue 20" приведено для примера и говорит о том что очередь имеет размер 20 пакетов

{
Место в скрипте, где описывается pipe не имеет значения. В множестве примеров
я видел это описание после обьявления правила для прохода пакетов через pipe,
однако сам описываю pipe в начале скрипта.
}

Но вернемся к приведенному выше рисунку нашей pipe.

---------
Из этого примера следует, что для работы группы пользователей по
ограниченному каналу с равными или разными приоритетами, необходимо
пакеты каждого отдельного пользователя ставить в отдельную очередь.
Тогда пакеты будут выходить из pipe в соответствии с приоритетами
очередей, в которых они находятся.
---------

Это и есть основная мысль, которая описывает разделение пакетов в pipe.


Теперь рассмотрим реализацию этого метода на практике.


Сперва задаем pipe

ipfw pipe 1 config bw 80Kbit/s queue 20


Если скорость pipe соответствует пропускной способности канала,
то установка правильного значения имеет большое влияние
на корректную работу системы разделения трафика.

К примеру, в моей сети установлен модем Sirius с выделенным каналом 115
Кбит/с, однако для правильной работы pipe я устанавливаю 80Кбит/с, т.к.
это примерно соответствует реальному значению скорости в канале. При
установке значения скорости большего, чем может обеспечить канал, вся
система разделения перестаёт работать.

Это можно показать на следующем примере. Пусть в сети через один канал
работают два пользователя через очереди с равными приоритетами. Реальная
пропускная способность канала 80Кбит/с, но мы устанавливаем pipe
110Кбит/с.

Оба пользователя непрерывно качают примерно одинаковый поток данных.
Один из них начал качать раньше. Когда появился второй, то система
начала ограничивать поток для первого до 110/2=55 Кбит/с. Считая что
второму также будет отведено 55Кбит/с, однако из-за того что реальная
пропускная способность канала 80Кбит/с, то второму пользователю будет
предоставлено всего 80-55=25Кбит/с. Кроме того возможно система будет
считать, что второй пользователь не использует выделенный ему канал и
давать еще больший приоритет первому, чтобы довести общий поток до
110Кбит/с.


После создания pipe нам необходимо создать очереди queue. Если всем
пользователям необходимо равномерно распределять поток, то создавать
вручную количество очередей соответствующее количеству пользователей не
нужно. Мы создаем всего одну очередь

ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff


но приписываем параметр mask, в котором указываем что для каждого
отдельного destination адреса будет создаваться своя очередь с такими же
параметрами, как у этой.

{
Здесь я не согласен с примерами приведенными у Кузмича, где
маска адреса установлена в 0x00000000. При такой маске не происходит
разделения на отдельные очереди и все пакеты на любые destination
адреса заносятся в одну единственную очередь, из которой они сходят
в таком же порядке в котором они туда попали. При этом не происходит
никакого реального разграничения по приоритетам
или равномерного разделения.
}


Реально работающую pipe с очередями можно просмотреть командой

ipfw pipe show


Эта команда практически нигде не описана, но очень сильно помогает
в настройке работы pipe и в понимании работы системы в целом.


Параметр mask можно установить в all. Казалось бы - это то что нужно
и каждый адрес будет выделен в отдельную queue,
но нет. mask all создает отдельные очереди не только для адресов, но еще и для
протоколов. Кроме того разграничиваются как входящие так и исходящие адреса.
В результате получается полный хаос - создается море очередей, где
трафик делится по интернет адресам, протоколам и месным адресам.


Для себя я нашел следующее решение.
Создаем две очереди для входящего и исходящего трафика

ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff
ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-addr 0xffffffff


Далее запускаем в эти очереди трафик

ipfw add queue 1 ip from any to 192.168.0.0/24
ipfw add queue 11 ip from 192.168.0.0/24 to any


Таким образом очередь 1 будет являться образцом для создания очередей
с трафиком идущим на каждый отдельный ip нашей сети, а очередь 11
- соответственно примером для исходящего трафика с каждого нашего ip.
Эти четыре записи будут соответствовать тому как если бы мы
создали количество очередей соответствующее количеству IP адресов в нашей
сети и создали бы такое же количество правил для прохождения трафика и
разделили бы каждую запись на входящий и исходящий трафик.

Если Вам необходимо выделить еще несколько разных приоритетов,
для сильно вредных или сильно важных пользователей, то это можно сделать так:

#нормальным
ipfw queue 1 config pipe 1 weight 50 queue 20 mask dst-addr 0xffffffff
ipfw queue 11 config pipe 1 weight 50 queue 20 mask src-addr 0xffffffff
#вредным
ipfw queue 2 config pipe 1 weight 10 queue 20 mask dst-addr 0xffffffff
ipfw queue 21 config pipe 1 weight 10 queue 20 mask src-addr 0xffffffff
#важным
ipfw queue 3 config pipe 1 weight 80 queue 20 mask dst-addr 0xffffffff
ipfw queue 31 config pipe 1 weight 80 queue 20 mask src-addr 0xffffffff

#важным
ipfw add queue 3 ip from any to 192.168.0.233
ipfw add queue 31 ip from 192.168.0.233 to any
#вредным
ipfw add queue 2 ip from any to 192.168.0.154
ipfw add queue 21 ip from 192.168.0.154 to any
ipfw add queue 2 ip from any to 192.168.0.102
ipfw add queue 21 ip from 192.168.0.102 to any
#всем остальным
ipfw add queue 1 ip from any to 192.168.0.0/24
ipfw add queue 11 ip from 192.168.0.0/24 to any


Вот что мы получим в итоге.

Например работают три пользователя 192.168.0.1, 2, 3
Наша pipe будет выглядеть следующим образом:


pipe 1
> очередь queue 1 для трафика с любого интернет адреса на 192.168.0.1
_____________________________________________________________

> очередь queue 1 для трафика с любого интернет адреса на 192.168.0.2
_____________________________________________________________

> очередь queue 1 для трафика с любого интернет адреса на 192.168.0.3
____________________________________________________________________
____________________________________________________________________

< очередь queue 11 для трафика с адреса 192.168.0.1 на любой адрес интернет
_____________________________________________________________________

< очередь queue 11 для трафика с адреса 192.168.0.2 на любой адрес интернет
_____________________________________________________________________

< очередь queue 11 для трафика с адреса 192.168.0.3 на любой адрес интернет


Итак, запускаем скрипт, исправляем ошибки и смотрим что получилось

ipfw pipe show


© napTu 3aH
< napTu @ front . ru >
19.05.2005
1226 Прочтений •  [Подробнее об использовании pipe-s в IPFW (ipfw limit pipe queue traffic shaper limit freebsd)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Подробнее об использовании pipe-s в... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка