Э. Таненбаум, Д. Уэзеролл - Компьютерные сети (1114668), страница 105
Текст из файла (страница 105)
Должна быть возможность пойти и купить мосты, включить в них кабелиЛВС, и чтобы все немедленно отлично работало.Все это должно происходить без каких-либо изменений аппаратуры, настроек адресов коммутатора, программного обеспечения или конфигурационных таблиц и т. п.Кроме того, работа существующих ЛВС вообще не должна быть затронута мостами.Что касается затронутых станций, не должно быть никакого заметного различия, являются ли они частью ЛВС с мостами или нет.
Должно быть столь же легко переместитьстанции в ЛВС с мостами, как и в одиночной ЛВС.Удивительно, но создать прозрачные мосты возможно. Используется два алгоритма: алгоритм противоточного обучения, чтобы остановить трафик, посылаемый, гдеэто не необходимо; и алгоритм связующего дерева, чтобы разрушить циклы, которыемогут возникнуть при соединении коммутаторов.
Теперь рассмотрим эти алгоритмыпо очереди, чтобы изучить, как это волшебство достигнуто.4.8. Коммутация на канальном уровне 3634.8.2. Обучаемые мостыТопология двух ЛВС, соединенных мостом, показана на рис. 4.38 для двух вариантов.Слева, к двум многоточечным ЛВС, таким как классический E�����������������������������������������thernet, присоединяется специальная станция — мост, который сидит на обеих ЛВС. Справа объединеныЛВС с двухточечными кабелями, включая один концентратор. Мосты — устройства,к которым присоединены станции и концентратор.
Если технология ЛВС — Ethernet,мосты более известны под названием коммутаторы.Рис. 4.38. Мосты: а — мост, соединяющий две многоточечные ЛВС; б — мосты (и концентратор),соединяющие семь станций по двухточеной схемеМосты были развиты, когда использовался классический Ethernet, поэтому их часто показывают в топологии с многоточечными кабелями, как на рис. 4.38, а. Однаковсе топологии, которые можно встретить сейчас, состоят из двухточечных кабелейи коммутаторов. Мосты работают одинаково в обеих ситуациях.
Все станции, присоединенные к тому же самому порту на мосту, принадлежат тому же самому доменуколлизий, который отличается от доменов коллизий других портов. Если есть больше,чем одна станция, как в классическом Ethernet, концентратор или полудуплексныйканал, для отправки кадров используется протокол CSMA/CD.Однако есть различие в том, как устроены соединенные ЛВС. Чтобы соединитьмноготочечные ЛВС, мост добавлен как новая станция в каждой из них, как показанона рис. 4.38, a.
Чтобы соединить двухточечные ЛВС, концентраторы или соединеныс мостом, или, предпочтительно, заменены мостом, чтобы увеличить производительность. На рис. 4.38, б мосты заменили все, кроме одного концентратора.К одному мосту также могут быть присоединены различные виды кабелей. Например, кабель, соединяющий B1 с мостом B2 на рис. 4.38, б, мог бы быть длиннымоптоволоконным каналом, в то время как кабель, соединяющий мосты со станциями,мог бы быть короткой линией на витой паре.
Такое расположение полезно для соединения ЛВС в различных зданиях.Теперь давайте рассмотрим то, что происходит в мостах. Каждый мост работаетв неразборчивом режиме, то есть принимает каждый кадр, переданный станциями,присоединенными к каждому из его портов.При появлении кадра мост должен решить, игнорировать его или переправить,и если переправить, то в какой порт. Выбор производится на основе адреса получателя.364 Глава 4. Подуровень управления доступом к средеНапример, рассмотрим топологию на рис. 4.38, а. Если станция A пошлет кадрстанции B, то мост B1 получит кадр на порту 1. От этого кадра можно немедленноотказаться без дальнейшей суматохи, потому что он уже находится на правильномпорту.
Теперь предположим в топологии на рис. 4.38, б, что A посылает кадр D. МостВ1, получит кадр на порту 1 и выведет его на порт 4. Затем мост В2 получит кадр насвоем порту 4 и выведет его на своем порту 1.Простой способ реализовать эту схему состоит в том, чтобы мост имел большую(хэш) таблицу. В таблице могут быть перечислены все возможные места назначенияи к какому порту каждое относится. Например, на рис. 4.38, б таблица в B1 перечисляла бы D как принадлежащий порту 4, так весь B1 знал бы, в какой порт отправитькадры для D. Тогда, фактически, дальнейшая пересылка произойдет позже, когда достигший B2 кадр не представляет интереса для B1.Когда мосты включаются первый раз, все их хэш-таблицы пусты. Ни один мост незнает, где находятся адресаты, поэтому они используют алгоритм заливки (flooding):каждый приходящий кадр с неизвестным адресом переправляется сразу по всем направлениям, кроме того, откуда он пришел.
Со временем мосты узнают расположениеадресатов. Кадры, расположение получателей которых известно, направляются тольков одну нужную сеть, они не заливаются.Для обучения прозрачных мостов используется алгоритм так называемого противоточного обучения (backward learning). Как уже упоминалось выше, мосты работаютв неразборчивом режиме, поэтому они видят все кадры, посылаемые во всех их портах.Просматривая адреса отправителей, они могут определить, какая станция доступнапо какому порту. Например, если мост В1 на рис. 4.38, б видит кадр, приходящийк нему на порт 3 от станции C, то он понимает, что станция C достижима через порт 3,и делает соответствующую запись в своей таблице. Поэтому любой последующийкадр, адресованный станции C и приходящий в В1 по любому другому порту, будетпереправляться в порт 3.Топология сети может меняться, по мере того как отдельные станции и мосты будутвключаться, выключаться, а также перемещаться.
Для поддержки динамической топологии в таблице помимо номера станции и номера сети указывается также время прибытия кадра от данной станции. При получении новых кадров это время обновляется. Таким образом, для каждой станции известно время последнего полученного от нее кадра.Время от времени процесс сканирует хэш-таблицу и удаляет все записи, сделанные ранее нескольких минут тому назад. Таким образом, если какой-либо компьютербыл выключен, перенесен в новое место и включен снова, уже через несколько минутон сможет нормально работать, и для этого не потребуется никаких специальныхдействий. Обратная сторона такого алгоритма заключается в том, что кадры, направляемые какой-либо станции, молчавшей в течение нескольких минут, должны будутснова посылаться во все концы методом заливки.Процедура обработки входящего кадра зависит от того порта, через который онприбыл (порт источника) и в какой адрес направляется (адрес назначения).
Процедуравыглядит следующим образом:1. Если порт источника и порт для адреса назначения совпадают, кадр игнорируется.2. Если порт источника и порт для адреса назначения различаются, кадр переправляется в порт назначения.4.8. Коммутация на канальном уровне 3653. Если порт назначения неизвестен, используется алгоритм заливки, и кадр пересылается во все порты, кроме порта источника.Вы могли бы задаться вопросом, может ли первый случай произойти с двухточечными линиями.
Ответ — это может произойти, если для соединения группыкомпьютеров с мостом используются концентраторы. Пример показан на рис. 4.38, б,где станции E и F соединены с концентратором H1, который, в свою очередь, соединенс мостом B2. Если E пошлет кадр F, то концентратор передаст его B2, так же как и F.Именно это делают концентраторы — они связывают все порты вместе так, чтобы кадр,введенный на одном порту, просто выводится на всех других портах.
Кадр достигнет B2на порту 4, который уже является правильным выходным портом, чтобы достигнутьместа назначения. Мост B2 должен просто отказаться от кадра.Поскольку этот алгоритм должен быть применен к каждому прибывающему кадру,обычно он осуществляется специальными чипами СБИС. Чип производит поиски обновляет записи таблицы за несколько микросекунд. Поскольку мосты смотряттолько на MAC адреса, чтобы решить, как отправить кадры, возможно начать отправку,как только появилось поле заголовка назначения, до того как дошла остальная частькадра (конечно, если выходная линия доступна). Эта схема сокращает время ожидания прохождения через мост, а также количество кадров, которые мост должен бытьв состоянии буферизовать.
Такой способ называют коммутация без буферизациипакетов (cut-through switching) или маршрутизация способом коммутации каналов(wormhole routing), и обычно он реализуется аппаратными средствами.Мы можем посмотреть на работу моста с точки зрения стека протоколов, чтобы понять, что это означает быть устройством уровня канала. Рассмотрим кадр, посланныйот станции А к станции D в конфигурации на рис. 4.38, а, в которой ЛВС — Ethernet.Кадр пройдет через один мост.
Вид стека протокола обработки показан на рис. 4.39.Пакет прибывает из более высокого уровня и спускается на уровень MAC Ethernet.Он приобретает заголовок Ethernet (а также метку конца, не показанную на рисунке).Этот кадр передается физическому уровню, выходит по кабелю и принимается мостом.Рис. 4.39. Протоколы, обрабатываемые на мостуВ мосте кадр передается с физического уровня на уровень MAC Ethernet. Этотуровень расширяет обработку по сравнению с уровнем MAC Ethernet на станции. Онпередает на ретранслятор, все еще в пределах уровня MAC. Функция ретрансляциимоста использует только заголовок MAC Ethernet, чтобы определить, как обработать366 Глава 4.
Подуровень управления доступом к средекадр. В нашем случае он передает кадр тому порту уровня MAC Ethernet, которыйиспользуется для достижения станции D, и кадр продолжает свой путь.В общем случае, ретрансляторы на некотором уровне могут переписать заголовкидля этого уровня. ВЛВС вскоре обеспечит пример. Мост ни в коем случае не долженсмотреть внутрь кадра и узнавать, что он переносит IP-пакет; это не важно для обработки мостом и нарушило бы иерархическое представление протокола. Также отметьте,что мост, имеющий k портов, будет иметь k экземпляров MAC-уровней и физическихуровней.
В нашем простом примере k = 2.4.8.3. Мосты связующего дереваДля повышения надежности между мостами можно использовать избыточные соединения. На рис. 4.40 показаны два параллельных соединения между двумя мостами. Этаконструкция гарантирует, что, если одно соединение нарушено, сеть не будет разделенав два набора компьютеров, которые не могут говорить друг с другом.Рис. 4.40. Мосты с двумя параллельными соединениямиТакое решение, впрочем, создает некоторые дополнительные проблемы, посколькув топологии образуются кольца. В качестве примера, иллюстрирующего указанныепроблемы, рассмотрим кадр, отправленный А с ранее неизвестным адресом назначения(рис. 4.40).
Каждый мост, действуя по обычным правилам обработки кадров с неизвестным получателем, использует метод заливки. В данном примере это означает, чтокадр из А попадает к мосту В1, F0 . Мост посылает копии этого кадра во все остальныесвои порты. Мы рассмотрим только порты, соединяющие В1 и В2 (хотя кадр будетпослан и в другие). Так как из В1 в В2 есть два соединения, в В2 попадут две копиикадра. Они показаны на рис. 4.40 как F1 и F2 .Вскоре после этого мост В1 получает эти кадры.
Разумеется, он не знает (и неможет знать), что это копии одного кадра, а не два разных кадра, посланных один задругим. Поэтому мост В2 отправляет копии кадра F1 во все свои порты. Так возникают F3 и F4, которые по двум соединениям отправляются обратно в В1. Мост В1 видитдва новых кадра с неизвестным адресом назначения и копирует их снова. Этот циклпродолжается вечно.Решение данной проблемы заключается в установлении связи между мостамии наложении на реальную топологию сети связующего дерева (spanning tree), до-4.8. Коммутация на канальном уровне 367стигающего каждого моста. В результате некоторые возможные соединения междумостами игнорируются с целью создания фиктивной бескольцевой топологии, котораяявляется подмножеством реальной топологии.Например, на рис. 4.41 показаны пять мостов, которые связаны и имеют соединенные с ними станции.