Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Отслеживание TCP соединений


Автор: AcAlex 24.5.2009, 13:52
Привет всем.
У меня возникла проблема.
Мне надо написать программу, которая будет перехватывать пакеты и расчитывать параметры TCP соединений под Linux.
Перехват пакетов я сделал, с помощью libpcap, но я не знаю как можно расчитать параметры TCP соединений.
Мне нужны следующие параметры:
Длительность соединения (сек.)
Сколько байт получено и передано
Количество ошибочных фрагментов и т.д.

Все параметры находятся по этой ссылке http://kdd.ics.uci.edu/databases/kddcup99/task.html

Может есть какие нибудь библиотеки? И можно ли вообще все эти параметры расчитать?

Выслушаю все идеи.
Заранее спасибо.

Автор: MAKCim 24.5.2009, 17:28
Цитата(AcAlex @  24.5.2009,  13:52 Найти цитируемый пост)
Длительность соединения (сек.)

парсить TCP заголовок и ловить моменты появления SYN, FYN битов

Цитата(AcAlex @  24.5.2009,  13:52 Найти цитируемый пост)
Сколько байт получено и передано

тупо инкрементировать счетчик на величину данных TCP сегмента

Цитата(AcAlex @  24.5.2009,  13:52 Найти цитируемый пост)
Количество ошибочных фрагментов и т.д.

тут сложнее
скажем так, нужно считать: если одно и то же значение номера ACK фигурирует более чем в одном пакете, то количество ошибочных фрагментов равно грубо N - 1, где N - количество появления этого ACK номера

Автор: AcAlex 24.5.2009, 18:23
MAKCim, все так и делаю, кроме "количество ошибочных фрагментов" - я считал через флаг RST(бит, установливаемый в 1 в TCP-пакете, отправляемом в ответ на получение неверного TCP-пакета).

Автор: MAKCim 24.5.2009, 19:10
Цитата(AcAlex @  24.5.2009,  18:23 Найти цитируемый пост)
все так и делаю

в чем тогда вопрос?

Автор: AcAlex 25.5.2009, 15:57
Да когда я писал пост - я не знал как  реализовать отслеживание соединений.
Но к тому времени как ты ответил я додумался   smile 
Спасибо за ответ - теперь я знаю что двигаюсь в нужном направлении.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)