Моделируйте сеть связи Ethernet с протоколом CSMA/CD

В этом примере показано, как смоделировать сеть связи Ethernet с протоколом CSMA/CD с помощью сообщений Simulink ® и SimEvents ®. В этом примере существуют три компьютера, которые взаимодействуют через сеть связи Ethernet. Каждый компьютер имеет программный компонент, который генерирует данные и интерфейс Ethernet для связи. Каждый компьютер пытается отправить данные на другой компьютер с уникальным MAC-адресом. Интерфейс Ethernet управляет взаимодействием компьютера с сетью с помощью протокола связи CSMA/CD. Протокол используется для реагирования на столкновения, которые происходят при одновременной передаче данных несколькими компьютерами. Компонент Ethernet представляет сеть и соединение между компьютерами.

Программные компоненты

В модели каждый программный компонент генерирует данные (полезную нагрузку) и объединяет данные, их размер и место назначения в сообщение. Затем сообщение отправляется в интерфейс Ethernet для обмена данными.

В каждой Подсистеме Программного Компонента:

  • Блок MATLAB Function генерирует данные с размером между 46 и 1500 байты [1].

  • Блок Constant присваивает адресаты назначения данным.

  • Блок Bus Creator преобразует Data, PayloadSize, и DestAddress сигналы к невиртуальному объекту шины, вызываемому dataPacket.

  • Блок A Send преобразует dataPacket в сообщение.

  • Блок Outport отправляет сообщение в интерфейс Ethernet для связи.

Каждый компьютер генерирует данные с разной скоростью. Вы можете изменить скорость генерации данных из шага расчета блока MATLAB Function.

Для изучения основ создания интерфейсов отправки и приема сообщений см. раздел Установка интерфейсов отправки и получения сообщений между программными компонентами.

Интерфейс Ethernet

Дважды кликните Ethernet Interface 1. Обратите внимание, что вы можете задать идентификатор станции и пропускную способность буфера передачи.

Подсистемы Ethernet-интерфейса имеют три основные части:

  1. Assemble Ethernet Системы координат - преобразует входящее сообщение в систему координат Ethernet (MAC).

  2. Transmission Buffer - Сохраняет системы координат Ethernet для передачи.

  3. Управление доступом к среде - реализует протокол CSMA/CD для передачи пакетов [2].

Сборка системы координат Ethernet

Блоки Assemble Ethernet Frame преобразуют сообщения в системы координат Ethernet путем присоединения атрибутов Ethernet к сообщению [1].

В процессе сборки пакета:

  • Блок SimEvents ® Entity Replicator с меткой «Копировать сообщение» копирует входящее сообщение. Исходное сообщение пересылается в блок SimEvents ® Entity Generator с меткой Assemble MAC Frame. Потому что параметр Сущности метода блока Генерации Generator установлен в Event-basedон немедленно создает сущность, когда исходное сообщение приходит к блоку. Копия сообщения пересылается в блок Simulink Function с initPacket() функция. Термины message и entity используются взаимозаменяемо между Simulink ® и SimEvents ®.

  • Блок Simulink Function передает данные, его размер и адрес назначения блоку Assemble MAC Frame для сборки системы координат.

  • Блок Assemble MAC Frame генерирует системы координат Ethernet, которые несут как специфические для Ethernet атрибуты, так и значения, переданные из блока Simulink Function.

Блок Assemble MAC Frame вызывает initPacket() функция как действие, которое вызывается каждым событием генерации системы координат.

Это атрибуты сгенерированной системы координат Ethernet:

  • entity.TxAddress является StationID.

  • entity.RxAddress, entity.Data, и entity.PayloadSize присвоены значения из блока Simulink Function.

  • entity.TxDelay - задержка передачи. Это определяется размером полезной нагрузки и битрейтом. The Bitrate параметр задается функцией инициализации в Свойствах Модели.

  • entity.CRC - циклическая проверка избыточности для выявления ошибок.

Буфер Передачи

Буфер передачи хранит сущности перед передачей с помощью политики FIFO. Буфер моделируется блоком Queue.

Емкость очереди определяется параметром Transmission buffer capacity.

Управление средним доступом

Блоки управления доступом к среде моделируются с помощью шести блоков SimEvents ®.

  • Блок Entity Gate, помеченный как Admit 1 Frame, сконфигурирован как активированный GATE с двумя входными портами. Один входной порт позволяет создавать кадры из блока Transmission Buffer. Другой входной порт называется управляющим портом, который принимает сообщения от блока CSMA/CD. Блок позволяет одной системе координат продвигаться, когда он получает сообщение с положительным значением от блока CSMA/CD.

  • Блок Вход Switch с меткой Merge объединяет два пути. Один входной порт принимает новые системы координат, допущенные блоком системы координат Admit 1, а другой входной порт принимает системы координат для повторной передачи, которые передаются блоком CSMA/CD.

  • Блок Entity Server, помеченный как Wait for Channel, моделирует время отключения системы координат перед его повторной передачей через канал.

  • Другой блок Entity Gate, помеченный как Send to Channel, открывает шлюз, чтобы принимать системы координат, когда канал находится в простое. Состояние канала сообщается графиком CSMA/CD.

  • Блок Replicator сущности, помеченный как Copy Transfected Frame, генерирует копию системы координат. Одна система координат пересылается в сеть Ethernet, а другой - на график CSMA/CD.

  • Блок График дискретного события, помеченный CSMA/CD, представляет конечный автомат, который моделирует протокол CSMA/CD.

Протокол CSMA/CD

Протокол CSMA/CD [2] моделируется блоком Discrete-Event Chart, который имеет два входа:

  • TxIn - Копия переданной системы координат.

  • RxIn - Принята система координат от сети Ethernet.

График имеет пять выходов:

  • IsIdle - Открывает переключатель Send to Channel, чтобы принимать системы координат, когда значение 1, и закрывает ворота, когда значение 0.

  • TxRe - Повторно переданный система координат, который передается в блок Merge, если во время его передачи обнаружена коллизия.

  • TxNext - Открывает ворота Admit 1 Frame, чтобы принять новые системы координат, когда значение 1.

  • DataOut - Полученные данные.

  • Size - Размер полученных данных.

Передача и прием сообщений

Блок первоначально находится в Standby состояние и канал свободен.

Если блок передает, после задержки, блок пытается передать сообщение и Isle.data установлено в 0 объявить, что канал используется.

Если передача успешна, блок устанавливает TxNext.data на 1 разрешить новое сообщение в канал и сбрасывается на Standby состояние.

Если происходит столкновение, блок пересылает сообщение после задержки на время случайного обратного отключения. n - счетчик для повторных передач. Блок повторно передает сообщение максимум 16 времени. Если все попытки повторной передачи являются неудачными, то блок завершает сообщение и разрешает ввод нового сообщения. Затем он сбрасывается на StandBy.

Аналогично, блок может принимать сообщения от других компьютеров. Если ошибки нет, сообщения успешно принимаются, и блок выводит полученные данные и их размер.

Концентратор Ethernet

Компонент Ethernet представляет коммуникационную сеть и кабельные соединения компьютеров к сети.

Дважды кликните блок Ethernet, чтобы увидеть его параметры.

  • Подключенные пикеты - Эти значения присваиваются Stations, который является вектором с идентификаторами станций в качестве элементов.

  • Длина кабелей (m) - Эти значения присвоены CableLength и представлять длину кабелей, в метрах, для каждого компьютера, подключенного к концентратору.

  • Вероятность пакетной ошибки (PER) - Эти значения назначены PER и представление частоты ошибок в передаче сообщений для каждого компьютера.

  • Времена (времена) вычислений обработки - Эти значения присвоены ProcessingTime и это представляет задержку передачи канала.

Три блока SimEvents ® используются для моделирования сети Ethernet. Три компьютерных подключения объединяются с помощью блока Вход Switch. Блок Entity Server используется, чтобы смоделировать задержку передачи канала на основе длины кабеля. Блок Entity Replicator копирует переданное сообщение и пересылает его на три компьютера.

Моделируйте модель и просмотрите результаты

Симулируйте модель и откройте блок Scope, который отображает среднюю загрузку канала. Использование канала сходится примерно к 0.12.

Откройте Software Компонента 1 как верхняя часть модели и измените скорость генерации данных, установив Шаг расчета блока Generate Data 1 равной 0.01. Еще раз запустите симуляцию и заметьте, что использование канала увеличивается до 0.2.

Подключение новых компьютеров к сети

Можно подключить к сети больше компьютеров.

Чтобы добавить новый компьютер в сеть:

  • Скопируйте существующий компьютер и присвойте новый идентификатор путем двойного щелчка по блоку Ethernet Interface. В этом примере новый компьютер имеет идентификатор 4.

  • Дважды кликните блок Ethernet и добавьте идентификатор станции, длину кабеля и частоту ошибок пакетов для нового компьютера.

Ссылки

  1. Ethernet системы координат - Википедия (https://en.wikipedia.org/wiki/Ethernet_frame)

  2. Множественный доступ с обнаружением столкновения - Википедия (https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection)