Консп. конспект_ лекций_СПД. Конспект лекций по курсу "Системы передачи данных" Для студентов, обучающихся по направлению
Скачать 4.08 Mb.
|
Мост (bridge) делит единую среду передачи на части (часто называемые логическими сегментами), передавая информацию из одного сегмента в другой только в том случае, если такая передача действительно необходима, то есть если адрес компьютера назначения принадлежит другому сегменту. Тем самым мост изолирует трафик одного сегмента от трафика другого, повышая общую производительность сети. Коммутатор (switch) функционально подобен мосту и отличается от моста в основном более высокой производительностью. Каждый интерфейс коммутатора оснащен специализированным процессором, который обрабатывает кадры по алгоритму моста независимо от процессоров других портов. За счет этого общая производительность коммутатора обычно намного выше производительности традиционного моста, имеющего один процессорный блок. Можно сказать, что коммутаторы — это усовершенствованные мосты, которые обрабатывают кадры в параллельном режиме. Когда стало экономически оправданно использовать отдельные специализированные процессоры на каждом порту коммуникационного устройства, коммутаторы локальных сетей полностью вытеснили мосты. Оба эти устройства продвигают кадры на основании одного и того же алгоритма, а именно алгоритма прозрачного моста, описанного в стандарте IEEE 802.1D. 15.4. Алгоритм прозрачного моста IEEE 802.1D Слово «прозрачный» в названии алгоритм прозрачного мостаотражает тот факт, что мосты и коммутаторы в своей работе не учитывают существование в сети сетевых адаптеров конечных узлов, концентраторов, повторителей. С другой стороны, и перечисленные выше сетевые устройства функционируют, «не замечая» присутствия в сети мостов и коммутаторов. Алгоритм прозрачного моста не зависит от технологии локальной сети, в которой устанавливается мост/коммутатор, поэтому прозрачные мосты/коммутаторы Ethernet работают точно так же, как прозрачные мосты/коммутаторы FDDI или Token Ring. Коммутатор строит свою адресную таблицу на основании пассивного наблюдения за трафиком, циркулирующим в подключенных к его портам сегментах. При этом коммутатор учитывает адреса источников кадров данных, поступающих на порты коммутатора. По адресу источника кадра коммутатор делает вывод о принадлежности узла-источника тому или иному сегменту сети. Рассмотрим процесс автоматического создания адресной таблицы коммутатора и ее использования на примере простой сети, представленной на рис.15.7. Рисунок 15.7. Принцип работы прозрачного моста/коммутатора Коммутатор соединяет два сетевых сегмента. Сегмент 1 составляют компьютеры, подключенные с помощью одного отрезка коаксиального кабеля к порту 1 коммутатора, а сегмент 2 — компьютеры, подключенные с помощью другого отрезка коаксиального кабеля к порту 2 коммутатора. В исходном состоянии коммутатор не знает о том, компьютеры с какими МАС-адресами подключены к каждому из его портов. В этой ситуации коммутатор просто передает любой захваченный и буферизованный кадр на всесвои порты за исключением того порта, от которого этот кадр получен. В нашем примере у коммутатора только два порта, поэтому он передает кадры с порта 1 на порт 2, и наоборот. Отличие работы коммутатора в этом режиме от повторителя заключается в том, что он передает кадр, предварительно буферизуя его, а не бит за битом, как это делает повторитель. Буферизация разрывает логику работы всех сегментов как единой разделяемой среды. Когда коммутатор собирается передать кадр с сегмента на сегмент, например с сегмента 1 на сегмент 2, он, как обычный конечный узел, пытается получить доступ к разделяемой среде сегмента 2 по правилам алгоритма доступа, в данном примере — по правилам алгоритма CSMA/CD. Одновременно с передачей кадра на все порты коммутатор изучает адрес источника кадра и делает запись о его принадлежности к тому или иному сегменту в своей адресной таблице. Эту таблицу также называют таблицей фильтрации, или таблицей маршрутизации. Например, получив на порт 1 кадр от компьютера 1, коммутатор делает первую запись в своей адресной таблице. МАС-адрес 1 — порт 1. Эта запись означает, что компьютер, имеющий МАС-адрес 1, принадлежит сегменту, подключенному к порту 1 коммутатора. Если все четыре компьютера данной сети проявляют активность и посылают друг другу кадры, то скоро коммутатор построит полную адресную таблицу сети, состоящую из 4 записей — по одной записи на узел (см. рис. 15.7). При каждом поступлении кадра на порт коммутатора он, прежде всего, пытается найти адрес назначения кадра в адресной таблице. Продолжим рассмотрение действий коммутатора на примере (см. рис. 15.7). 1. При получении кадра, направленного от компьютера 1 компьютеру 3, коммутатор просматривает адресную таблицу на предмет совпадения адреса в какой-либо из ее записей с адресом назначения — МАС-адресом 3. Запись с искомым адресом имеется в адресной таблице. 2. Коммутатор выполняет второй этап анализа таблицы — проверяет, находятся ли компьютеры с адресами источника и назначения в одном сегменте. В примере компьютер 1 (МАС-адрес 1) и компьютер 3 (МАС-адрес 3) находятся в разных сегментах. Следовательно, коммутатор выполняет операцию продвижения (forwarding) кадра — передает кадр на порт 2, который подключен к сегменту получателя, получает доступ к сегменту и передает туда кадр. 3. Если бы оказалось, что компьютеры принадлежали одному сегменту, то кадр просто удаляется из буфера. Такая операция называется фильтрацией (filtering). 4. Если бы запись МАС-адрес 3 отсутствовала в адресной таблице, то есть, другими словами, адрес назначения был неизвестен коммутатору, то он передал бы кадр на все свои порты, кроме порта — источника кадра, как и на начальной стадии процесса обучения. Процесс обучения коммутатора никогда не заканчивается и происходит одновременно с продвижением и фильтрацией кадров. Коммутатор постоянно следит за адресами источника буферизуемых кадров, чтобы автоматически приспосабливаться к изменениям, происходящим в сети, — перемещениям компьютеров из одного сегмента сети в другой, отключению и появлению новых компьютеров. Входы адресной таблицы могут быть динамическими, создаваемыми в процессе самообучения коммутатора, и статическими, создаваемыми вручную администратором сети. Статические записи не имеют срока жизни, что дает администратору возможность влиять на работу коммутатора, например, ограничивая передачу кадров с определенными адресами из одного сегмента в другой. Динамические записи имеют срок жизни — при создании или обновлении записи в адресной таблице с ней связывается отметка времени. По истечении определенного тайм-аута запись помечается как недействительная, если за это время коммутатор не принял ни одного кадра с данным адресом в поле адреса источника. Это дает возможность коммутатору автоматически реагировать на перемещения компьютера из сегмента в сегмент — при его отключении от старого сегмента запись о его принадлежности к нему со временем вычеркивается из адресной таблицы. Кадры с широковещательными МАС-адресами, как и кадры с неизвестными адресами назначения, передаются коммутатором на все его порты. Такой режим распространения кадров называется затоплением сети (flooding). Наличие коммутаторов в сети не препятствует распространению широковещательных кадров по всем сегментам сети. Однако это является достоинством только тогда, когда широковещательный адрес выработан корректно работающим узлом. Нередко в результате каких-либо программных или аппаратных сбоев протокол верхнего уровня или сетевой адаптер начинают работать некорректно, а именно постоянно с высокой интенсивностью генерировать кадры с широковещательным адресом. Коммутатор в соответствии со своим алгоритмом передает ошибочный трафик во все сегменты. Такая ситуация называется широковещательным штормом (broadcast storm). К сожалению, коммутаторы не защищают сети от широковещательного шторма, во всяком случае, по умолчанию, как это делают маршрутизаторы. Максимум, что может сделать администратор с помощью коммутатора для борьбы с широковещательным штормом, — установить для каждого узла предельно допустимую интенсивность генерации кадров с широковещательным адресом. Но при этом нужно точно знать, какая интенсивность является нормальной, а какая — ошибочной. При смене протоколов ситуация в сети может измениться, и то, что вчера считалось ошибочным, сегодня может оказаться нормой. Протокол, реализующий алгоритм коммутатора, располагается между уровнями MAC и LLC (рис. 15.8). Рисунок 15.8. Место протокола коммутатора в стеке протоколов 15.5. Топологические ограничения коммутаторов в локальных сетях Рассмотрим это ограничение на примере сети, показанной на рис. 15.9. Рисунок 15.9. Влияние замкнутых контуров на работу коммутатора Два сегмента Ethernet параллельно соединены двумя коммутаторами, так что образовалась петля. Пусть новая станция с МАС-адресом 10 впервые начинает работу в данной сети. Обычно начало работы любой операционной системы сопровождается рассылкой широковещательных кадров, в которых станция заявляет о своем существовании и одновременно ищет серверы сети. На этапе 1 станция посылает первый кадр с широковещательным адресом назначения и адресом источника 10 в свой сегмент. Кадр попадает как в коммутатор 1, так и в коммутатор 2. В обоих коммутаторах новый адрес источника 10 заносится в адресную таблицу с пометкой о его принадлежности сегменту 1, то есть создается новая запись вида: МАС-адрес 10 - Порт 1. Так как адрес назначения широковещательный, то каждый коммутатор должен передать кадр на сегмент 2. Эта передача происходит поочередно в соответствии с методом случайного доступа технологии Ethernet. Пусть первым доступ к сегменту 2 получает коммутатор 1 (этап 2 на рис. 12). При появлении кадра на сегменте 2 коммутатор 2 принимает его в свой буфер и обрабатывает. Он видит, что адрес 10 уже есть в его адресной таблице, но пришедший кадр является более свежим, и он решает, что адрес 10 принадлежит сегменту 2, а не 1. Поэтому коммутатор 2 корректирует содержимое базы и делает запись о том, что адрес 10 принадлежит сегменту 2: МАС-адрес 10 - Порт 2. Аналогично поступает коммутатор 1, когда коммутатор 2 передает свою копию кадра на сегмент 2. Ниже перечислены последствия наличия петли в сети. 1. «Размножение» кадра, то есть появление нескольких его копий (в данном случае — двух, но если бы сегменты были соединены тремя коммутаторами — то трех и т. д.). 2. Бесконечная циркуляция обеих копий кадра по петле в противоположных направлениях, а значит, засорение сети ненужным трафиком. 3. Постоянная перестройка коммутаторами своих адресных таблиц, так как кадр с адресом источника 10 будет появляться то на одном порту, то на другом. В целях исключения всех этих нежелательных эффектов коммутаторы нужно применять так, чтобы между логическими сегментами не было петель, то есть строить с помощью коммутаторов только древовидные структуры, гарантирующие наличие единственного пути между любыми двумя сегментами. Тогда кадры от каждой станции будут поступать в коммутатор всегда с одного и того же порта, и коммутатор сможет правильно решать задачу выбора рационального маршрута в сети. В небольших сетях сравнительно легко гарантировать существование одного и только одного пути между двумя сегментами. Но когда количество соединений возрастает, то вероятность непреднамеренного образования петли оказывается высокой. Возможна и другая причина возникновения петель. Так, для повышения надежности желательно иметь между коммутаторами резервные связи, которые не участвуют в нормальной работе основных связей по передаче информационных кадров станций, но при отказе какой-либо основной связи образуют новую связную рабочую конфигурацию без петель. Избыточные связи необходимо блокировать, то есть переводить их в неактивное состояние. В сетях с простой топологией эта задача решается вручную, путем блокирования соответствующих портов коммутаторов. В больших сетях со сложными связями используются алгоритмы, которые позволяют решать задачу обнаружения петель автоматически. Наиболее известным из них является стандартный алгоритм покрывающего дерева (Spanning Tree Algorithm, STA). 16. ДУПЛЕКСНЫЕ ПРОТОКОЛЫ ЛОКАЛЬНЫХ СЕТЕЙ 16.1. Изменения в работе МАС-уровня в дуплексном режиме Технология коммутации сама по себе не имеет непосредственного отношения к методу доступа к среде, который используется портами коммутатора. При подключении к порту коммутатора сегмента, представляющего собой разделяемую среду, данный порт, как и все остальные узлы такого сегмента, должен поддерживать полудуплексный режим. Однако когда к каждому порту коммутатора подключен не сегмент, а только один компьютер, причем по двум физически раздельным каналам, как это происходит почти во всех стандартах Ethernet, кроме коаксиальных версий Ethernet, ситуация становится не такой однозначной. Порт может работать как в обычном полудуплексном режиме, так и в дуплексном. Подключение к портам коммутаторов не сегментов, а отдельных компьютеров называется микросегментацией. В обычном для Ethernet полудуплексном режиме работы порт коммутатора по-прежнему распознает коллизии. Доменом коллизий в этом случае является участок сети, включающий передатчик коммутатора, приемник коммутатора, передатчик сетевого адаптера компьютера, приемник сетевого адаптера компьютера и две витые пары, соединяющие передатчики с приемниками (рис. 16.1). Рисунок 16.1. Домен коллизий, образуемый компьютером и портом коммутатора Коллизия возникает, когда передатчики порта коммутатора и сетевого адаптера одновременно или почти одновременно начинают передачу своих кадров, считая, что сегмент свободен. Правда, вероятность коллизии в таком сегменте гораздо меньше, чем в сегменте, состоящем из 20-30 узлов, но она не нулевая. При этом максимальная производительность сегмента Ethernet в 14 880 кадров в секунду при минимальной длине кадра делится между передатчиком порта коммутатора и передатчиком сетевого адаптера. Если считать, что она делится пополам, то каждому предоставляется возможность передавать примерно по 7440 кадров в секунду. В дуплексном режиме одновременная передача данных передатчиком порта коммутатора и сетевого адаптера коллизией не считается. В принципе, это достаточно естественный режим работы для отдельных дуплексных каналов передачи данных, и он часто используется в протоколах глобальных сетей. При дуплексной связи порты Ethernet 10 Мбит/с могут передавать данные со скоростью 20 Мбит/с — по 10 Мбит/с в каждом направлении. Естественно, необходимо, чтобы МАС-узлы взаимодействующих устройств поддерживали дуплексный режим. В случае, когда только один узел поддерживает дуплексный режим, второй узел будет постоянно фиксировать коллизии и приостанавливать свою работу, в то время как другой узел продолжит передавать данные, которые никто в этот момент не принимает. Изменения, которые нужно внести в логику работы МАС-узла, чтобы он мог работать в дуплексном режиме, минимальны — нужно просто отменить фиксацию и обработку коллизий в сетях Ethernet. Если же микросегмент образован компьютером, поддерживающим протокол Token Ring или FDDI, то сетевой адаптер и порт коммутатора должны посылать свои кадры, не дожидаясь прихода токена доступа, а тогда, когда в этом возникнет необходимость. Фактически, при работе в дуплексном режиме МАС-узел игнорирует метод доступа к среде, разработанный для данной технологии. 16.2.Борьба с перегрузками В классическом полудуплексном режиме у коммутатора имеется возможность воздействовать на конечный узел с помощью алгоритма доступа к среде, который соседний узел обязан отрабатывать. Применяются два основных способа управления потоком кадров — обратное давление на конечный узел и агрессивный захват среды. Метод обратного давления (backpressure) состоит в создании искусственных коллизий в сегменте, который чересчур интенсивно посылает кадры в коммутатор. Для этого коммутатор обычно использует jam-последовательность, отправляемую на выход порта, к которому подключен сегмент (или узел), чтобы приостановить его активность. Другой метод «торможения» обычно применяется в том случае, когда соседом является конечный узел. Метод основан на так называемом агрессивном захвате среды либо после окончания передачи очередного кадра, либо после коллизии. Эти два случая иллюстрирует рис. 16.2. Рисунок 16.2. Агрессивное поведение порта коммутатора при перегрузках В первом случае (рис. 16.2, а)коммутатор окончил передачу очередного кадра и вместо технологической паузы в 9,6 мкс сделал паузу в 9,1 мкспосле чего начал передачу нового кадра. Компьютер не смог захватить среду, так как он выдержал стандартную паузу в 9,6 мкс и обнаружил после этого, что среда уже занята. Во втором случае (рис. 16.2, б)кадры коммутатора и компьютера столкнулись, то есть была зафиксирована коллизия. Так как компьютер сделал паузу после коллизии в 51,2 мкс, как это положено по стандарту (интервал отсрочки равен 512 битовых интервалов), а коммутатор — 50 мкс, то и в этом случае компьютеру не удалось передать свой кадр. Коммутатор может пользоваться этим механизмом адаптивно, увеличивая степень своей агрессивности по мере необходимости. Многие производители путем сочетания этих двух методов реализуют достаточно тонкие механизмы управления потоком кадров при перегрузках. Простой отказ от поддержки алгоритма доступа к разделяемой среде без какой-либо модификации протокола ведет к повышению вероятности потерь кадров коммутаторами, так как при этом теряется контроль за потоками кадров, направляемых конечными узлами в сеть. При переходе на полнодуплексный режим узлу разрешается отправлять кадры в коммутатор всегда, когда это ему нужно, поэтому коммутаторы сети могут в этом режиме сталкиваться с перегрузками, не имея при этом никаких средств «притормаживания» потока кадров. Причина перегрузок обычно кроется в ограниченной пропускной способности отдельного выходного порта, которая определяется параметрами протокола. Поэтому, если входной трафик неравномерно распределяется между выходными портами, легко представить ситуацию, когда в какой-либо выходной порт коммутатора будет направляться трафик с суммарной средней интенсивностью большей, чем протокольный максимум. На рис. 16.3 показана как раз такая ситуация, когда в порт 3 коммутатора Ethernet направляется от портов 1, 2, 4 и 6 поток кадров размером в 64 байт с суммарной интенсивностью в 22 100 кадров в секунду. Вспомним, что максимальная скорость в кадрах в секунду для сегмента Ethernet составляет 14 880. Естественно, что когда кадры поступают в буфер порта со скоростью 22 100 кадров в секунду, а уходят со скоростью 14 880 кадров в секунду, то внутренний буфер выходного порта начинает неуклонно заполняться необработанными кадрами. Нетрудно подсчитать, что при размере буфера в 100 Кбайт в приведенном примере полное заполнение буфера произойдет через 0,22 с после начала работы в таком интенсивном режиме. Увеличение буфера до 1 Мбайт даст увеличение времени заполнения буфера до 2,2 с, что также неприемлемо. Проблему можно решить с помощью средств контроля перегрузки. Рисунок 16.3. Переполнение буфера при несбалансированности трафика Как мы знаем, существуют различные типы средств контроля перегрузки: управление очередями в коммутаторах, обратная связь, резервирование пропускной способности. На основе этих средств можно создать эффективную систему поддержки показателей QoS для трафика разных классов. |