Подуровни LLC и MAC в стандарте Fast Ethernet не претерпели изменений. Напомним кратко их функции.
Подуровень LLC обеспечивает интерфейс протокола Ethernet с протоколами вышележащих уровней, например, с IP или IPX. Кадр LLC, изображенный на рисунке 1.2, вкладывается в кадр MAC, и позволяет за счет полей DSAP и SSAP идентифицировать адрес сервисов назначения и источника соответственно. Например, при вложении в кадр LLC пакета IPX, значения как DSAP, так и SSAP должны быть равны Е0. Поле управления кадра LLC позволяет реализовать процедуры обмена данными трех типов.
- Процедура типа 1 определяет обмен данными без предварительного установления соединения и без повторной передачи кадров в случае обнаружения ошибочной ситуации, то есть является процедурой дейтаграммного типа. Именно этот тип процедуры и используется во всех практических реализациях Ethernet. Поле управления для этого типа процедур имеет значение 03, что определяет все кадры как ненумерованные.
- Процедура типа 2 определяет режим обмена с установлением соединений, нумерацией кадров, управлением потоком кадров и повторной передачей ошибочных кадров. В этом режиме протокол LLC аналогичен протоколу HDLC. В локальных сетях Ethernet этот режим используется редко.
- Процедура типа 3 определяет режим передачи данных без установления соединения, но с получением подтверждения о доставке информационного кадра адресату. Только после этого может быть отправлен следующий информационный кадр.
Рис. 1.2. Формат кадра LLC с расширением SNAP
Существует расширение формата кадра LLC, называемое SNAP (Subnetwork Access Protocol). В случае использования расширения SNAP в поля DSAP и SSAP записывается значение AA, тип кадра по-прежнему равен 03, а для обозначения типа протокола, вложенного в поле данных, используются следующие 4 байта, причем байты идентификатора организации (OUI) всегда равны 00 (за исключением протокола AppleTalk), а последний байт (TYPE) содержит идентификатор типа протокола (например, 0800 для IP).
Заголовки LLC или LLC/SNAP используются мостами и коммутаторами для трансляции протоколов канального уровня по стандарту IEEE 802.2H.
Подуровень MAC ответственен за формирование кадра Ethernet, получение доступа к разделяемой среде передачи данных и за отправку с помощью физического уровня кадра по физической среде узлу назначения.
Разделяемая среда Ethernet, независимо от ее физической реализации (коаксиальный кабель, витая пара или оптоволокно с повторителями), в любой момент времени находится в одном из трех состояний - свободна, занята, коллизия. Состояние занятости соответствует нормальной передаче кадра одним из узлов сети. Состояние коллизии возникает при одновременной передаче кадров более, чем одним узлом сети.
MAC-подуровень каждого узла сети получает от физического уровня информацию о состоянии разделяемой среды. Если она свободна, и у MAC-подуровня имеется кадр для передачи, то он передает его через физический уровень в сеть. Физический уровень одновременно с побитной передачей кадра следит за состоянием среды. Если за время передачи кадра коллизия не возникла, то кадр считается переданным. Если же за это время коллизия была зафиксирована, то передача кадра прекращается, и в сеть выдается специальная последовательность из 32 бит (так называемая jam-последовательность), которая должна помочь однозначно распознать коллизию всеми узлами сети.
После фиксации коллизии MAC-подуровень делает случайную паузу, а затем вновь пытается передать данный кадр. Случайный характер паузы уменьшает вероятность одновременной попытки захвата разделяемой среды несколькими узлами при следующей попытке. Интервал, из которого выбирается случайная величина паузы, возрастает с каждой попыткой (до 10-ой), так что при большой загрузке сети и частом возникновении коллизий происходит притормаживание узлов. Максимальное число попыток передачи одного кадра - 16, после чего MAC-подуровень оставляет данный кадр и начинает передачу следующего кадра, поступившего с LLC-подуровня.
MAC-подуровень узла приемника, который получает биты кадра от своего физического уровня, проверяет поле адреса кадра, и если адрес совпадает с его собственным, то он копирует кадр в свой буфер. Затем он проверяет, не содержит ли кадр специфические ошибки: по контрольной сумме (FCS error), по максимально допустимому размеру кадра (jabber error), по минимально допустимому размеру кадра (runts), по неверно найденным границам байт (alignment error). Если кадр корректен, то его поле данных передается на LLC-подуровень, если нет - то отбрасывается.