Канальный уровень
Содержание
Канальный уровень
Отвечает за передачу кадров между компьютерами, непосредственно связанными каналом передачи данных. Реализуется, в отличие от сетевого, не программно, а внутри сетевой карты. Так все функции канального уровня реализуются в устройствах: адаптерах, модемах, сетевых картах и т.д.
Основные задачи
- передача кадров между непосредственно связанными компьютерами;
- управление доступом к линии связи (иногда выделяют как отдельный подуровень (MAC));
- управление потоком;
- обнаружение и исправление ошибок.
Типы каналов (среды передачи данных)
- точка-точка (двухточечные);
- широковещательные (Ethernet, WiFi, Спутник);
- последовательные (переключаемые).
Широковещательные, т.е., когда один канал используется несколькими системами для взаимодействия. В случае широковещательного канала существует проблема доступа к передающей среде. Решение — управление доступом. Иногда говорят, что канальном уровне есть подуровень доступа к среде.
Обнаружение и исправление ошибок
Контроль четности
Вычисление контрольной суммы
Алгоритм вычисления контрольной суммы CRC (Cyclic Redundancy Code — циклический избыточный код) — способ цифровой идентификации некоторой последовательности данных, который заключается в вычислении контрольного значения её циклического избыточного кода.С точки зрения математики, контрольная сумма является типом хеш-функции, используемой для вычисления контрольного кода — небольшого количества бит внутри большого блока данных, например, сетевого пакета или блока компьютерного файла, применяемого для обнаружения ошибок при передаче или хранении информации. Результат вычисления контрольной суммы добавляется в конец блока данных непосредственно перед началом передачи или сохранения данных на каком-либо носителе информации. Впоследствии он проверяется для подтверждения её целостности. Популярность контрольной суммы обусловлена тем, что подобная проверка просто реализуема в двоичном цифровом оборудовании, легко анализируется и хорошо подходит для обнаружения общих ошибок, вызванных наличием шума в каналах передачи данных.
Алгоритм CRC базируется на свойствах деления с остатком двоичных многочленов, то есть хеш-функция является по сути остатком от деления многочлена, соответствующего входным данным, на некий фиксированный порождающий многочлен (примитивный полином).
При «правильном» выборе порождающего многочлена (делителя), остатки от деления на него будут обладать нужными свойствами хеширования — хорошей перемешиваемостью и быстрым алгоритмом вычисления. Второе обеспечивается тем, что степень порождающего многочлена обычно пропорциональна длине байта или машинного слова (например 8, 16 или 32).