|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форумы
Программирование под UNIX (Public)
| |||
|---|---|---|---|
| Изначальное сообщение | [Проследить за развитием треда] | ||
| "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() ![]() (??) on
30-Май-05, 08:45 (MSK)
| |
Для решения задачи учета траффика возможно несколько путей. В любом случае нам надо этот траффик откуда-то снять. В принципе, эта задача не представляет собой большой сложности и может быть решена различными путями. Далее с содержимым заголовков пакетов необходимо произвести действия по выделению полезной информации и ее дальнейшей записи в систему сбора статистики. Хотелось бы более подробно обсудить со знающими людьми ряд тонких моментов. Для более конкретного разговора будем считать, что целевая платформа - линукс, хотя я с удовольствием прочитаю и про другие платформы. | |
| Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх | |
| Оглавление |
|
| Индекс форумов | Темы | Пред. тема | След. тема |
| Сообщения по теме |
| 1. "Несколько вопросов по учету траффика" | |
Сообщение от MaximKuznetsov ![]() on
30-Май-05, 21:59 (MSK)
| |
| |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 2. "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() ![]() (??) on
31-Май-05, 07:26 (MSK)
| |
>Лучший вариант - select, все ж это просто обёртка над системным вызовом | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 3. "Несколько вопросов по учету траффика" | |
Сообщение от MaximKuznetsov ![]() on
01-Июн-05, 01:09 (MSK)
| |
>ULOG - это одна из возможностей netfilter. А вот что за зверь netlink? | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 4. "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() ![]() (??) on
01-Июн-05, 08:33 (MSK)
| |
Да, почитал мельком man netlink и понял, что штука и впрямь весьма стоящая, только разбираться с ней, чувствую, будет весьма сложно. | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 5. "Несколько вопросов по учету траффика" | |
Сообщение от MaximKuznetsov ![]() on
01-Июн-05, 09:37 (MSK)
| |
двойной обсчёт - это вообще очень правильно на самом деле. | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 6. "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() ![]() (??) on
01-Июн-05, 12:20 (MSK)
| |
Я вообще хочу сделать простую для использования, безопасную в работе и понятную в настройке и обслуживании систему - благо это надо и мне, и многим другим людям. Спасибо за мыло - когда/если у меня что-то выйдет из этой затеи - пошлю Вам исходники "на экспертизу" :) На данный момент все еще очень сырое, и показывать это кому-либо несколько рановато. Вообще же надеюсь, что потом мое творчество кому-нибудь пригодиться. | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 7. "Несколько вопросов по учету траффика" | |
Сообщение от Dig ![]() on
07-Июн-05, 13:39 (MSK)
| |
Пишу похожую программу, так вот при большом потоке трафика (5-10 мегабит) и юзеров 100 получаем что дерево может вырождаться (происходит это очень быстро) в список и нахождение нужно узла в дереве отнимает много процесорного времени. Далее я переделал это с использованием AVL дерева, но в данном случае накладными есть раходы на правые и левые повороты (балансировку). Поискав в инете как это можно сделать еще эффективнее наткнулся на red-black деревья которые больше всего подходят в данном случае . Реализацию вставки, удаления узлов в дерево можно взять в программе cnupm на сайте разработчика http://pdp-11.org.ru/~form/cnupm . | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 8. "Несколько вопросов по учету траффика" | |
Сообщение от Maxim Kuznetsov ![]() on
07-Июн-05, 17:02 (MSK)
| |
когда нужно было разделять трафик по тарифным зонам, | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 9. "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() (??) on
08-Июн-05, 07:08 (MSK)
| |
Да, если дерево будет вырождаться, то прийдется с этим бороться. Хотя в моей реализации я таких проблемм пока не предвижу (возможно тут я не прав). Вообще про всяческие деревья и вообще про алгоритмы есть здоровские книги, в частности "Фундаментальные алгоритмы на С++". | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 11. "Несколько вопросов по учету траффика" | |
Сообщение от Dig ![]() on
08-Июн-05, 11:38 (MSK)
| |
>когда нужно было разделять трафик по тарифным зонам, | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 15. "Несколько вопросов по учету траффика" | |
Сообщение от Serega_S ![]() ![]() (??) on
14-Июн-05, 16:21 (MSK)
| |
Может я что-то не так понял, но зачем городить огород с raw-сокетами? iptables же всё уже считает. При этом решается проблема с NAT. Стоит только прописать соответствующие правила в -t FORWARD. Я написал небольшую программку-парсер, которая брала статистику из иптаблеса и ложила в отчёт (без заморочек с БД) - благо сеть домашняя. Всё это дело обёртывается в скрипты и получается довольно универсвльно ИМХО. Юникс-вэй - не изобретать то, что уже изобретено :-) | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 10. "Несколько вопросов по учету траффика" | |
Сообщение от Kompot ![]() (??) on
08-Июн-05, 11:20 (MSK)
| |
Возможно select лучшее решение для данного случая. Альтернативой может быть отдельная нитка на чтение сокета и дальше семафорами... Такие решения несколько сложнее, но зато нет пустого хождения по циклам. | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 12. "Несколько вопросов по учету траффика" | |
Сообщение от dimus ![]() (??) on
09-Июн-05, 10:54 (MSK)
| |
>Возможно select лучшее решение для данного случая. Альтернативой может быть отдельная нитка | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 13. "Несколько вопросов по учету траффика" | |
Сообщение от Forth ![]() ![]() (ok) on
09-Июн-05, 12:05 (MSK)
| |
Вызов recv(как и многие другие вызовы) может быть прерван при доставке какого-либо сигнала, только этот сигнал не должен игнорироваться, и не должен стоят флаг SA_RESTART, и многие сигналы с действиями по умолчанию приводят к завершению процесса, так что их лучше обрабатывать, в этом случае вызов recv будет прерван с errno==EINTR. А еще можно установить в fcntl флаг O_NONBLOCK на дескрипторе, тогда нет данных для чтения - вызов recv будет прерван с EAGAIN. Вот только тут я неуверен, что fcntl можно использовать на сокете, наверное надо сначала его fdopen, а потом read оттуда.:) А может и нет. Надеюсь кто-нибудь компетентный прояснит ситуацию. | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 14. "Несколько вопросов по учету траффика" | |
Сообщение от MaximKuznetsov ![]() on
11-Июн-05, 00:08 (MSK)
| |
> Сейчас я сделал по такому принцину... | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 16. "Несколько вопросов по учету траффика" | |
Сообщение от Kompot ![]() (??) on
17-Июн-05, 17:19 (MSK)
| |
>>Возможно select лучшее решение для данного случая. Альтернативой может быть отдельная нитка | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 17. "Есть готовый биллинг..." | |
Сообщение от Kuzin Andrey ![]() ![]() on
17-Июн-05, 18:37 (MSK)
| |
Я уже второй год разрабатываю биллинг. Обсчитывает сеть из 400 пользователей. Из вкусностей - обсчет всех пакетов по одному правилу iptables (-A FORWARD -j QUEUE) с использованием библиотеки libipq, | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
| 18. "Есть готовый биллинг..." | |
Сообщение от Эйс ![]() (ok) on
17-Июн-05, 23:59 (MSK)
| |
>Я уже второй год разрабатываю биллинг. Обсчитывает сеть из 400 пользователей. Из | |
| Удалить | Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх |
|
Архив | Удалить |
Индекс форумов | Темы | Пред. тема | След. тема |
| Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] | |
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |