Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Восстановить TCP соединение по списку пакетов 
:(
    Опции темы
Leksey
Дата 12.3.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



Есть следующая задача - 

Дамп файл , созданный программой tcpdump, нужно проанализировать и выдать следующую информацию - 
Для каждого tcp соединения выдать набор пар размер пакета и сколько раз пакеты такого размера были отправлены/приняты.
 
  Собственно мне не совсем понятна формулировка и что такое tcp соединение. В моем понимании это канал который устанавливается при открытии сокета. Но как эту информацию можно получить из списка пакетов?
PM MAIL   Вверх
jonie
Дата 13.3.2009, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



C++ никогда не слышал про TCP, каналы и сокеты. Может быть вам стоит почитать учебник по сетям?


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
mrbrooks
Дата 13.3.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: нет
Всего: 306



Как я пологаю автор собирается писать что то типа снифера. Ну дык по этому и поиск в гугл. Но для начала автор должен учесть замечания 
jonie  smile 
PM MAIL   Вверх
azesmcar
Дата 13.3.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 3
Всего: 211



Для сниффера могу посоветовать pcap lib. Если это конечно не спортивный интерес.
PM   Вверх
Leksey
Дата 13.3.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



Снифер как раз мне не надо писать. 
Учебник по сетям я читал как-то несколько лет назад.
Просто интересно было узнать может кто-нибудь сталкивался с похожей задачей, какие поля tcp пакетов можно использовать чтобы понять что они из одного соединения и тп.
PM MAIL   Вверх
vinick
Дата 13.3.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 6
Всего: 22



Цитата(Leksey @  13.3.2009,  10:39 Найти цитируемый пост)
, какие поля tcp пакетов можно использовать чтобы понять что они из одного соединения и тп. 

TCP соединение однозначно определяется по 4 параметрам - адрес и порт отправителя, адрес и порт получателя.

PM MAIL ICQ Jabber   Вверх
Leksey
Дата 13.3.2009, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 12.12.2004

Репутация: нет
Всего: 1



Спасибо. 

Но dump может содержать несколько tcp соединений по одним адресам и порту. Такая информация может быть восстановлена?

Это сообщение отредактировал(а) Leksey - 13.3.2009, 11:48
PM MAIL   Вверх
vinick
Дата 13.3.2009, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 9.6.2005

Репутация: 6
Всего: 22



Цитата(Leksey @  13.3.2009,  11:48 Найти цитируемый пост)
Но dump может содержать несколько tcp соединений по одним адресам и порту.

Если дамп достаточно большой, то такая ситуация в теории возможна. Можно анализировать поток на наличие спец-пакетов означающих разрыв соединения, типа FIN или RST. Подробнее лучше посмотреть в спецификации протокола.
PM MAIL ICQ Jabber   Вверх
Олег2005
Дата 13.3.2009, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 421
Регистрация: 26.5.2005
Где: Рига Латвия

Репутация: 6
Всего: 11



Для TCP имеется понятие TCP-сессия.
Нормальная сессия всегда начинается сегментом с флагом SYN и заканчивается флагом FIN.
Сессию можно восстановить с помощью сниффера -  что и делают профессиональные сниффера, такие как CommView.
Вам как видно восстанавливать не надо - тогда просто парсить текст дампа.
Флаги S и F видны в тексте дампа. 
PM MAIL WWW MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.