Шрифт:
Система Xerox Ethernet оказалась настолько успешной, что в 1978 году DEC Intel и Xerox разработали стандарт 10-мегабитного Ethernet — стандарт DIX (DIX standard). С небольшими изменениями в 1983 году DIX превратился в стандарт IEEE 802.3. К несчастью, у компании Xerox на тот момент была длинная история значительных изобретений (например, персональный компьютер), которые она не смогла успешно выпустить на рынок. Об этом рассказано в книге «Fumbling the Future» Смита и Александера (Smith and Alexander, 1988). Когда стало понятно, что Xerox не заинтересован в Ethernet и может предложить разве что помощь в его стандартизации, Меткалф основал собственную компанию, 3Com. Компания занималась продажей адаптеров Ethernet для персональных компьютеров. Были проданы миллионы таких устройств.
Классический Ethernet — это проходящий по всему зданию длинный кабель, к которому подключаются компьютеры. Эта архитектура показана на илл. 4.13. Первый вариант, называемый в народе толстым Ethernet (thick Ethernet), напоминал желтый садовый шланг с маркировкой каждые 2,5 м — в этих местах подключались компьютеры. (По стандарту 802.3 не требовалось, чтобы кабель был желтым, но это подразумевалось.) Ему на смену пришел тонкий Ethernet (thin Ethernet); эти кабели лучше гнулись, а соединения выполнялись с помощью стандартных разъемов BNC. Тонкий Ethernet был намного дешевле и проще в установке, но длина сегмента не превышала 185 м (вместо 500 м для толстого Ethernet), а каждый сегмент поддерживал не более 30 компьютеров (вместо 100).
Илл. 4.13. Архитектура классического Ethernet
Все версии Ethernet имеют ограничения по длине кабеля в сегменте, то есть участкам без усилителя. Для построения сетей больших размеров несколько кабелей соединяются повторителями (repeaters). Повторитель — это устройство физического уровня. Он принимает, усиливает (регенерирует) и передает сигналы в обоих направлениях. С точки зрения программного обеспечения ряд кабелей, соединенных таким образом, не отличается от сплошного кабеля (за исключением небольшой временной задержки, связанной с повторителями).
Информация по этим кабелям передается с использованием манчестерского кода, о котором мы говорили в разделе 2.4.3. Ethernet может состоять из большого количества сегментов кабеля и повторителей, однако два трансивера могут располагаться на расстоянии не более 2,5 км и между ними должно быть не более четырех повторителей. Эти ограничения нужны для того, чтобы протокол MAC, о котором мы поговорим далее, работал корректно.
4.3.2. Протокол MAC в классическом Ethernet
Формат фрейма, применяемый для отправки данных, показан на илл. 4.14. Сначала идет поле Preamble (Преамбула) длиной 8 байт, которое содержит последовательность 10101010 (за исключением последнего байта, в котором значения двух последних битов равны 11). Последний байт в стандарте 802.3 называется разделителем Start of Frame, SoF (начало фрейма). Манчестерское кодирование такой последовательности битов в результате дает меандр с частотой 10 МГц и длительностью 6,4 мкс. Это позволяет получателю синхронизировать свой таймер с таймером отправителя. Два последних бита 11 сообщают получателю, что сейчас начнется передача остальной части фрейма.
Илл. 4.14. Форматы фреймов. (а) DIX Ethernet; (б) IEEE 802.3
Затем следуют два адресных поля: Destination address (Адрес получателя) и Source address (Адрес отправителя). Каждый занимает по 6 байт. Первый передаваемый бит адреса получателя содержит 0 для обычных адресов и 1 для групповых. Групповые адреса позволяют нескольким станциям принимать информацию от одного отправителя. Фрейм, отправляемый групповому адресату, может быть получен всеми станциями, входящими в эту группу. Этот механизм называется групповой рассылкой (multicasting). Если адрес состоит только из единиц, то фрейм могут принять абсолютно все станции сети. Таким способом осуществляется широковещание (broadcasting). Групповая рассылка более избирательна и предусматривает управление группами, чтобы определять, какие станции в них входят. При широковещании, напротив, никакой разницы между станциями нет, поэтому управление группами не требуется.
Интересной особенностью исходных адресов станций является их абсолютная уникальность. Они централизованно назначаются IEEE, и это гарантирует, что нигде в мире нет двух станций с одинаковым адресом. Идея заключается в том, что каждая станция может быть однозначно идентифицирована по ее 48-битному номеру. Для этого первые 3 байта поля адреса используются для уникального идентификатора организации (Organizationally Unique Identifier, OUI). Значения этого поля определяются IEEE и являются индикатором производителей (каждый из них получает блок из 224 адресов). Производитель назначает последние 3 байта адреса и программирует весь адрес в сетевой карте перед тем, как она поступает в продажу.
Затем следует поле Type (Тип) или Length (Длина), в зависимости от того, к какому стандарту относится фрейм — Ethernet или IEEE 802.3. В Ethernet поле Type показывает получателю, что делать с фреймом. Дело в том, что одновременно на одном и том же компьютере может работать несколько протоколов сетевого уровня. Поэтому операционная система должна понимать, какому протоколу передать полученный фрейм Ethernet. Поле Type определяет процесс, для которого предназначается фрейм. Например, код типа 0x0800 означает, что данные содержат пакет IPv4.