Комитет IEEE 802 задался этим вопросом в 1995 году. После долгих дискуссий было сделано нечто невообразимое — изменен формат заголовка фрейма Ethernet. Новый формат был опубликован под названием 802.1Q в 1998 году. Он предусматривает тег VLAN; мы кратко обсудим его далее. Понятно, что вносить изменения в такую устоявшуюся систему, как Ethernet, непросто. Сразу возникает несколько вопросов:
1. И что, теперь надо выбросить несколько сотен миллионов уже существующих сетевых карт Ethernet?
2. Если нет, то кто создает новые поля фреймов?
3. Что произойдет с фреймами, которые уже имеют максимальный размер?
Конечно, комитет 802 знал об этих проблемах (даже слишком хорошо), и в итоге решение было найдено.
Оно состоит в том, что на самом деле поля VLAN реально используются только мостами и коммутаторами, а не компьютерами пользователей. Как видно на илл. 4.39, эти поля не так важны на линиях, ведущих к адресату; они необходимы, когда фреймы доходят до мостов. Кроме того, чтобы использовать VLAN, мосты должны быть VLAN-совместимыми. Это делает проект выполнимым.
Что касается старых сетевых карт Ethernet, то выкидывать их не пришлось. Комитет 802.3 даже не мог заставить пользователей изменить поле Type на Lenght. Можно представить реакцию общественности на заявление о том, что все существующие карты Ethernet больше не нужны. В любом случае новые карты Ethernet совместимы со стандартом 802.1Q и могут корректно заполнять поля идентификации VLAN.
Некоторые компьютеры (а также коммутаторы) могут быть несовместимы с VLAN. Поэтому первый встретившийся на пути фрейма VLAN-совместимый мост вставляет это поле, а последний — удаляет его. Пример смешанной топологии показан на илл. 4.40. Здесь VLAN-совместимые компьютеры генерируют снабженные тегами (то есть совместимые со стандартом 802.1Q) фреймы непосредственно, и последующие коммутаторы используют эти теги. Закрашенные элементы — VLAN-совместимые, пустые — нет.
В соответствии с 802.1Q, фреймы «окрашиваются» в зависимости от порта, на котором они получены. Чтобы этот метод работал, все станции одного порта должны принадлежать одной VLAN, что уменьшает гибкость. Например, на илл. 4.39 это свойство справедливо для всех портов, где отдельный компьютер соединяется с мостом, но не для порта, где концентратор соединяется с мостом B2.
Илл. 4.40. LAN с мостами, частично совместимая с VLAN. Закрашенные элементы — VLAN-совместимые устройства. Все остальные несовместимы с VLAN
Также отметим, что мост может использовать протокол более высокого уровня, чтобы выбрать цвет. Таким образом, фреймы, которые приходят на порт, могут попадать в различные VLAN в зависимости от того, что они содержат — IP-пакеты или PPP-фреймы.
Возможны и другие методы, но они не поддерживаются в 802.1Q. Например, для выбора цвета VLAN может использоваться MAC-адрес. Этот метод применяется для фреймов из соседних 802.11 LAN, где ноутбуки передают данные через разные порты по мере перемещения. Один MAC-адрес будет закреплен за одной и той же VLAN, независимо от порта, через который он попадает в сеть.
Что касается фреймов, длина которых превышает 1518 байт, то в стандарте 802.1Q эта проблема решается путем повышения лимита до 1522 байт. К счастью, только VLAN-совместимые компьютеры и коммутаторы обязаны поддерживать такие длинные фреймы.
Теперь рассмотрим формат 802.1Q (илл. 4.41). Единственное заметное изменение — добавление пары 2-байтных полей. Первое называется VLAN protocol ID (Идентификатор протокола VLAN). Оно всегда имеет значение 0х8100. Поскольку оно превышает 1500, то все сетевые карты Ethernet интерпретируют его как Type, а не как Lenght. Неизвестно, что будет делать с такими фреймами устаревшая карта, поскольку они, по идее, не должны на нее передаваться.
Илл. 4.41. Форматы фреймов Ethernet-стандартов 802.3 (устарел) и 802.1Q
Во втором двухбайтном поле есть три вложенных поля. Главное из них — VLAN Identifier (Идентификатор VLAN), который занимает 12 младших битов. Оно содержит информацию, из-за которой и была затеяна смена формата: цвет виртуальной сети, к которой относится фрейм. Трехбитное поле Priority (Приоритет) не имеет отношения к VLAN. Но поскольку изменение формата Ethernet-фрейма производится раз в десять лет и занимает три года работы сотни людей, почему бы не предусмотреть в нем место для некоторой дополнительной полезной информации? Это поле позволяет различать трафик жесткого и мягкого реального времени и трафик, для которого время передачи некритично. Благодаря этому улучшаются показатели QoS в Ethernet. Поле Priority используется также при передаче голоса по Ethernet (хотя справедливости ради вот уже четверть века в IP имеется подобное поле, и никто никогда его не использовал).
Последнее поле, CFI (Canonical Format Indicator — Индикатор классического формата), следовало бы назвать CEI (Corporate ego indicator — Индикатор эгоизма компании). Изначально оно предназначалось для того, чтобы показывать порядок битов в MAC-адресе (от младшего к старшему или наоборот), однако в пылу дискуссий об этом как-то забыли. Его присутствие сейчас означает, что поле данных содержит сублимированный фрейм 802.5, который ищет еще одну сеть формата 802.5, и Ethernet для него лишь промежуточный этап. Все это, конечно, никак не связано с VLAN. Но политика комитета стандартизации не слишком отличается от обычной политики: если ты проголосуешь за мой бит, я проголосую за твой. Торг чистой воды.
Как уже упоминалось выше, когда VLAN-совместимый коммутатор получает фрейм с тегом VLAN, он использует идентификатор VLAN в качестве индекса таблицы, в которой ищет, на какие порты передать фрейм. Но откуда берется эта таблица? Если она разрабатывается вручную, это означает возврат в исходную точку: ручное конфигурирование мостов. Вся прелесть прозрачности мостов состоит в том, что они настраиваются автоматически и не требуют никакого вмешательства извне. Было бы ужасно жаль потерять это свойство. К счастью, мосты для виртуальных сетей также настраиваются сами в зависимости от тегов входящих фреймов. Если фрейм, помеченный как VLAN 4, приходит на порт 3, это означает, что одна из станций, подключенных к этому порту, находится внутри VLAN 4. Стандарт 802.1Q вполне четко поясняет, как строятся динамические таблицы, преимущественно ссылаясь на соответствующие части стандарта 802.1D.
Прежде чем завершить обсуждение маршрутизации VLAN, отметим следующее. Многие пользователи интернета и Ethernet весьма привязаны к сетям без установления соединения и активно выступают против любых систем, в которых есть хотя бы намек на соединение на сетевом или канальном уровне. Однако в виртуальных сетях есть кое-что, сильно напоминающее установку соединения. Работа VLAN невозможна без идентификатора в каждом фрейме. Он используется как индекс таблицы в коммутаторе, чтобы определить дальнейший путь фрейма. Именно это и происходит в сетях, ориентированных на установление соединения. В системах без установления соединения маршрут определяется с помощью адреса назначения, а не идентификатора. Мы подробнее обсудим эту тенденцию в главе 5.
4.8. Резюме
В некоторых сетях для любой связи используется единственный канал. При их разработке основной проблемой является распределение этого канала между конкурирующими станциями, желающими им воспользоваться. Самые простые и эффективные схемы распределения при небольшом количестве станций и постоянном трафике — это FDM и TDM. Оба метода широко применяются, например, для разделения полосы пропускания телефонных магистралей. При большом и непостоянном числе станций или при трафике, создающем периодическую пиковую нагрузку (типичный случай для компьютерных сетей), FDM и TDM не подходят.
Существует несколько алгоритмов динамического распределения каналов. Многочисленные варианты протокола ALOHA (чистого или дискретного) используются в реальных системах (например, в сетях DOCSIS). Его усовершенствование — возможность прослушивать состояния канала. Станции могут отказываться от передачи, если слышат, что канал занят другой станцией. Применение метода контроля несущей привело к созданию различных CSMA-протоколов для LAN и MAN. Это основа сетей классического Ethernet и 802.11.
Уже много лет широко применяется класс протоколов, который полностью устраняет или, по крайней мере, снижает конкуренцию за канал. Протокол битовой карты, протокол с двоичным обратным отсчетом и протоколы на базе маркерных колец полностью исключают конкуренцию, а протокол адаптивного дерева — снижает. Он динамически делит станции на две непересекающиеся группы разного размера и разрешает состязание только внутри группы. В идеале группа формируется так, чтобы только одна станция была готова к передаче, когда это разрешено. Современные версии протоколов подуровня MAC, включая DOCSIS и Bluetooth, явно стремятся к устранению конкуренции, выделяя интервалы передачи каждому отправителю.
В беспроводных LAN возникают дополнительные проблемы. В них сложно выявлять коллизии, а у станций могут различаться зоны покрытия. Станции IEEE 802.11 (доминирующей беспроводной LAN) применяют CSMA/CA, оставляя небольшие интервалы, чтобы избежать коллизий и решить первую проблему. Для решения проблемы скрытой станции используется протокол RTS/CTS. Однако этот метод приводит к большим накладным расходам из-за проблемы засвеченной станции, которая особенно остро проявляется в ситуациях с большим числом радиоустройств.
Многие станции избегают конкуренции путем использования механизмов выбора канала. IEEE 802.11 обычно применяется для подключения ноутбуков и других устройств к беспроводным точкам доступа, а также для соединения самих устройств. Можно использовать любой из нескольких физических уровней, в том числе многоканальный FDM с несколькими антеннами (или без них), и расширение спектра. Современные версии стандарта 802.11 содержат функции безопасности на канальном уровне, в том числе поддержку аутентификации, а также расширенные возможности кодирования, позволяющие передавать данные с использованием технологии MIMO.