answers2010 (1131265), страница 11
Текст из файла (страница 11)
Этот метод позволяет обнаружить групповые ошибки длины n. Против групповых ошибок длины n+1 он бессилен. В общем случае вероятность правильной передачи при длине групповой ошибки n равна 2-n. Поэтому на практике применяют другую технику, которая называется циклическим избыточным кодом (Cyclic Redundancy Code), или CRC-кодом.
CRC-коды построены на рассмотрении битовой строки как строки коэффициентов полинома. Битовую строку длины k рассматривают как коэффициенты полинома степени k-1. Самый левый бит строки - коэффициент при старшей степени. Например, строка 110001 представляет полином x5+x4+x0.
Использование полиномиальных кодов при передаче заключается в следующем. Отправитель и получатель заранее договариваются о конкретном генераторе полиномов G(x), у которых коэффициенты при старшем члене и при младшем члене должны быть равны 1. Пусть степень G(x) равна r. Для вычисления контрольной суммы блока из m бит должно быть r<m. Идея состоит в том, чтобы добавить контрольную сумму к передаваемому блоку, рассматриваемому как полином М(х), так, чтобы передаваемый блок с контрольной суммой был кратен G(x). Когда получатель получает блок с контрольной суммой, он делит его на G(x). Если есть остаток, то были ошибки при передаче.
Алгоритм вычисления контрольной суммы:
Здесь r - степень G(x).
-
Добавить r нулей в конец блока так, что он содержал m+r разрядов и соответствовал полиному xr M(x).
-
Разделить по модулю 2 полином xr M(x) на G(x).
-
Вычесть остаток (длина которого всегда не более r разрядов) из строки, соответствующей xr M(x), по модулю 2. Результат и есть блок с контрольной суммой (назовем его Т(х)).
32. Проблемы передачи данных на канальном уровне (Сервис, предоставляемый сетевому уровню, Разбиение на кадры, Контроль ошибок, Управление потоком). Протоколы скользящего окна.
Основная задача канального уровня - обеспечить сервис сетевому уровню по передаче и приему данных. Назначение этого сервиса - передать данные от процесса на сетевом уровне одной машины процессу на сетевой уровень другой машины.
три общих видов сервиса:
-
Сервис без уведомления и без соединения
-
Сервис с уведомлением и без соединения
-
Сервис с уведомлением и с соединением
Сервис, создаваемый канальным уровнем для сетевого уровня, опирается на сервис, создаваемый физическим уровнем. На физическом уровне принимают и передают потоки битов. Отправленное количество битов не обязательно должно быть равно принятому количеству битов, значение посланного бита также не обязательно должно быть равно принятому значению бита. Поэтому на канальном уровне нужны специальные действия по обнаружению и исправлению таких ошибок.
Типовой подход к решению подобных проблем - разбиение потока битов на кадры, подсчет контрольной суммы для каждого кадра и передача этой суммы вместе с кадром данных. На канальном уровне должны быть приняты меры к исправлению ошибки, например, сбросить плохой кадр и послать сообщение об ошибке тому, кто прислал этот кадр.
четыре основных метода:
-
счетчик символов
-
вставка специальных стартовых и конечных символов
-
вставка стартовых и концевых битов
-
нарушение кодировки на физическом уровне
На практике используют, как правило, комбинацию этих методов.
кадр-подтверждение, таймеры, нумерация кадров
может случиться, что отправитель будет посылать кадры столь часто, что получатель не будет успевать их обрабатывать. Для борьбы с такими ситуациями вводят специальный механизм управления потоком. Этот механизм предполагает обратную связь между отправителем и получателем, которая позволяет им урегулировать темп передачи. Прежде чем отправитель начнет передачу, он спрашивает у получателя, сколько кадров тот может принять. Получатель сообщает ему определенное число. Отправитель, после того как передаст это число кадров, должен приостановить передачу и спросить у получателя еще раз, сколько кадров тот может принять, и т.д.
Протоколы скользящего окна
Для передачи в обоих направлениях можно потребовать на физическом уровне двух симплексных каналов. Один для передачи кадров, другой - для передачи подтверждений. Однако использование канала только для подтверждений - довольно дорогое удовольствие. Можно смешивать кадры с данными и кадры с подтверждениями на одном канале. Это, конечно. решение проблемы, но по-прежнему на подтверждения будет тратиться полезная пропускная способность канала.
Получатель не сразу отправляет подтверждение, а ожидает от сетевого уровня очередного пакета. Как только такой пакет возникает, то канальный уровень помещает в кадр с пакетом также уведомление о получении в специальное поле ack. Такой прием позволяет полнее использовать имеющуюся пропускную способность канала. Меньше кадров - меньше прерываний на канальном уровне на их обработку, меньше затрат на буферизацию.
Возникает проблема таймаута. Рассмотренный здесь протокол является представителем класса протоколов скользящего окна. Кроме вышесказанного, протоколы этого класса делают следующее: у отправителя и получателя есть определенная константа n - число кадров, которое отправитель может послать, не ожидая подтверждения для каждого кадра. По мере получения подтверждений отправленные кадры будут сбрасываться из буфера отправителя, и буфер будет пополняться новыми кадрами.
У окон отправки и получения есть верхняя и нижняя границы. Порядковые номера кадров в окне отправки - кадры отправленные, но не подтвержденные. Как только от сетевого уровня поступил еще один пакет, ему присваивают первый свободный наибольший номер, и верхняя граница окна отправителя поднимается. Как только приходит подтверждение, нижняя граница окна поднимается. Таким образом, в окне все время находятся неподтвержденные кадры.
Протокол скользящего окна в 1 бит - Такой протокол использует старт-стопный режим и, послав кадр, не шлет другой, пока не придет подтверждение на первый.
Протокол с возвратом на n кадров и протокол с выборочным повтором
разрешить отправителю отправлять до w кадров, не дожидаясь их подтверждения
Эта техника известна как конвейер. Ее применение в случае ненадежного канала наталкивается на ряд проблем. Первая - что делать, если в середине потока пропадет или попадется поврежденный кадр? Получатель уже получит большое количество кадров к тому моменту, когда отправитель обнаружит, что что-то произошло. Когда получатель получил поврежденный кадр, он его должен сбросить, что делать с последующими кадрами?
Есть два приема для решения этих вопросов: откат и выборочный повтор. При откате все кадры, поступившие после поврежденного кадра, сбрасываются и не подтверждаются. Отправитель по тайм-ауту повторно отправляет все кадры, начиная с первого неподтвержденного кадра. При выборочном повторе у получателя длина окна такая же, как и у отправителя. Отправитель отмечает неподтвержденный кадр и посылает его еще раз. Получатель не передает на сетевой уровень последовательность пакетов, если в ней есть разрывы.
33. Проблемы передачи данных на канальном уровне (Сервис, предоставляемый сетевому уровню, Разбиение на кадры, Контроль ошибок, Управление потоком). Пример протокола канального уровня (HDLC)
Основная задача канального уровня - обеспечить сервис сетевому уровню по передаче и приему данных. Назначение этого сервиса - передать данные от процесса на сетевом уровне одной машины процессу на сетевой уровень другой машины.
три общих видов сервиса:
-
Сервис без уведомления и без соединения
-
Сервис с уведомлением и без соединения
-
Сервис с уведомлением и с соединением
Сервис, создаваемый канальным уровнем для сетевого уровня, опирается на сервис, создаваемый физическим уровнем. На физическом уровне принимают и передают потоки битов. Отправленное количество битов не обязательно должно быть равно принятому количеству битов, значение посланного бита также не обязательно должно быть равно принятому значению бита. Поэтому на канальном уровне нужны специальные действия по обнаружению и исправлению таких ошибок.
Типовой подход к решению подобных проблем - разбиение потока битов на кадры, подсчет контрольной суммы для каждого кадра и передача этой суммы вместе с кадром данных. На канальном уровне должны быть приняты меры к исправлению ошибки, например, сбросить плохой кадр и послать сообщение об ошибке тому, кто прислал этот кадр.
четыре основных метода:
-
счетчик символов
-
вставка специальных стартовых и конечных символов
-
вставка стартовых и концевых битов
-
нарушение кодировки на физическом уровне
На практике используют, как правило, комбинацию этих методов.
кадр-подтверждение, таймеры, нумерация кадров
может случиться, что отправитель будет посылать кадры столь часто, что получатель не будет успевать их обрабатывать. Для борьбы с такими ситуациями вводят специальный механизм управления потоком. Этот механизм предполагает обратную связь между отправителем и получателем, которая позволяет им урегулировать темп передачи. Прежде чем отправитель начнет передачу, он спрашивает у получателя, сколько кадров тот может принять. Получатель сообщает ему определенное число. Отправитель, после того как передаст это число кадров, должен приостановить передачу и спросить у получателя еще раз, сколько кадров тот может принять, и т.д.
Протокол HDLC
использует технику вставки специальных последовательностей битов и является бит–ориентированным протоколом
типовая структура кадра протокола HDLC.
-
Поле Address используют для адресации терминала, если их несколько на линии. Для линий точка-точка это поле используется для того, чтобы отличать команду от ответа.
-
Поле Control используется для последовательных номеров кадров, подтверждений и других нужд.
-
Поле Data может быть сколь угодно большим и используется для передачи данных. Надо только иметь в виду, что чем длиннее это поле, тем больше вероятность повреждения кадра на линии.
-
Поле Checksum - это поле используется для передачи CRC-кода.
Существует три вида кадров: Information, Supervisory, Unnumbered. Как видно из размера поля Seq, в окне отправителя может находиться до 7 неподтвержденных кадров. Поле Next используется для отправки подтверждения вместе с передаваемым кадром. Подтверждение может быть в форме номера последнего правильно переданного кадра, а может быть в форме первого, еще не переданного кадра. Какой вариант будет использован - зависит от параметров протокола.
Разряд P/F используют при работе с группой терминалов. Когда компьютер приглашает терминал к передаче, он устанавливает этот разряд в P (все кадры, посылаемые терминалами, имеют здесь P). Если это последний кадр, посылаемый терминалом, то значение этого разряда устанавливается в F.
Кадры Supervisory бывают четырех типов.
-
Тип 0 - уведомление в ожидании следующего кадра (RECEIVE READY). Используется, когда нет встречного трафика, чтобы передать уведомление в кадре с данными.
-
Тип 1 - негативное уведомление (REJECT) - указывает на ошибку при передаче. Поле Next указывает номер кадра, начиная с которого надо перепослать кадры.
-
Тип 2 - RECEIVE NOT READY. Подтверждает все кадры, кроме указанного в Next. Используется, чтобы сообщить источнику кадров о необходимости приостановить передачу в силу каких-то проблем у получателя. После устранения этих проблем получатель шлет RECEIVE REDAY, REJECT или другой надлежащий управляющий кадр.
-
Тип 3 - SELECTIVE REJECT - указывает на необходимость перепослать только кадр, указанный в Next. LAPB и SDLC не используют кадры этого типа.
Третий класс кадров - Unnumbered. Кадры этого класса иногда используются для целей управления, но чаще для передачи данных при ненадежной передаче без соединения.
Все протоколы имеют команду DISConnect - для сообщения о разрыве соединения.
34. Архитектура Frame Relay и ее канальный уровень
Ретрансляция кадров (Frame Relay, далее FR) – это СПД с коммутацией пакетов для сетей класса WAN, т.е. сетей объединяющих несколько LAN. Первоначально разработка стандарта FR предназначалась для цифровых СПД с интегрированным сервисом (ISDN – Integrated Services Digital Networks). К числу достоинств протокола Frame Relay прежде всего необходимо отнести совместимость с протоколами верхних уровней модели OSI, малое время задержки кадра, простой формат кадров, содержащих минимум управляющей информации, дейтаграммный режим работы, что обеспечивает высокую пропускную способность и небольшие задержки кадров. Надежную передачу кадров технология FR не обеспечивает. СПД FR специально разрабатывались как общественная сеть для соединения частных локальных сетей. Они обеспечивают скорость передачи данных до 2 Мбит/с.
Особенностью технологии FR является гарантированная поддержка основных показателей качества передачи данных - средней скорости передачи данных по виртуальному каналу при допустимых пульсациях трафика. Кроме технологии FR гарантии качества обслуживания на сегодня может предоставить только технология АТМ.
Технология Frame Relay использует для передачи данных технику виртуальных соединений, аналогичную той, которая применялась в СПД АТМ, однако стек протоколов FR передает кадры (при установленном виртуальном соединении) по протоколам только физического и канального уровней, и третий пакетный уровень здесь не используется. При таком подходе уменьшаются накладные расходы при передаче пакетов локальных сетей, так как они вкладываются сразу в кадры канального уровня СПД FR.
Протокол канального уровня FR использует кадры переменной длины и работает только по виртуальным соединениям. Виртуальное соединение может быть постоянным (PVC) или коммутируемым (SVC). Прежде, чем два узла начнут обмениваться информацией, необходимо между ними установить виртуальное соединение.
PVC включает в себя конечные станции, среду передачи и все коммутаторы, расположенные между конечными станциями. После установки PVC для него резервируется определенная часть полосы пропускания каналов, и двум конечным станциям не требуется каждый раз устанавливать или сбрасывать соединение. Благодаря методу статистического мультиплексирования, несколько PVC могут разделять разные полосы одного канала передачи.
Статистическое мультиплексирование – это метод мультиплексирования, при котором полоса пропускания канала распределяется между потоками данных (виртуальными каналами) по мере необходимости.