1.3.2. Уровень соединения

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

Реализация уровня соединения

Для каждого варианта физической структуры сети необходимо создавать отдельный уровень соединения. Информация о физической основе сети (Ethernet, ARCNET или token ring) содержится на физическом уровне. Чтобы подключить компьютер к сети, требуется вставить в него сетевую карту, рассчитанную на работу со строго определенным физическим типом сети. Конструкция сетевой карты Ethernet отличается от конструкции карты для ARCNET. Сетевая карта в компьютере выполняет функции уровня соединения в большинстве сетей. Другими словами, сетевая карта в компьютере играет роль сетевого уровня соединения.

Кадр данных

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

Представьте, что вы подключили два одинаковых компьютера к двум различным сетям: Ethernet и token ring. На сетевом уровне все данные будут идентичны. Но на физическом уровне и уровне соединения формат данных будет совершенно различным. Посылая данные в сеть Ethernet, уровень соединения преобразует их совершенно иным образом, нежели при посылке в token ring. Содержимое кадра данных диктуется требованиями физического уровня сети, то есть сетевой технологией. Физический уровень независим от формата данных, циркулирующих между сетевым уровнем и уровнем соединения. Точно так же сетевой уровень независим от представления данных в кадрах между уровнем соединения и физическим уровнем.

Основная функция уровня соединения — обеспечивать целостность данных, поэтому формат кадра включает необходимую для этого информацию. Пользователи часто считают, что главная цель уровня соединения — разделять данные на кадры. Однако формирование кадров — лишь способ контролировать ошибки данных на канале связи.

Контроль целостности данных

Данные форматируются сетью в кадры с целью контролировать их целостность. На рис. 1.8 изображен кадр данных сети Ethernet.

64 бита

48 бит

48 бит

16 бит

368-12.000 бит

32 бита

Заголовок

Адрес

получателя

Адрес

отправителя

Тип кадра

Данные

Контрольная сумма(CRC)

Рис. 1.8. Формат кадра данных Ethernet

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

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

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