4.3.2. Протокол подуровня управления доступом к среде в классическом Ethernet
Формат кадра, применяемый для отправки данных, показан на рис. 4.14. Сначала идет поле Preamble (преамбула, заголовок) длиной 8 байт, которое содержит последовательность 10101010 (за исключением последнего байта, в котором значения последних двух битов равны 11). Последний байт в стандарте 802.3 называется разделителем Start of Frame (Начало кадра). Манчестерское кодирование такой последовательности битов дает в результате меандр с частотой 10 МГц и длительностью 6,4 мкс, что позволяет получателю синхронизировать свои часы с часами отправителя. Два последних бита, равных единице, говорят получателю, что сейчас начнется новый кадр.
Затем следуют два адреса: получателя и отправителя. Каждый занимает по 6 байт. Первый передаваемый бит адреса получателя содержит 0 для обычных адресов и 1 для групповых получателей. Групповые адреса позволяют нескольким станциям принимать информацию от одного отправителя. Кадр, отправляемый групповому адресату, может быть получен всеми станциями, входящими в эту группу. Такой механизм называется групповой рассылкой( multicasting). Если адрес состоит только из единиц, то кадр могут принять абсолютно все станции сети. Таким способом осуществляется широковещание( broadcasting). Групповая рассылка более избирательна, но требует некоторых усилий при управлении группами. Широковещание — это более грубая технология, но зато не требует никакой настройки групп.

Рис. 4.14. Форматы кадров: а — DIX Ethernet; б — IEEE 802.3
Интересной особенностью исходных адресов станций является глобальная уникальность. Они централизованно назначаются IEEE, и это гарантирует, что один и тот же глобальный адрес не используется двумя станциями нигде в мире. Идея заключается в том, что каждая станция может быть однозначно идентифицирована по ее 48-битному номеру. Для этого первые 3 байта поля адреса используются для OUI (Organizationally Unique Identifier, организационно уникальный идентификатор). Значения этого поля назначаются IEEE и однозначно определяют производителя. Производителям выделяются блоки по 2 24адресов. Производитель назначает последние 3 байта адреса и программирует весь адрес в сетевой карте перед тем, как она поступает в продажу.
Затем следует поле Type или Length, в зависимости от того, относится кадр к стандарту Ethernet или IEEE 802.3. В сетях Ethernet поле Type показывает приемнику, что делать с кадром. Дело в том, что одновременно на одной и той же машине может работать несколько протоколов сетевого уровня, поэтому, когда приходит кадр Ethernet, операционная система должна понимать, какому протоколу его передать. Поле Type определяет процесс, который должен взять себе кадр. Например, код типа 0x0800 означает, что данные содержат пакет IPv4.
Создатели IEEE 802.3 в своей безграничной мудрости решили, что в этом поле должна передаваться длина кадра. Но поскольку для определения длины необходимо заглянуть внутрь данных, то мы наблюдаем нарушение правил использования сетевых уровней. Разумеется, это означало, что получатель никак не мог выяснить, что же ему делать с входящим кадром. Эту проблему решили путем добавления в данные еще одного заголовка для протокола LLC (Logical Link Control, управление логическим каналом). Он занимает 8 байт и передает 2 байта информации о типе протокола.
К сожалению, к моменту опубликования стандарта 802.3 использовалось так много оборудования и программного обеспечения для DIX Ethernet, что лишь немногие про-
изводители и пользователи проявили энтузиазм в отношении переопределения полей Type и Length. В 1997 году IEEE признал поражение и согласился с обоими способами. К счастью, значения всех полей Type, использовавшиеся до 1997 года, были больше 1500 (тогда это значение было установлено в качестве максимального размера поля данных). Теперь правило таково, что любое значение, не превышающее 0x600 (1536), можно интерпретировать как Length, а любое число больше 0x600 — как Type. Теперь IEEE спокойна, что все используют ее стандарт, причем можно продолжать делать то, что программисты делали и до этого, не утруждая себя мыслями о LLC и не чувствуя вины за нарушение стандарта.
Наконец, за полем Type следует поле данных, размер которого ограничен 1500 байт. Такое ограничение было выбрано, в общем-то, произвольно в те времена, когда официально был закреплен стандарт Ethernet. При выборе ссылались на то, что приемопередатчику нужно довольно много оперативной памяти для того, чтобы хранить весь кадр. А память в том далеком 1978 году была еще очень дорогой. Соответственно, увеличение верхней границы размера поля данных привело бы к необходимости установки большего объема памяти, а значит, к удорожанию всего приемопередатчика.
Читать дальше
Конец ознакомительного отрывка
Купить книгу