Мифическая Ethernet

27 март, 2002 - 00:00Сергей Митилино
Сеть по имени...

22 мая 1973 г. Меткалф представил к защите докторскую диссертацию, в которой описана сеть "по имени" Ethernet. Название, возможно, связано с особенностями ее первой инсталляции и изначального предназначения. В этой системе действительно использовалась радиосвязь для обеспечения работы в кампусе гавайского университета Алоха. Таким образом, жители цветущего острова стали свидетелями рождения этого феномена.

В июле 1976 г. в журнале "Commu­nications of the ACM" появилась статья, написанная Бобом Меткалфом и Дэвидом Боггзом (David Boggs) под названием "Ethernet: Distributed Packet Switching for Local Computer Networks". В ней были изложены основные принципы работы кабельной Ethernet. Далее спецификации сети начали мутировать с невероятной скоростью, так что сравнивать творение вышеупомянутых ученых с каким-нибудь современным 1000Base-LX -- весьма неблагодарное занятие, схожее разве что с попыткой найти родство между Фордом-Т и болидом Ф-1.

Мифическая Ethernet
Рис. 1
А пока "эфирная сеть" спокойно работала на скорости 2,94 Mbps, и даже сам Меткалф не мог предположить, как сложится дальнейшая судьба его детища и что в 2001 г. сторонники "чистой" Ethernet будут с пеной у рта отстаивать необходимость обеспечения пропускных способностей, кратных 1 Mbps. Впрочем, это не помешало созданию по чертежам ученого (рис.1) вполне конкретного оборудования, что произошло в корпорации Xerox. Четыре года спустя изобретатель решил самостоятельно заняться развитием сетевой технологии и образовал собственную компанию 3Com. Одновременно "хитрый" Меткалф устроился консультантом в корпорацию DEC. Таким образом, если он и не стал катализатором, способствовавшим появлению стандартов семейства IEEE 802, то во всяком случае в момент принятия решения о разработке спецификаций Ethernet-подобной сети группой DEC, Intel, Xerox оказался в эпицентре событий.

Замысел заключался в проектировании 10-мегабитовой сети DIX (по первым буквам названий компаний--участников альянса) без использования патентов Xerox. На чем базировался столь откровенный альтруизм упомянутой фирмы, нам не известно. Впрочем, в ее адрес всегда раздавались упреки по поводу откровенно слабой политики в области управления своей интеллектуальной собственностью.

Мифическая Ethernet
Рис. 2
Прежде чем углубляться в дебри конкретных вариантов Ethernet, рассмотрим общую структуру сети, такой, какой ее видел Меткалф. Физически сеть образуют несколько элементов (рис. 2): среда передачи данных, интерфейс доступа к среде (MDI -- Medium Dependent Interface), устройство подключения к ней (MAU -- Medium Attachment Unit), интерфейс MAI (AUI -- Attachment Unit Interface) и средства управления доступом к среде (MAC -- Medium Access Control).

Если взять за образец стандартную офисную сеть типа 10Base-2, то среда передачи данных -- это кабель, MDI -- телефонный разъем RJ-45, а MAU (приемопередатчик), MAI и MAC скрыты от глаз пользователя и располагаются на сетевой карте.

Информация в сети передается в виде пакетов варьируемой длины, официально называющихся MAC-фреймами. Общий формат фрейма показан на рис.3.

Преамбула, как это принято в системах высокоскоростной передачи информации, необходима для синхронизации приемника с передатчиком. SFD, или Start Frame Delimeter, подобно запятой в предложении отделяет поле преамбулы от полезных данных. Далее следуют 48-битовые адреса получателя и отправителя пакета. На практике только 46 битов используются для адресации, первый бит всегда равен единице для поля адреса источника, но в поле адреса получателя он сигнализирует о принадлежности адреса к группе (групповая рассылка) или индивидуальному получателю. Второй бит позволяет различать локально или глобально управляемые адреса.

Согласно правилам общество IEEE, контролирующее развитие технологии Ethernet, выделяет по запросам пулы адресов, идентифицируемые по первым 22 битам (около 4 млн. так называемых Organizationally Unique Identifiers). Соответственно, если запрос был удовлетворен, то организация получает 24-битовое адресное пространство или 16 млн. индивидуальных адресов в свое полное распоряжение. Такая схема гарантирует уникальность каждого адреса устройства, что дает возможность бесконфликтно инсталлировать его в любой сети. Но это относится только к глобально управляемым адресам, в то время как локально управляемые присваиваются без какой-либо общей системы и будут пригодны только для применения в рамках одной организации.

После того как вопросы "географии" решены, наступает черед описания вида пакета. В соответствующем поле записывается тип или длина его содержимого. Варианты являются взаимоисключающими: числа, описывающие пакеты длиной от 46 до 1536 байт, автоматически считаются длиной полезной нагрузки, а когда значение поля превышает максимально допустимое, сетевой адаптер полагает, что имеет дело с типом пакета. В последнем случае ответственность за корректность процедур обработки пакета, проверку сохранности данных и тому подобные вещи перекладывается на плечи MAC клиента (то есть тип пакета декларируется на уровне MAC клиента).

Минимальная длина в 46 байт -- следствие не идеологического решения, а технической необходимости, так как чересчур короткие пакеты не дадут возможности корректно сработать методике доступа к среде CSMA/CD (ее краткое описание будет приведено дальше). Если данных оказывается недостаточно, они дополняются пустым полем PAD.

После полезной нагрузки пакета следует поле FCS -- контрольный код CRC, позволяющий контролировать корректность передачи данных. Завершает список Extension Field, которое иногда используется в целях дополнения пакетов до минимально приемлемого для скоростных (свыше 100 Mbps) соединений размера. Тем самым удается подстроить параметры протокола под ограничения, накладываемые механизмом детекции коллизий, без манипулирования установленной стандартом минимальной длины пакета.

Как бы там ни было, но с 1981 г. 3Com начала поставки реального оборудования для инсталляции сетей Ethernet. Популярность недорогой и эффективной системы обусловила потребность в стандарте. Так в недрах общества IEEE сформировалась группа 802, принявшаяся за его написание. Однако прошло немало времени, а точнее, более трех лет (начиная с 1980 г.), прежде чем чиновники от инженерии разродились документом с индексом 802.3. Данный опус описывал сеть, базирующуюся на доступе к среде передачи по принципу Carrier Sense Multiple Access with Collision Detection (CSMA/CD), что и стало краеугольным камнем Ether­net того времени. Мы не будем углубляться в широко известные технические детали и приведем три базовых постулата CSMA/CD:
  • все узлы сети разделяют общую среду передачи (кабель, эфир);
  • передача ведется по принципу "один говорит -- все слушают";
  • узел осуществляет передачу только в "тишине", в случае синхронного начала передачи двумя или более узлами инициатива определяется путем случайного изменения интервалов времени для попытки повторной передачи.
Для полудуплексных соединений на скоростях от 100 Mbps и выше существует некоторое исключение из общих правил. Стандартом разрешается так называемый burst mode, подразумевающий последовательную выдачу нескольких пакетов без перерыва одним узлом. Все возникающие паузы заполняются битами расширения, отличающимися от данных, но, тем не менее, удерживающими эстафету за передающим. Изначально узлу-инициатору для передачи отводится ограниченный период времени burstLimit, и в правильно настроенной сети в течение его не должно происходить коллизий. Если все же это случилось, то они рассматриваются как поздние (происходящие после того, как были переданы первые 512 бит пакета) и отбрасываются.

Читатель может возразить: зачем в который раз повторять прописные истины? Но, как вы увидите в дальнейшем, введение некоего базиса было просто необходимо. Также следует напомнить, что под понятием "Ethernet" нельзя подразумевать весь комплекс аппаратно-программных решений, применяемых при построении Ethernet-сети. Часто мы забываем, что по определению и согласно модели OSI "Ethernet в основе своей является протоколом уровня 2", и не более того. Вторым в модели располагается MAC, или уровень доступа к среде передачи (Media Access). Когда-то и особенности физического уровня можно было причислить к безусловной вотчине Ethernet, но сегодня, чтобы внести хоть какую-то ясность в этот вопрос, разработчикам стандарта пришлось разделить PHYsi­cal level на Physical Media Dependent (PMD) и Physical Coding Sublayer (PCS). Если PMD зачастую уже не имеет к стандарту 802.3 ни малейшего отношения (кроме, конечно, ссылки на соответствующие документы, описывающие другие стандарты), то PCS долгое время оставался неизменным. Лишь в последние пару лет незыблемость его была поставлена под сомнение: авторы стандарта 802.3a предложили ввести новый формат кодирования.

Изначально для Ethernet использовался таблично-подстановочный вариант 8B/10B, где цифры означают количество бит в исходной и сгенерированной последовательностях. Цель -- не допустить появления большого количества нулей или единиц, идущих подряд, и потери декодером синхронизации с потоком данных. В литературе принято говорить об этом как о "балансировании уровня постоянного тока (DC)".

Согласно правилам 8B/10B каждый битовый октет разделяется на две группы: три бита в первой и пять во второй. Отсюда происходит классификация октетов, например, запись D6.2 обозначает последовательность "010 00110". Человек с математическим складом ума легко заметит здесь корреляцию: 6 -- это десятичное значение пяти младших битов, а 2 -- трех старших. Для каждого октета в таблице подстановок записаны два возможных варианта кода, выбор из которых осуществляется так, чтобы на стыке октетов в потоке не возникло большого количества идущих подряд нулей или единиц.

Особые правила применяются к командам и разделительным знакам. Последние представлены "запятой" (comma). Она, как и все подстановки, существует в двух вариантах: положительном (0011111) и отрицательном (1100000). Сетевая пунктуация играет роль дополнительного способа сегментации, а следовательно, и синхронизации потока данных.

Вообще, все подстановочные последовательности разбиты на две подгруппы: "положительные" и "отрицательные", что отражает их влияние на коэффициент бегущей несоразмерности (running disparity). Этот показатель приобретает положительное значение, если было передано больше единиц, и отрицательное, если превалируют нули. Задача алгоритма -- удерживать значение бегущей несоразмерности вблизи нулевой отметки. Благодаря преобразованию 8B/10B удалось реализовать трансляцию команд интерфейса одним октетом.


10Base-5, 10Base-2 и 10Base-T

Один из наиболее ранних вариантов сети в документации 802.3 обозначается 10Base-5, а в народе зовется "толстым Ethernet". Здесь роль нежного "эфира" играет толстый и негнущийся коаксиальный кабель, а MDI реализован в виде "вампира" -- разъема, прокалывающего при подсоединении оболочку кабеля до жилы. Поскольку сантиметрового диаметра коаксиал трудно подключить непосредственно к выводу сетевой карты ПК, в этом стандарте кабель (AUI), соединяющий приемопередатчик (MAI) с логикой сетевого интерфейса (MAC), обрел вполне ощутимую материальную форму. Для полной ясности препарируем собственно название стандарта -- 10Base-5, здесь 10 означает скорость передачи в Mbps, а 5 -- максимальную длину сегмента в сотнях метров.

Теперь определим понятие "сегмент": это участок кабеля, ограниченный либо 50-омными сопротивлениями-терминаторами (во избежание отражений сигнала), либо повторителями. Повторители являются усилителями сигнала. Вообще говоря, к обычному сегменту может подключаться только один MDI. Поэтому согласно официальной терминологии в 10Base-5, где этот выделенный отрезок кабеля поддерживает работу до 100 клиентов, сегмент называется смешанным. На самом деле число 100 само по себе ничего не означает, так как хотя минимальное расстояние между разъемами на кабеле не должно быть менее 2,5 м (т. е. потенциально до 200 MDI), однако реально выполнить это условие для небольшого офисного помещения с большим количеством ПК очень трудно. В результате появились многопортовые приемопередатчики, которые имеют несколько интерфейсных кабелей AUI и обеспечивают конкурентное разделение одной точки подключения между несколькими абонентами.

Длина сегмента ограничивается не только затуханием сигнала в кабеле, но и временными задержками, вызывающими неадекватное поведение механизма детекции коллизий (CS). Протяженность всех сегментов не должна превышать 2,5 км, общее их количество -- пяти, из которых только три могут содержать активные узлы.

Другая разновидность линейной конфигурации Ethernet -- 10Base-2 -- тоже использует коаксиальный кабель, но в два раза более тонкий (~0,5 см), что позволяет вставлять его непосредственно в BNC-разъем сетевой карты. T-образные разъемы предназначены для последовательного соединения всех узлов, как лампочек на китайской гирлянде. Естественно, физические параметры тонкого кабеля хуже, чем у толстого, так что максимальная длина сегмента уменьшилась до 185 м. Количество узлов ограничено тридцатью, минимальное расстояние между подключениями снижено до 50 см. Все остальные параметры, как и большинство недостатков, 10Base-2 унаследовал от своего старшего брата. К последним можно причислить уязвимость сети -- любое нарушение целостности кабеля приводит к ее полной неработоспособности. Правда, такое жесткое условие не распространяется на сетевые карты, поскольку решение именно этой проблемы было одной из главных задач, стоявших перед создателями Ethernet.

В 1991 г. пришло время для первой "мутации". 10Base-T использует две скрученные пары проводов, по одной из которых ведется передача данных, а по другой -- прием. Сигналы в проводах пары имеют инверсную поляризацию: говоря проще, один из них положительный, а другой -- отрицательный. С помощью такого приема удается повысить помехозащищенность. Любое внешнее воздействие приводит к появлению одинаковых по амплитуде, фазе и знаку помех в обоих проводах -- после инвертирования одного из сигналов и суммирования в синфазном усилителе (схема Дарлингтона) они взаимоуничтожаются.

Топология сети изменена на звезду, т. е. сегмент, именуемый теперь связующим (link), может включать в себя только два узла, соединенных "перекрещенным" кабелем, -- приемная жила одного узла должна быть подсоединена к передающему контакту сетевой карты другого. Но, конечно, сегодня два ПК -- это слишком мало, поэтому куцые link segments объединяются с помощью повторителей или, говоря иначе, хаба. Сегменты в конфигурации 10Base-T работают в полнодуплексном режиме, т. е. передача и прием ведутся одновременно. Как следствие, столкновения здесь невозможны, а посему необходимость в использовании узлами механизма CS/CDMA отпала сама собой. Но это только половина правды, так как хаб все-таки вынужден разрешать коллизии между сегментами. Лишь коммутирующие хабы, которые буферизируют пакеты и могут спокойно ожидать освобождения порта адресата, не имеют проблем с конкурентным доступом к сети. Коммутатор позволяет дезавуировать и ограничение на общую длину сообщающихся сегментов, ликвидировав две основные причины его появления: ослабление сигнала и механизм детекции коллизий.


10Base-FL, 10Base-FB и 10Base-FP

Мифическая Ethernet
Рис. 3
Не дожидаясь двенадцатого удара курантов, медный кабель обернулся оптоволокном, а электрические сигналы -- лазерными импульсами. Первым на свет появился стандарт FOIRL (Fiber Optic Inter-Repeater Link), предназначенный для соединения двух репитеров. Прием и передача осуществлялись по раздельным волокнам на частоте 850 нм. В результате получился некий вариант десятимегабитовой магистральной коммуникационной линии. В 1987 г., возможно, и была насущная потребность в магистральных каналах такой пропускной способности, но ничто не исчерпывается быстрее, чем ресурсы. Несколько лет спустя на смену FOIRL пришла технология, предусматривающая подключение конечных узлов непосредственно к оптической линии. Спецификация 10Base-FL (где FL означает Fiber Link) описывает оптическую вариацию на тему звездной топологии -- каждое соединение может обслуживать только две точки доступа. Сеть работает в режиме полного дуплекса, исходящие и входящие сигналы разнесены по разным волокнам. Максимальная длина сегмента увеличилась вдвое по сравнению с первым стандартом оптической Ethernet.

Вышеописанную технологию, ставшую наиболее популярной среди пользователей, дополнили еще двумя -- 10Base-FB (Fiber Backbone) и 10Base-FP (Fiber Passive). Мотивы разработчиков 10Base-FB с позиций сегодняшнего дня не совсем ясны. Основное назначение каналов класса FB логически вытекает из их названия -- соединение цепочки повторителей или оптических хабов. Если длину сегмента, как и механическую конструкцию, здесь оставили без изменений, то сигнальный протокол подвергся некоторой переработке. Как следствие, 10Base-FB обрел способность управляться с несколькими последовательно подсоединенными повторителями, прибегая к парадигме синхронных коммуникаций. Фактически это означает, что все узлы магистрали должны работать на фиксированной тактовой частоте, а фазовый сдвиг между импульсами, генерируемыми различными хабами/повторителями, не должен выходить за установленные рамки.

Синхронная работа сети значительно облегчает задачу мультиплексирования потоков, особенно, если они "входят" на разных скоростях. Несмотря на все достоинства 10Base-FB, один недостаток стандарта (помимо отсутствия полнодуплексного режима) очевиден: в то время как для любой локальной сети скорость 10 Mbps непременно становится нормой, магистраль, призванная соединять эти подсети, вряд ли сможет опередить их по производительности.

И наконец, последний из троицы стандартов, получивший название 10Base-FP, описывает некое чудо гибридизации: пассивную оптическую сеть в топологии звезда. Повторители не используются, поэтому длина сегмента (link segment) снизилась до 500 м, общее число узлов не может превышать 33. Пассивный хаб выполняет роль "магического" зеркала, равномерно "отражающего" любой пришедший импульс во все подключенные сегменты. Естественно, ни о какой полнодуплексной передаче речь уже не шла.

На этом мы ненадолго прервемся, чтобы в следующем номере продолжить повествование о развитии столь привычной уже для всех технологии.