Назначение, функции и услуги канального уровня модели ISO/OSI
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает в кадры данных, проверяет на целостность, если нужно исправляет ошибки и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня. На этом уровне работают коммутаторы, мосты.
Основной задачей канального уровня обеспечить сервис сетевому уровню. Назначение этого сервиса - помочь передать данные процесса на сетевом уровне одной машины процессу на сетевой уровень другой машины.
Канальный уровень может создаваться для различного сервиса, который может варьироваться от системы к системе. Однако, есть три общие вида сервиса:
Сервис без уведомления и без соединения.
Сервис с уведомлением и без соединения.
Сервис с уведомлением и с соединением.
Сервис без уведомления и без соединения не предполагает, что прием переданного кадра должен подтверждаться, что до начала передачи должно устанавливаться соединение, которое после передачи должно разрываться. Если в результате помех на физическом уровне кадр будет потерян, то никаких попыток его восстановить на канальном уровне не будет. Этот класс сервиса используется там, где физический уровень обеспечивает высокую надежность при передаче так, что восстановление при потери кадров можно оставить на верхние уровни. Он также применяется при передаче данных в реальном времени там, где лучше потерять часть данных, чем увеличить задержку в их доставке. Например, передача речи. Большинство ЛВС использует этот класс сервиса на канальном уровне.
Следующий класс сервиса - уведомление без соединения. В этом классе получение каждого посланного кадра должно быть подтверждено. Если подтверждения не пришло в течение определенного времени, то кадр должен быть послан опять. Этот класс сервиса используется над ненадежной физической средой передачи, например, беспроводной.
Наиболее сложный класс сервиса на канальном уровне - сервис с уведомлением и соединением. Этот класс сервиса предполагает, что до начала передачи между машинами устанавливается соединение и данные передаются по этому соединению. Каждый передаваемый кадр нумеруется и канальный уровень гарантирует, что он будет обязательно получен и только один раз и все кадры будут получены в надлежащей последовательности. При сервисе без соединения этого гарантировать нельзя потому, что потеря подтверждения получения кадра приведет к его пересылке так, что появиться несколько идентичных кадров.
Сервис, создаваемый канальным уровнем для сетевого, опирается на сервис, создаваемый физическим уровнем. На физическом уровне протекают потоки битов. Посланное количество битов не обязательно равно принятому, значение посланного бита так же не обязательно равно принятому. Все это требует специальных усилий на канальном уровне по обнаружению и исправлению ошибок.
Типовой подход к решению этой проблемы - разбиение потока битов на кадры, подсчет контрольной суммы для каждого кадра при посылке данных. При приеме контрольная сумма вычисляется для каждого кадра заново и сравнивается с той, что храниться в кадре. Если они различаются, то это признак ошибки передачи. Канальный уровень должен принять меры к исправлению ошибки, например, сбросить плохой кадр, послать сообщение об ошибке тому кто прислал этот кадр. Другой важной проблемой, которая решается на канальном уровне - управление потоком. Дело в том, что вполне может случиться, что отправитель будет слать кадры столь часто, что получатель не будет успевать их обрабатывать. Это может случиться если, например, машина-отправитель более мощная или загружена слабее, чем машина-получатель.
Для борьбы с такими ситуациями вводят управления потоком. Это управление предполагает обратную связь между отправителем и получателем, которая позволяет им урегулировать такие ситуации. Есть много схем управления потоком, но все они в основе своей используют следующий сценарий. Прежде чем отправитель начнет передачу, он спрашивает у получателя сколько кадров тот может принять. Получатель сообщает ему определенное число кадров. Отправитель после того, как передаст это число кадров, должен приостановить передачу и спросить получателя опять получателя опять как много кадров тот может принять и т.д.
Статическое выделение канала.
Есть два основных подхода к мультиплексированию нескольких конкурирующих пользователей на одном канале - частотное разделение (FDM-Frequency Division Multiplexing).Частотное разделение хорошо работает в условиях, когда число пользователей фиксировано и каждый порождает плотную загрузку канала. Тогда каждому из них выделяется своя полоса частот, которую он использует независимо от других.
Однако, когда число пользователей велико или величина переменная, или когда трафик очень не регулярный,у FDM появляются проблемы. Если весь диапазон разделить на N полос и лишь не многим из N потребуется передача, то большая часть пропускной способности будет теряться. Если число пользователей, кому необходимо передать данные, больше N, то часть из них получит отказ из-за недостатка пропускной способности, хотя часть тех кому канал будет предоставлен может ничего не передавать или не принимать.
Таким образом, предположение о постоянстве числа пользователей в среднем и статическое разделение канала на подканалы является не эффективным решение. Положение усугубляет то обстоятельство, что трафик в сетях, как правило, носит взрыво-образный характер ( отличие пиковых нагрузок от средних достигает 1000 раз). Поэтому статическое распределение было бы не эффективно, т.к. большую часть времени канал простаивал.
Те же самые рассуждения можно применить к временному разделению (TDM-Time Division Multiplexing). Если каждому пользователю выделить свой слот и тот его не использует, то это пустая трата пропускной способности канала. Таким образом, ни один из известных статических методов не позволяет эффективно распределять нагрузку. Поэтому мы сосредоточимся на динамических методах.
Динамическое выделение канала.
Рассмотрим несколько моделей.
Многостационная модель. В рамках этой модели рассматривается N независимых станций, каждая из которых порождает кадры с вероятностью λΔt за период Δt, где λ - некоторый параметр. После отправки кадра станция блокируется и ничего не предпринимает, пока кадр не будет успешно передан. Модель единого канала. Для всех коммутаций используется один канал. Все станции эквивалентны.
Модель с коллизиями. Если два кадра передаются одновременно, они перекрываются и возникает коллизия. Все станции могут детектировать коллизии. Эти кадры должны быть переданы еще раз. За исключением коллизий других ошибок нет.
Временные модели:
Модель непрерывного времени. Передача кадров может произойти в любой момент времени. Время непрерывно.
Модель тактированного времени. Время разбивается на дискретные интервалы - такты (slots). Передача кадров происходит всегда в начальный момент такта.
Модели с несущей:
Модель с прослушиванием несущей. Прежде чем использовать канал, станции запрашивают состояние канала. Если он занят, то все станции перестают его использовать до тех пор, пока он не освободится.
Модель без прослушивания несущей. Станции не запрашивают состояние канала перед началом передачи.
В 70-хгодах Норман Абрамсон со своими коллегами из университета Гаваи предложил простой способ распределения канала. Абрамсон назвал систему ALOHA - это приветствие по гавайски, состоявшей из наземных радиостанций, связывающих острова между собой. Идея была позволить в вещательной среде любому количеству пользователей неконтролируемо использовать один и тот же канал.
Рассмотрим два варианта системы: чистая ALOHA и слотированная, т.е. разбитая на слоты. Основное различие - в первом случае никакой синхронизации пользователей не требуется, во втором она нужна.
Чистая ALOHA
Идея чистой ALOHA проста - любой пользователь пытается передать сообщение. Благодаря тому, что в вещательной среде он всегда имеет обратную связь, то он видит возникновение конфликта при передаче. Эта обратная связь в среде LAN происходит практически мгновенно, в системах спутниковой связи задержка составляет около 270 mсек.
Обнаружив конфликт, пользователь ожидает некоторый случайный отрезок времени после чего повторяет попытку. Ожидание должно быть случайным, иначе конкуренты будут повторять попытки в одно и то же время, что приведет к блокировке. Системы подобного типа, где пользователи конкурируют за получение общего канала, называются системами с состязаниями.
Неважно когда произошел конфликт когда первый бит одного кадра наложился на последний бит другого кадра или как-то иначе, оба кадра считаются испорченными и должны быть переданы повторно. Контрольная сумма не позволяет различать разные случаи наложения.
Какова эффективность системы ALOHA? Какая часть кадров избежала коллизий? Рассмотрим следующую модель. Есть неограниченное число пользователей, работающих на компьютерах. Все что они могут делать это - либо набирать текст, либо ждать пока набранный текст передается. Когда пользователь заканчивает набирать очередную строку, он останавливается и ждет ответа от системы. Система пытается передать эту строку. Когда она сделает это успешно, пользователь видит отклик и может продолжать работу.
Максимальная пропускная способность составляет примерно 18%.
Слотированная ALOHA.
В 1972 году Робертс предложил модификацию чистой ALOHA. Все время разделяют на слоты - один кадр на слот. Передача может начаться только в начале такта (слота). Когда у узла появляется новый пакет, он осуществляет его передачу в начале следующего такта. Если в течение этого временного передается только один пакет, то передача является успешной. В противном случае возникает коллизия, и узел осуществляет повторную передачу через случайный период времени.
Протоколы, в которых станции контролируют несущую называются протоколами с контролем несущей (Carrier Sense, CS). Рассмотрим некоторые виды этих протоколов.
Рассмотрим несколько видов протоколов семейства CSMA.
1-устойчивый (1-persistent) CSMA Когда станция готова к передаче данных, она прослушивает канал, чтобы определить, не передаёт ли данные кто-либо другой. Если канал занят, станция ждёт, когда он освободится. Если же канал свободен, станция передаёт информацию. При возникновении коллизии станция ждёт случайный промежуток времени, а потом продолжает действовать по вышеописанному алгоритму. Протокол называется 1-устойчивый, потому что в случае свободного канала станция осуществляет передачу с вероятностью 1.
Неустойчивый (nonpersistent) CSMA Этот случай немного отличается от предыдущего. Здесь опять перед передачей данных станция прослушивает канал. Но в случае, если канал уже используется, то станция ожидает случайный период времени и повторяет алгоритм.
p-устойчивый (p-persistent) CSMA Данный вид применяется к тактированному каналу. Если канал свободен, то передача осуществляется с вероятностью p. Соответственно с вероятностью q = 1 - p станция будет ждать следующего такта. Если и тогда канал свободен, то передача данных или ожидание следующего такта происходят с вероятностью p и q соответственно. Этот процесс продолжается до тех пор, пока либо кадр не будет передан, либо пока другая станция не начнёт передачу. В последнем случае возникает коллизия; станция ожидает случайный период времени и пытается снова осуществить передачу данных. Если же при начале прослушивания канала он оказывается занятым, то станция ждёт до начала следующего такта и повторяет алгоритм.
Устойчивый и неустойчивый CSMA являются непосредственным улучшением протоколов семейства ALOHA, поскольку в них для определения состояния канала осуществляется его прослушивание.
Эти протоколы являются дальнейшим улучшение протоколов, рассмотренных в предыдущем пункте. Здесь при возникновении коллизии станции сразу же прекращают передачу данных (вместо того, чтобы продолжать передачу, что бессмысленно, потому что данные всё равно будут испорчены). Это позволяет сэкономить и время, и полосу пропускания.
При обнаружении коллизии станция прекращает передачу данных и ждёт случайное время. По истечении данного времени станция опять пытается передать данные.
Суть доступа с передачей маркера заключается в следующем: пакет особого типа, маркер (token) циркулирует по кольцу от компьютера к компьютеру. Маркер — это специальное сообщение, которое передает временное управление средой передачи устройству, владеющему маркером. Чтобы послать данные в сеть, любой из компьютеров сначала должен дождаться прихода свободного маркера и захватить его.
Когда какой-либо компьютер "наполнит" маркер своей информацией и пошлет его по сетевому кабелю, другие компьютеры уже не могут передавать данные. Так в каждый момент времени только один компьютер будет использовать маркер, в сети не возникнет ни состязания, ни коллизий, ни временных пауз.
Имеется несколько протоколов передачи маркера. Двумя стандартами ЛС, использующими передачу маркера, являются IEEE 802.4 Token Bus и 802.5 Token-Ring. В сети Token Bus используется управление доступом с передачей маркера и физическая или логическая шинная топология, в то время как в сети Token-Ring используется управление доступом с передачей маркера и физическая или логическая кольцевая топология. Другим стандартом передачи маркера является Fiber-distributed interface (FDDI) — распределенный волоконно-оптический интерфейс данных.
Сети с передачей маркера следует использовать при наличии зависящего от времени приоритетного трафика, типа цифровых видео— и аудиоданных, или при наличии очень большого количества пользователей.
Доступ по приоритету запроса — относительно новый метод доступа, разработан для стандарта сети Ethernet со скоростью передачи данных 100 Мбит/с — 100VG-AnyLAN. Он стандартизован IEEE в категории 802.12.
Этот метод доступа основан на том, что все сети 100VG-AnyLAN строятся только из концентраторов и оконечных узлов. Концентраторы управляют доступом к кабелю, последовательно опрашивая все узлы в сети и выявляя запросы на передачу. Концентратор должен знать все адреса, связи и узлы и проверять их работоспособность. Оконечным узлом, в соответствии с определением 100VG-AnyLAN, может быть компьютер, мост, маршрутизатор или коммутатор.