Это команда ns, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
ns - сетевой симулятор (версия 2)
СИНТАКСИС
ns [ файл [ аргумент аргумент ... ]]
ОПИСАНИЕ
ns представляет собой симулятор сети, управляемый событиями. Реализован расширяемый движок моделирования.
в C ++, который использует язык команд MIT Object Tool, OTcl (объектно-ориентированная версия
Tcl) в качестве интерфейса команд и конфигурации. Предыдущая версия симулятора, т.е.
Версия ns 1 использовала язык команд Tool, Tcl в качестве языка конфигурации. В
текущая версия по-прежнему поддерживает сценарии моделирования, написанные на Tcl, предназначенные для версии ns
1 тренажер.
Эта страница руководства описывает некоторые интерфейсы для ns. Для гораздо более полного
документацию, см. "ns Notes and Documentation" [13], доступный в дистрибутиве.
и в сети.
Симулятор вызывается через ns интерпретатор, расширение ванили отклш
командная оболочка. Моделирование определяется сценарием OTcl. Скрипты используют Симулятор
Класс в качестве основного интерфейса для механизма моделирования. Используя методы, определенные в
этого класса определяется топология сети, настраиваются источники и приемники трафика,
вызывается моделирование и собирается статистика. Основываясь на полном
функциональный язык, произвольные действия могут быть запрограммированы в конфигурацию.
Первым шагом в симуляции является получение экземпляра класса Simulator.
Экземпляры объектов в классах создаются и уничтожаются в нс с помощью new и удалять
методы. Например, экземпляр объекта Simulator создается следующим
команда:
например, set ns [новый симулятор]
Топология сети реализуется с использованием трех примитивных строительных блоков: узлов, ссылок и
агенты. В классе Simulator есть методы для создания / настройки каждого из этих зданий.
блоки. Узлы создаются с узел Метод симулятора, который автоматически назначает
уникальный адрес для каждого узла. Связи создаются между узлами, чтобы сформировать топологию сети.
с симплекс-ссылка и дуплексный канал методы, устанавливающие однонаправленный и двунаправленный
ссылки соответственно. Агенты - это объекты, которые активно управляют симуляцией. Агент
можно рассматривать как процессы и / или транспортные объекты, которые работают на узлы это может быть
конечные хосты или маршрутизаторы. Источники и приемники трафика, модули динамической маршрутизации и различные
Модули протокола - это все примеры агентов. Агенты создаются путем создания экземпляров объектов.
в подклассе класса Agent, т. е. Агент / тип где тип определяет характер
агент. Например, агент TCP создается с помощью команды:
установить tcp [новый агент / TCP]
После создания агенты присоединяются к узлам с прикрепленный агент Симулятор
метод. Каждому агенту автоматически назначается номер порта, уникальный для всех агентов на
данный узел (аналог порта tcp или udp). Некоторые типы агентов могут иметь источники
прикреплены к ним, в то время как другие могут генерировать свои собственные данные. Например, вы можете прикрепить
Источники ftp и telnet для агентов tcp, но агенты с постоянным битрейтом генерируют
собственные данные. Приложения прикрепляются к агентам с помощью прикрепить приложение метод.
С каждым объектом связаны некоторые параметры конфигурации, которые можно изменять.
Параметры конфигурации - это переменные экземпляра объекта. Эти параметры
инициализируется во время запуска значениями по умолчанию, которые можно просто прочитать из экземпляра
переменные объекта. Например, $ tcp набор окно_ возвращает размер окна по умолчанию
для объекта tcp. Значения по умолчанию для этого объекта можно явно переопределить с помощью
простое назначение либо до начала моделирования, либо динамически, пока моделирование
в процессе. Например, размер окна для конкретного сеанса TCP может быть изменен.
следующим образом.
$ tcp установить window_ 25
Значения по умолчанию для параметров конфигурации всех объектов класса впоследствии
created также можно изменить простым назначением. Например, мы можем сказать
Окно установки агента / TCP_ 30
чтобы все будущие создания tcp-агентов по умолчанию имели размер окна 30.
События планируются в нс с помощью at Симуляторный метод, позволяющий выполнять процедуры OTcl.
вызывается в произвольные моменты времени моделирования. Эти обратные вызовы OTcl обеспечивают гибкую
механизм симуляции - их можно использовать для запуска или остановки источников, дампа статистики,
создавать экземпляры сбоев канала, перенастраивать топологию сети и т. д.
началось через пробег метод и продолжается до тех пор, пока не останется больше событий для обработки.
На этот раз первоначальный вызов пробег команда возвращается, и сценарий Tcl может
выйти или вызвать другой прогон моделирования после возможной реконфигурации. В качестве альтернативы
симуляцию можно преждевременно остановить, вызвав остановить команду или выходом из скрипта
со стандартом Tcl выход команда.
Пакеты пересылаются по маршруту кратчайшего пути от источника к месту назначения, где
метрика расстояния - это сумма затрат на ссылки, пройденные от источника к
место назначения. Стоимость ссылки по умолчанию 1; метрика расстояния - это просто прыжок
считать в этом случае. Стоимость ссылки может быть изменена с помощью стоят Симуляторный метод. А
Модель статической топологии используется по умолчанию в нс, в которой состояния узлов / ссылок
не изменяются в процессе моделирования. Сетевая динамика может быть указана с помощью
методы, описанные в разделе МЕТОДЫ СЕТЕВОЙ ДИНАМИКИ. Также статическая одноадресная маршрутизация - это
по умолчанию, при котором маршруты предварительно вычисляются по всей топологии один раз перед
запуск моделирования. Способы включения и настройки динамической одноадресной и многоадресной рассылки
маршрутизация описана в СПОСОБАХ МАРШРУТИЗАЦИИ UNICAST и МЕТОДАХ МУЛЬТИКАСТНОЙ МАРШРУТИЗАЦИИ.
разделы соответственно.
NS КОМАНДЫ
В этом разделе описаны основные команды для создания строительных блоков моделирования.
(т.е. объекты узла, ссылки и агента) и для запуска моделирования.
Первым шагом в запуске моделирования, как указано ранее, является получение экземпляра
Класс Simulator, у которого есть методы для настройки и запуска моделирования. На протяжении всего этого
раздел имя переменной объекта $ ns используется для обозначения объекта Simulator.
$ нс узел
Создайте новый объект узла и верните ему дескриптор.
$ нс список всех узлов
Возвращает список всех узловых объектов, определенных в моделировании.
$ нс симплекс-ссылка node1 node2 bw задерживать напишите
Создайте новую однонаправленную ссылку между node1 и node2 с пропускной способностью bw в битах
в секунду и задержка распространения канала задерживать в считанные секунды. node1 и node2 must have
уже был создан с узел метод. bw и задерживать по умолчанию 1.5 Мбит / сек
и 100 мс соответственно. Значения по умолчанию можно изменить, изменив соответствующие
параметры конфигурации объекта DelayLink (см. раздел ОБЪЕКТЫ DELAYLINK).
node1 и node2 должен быть уже создан с узел метод. Очередь
дисциплина ссылки определяется типа, который может быть ДропТейл, вопросы, СФК, ДРР,
КРАСНЫЙ, КБК, or CBQ / WRR. Ссылка DropTail - это простая очередь FIFO, которая отбрасывает последнюю
пакет в очереди при переполнении очереди. Ссылка FQ предназначена для Fair Queuing (для
подробности см. [?]). Ссылка SFQ предназначена для стохастической справедливой организации очередей (подробности см. [?]).
Ссылка DRR предназначена для дефицитного циклического планирования (подробности см. [9]). КРАСНАЯ ссылка
- очередь со случайным ранним отбрасыванием (подробнее см. [2]). Ссылка CBQ предназначена для классов на основе
организация очередей с использованием поэтапного планировщика циклического перебора пакетов (подробности см. в [3]). А
Связь CBQ / WRR предназначена для организации очередей на основе классов с взвешенным планировщиком циклического перебора. Если
используется многоадресная маршрутизация, требуются ссылки с метками интерфейса. Такие ссылки
создается путем установки переменной Simulator NumberInterfaces_ на 1. Все последующие
созданные ссылки будут иметь ярлыки интерфейса. Отключить создание интерфейсов просто
сбросить NumberInterfaces_ на 0 (это значение по умолчанию).
$ нс дуплексный канал node1 node2 bw задерживать напишите
Создайте новую двунаправленную ссылку между node1 и node2 с пропускной способностью bw в битах
в секунду и задержка распространения канала задерживать в считанные секунды. node1 и node2 must have
уже был создан с узел метод. bw и задерживать по умолчанию 1.5 Мбит / сек
и 100 мс соответственно. Значения по умолчанию можно изменить, изменив соответствующие
параметры конфигурации объекта DelayLink (см. раздел ОБЪЕКТЫ DELAYLINK).
Дисциплина очереди ссылки определяется типа, который может быть ДропТейл, FQ
СФК, ДРР, КРАСНЫЙ, КБК, or CBQ / WRR. Ссылка DropTail - это простая очередь FIFO, которая отбрасывает
последний пакет в очереди при переполнении очереди. Ссылка FQ предназначена для честных
Организация очередей (подробнее см. [?]). Ссылка SFQ предназначена для стохастической справедливой организации очередей (для
подробности см. [?]). Ссылка DRR предназначена для дефицитного циклического планирования (подробности
см. [9]). КРАСНАЯ ссылка - это очередь случайного раннего отбрасывания (подробнее см. [2]). CBQ
ссылка предназначена для организации очередей на основе классов с использованием планировщика циклического перебора пакетов (для
подробности см. [3]). Связь CBQ / WRR предназначена для организации очередей на основе классов с взвешенным раундом.
планировщик робина. Если используется многоадресная маршрутизация, ссылки с метками интерфейса
требуется. Такие ссылки создаются путем установки переменной Simulator NumberInterfaces_
на 1. Все создаваемые впоследствии ссылки будут иметь ярлыки интерфейса. Отключить
создание интерфейсов просто сбрасывает NumberInterfaces_ в 0 (это значение по умолчанию).
$ нс ссылке. node1 node2
Возвращает ссылку на узлы, соединяющие ссылку node1 и узел2. Это полезно
для установки параметров конфигурации ссылки и для вызова методов трассировки (см. ССЫЛКА
Раздел ОБЪЕКТЫ).
$ нс предел очереди node1 node2 предел очереди
Установите максимальное количество пакетов, которые могут быть поставлены в очередь на ссылке в направлении
от node1 в node2 в очередь-лимит. Связь между node1 и node2 должна иметь
уже создан.
$ нс задерживать node1 node2 интервал времени
Установите задержку ссылки в направлении от node1 в node2 в интервал времени
секунд. Связь между node1 и node2 уже должна быть создана.
$ нс стоят node1 node2 Cost-val
Назначьте стоимость Cost-val к связи между узлами node1 и узел2. Расходы
назначенные ссылкам используются при вычислении одноадресных маршрутов. Все ссылки по умолчанию
стоимость 1.
$ нс многорычажная список узлов bw задерживать напишите
Соединяет узлы, указанные в список узлов сеткой дуплексных звеньев (для имитации
широковещательная LAN) с пропускной способностью bw в битах в секунду и задержка распространения канала
задерживать в считанные секунды. список узлов это список дескрипторов узловых объектов, которые уже
был создан с узел метод. bw и задерживать по умолчанию 1.5 Мбит / сек и 100
мс соответственно. Значения по умолчанию можно изменить, изменив соответствующие
параметры конфигурации объекта DelayLink (см. раздел ОБЪЕКТЫ DELAYLINK).
Дисциплина очереди ссылки определяется типа, который может быть ДропТейл, FQ
СФК, ДРР, КРАСНЫЙ, КБК, or CBQ / WRR. Ссылка DropTail - это простая очередь FIFO, которая отбрасывает
последний пакет в очереди при переполнении очереди. Ссылка FQ предназначена для честных
Организация очередей (подробнее см. [?]). Ссылка SFQ предназначена для стохастической справедливой организации очередей (для
подробности см. [?]). Ссылка DRR предназначена для дефицитного циклического планирования (подробности
см. [9]). КРАСНАЯ ссылка - это очередь случайного раннего отбрасывания (подробнее см. [2]). CBQ
ссылка предназначена для организации очередей на основе классов с использованием планировщика циклического перебора пакетов (для
подробности см. [3]). Связь CBQ / WRR предназначена для организации очередей на основе классов с взвешенным раундом.
планировщик робина.
$ нс многоканальность интерфейсов список узлов bw задерживать напишите
Соединяет узлы, указанные в список узлов сеткой дуплексных каналов с интерфейсами
(для моделирования широковещательной ЛВС) с пропускной способностью bw в битах в секунду и ссылка
Задержка распространения задерживать в считанные секунды. список узлов список дескрипторов узловых объектов
которые уже были созданы с узел метод. bw и задерживать по умолчанию 1.5
Мбит / сек и 100 мс соответственно. Значения по умолчанию можно изменить, изменив
соответствующие параметры конфигурации объекта DelayLink (см. ОБЪЕКТЫ DELAYLINK
раздел). Дисциплина очереди ссылки определяется типа, который может быть
ДропТейл, FQ СФК, ДРР, КРАСНЫЙ, КБК, or CBQ / WRR. Ссылка DropTail - это простой FIFO
очередь, которая отбрасывает последний пакет в очереди при переполнении очереди. Ссылка FQ
предназначен для справедливой организации очередей (подробности см. [?]). Ссылка SFQ предназначена для стохастической ярмарки.
Организация очередей (подробнее см. [?]). Ссылка DRR предназначена для дефицитного циклического планирования
(подробнее см. [9]). КРАСНАЯ ссылка - это очередь случайного раннего отбрасывания (подробности см.
[2]). Канал CBQ предназначен для организации очередей на основе классов с использованием циклического перебора пакетов.
планировщик (подробнее см. [3]). Связь CBQ / WRR предназначена для организации очередей на основе классов с
взвешенный циклический планировщик.
new Агент /напишите
Создать агента типа напишите который может быть:
Нулевой - Приемник трафика
LossMonitor - приемник трафика, отслеживающий параметры потерь
TCP — БСД Тахо TCP
TCP / FullTcp - Полный Reno TCP с двусторонними соединениями [11]
TCP / Reno - BSD Reno TCP
TCP / Newreno - модифицированная версия BSD Reno TCP
TCP / Vegas - Vegas TCP (из Аризонии через USC)
TCP / Sack1 - BSD Reno TCP с выборочными ACK
TCP / Fack - BSD Reno TCP с пересылкой ACK
TCPSink - стандартный приемник TCP
TCPSink / DelAck - приемник TCP, который генерирует отложенные ACK
TCPSink / Sack1 - приемник TCP, который генерирует выборочные ACK
TCPSink / Sack1 / DelAck - TCP-приемник с отложенным подтверждением и выборочными ACK
UDP - UDP транспорт
RTP - агент RTP
Сессия / RTP -
RTCP - агент RTCP
ИВС / Источник -
ИВС / Приемник -
СРМ -
Связанные методы, параметры конфигурации и соответствующие переменные состояния
с этими объектами подробно обсуждается в следующих разделах. Обратите внимание, что некоторые
агенты, например TCP или SRM, не генерируют свои собственные данные. Таким агентам нужны источники
прикреплены к ним для генерации данных (см. методы подключения источника и трафика в
Раздел «ОБЪЕКТЫ АГЕНТОВ»).
$ нс прикрепленный агент узел агент
Прикрепите объект агента агент в узел. " агент и узел объекты должны иметь
уже создан.
$ нс агент отделения узел агент
Отсоединить объект агента агент от узел.
$ нс соединяться SRC DST
Установите двустороннюю связь между агентом SRC и агент летнее время Returns
ручка для SRC агент. Был определен вспомогательный метод для облегчения создания
и присоединение агента к каждому из двух узлов и установление двустороннего соединения
между ними. (см. раздел СТРОИТЕЛЬСТВА).
$ нс планировщик использования напишите
Используйте планировщик событий типа напишите в симуляциях. напишите является одним из List, Heap,
Календарь, RealTime. Планировщик списка используется по умолчанию. Планировщик кучи использует
куча для организации очереди событий. Планировщик календаря использует очередь календаря для отслеживания
событий. Планировщик RealTime используется в режиме эмуляции, когда симулятор
взаимодействует с внешним агентом.
$ нс at время процедуры
Оценивать процедуры во время моделирования времени. Процедура может быть глобальной
доступная функция (proc) или метод объекта (instproc). Эта команда может быть
используется для запуска и остановки источников, динамической перенастройки симулятора, дампа
статистика с заданными интервалами и т. д. Возвращает идентификатор события.
$ нс отменить Ид
Удалить событие, указанное идентификатором события Ид из очереди событий.
$ нс сейчас
Вернуть текущее время симуляции.
$ нс ген-карта
Просматривает топологию моделирования и перечисляет все объекты, которые были
созданы и как они связаны друг с другом. Это полезно для отладки
скрипты моделирования.
ns-версия
Вернуть строку, определяющую текущую версию ns. Этот метод
выполняется интерпретатором в глобальном контексте.
нс-случайный [ семя ]
If семя отсутствует, вернуть псевдослучайное целое число от 0 до 2 ^ 31-1.
В противном случае заполните генератор псевдослучайных чисел с помощью семя и вернуть семя
использовал. Если семя равно 0, выберите начальное семя эвристически (которое меняется в зависимости от
последовательные заклинания). Этот метод выполняется в глобальном контексте
переводчик.
Ns имеет другие возможности для генерации случайных чисел; пожалуйста, смотрите документацию для деталей
[13].
ОБЪЕКТ ИЕРАРХИЯ
Краткое описание иерархии объектов в ns представлен в этом разделе. Этот
описание не претендует на полноту. Он был предоставлен, чтобы показать, как
методы и параметры конфигурации, связанные с различными объектами, наследуются.
Для получения более полной информации см. «Примечания и документация по ns» и автоматически
сгенерированная информация библиотеки классов на веб-странице NS.
Объекты связаны с параметрами конфигурации, которые могут быть динамически заданы и
запрашиваемые, и переменные состояния, которые могут быть запрошены (обычно изменяются, только когда состояние
переменные необходимо сбросить для другого прогона моделирования).
Параметры конфигурации представляют собой параметры моделирования, которые обычно фиксируются во время
полная симуляция (например, пропускная способность канала), но при желании может быть изменена динамически.
Переменные состояния представляют собой значения, специфичные для данного объекта и его
реализации.
На следующей диаграмме изображена часть иерархии объектов:
Симулятор
мульти сим
Узел
Ссылка
Простая ссылка
CBQLink
ДаммиСсылка
ЗадержкаСсылка
Очередь
DropTail
FQ
СФК
СРБ
RED
CBQ
CBQ / WRR
ОчередьМонитор
ED
Флоумон
Поток
ртОбъект
Логика маршрута
Агент
rtProto
статический
Сессия
DV
Напрямую
Значение Null
ПотеряМонитор
TCP
FullTCP
Северный олень
Ньюрено
Мешок1
Fack
TCPSink
ДелАк
Мешок1
ДелАк
UDP
RTP
RTCP
IVS
Источник
Получатель
SRM
Сессия
RTP [как это различие от агента / CBR / RTP]
Приложение
Ftp
Telnet
трафик
Экспо
Парето
ЦБ РФ
Прослеживать
интегратора
образцы
Полную автоматически сгенерированную иерархию объектов см. По ссылке «иерархия классов».
(что указывает на http://www-sop.inria.fr/rodeo/personnel/Antoine.Clerget/ns/) на нс
веб-страница. (Спасибо Антуану Клерже за это!)
Например, любой метод, поддерживаемый TCP агент также поддерживается Северный олень или
Мешок1 агент. Параметры конфигурации по умолчанию также наследуются. Например, $ tcp набор
окно_ 20 где $ tcp - агент TCP, определяет размер окна TCP по умолчанию для обоих TCP и
Северный олень объекты.
ОБЪЕКТ МЕТОДЫ
В следующих разделах описаны методы, параметры конфигурации и переменные состояния.
связаны с различными объектами, а также для включения сетевой динамики, Unicast
маршрутизация, многоадресная маршрутизация и поддержка отслеживания и мониторинга. Класс объекта
указывается неявно именем переменной объекта в описании. Например, $ tcp
подразумевает объектный класс tcp и все его дочерние классы.
NODE / УЗЕЛ ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не проверялся на актуальность для данного выпуска.]
$ node id
Возвращает идентификатор узла.
$ node соседи
Возвращает список объектов соседнего узла.
$ node прикреплять агент
Прикрепите агента типа агент к этому узлу.
$ node DETACH агент
Отключить агент типа агент из этого узла.
$ node агент порт
Вернуть дескриптор агента, подключенного к порту порт на этом узле. Возвращает пустой
строка, если порт не используется.
$ node сброс
Сбросьте все агенты, подключенные к этому узлу. Это повторно инициализирует состояние
переменные, связанные с различными агентами на этом узле.
$ node ртОбъект?
Возвращает дескриптор rtObject, если существует экземпляр объекта в этом
узел. Только узлы, которые участвуют в протоколе динамической одноадресной маршрутизации, будут иметь
этот объект (см. раздел СПОСОБЫ МАРШРУТИЗАЦИИ UNICAST и ОБЪЕКТЫ RTOBJECT).
$ node вступить в группу агент группы
Добавить агент, указанный дескриптором объекта агент в группу хостов многоадресной рассылки
идентифицируется по адресу группа. Это приводит к тому, что протокол членства в группе
организовать соответствующий многоадресный трафик для достижения этого агента. Группа многоадресной рассылки
адрес должен быть в диапазоне 0x8000 - 0xFFFF.
$ node аллокаддр
Возвращает адрес группы многоадресной рассылки в возрастающем порядке при каждом вызове, начиная с
0x8000 и оканчивается на 0xFFFF.
$ node формировать формировать
Установите форму узла на "формировать". При вызове до того, как симулятор начнет
run, он изменяет форму узла по умолчанию в файле трассировки nam. По умолчанию
форма узла "" "круг" ""
$ node цвет цвет
Установите цвет узла на цвет. Его можно вызвать в любое время, чтобы изменить текущий
цвет узла в названном файле трассировки, если он есть.
$ node получить атрибут имя
Получить указанный атрибут имя узла. В настоящее время объект Node имеет два
атрибуты: COLOR и ВГК. Примечание: эти буквы должны быть заглавными.
$ node надстройка имя цвет формировать
Добавьте отметку (в файле трассировки nam) с помощью цвет и формировать вокруг узла. Форма может
быть "" "круг" "", "" "шестиугольник" "" и "" "квадрат" "" (с учетом регистра). Добавленная отметка
будут идентифицированы имя.
$ node удалить отметку имя
Удалите отметку с помощью имя в данном узле.
Нет никаких переменных состояния или параметров конфигурации, специфичных для класса узла.
LINK ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не проверялся на актуальность для данного выпуска.]
$ Link след-динамика ns идентификатор файла
Отследите динамику этой ссылки и запишите результат в идентификатор файла дескриптор файла. ns is
экземпляр объекта Simulator или MultiSim, созданный для вызова
симуляция (см. раздел «ТРАССА И МЕТОДЫ МОНИТОРИНГА» для получения информации о формате выходной трассировки).
$ Link обратный вызов трассировки ns CMD
Отслеживайте все пакеты по ссылке с помощью обратного вызова CMD. Cmd вызывается для каждой трассировки
событие (enqueue, dequeue, drop) с текстом, который будет регистрироваться как параметры.
(См. Описание файла журнала для получения этой информации.) Демонстрация трассировки
обратные вызовы есть в программе tcl / ex / callback_demo.tcl в раздаче.
$ Link цвет цвет
Установите цвет объекта Link. Его можно вызвать в любое время, чтобы изменить текущий
цвет ссылки в названном файле трассировки, если он есть.
$ Link получить атрибут имя
Получить указанный атрибут имя ссылки. В настоящее время объект Link имеет три
атрибуты: COLOR, ОРИЕНТАЦИЯи QUEUE_POS.
В настоящее время следующие две функции не должны вызываться напрямую. Использовать $ нс дуплекс-ссылка
op вместо. См. Соответствующий раздел на этой странице руководства.
$ Link ориентировать или
Установите ориентацию ссылки на или. При вызове до того, как симулятор начнет
run, он изменяет ориентацию ссылки по умолчанию в файле трассировки nam, если есть
один. Если ориентация не указана для какой-либо ссылки (-ов), nam будет использовать автоматический макет.
Ориентация объекта Link по умолчанию не указана.
$ Link очередьПос пост
Установите позицию в очереди ссылки на пост. При вызове перед запуском симулятора
для запуска он изменяет расположение очереди по умолчанию для симплексной ссылки в nam trace
файл, если он есть. пост определяет угол между горизонтальной линией и
строка, вдоль которой будут отображаться пакеты в очереди.
ПРОСТАЯ ССЫЛКА ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не проверялся на актуальность для данного выпуска.]
$ Link стоят Cost-val
MAKE Cost-val стоимость этой ссылки.
$ Link Стоимость?
Верните стоимость по этой ссылке.
Какие-либо параметры конфигурации или переменные состояния?
DELAYLINK ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не был проверен на актуальность версии.]
Объекты DelayLink определяют количество времени, необходимое пакету для прохождения ссылки.
Это определяется как размер / bw + задержка, где размер - размер пакета, bw - ссылка.
пропускная способность и задержка - это задержка распространения канала. Нет методов или состояния
переменные, связанные с этим объектом.
Конфигурация параметры
трафик_
Пропускная способность канала в битах в секунду.
задерживать_ Задержка распространения ссылки в секундах.
С этим объектом не связаны никакие переменные состояния.
СЕТЬ ДИНАМИКА МЕТОДЫ
В этом разделе описаны методы, позволяющие перемещать ссылки и узлы в топологии вверх и вниз.
по разным раздачам. Обычно следует использовать протокол динамической маршрутизации.
всякий раз, когда моделирование должно быть выполнено с сетевой динамикой. Обратите внимание, что статическая топология
модель по умолчанию в нс.
$ нс ртмодель модель параметры модели node1 [узел2]
Сделайте связь между node1 и node2 переключаться между состояниями вверх и вниз в зависимости от
к модели модели. Только в случае node1 указаны все ссылки, происходящие на
узел будет подниматься и опускаться в соответствии с указанным модели. параметры модели
содержит параметры, необходимые для соответствующей модели, и должен быть указан как
список, т.е. параметры должны быть заключены в фигурные скобки. модель может быть одним из
Детерминированный, экспоненциальное, Руководство по эксплуатации, След. Возвращает дескриптор объекта модели
соответствующий указанному модели.
В детерминированной модели параметры модели is [начальное время] интервал повышения пауза
[время окончания]. От начальное время ссылка создана для интервал повышения и
вниз для пауза к время окончания достигается. Значения по умолчанию для start-
time, up-interval, down-interval равны 0.5 с, 2.0 с, 1.0 с соответственно. время окончания
по умолчанию - конец симуляции. Время начала по умолчанию составляет 0.5 с, чтобы
позвольте вычислению протокола маршрутизации приостановиться.
Если используется экспоненциальная модель параметры модели имеет форму интервал повышения вниз-
интервал где время работы линии является экспоненциальным распределением вокруг среднего вверх
интервал и время простоя канала является экспоненциальным распределением вокруг среднего
даун-интервал. Значения по умолчанию для интервал повышения и пауза 10 и 1
соответственно.
Если используется ручная раздача параметры модели is at op в котором at указывает на
время, когда операция op должно произойти. op один из вверх, вниз Руководство
распределение может быть указано поочередно, используя rtmodel-at описанный метод
позже в разделе.
Если Trace указан как модель динамика связи / узла считывается из файла трассировки.
" параметры модели аргументом в этом случае будет дескриптор файла Tracefile
который имеет информацию о динамике. Формат файла трассировки идентичен формату трассировки.
вывод, сгенерированный методом связи трассировки и динамики (см. ТРАССИРОВКА И МОНИТОРИНГ
РАЗДЕЛ МЕТОДОВ).
$ нс rtmodel-удалить модель-ручка
Удалите экземпляр модели маршрута, указанный в модель-ручка.
$ нс rtmodel-at at op node1 [узел2]
Используется для указания времени включения и отключения связи между узлами. node1 и узел2.
Если только node1 даны все ссылки, происходящие на node1 будут подниматься и опускаться.
at время, когда операция op это может быть либо up or вниз должен быть
выполняется по указанной ссылке (ям).
ОЧЕРЕДЬ ОБЪЕКТЫ
Объект очереди - это общий класс объектов, способных удерживать и, возможно, маркировать или
отбрасывание пакетов по мере их прохождения через смоделированную топологию.
Конфигурация параметры
предел_ Размер очереди в пакетах.
заблокировал_
По умолчанию установлено значение false, это правда, если очередь заблокирована (невозможно
отправить пакет своему соседу по нисходящему потоку).
разблокировать_на_резюме_
По умолчанию установлено значение true, указывает, что очередь должна разблокироваться в этот момент.
последний отправленный пакет был передан (но не обязательно
полученный).
ОТКРЫТЫЙ ХВОСТ ОБЪЕКТЫ
Объекты Drop-tail являются подклассом объектов Queue, которые реализуют простую очередь FIFO. Там
не являются методами, специфичными для объектов с откидным хвостом. Единственный параметр конфигурации
is передний край_, который, если задано значение true, приводит к тому, что очередь ведет себя как перетаскивание с переднего края.
дисциплина в очередях. По умолчанию для этой переменной установлено значение false.
FQ ОБЪЕКТЫ
Объекты FQ являются подклассом объектов Queue, которые реализуют справедливую организацию очередей. Нет
методы, специфичные для объектов FQ.
Конфигурация параметры
секунд на байт_
С этим объектом не связаны никакие переменные состояния.
СФК ОБЪЕКТЫ
Объекты SFQ являются подклассом объектов Queue, которые реализуют организацию очередей Stochastic Fair. Там
не являются методами, специфичными для объектов SFQ.
Конфигурация параметры
максимальная очередь_
ковши_
С этим объектом не связаны никакие переменные состояния.
СРБ ОБЪЕКТЫ
Объекты DRR являются подклассом объектов очереди, которые реализуют циклическое планирование дефицита.
Эти объекты реализуют циклическое планирование дефицита между различными потоками (A
конкретный поток - это тот, который имеет пакеты с одним и тем же идентификатором узла и порта ИЛИ пакеты, которые
иметь один и тот же идентификатор узла). Также в отличие от других объектов с несколькими очередями, этот объект очереди
реализует единое разделяемое буферное пространство для различных потоков.
Конфигурация параметры
ковши_
Указывает общее количество сегментов, которые будут использоваться для хеширования каждого из
потоки.
блимит_
Указывает размер общего буфера в байтах.
квантовый_
Указывает (в байтах), сколько каждый поток может отправить за свою очередь.
маска_ mask_, когда установлено в 1, означает, что конкретный поток состоит из пакетов
имеющий тот же идентификатор узла (и, возможно, разные идентификаторы портов), в противном случае поток
состоит из пакетов, имеющих одинаковые идентификаторы узла и порта.
RED ОБЪЕКТЫ
КРАСНЫЕ объекты являются подклассом объектов очереди, которые реализуют случайное раннее обнаружение.
шлюзы. Объект может быть настроен на отбрасывание или отметку пакетов. Нет
методы, специфичные для КРАСНЫХ объектов.
Конфигурация параметры
байт_ Установите значение «true», чтобы включить КРАСНЫЙ «байтовый режим», где размер прибывающих
пакеты влияют на вероятность маркировки (отбрасывания) пакетов.
очередь в байтах_
Установите значение «true», чтобы измерить средний размер очереди в байтах, а не в байтах.
пакеты. Включение этой опции также вызывает молотить_ и максимальный порог_ быть
автоматически масштабируется средний размер пакета_ (Смотри ниже).
молотить_
Минимальный порог среднего размера очереди в пакетах.
максимальный порог_
Максимальный порог среднего размера очереди в пакетах.
средний размер пакета_
Приблизительная оценка среднего размера пакета в байтах. Используется при обновлении
вычисленный средний размер очереди после периода простоя.
q_вес_
Вес очереди, используемый в экспоненциально-взвешенном скользящем среднем для
расчет среднего размера очереди.
ждать_ Установите значение true, чтобы поддерживать интервал между отброшенными пакетами.
линтерм_
Поскольку средний размер очереди варьируется от «thresh_» до «maxthresh_»,
Вероятность отбрасывания пакета варьируется от 0 до «1 / linterm».
сетбит_
Установите значение "true", чтобы отмечать пакеты, устанавливая бит индикации перегрузки в
заголовки пакетов, а не отбрасываемые пакеты.
свисающий хвост_
Установите значение true, чтобы использовать drop-tail, а не random-drop или drop-from-front, когда
очередь переполняется или средний размер очереди превышает maxthresh_. Это
поведение по умолчанию. Для дальнейшего объяснения этих переменных см.
[2].
дроп-ранд_
Установите значение true, чтобы использовать random-drop, а не drop-tail или drop-from-front, когда
очередь переполняется или средний размер очереди превышает maxthresh_.
передний край_
Установите значение true, чтобы использовать перетаскивание спереди, а не падение с хвоста или случайное выпадение, когда
очередь переполняется или средний размер очереди превышает maxthresh_.
ns1-совместимый_
Установите значение true, чтобы избежать сброса счетчика с момента последнего отбрасывания пакета после
принудительный пакет отбрасывается. Это обеспечивает совместимость с предыдущим поведением
КРАСНОГО. По умолчанию установлено значение false.
entle_ Установите значение true, чтобы медленно увеличивать скорость отбрасывания пакетов с max_p до 1, поскольку
средний размер очереди колеблется от maxthresh до двойного maxthresh. По умолчанию
установлено значение false, а max_p резко увеличивается с max_p до 1, когда среднее значение
размер очереди превышает maxthresh.
Область Переменные
Ни одна из переменных состояния реализации RED недоступна.
CBQ ОБЪЕКТЫ
Объекты CBQ являются подклассом объектов Queue, которые реализуют организацию очередей на основе классов.
$ cbq вставить $ класс
Вставить класс трафика класс в структуру обмена ссылками, связанную со ссылкой
объект куб.
$ cbq связывать $ cbqclass $ id1 [$ id2]
Причина пакетов, содержащих идентификатор потока $ id1 (или те, что в диапазоне $ id1 в $ id2
включительно), чтобы быть связанным с классом трафика $ cbqclass.
$ cbq алгоритм $ alg
Выберите внутренний алгоритм CBQ. $ alg может быть установлен в одно из: "только предок",
"высший уровень" или "формальный".
CBQ / WRR ОБЪЕКТЫ
Объекты CBQ / WRR являются подклассом объектов CBQ, которые реализуют взвешенный циклический перебор.
планирование среди классов с одинаковым уровнем приоритета. Напротив, объекты CBQ реализуют
покадровое циклическое планирование между классами с одинаковым уровнем приоритета.
Конфигурация параметры
макспкт_
Максимальный размер пакета в байтах. Используется только объектами CBQ / WRR.
при вычислении максимальной пропускной способности для взвешенного циклического перебора
планировщик.
CBQКЛАСС ОБЪЕКТЫ
Объекты CBQClass реализуют классы трафика, связанные с объектами CBQ.
$ cbqclass установить параметры родителя окборроу выделить максидл PRIO уровень дополнительная задержка
Устанавливает несколько параметров конфигурации для класса трафика CBQ (см. Ниже).
$ cbqclass родителя [$ cbqcl | нет]
укажите родительский элемент этого класса в дереве обмена ссылками. Родитель может быть
указано как `` none '', чтобы указать, что этот класс является корневым.
$ cbqclass Newallot $a
Измените назначение ссылки этого класса на указанную сумму (в диапазоне от 0.0 до
1.0). Обратите внимание, что затронут только указанный класс.
$ cbqclass очередь установки $q
Установите объект Queue в составную структуру ссылок CBQ или CBQ / WRR. Когда CBQ
объект создается изначально, в нем нет внутренней очереди (только пакет
классификатор и планировщик).
Конфигурация параметры
okborrow_
- логическое значение, указывающее, что классу разрешено заимствовать полосу пропускания из своего
Родитель.
выделить_ - максимальная доля полосы пропускания канала, выделенная классу, выраженному
как действительное число от 0.0 до 1.0.
максидл_
это максимальное количество времени, которое может потребоваться классу для получения своих пакетов
в очереди до того, как им будет разрешено пересылать
приоритет_
- уровень приоритета класса по отношению к другим классам. Это значение может
диапазон от 0 до 10, и более одного класса могут существовать с одним и тем же приоритетом.
Приоритет 0 является наивысшим приоритетом.
уровень_ уровень этого класса в дереве обмена ссылками. Листовые узлы в дереве
считаются на уровне 1; их родители находятся на уровне 2 и т. д.
экстразадержка_
увеличить задержку, испытываемую отложенным классом, на указанное количество
секунд.
ОЧЕРЕДНОЙ МОНИТОР Объекты
Объекты QueueMonitor используются для отслеживания набора пакетов и байтов, прибытия, отправления и
падение счетчиков. Он также включает поддержку совокупной статистики, такой как средняя очередь.
размер и т. д. [см. ПРОСЛЕЖИВАНИЕ И МЕТОДЫ МОНИТОРИНГА].
$ queuemonitor сброс
сбросить все кумулятивные счетчики, описанные ниже (прибытий, отправлений и сбросов)
до нуля. Кроме того, сбросьте интеграторы и дискретизатор задержки, если он определен.
$ queuemonitor набор образцов задержки задержка самп_
Настройте объект Samples задержка самп_ для записи статистики о задержках в очереди.
задержка самп_ является дескриптором объекта Samples, т.е. объект Samples должен иметь
уже создан.
$ queuemonitor get-bytes-интегратор
Возвращает объект интегратора, который можно использовать для нахождения интеграла очереди.
размер в байтах. (см. раздел «Объекты интегратора»).
$ queuemonitor get-pkts-интегратор
Возвращает объект интегратора, который можно использовать для нахождения интеграла очереди.
размер в пакетах. (см. раздел «Объекты интегратора»).
$ queuemonitor Get-delay-samples
Возвращает объект Samples задержка самп_ для записи статистики о задержках в очереди (см.
Раздел «Образцы объектов»).
Для этого объекта нет никаких параметров конфигурации.
Область Переменные
размер_ Мгновенный размер очереди в байтах.
пктс_ Мгновенный размер очереди в пакетах.
родственники_
Общее количество прибывших пакетов.
преграды_
Общее количество байтов, содержащихся в полученных пакетах.
отъезды_
Общее количество отправленных (не отброшенных) пакетов.
bотъезды_
Общее количество байтов, содержащихся в отправленных пакетах (не
упавший).
капли_
Общее количество отброшенных пакетов.
капли_
Общее количество сброшенных байтов.
байтыInt_
Объект интегратора, который вычисляет интеграл размера очереди в байтах.
" сумма_ переменная этого объекта имеет текущую сумму (интеграл) очереди
размер в байтах.
pktsInt_
Объект интегратора, который вычисляет интеграл размера очереди в пакетах.
" сумма_ переменная этого объекта имеет текущую сумму (интеграл) очереди
размер в пакетах.
QUEUEMONITOR / ED Объекты
Этот производный объект может отличать обычное отбрасывание пакетов от рано капли.
Некоторые очереди различают обычные отбрасывания (например, отбрасывания из-за исчерпания буфера) от других
выпадение (например, случайное выпадение в КРАСНЫХ очередях). В некоторых случаях полезно
Различают эти два типа капель.
Область Переменные
электронные капли_
Количество пакетов, которые были отброшены `` раньше ''.
эбдропс_
Количество байтов, составляющих пакеты, которые были отброшены `` раньше ''
Примечание: поскольку этот класс является подклассом QueueMonitor, объекты этого типа также имеют
такие поля, как pdrops_ и bdrops_. Эти поля описывают общий количество выпавших
пакеты и байты, включая как ранние, так и не ранние отбрасывания.
QUEUEMONITOR / ED / FLOWMON Объекты
Эти объекты могут использоваться вместо обычного объекта QueueMonitor при желании.
для сбора подсчетов и статистики по потокам в дополнение к совокупным подсчетам и
статистика, предоставляемая основным QueueMonitor.
$ fmon классификатор [$ cl]
вставить (прочитать) указанный классификатор в (из) объект монитора потока. Этот
используется для сопоставления входящих пакетов с потоками, с которыми они связаны.
$ fmon дамп
Вывести текущие счетчики потока и статистику в канал ввода / вывода, указанный в
предыдущая операция присоединения.
$ fmon потоки
Возвращает символьную строку, содержащую имена всех объектов потока, известных этим
монитор потока. Каждый из этих объектов относится к типу QueueMonitor / ED / Flow.
$ fmon прикреплять $ чан
Подключите канал ввода-вывода tcl к монитору потока. Статистика потока записывается в
канал при выполнении операции дампа.
Конфигурация параметры
включить_in_
По умолчанию установлено значение true, указывает, что состояние прибытия для каждого потока должно сохраняться.
с помощью монитора потока. Если установлено значение false, только совокупное прибытие
информация хранится.
Enable_out_
По умолчанию установлено значение true, указывает, что состояние отправления для каждого потока должно быть
хранится монитором потока. Если установлено значение false, только совокупный вылет
информация хранится.
включить_drop_
По умолчанию установлено значение true, указывает, что состояние сброса для каждого потока должно поддерживаться
монитор потока. Если установлено значение false, отображается только совокупная информация о сбросе.
хранится.
включить_edrop_
По умолчанию установлено значение true, указывает, что состояние раннего сброса для каждого потока должно быть
хранится монитором потока. Если установлено значение false, только совокупное раннее падение
информация хранится.
QUEUEMONITOR / ED / FLOW Объекты
Эти объекты содержат подсчеты и статистику для каждого потока, которыми управляет QUEUEMONITOR / ED / FLOWMON.
объект. Обычно они создаются в процедуре обратного вызова OTcl, когда монитор потока
данный пакет не может быть сопоставлен с известным потоком. Обратите внимание, что классификатор монитора потока
отвечает за отображение пакетов в потоки произвольным образом. Таким образом, в зависимости от
тип используемого классификатора, не все переменные состояния могут иметь значение (например, можно
классифицировать пакеты только на основе идентификатора потока, в этом случае адреса источника и назначения
может быть незначительным).
Область Переменные
источник_ Адрес источника пакетов, принадлежащих этому потоку.
dst_ Адрес назначения пакетов, принадлежащих этому потоку.
идентификатор потока_
Идентификатор потока пакетов, принадлежащих этому потоку.
одноадресная МАРШРУТ МЕТОДЫ
Протокол динамической одноадресной маршрутизации можно указать для работы на подмножестве узлов в
топология. Обратите внимание, что протокол динамической маршрутизации обычно следует использовать всякий раз, когда
моделирование выполняется с помощью сетевой динамики.
$ нс ртпрото прото список узлов
Задает протокол динамической одноадресной маршрутизации прото быть запущенным на узлах
указано список узлов. В настоящее время прото может быть одним из статических, сеансовых, DV. Статический
маршрутизация по умолчанию. Сеанс подразумевает, что одноадресные маршруты по всему
топология мгновенно пересчитывается всякий раз, когда канал становится активным или нет. DV
подразумевает, что должен быть смоделирован простой протокол маршрутизации вектора расстояния. узел-
список по умолчанию для всех узлов в топологии.
$ нс вычислительные маршруты
Вычислить маршруты между всеми узлами в топологии. Это можно использовать, если статический
маршрутизация выполнена, и маршруты должны быть пересчитаны, так как состояние ссылки изменилось.
измененный. Обратите внимание, что маршрутизация сеанса (см. ртпрото метод выше) будет пересчитывать
автоматически выполняет маршрутизацию при изменении состояния любого звена в топологии.
$ нс get-routelogic
Возвращает дескриптор объекта RouteLogic, у которого есть методы поиска в таблице маршрутов.
и так далее
МАРШРУТИЗАЦИЯ ОБЪЕКТЫ
$ routelogic поиск SRCID отстой
Возвращает идентификатор узла, который является следующим переходом от узла с идентификатором. SRCID до
узел с идентификатором предназначен.
$ routelogic дамп идентификатор узла
Выгрузить таблицы маршрутизации всех узлов, чей id меньше чем идентификатор узла. Идентификаторы узлов
обычно назначается узлам по возрастанию, начиная с 0 в порядке их возрастания.
творение.
РЕОБЪЕКТ ОБЪЕКТЫ
Каждый узел, который участвует в протоколе динамической одноадресной маршрутизации, будет иметь экземпляр
rtObject (см. раздел ОБЪЕКТЫ УЗЛА, чтобы узнать о методе получения дескриптора этого объекта в
конкретный узел). Обратите внимание, что у узлов не будет экземпляра этого объекта, если сеанс
маршрутизация выполняется, поскольку подробный протокол маршрутизации в этом случае не моделируется.
$ rtobject свалки идентификатор файла
Выгрузить таблицу маршрутизации в выходной канал, указанный идентификатор файла. идентификатор файла должен быть
дескриптор файла, возвращаемый Tcl открытый команду, и он должен был быть открыт для
письмо.
$ rtobject rtПрото? прото
Возвращает дескриптор агента протокола маршрутизации, указанного в прото если он существует в
этот узел. В противном случае возвращает пустую строку.
$ rtobject следующий прыжок? идентификатор назначения
Возвращает идентификатор узла, который является следующим переходом к месту назначения, заданному параметром
идентификатор узла, ID назначения.
$ rtobject ртпреф? идентификатор назначения
$ rtobject метрика? идентификатор назначения
МУЛЬТИКАСТ МАРШРУТ МЕТОДЫ
Многоадресная маршрутизация включается путем установки переменной Simulator EnableMcast_ на 1 в
начало моделирования. Обратите внимание, что эта переменная должна быть установлена перед любым узлом, ссылкой или
объекты агента создаются в симуляции. Также ссылки должны быть созданы с помощью
метки интерфейсов (см. методы симплексной и дуплексной связи в разделе NS КОМАНДЫ).
$ нс мртпрото прото список узлов
Определяет протокол многоадресной маршрутизации прото для запуска на узлах, указанных
список узлов. В настоящее время прото может быть одним из CtrMcast, DM, detailDM, dynamicDM,
пимДМ. список узлов по умолчанию для всех узлов в топологии. Возвращает дескриптор к
объект, зависящий от протокола, который имеет методы, параметры конфигурации, специфичные для
этот протокол. Обратите внимание, что в настоящее время объект CtrMcastComp возвращается, если CtrMcast
используется, но возвращается пустая строка, если используются DM, detailDM, dynamicDM или pimDM.
Если протоколом является 'CtrMcast', корневое общее дерево точки рандеву (RP) строится для
многоадресная группа. Фактическая отправка сообщений об удалении, объединении и т. Д. Для настройки состояния
в узлах не моделируется. Централизованный вычислительный агент используется для вычисления
деревья перенаправления и настроить состояние многоадресной передачи (*, G) в соответствующем
узлов по мере того, как новые получатели присоединяются к группе. Пакеты данных от отправителей в группу
одноадресная передача в RP. Методы предоставляются в объекте CtrMcastComp (см.
Раздел CTRMCASTCOMP OBJECTS), который возвращается mrtproto для переключения на источник -
определенных деревьев, выберите некоторые узлы в качестве кандидатов RP и т. д. Когда узел / ссылка на
дерево многоадресной рассылки опускается, дерево мгновенно пересчитывается.
Если протокол «DM», моделируется плотный режим DVMRP. Используются родительско-дочерние списки
для уменьшения количества ссылок, по которым транслируются пакеты данных. Чернослив
сообщения отправляются узлами для удаления ветвей из дерева многоадресной пересылки
которые не ведут к каким-либо членам группы. По умолчанию время ожидания отсечения составляет 0.5 с.
(см. раздел ОБЪЕКТЫ DM, чтобы изменить значение по умолчанию). Это не адаптируется к сети
изменения. Также в настоящее время нет поддержки правильного функционирования в топологиях.
с локальными сетями.
Если протоколом является 'detailDM', протокол плотного режима, основанный на протоколе, независимом от протокола.
Multicast - Dense Mode (PIM-DM) моделируется. На данный момент это наиболее полный
версия протокола плотного режима в симуляторе и рекомендуется для использования
другие протоколы плотного режима. Адаптируется к динамике и функциям сети
правильно в топологиях с локальными сетями (где локальные сети создаются с использованием многоканального
метод интерфейсов - см. NS КОМАНДЫ). Если есть несколько потенциальных
пересылки для локальной сети, узел с наивысшим идентификатором выбирается в качестве пересылки (это
выполняется через механизм Assert). Значения по умолчанию для тайм-аута сокращения,
таймаут удаления интерфейса (используется для локальных сетей) и тайм-аут повторной передачи трансплантата
0.5 с, 0.1 с и 0.05 с соответственно. (см. Prune / Iface / Timer, Deletion / Iface / Timer
и объекты GraftRtx / Timer соответственно, чтобы изменить значения по умолчанию и
информация о таймерах).
Если протоколом является 'dynamicDM' DVMRP-подобный протокол плотного режима, который адаптируется к сети
изменения смоделированы. Информация об обратном отравлении (т. Е. Информация, которую
конкретный соседний узел использует этот узел для достижения определенной сети) читается
из таблиц маршрутизации соседних узлов, чтобы адаптироваться к динамике сети
(DVMRP использует собственный протокол одноадресной маршрутизации, который обменивается этой информацией). В
текущая реализация не поддерживает правильную работу в топологиях с локальными сетями.
По умолчанию время ожидания отсечения составляет 0.5 с (см. Раздел ОБЪЕКТЫ DM, чтобы изменить
дефолт).
Если протоколом является 'pimDM' Независимая от протокола многоадресная передача - имитируется плотный режим. В
в этом случае пакеты данных передаются по всем исходящим ссылкам, кроме
входящая ссылка. Сообщения Prune отправляются узлами для удаления ветвей
дерево многоадресной пересылки, не ведущее ни к каким членам группы. Электрический ток
реализация не адаптируется к динамике сети и не поддерживает надлежащую
функционирование в топологиях с локальными сетями. Значение тайм-аута обрезки по умолчанию составляет 0.5 с.
(см. раздел ОБЪЕКТЫ DM, чтобы изменить значение по умолчанию).
CTRMCASTCOMP ОБЪЕКТЫ
Дескриптор объекта CtrMcastComp возвращается, если протокол указан как
'CtrMcast' в mrtproto.
$ ctrmcastcomp переключатель типа групповой адрес
Переключитесь с корневого общего дерева точки рандеву на дерево, зависящее от источника, для
группа, указанная групповой адрес. Обратите внимание, что этот метод нельзя использовать для переключения
из деревьев, зависящих от источника, обратно в общее дерево для многоадресной группы.
$ ctrmcastcomp set_c_rp список узлов
Сделайте все узлы, указанные в список узлов в качестве кандидатов в РП и изменить состояние
все остальные узлы не должны быть кандидатами в RP. Обратите внимание, что все узлы являются кандидатами в RP.
по умолчанию. В настоящее время узел с наивысшим идентификатором узла служит RP для всех
многоадресные группы. Этот метод следует вызывать до того, как какой-либо источник начнет отправку
пакеты в группу или любой получатель присоединяется к группе.
$ ctrmcastcomp get_rp узел группы
Возвращает RP для группы с точки зрения узла. узел для многоадресной группы с
адрес групповой адрес. Обратите внимание, что разные узлы могут видеть разные RP для группы.
если сеть разделена на разделы, так как узлы могут находиться в разных разделах.
DM ОБЪЕКТЫ
Объекты DM реализуют многоадресную рассылку в плотном режиме в стиле DVMRP, где списки родитель-потомок используются для
уменьшить количество каналов, по которым транслируются исходные пакеты данных. Нет
методы или переменные состояния, относящиеся к этому объекту.
Конфигурация параметры
Прунетаймаут
Значение тайм-аута для состояния сокращения на узлах.
PRUNE / IFACE / ТАЙМЕР ОБЪЕКТЫ
Объекты Prune / Iface / Timer используются для реализации таймера сокращения для detailDM. Там
не являются методами или переменными состояния, специфичными для этого объекта.
Конфигурация параметры
Тайм-аут
Значение тайм-аута для состояния сокращения на узлах.
УДАЛЕНИЕ / IFACE / ТАЙМЕР ОБЪЕКТЫ
Объекты Deletion / Iface / Timer используются для реализации таймера удаления интерфейса, который
необходимы для правильной работы на узлах, входящих в локальные сети. Если у узла есть ЛВС
в качестве входящего интерфейса для пакетов из определенного источника и не имеет
нижестоящим участникам он отправляет сообщение об удалении в локальную сеть. Любой узел, имеющий локальную сеть
в качестве входящего интерфейса для того же источника и имеет нижестоящих участников при прослушивании
удалить сообщение, отправленное по локальной сети. отправит сообщение о присоединении в локальную сеть. Когда узел,
действует как сервер пересылки для LAN, слышит сообщение об удалении из LAN, он не
немедленно отключите LAN как исходящий интерфейс. Вместо этого он запускает интерфейс
таймер удаления для исходящего интерфейса. Сервер пересылки удалит локальную сеть как свою
исходящий интерфейс только в том случае, если он не получает сообщений о присоединении из локальной сети до своего
таймер удаления истекает. Для этого объекта нет специальных методов или переменных состояния.
Конфигурация параметры
Тайм-аут
Значение тайм-аута для таймера удаления интерфейса.
GRAFTRTX / ТАЙМЕР ОБЪЕКТЫ
Объекты GraftRtx / Timer используются для реализации таймера повторной передачи трансплантата в узлах.
Это необходимо для обеспечения надежности трансплантатов, отправленных узлом вверх по потоку.
Конфигурация параметры
Тайм-аут
Значение тайм-аута таймера повторной передачи трансплантата.
АГЕНТ ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не проверялся на актуальность для данного выпуска.]
$ агент порт
Верните порт транспортного уровня агента. Порты используются для идентификации агентов
внутри узла.
$ агент dst-адрес
Верните адрес целевого узла, к которому подключен этот агент.
$ агент dst-порт
Верните порт на узле назначения, к которому подключен этот агент.
$ агент прикрепить источник напишите
Установите источник данных типа напишите в этом агенте. напишите один из FTP или
резкий [???]. См. Соответствующие методы объекта для получения информации о конфигурации.
параметры. Возвращает дескриптор исходного объекта.
$ агент прикрепить трафик транспортный объект
Прикреплять транспортный объект этому агенту транспортный объект является экземпляром Traffic / Expoo,
Трафик / Парето или Трафик / След. Трафик / Expoo генерирует трафик на основе
Экспоненциальное распределение включения / выключения. Трафик / Парето генерирует трафик на основе
Распределение Парето вкл / выкл. Traffic / Trace генерирует трафик из файла трассировки.
Соответствующие параметры конфигурации для каждого из вышеперечисленных объектов можно найти в
раздел СПОСОБЫ ДВИЖЕНИЯ.
$ агент соединяться адр порт
Подключите этого агента к агенту, указанному по адресу адр и порт порт. Эти
заставляет пакеты, передаваемые от этого агента, содержать адрес и порт
указывается, так что такие пакеты направляются намеченному агенту. Два агента
должны быть совместимы (например, пара tcp-source / tcp-приемник, а не cbr / tcp-приемник
пара). В противном случае результаты моделирования непредсказуемы.
Конфигурация параметры
DST_ Адрес места назначения, к которому подключен агент. В настоящее время 32 бита
при этом старшие 24 бита - идентификатор узла назначения, а младшие 8 бит -
номер порта.
Не существует переменных состояния, специфичных для универсального класса агента.
NULL, ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не проверялся на актуальность для данного выпуска.] Null
объекты - это подкласс объектов агентов, реализующих приемник трафика. Они наследуют все
функциональных возможностей универсального объекта агента. Нет методов, параметров конфигурации
или переменные состояния, относящиеся к этому объекту.
ПОТЕРИ ОБЪЕКТЫ
[ПРИМЕЧАНИЕ: этот раздел не был проверен на актуальность версии.] LossMonitor
объекты являются подклассом объектов агентов, которые реализуют приемник трафика, который также поддерживает
некоторая статистика о полученных данных, например, количество полученных байтов, количество пакетов
потеряны и т. д. Они наследуют все функции универсального объекта агента.
$ lossmonitor Очистить
Сбрасывает ожидаемый порядковый номер на -1.
Конфигурация параметры
Для этого объекта нет никаких параметров конфигурации.
Область Переменные
потерянный_ Количество потерянных пакетов.
НПКТС_ Количество полученных пакетов.
байт_ Количество полученных байтов.
LastPktTime_
Время, когда был получен последний пакет.
над ним поможет_
Ожидаемый порядковый номер следующего пакета.
TCP ОБЪЕКТЫ
Объекты TCP являются подклассом объектов агентов, реализующих транспорт TCP Tahoe в BSD.
протокол, как описано в [7]. Они наследуют все общие функции агента.
Чтобы отслеживать параметры TCP, пометьте каждый параметр с помощью `` $ tcp trace window_ '', а затем отправьте
вывод в файл трассировки с «$ tcp attach [open trace.tr w]».
Сегменты TCP могут быть отправлены с помощью команд advance и advanaceby. Когда все данные отправлены,
будет вызван метод done (который можно переопределить в OTcl).
$ tcp продвижение n
Посылает до n пакетов.
$ tcp вперед n
Отправьте еще n пакетов.
$ tcp сделанный
Функционально вызывается, когда все пакеты (указанные в advance / advanceby / maxpkts_) имеют
было отправлено. Может быть переопределено для каждого объекта.
Конфигурация параметры
окно_
Верхняя граница объявленного окна для TCP-соединения (в
пакеты).
Максквнд_
Верхняя граница окна перегрузки для TCP-соединения. Установлен в
ноль игнорировать. (Это значение по умолчанию.) Измеряется в пакетах.
окноInit_
Начальный размер окна перегрузки при медленном запуске. (в пакетах).
wnd_init_option_
Алгоритм, используемый для определения начального размера скопления
окно. Установите 1 для статического алгоритма с использованием значения в окноInit_.
Установите значение 2 для динамического алгоритма, использующего функцию PackageSize_.
син_ Установите значение true, чтобы смоделировать начальный обмен SYN / ACK в одностороннем TCP. Установлен в
false по умолчанию.
задержка_рост_
Установите значение true, чтобы отложить начальное окно перегрузки до тех пор, пока не пройдет один пакет.
отправлено и подтверждено. По умолчанию установлено значение false.
окноОпция_
Алгоритм, используемый для управления окном перегрузки в линейной фазе.
Стандартный алгоритм - 1 (по умолчанию). Другие экспериментальные алгоритмы
задокументированы в исходном коде.
окноТреш_
Константа усиления для экспоненциального усредняющего фильтра, используемого для вычисления раздирать (См.
ниже). Для исследования различных алгоритмов увеличения окна.
накладные расходы_
Диапазон (в секундах) однородной случайной величины, используемой для задержки каждого
выходной пакет. Идея состоит в том, чтобы вставить случайные задержки в источнике в порядке
чтобы при желании избежать фазовых эффектов [4]. Это только было реализовано
для версии tcp Tahoe ("tcp"), а не для tcp-reno. Это не
призван быть реалистичной моделью накладных расходов процессора.
ECN_ Установите значение true, чтобы использовать явное уведомление о перегрузке в дополнение к пакету.
падает, чтобы сигнализировать о скоплении. Это позволяет выполнить быструю ретрансляцию после quench ()
из-за бита ECN (явное уведомление о перегрузке).
PackageSize_
Размер в байтах, используемый для всех пакетов из этого источника.
tcpip_base_hdr_size_
Размер в байтах базового заголовка TCP / IP.
tcpTick_
Детализация часов TCP для измерения времени приема-передачи. Обратите внимание, что это
по умолчанию установлено нестандартное значение 100 мс. Измеряется в секундах.
Исправлена ошибка_
Установите значение true, чтобы удалить ошибку, когда разрешено несколько быстрых повторных передач для
пакеты сброшены в одном окне данных.
максимальный взрыв_
Установите в ноль, чтобы игнорировать. В противном случае максимальное количество пакетов, которое
источник может отправлять в ответ на один входящий ACK.
медленный_start_restart_
Логический; установите значение 1 для медленного запуска после того, как соединение перейдет в режим ожидания. На
по умолчанию.
srt_init_
Начальное значение для сглаженной оценки времени туда и обратно. По умолчанию 0
секунд.
т_рттвар_
Начальное значение дисперсии времени в оба конца. По умолчанию 3 секунды.
rtxcur_init_
Начальное значение для значения повторной передачи. По умолчанию 6 секунд.
T_SRTT_BITS
Показатель веса для обновления сглаженного времени приема-передачи t_srtt_.
По умолчанию 3 для веса 1/2 ^ T_SRTT_BITS или 1/8.
T_RTTVAR_BITS
Экспонент веса для обновления дисперсии времени приема-передачи, t_rttvar_.
По умолчанию 2 для веса 1/2 ^ T_RTTVAR_BITS или 1/4.
rttvar_exp_
Показатель кратного среднего отклонения при вычислении текущего
повторно передать значение t_rtxcur_. По умолчанию 2, кратное 2 ^ rttvar_exp_
или 4.
Определяемая Константы
MWS Максимальный размер окна в пакетах для TCP-соединения. MWS определяет
размер массива в tcp-sink.cc. По умолчанию для MWS 1024 пакета. Для
Tahoe TCP, параметр "окна", представляющий объявленный получателем
окно, должно быть меньше MWS-1. Для Reno TCP параметр "окно"
должно быть меньше (MWS-1) / 2.
Область Переменные
дупаки_
Количество повторяющихся подтверждений, обнаруженных с момента подтверждения любых новых данных.
последовательность_ Наивысший порядковый номер для данных из источника данных в TCP.
t_seqno_
Текущий порядковый номер передачи.
ACK_ Наивысшее подтверждение, полученное от получателя.
cwnd_ Текущее значение окна перегрузки (в пакетах).
раздирать_ Текущее значение версии окна перегрузки с фильтром нижних частот. Для
исследования различных алгоритмов увеличения окна.
сстреш_
Текущее значение порога медленного старта (в пакетах).
RTT_ Оценка времени туда и обратно. В секундах (кратно tcpTick_).
SRTT_ Сглаженная оценка времени приема-передачи. В секундах (кратно tcpTick_ / 8).
ртвар_
Оценка среднего отклонения времени приема-передачи.
t_rtxcur_
Текущее значение ретрансляции. За считанные секунды.
отвали_
Постоянная экспоненциального отката времени приема-передачи.
TCP / RENO ОБЪЕКТЫ
Объекты TCP / Reno являются подклассом объектов TCP, которые реализуют транспорт TCP Reno.
протокол, как описано в [7]. Нет методов, параметров конфигурации или состояния
переменные, относящиеся к этому объекту.
TCP / NEWRENO ОБЪЕКТЫ
Объекты TCP / Newreno являются подклассом объектов TCP, которые реализуют модифицированную версию
Транспортный протокол BSD Reno TCP.
Для этого объекта нет специальных методов или переменных состояния.
Конфигурация параметры
newreno_changes_
Установите ноль для NewReno по умолчанию, описанного в [7]. Установите 1 для
дополнительные алгоритмы NewReno, предложенные в [10]; это включает
оценка параметра ssthresh при медленном запуске.
TCP / VEGAS ОБЪЕКТЫ
Этот раздел страницы руководства еще не написан.
TCP / SACK1 ОБЪЕКТЫ
Объекты TCP / Sack1 являются подклассом объектов TCP, которые реализуют транспорт BSD Reno TCP.
протокол с расширениями выборочного подтверждения, как описано в [7].
Они наследуют все функции объекта TCP. Нет методов, конфигурации
параметры или переменные состояния, относящиеся к этому объекту.
TCP / FACK ОБЪЕКТЫ
Объекты TCP / Fack являются подклассом объектов TCP, которые реализуют транспорт BSD Reno TCP.
протокол с контролем перегрузки прямого подтверждения.
Они наследуют все функции объекта TCP. Нет методов или переменных состояния
специфические для этого объекта.
Конфигурация параметры
сс-div4
Алгоритм сверхдемпфирования. Делит ssthresh на 4 (вместо 2), если перегруженность
обнаружен в пределах 1/2 RTT от медленного старта. (1 = включить, 0 = отключить)
замедления
Алгоритм сглаживания данных Rampdown. Скорее медленно уменьшает окно перегрузки
чем мгновенно уменьшить вдвое. (1 = включить, 0 = отключить)
TCP / FULLTCP ОБЪЕКТЫ
Этот раздел еще не добавлен на страницу руководства. Реализация и
параметры конфигурации описаны в [11].
TCPSINK ОБЪЕКТЫ
Объекты TCPSink - это подкласс объектов агентов, реализующих приемник TCP-пакетов.
Симулятор реализует только «односторонние» TCP-соединения, когда источник TCP отправляет данные.
пакетов, и приемник TCP отправляет пакеты ACK. Объекты TCPSink наследуют все общие
функциональность агента. Нет никаких методов или переменных состояния, специфичных для TCPSink.
объект.
Конфигурация параметры
PackageSize_
Размер в байтах, используемый для всех пакетов подтверждения.
maxSackBlocks_
Максимальное количество блоков данных, которые могут быть подтверждены в SACK
вариант. Для получателя, который также использует опцию отметки времени [RFC 1323],
опция SACK, указанная в RFC 2018, имеет место для включения трех блоков SACK.
Используется только подклассом TCPSink / Sack1. Это значение не может быть
увеличивается в любом конкретном объекте TCPSink после того, как этот объект был
выделено. (После выделения объекта TCPSink значение этого
параметр может быть уменьшен, но не увеличен).
TCPSINK / DELACK ОБЪЕКТЫ
Объекты DelAck являются подклассом TCPSink, которые реализуют приемник отложенного ACK для TCP.
пакеты. Они наследуют все функции объекта TCPSink. Нет методов или
переменные состояния, относящиеся к объекту DelAck.
Конфигурация параметры
интервал_
Время задержки перед генерацией подтверждения для одного
пакет. Если до истечения этого времени придет другой пакет, сгенерируйте
подтверждение немедленно.
TCPSINK / SACK1 ОБЪЕКТЫ
Объекты TCPSink / Sack1 являются подклассом TCPSink, которые реализуют приемник SACK для TCP.
пакеты. Они наследуют все функции объекта TCPSink. Нет никаких методов,
параметры конфигурации или переменные состояния, относящиеся к этому объекту.
TCPSINK / SACK1 / DELACK ОБЪЕКТЫ
Объекты TCPSink / Sack1 / DelAck являются подклассом TCPSink / Sack1, которые реализуют отложенный SACK.
приемник для TCP-пакетов. Они наследуют всю функциональность объекта TCPSink / Sack1.
Для этого объекта нет специальных методов или переменных состояния.
Конфигурация параметры
интервал_
Время задержки перед генерацией подтверждения для одного
пакет. Если до истечения этого времени придет другой пакет, сгенерируйте
подтверждение немедленно.
SRM ОБЪЕКТЫ
Объекты SRM являются подклассом объектов агентов, которые реализуют надежную многоадресную рассылку SRM.
транспортный протокол. Они наследуют все функции универсального агента.
$ srm источник трафика источник
Присоедините источник трафика, например, приложение / трафик / CBR, к агенту SRM.
$ srm Начало
Присоединитесь к группе многоадресной рассылки, запустите агент SRM и подключенный к нему источник трафика.
$ srm удалять
Остановите агент SRM, удалите все его состояния и отсоедините источник трафика.
$ srm прослеживать файл трассировки
Запишите трассировки, созданные агентом SRM, в файл трассировки. Следы включают
настройки таймера, отправка запросов и исправлений, квитанции и т. д. Два связанных файла
которые не встроены в нс tcl / mcast / srm-debug.tcl что позволяет более детально
отслеживание функций вычисления задержки, и tcl / mcast / srm-nam.tcl который
Отдельно помечает управляющие сообщения srm от данных. Последнее полезно для усиления
нам визуализация.
$ srm журнал журнальный файл
Записывать статистику восстановления при каждом запросе или ремонте в журнальный файл,
статистика включает время начала, продолжительность, идентификатор сообщения, общее количество дубликатов
запросы и ремонт.
$ srm расстояние? узел
Вернуть оценку расстояния в узел в этом агенте SRM.
$ srm расстояния? узел
Возвращает список наборы расстояний до всей группы
члены, о которых знает этот узел. Член группы идентифицируется как адрес
удаленного агента. Первый кортеж - это токен этого агента. Список может быть
напрямую загружается в массив Tcl.
Конфигурация параметры
PackageSize_
Размер пакета данных в байтах, который будет использоваться для сообщений восстановления. В
значение по умолчанию - 1024.
функция запроса_
Алгоритм, используемый для создания запроса на повторную передачу, например, установка
таймеры запросов. Значение по умолчанию - SRM / запрос. Другой возможный запрос
Функции: SRM / запрос / адаптивный, используемые кодом адаптивного SRM.
ремонт_
Алгоритм, используемый для ремонта, например, вычисление таймеров ремонта. В
значение по умолчанию - SRM / ремонт. Другие возможные функции запроса:
SRM / repair / Adaptive, используется кодом Adaptive SRM.
функция сеанса_
Алгоритм, используемый для генерации сообщений сеанса. По умолчанию SRM / сеанс
сессионная задержка_
Базовый интервал сеансовых сообщений. Добавлена небольшая случайная вариация
этот интервал, чтобы избежать глобальной синхронизации сообщений сеанса. Пользователь может
хотите настроить эту переменную в соответствии с их конкретной симуляцией.
Измеряется в секундах; значение по умолчанию - 1.0 секунды.
С1_, C2_
Параметры, управляющие таймером запроса. Обратитесь к [8] для получения подробной информации. В
значение по умолчанию C1_ = C2_ = 2.0.
Д1_, D2_
Параметры, управляющие таймером ремонта. Обратитесь к [8] для получения подробной информации. В
значение по умолчанию D1_ = D2_ = 1.0.
запросBackoffLimit_
Максимальное количество экспоненциальных откатов. Значение по умолчанию - 5.
Область Переменные
Статистика_ Массив, содержащий несколько статистических данных, необходимых адаптивному агенту SRM.
В том числе: дублирование запросов и ремонт в текущем запросе / периоде ремонта,
среднее количество дублирующихся запросов и ремонтов, запросов и задержек ремонта
в текущий период запроса / ремонта, средняя задержка запроса и ремонта.
SRM / Адаптивный ОБЪЕКТЫ
Объекты SRM / Adaptive являются подклассом объектов SRM, которые реализуют адаптивную SRM.
надежный многоадресный транспортный протокол. Они наследуют все функции объекта SRM.
Область Переменные Обратитесь к статье SRM Салли и др. ([11]) для получения более подробной информации.
расстояние_
Эта переменная используется для передачи оценки расстояния, предоставленной удаленным
агент в запросе или сообщении о ремонте.
Д1_, D2_
То же, что и в агентах SRM, за исключением того, что они инициализируются как
log10 (размер группы) при генерации первого ремонта.
МинС1_, МаксС1_, МинС2_, МаксС2_
Минимальные / максимальные значения C1_ и C2_. Начальные значения по умолчанию:
определено в [8]. Эти значения определяют динамический диапазон C1_ и C2_.
МинД1_, МаксД1_, МинД2_, МаксД2_
Минимальные / максимальные значения D1_ и D2_. Начальные значения по умолчанию:
определено в [8]. Эти значения определяют динамический диапазон D1_ и D2_.
АвеДупс
Более высокая оценка среднего количества дубликатов.
АвеДелей
Верхняя граница средней задержки.
прибыль на акцию АвеДупс - дупсы определяет нижнюю границу количества дубликатов, когда
мы должны настроить параметры, чтобы уменьшить задержку.
ЗАЯВЛЕНИЕ ОБЪЕКТЫ
Объекты приложения генерируют данные для отправки агентами транспорта.
Ftp ЗАЯВЛЕНИЕ ОБЪЕКТЫ
Объекты приложения / FTP создают объемные данные для отправки объекта TCP.
$ ftp Начало
Заставляет FTP создавать пакеты бесконечно.
$ ftp производит n
Заставляет объект FTP создавать n пакеты мгновенно.
$ ftp остановить
Заставляет присоединенный объект TCP прекратить отправку данных.
$ ftp прикреплять агент
Присоединяет объект приложения / FTP к агент.
$ ftp производить больше считать
Заставляет объект Application / FTP создавать считать больше пакетов.
Конфигурация параметры
макспкц
Максимальное количество сгенерированных пакетов.
TELNET ЗАЯВЛЕНИЕ ОБЪЕКТЫ
Объекты Application / Telnet создают отдельные пакеты со следующим временем прибытия.
If интервал_ не равно нулю, то время между приходами выбирается из экспоненциального
распределение со средним интервал_. Если интервал_ равно нулю, то время между приходами равно
выбирается с использованием tcplib-дистрибутива telnet.
$ telnet Начало
Заставляет объект Application / Telnet начать создание пакетов.
$ telnet остановить
Заставляет объект Application / Telnet прекращать создание пакетов.
$ telnet прикреплять агент
Присоединяет объект Application / Telnet к агент.
Конфигурация параметры
интервал_
Среднее время между прибытиями в секундах для пакетов, сгенерированных
Приложение / объект Telnet.
ТРАФИК ОБЪЕКТЫ
Объекты трафика создают данные для отправки транспортного протокола. Создан объект Traffic
путем создания объекта класса Application / Traffic /напишите в котором напишите один из
Экспоненциальная, Парето, CBR, Trace.
ЭКСПОНЕНЦИАЛЬНЫЙ ТРАФИК ОБЪЕКТЫ
Объекты Application / Traffic / Exponential генерируют трафик включения / выключения. Во время "включенных" периодов
пакеты генерируются с постоянной пакетной скоростью. В периоды "выключено" движение отсутствует.
сгенерировано. Время пакетов и время простоя берутся из экспоненциальных распределений.
Конфигурация параметры
размер_пакета_
Размер пакета в байтах.
Burst_time_
Продолжительность серийной съемки в секундах.
время простоя_
Время простоя в секундах.
скорость_ Пиковая скорость в битах в секунду.
PARETO ТРАФИК ОБЪЕКТЫ
Объекты Application / Traffic / Pareto генерируют трафик включения / выключения с временами пакетов и простоя
взято из распределений Парето.
Конфигурация параметры
размер_пакета_
Размер пакета в байтах.
Burst_time_
Среднее время в секундах.
время простоя_
Среднее время выключения в секундах.
скорость_ Пиковая скорость в битах в секунду.
формировать_ Параметр формы Парето.
ЦБ РФ (ПОСТОЯННЫЙ BIT СТАВКА) ТРАФИК ОБЪЕКТЫ
Объекты Application / Traffic / CBR генерируют пакеты с постоянной скоростью. Может быть добавлен дизеринг
к временам между прибытиями, включив флаг «случайный».
Конфигурация параметры
скорость_ Пиковая скорость в битах в секунду.
размер_пакета_
Размер пакета в байтах.
случайный_
Флаг, включающий и выключающий дизеринг (по умолчанию выключен).
макспкц_
Максимальное количество пакетов для отправки.
СЛЕД ТРАФИК ОБЪЕКТЫ
Объекты Application / Traffic / Trace используются для генерации трафика из файла трассировки.
$ trace прикрепить файл трассировки tfile
Прикрепите объект Tracefile tfile к этому следу. Объект Tracefile указывает
файл трассировки, из которого должны быть прочитаны данные трафика (см. ОБЪЕКТЫ ТРАССЕФИЛЯ
раздел). К одному и тому же можно прикрепить несколько объектов Application / Traffic / Trace.
Объект Tracefile. Для каждого выбирается случайное начальное место в Tracefile.
Объект Application / Traffic / Trace.
Для этого объекта нет параметров конфигурации.
ТРАСЕФИЛЬ ОБЪЕКТЫ
Объекты Tracefile используются для указания файла трассировки, который будет использоваться для генерации
трафик (см. раздел ОБЪЕКТЫ ДВИЖЕНИЯ / ОТСЛЕЖИВАНИЯ). $ tracefile - это экземпляр Tracefile
Объект.
$ tracefile имя файла след-ввод
Задайте имя файла, из которого будут считываться данные трассировки трафика. след-ввод.
Для этого объекта нет параметров конфигурации. Файл трассировки состоит из любых
количество записей фиксированной длины. Каждая запись состоит из 2-х 32-битных полей. Первое
указывает интервал до генерации следующего пакета в микросекундах. Секунда
указывает длину следующего пакета в байтах.
СЛЕД И МОНИТОРИНГ МЕТОДЫ
[ПРИМЕЧАНИЕ: этот раздел не был проверен на актуальность версии.] Trace
объекты используются для создания журналов захвата уровня событий, как правило, в выходной файл.
В этом разделе $ ns относится к объекту симулятора, $ agent относится к агенту.
объект.
$ нс создание трассировки напишите идентификатор файла node1 node2 [вариант]
Создайте объект Trace типа напишите и прикрепите дескриптор файла идентификатор файла к нему
контролировать очереди между узлами node1 и узел2. напишите может быть одним из Enque, Deque,
Уронить. Enque отслеживает поступление пакетов в очередь. Deque следит за отправлением пакетов
в очереди. Drop отслеживает отбрасывание пакетов в очереди. идентификатор файла должен быть дескриптор файла
возвращенный Tcl открытый команда, и она должна быть открыта для записи. Если
вариант не указан, команда проинструктирует созданный объект трассировки
генерировать нс трассы. Если вариант is "" "nam" "" "новый объект будет создавать следы nam.
Возвращает дескриптор объекта трассировки.
$ нс капля-след node1 node2 прослеживать
Удалить объект трассировки, прикрепленный к ссылке между узлами node1 и node2 прослеживать
как дескриптор объекта.
$ нс очередь трассировки node1 node2 идентификатор файла
Включите трассировку Enque, Deque и Drop на ссылке между node1 и узел2.
$ нс namtrace-очередь node1 node2 идентификатор файла
Та же функция, что и $ нс очередь трассировки, за исключением того, что он производит следы nam.
$ нс трассировка всего идентификатор файла
Включите Enque, Deque, Drop Tracing для всех ссылок в топологии, созданной после
этот метод вызывается. Также позволяет отслеживать динамику сети. идентификатор файла должен
быть дескриптором файла, возвращаемым Tcl открытый команду, и он должен был быть открыт для
письмо.
$ нс namtrace-все идентификатор файла
Та же функция, что и $ нс трассировка всего, за исключением того, что он создаст все эквивалентные трассировки в nam
формат. Кроме того, вызов этой команды до симулятор начинает работать будет
генерировать цветовые конфигурации (если есть) и информацию о топологии, необходимую для nam
(узлы, ссылки, очереди). Пример можно найти в ns-2 / tcl / ex / nam-example.tcl.
$ нс namtrace-конфигурация идентификатор файла
Назначьте файл для хранения информации о конфигурации nam, например, узел / ссылка / агенты и
некоторые связанные с симулятором трассировки, такие как аннотации. Когда ты не хочешь отслеживать
каждый объект. вызовите эту функцию, а затем используйте $ нс namtrace-очередь, rtМодель прослеживать,
и т. д., чтобы вставлять трассы по отдельности. Обратите внимание, что вы должны использовать тот же файл для
индивидуальные следы и конфигурация имен. Пример этого доступен на
нс-2 / tcl / ex / нам-отдельный-trace.tcl.
$ нс очередь монитора node1 node2
Определите длину очереди связи между узлами node1 и node2 для отслеживания.
Возвращает объект QueueMonitor, который можно запросить, чтобы узнать средний размер очереди и т. Д.
[см. раздел «Объекты QueueMonitor»]
$ нс промывка
Очистите выходные каналы, прикрепленные ко всем объектам трассировки.
$ Link след-динамика ns идентификатор файла [вариант]
Отследите динамику этой ссылки и запишите результат в идентификатор файла дескриптор файла. ns is
экземпляр объекта Simulator или MultiSim, созданный для вызова
моделирование.
$ нс цвет id имя
Создайте индекс цвета, который связывает номер id к названию цвета имя. Все цвета
создали до запуск симулятора будет записан в именованный файл трассировки, если
есть любые.
$ нс трассировка-аннотирование string
Записывает аннотацию в файл трассировки ns и nam, если есть. Строка должна
заключить в двойные кавычки, чтобы сделать его единственным аргументом.
трассировка_аннотате string
Другая версия $ нс трассировка-аннотирование, которая является глобальной функцией и не
требовать, чтобы звонящий знал ns.
$ нс дуплекс-линк-опера $ node1 $ node2 $ op $ арг
Выполнить данную операцию $ op на данном дуплексном канале ($ node1, $ node2).
могут использоваться следующие две операции:
orient - Укажите ориентацию дуплексной связи. Ценности могут быть
влево, вправо, вверх, вниз, их смесь объединяется знаком «-» (например,
влево-вниз) и число, указывающее угол между
ссылка и горизонтальная линия.
queuePos - построить очередь симплексной ссылки ($ node1,
$ node2) в nam и укажите угол между
горизонтальная линия и линия, по которой поставлены в очередь пакеты
будет отображаться.
$ нс добавить агент-трассировку агент имя [идентификатор файла]
Напишите строку трассировки nam, которая создаст агент трассировки для агент при интерпретации
по нам. Имя агента трассировки будет имя. Этот агент трассировки имен используется для отображения
положение агент и может использоваться для записи следов переменных, связанных
с агентом. По умолчанию трассировки будут записаны в файл, назначенный
namtrace-все. идентификатор файла может использоваться для записи трассировки в другой файл.
$ агент трассировка имя
Метка переменной OTcl имя of $ агент проследить. Тогда всякий раз, когда переменная имя
изменяет значение, строка трассировки nam будет записана в файл трассировки nam, если он есть.
Обратите внимание, что имя должно быть таким же, как реальное имя OTcl переменной.
$ нс удалить-агент-трассировку агент
Напишите строку трассировки nam, которая удалит трассировку nam, связанную с агент когда
интерпретируется им.
$ агент добавить-вар-трассировку имя ценностное [тип]
Напишите строку трассировки nam, которая создает трассировку переменной с именем имя и значение
ценностное , при интерпретации им. напишите указывает тип переменной, например,
это список, массив или простая переменная. В настоящее время поддерживается только простая переменная,
для которого напишите = 'v'.
Следующие 2 функции должны быть вызваны после симулятор запускается. Это может быть
сделано с использованием $ нс at.
$ агент удалить-вар-трассировку имя
Напишите строку nam trace, которая удаляет переменную trace. имя при интерпретации
Нам.
$ агент обновление-var-trace имя ценностное [тип]
Напишите строку трассировки nam, которая изменяет значение отслеживаемой переменной имя когда
интерпретируется им. в отличие $ агент трассировка, указанные выше 3 функции обеспечивают «ручной»
отслеживание переменных, при котором отслеживание переменных выполняется путем размещения $ агент обновление-вар-
прослеживать в коде OTcl, а трассировка автоматически генерирует следы nam, когда
отслеживаемая переменная изменяет значение.
Формат файла трассировки обратно совместим с файлами вывода в версии 1 ns.
simulator, чтобы можно было использовать сценарии постобработки ns-1. Следы
Трафик для объектов ссылок с Enque, Deque или Drop Tracing имеет следующий вид:
в котором
:= [hd+-r] h=hop d=drop +=enque -=deque r=receive
: = время моделирования в секундах
: = адрес первого узла ссылки перехода / очереди
: = адрес второго узла ссылки перехода / очереди
знак равно
: = tcp | telnet | cbr | ack и т. д.
: = размер пакета в байтах
: = [CP] C = перегрузка, P = приоритет
: = поле идентификатора потока, как определено для IPv6
: = транспортный адрес (src = узел, sport = агент)
: = транспортный адрес (dst = узел, dport = агент)
: = порядковый номер пакета
: = уникальный идентификатор для каждого нового пакета
Только те агенты, которые заинтересованы в секвенировании, будут генерировать порядковые номера
и, следовательно, это поле может быть бесполезным для пакетов, генерируемых некоторыми агентами.
Для ссылок, которые используют шлюзы RED, существуют следующие дополнительные записи трассировки:
в котором
:= [Qap] Q=queue size, a=average queue size,
p = вероятность отбрасывания пакета
: = время моделирования в секундах
: = значение
Записи трассировки для динамики ссылок имеют вид:
в котором
:= [v]
: = время моделирования в секундах
: = [ссылка | ссылка вниз]
: = адрес первого узла ссылки
: = адрес второго узла ссылки
ИНТЕГРАТОР Объекты
Объекты интегратора поддерживают приближенное вычисление непрерывных интегралов с использованием
дискретные суммы. Текущая сумма (интеграл) вычисляется как: sum_ + = [lasty_ * (x - lastx_)]
где (x, y) - это последний введенный элемент, а (lastx_, lasty_) - это элемент, предшествующий
это добавило к сумме. lastx_ и lasty_ обновляются по мере добавления новых элементов. В
первая точка выборки по умолчанию (0,0), которую можно изменить, изменив значения
(lastx_, lasty_).
$ интегратор новая точка x y
К сумме прибавьте точку (x, y). Обратите внимание, что для x не имеет смысла быть меньше
чем lastx_.
Для этого объекта нет никаких параметров конфигурации.
Область Переменные
Lastx_ x-координата последней точки выборки.
последний_ Y-координата последней точки выборки.
сумма_ Текущая сумма (т.е. интеграл) точек выборки.
ОБРАЗЦЫ Объекты
Объекты Samples поддерживают вычисление статистики среднего и дисперсии для заданного
образец.
$ образцы значить
Возвращает среднее значение выборки.
$ образцы дисперсия
Возвращает дисперсию выборки.
$ образцы CNT
Возвращает количество рассмотренных точек выборки.
$ образцы сброс
Сбросьте объект Samples, чтобы отслеживать новый набор образцов.
Для этого объекта нет параметров конфигурации или переменных состояния.
СТРОИТЕЛЬСТВА
[ПРИМЕЧАНИЕ: этот раздел не был проверен на актуальность версии.] Потому что
ОТкл это полноценный язык программирования, на нем легко построить высокоуровневое моделирование
конструкции из примитивов ns. Таким образом было построено несколько библиотечных подпрограмм,
и встроены в интерпретатор ns как методы класса Simulator. На протяжении
этот раздел $ ns представляет объект Simulator.
$ нс создать соединение Тип источника srcNode dstType dstNode класс
Создайте исходный агент типа Тип источника в узле srcNode и подключите его к
целевой агент типа dstType в узле dstNode. Также подключите пункт назначения
агент исходному агенту. Класс трафика обоих агентов установлен на класса. Эти
метод возвращает исходный агент.
ПРИМЕР
установить нс [новый симулятор]
#
# Создаем два узла
#
установить n0 [узел $ ns]
установить n1 [узел $ ns]
#
# Создайте трассировку и упорядочите все события трассировки
# ссылки впоследствии были созданы для сброса на "out.tr"
#
установить f [open out.tr w]
$ ns след-все $ f
#
# Соедините два узла каналом 1.5 Мб с передачей
# задержка 10 мс с использованием очереди FIFO drop-tail
#
$ ns duplex-link $ n0 $ n1 1.5 Мб 10 мс DropTail
#
# Установите TCP-соединения BSD Tahoe в противоположных направлениях.
#
установить tcp_src1 [новый агент / TCP]
установить tcp_snk1 [новый агент / TCPSink]
установить tcp_src2 [новый агент / TCP]
установить tcp_snk2 [новый агент / TCPSink]
$ ns агент присоединения $ n0 $ tcp_src1
$ ns агент присоединения $ n1 $ tcp_snk1
$ ns агент присоединения $ n1 $ tcp_src2
$ ns агент присоединения $ n0 $ tcp_snk2
$ ns connect $ tcp_src1 $ tcp_snk1
$ ns connect $ tcp_src2 $ tcp_snk2
#
# Создаем источники ftp на каждом узле
#
установить ftp1 [$ tcp_src1 FTP-источник подключения]
установить ftp2 [$ tcp_src2 FTP-источник подключения]
#
# Запускаем первый ftp в момент времени 0 и
# второй ftp сдвинулся на 1 секунду позже
#
$ нс при 0.0 "$ ftp1 start"
$ нс при 1.0 "$ ftp2 start"
#
# запускаем симуляцию на 10 симулированных секунд
#
$ нс в 10.0 "выход 0"
$ нс бежать
ОТЛАДКА
Чтобы включить отладку при сборке ns из исходников:
% ./configure --enable-debug
% делать
Для получения дополнительных сведений об отладке ns см.http://www-mash.cs.berkeley.edu/ns/ns-
debugging.html>.
РАЗЛИЧИЯ от NS-1
В общем, более сложные объекты в ns-1 были разбиты на более простые компоненты для
большая гибкость и компоновка. Подробная информация о различиях между нс-1 и нс-2 может
быть найденным вhttp://www-mash.cs.berkeley.edu/ns/ns.html>.
ИСТОРИЯ
Работа над симулятором сети LBL началась в мае 1990 года с модификаций модели С. Кешава.
([электронная почта защищена]) НАСТОЯЩИЙ сетевой симулятор, который он разработал для своей докторской степени. работать над
Калифорнийский университет в Беркли. Летом 1991 года язык описания симуляторов был переработан, и
позже модель потоков NEST была заменена на управляемую событиями структуру и эффективную
планировщик. Среди других вкладов Сугих Джамин ([электронная почта защищена]) внесла
код планирования на основе календарной очереди для этой версии программы, которая была известна как
tcpsim. В декабре 1994 года Макканн перенес tcpsim на C ++ и заменил основанный на yacc
язык описания моделирования с интерфейсом Tcl и добавлена предварительная многоадресная рассылка
служба поддержки. Также в это время изменилось название с tcpsim к более общему нс.
На протяжении всего времени Флойд вносил изменения в код TCP и добавлял дополнительный источник.
модели для ее исследований в области шлюзов RED, управления ресурсами, организации очередей на основе классов,
явное уведомление о перегрузке и эффекты фазы трафика. Многие бумаги
обсуждение этих вопросов доступно через URL http://www-nrg.ee.lbl.gov/.
Используйте ns в Интернете с помощью сервисов onworks.net