МАС-подуровень Ethernet

должен выполнять две основные задачи:

• инкапсуляция данных, в том числе формирование фреймов перед передачей, а также синтаксический анализ фреймов и обнаружение ошибок во время и после приема данных;

•          управление доступом к среде передачи, включая инициирование передачи фреймов и восстановление в случае сбоя при передаче.

Основной формат фрейма Ethernet

Стандарт IEEE 802.3 определяет базовый формат фрейма данных, обязательный для всех МАС-реализаций, а также несколько дополнительных форматов, применяемых для расширения базовых возможностей протокола. Основной формат фрейма данных содержит семь полей, показанных на рис. 8.6.

•          PRE (preamble, заголовок). Длина — 7 байтов. Заголовок представляет собой набор чередующихся единиц и нулей, по которому принимающие станции узнают о поступающем фрейме. Он также служит для синхронизации принимающих физических уровней и входящего битового потока.

•          SOF (Start-of-Frame Delimiter, признак начала фрейма). Длина — 1 байт. SOF представляет собой набор чередующихся единиц и нулей, заканчивающийся двумя единицами, что означает, что следующий бит является крайним левым битом в крайнем левом байте адреса получателя.

•          DA (Destination Address, адрес получателя). Длина — 6 байтов. В поле адреса получателя указывается, какая станция (станции) должна получить этот фрейм. Крайний левый бит в поле адреса получателя показывает, является ли адрес индивидуальным (бит равен 0) или групповым (1), а следующий бит — является ли адрес глобально (0) или локально (1) административно управляемым. Оставшиеся 46 битов содержат уникальное значение, которое идентифицирует станцию, группу станций или все станции в сети.

•          SA (Source Address, адрес источника). Длина — 6 байтов. Адрес источника идентифицирует отправляющую станцию. Этот адрес всегда является индивидуальным, а его крайний левый бит всегда равен 0.

•          Длина/тип. Длина поля — 4 байта. В этом поле указывается количество байтов данных МАС-клиента, содержащихся в поле данных фрейма или идентификатор типа фрейма, если фрейм собран по дополнительному формату. Если значение этого поля меньше или равно 1500, то количество байтов LLC в поле данных равно значению поля длина/тип. Если значение поля длины/типа больше 1536, то это фрейм дополнительного типа, и значение поля длины/типа определяет тип посылаемого или получаемого фрейма.

•          Данные. Последовательность из п байтов с любыми значениями, где п меньше или равно 1500. Если длина поля данных меньше 46, то его нужно дополнить до этого размера пустыми байтами-заполнителями.

•          Контрольная последовательность фрейма (Frame Check Sequence — FCS). Длина — 4 байта. Эта последовательность содержит 32-битовое значение CRC (Cyclic Redundancy Check, циклическая проверка четности с избыточностью), которое вычисляется отправляющим и пересчитывается принимающим подуровнем MAC, чтобы проверить наличие поврежденных фреймов. Контрольная последовательность фрейма генерируется на основе полей DA, SA, длины/типа и поля данных.

Рис. 8.6. Базовый формат фрейма данных МАС-уровня IEEE 802.3

Внимание!

Индивидуальные адреса называют также одиночными, поскольку они соответствуют единственному МАС-уровню и назначаются производителем NIC из блока адресов, выделенных IEEE. Групповые, или множественные, адреса идентифицируют конечные станции, принадлежащие рабочей группе, и назначаются сетевым администратором. Специальный групповой адрес (широковещательный адрес, состоящий только из единиц) соответствует всем станциям в сети.

Передача фрейма

Каждый раз, когда МАС-подуровень конечной станции принимает запрос о передаче фрейма, сопровождаемый адресом и информацией о данных от подуровня LLC, он начинает процедуру передачи, перенося информацию LLC в буфер МАС-фреймов.

•     В поля PRE и SOF помещается заголовок и признак начала фрейма.

•     В поля адресов помещаются адреса получателя и источника.

•          Подсчитывается количество байтов данных подуровня LLC и это значение вставляется в поле длины/типа.

•          В поле данных вставляются байты данных подуровня LLC. Если количество байтов данных LLC меньше 46, то в конец добавляется столько холостых байтов, чтобы длина поля данных составляла 46 байтов.

•          По значениям полей DA, SA, длины/типа и данных вычисляется значение контрольной последовательности фрейма FCS и помещается после поля данных.

После того как фрейм собран, его фактическая передача зависит от того, в каком режиме работает MAC уровень: полудуплексном или дуплексном.

В настоящее время стандарт IEEE 802.3 требует, чтобы все МАС-уровни Ethernet поддерживали полудуплексный режим работы, в котором МАС-уровень может либо посылать, либо принимать фреймы, но не может делать то и другое одновременно. Поддержка дуплексного режима работы МАС-уровня, в котором возможен одновременный прием и передача данных, не является обязательной.

Полудуплексная передача — метод доступа CSMA/CD

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

Правила метода доступа CSMA/CD кратко выражены в названии этого протокола.

•          Контроль несущей. Каждая станция непрерывно следит за потоками данных и отмечает вакантные промежутки времени между передачами фреймов.

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

•          Обнаружение коллизий. Если несколько станций в одной и той же сети CSMA/CD (коллизионный домен) начинают передачу примерно в одно и то же время, то потоки битов, поступающие от передающих станций, накладываются друг на друга (возникает коллизия — от англ. "collide" — сталкиваться), и их невозможно прочесть. В этом случае каждая из передающих станций должна быть способна обнаружить коллизию до того, как она закончит передавать свой фрейм. Обнаружив коллизию, станция должна сразу прекратить передачу. Попытаться повторить пересылку фрейма она сможет лишь по прошествии квазислучайного промежутка времени, определяемого алгоритмом блокировки.

Наихудшим является случай, когда двум наиболее удаленным друг от друга станциям сети требуется послать друг другу фреймы, и вторая станция не начинает передачу, пока не получит фрейм от первой. Вторая станция обнаружит коллизию сразу же, а первая — лишь после того, как искаженный сигнал проделает весь обратный путь. Максимальное время, которое потребуется, чтобы обнаружить коллизию (временной интервал, называемый "коллизионным окном"), оказывается примерно вдвое больше, чем время прохождения сигнала между двумя наиболее удаленными станциями сети.

Это означает, что как минимальная длина фрейма, так и максимальный диаметр коллизии прямо пропорциональны размеру "коллизионного окна". Чем длиннее фрейм, тем больше его "коллизионное окно", и следовательно, тем больше диаметр коллизий; напротив, более коротким фреймам соответствуют меньшие "коллизионные окна" и диаметры коллизий.

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

Этот компромисс был удачным решением при скорости передачи 10 Мбит/с, однако не подходил для разработчиков сетей Ethernet с более высокими скоростями передачи данных. От новой технологии Fast Ethernet требовалось, чтобы она обеспечивала обратную совместимость с ранее созданными сетями Ethernet, в том числе совместимость с существующим форматом фрейма IEEE 802.3 и с процедурами обнаружения ошибок, а также со всеми приложениями и сетевым программным обеспечением для 10- мегабитовых сетей Ethernet.

Хотя скорость распространения сигнала для всех скоростей передачи практически постоянна, время, требуемое для передачи фрейма, обратно пропорционально скорости передачи. При скорости 100 Мбит/с фрейм минимальной длины можно переслать примерно за одну десятую времени "коллизионного окна", и любая коллизия, которая может произойти при передаче, вряд ли будет обнаружена передающими станциями. Это, в свою очередь, означает, что максимальные сетевые диаметры, определенные для 10-мегабитовых сетей, не могут использоваться для сетей со скоростью передачи 100 Мбит/с. Решением этой проблемы для Fast Ethernet было уменьшение максимального сетевого диаметра приблизительно в десять раз (что составляет немногим более 200 м).

Та же проблема возникла и при разработке спецификации для Gigabit Ethernet, но уменьшать сетевой диаметр еще в десять раз (примерно до 20 м) для работы на скорости 1000 Мбит/с практически не имело смысла. На этот раз разработчики предпочли оставить максимальный диаметр коллизионного домена почти таким же, как и в 100-мегабитовых сетях, но увеличить фактический минимальный размер фрейма, добавив к фреймам, длина которых меньше минимальной, дополнительное неинформативное поле переменной длины (во время приема фрейма это поле удалялось).

На рис. 8.7 показан формат МАС-фрейма с дополнительным полем расширения для Gigabit Ethernet, а в табл. 8.1 продемонстрирован результат компромисса между скоростью передачи данных и минимальным размером фрейма для сетей Ethernet со скоростью передачи 10 Мбит/с, 100 Мбит/с и 1000 Мбит/с.

Рис. 8.7. МАС-фрейм с полем расширения для Gigabit Ethernet

 

1520 байтов— для 1000BaseT. Минимальный размер фрейма с полем расширения для 1000BaseX уменьшается до 416 байтов, так как 1000BaseX кодирует и передает по 10 битов на каждый байт.

Другим изменением спецификации передачи Ethernet CSMA/CD бьшо добавление пакетной передачи фреймов для Gigabit Ethernet. Пакетный режим представляет собой функцию, позволяющую посылать на МАС-уровне короткую последовательность (пакет) фреймов, соответствующий приблизительно 5,4 фреймам максимальной длины, не переставая контролировать среду передачи. Интервалы между фреймами передающий МАС-подуровень заполняет битами расширения (рис. 8.8), чтобы другие станции сети видели, что сеть занята, и не пытались передавать данные, пока не закончится пакет.

* Для того чтобы обеспечить непрерывность несущего сигнала в течение передачи всей пакетной последовательности, промежутки между фреймами заполняются битами расширения

Рис. 8.8. Пакетная последовательность фреймов для Gigabit Ethernet

*Биты расширения посылаются в интервалах между фреймами для обеспечения непрерывности использования канала в течение всего времени передачи пакетной последовательности

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

Для скоростей передачи 10 Мбит/с и 100 Мбит/с поля расширения и пакетный режим не используются.

Повышение эффективности путем дуплексной передачи

Дуплексный режим представляет собой дополнительную возможность одновременной двусторонней передачи по линии связи типа "точка-точка" на МАС-уровне. Функционально дуплексная передача намного проще полудуплексной, так как она не вызывает в среде передачи конфликтов и коллизий, не требует составления расписания повторных передач и добавления битов расширения в конце коротких фреймов. В результате не только увеличивается время, доступное для передачи данных, но и удваивается полезная полоса пропускания канала, поскольку каждый канал обеспечивает полноскоростную одновременную и двустороннюю передачу.

Обычно передача может начинаться сразу же, как только фреймы будут готовы к отправке. Единственным ограничением является то, что интервал между последовательными фреймами не должен быть меньше определенной минимальной длины (рис. 8.9), а формат фреймов должен соответствовать стандартам Ethernet.

Управление потоком

Дуплексный режим требует установки еще одной дополнительной функции — управления потоком. Она позволяет принимающему узлу (например, порту сетевого коммутатора) в случае переполнения дать команду узлу-источнику (например, файловому серверу) приостановить передачу фреймов на некоторый короткий промежуток времени. Управление потоком осуществляется МАС-уровнями отправителя и получателя с помощью фрейма-паузы, который автоматически формируется принимающим МАС- уровнем. Если переполнение будет ликвидировано до истечения периода ожидания, то для восстановления передачи, отправляется второй фрейм-пауза с нулевым значением времени ожидания. Общая схема управления потоком показана на рис. 8.10.

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

Фреймы-паузы распознаются как управляющие МАС-фреймы по индивидуальным (зарезервированным) значениям поля "длина/тип". Им также назначается зарезервированное значение адреса получателя, для того чтобы исключить возможность передачи входящего фрейма-паузы протоколам верхних уровней или на другие порты коммутатора.

Получение фреймов

Рис. 8.9. Дуплексный режим обеспечивает одновременную двустороннюю передачу по одной и той же линии связи

Рис. 8.10. Последовательность действий для управления потоком IEEE 802.3

Процедура получения фреймов в полудуплексном и дуплексном режимах почти одинакова, за исключением того, что дуплексные МАС-станции для одновременной передачи и приема фреймов нуждаются в отдельных буферах фреймов и в отдельных маршрутах для приема и передачи данных.

Получение фреймов является процедурой, обратной их передаче. Адрес получателя поступившего фрейма (МАС-адрес, групповой или широковещательный) сверяется со списком адресов станции и определяется, предназначен ли данный фрейм для данной станции. Если адрес получателя соответствует адресу принимающей станции, то проверяется длина фрейма, а содержащееся во фрейме значение контрольной последовательности FCS сравнивается с соответствующим значением, вычисленным при приеме фрейма. Если длина фрейма соответствует требуемой и значения FSC совпадают, то по содержанию поля "длина/тип" определяется тип фрейма. Затем фрейм анализируется и передается на соответствующий верхний уровень.

Литература:

Руководство по технологиям объединенных сетей, 4-е издание. : Пер. с англ. — М.: Издательский дом «Вильяме», 2005. — 1040 с.: ил. – Парал. тит. англ.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100