20111002 information retrieval raskovalov_lecture3
Test traffic 100G generator and analyzer
1. Использование FPGA для генерации
и анализа Ethernet-трафика на
высоких скоростях (10G, 40G, 100G)
Шевчук Иван
НТЦ Метротек
2. Шевчук Иван, НТЦ Метротек, 2015
План
● Генератор и анализатор трафика: краткий
обзор требований
● Проблемы программной реализации
● Преимущества использования FPGA
● Наш опыт: комплекс Metrotek B100
2
3. Шевчук Иван, НТЦ Метротек, 2015
Параметры генерации трафика
● Заголовок
● Полезные данные
● Скорость генерации (создаваемая
нагрузка)
3
5. Шевчук Иван, НТЦ Метротек, 2015
Как регулируется нагрузка?
Preamble
MAC
Destination
MAC
Source
Type/
Length
Data
Payload
FCS IFG
● Расстояние от одного до другого пакета определяется IFG
● Регулируя IFG, можно создавать различные профили трафика
● “Точность” выставления IFG и определяет качество генерации
трафика
● Для обеспечения максимальной нагрузки требуется
выставление минимального IFG (12 байт)
5
7. Шевчук Иван, НТЦ Метротек, 2015
Что делает анализатор трафика?
● Просматривает данные на приёме
○ Анализирует целостность и корректность
доставки
● Фиксирует время приёма пакета
○ Чем точнее будет вычислено время приёма, тем
лучше. (Для измерения задержки и джиттера)
● Увеличивает различные счётчики
(принятые пакеты/байты, и.т.д.)
7
9. Шевчук Иван, НТЦ Метротек, 2015
Программная реализация
● При отправке пакета данные проходят
через различные слои операционной
системы:
○ IFG определятся на самом низком уровне:
итоговая точность выставления может оказаться
неприемлемой
9
10. Шевчук Иван, НТЦ Метротек, 2015
Программная реализация
● Архитектура современных компьютеров
не позволяет прокачивать через систему
значительный объем трафика
(необходимо обработать до 200 Гбит/c в
случае 100G)
10
11. Шевчук Иван, НТЦ Метротек, 2015
Решение проблемы
● Отказ от использования операционной
системы и традиционных процессоров
● Необходимо максимально приблизиться к
физическому уровню, используя
интегральные схемы, аналогичные тем,
что применяются в сетевых картах
11
12. Шевчук Иван, НТЦ Метротек, 2015
Интегральные схемы
● ASIC
○ Дешевые в большой партии
○ НЕ перепрограммируемые
■ Могут быть настроены или
“заалгоритмизированы”
● FPGA
○ Перепрограммируемые на уровне примитивных
блоков (триггеры, счетчики, логические элементы)
12
13. Шевчук Иван, НТЦ Метротек, 2015
Особенности использования FPGA
● Низкоуровневые оптимизации для конкретной
задачи
● Возможность реконфигурации - ошибки не
страшны!
● Многие блоки (“части” схемы) уже готовы
● Интуитивный параллелизм операций
13
14. Шевчук Иван, НТЦ Метротек, 2015
Особенности использования FPGA
● Управление данными с точностью до такта
● Свободный выбор необходимой архитектуры
(например, ширина используемого “слова”)
● Отсутствие дебага в виде привычного printf, gdb,
valgrind - значительное усложнение разработки
● Другой подход к разработке: необходимо
использовать специальные симуляторы
14
15. Шевчук Иван, НТЦ Метротек, 2015
Генератор на FPGA
● Рассчитывается требуемый IFG в виде
количества тактов
● Происходит передача пакета
● Генератор ждет необходимое количество
тактов
15
16. Шевчук Иван, НТЦ Метротек, 2015
Анализатор на FPGA
● Время приема пакета проставляется с
точностью десятков наносекунд
максимально близко к PHY
● Пакет хранится только во внутренней
памяти чипа: не используется внешняя
память (типа DDR)
● Все счётчики тоже хранятся внутри чипа
16
17. Шевчук Иван, НТЦ Метротек, 2015
Разрядность имеет значение
● Чаще всего обработка происходит не по
байтам, а словами:
○ 10G - 8 байт ( 64 бит )
○ 100G - 64 байта ( 512 бит )
● Это вытекает из-за ограничений
интегральных схем по максимальной
частоте
17