Содержание к диссертации
Введение
Глава 1. Способы коммутации и методы защиты от перегрузок трафика в сетях ethernet 11
1.1. Принципы коммутации в сетях передачи данных 11
1.2. Перегрузка трафика в сетях Ethernet 13
1.3. Протокол защиты от кольцевания трафика MSTP
1.3.1. Cлужебные кадры (BPDU) 17
1.3.2. Определение наилучшего пути 19
1.3.3. Область MST 23
1.3.4. Виды связующих деревьев в MSTP 24
1.3.5. Физическое связующее дерево 25
1.3.6. Логические связующие деревья 26
1.3.7. Механизм изменения топологии 28
1.3.8. Основные параметры и характиристики MSTP
1.4. Недостатки протокола MSTP 32
1.5. Существующие методы защиты от перегрузок
1.5.1. Метод дросселирования 33
1.5.2. Метод ограничения и метод формирования трафика 35
1.6. Выводы по главе 1 36
Глава 2. Разработка и исследование алгоритмов определения перегрузок и переключения трафика 37
2.1. Основные положения 37
2.2. Основные переменные и алгоритм функционирования 37
2.3. Блок-схемы алгоритмов 44
2.4. Выводы по главе 2 50
Глава 3. Разработка модификации протокола построения связующих деревьев mstp (адаптивного построения свяющих деревьев AMSTP) 51
3.1. Описание модификации протокола 51
3.2. Описание работы модификации протокола AMSTP 53
3.3. Анализ эффективности модификации протокола AMSTP
3.4. Исследование трудозатрат 61
3.5. Выводы по главе 3 65
Глава 4. Реализация и моделирование 67
4.1. Алгоритм расчета трафика в кольцевой MSTP сети 67
4.2. Реализация работы модификации протокола AMSTP 74
4.3. Моделирование работы модификации протокола AMSTP 80
4.4. Моделирование работы модифкации протокола AMSTP в сетях передачи данных без перегрузок 87
4.5. Моделирование работы модификации протокола AMSTP в сетях передачи данных с перегрузками 90
4.6. Выводы по главе 4 106
Заключение 107
Список литературы
- Протокол защиты от кольцевания трафика MSTP
- Основные переменные и алгоритм функционирования
- Анализ эффективности модификации протокола AMSTP
- Моделирование работы модифкации протокола AMSTP в сетях передачи данных без перегрузок
Введение к работе
Актуальность темы диссертации. В настоящее время происходит активное развитие сетей связи. При планировании сети выделяют три основных иерархических уровня:
Уровень доступа – сегмент сети, в котором используется оборудование (в самом распространённом случае – коммутаторы Ethernet), в порты которого непосредственно включены абоненты.
Уровень агрегации, который является промежуточным между уровнем доступа и ядром. Он занимается маршрутизацией трафика абонентов.
Уровень ядра, который обеспечивает связность между
оборудованием уровня агрегации и другими ресурсами сети.
Из-за своих масштабов самый большой и экономически дорогой сегмент - это уровень доступа. Количество оборудования обычно определяется сотнями. Как правило, в этом сегменте используется самое недорогое, по сравнению с другими сегментами, оборудование, но эффективность его использования порой очень низкая.
Причина этого кроется в архитектуре коммутации сетей Ethernet.
Для стабильной работы сети возможен только один путь между
источником и приемником, однако в современных сетях для
обеспечения избыточности между коммутаторами создается несколько
соединений, что ведет к образованию петель. Петля предполагает
существование нескольких маршрутов между источником и
приемником. Хотя наличие избыточных каналов значительно повышает отказоустойчивость работы сети, тем не менее, избыточные каналы создают проблемы, самые актуальные из которых -широковещательные штормы и множественные копии кадров.
Эта ситуация ведет к лавинообразному росту трафика и приводит к отказам в работе сети.
Для решения проблем по отказам в работе сети используются протоколы семейства STP. Коммутаторы создают древовидную топологию связей без петель. Такая топология называется связующим деревом (англ. spanning tree). Однако эти протоколы имеют серьезный недостаток – при существовании нескольких путей в действительности
используется только один, в результате чего возникает
неэффективное использование каналов связи. Для решения этой проблемы может быть использована технология QoS (англ. quality of service) обеспечения качества обслуживания при обработке трафика. Однако использование механизмов по приоритезации приводит к потере низкоприоритетного трафика и не решает проблему неэффективного использования каналов связи.
Степень разработанности темы. Применение протокола MSTP
позволяет статически балансировать трафик (независимый от
реальных показателей) между избыточными каналами. Это
достигается путем ввода логических коммутаторов, что дает
возможность каждую группу абонентов рассматривать как отдельную
сеть (логическую сеть). Благодаря этому весь трафик делится на
несколько частей, и каждая часть может использовать различные пути
передачи. Это позволяет использовать все возможные каналы, но
реальная загрузка трафиком этих каналов будет неравномерная, так
как расчет трафика не входит в алгоритм протокола MSTP, а зависит
от количества абонентов и активности в этой группе. Методы защиты
от перегрузок трафика в пакетных сетях связи в настоящее время
активно исследуются и разрабатываются. Предложено несколько
методов защиты, например: метод дросселирования, метод
ограничения и метод формирования трафика. Но эти методы не применимы к работе алгоритмов защиты от петель.
Таким образом, необходим метод борьбы с перегрузками применительно к протоколам защиты от закольцовывания трафика MSTP.
Объектом исследования является защита трафика от перегрузок в кольцевых коммутируемых сетях Ethernet, использующих протокол построения множества связующих деревьев MSTP.
Предметом исследования является механизм построения
связующего дерева MSTP и распределения трафика на канальном уровне в сетях Ethernet.
Цель работы и задачи исследования. Целью диссертационной работы является разработка метода и алгоритмов управления трафиком, обеспечивающих защиту от перегрузок при использовании протокола MSTP в кольцевых сетях Ethernet и тем самым увеличивающих эффективность обработки трафика с точки зрения улучшения таких показателей, как значения величины задержки, потери пакетов, а также коэффициента использования канала.
Достижение поставленной цели требует решения следующих задач: 1) классификация и анализ существующих протоколов защиты от
закольцовывания пакетного трафика;
-
разработка модели распределения потоков трафика по логическим кольцам сети передачи данных;
-
разработка и анализ алгоритмов для модифицированного протокола перестройки связующих деревьев c учетом состояния канала связи;
-
апробация предложенных решений на практике и анализ полученных результатов.
Научная новизна диссертационной работы заключается в следующем:
-
Предложен и реализован новый метод борьбы с перегрузками трафика в кольцевых коммутируемых сетях связи Ethernet, работающих по протоколу MSTP, заключающийся в переключении части избыточного трафика на резервный канал.
-
Разработан алгоритм информирования узлов сети передачи данных о наличии перегрузки на пути следования трафика без использования дополнительных служебных пакетов («Алгоритм наличия перегрузки AMSTP»).
-
Разработан новый алгоритм последовательного переключения трафика с перегруженного канала на резервный («Алгоритм переключения AMSTP»).
-
Разработан алгоритм стабилизации трафика, позволяющий учитывать влияние переключенного трафика на резервный канал и, в случае возникновения перегрузки резервного канала, возвращать трафик в основной канал. При нормализации трафика данный алгоритм возвращает систему в первоначальное состояние («Алгоритм стабилизации AMSTP»).
-
Разработан алгоритм изменения записей в таблицах коммутации коммутаторов, исключающий удаление всей MAC –таблицы («Алгоритм коммутационного BPDU AMSTP»).
-
На основе предложенных алгоритмов разработана и исследована модификация протокола перестройки связующих деревьев MSTP (адаптивного построения множества связующих деревьев, англ.-AMSTP), обеспечивающая реализацию предложенного метода борьбы с перегрузками трафика в кольцевых коммутируемых сетях связи Ethernet, работающих по протоколу MSTP. Теоретическая и практическая значимость. Разработанный
метод, модификация протокола MSTP (AMSTP) и алгоритмы
«Алгоритм наличия перегрузки AMSTP», «Алгоритм переключения
AMSTP», «Алгоритм стабилизации AMSTP», «Алгоритм
коммутационного BPDU AMSTP» позволяют решать задачи по эффективному использованию полосы пропускания и сохранению
пользовательского трафика в существующих пакетных сетях связи. Это достигается путем динамического переключения части трафика на резервные каналы в случае обнаружения перегрузки в основных. Разработанный протокол в виде программного комплекса реализован на экспериментальной сети передачи данных и позволяет сохранить часть трафика, которая была бы потеряна в существующих сетях, повышая при этом надежность сети. Протокол AMSTP полностью совместим с существующими протоколами связующих деревьев и может быть внедрен в имеющиеся сети связи.
Методы исследования. Разработки и исследования протоколов
семейства STP выполнены на основе теории передачи данных сетей
Ethernet с использованием математического моделирования,
математической статистики, системного и прикладного
программирования. Оценка работы алгоритмов и созданного протокола проводилась на реально действующем оборудовании.
На защиту выносятся следующие научные положения.
-
Метод перестройки связующих деревьев, обеспечивающий защиту от перегрузок каналов путем переключения избыточного трафика на резервные, а также балансировку трафика на основных и резервных каналах связи.
-
Алгоритмы, обеспечивающие сбалансированность трафика между основными и резервными портами:
алгоритм наличия перегрузки AMSTP;
алгоритм переключения AMSTP;
алгоритм стабилизации AMSTP;
алгоритм коммутационного BPDU AMSTP.
3. Результаты экспериментального исследования кольцевой сети
доступа Ethernet, работающей с модифицированным протоколом
AMSTP.
Степень достоверности полученных результатов подтверждается глубокой проработкой литературных источников по теме диссертации, постановкой необходимого числа экспериментов, применением современных инструментальных методов анализа, публикацией основных положений диссертации. Для математической обработки результатов исследований использованы прикладные компьютерные программы. Достоверность выводов подтверждается результатами моделирования и испытаний реальных систем.
Личный вклад автора заключается в том, что все основные научные положения и результаты, выводы и рекомендации, содержащиеся в диссертации, получены и сформулированы автором впервые и лично. Наличие соавторов отражено в списке литературы, который включает перечень публикаций соискателя.
Апробация результатов работы. Результаты диссертационного исследования докладывались и получили одобрение на XVIII и XIX Российской научной конференции профессорско-преподавательского состава, научных сотрудников и аспирантов - «Сравнение алгоритмов построения очередей при обеспечении качества обслуживания», «Управление перегрузками в кольцевых сетях Ethernet», на конференции «ИНФОТЕХ – 2011» - «Исследование структуры сетевого трафика, направленное на сравнение алгоритмов построения очередей при обеспечении качества обслуживания» в 2011-2014 гг.
Публикации. По теме диссертации автором опубликовано 7 печатных работ. При этом основные результаты диссертации изложены в 4 статьях в ведущих рецензируемых научных журналах и изданиях, внесённых в перечень, утверждённый ВАК.
Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка использованной литературы и приложения. Содержит 120 страниц текста, 20 таблиц, 64 рисунка, 14 страниц приложения.
Протокол защиты от кольцевания трафика MSTP
Основная проблема перегрузок в сетях Ethernet в том, что из-за основного принципа коммутации при нахождении более одного пути достижения получателя кадра начинается дублирование кадров по нескольким каналам. Может случиться так, что коммутатор вообще не сможет переслать кадр, так как будет постоянно обновлять таблицу коммутации . Коммутатор использует таблицу коммутации для пересылки кадров. Например, если на порт 1 коммутатора поступает кадр от узла 1, то он запоминает номер порта, на который этот кадр пришел и добавляет эту информацию в таблицу коммутации. Адреса изучаются динамически. Это означает, что как только будет получен кадр с новым адресом, то он сразу будет занесен в контентно-адресуемую память (content-addressable memory, CAM). Каждый раз при занесении адреса в таблицу коммутации ему присваивается временной штамп. Это позволяет хранить адреса в таблице в течение определенного времени. Каждый раз, когда идет обращение по этому адресу, он получает новый временной штамп. Адреса, по которым не обращались долгое время, из таблицы удаляются [18].
Когда на порт коммутатора поступает кадр, коммутатор извлекает из кадра информацию о МАС-адресе приемника и ищет этот МАС-адрес в своей таблице коммутации. Если в таблице есть запись, ассоциирующая МАС-адрес приемника с одним из портов коммутатора, за исключением того, на который поступил кадр, то кадр пересылается через этот порт. Если такой ассоциации нет, кадр передается через все порты, за исключением того, на который он поступил. Это называется лавинным распространением (flooding). Широковещательная и многоадресная рассылка выполняется также путем лавинного распространения. С этим связана одна из проблем, ограничивающая применение коммутаторов.
Наличие коммутаторов канального уровня в сети не препятствует распространению широковещательных кадров (broadcast) по всем сегментам сети, сохраняя ее прозрачность. В случае, если в результате каких-либо программных или аппаратных сбоев, протокол верхнего уровня или сетевой адаптер начнет работать неправильно и будет постоянно генерировать широковещательные кадры, коммутатор в этом случае будет передавать кадры во все сегменты сети, затапливая сеть ошибочным трафиком. Такая ситуация называется широковещательным штормом (broadcast storm) [19].
Для предотвращения закольцовывания трафика на сетях Ethernet используются алгоритмы защиты от петель, такие как STP, RSTP и MSTP. Алгоритмы используются для автоматического построения связующего дерева. Они вычисляют оптимальные маршруты между всеми устройствами по определенным правилам и автоматически блокируют (отключают) порты в случае обнаружения петель [3].
Реальная сеть состоит из множества узлов. Их расположение и взаимодействие неравномерно. Следовательно, при выборе протокола защиты от закольцовывания трафика необходимо учитывать неоднородность трафика и выбирать наилучшие пути для его передачи. На рисунке 2 показаны различные платформы: передачи данных (1), IPTV (2), голосовой платформы (3) и видео по запросу (4). В связи с различным расположением сервисных платформ, распределение потоков трафика по каналам связи различно.
Протокол IEEE 802.1s (впоследствии включен в IEEE Std 802.1aq-2012) Multiple Spanning Tree Protocol (MSTP) является развитием стандарта IEEE 802.1d STP и, как определено в спецификации, совместим с IEEE 802.1d STP и IEEE 802.1w RSTP [3]. MSTP заключает в себе достоинства как модификации RSTP, так и возможности стандарта 802.1q [20], который описывает процедуру тегирования трафика для передачи информации о принадлежности к VLAN.
Рассмотрим более детально работу MSTP применительно к кольцевой топологии сети передачи данных. Модель сети передачи данных, по которой описывается диссертационная работа, представлена на рисунке 3. Рисунок 3. Сеть передачи данных сети Ethernet В топологическую схему сети входят несколько коммутаторов и набор каналов, соединяющих узлы. Коммутаторы работают на канальном уровне модели OSI, и к ним подключаются различные источники трафика. Скорость передачи и количество трафика конечными точками меняются по необходимости.
Реализация протокола MSTP позволяет рассматривать физическую кольцевую топологию (оборудование и каналы связи) как множество логических колец, имеющих точку разрыва, вызванного блокировкой одного из портов протоколом защиты от петель, а также применять точку разрыва только к определенному логическому кольцу, тем самым позволяя пропускать служебные кадры BPDU и трафик других логических колец через этот логический разрыв [21]. Пример построения множества связующих деревьев представлен на рисунке 4.
При использовании протокола MSTP коммутатор направляет во все рабочие порты служебные кадры (BPDU). Строение и обозначение полей BPDU представлено в таблице 2 и в таблице П.1.11 приложения 1.
Одной из задач рассылки BPDU кадров является выбор главного коммутатора. До момента определения главного коммутаторы обрабатывают только кадры BPDU, а все остальные кадры удаляют, так как в противном случае возможно закольцовывание трафика. Для выполнения этой задачи определены роли портов коммутатора, описанные в таблица 1.
Все порты коммутатора проходят вышеприведенные состояния именно в таком порядке. При включении коммутатора порты находятся в блокированном состоянии и только принимают BPDU для определения своей роли в существующей топологии сети передачи данных. В момент выбора главного коммутатора все порты находятся в статусе обучения.
Для выбора главного коммутатора используется поле индификатора приоритета. При получении BPDU со значением в поле индификатора приоритета ниже своего коммутатор удаляет этот BPDU и продолжает рассылать BPDU со своим приоритетом. При получении значения приоритета выше своего коммутатор сохраняет это значение себе в память и копирует эту информацию в свои BPDU. Таким образом, полный цикл по всей сети передачи данных сможет пройти только BPDU от коммутатора, имеющего наивысшей приоритет, все остальные BPDU от других коммутаторов будут удалены. По мере прохождения BPDU, направленного наиболее приоритетным коммутатором, значение поля стоимости до главного коммутатора будет увеличиваться. Каждый коммутатор, получивший данное BPDU, сохраняет значение суммарной стоимости до главного коммутатора. BPDU, направляемое главным коммутатором и прошедшее полный цикл по древу, изымается этим коммутатором. Коммутатор, который не получил BPDU c приоритетом выше своего, объявляет себя главным. Из-за этого через интервал времени все коммутаторы в области MSTP выбирают главный коммутатор физического кольца.
Согласно протоколу STP, некорневой коммутатор формирует BPDU только в случае их приема через корневой порт. Однако в MSTP это не всегда так. Коммутатор отправляет BPDU с текущей информацией каждый интервал времени, равный значению таймера helloime (стандартно 2 секунды), даже если он не получил их от главного коммутатора.
Если на данный порт BPDU не поступают три раза подряд, информация протокола может немедленно считаться устаревшей (или по истечении таймера max_age). Из-за ранее упомянутых изменений протокола BPDU используется как механизм проверки активности соединения между коммутаторами. При утере трех пакетов BPDU подряд коммутатор считает, что он утратил связь со своим главным коммутатором. Быстрое устаревание данных позволяет быстро обнаруживать ошибки. Если коммутатор не принимает BPDU от соседнего коммутатора, можно с уверенностью говорить, что соединение с этим соседним коммутатором потеряно [3].
Основные переменные и алгоритм функционирования
Как было описано в первой главе, в существующих сетях передачи данных отсутствует механизм определения состояния всех каналов связи, в том числе перегрузок на пути следования трафика. Каждый коммутатор может определять только состояние своих портов и не имеет никакой информации касательно состояния портов остальных коммутаторов [45].
Для решения этой задачи предлагается использовать уже существующие механизмы определения состояния портов каждого из коммутаторов путем проверки наличия кадров в очереди на портах получения кадров BPDU и, в случае обнаружения, информирование об этом соседей. Признаком потери трафика служит наличие хотя бы одного кадра в очереди на любом порту коммутатора. Алгоритм определения перегрузок и переключения трафика включает в себя функции диспетчеризации трафика и изменения распределения трафика [4, 14, 15]. Далее рассмотрим эти функции подробно.
В таблице П.1.18 приложения 1 приведен список параметров и переменных, используемых разработанным алгоритмом определения перегрузок и переключения трафика. Рассмотрим работу алгоритма: 1. Задается число коммутаторов в физическом кольце (n+1 ). 2. Выбирается главный физический коммутатор и присваивается номер «0». 3. Пронумеровываются все коммутаторы, начиная с главного, последовательностью чисел, возрастающих по часовой стрелке і = 0,п. 4. Задаются пропускные способности выходных портов всех коммутаторов. 5. По таблице П. 1.20 приложения 1 рассчитываются цены выходных портов всех коммутаторов по часовой стрелке и против часовой стрелки. CRi - цена порта /-го физического коммутатора (в направлении «по часовой стрелке») І - цена порта /-го физического коммутатора (в направлении «против часовой стрелки») 6. Задается количество К логических колец и пронумеровывается каждое кольцо номером к = 1,к . Физическое кольцо имеет номер к=0. 7. Логические коммутаторы всех логических колец имеют тот же номер, что и соответствующий им физический коммутатор. 8. Цены портов всех логических коммутаторов, соответствующих данному физическому коммутатору, имеют одинаковые значения с соответствующими портами указанного физического коммутатора. (СкЦ = CRi) (СкЦ = СЦ) (CkRi - цена порта /-го коммутатора к-го логического кольца в направлении по часовой стрелке) 9. Для каждого к-го логического кольца определяется номер ik его главного коммутатора (необходимо задать). 10. Сформировывается в главном физическом коммутаторе два управляющих блока BPDU: BPDUR - для перемещения по кольцу в направлении «по часовой стрелке» (в направлении возрастания номеров коммутаторов). BPDUL - в направлении «против часовой стрелки». 11. В обоих BPDU для каждого логического кольца, а также для физического кольца резервируется по к+1 блоку. Каждый блок BPDUR состоит из трех полей: Поле SkR- стоимость достижения главного коммутатора к-го логического кольца от /-го логического коммутатора в направлении движения «по часовой стрелке». Поле AkR(1 бит) - наличие перегрузки в к-м логическом кольце при движении BPDUR.. Поле BkR - наличие разрыва к-го логического кольца (1 бит). Поле DkRi тип порта /-го коммутатора по часовой стрелке (1 бит). Аналогичные поля имеются в блоках BPDUL: SkL, AkL, BkL, DkL{. В начальном состоянии все поля и биты устанавливаются нулевыми. 12. Организуется цикл передачи BPDU: На первом шаге происходит передача BPDUR от главного физического коммутатора к коммутатору с номером /=/. Передача BPDUL происходит от главного коммутатора в противоположном направлении, т.е. к коммутатору с номером i=n. Где п-число коммутаторов в кольце. На последующих шагах BPDUR передается поочередно от коммутатора с номером / к коммутатору с номером i+1. В то же время BPDUL передается от коммутатора с номером / к коммутатору с номером /-/. Завершается цикл передачей обоих BPDU в главный физический коммутатор. 13. Цикл прохождения BPDU всегда заканчивается в главном физическом коммутаторе. При поступлении BPDU в главный физический коммутатор все поля логических деревьев указанного BPDU копируются в зарезервированные ячейки памяти, из которых они копируются в последующее BPDU, начинающее новый цикл. 14. Для каждого к-го логического кольца цикл начинается в момент выхода BPDU из порта его главного ik -коммутатора и заканчивается в момент поступления следующего очередного BPDU во входной порт этого коммутатора в том же направлении (цикл PDUR и цикл PDUL). Таким образом, в общем случае в цикле участвуют по 2 BPDUR и по 2 BPDUL. При поступлении BPDUR в логический коммутатор с номером ik, считающийся главным в логическом к-м кольце, все биты поля SkR и поля к AkR устанавливаются в нулевое состояние. (Аналогично происходит обнуление полей SkL. и AkL) к 15. Для каждого /-го коммутатора к-го логического кольца определяется стоимость пути до главного логического коммутатора этого кольца в направлении по часовой стрелке - SkRi и стоимость пути в обратном направлении - SkLt: Перед выходом BPDUR из /-7-го физического коммутатора в полях данного BPDUR находятся значения SkRi_1 путей до главных коммутаторов для всех соответствующих логических колец. При выходе BPDUR из /-7-го физического коммутатора к указанной стоимости добавляется цена выходного порта этого коммутатора.
Анализ эффективности модификации протокола AMSTP
Формализованная модель, на которой изучен адаптивный протокол построения множественных связывающих деревьев, показана на рисунке 24. Представлена сеть передачи данных, в которую входят несколько коммутаторов и набор каналов, соединяющих узлы. Коммутаторы работают на коммутационном уровне, и к ним подключаются различные источники трафика. Скорость передачи трафика конечными точками менялась по необходимости. В диссертационной работе рассматривались следующие основные характеристики протокола: 1. Относительное число потерь кадров D„m„ DmH Q , (5) где L -число потерянных кадров, а С - число оправленных кадров. 2. Коэффициент использования пропускной способности каналов Я Л = =, (6) D , BW где D - количество принятого трафика, а BW-суммарная полоса пропускания. редняя. 3. Средняя длина очереди в маршрутизаторе Q с _ Q суммарная Qсредняя , (7) где Q суммарная - суммарная длинна очереди всех портов, а N- количество портов. Сравнение протоколов производилось по этим основным характеристикам. Приведенные выше характеристики протокола являются стандартными и используются во многих исследованиях протоколов [46, 47, 48]. Описание исследования и расчет представлен в Главе 4.
За основу оценки трудозатрат по разработке протокола AMSTP возьмем оценку трудозатрат COCOMO (Constructive Cost Model) [49, 50, 51]. В основе этой методики лежит оценка объёма работ по количеству строчек кода (Lines Of Code - LOC). Базовая формула методики COCOMO оценки трудозатрат COCOMO: E = a х KSLOC х EAF, (8) где Е - трудозатраты, выраженные в человеко-месяцах; а и b - константы, определенные на основе регрессионного анализа в зависимости от проекта; KSLOC - количество тысяч строк кода (под строчками кода SLOC понимаются логические строки кода, а именно строки в понимании используемого языка программирования, без учета комментариев); EAF (Effort Adjustment Factor) - фактор корректировки трудозатрат. Фактор корректировки трудозатрат EAF увеличивает или уменьшает трудозатраты в зависимости от факторов среды: n EAF= ПCi, (9) i=0 где Сі - один из факторов среды. Оценим каждое функциональное требование отдельно, при этом примем значение константы Ъ равной 1. Объём работ зависит от вида работы, а время его выполнения зависит от мощности ресурса, необходимого для его выполнения. Формула (10) преобразуется к виду: KSLOC(i,j) E = Х2( хEAF), (10) i j Wj где Wj - мощность ресурса, необходимого для выполнения j-ого вида работы; KSLOC(iJ) - количество строк кодау-го вида работ для реализации /-го требования.
Для определения параметра KSLOC и W необходимо провести анализ программной компоненты, имеющей схожую архитектуру и язык программирования. В результате анализа необходимо выделить три вида кода: Код, описывающий логику работы системы, обозначим как SLOCP. Для расчета количества строчек кода SLOCP определим сумму значений строчек для описания каждого шага алгоритма переключения трафика. Среднее значение описания каждого шага примем равным 10 строчкам. Итого для описания 27 шагов алгоритма необходимо 270 строчек кода. Код, описывающий взаимодействие с другими частями системы, обозначим как SLOCI;. Для расчета количества строчек кода SLOCI определим сумму значений строчек для описания каждого шага работы коммутационного BPDU. Среднее значение описания каждого шага примем равным 10 строчкам. Итого для описания 6 шагов работы необходимо 60 строчек кода.
Код, описывающий вывод данных для механизма по поиску неисправностей, обозначим как SLOCR. Для расчета количества строчек кода SLOCR принимаем половинное значение строчек кода SLOCP. Итого необходимо 135 строчек кода. Для расчета KSLOC используем формулу: (SLOCPx Kp + SLOCIxKi + SLOCRxKr) KSLOC = , (11) 1000 где Кр - фактор изменения логики работы системы; Ki - фактор изменения обработки интерфейсных элементов системы; Кг - фактор изменения интерфейса системы. Факторы К подбираем опытным путем. Для вновь создаваемых компонентов К= 1,0. (270x1 + 60x1 + 135x1) KSLOC= = 0,465 (12) 1000 Определяем факторы среды EAF . Фактор учета технологии разработки (ФУТР). Под этим фактором учитываем увеличение количества трудозатрат в результате того, что в процесс разработки вовлекаем разное количество сотрудников. Сам процесс описан ниже. Процесс кодирования длится в течение времени / (Рисунок 25). Рисунок 25. Процесс кодирования
В работу задействуем «M» менеджеров проекта и «P» программистов. Процесс тестирования начинается сразу после кодирования, длится он в течение времени «lt» и в нем участвуют «M» менеджеров проекта, «T» тестеров и «P» программистов. Время тестирования является величиной зависимой от времени кодирования, следовательно,
Исходя из полученных данных, для внедрения протокола AMSTP в существующее оборудование необходимо менее двух недель работы команды из одного программиста, тестера и менеджера. Общие трудозатраты для компании составят 1,2 чел/мес.
В главе разработан новый адаптивный протокол построения множественных связующих деревьев (AMSTP) для защиты от кольцевания трафика в сетях Ethernet. Новый протокол исправляет основные недостатки, присущие протоколу МSTP, приведенные выше. При этом новый протокол сохраняет все внешние свойства и функции существующего протокола. Новый протокол существует в типичной среде исполнения протокола защиты от кольцевания трафика и предоставляет пользователю тот же сервис. Рассмотрена минимизация передачи служебной информации за счет решения использования уже существующих служебных кадров (BPDU) и введения нового типа служебного кадра - коммутационного BPDU, который позволяет избежать полного удаления прежних таблиц коммутации и длительного процесса перестройки связующих деревьев.
Разработана методика оценки эффективности протокола и показаны преимущества разработанного протокола перед другими протоколами, а также доказана целесообразность применения алгоритма для увеличения сетевого трафика.
Моделирование работы модифкации протокола AMSTP в сетях передачи данных без перегрузок
После фиксирования с помощью OID1 перегрузки порта (количество фреймов в очереди превышает заданное значение КФПВО) в данный коммутатор отправляется OID2, определяющий состояние данного порта во всех логических кольцах протокола MSTP. Тем самым определяются номера логических колец, использующих данный порт как активный путь для достижения главного коммутатора -1.
Далее для наибольшего номера логического кольца определяется граничный коммутатор -3 путем цикличного опроса всех коммутаторов данного сегмента доступа по OID3, определяющий состояние порта в наибольшем номере логического кольца в протоколе MSTP.
Опрос начинается с коммутатора, зафиксировавшего перегрузку -7, и в случае получения от этого коммутатора по OID3 значения «блокированный», определяется коммутатор, который и есть граничный. После чего на данный коммутатор отправляется OID4, определяющий изменение стоимости порта при расчете пути в определенном ранее номере логического кольца на перегруженном порту. Далее формируется запись в ПО с указанием коммутатора, номера логического кольца и порта, для которого был отправлен OID4.
Данная запись сохраняется в памяти c добавлением таймера сохранения изменения стоимости пути (СИС). При его обнулении, в соответсвии с записью, с помощью OID5 команда изменения стоимости пути удаляется, что вызывает возвращение системы в первоначальное состояние.
В случае если коммутатор -7 не является граничным для определенного логического кольца, то в ответах последующих коммутаторов анализируются 3 параметра: значение порта «блокированный», значение «локального индификатора» и значение «индификатор главного». Параметр «блокированный» определяет граничный коммутатор -3. Совпадение значения «локального индификатора» с «индификатором главного» определяет главного коммутатора -1, выбранного логического кольца.
Если в процессе цикличного опроса, граничный коммутатор -3 определился до выявления главного, то OID4 на изменение стоимости пути высылается предыдущему коммутатору -10.
В случае выявления главного до определения граничного коммутатора, OID4 на изменение стоимости пути высылается следующему по списку коммутатору.
Такой выбор коммутатора для отправки OID4 основан на сложности определения направления передачи трафика в граничном коммутаторе. ПО не имеет информации к какому коммутатору -4 или -10 подключен блокированный порт -2. Внесение такой информации в ПО является неоправданно трудоемким и влияет на масштабируемость сети. Использование соседнего коммутатора с граничным позволит переключать часть трафика с перегруженного канала на резервный. Количество переключаемого трафика соответствует трафику, генерируемого пользователями, подключенными не более чем к двум коммутаторам доступа.
После этого формируется аналогичная запись в ПО и сохраняется в памяти c добавлением таймера СИС.
Изменение стоимости пути на значение старшего разряда поля "Стоимость пути" гарантированно вызовет смену пути до главного коммутатора от коммутатора -10 и, следовательно, переместит точку разрыва кольца из положения -2 в положение -8. Такой способ изменения стоимости пути позволяет использовать механизмы, заложенные в стандартной реализации протокола MSTP.
В случае не прекращения перегрузки в соответсвии с таймером ПЛК, переключение коммутаторов на резервный канал будет производиться поочередно, начиная с коммутатора, ближайшего к точке разрыва кольца.
Если вследствие переключения трафика, перегрузка образуется на "резервном" пути, ПО будет действовать по описанному алгоритму в обратном направлении. Это приведет к возврату на "основной" путь и не вызовет потери трафика, передаваемого через другие каналы [15].
В дальнейшем при исчезновении перегрузки будет происходить последовательное обратное переключение трафика на "основные" каналы. ПО по истечении таймера СИС удаляет соответсвующую запись, хранящуюся в памяти, и с помощью OID5 удаляет значения старшего бита в поле “Стоимость пути".
Таким образом, изменение старшего разряда поля "Стоимость пути" гарантированно вызовет смену пути до главного коммутатора от коммутатора -10 и, следовательно, переместит точку разрыва кольца в положение -2 .
В реализации MSTP коммутатор, обнаруживший изменение топологии в проходящих BPDU, генерирует специальное поле изменения топологии. Коммутаторы, получившие данное BPDU, удаляют МАС-адреса, пренадлежащие этому логическому дереву, изученные его портами, за исключением того порта, который получил информацию об изменении топологии. А коммутатор, зафиксировавший смену топологии, только по истечении таймера изменения топологии начинает передавать пользовательский трафик.
В реализации протокола AMSTP предусмотрен способ этого избежать, но реализовать это может только производитель оборудования, добавив специальный механизм коммутационного BPDU, принцип которого описан в главе 1.5. Общий принцип состоит в том, чтобы при переводе состояния порта из блокированного в активный, вследствие работы алгоритма балансировки, не генерировать поле изменения топологии, а порождать особый BPDU, который содержит все МАС адреса данного логического дерева, доступные со всех портов, кроме тех, которые изменили свое состояние на основное или резервное. Каждый коммутатор, получивший данное BPDU, обновит записи в MAC таблице путем замещения портов для MAC адресов, извлеченных из BPDU, на порт получения данного BPDU [4, 14, 15]. Следовательно, в стандартной реализации MSTP, используемой в серверном исполнении, при переключении активного порта на резервный происходит кратковременная потеря всего трафика. С учетом выбранного шага переключения трафика в один граничный логический коммутатор, кратковременная потеря сервиса будет только у пользователей, подключенных непосредственно к этому коммутатору. С учетом улучшения качества обслуживания всего сегмента сети доступа и кратковременностью пропадания сервиса, данный параметр примем как допустимый. Но при возможности такие простои необходимо свести к минимому.
При пропадании перегрузки в сети данная модификация позволяет не возвращать точку разрыва в первоначальное местоположение, тем самым сократить количество перестроений логических колец MSTP вдвое. А следовательно, и уменьшить вдвое количество кратковременных потерь всего трафика для локальных пользователей.
Это достигается путем остановки таймеров СИС при отсутствии перегрузки (или, например, снижения количества фреймов в очереди ниже значения счетчика КФПВО и т.д.) при полном цикле опроса коммутаторов.