Канальный уровень

Задача Канального уровня (data link layer) в локальной сети – компоновать передаваемые биты данных в виде фреймов, или кадров (frame). Каждый фрейм определенным образом форматирован – так, чтобы для надежной передачи данных от узла к узлу информационные пакеты были упорядочены. Этот уровень кодирует данные в виде фреймов, после чего отформатированные фреймы поступают на Физический уровень, где передающий узел может отправить их в коммуникационную среду (например, в кабель). Принимающий узел получает фрейм от Физического уровня, декодирует электрический сигнал, представляющий разряды данных, преобразует отдельные разряды во фрейм и проверяет наличие ошибок во фрейме.

Канальный уровень представляет информационные разряды в виде «фрейма» канального уровня, который содержит поля с адресной и управляющей информацией. Таким образом, фрейм содержит:

■ признак начала фрейма (start of frame, SOF);

■ адрес устройства или передающего узла, отправляющего фрейм (адрес источника);

■ адрес устройства или принимающего узла, получающего переданный фрейм (адрес назначения);

■ административную или управляющую информацию (для контроля коммуникационного процесса);

■ данные;

■ информацию для обнаружения ошибок (контрольные данные);

■ трейлер (концевик) или признак конца фрейма (end of frame, EOF).

Для установления связи между двумя узлами сначала передается небольшой набор сигналов, используемых для синхронизации потока данных. После того, как соединение установлено, Физические уровни обоих узлов оказываются связанными через среду передачи данных (например, через кабель), а их Канальные уровни связаны логически благодаря используемым протоколам. Как только логический канал установлен, принимающий Канальный уровень может декодировать сигнал и преобразовывать его в отдельные фреймы.

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

Для обнаружения ошибок на Канальном уровне используется контроль циклическим избыточным кодом (cyclic redundancy check, CRC). Этот метод распознавания ошибок позволяет вычислить некоторое контрольное значение для содержимого всех информационных полей, имеющихся во фрейме (SOF, адреса, управляющие разряды, данные, контрольную сумму и EOF). На Канальном уровне передающего узла полученное значение вставляется в конец фрейма и затем проверяется на этом же уровне принимающего узла. По мере того, как фреймы поступают на следующий уровень, Канальный уровень обеспечивает очередность фреймов – т. е. они должны передаваться в том же порядке, в котором и принимаются.

Канальный уровень содержит два важных подуровня: более высокий – управление логическим соединением (logical link control, LLC) и более низкий – протокол управления доступом к передающей среде (media access control, MAC).

Подуровень LLC обеспечивает надежность коммуникаций путем установки аннала передачи данных между двумя узлами и поддержки устойчивости этого канала. Подуровень MAC распознает физический адрес (или адрес устройства) иногда называемый MAC-адресом, содержащийся в каждом фрейме. Например, на некоторой рабочей станции подуровень MAC проверяет каждый фрейм, получаемый этой станцией, и передает фрейм более высокому уровню лишь в том случае, если адрес совпадает. В противном случае фрейм отбрасывается. Кроме того, подуровень MAC управляет совместной работой множества устройств внутри одной сети.

Примечание

Большинство сетевых устройств имеют уникальный адрес, «зашитый» в микросхему сетевого интерфейса. Этот адрес представлен некоторым шестнадцатеричным числом (например, 0004AC8428DE). Первая половина адреса предназначена для обозначения конкретного производителя оборудования, а вторая, обычно формируемая самим производителем, является уникальной для интерфейса или устройства. Некоторые производители во второй половине адреса используют также код, идентифицирующий тип устройства – компьютер, мост, маршрутизатор или шлюз. Некоторые сетевые устройства (например, серверы с двумя сетевыми адаптерами) имеют несколько интерфейсов и, следовательно, несколько физических подключений к сети. Каждый сетевой интерфейс такого устройства имеет уникальный адрес, и это устройство идентифицируется в сети с помощью нескольких уникальных адресов, принадлежащим конкретным сетевым интерфейсам.

Совет

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

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

Два типа сервисов используются для взаимодействия подуровня LLC и следующего, более высокого уровня стека – Сетевого уровня. Первый тип операций (Туре 1) представлен службой без установки соединения (connectionless service), которая не требует наличия логического соединения между передающим и принимающим узлами. В этом случае не выполняется проверка очередности фреймов (чтобы они принимались в том же порядке, в котором передаются), отсутствует подтверждение приема фрейма и исправление ошибок.

Операции второго типа (Туре 2) представлены службой с установлением соединения (connection-oriented service), для которой перед началом фактической передачи данных устанавливается логическая связь между передающим и принимающим узлами. Каждый фрейм содержит порядковый номер, который проверяется принимающим узлом, и это гарантирует то, что фреймы обрабатываются в том же порядке, в котором они были посланы. Установленный канал связи обеспечивает скорость передачи информации (чтобы передающий узел не посылал данные чаще, чем их мог обработать принимающий узел). Принимающий узел дает подтверждение передающему узлу в получении посланной информации. При возникновении ошибок данные передаются повторно.