Подуровень MAC
ответственен за формирование кадра Ethernet, получение доступа к разделяемой среде передачи данных и за отправку с помощью физического уровня кадра по физической среде узлу назначения.
Разделяемая среда Ethernet, независимо от ее физической реализации (коаксиальный кабель, витая пара или оптоволокно с повторителями), в любой момент времени находится в одном из трех состояний - свободна, занята, коллизия. Состояние занятости соответствует нормальной передаче кадра одним из узлов сети. Состояние коллизии возникает при одновременной передаче кадров более, чем одним узлом сети.
MAC-подуровень каждого узла сети получает от физического уровня информацию о состоянии разделяемой среды. Если она свободна, и у MAC-подуровня имеется кадр для передачи, то он передает его через физический уровень в сеть. Физический уровень одновременно с побитной передачей кадра следит за состоянием среды. Если за время передачи кадра коллизия не возникла, то кадр считается переданным. Если же за это время коллизия была зафиксирована, то передача кадра прекращается, и в сеть выдается специальная последовательность из 32 бит (jam-последовательность), которая должна помочь однозначно распознать коллизию всеми узлами сети.
После фиксации коллизии MAC-подуровень делает случайную паузу, а затем вновь пытается передать данный кадр. Случайный характер паузы уменьшает вероятность одновременной попытки захвата разделяемой среды несколькими узлами при следующей попытке. Интервал, из которого выбирается случайная величина паузы, возрастает с каждой попыткой (до 10-ой), так что при большой загрузке сети и частом возникновении коллизий происходит притормаживание узлов. Максимальное число попыток передачи одного кадра - 16, после чего MAC-подуровень оставляет данный кадр и начинает передачу следующего кадра, поступившего с LLC-подуровня.
MAC-подуровень узла приемника, который получает биты кадра от своего физического уровня, проверяет поле адреса кадра, и если адрес совпадает с его собственным, то он копирует кадр в свой буфер. Затем он проверяет, не содержит ли кадр специфические ошибки: по контрольной сумме (FCS error), по максимально допустимому размеру кадра (jabber error), по минимально допустимому размеру кадра (runts), по неверно найденным границам байт (alignment error). Если кадр корректен, то его поле данных передается на LLC-подуровень, если нет - то отбрасывается.