Прежде чем мы узнаем о тестировании протокола, давайте разберемся:
Что такое протокол?
Когда компьютеры взаимодействуют друг с другом, существует общий набор правил и условий, которым должен следовать каждый компьютер. Другими словами, протоколы определяют, как данные передаются между вычислительными устройствами и по сетям.
Тестирование протокола
Тестирование протокола - это метод проверки протоколов связи в таких областях, как коммутация, беспроводная связь, VoIP, маршрутизация и т. Д. Основная цель тестирования протокола - проверка структуры пакетов, которые отправляются по сети, с использованием инструментов тестирования протоколов. Маршрутизаторы и коммутаторы используются во время тестирования для формирования частей тестируемых устройств и продуктов.
Маршрутизация и протоколы маршрутизации
Протоколы подразделяются на две категории проложенные протоколы и протоколы маршрутизации
- Маршрутизированные протоколы : маршрутизированные протоколы могут использоваться для отправки пользовательских данных из одной сети в другую. Он передает пользовательский трафик, такой как электронная почта, веб-трафик, передача файлов и т. Д. Маршрутизируемые протоколы - это IP, IPX и AppleTalk.
- Протоколы маршрутизации. Протоколы маршрутизации - это сетевые протоколы, определяющие маршруты для маршрутизаторов. Он используется только между маршрутизаторами. Например RIP, IGRP, EIGRP и т. Д.
Проще говоря, маршрутизатор похож на шину, используемую для транспортировки, а протоколы маршрутизации - это сигналы на дороге.
В зависимости от типа связи используются разные протоколы. Такие компании, как CISCO, JUNIPER, ALCATEL, производят сетевые устройства, такие как маршрутизаторы, модемы, точки беспроводного доступа и т. Д., Которые используют разные протоколы для связи, например, Cisco использует EIGRP, OSPF и т.д. Протокол маршрутизации шлюза) или OSPF (сначала откройте кратчайший путь) или любой другой протокол, работающий согласно соответствующему стандарту.
Типы компьютерных протоколов
Типы протоколов | Назначение протоколов |
---|---|
TCP / IP | Используется для отправки информации небольшими пакетами через Интернет. |
UDP / ICMP | Он используется для отправки небольшого количества информации в пакетах данных через Интернет. |
POP3 и SMTP | Используется для отправки и получения почты. |
Протокол передачи гипертекста | Он используется для передачи HTML-страницы в зашифрованном виде для обеспечения безопасности конфиденциальных данных. |
FTP | Он используется для передачи файлов по сети от одного узла к другому. |
* TCP / IP - протокол управления передачей / Интернет-протокол, UDP / ICMP - протокол дейтаграмм пользователя / протокол управляющих сообщений Интернет, POP3 / SMTP - протокол почтового отделения / простой протокол передачи почты, HTTP - протокол передачи гипертекста, FTP - протокол передачи файлов
Различные типы сетевых протоколов (L2 и L3)
Модель OSI имеет в общей сложности 7 уровней сетевого взаимодействия, в которых уровень 2 и уровень 3 очень важны.
- Уровень 2 : это уровень канала передачи данных. Mac-адрес, Ethernet, Token Ring и Frame Relay - все это примеры уровня канала передачи данных.
- Уровень 3 : это сетевой уровень, который определяет наилучший доступный путь в сети для связи. IP-адрес - это пример уровня 3.
Как проводить тестирование протокола
- Для тестирования протокола вам понадобится анализатор протокола и симулятор.
- Анализатор протоколов обеспечивает правильное декодирование наряду с анализом вызовов и сеансов. В то время как симулятор моделирует различные объекты сетевого элемента.
- Обычно тестирование протокола выполняется DUT (тестируемое устройство) для других устройств, таких как коммутаторы и маршрутизаторы, и настройка протокола в нем.
- После этого проверяется структура пакетов, отправленных устройствами.
- Он проверяет масштабируемость, производительность, алгоритм протокола и т. Д. Устройства с помощью таких инструментов, как lxNetworks, Scapy и Wireshark.
Типы тестирования для тестирования протокола
Тестирование протокола включает в себя тестирование функциональности, производительности, стека протоколов, взаимодействия и т. Д. Во время тестирования протокола в основном выполняются три проверки.
- Правильность : получаем ли мы пакет X, когда ожидали?
- Задержка : сколько времени требуется пакету для прохождения через систему.
- Пропускная способность : сколько пакетов мы можем отправить в секунду.
Тестирование протокола можно разделить на две категории. Стресс-тесты, тесты на надежность и функциональные тесты. Стресс-тесты и тесты надежности включают нагрузочное тестирование, стресс-тестирование, тестирование производительности и т. Д., В то время как функциональное тестирование включает отрицательное тестирование, тестирование на соответствие, тестирование совместимости и т. Д.
- Тестирование на соответствие : протоколы, реализованные в продуктах, тестируются на соответствие, такие как IEEE, RFC и т. Д.
- Тестирование совместимости: тестируется совместимость для разных поставщиков. Это тестирование выполняется после тестирования на соответствие на соответствующей платформе.
- Тестирование сетевых функций: Функциональные возможности сетевых продуктов проверяются в соответствии с проектным документом. Например, такими функциями могут быть безопасность портов на коммутаторе, ACL на маршрутизаторе и т. Д.
Примеры тестовых случаев для тестирования протоколов сетевых устройств
Вот пример тестового примера для маршрутизаторов.
Название теста | Тестовые кейсы |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Инструменты для тестирования протокола
Давайте обсудим наиболее важные инструменты тестирования, используемые для проверки протоколов.
Scapy для изготовления пакетов
Scapy - это мощная интерактивная программа для обработки пакетов. Это позволяет вам
- Создать пакеты
- Расшифровать пакеты в сети
- Захватывайте пакеты и анализируйте их
- Вводить пакеты в сеть
Таким образом, scapy в основном выполняет две функции: получает ответы и отправляет пакеты . Вы определяете пакеты, он отправляет их, получает ответы, сопоставляет запросы с ответами и возвращает список пар пакетов и список несовпадающих пакетов.
Он также может обрабатывать другие вещи, такие как трассировка-маршрутизация, модульные тесты, атаки или обнаружение сети, разработка новых протоколов, зондирование и т. Д.
Scapy позволяет нам писать скрипт Python, который позволяет нам выполнять такую задачу, как отправка и получение пакетов или их прослушивание. Например, scapy может обнюхивать пакет данных с помощью скрипта Python. Команда открытия getdit введена в редакторе
#gedit scapysniff.py#! / usr / bin / env pythonиз scapy.all import *а = нюхать (счетчик = 10)a.nsummary ()сохранить и изменить режим файла на исполняемую форму# chmod + x scapysniff.py# ./scaotsbuff.py
Он будет обнюхивать 10 пакетов, и как только он перехватит 10 пакетов, он распечатает сводку. Scapy также как массив команд для одновременной отправки и получения пакетов
Скачать Scapy
Инструменты Wireshark для анализа
Инструменты, используемые для тестирования протокола - Wireshark. Это позволяет захватывать пакеты в реальном времени и отображать их в удобочитаемой форме. Это позволяет вам глубоко копаться в сетевом трафике и проверять отдельные пакеты с помощью цветового кодирования и фильтров.
Wireshark захватывает пакеты, которые помогают определить, когда устанавливается сеанс, когда было инициировано точное перемещение данных, сколько данных отправляется каждый раз и т. Д.
Wireshark имеет набор разнообразных функций, в том числе:
- Тщательная проверка сотен протоколов, которые постоянно добавляются
- Запись в реальном времени и автономный анализ
- Богатый анализ VoIP
- Стандартный трехпанельный браузер
- Работает на нескольких платформах, таких как Windows, Linux, OSX и т. Д.
- Захваченные сетевые данные можно просматривать через графический интерфейс.
- Расшифровка поддерживает множество протоколов, таких как IPsec, ISAKMP, SSL / TLS.
- Данные в реальном времени можно считывать с Ethernet, банкомата, Bluetooth, USB, токена и т. Д.
- Вывод можно экспортировать в CSV, XML, обычный текст и т. Д.
Скачать Wireshark
TTCN
TCCN - это стандартный язык тестирования для определения сценариев тестирования и их реализации для тестирования протоколов. Набор тестов TCCN содержит множество тестовых примеров, написанных на языке программирования TTCN, и используется для тестирования реактивных систем или поведенческого тестирования .
Например, автомат по продаже кофе, который дает вам кофе при вставке долларовой монеты, но не реагирует, если в него вставлено что-то меньше доллара. Для программирования таких машин используется язык TCCN3. Чтобы кофемашина реагировала на вставку монеты, мы должны написать компонент TCCN-3, который ведет себя как кофемашина. Это позволяет нам запустить наш тест до того, как настоящая кофемашина станет доступной в качестве продукта. Как только это будет сделано, мы подключим набор тестов TCCN3 к внешнему устройству.
Тестовая система излучает стимулы (долларовая монета) и получает ответы (кофе). Адаптер стимулов получает стимулы от тестовой системы и передает их тестируемой системе. Адаптер ответа ожидает ответов тестируемой системы и передает их тестовой системе.
TCCN3 можно использовать в различных областях, например
- Мобильная связь (LTE, WiMAX, 3G и т. Д.)
- Широкополосные технологии (ATM, DSL)
- Платформы промежуточного программного обеспечения (веб-службы, CORBA и т. Д.)
- Интернет-протокол (SIP, IMS, IPv6)
- Смарт-карты
- Автомобильная промышленность (AutoSAR, MOST, CAN)
В TCCN мы можем определить
- Наборы тестов
- Тестовые кейсы
- Шаги тестирования
- Объявить переменные
- Объявить таймеры
- Создавайте PDU и т. Д.
TCCN может быть интегрирован с типами систем других языков, такими как ASN.1, XML, C / C ++. Основной язык TCCN3 существует в текстовом формате помимо других форматов, таких как табличные, графические и презентационные.