При передачи данных канального уровня решаются ряд проблем, свойственных только этому уровню:
- 1. реализация сервиса для сетевого уровня;
- 2. объединение битов, которые поступают из физического уровня, в кадры;
- 3. обработка ошибок передачи;
- 4. управление потоком кадров.
Основное задание канального уровня — обеспечить сервис сетевому уровню. Канальный уровень может обеспечивать разные классы сервиса. Три общих класса сервиса:
1. Сервис без сообщения и без соединения;
2. Сервис с сообщением и без соединения;
3. Сервис с сообщением и с соединением.
Сервис без сообщения и без соединения не допускает, что прием переданного кадра должен подтверждаться, что к началу передачи должно устанавливаться соединение, что после передачи должно разрываться. Если в результате препятствий на физическом уровне кадр будет затерян, то никаких попыток на канальном уровне его возобновить не будет. Этот класс сервиса используется там, где физический уровень обеспечивает высокую надежность при передаче. В этом случае возобновления при потери кадров можно положить на верхние уровни. Этот класс сервиса также применяется при передаче данных в реальном времени там, где лучше потерять часть данных, чем увеличить задержку в их доставке. Например, передача языка. Большинство ЛОМОВ используют этот класс сервиса на канальном уровне.
Следующий класс сервиса — сообщение без соединения. В этом классе получение каждого посланного кадра должно быть подтверждено. Если подтверждение не пришло в течение определенного времени, то кадр должен быть послан опять. Этот класс сервиса используется в ненадежной физической среде передачи, например, беспроволочной.
Наиболее сложный класс сервиса на канальном уровне — сервис с сообщением и соединением. Этот класс сервиса допускает, что к началу передачи между машинами устанавливается соединение, и данные передаются по этому соединению. Каждый переданный кадр нумеруется и канальный уровень гарантирует, что кадр будет обязательно получен и только один раз, а все кадры будут получены в надлежащей последовательности. При сервисе без соединения этого гарантировать нельзя потому, что потеря сообщения о получении кадра приведет к его пересылке так, что может появиться несколько идентичных кадров.
При сервисе с сообщением и соединением передача разбивается на три этапа. На первом этапе устанавливают соединение: на обеих машинах инициирующие счетчики, которые отслеживают какие кадры были приняты, а какие нет. На втором этапе передают один или несколько кадров. На третьем — соединения разрывают: переменные, счетчики, буферы и другие ресурсы, использованные для поддержки соединения, освобождаются.