Вы находитесь на странице: 1из 12

https://au.mathworks.

com/help/simevents/ug/model-an-ethernet-communication-network-with-
csmacd-protocol.html

Смоделируйте коммуникационную сеть Ethernet с


протоколом CSMA / CD
В этом примере используются:

 SimEvents
 Stateflow
 Simulink

Просмотр команды MATLAB


В этом примере показано, как смоделировать сеть связи Ethernet с протоколом CSMA / CD с
использованием сообщений Simulink® и SimEvents®. В этом примере есть три компьютера,
которые обмениваются данными через сеть связи Ethernet. Каждый компьютер имеет
программный компонент, который генерирует данные, и интерфейс Ethernet для связи. Каждый
компьютер пытается отправить данные на другой компьютер с уникальным MAC-
адресом. Интерфейс Ethernet управляет взаимодействием компьютера с сетью с помощью
протокола связи CSMA / CD. Протокол используется для реагирования на конфликты,
возникающие при одновременной отправке данных несколькими компьютерами. Компонент
Ethernet представляет сеть и соединение между компьютерами.
Компоненты программного обеспечения
В модели каждый программный компонент генерирует данные (полезную нагрузку) и объединяет
данные, их размер и место назначения в сообщение. Затем сообщение отправляется на
интерфейс Ethernet для связи.
В каждой подсистеме программных компонентов:
 Блок MATLAB Function генерирует данные с размером от 46до 1500байтов [ 1 ].
 Блок Constant назначает данные адреса назначения.
 A Ячейка Создатель блок преобразует Data, PayloadSizeи DestAddressсигналы на шину
объект не виртуальный называется dataPacket.
 Блок отправки преобразуется dataPacketв сообщение.
 Блок Outport отправляет сообщение на интерфейс Ethernet для связи.
Каждый компьютер генерирует данные с разной скоростью. Вы можете изменить скорость
генерации данных от времени выборки блока MATLAB Function.
Чтобы узнать об основах создания интерфейсов отправки и получения сообщений,
см. Установка интерфейсов отправки и получения сообщений между компонентами программного
обеспечения .

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

Подсистемы интерфейса Ethernet состоят из трех основных частей:


1. Сборка кадра Ethernet - преобразует входящее сообщение в кадр Ethernet (MAC).
2. Буфер передачи - хранит кадры Ethernet для передачи.
3. Контроль доступа к среде - реализует протокол CSMA / CD для пакетной передачи [ 2 ].
Соберите рамку Ethernet
Блоки Assemble Ethernet Frame преобразуют сообщения в Ethernet-кадры, прикрепляя к
сообщению атрибуты Ethernet [ 1 ].
В процессе сборки пакета:
 Блок SimEvents® Entity Replicator с пометкой «Копировать сообщение» копирует входящее
сообщение. Исходное сообщение пересылается в блок SimEvents® Entity Generator, помеченный
как Assemble MAC Frame. Поскольку для параметра метода генерации блока Entity
Generator установлено значение Event-based, он немедленно создает объект, когда исходное
сообщение прибывает в блок. Копия сообщения пересылается в функциональный блок Simulink
с initPacket()функцией. Термины сообщение и сущность взаимозаменяемы в 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.
 entity.TxDelayэто задержка передачи. Он определяется размером полезной нагрузки и
битрейтом. BitrateПараметр задается с помощью функции инициализации в свойствах модели.
 entity.CRC это циклический контроль избыточности для обнаружения ошибок.
Буфер передачи
Буфер передачи хранит объекты перед передачей с использованием политики «первым пришел -
первым обслужен» (FIFO). Буфер моделируется блоком Queue.
Емкость очереди определяется параметром емкости буфера передачи .

Средний контроль доступа


Блоки управления доступом к среде моделирования смоделированы с помощью шести блоков
SimEvents®.
 Блок Entity Gate, помеченный Admit 1 Frame, настроен как активированный шлюз с двумя
входными портами. Один входной порт позволяет кадры из блока буфера передачи. Другой порт
ввода называется портом управления, который принимает сообщения от блока CSMA / CD. Блок
позволяет продвинуться на один кадр, когда он получает сообщение с положительным значением
из блока CSMA / CD.
 Блок Entity Input Switch, помеченный как Merge, объединяет два пути. Один входной порт
принимает новые кадры, принятые блоком кадра Допустить 1, а другой входной порт принимает
кадры для повторной передачи, которые отправляются блоком CSMA / CD.
 Блок Entity Server, помеченный как Wait for Channel, моделирует время задержки кадра
перед его повторной передачей по каналу.
 Другой блок Entity Gate, помеченный Send to Channel, открывает шлюз для приема кадров,
когда канал свободен. Статус канала отображается в таблице CSMA / CD.
 Блок Entity Replicator, обозначенный как Copy Transmitted Frame, генерирует копию
кадра. Один кадр пересылается в сеть Ethernet, а другой - в схему CSMA / CD.
 Блок диаграммы дискретных событий, обозначенный как CSMA / CD, представляет собой
конечный автомат, моделирующий протокол CSMA / CD.
CSMA / CD протокол
Протокол CSMA / CD [ 2 ] моделируется блоком Discrete-Event Chart, который имеет два входа:
 TxIn - Копия переданного кадра.
 RxIn - Получен кадр из сети Ethernet.
Диаграмма имеет пять выходов:
 IsIdle- Открывает шлюз отправки в канал для приема кадров, когда значение равно 1, и
закрывает шлюз, когда значение равно 0.
 TxRe - Повторно переданный кадр, который пересылается в блок Merge, если во время его
передачи обнаружена коллизия.
 TxNext- Открывает шлюз «Допустить 1 кадр» для приема новых кадров, когда значение
равно 1.
 DataOut - Полученные данные.
 Size - Размер полученных данных.
Передача и получение сообщений
Блок изначально находится в Standbyсостоянии, а канал свободен.
Если блок передает, после задержки, блок пытается передать сообщение
и Isle.dataустанавливается в положение, 0чтобы объявить, что канал используется.
Если передача прошла успешно, блок устанавливает TxNext.dataзначение, 1чтобы разрешить
поступление нового сообщения в канал, и сбрасывается в это Standbyсостояние.
Если возникает конфликт, блок повторно отправляет сообщение после задержки его на случайное
время отсрочки. n - счетчик повторных передач. Блок повторно передает сообщение
максимум 16раз. Если все попытки повторной передачи безуспешны, то блок завершает
сообщение и разрешает ввод нового сообщения. Затем он сбрасывается на StandBy.
Точно так же блок может получать сообщения с других компьютеров. Если ошибки нет, сообщения
успешно получены, и блок выводит полученные данные и их размер.

Концентратор Ethernet
Компонент Ethernet представляет собой сеть связи и кабельные соединения компьютеров с сетью.
Дважды щелкните блок Ethernet, чтобы увидеть его параметры.
 Подключенные станции - эти значения назначаются Stationsвектору с
идентификаторами станций в качестве элементов.
 Длина кабелей (м) - эти значения назначаются CableLengthи представляют длину
кабелей в метрах для каждого компьютера, подключенного к концентратору.
 Частота ошибок пакетов (PER) - эти значения присваиваются PERи представляют частоту
ошибок при передаче сообщений для каждого компьютера.
 Время обработки (с) - эти значения присваиваются, ProcessingTimeи они представляют
задержку передачи канала.

Три блока SimEvents® используются для моделирования сети Ethernet. Три компьютерных


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

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


Смоделируйте модель и откройте блок Scope, который отображает среднее использование
канала. Использование канала приближается к приблизительно 0.12.
Откройте программный компонент 1 в качестве топовой модели и измените скорость генерации
данных, установив для параметра Sample time блока Generate Data 1 значение 0.01. Снова
запустите моделирование и обратите внимание, что использование канала увеличивается до 0.2.
Подключите новые компьютеры к сети
Вы можете подключить к сети больше компьютеров.
Чтобы добавить новый компьютер в сеть:
 Скопируйте существующий компьютер и назначьте новый идентификатор, дважды щелкнув
блок интерфейса Ethernet. В этом примере у нового компьютера есть ID 4.
 Дважды щелкните блок Ethernet и добавьте идентификатор станции, длину кабеля и
частоту ошибок пакетов для нового компьютера.
Рекомендации
1. Фрейм Ethernet - Википедия ( https://en.wikipedia.org/wiki/Ethernet_frame )
2. Множественный доступ с контролем оператора связи с обнаружением коллизий -
Википедия ( https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection )

Вам также может понравиться