Возможно вы искали: 'Ratchet & Clank Collec...'

May 15 2025 18:14:57
  • Как сделать 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
Главная » Статьи » Разное » [FreeBSD] - ACCEPT_FILTER_* в конфигурации ядра (socket filter bsd)

[FreeBSD] - ACCEPT_FILTER_* в конфигурации ядра (socket filter bsd)

Ключевые слова: socket, filter, bsd, (найти похожие документы)

Date: Tue, 9 Apr 2002 22:17:00 +0000 (UTC)
From: Lev Walkin <vlm@netli.com>
Newsgroups: fido7.ru.unix.bsd
Subject: [FreeBSD] - ACCEPT_FILTER_* в конфигурации ядра

> что полезного можно извлечь при использовании следующих опций в конфигурации
> ядра? комментарии в LINT отсутствуют. читать исходники не предлагать.
>
> === Cut ===
> # Statically Link in accept filters
> options ACCEPT_FILTER_DATA
> options ACCEPT_FILTER_HTTP
> === Cut ===


Это поддержка фильтров для accept(2)'а. Позволяет процессу не
переключаться на обслуживание нового коннекта, пока по этому
коннекту не пришли данные или запрос HTTP, соответственно.
Позволяет выжать еще несколько процентов производительности
из тяжело нагруженных серверов, принимающий большое количество
коннектов в единицу времени. Технология придумана в Yahoo,
затем причесана и помещена в OS в качестве полезной фичи.
Используется, например, в web-сервере Apache. Механизм
использования этой фичи такой, что неважно, вкомпилирована
ли она в ядро с использованием вышеупомянутых опций, или нет:
если в ядре этого еще нет, то будет подгружен соответствующий
модуль.


--
Lev Walkin
vlm@netli.com



From: Igor Sysoev <http://www.sysoev.ru>


accept-фильтры

Оригинал: http://sysoev.ru/freebsd/accept-filters.html

19.06.2002

Два года назад во FreeBSD появились accept-фильтры. Они позволяют не
передавать в accept() пришедшее соединение до тех пор, пока не придёт
первый пакет с данными (фильтр dataready) или заголовок HTTP-запроса
(фильтр httpready). Использование фильтров в Apache (а в нём они
поддерживаются, начиная с версии 1.3.14) позволяет уменьшить число
процессов. В серверах, использующих select(), poll() или kqueue(),
например, в thttpd-2.22, фильтры уменьшают число открытых файлов. И
наконец, в обоих случаях accept-фильтры уменьшают число переключений
контекста процесса.

Идея accept-фильтра принадлежит одному из основателей Yahoo! Дэвиду
Фило (David Filo). В Yahoo! использовался фильтр для запросов HTTP.
15.06.2000 Alfred Perlstein внёс во FreeBSD 5.0-CURRENT код этого
фильтра и добавил фильтр для первого пакета с данными. Для включения
фильтра нужно было с помощью setsockopt(2) установить опцию
SO_DELAYACCEPT или SO_HTTPACCEPT для сокета, который принимал
соединения. Но этот вариант просуществовал не больше трёх суток - уже
18.06.2002 он был удалён и 20.06.2000 во FreeBSD 5.0-CURRENT появилась
новая, более общая реализация accept-фильтров. Теперь фильтры
включались с помощью опции SO_ACCEPTFILTER, вместе с которой
передавался указатель на структуру, описывающую фильтр. Для
современных фильтров в этой структуре нужно передать только имя
фильтра - dataready или httpready. В отличие от первой реализации,
каждый фильтр нужно явно указать в конфигурации ядра:

options ACCEPT_FILTER_DATA
options ACCEPT_FILTER_HTTP

или же загрузить как ядерный модуль. Именно это вариант появился
28.07.2000 во FreeBSD 4.1-STABLE. Подробнее об использовании
accept-фильтрах можно прочитать в setsockopt(2), accf_data(9) и
accf_http(9).

Надо заметить, что первоначальная реализация фильтра httpready была
далека от суровой реальности, так как поддерживала только протоколы
HTTP/1.x и не поддерживала протокол HTTP/0.9 - если первый пришедший
пакет начинался со строки "GET ", то фильтр не передавал соединение в
очередь завершённых соединений до тех пор, пока не находил во входном
потоке пустую строку. Однако 6.09.2000 во FreeBSD 5.0-CURRENT и
20.09.2000 во FreeBSD 4.1-STABLE (практически перед самым
4.1.1-RELEASE) фильтр httpready был переписан - при получении запроса,
непохожего на "^(GET|HEAD) .+ HTTP/1.x", соединение сразу же
помещается в очередь завершённых соединений.

Оба фильтра - dataready и httpready не предполагали никаких таймаутов,
но при переполнении очереди входящих соединений вызывалась функция
sodropablereq(), которая удаляла старые незавершённые соединения или
же соединения, завершённые с точки зрения TCP/IP, но незавершённые с
точки зрения фильтра.

После того, как во FreeBSD 5.0-CURRENT и 4.4-STABLE появился syncache,
с accept-фильтрами стали возникать некоторые проблемы. Первая из них,
по-видимому, наблюдалась только с httpready фильтром - после того, как
соединение было передано accept()'у, следущий за ним read() ничего не
мог прочитать. Эта ошибка была исправлена 21.12.2001 во FreeBSD
5.0-CURRENT и 27.12.2001 во FreeBSD 4.5-PRERELEASE. Недавно
разработчики обнаружили, что сервер, использующий accept-фильтры,
может быть легко подвержен DoS-атаке. Как уже говорилось, до syncache
избытком незавершённых соединений занималась функция sodropablereq(),
но в syncache эта функция не используется и в результате очередь легко
переполняется соединениями, незавершёнными с точки зрения фильтра.
26.04.2002 ошибка была исправлена во FreeBSD 5.0-CURRENT, а
1.05.2002 - во FreeBSD 4.5-STABLE.

Была идея на основе accept-фильтров реализовать ядерный http-сервер,
который бы возвращал в accept() те запросы, которые не мог обработать
сам, но она, по-видимому, так и осталась нереализованной.

Надо заметить, что accept-фильтры - не единственное решение отложить
accept() до прихода данных. В Linux 2.4.x можно установить опцию
SO_DEFER_ACCEPT, а в Windows NT 3.51 появилась функция AcceptEx().

(C) Igor Sysoev http://www.sysoev.ru
729 Прочтений •  [[FreeBSD] - ACCEPT_FILTER_* в конфигурации ядра (socket filter bsd)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• [FreeBSD] - ACCEPT_FILTER_* в конфи... 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 | Донейт | Статистика | Команда | Техническая поддержка