Network Emulator Toolkit
Сегодня я хочу поведать вам об одной интересной программе, а именно Network Emulator Toolkit. Данный софт позволяет эмулировать различные «помехи» в сети (эмуляция плохих каналов связи). Обычно нужно это для разработчиков софта, что бы сымитировать медленный канал с потерями. Я же использовал данный софт для обкатки работы технологий BranchCache и при написании статьи про SMB. В моем примере была эмуляция большой латентности сети, Avg.Time=200, но это далеко не все возможности. А теперь краткий обзор.
Принцип работы довольно прост: Встраивается специальная прослойка, которая отвечает за все «проблемы» в сети. В результате прежде чем выбросить пакет в среду или принять из среды идет обработка на основе настроек.
Установка
Итак, начнем. Кратко пробежим по установке.
Видно, что установка дело простое. Нет огромной кучи настроек и различных конфигураций. Все делает в 4 щелчка.
Работа в NET
Главное окно программы выглядит следующим образом
![]()
Создание фильтров
Теперь для работы необходимо создать один или несколько фильтров. Configuration -> New Filter или CTRL+F.
![]()
Фильтры используются для фильтрации области применений вышестоящих правил. В данном меню можно выбрать несколько вариантов:
- All Network — вся сеть, т.е. все данные, проходящие через хостовую машину, будут попадать под критерий. И в последующием будут обрабатываться.
- IPv4/IPv6 — тут можно задать определенные IP адреса в сети, которые мы хотим обрабатывать.
- Так же есть возможность выбрать различные протоколы, такие как: ICMP, ICMPv6, TCP, UDP, ESP, AH. А к примеру для TCP можно выбрать еще и определенный порт или набор портов.
- Фильтры могут быть привязаны к одной сетевой карте или сразу ко всем.
Такими вот нехитрыми действиями, можно создать достаточно сложную структуру фильтрации. Например, можно создать различные связки IP адресов и протоколов (TCP к примеру еще и с портами). Что даст просто огромные возможности по эмуляции сетевых соединений.
Я создал несколько фильтров и теперь главное окно выглядит вот так:
![]()
Вот такими хитрыми «бабочками» обозначаются текущие фильтры. Так же сразу видно к какому сетевому адаптеру привязаны фильтры.
Создание обработчиков (New Link)
Следующим этапом будет создание обработчиков для наших фильтров. Данные обработчики позволяют нам манипулировать сетевым соединением: Создавать задержки на канале, потери пакетов и прочии радости жизни для разработчика.
Для создания Configuration -> New Link или CTRL+L.
![]()
Хочу заметить, что сначала мы редактируем параметры на входящего трафика. После того как мы нажмем ОК, появится аналогичное окно, но редктировать будем параметры исходящего трафика.
Loss
Давайте пройдемся кратко по всем пунктам в этой вкладке (Loss или потери):
- No Loss — нет никаких потерь пакетов.
- Periodic Loss — К примеру, хотим терять каждый 102 пакет.
- Random Loss — Периодические потери. Задаем «уровень потерь»
- Burst Loss — «Взрыв потерь», т.е. потери будут набегать спонтанно и кучей.
- Gilbert-Eliot Loss — Совсем крутая штука, только не понял как работает. Можно почитать тут.
Error
Так же есть возможность эмулировать ошибки на канале связи. Ошибки могут быть в битах или полностью в пакетах, за что отвечает нижний переключатель.
- No Error — Нет ошибок
- Random Error — Периодические потери. Задаем «уровень потерь»
- Gilbert-Eliot Loss — Совсем крутая штука, только не понял как работает. Можно почитать тут.
Latency
Вот этим пунктом я пользовался. Тут можно задавть задержки на канале.
- No latency — Нет задержек
- Fixed — Фиксированный размер
- Uniform Distributed — Равномерное распределение
- Normal Distributed — Нормальное распределение (в чем отличие — непонятно)
- Linear — Линейное
- Burst — Всплески
Bandwidth & Queue
В данной закладке можно управлять «шириной канала», т.е. скоростью. А так же можно «рулить» очерью.
- Brandwidth — Ширина канала связи
- Queue — Очередь. Есть куча параметров. Начиная от типа очереди и заканчивая ее длиной. Так же есть магический параметр RED Queue.
Disconnection
Можно управлять разъединениями.
- No Disconnection — Нет разрывов связи
- Pereodic — Периодически. Параметры так же задаются.
Я создал несколько различных фильтров и теперь главное окно выглядит вот так:
![]()
Запуск
Для работы необходимо зайти в Action -> Start или F5
![]()
Мониторинг
После запуска можно снять статистику. Для этого есть вкладки внизу.
Мониторинг трафика:
![]()
Мониторинг пакетов:
![]()
Сейчас все выключено и поэтому пусто.
Заключение
Такой софт действительно незаменимый для тестовой среды.
Баканов Денис
MCSE+S; MCITP EA
Popularity: unranked [?]





