Один из ключевых вопросов для Gigabit Ethernet - это максимальный размер сети. Перенос без изменения всех отличительных составляющих Ethernet - минимального размера кадра, времени обнаружения коллизии (или кванта времени - time slot) и CSMA/CD - на Gigabit Ethernet обернулся бы сокращением диаметра сети до 20 м. Рабочий комитет 802.3z предложил увеличить время обнаружения коллизии с тем, чтобы сохранить прежний диаметр сети в 200 м. Такое переопределение подуровня MAC необходимо для Gigabit Ethernet, иначе отстоящие друг от друга на расстоянии 200 м станции не смогут обнаружить конфликт, когда они обе одновременно передают кадр длиной 64 байт.
Предложенное решение было названо расширением несущей (carrier extension). Суть его в следующем. Если сетевой адаптер или порт Gigabit Ethernet передает кадр длиной менее 512 байт, то он посылает вслед за ним биты расширения несущей, т. е. время обнаружения конфликта увеличивается. Если за время передачи кадра и расширения несущей отправитель зафиксирует коллизию, то он реагирует традиционным образом: подает сигнал затора (jam signal) и применяет механизм отката (back-off algorithm).
Очевидно, однако, что если все станции (узлы) передают кадры минимальной длины (64 байт), то реальное повышение производительности составит всего 12,5% (125 Мбит/с вместо 100 Мбит/с). С целью повышения эффективности Gigabit Ethernet комитет предложил метод пакетной передачи кадров. В соответствии с этим методом короткие кадры накапливаются и передаются вместе. Передающая станция заполняет интервал между кадрами битами расширения несущей, поэтому другие станции будут воздерживаться от передачи, пока она не освободит линию.
Проведенное AMD моделирование показывает, что в полудуплексной топологии с коллизиями сеть Gigabit Ethernet позволяет достичь пропускной способности 720 Мбит/с при полной нагрузке сети. Тем не менее подобные ухищрения (расширение несущей и пакетная передача кадров) свидетельствуют о том, что метод доступа к среде CSMA/CD в его теперешнем виде себя практически изжил.
Естественно, такие нововведения необходимы только для полудуплексного режима, так как для полнодуплексной передачи CSMA/CD не нужен. Действительно, в полнодуплескном режиме данные передаются и принимаются по разным путям, так что ждать завершения приема для начала передачи не требуется. Таким образом, в полнодуплескной топологии без коллизий реальная пропускная способность может превзойти указанный 72-процентный барьер и приблизиться к теоретическому максимуму в 2 Гбит/с.
Разработка системы моделирования сводится к модификации исходных текстов Орлана с тем, чтобы он отвечал предъявленным к нему требованиям (см. раздел 1). Многие функции уже реализованы в Орлане. В частности, Орлан позволял:
· графически строить конфигурацию исследуемой сети;
· задавать параметры рабочих стангций, серверов, концетраторов коммутаторов и хранить их в базе данных;
· соединять узлы и задавать параметры соединений;
· проводить аналитическое моделирование заданной сети;
· представлять результаты моделирования в виде графиков;
· проводить экспресс-анализ сети;
· сохранять конфигурацию сети в виде файлов проекта.
Требовалось внести следующие изменения:
· усовершенствовать графический интерфейс
· доработать большинство диалоговых окон, удалив неиспользуемые и добавив новые поля; доработать функции разметки узлов и поиска пути в сети; усовершенствовать модуль формирования параметров для аналитического моделирования;
и новые функции:
· имитационное моделирование;
· прогнозирование характеристик сети;
· представление результатов имитационного моделирования в виде графиков и сравнение их с результатами аналитики.
В целях улучшения повторяемости, расширяемости и повышения общей надежности был выбран принцип модульности системы. Это значит, что все выполняемые функции группировались по их назначению, причем каждая группа функций выполнялась своим модулем Связность модулей по данным выбиралась возможно ниже.
Итак, разработанная система Орлан имеет в своем составе следующие модули:
· Модуль ввода данных
· Модуль хранения данных.
· Модуль быстрой оценки загрузки сети.
· Модуль аналитического моделирования.
· Модуль имитационного моделирования.
· Модуль прогнозирования.
· Модуль отображения результатов
Схема взаимодействия между ними приведена в прил. 1, а их назначение будет подробно описано ниже.
Для модуля имитационного моделирования входными данными являются:
1) топология сети;
2) рабочая нагрузка сети.
Топология сети задается в виде набора, или одномерного массива узлов с заданными связями между ними. Узлом является рабочая станция, коммутатор или сервер. Концетратор, хотя и учитывается при анализе топологии сети, в состав набора связей не включается. Причина этого в том, что концетратор, как и репитер, не изменяет сегментную структуру сети, в отличие от коммутаторов, маршрутизаторов и др.
Каждый узел имеет заданное количество портов. Например, рабочая станция, как правило – один порт Ethernet, сервер – один или два порта, коммутатор – более 16 портов. Каждому порту ставится в соответствие некоторое число, обозначающее номер соединения. Порты разных узлов, имеющие одинаковый номер соединения, считаются соединенными. Порт узла, которому присвоен номер соединения 0, считается свободным.
Рабочая нагрузка задается в виде набора заявок, где для каждой заявки указывается:
1) маршрут заявки;
2) размер запроса в байтах Nз;
3) время подготовки запроса в секундах Tз;
4) размер ответа в байтах Nо;
5) время подготовки ответа в байтах Tо;
6) время цикла заявки Tц;
7) нужен ли ответ сервера на запрос;
Заявка в данном случае обозначает совокупность запроса, который готовится на клиенте, и необязательного ответа на запрос, который готовится на сервере.
Запрос на своем пути от клиента к серверу обычно проходит через множество коммутаторов. Должен существовать только один путь между двумя любыми узлами сети, и он задается в виде маршрута заявки. Ответ, если он передается, проходит по тому же пути, что и запрос, но в обратном направлении.
Первый узел, на котором обрабатывается запрос – это сам клиент. Под обработкой в данном случае понимается приготовление запроса клиентским приложением в течение времени Tз. Один клиент может одновременно готовить несколько запросов для передачи на один и тот же или разные сервера. Время подготовки запроса на клиенте определяется только Tз и не зависит от Nз.
От размера пакета Nз зависит время его передачи по моноканалу. С увеличением Nт это время увеличивается, однако эта зависимость не линейная и определяется множеством факторов.
Параметры Tо и Nо имеют значение только в том случае, если требуется передать ответ сервера на запрос клиента. Если это так, их смысл аналогичен Tз и Nз соответственно.
Обычно клиентское приложение обращается к серверу с запросами на чтение и запись в базу данных, загрузку WEB-страниц и т.д. В данном случае клиент обычно не посылает следующего запроса до тех пор, пока он не получит ответ на уже посланный запрос. Чтобы задать такое его функционирование, следует указать время цикла Tц равным 0.
Довольно часто (например, на производстве) применяют датчики различных параметров, которые сообщают требуемую информацию через определенные равные промежутки времени. Эти промежутки времени следует указать в качестве времени цикла Tц.
Так как данный модуль моделирует функционирование сети Ethernet в соответствии со стандартом IEEE 802.3, алгоритм его работы определяется указанным стандартом, подробно описанным в разделах 4.3.1-4.3.3. Однако, имеют место некоторые обобщения и упрощения этого алгоритма, не оказывающие значительного влияния на достоверность имитационной модели.
Временные параметры функционирования сетей Ethernet обычно выражаются через время передачи одного бита при данной пропускной способности. Аналогично поступим в нашем случае.
Для моделирования был выбран минимальный промежуток, или квант времени tmin, равный 1 нс = 10-9с, умножением которого на целое число nx рассчитываются все необходимые задержки. Число nt определяется следующим образом:
nx = Tx / tmin ,
где Tx = требуемая задержка.
Например, передача одного байта при скорости передачи 1 Гбит/с займет: nx = ( 1 / 109 с) * 8 / 10-9 с = 8 [квантов].