Home
Contents

CommView - Мониторинг и анализ сети

Prev Page Next Page
 
Введение
О программе CommView
Что нового
Работа с программой
Краткий обзор
Выбор сетевого адаптера для работы
Текущие IP-соединения
Пакеты
Log-файлы
Просмотр Log-файлов
Правила
Универсальные правила
Предупреждения
Реконструкция TCP-сессий
Реконструкция UDP-потоков
Поиск пакетов
Статистика и отчёты
Использование псевдонимов (алиасов)
Генератор пакетов
Визуальный конструктор пакетов
Определение изготовителя NIC
Захват по расписанию
Удаленный мониторинг (Remote Agent)
Использование RPCAP
Сбор расшифрованного SSL-трафика
Сбор трафика на логическом адаптере обратной связи (loopback)
Информация о портах
Установка опций
Часто задаваемые вопросы (FAQ)
Анализ VoIP
Введение
Работа с анализатором VoIP
Сессии SIP and H.323
Потоки RTP
Регистрации
Станции
Ошибки
Log-файлы звонков
Отчет
Воспроизведение звонка
Просмотр VoIP log-файлов
Работа со списками в анализаторе VoIP
Файлы NVF
Дополнительные возможности
Перехват больших объемов трафика
Запуск нескольких копий программы
Невидимый режим
Параметры командной строки
Обмен данными с вашим приложением
Пользовательский модуль декодирования
Формат Log-файлов CommView
Покупка и поддержка

Обмен данными с вашим приложением

В CommView реализован простой и понятный интерфейс доступа к TCP/IP. Он позволяет вашему приложению в режиме реального времени обрабатывать пакеты, принятые с помощью CommView. Начиная с версии 5.0 есть возможесть передавать пакеты аналогично тому, как это делает Packet Generator (генератор пакетов).

Принцип работы

Вам следует запустить CommView, задав ему в командной строке специальный ключ MIRROR, указывающий программе на какой IP-адрес и в какой TCP-порт дублировать захватываемые пакеты.

Примеры:

CV.EXE mirror:127.0.0.1:5555  // дублирует пакеты на loopback, в TCP-порт 5555

CV.EXE mirror:192.169.0.2:10200  // дублирует пакеты на 192.169.0.2, в TCP-порт 10200

Когда CommView запущен с этим ключом, он пытается установить TCP-соединение с указанным IP-адресом по указанному номеру порта. Это означает, что ваше приложение уже должно быть запущено и должно быть готовым к приему по указанному порту. Если CommView не может установить соединение, он будет делать повторные попытки каждые 15 секунд. То же самое будет происходить при разрыве соединения: каждые 15 секунд CommView будет пытаться восстановить его. Если соединение успешно установлено, CommView будет передавать захватываемые пакеты по мере их прихода, в режиме реального времени.

Формат данных

Данные передаются в формате NCF. Описание формата смотрите в последней главе данного раздела.

Передача пакетов

Ваше приложение может не только принимать пакеты, но и посылать их, аналогично генератору пакетов. Данные могут быть переданы в CommView с помощью все того же TCP-соединения, через которое происходил прием. Формат данных прост – двухбайтовое беззнаковое целое число, затем сам пакет. Если адаптер не открыт или он не поддерживает прием пакетов, пакет отбрасывается без уведомления.

Примеры проектов

Ниже приведены два простых примера программ, ожидающих входящих соединений, выделяющих пакеты из потока и отображающих "сырые" данные.

·http://www.tamos.ru/products/commview/samp_mirr_c5.zip. Проект в Visual Studio с исходным текстом на C++.

·http://www.tamos.ru/products/commview/samp_mirr_d5.zip. Проект на Delphi с исходником на Pascal. Для компиляции проекта вам понадобятся ICS-компоненты от Francois Piette, которые доступны на http://www.overbyte.be.

Пропускная способность (Bandwidth)

При пересылке данных на удалённый компьютер, убедитесь, что линия связи между ними имеет достаточную пропускную способность, чтобы передать все перехваченные данные. Если CommView собирает данные с интенсивностью 500 кб/сек, а линия связи способна передавать только 50кб/сек, неизбежно возникнут "заторы", приводящие к разным неприятностям (например, в зависимости от версии Windows, winsock может прекратить передавать данные вообще). Если вам требуется более гибкое решение, использующее буферизацию и дистанционное управление – попробуйте воспользоваться CommView Remote Agent.