[Перевод] Как инженеры Digital Equipment Corp. спасли Ethernet

Созданная ими технология «обучаемых» мостов позволила кратно повысить быстродействие локальных сетей.

portrait of two men standing with their hands on a small beige and gray box while looking at the camera

Алан Кирби (слева) и Марк Кемпф демонстрируют LANBridge 100 с серийным номером 0001.

Протокол Ethernet, разработанный исследователями в области вычислительной техники Робертом Меткалфом и Дэвидом Боггсом, бесспорно, оказал огромное влияние на развитие сетей. Меткалф в 1996 году получил почетную медаль IEEE, а в 2022 году — премию Тьюринга от Ассоциации вычислительной техники за свою работу. Но это общеизвестные факты. Есть еще одна история про Ethernet, которую уже мало кто знает.

В 1980-х и начале 1990-х годов я возглавлял группу перспективных разработок в области сетевых технологий компании Digital Equipment Corp. (DEC) в Массачусетсе. Мне довелось воочию наблюдать за развитием технологий локальных сетей в период больших возможностей и острой конкуренции между различными стандартами.

Все компании, включая DEC, Intel и Xerox, так или иначе пытались приспособить Ethernet, появившийся еще в 70-х, к извлечению максимальной прибыли. Но в 1980-х на рынке объявились конкуренты Ethernet в лице новых технологий локальных сетей. Среди самых заметных были Token Ring, продвигаемая IBM, и Token Bus (сегодня Ethernet и обе технологии на основе токенов входят в семейство стандартов IEEE 802).

Все эти сетевые технологии имеют ряд общих основополагающих свойств. Во-первых, это 48-разрядный MAC-адрес — уникальный номер, присваиваемый на этапе изготовления сетевого порта устройства. MAC-адреса используются только внутри локальной сети, но они крайне важны для ее работы. Обычно, наряду с компьютерами общего назначения, в сети есть как минимум одно устройство специального назначения — маршрутизатор, основная задача которого — отправлять данные в интернет и получать их оттуда от имени всех остальных компьютеров локальной сети.

В концепции сетевых технологий, которая существует уже несколько десятилетий, саму локальную сеть (грубо говоря, кабели и низкоуровневое оборудование) принято относить к L2 — канальному уровню. Маршрутизаторы по большей части имеют дело с сетевыми адресами, которые используются как внутри локальной сети, так и за ее пределами. За некоторыми исключениями, IP-адрес (сетевой адрес) в пакете данных достаточен для того, чтобы этот пакет мог быть доставлен в любую точку интернета посредством цепочки из других маршрутизаторов, управляемых поставщиками услуг и операторами связи. Маршрутизаторы и операции, которые они выполняют, относятся к L3 — сетевому уровню.

В локальной сети с Token Ring экранированная медная витая пара соединяет каждый компьютер с соседями в бесконечную кольцевую структуру. Каждый компьютер пересылает данные от вышестоящего соседа к нижестоящему, а собственные данные может отправить в сеть только после получения короткого пакета данных — маркера — от вышестоящего узла. Если у него нет данных для передачи, он просто передает маркер своему соседу ниже по течению, и так далее.

В локальной сети с Token Bus все компьютеры сети соединены коаксиальным кабелем, но разводка не определяет порядок, в котором они передают токены. Устройства договариваются о последовательности передачи токенов, образуя бесконечное виртуальное кольцо, по которому циркулируют и данные, и токены.

Ethernet тем временем стал стандартом соединения устройств посредством коаксиального кабеля. Для управления передачей данных в нем использовался метод множественного доступа с контролем несущей и предотвращением коллизий (сокращенно CSMA/CA). Компьютеры, планирующие передать пакет данных, сначала проверяли, не передают ли что-то их соседи. Если передачи не происходит, компьютер отправляет свой пакет, одновременно отслеживая, не столкнется ли этот пакет с пакетом от другого компьютера. Из-за чего могут возникать коллизии? Например, из-за того, что сигнал между устройствами передается не моментально. В случае обнаружения коллизии компьютер-отправитель повторно посылает свой пакет с задержкой, имеющей как случайную, так и экспоненциально возрастающую составляющую, которая зависит от количества коллизий.

Необходимость обнаружения коллизий предполагает компромисс между скоростью передачи данных, физической длиной кабеля и минимальным размером пакета. Увеличение скорости передачи данных на порядок означает либо уменьшение физической длины линии, либо увеличение минимального размера пакета примерно на такой же коэффициент. Разработчики Ethernet разумно подошли к выбору оптимального варианта: 10 мегабит в секунду и 1500-метровые трассы.

Оптическая угроза

Тем временем целая коалиция компаний, в том числе и мой работодатель, DEC, разрабатывала новый стандарт ANSI LAN: Fiber Distributed Data Interface. Технология FDDI предусматривала использование вариации Token Bus для передачи данных по оптическому волокну со скоростью до 100 Мбит/с, что было на порядок быстрее, чем 10 Мбит/с, доступные при использовании Ethernet.

В ряде технических изданий были опубликованы результаты анализа пропускной способности и задержек конкурирующих технологий локальных сетей при различных рабочих нагрузках. Учитывая полученные результаты и возросшие требования к производительности сети, обусловленные ростом быстродействия процессоров, объемов оперативной памяти и энергонезависимых накопителей, ограниченная производительность Ethernet превратилась в серьезную проблему.

Для создания высокоскоростных локальных сетей FDDI казался более продвинутым вариантом, нежели Ethernet, несмотря на то, что в нем использовались дорогие компоненты и сложные технологии, особенно в части восстановления после сбоев. Однако все протоколы доступа к совместно используемым ресурсам имели ряд неприятных особенностей или ограничений в производительности.

Есть решение!

Мне пришло в голову, что наилучшим подходом, по сравнению с FDDI или ускоренной версией Ethernet, будет разработка новой технологии для локальных сетей, обеспечивающей тип передачи store-and-forward.

Одним прекрасным вечером 1983 года, перед тем как уйти с работы домой, я зашел в кабинет Марка Кемпфа, ведущего инженера и члена моей команды. Марк был одним из лучших инженеров, с которыми я когда-либо работал. Именно он создал популярный и пользующийся огромным спросом терминальный сервер DECServer 100, в котором применялся протокол Local Area Transport (LAT), разработанный Брюсом Манном из отдела корпоративной архитектуры DEC. 

Я рассказал Марку о своей идее использовать коммутацию со store-and-forward для повышения производительности локальной сети.

И на следующее же утро Марк презентовал мне идею обучаемого моста (также известного как коммутатор второго уровня или просто коммутатор):

  • Мост подключается к двум локальным сетям Ethernet.

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

  • Компьютерам в обеих сетях не нужно знать, по какому пути пойдут их данные в расширенной локальной сети — для них этот мост невидим.

При этом мост должен быть способен принимать около 30 000 пакетов в секунду и решать, стоит ли пересылать их дальше. Несмотря на то, что требование в 30 000 пакетов в секунду было практически пределом возможностей для Motorola 68000, Марк был уверен, что сумеет построить мост с поддержкой двух сетей Ethernet, используя только стандартные компоненты, включая специализированное устройство для поиска 48-битных MAC-адресов, которое можно собрать на базе программируемых логических матриц (PAL) и выделенной статической оперативной памяти.

Вклад Марка не получил широкого признания. Единственное исключение — учебник »Сетевая алгоритмика» Джорджа Варгезе.

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

Чтобы согласовать создание прототипа обучаемого моста, задуманного Марком, я направил заявку с изложением идеи руководству сразу на трех уровнях. К концу дня мы получили «зеленый свет» и осознали, что в случае успеха прототипа у компании появится новый продукт.

Разработка 

Мой непосредственный руководитель в DEC, Тони Лаук, поручил нескольким инженерам и архитекторам решить проблему зацикливания пакетов в неправильно настроенных сетях. В течение пары дней у нас появилось сразу несколько потенциальных решений. Радья Перлман, архитектор из группы Тони, предложила идеальный вариант, который мы все безоговорочно поддержали: Spanning Tree Protocol (Примечание переводчика: на русском его также называют протоколом «связующего», «остовного» или «покрывающего» дерева»)

В концепции Перлман мосты обмениваются данными о себе, выбирают «корневой» мост по заданным критериям и вычисляют минимальное остовное дерево (MST). MST — это математическая структура, которая в данном случае описывает, как эффективно соединить локальные сети и мосты без петель. Благодаря MST любой мост, присутствие которого создавало бы петлю, переводился в режим резервирования. Побочным преимуществом такого подхода является возможность быстрого восстановления в случае отказа моста.

a big green box with little boxes within with gold dots and different colored wires

Блок логики разобранного LANBridge 100, выпущенного компанией Digital Equipment Corp. в 1986 году. Алан Кирби

Марк разработал аппаратную часть и код низкого уровня, учитывающий особенности синхронизации, а инженер-программист Боб Шелли подготовил дополнительное ПО. В 1986 году DEC представила технологию под названием LANBridge 100 (DEBET-AA).

А чуть позже DEC выпустила версию DEBET-RC, которая поддерживала уже 3-километровые кабели между мостами. Мануалы для некоторых DEBET-RC можно найти на сайте Bitsavers.

Идея Марка не «переизобрела» и не вытеснила Ethernet — в этом ее гениальность. Обеспечивая коммутацию store-and-forward между имеющимися Ethernet-сетями, мосты позволяли легко модернизировать сети в целом. Поскольку коллизии не распространялись за пределы моста, соединение двух сетей Ethernet сразу же удваивало предельную длину одного Ethernet-кабеля. Более того, размещение компьютеров, интенсивно общающихся друг с другом, на одном кабеле Ethernet изолировало трафик на этом участке, в то время как мост по-прежнему позволял обмениваться данными с компьютерами на других Ethernet-кабелях.

Это уменьшало трафик на обоих кабелях, увеличивая пропускную способность и снижая частоту возникновения коллизий. В конечном итоге это означало, что каждый компьютер может быть оснащен собственным Ethernet-кабелем, а многопортовый мост соединит отдельные устройства в сеть.

Именно это привело к постепенному переходу от CSMA/CD по коаксиальному кабелю к повсеместно распространенным сегодня медным и оптоволоконным линиям связи между устройствами и коммутаторами.

Скорость больше не зависит от ограничений, связанных с распознаванием коллизий. Решение Марка целиком изменило представление людей об Ethernet.

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

Позже наша команда разработала GIGAswitch, многопортовое устройство, поддерживающее как Ethernet, так и FDDI.

Рост производительности мостов умерил пыл разработчиков новых сетевых протоколов. Впоследствии даже FDDI исчез с рынка, не выдержав конкуренции с более быстрыми версиями Ethernet.

Марк получил патент США на свое устройство в 1986 году. DEC предложила лицензировать его на безвозмездной основе, позволив любой компании использовать эту технологию.

Это привело к разработке стандарта IEEE. Над улучшением технологии коммутации стали работать известные компании и стартапы. Другие усовершенствования, в том числе ASIC для коммутаторов, виртуальные локальные сети, разработка более быстрых и менее дорогих физических носителей и сопутствующей электроники, — все это способствовало долголетию и популярности Ethernet.

Непреходящая ценность Ethernet заключается не в CSMA/CD или его первоначальной коаксиальной природе, а в легко понятном и функциональном подходе, который он предоставил разработчикам протоколов.

Сегодня прямыми наследниками этих инноваций являются коммутаторы. Порты современных коммутаторов, используемых в ЦОД, могут работать со скоростью от 40 до 800 гигабит в секунду. Рынок этих устройств приносит более 10 миллиардов долларов ежегодно.

Мой босс Тони Лаук однажды сказал, что ценность архитектуры можно измерить количеством технологических поколений, на протяжении которых она будет востребована. Выходит, что Ethernet добился колоссального успеха. 

Никто не знает, что случилось бы с Ethernet, если бы Марк не изобрел свой «обучаемый» мост. Возможно, кому-то другому пришла бы в голову похожая идея. А возможно, нет — и без этого решения Ethernet был бы обречен на медленную, но верную смерть. 

Я лично думаю, что Марк в тот день не просто спас Ethernet, но и обеспечил ему большое будущее.

© Habrahabr.ru