The OpenNET Project / Index page

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

6,6| FAQ по считанию траффика


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Date: Thu, 21 Jun 2001 14:17:29 +0000 (UTC)
From: [email protected]
Subject: 6,6| Re: FAQ по считанию траффика

Stepan Koltsov <[email protected]> wrote:

>>> 3) используя ipacctd (мой любимый).
>>> 
>>> ipacctd слушает на каком-нибудь порту. Весь траффик надо туда либо дивертить
>>> (divert), либо тиить (tee). При это firewall конфигурирутется приблизительно
>>> так:
>>> 
>>> ipfw add allow tcp from any to ${host} 22
>>> ipfw add allow tcp ${host} 22 to any
>>> # Это надо, чтобы можно было починить когда что-то сломается.
>>> ipfw add divert ${ipacctd_port} any from any to any
>>> 
>>> divert надо использовать тогда, когда считание траффика -- первоочередная
>>> задача, поскольку если ipacctd не запущен, инет на работает, в противном
>>> случае -- tee.
> 
>> И еще нужно учесть такой минус, что на каждый пакет будет происходит
>> два контекст свитча, которых нет в двух предыдущих схемах.
> 
> Не понял.

ipfw работает в kernel mode, а divert делается в user mode.

То есть, работает какой-нибудь софт, типа апача. Тут в эзернет
пришёл пакет, произошёл интеррапт - управление перешло к ядру,
драйвер карты пакет вытащил из карточки и передал его файрволлу.
Файрволл посмотрел правила и дивертнул пакет ipacctd.
В процессе диверта произошло переключение в user mode.
Поскольку предыдущий процесс в юзер моде был апач, то нужно
установить другие page tables == сбросить tlb.
Пакет обрабатывается ipacctd и возвращается взад в ядро.
Ядро обработало пакет совсем и возвращается в апач.
Опять меняем page tables == сбрасываем tlb.

Ну и по ходу дела, сохраняем/восстанавливаем все регистры,
переключаемся из ринга 3 в ринг 0 и обратно,
частями или полностью теряем закэшированное в L1 и L2 кэшах.

Вот что такое контекст-свитч.

-- 
Игорь Сысоев

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>



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

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