Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Разработка программного обеспечения для тестиро...

Разработка программного обеспечения для тестирования TCP/IP сетей

Моя дипломная работа. Текст работы — https://drive.google.com/file/d/0BwxameAbLvVydzFJRkcwOU8wVkE/edit?usp=sharing , Исходные коды — https://github.com/korovyansk/Beaver.

Alex Korovyansky

June 10, 2010
Tweet

More Decks by Alex Korovyansky

Other Decks in Education

Transcript

  1. Разработка программного обеспечения для тестирования TCP/IP сетей Выполнил: студент группы

    МП-503 Коровянский Алексей Научный руководитель: к. т. н., доцент Лавров Дмитрий Николаевич Омск 2010
  2. Цель работы • Разработка программного обеспечения для тестирования и анализа

    TCP/IP сетей • Основные требования к ПО: – Пассивная и активная генерация трафика – Поддержка большинства протоколов TCP/IP – Работа в локальной сети Ethernet – Поддержка Windows NT и Linux – Возможность расширения – Совместимость с существующими средствами 2
  3. Генерация трафика Пассивная • Процесс создания и отправки сетевых пакетов

    • Обучение сетевых специалистов и решение учебных задач • Визуальный редактор пакетов Активная • Интерактивное взаимодействие с сетью на основе сценария • Тестирование и администрирование сетей • Распределенная система: консоль управления и оконечные точки 3
  4. Поставленные задачи • Изучить сетевые принципы и технологии • Получить

    представление о стеке TCP/IP, и его базовых протоколах • Проанализировать существующие аналоги и существующие средства достижения цели • Реализовать программное обеспечение на основе выбранных средств 4
  5. Средства генерации трафика Функциональность / средство WinPcap/ libpcap Pcap-обертки libdnet

    Unix-сокеты Windows-сокеты dpkt scapy Формирование произвольного IP-пакета + + + + +/– + + Формирование произвольного Ethernet-кадра + + + + – + + Поддержка таблиц маршрутизации и ARP-кэша – – + – – – + Передача и прием трафика + + + + + – + Определение сетевых интерфейсов + + + + + – + Разбор протоколов TCP/IP – + – +/– +/– + + Восстановление структуры пакета – + – – – +/– + 5
  6. Средства достижения цели • Также были рассмотрены средства: – Построения

    графического интерфейса пользователя (Qt, GTK+, Tk, Swing) – Сериализации объектов (protobuf, XML, pickle) – Создания интерпретатора сценариев (Interpreter, Java Reflection, Python) • Была проведена оценка возможности использования рассмотренных средств в языках программирования: C++, C#, Java, Python 6
  7. Выбранные средства • В результате, для достижения цели были выбраны

    следующие средства: – Генерация трафика: scapy – Сериализация объектов: protobuf – Выполнение сценариев: Python – Создание графического интерфейса: GTK+ – Язык программирования: Python 7
  8. Визуальный редактор • Трехоконный интерфейс • Шаблон MVC для абстракций

    пакета и набора пакетов • Визуальное редактирование • Передача созданных пакетов • Поддержка pcap-формата • Возможность расширения за счет плагинов 8
  9. Распределенная система • Консоль управления: – Интерфейс командной строки –

    Интерпретация языка Python – Базовое API – Возможность расширения API – Локализация интерфейса и дополнение ввода • Оконечная точка: – Выполнение сценариев – Сценарий представляет собой скрипт на Python – Прием, запуск/остановка, возврат результата сценария и другие возможности – TCP и UDP сервер • Сетевой протокол: – Клиент-серверная модель – Сериализация объектов сообщений – Аутентификация RSA 9
  10. Результаты • Созданное ПО является инструментом решения широкого круга задач,

    в том числе: • Администрирование сетей – Анализ безопасности сети – Анализ производительности сетевых устройств – Анализ производительности сетевых сервисов • Обучение сетевых специалистов – Структура и принципы работы протоколов – Практическое администрирование сетей 11