Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4523.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
375.3 Кб
Скачать

681.3(07)

М545 № 4523

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНТСТВО

ПО ОБРАЗОВАНИЮ

Технологический институт

Федерального государственного образовательного

у чреждения высшего профессионального образования

«Южный федеральный университет»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

по выполнению лабораторных работ

на тему

Изучение работы канальных протоколов

по курсу

Вычислительные системы, сети и телекоммуникации

Для студентов специальности

080801

.

Таганрог 2010

УДК 681.324(07.07)

Составитель А.А. Кавчук

Методические указания по выполнению лабораторных работ на тему "Изучение работы канальных протоколов" по курсу " Вычислительные системы, сети и телекоммуникации". Таганрог: Изд-во ТТИ ЮФУ, 2010. − 40 c.

Приводятся общие сведения о протоколах канального уровня. Рассматриваются два протокола: протокол двоичного синхронного управления BSC и протокол высокоуровневого управления каналом передачи данных HDLC.

Руководство предназначено для студентов очной формы обучения специальности 080801.

Ил.10. Библиогр.: 3 назв.

Рецензент: Б.Ф. Харчистов, канд. техн. наук, доцент кафедры ПИ ТТИ ЮФУ.

Общие сведения о протоколах канального уровня

Канальный уровень (англ. Data Link layer) – второй уровень сетевой модели взаимодействия открытых систем (англ. Open System Interconnection, OSI) – предназначен для обеспечения надежного взаимодействия сетевых устройств, соединенных общей физической средой передачи (линией связи).

Примерами среды передачи может служить двухпроводная витая пара, коаксиальный или волоконно-оптический кабель. Совокупность линии связи и специального оборудования, предназначенного для передачи данных (аппаратуры передачи данных – АПД), составляют канал передачи данных. Для обозначения канала передачи данных широко используется термин «звено передачи данных».

Для описания машины конечного пользователя (ЭВМ или терминала) введено обобщенное понятие «оконечное оборудование данных» (ООД). Некоторые примеры ООД: рабочая станция в системе управления воздушным сообщением; кассовый терминал в универсаме; ЭВМ, используемая для автоматизации производственного процесса на заводе; узел коммутации пакетной сети.

Конфигурация канала передачи данных может быть двухточечной (двухпунктовой) (рис.1), либо многоточечной (многопунктовой, рис.2).

Рис.1. Двухточечная конфигурация канала связи

Рис.2. Многоточечная конфигурация канала связи

В многопунктовой конфигурации к одному каналу подсоединяются более двух устройств передачи/приема данных (ООД). Такая конфигурация имеет место, например, для подсоединения нескольких терминалов, расположенных в некотором удалении друг от друга, к общему центру обработки данных или к оконечному узлу коммутации для выхода в сеть. Двухточечная конфигурация (связь «точка-точка») используется в сетях с произвольной топологией при соединении двух соседних узлов коммутации индивидуальной линией связи.

Канальный уровень обеспечивает передачу пакетов данных, поступающих от протоколов верхних уровней, узлу назначения, адрес которого также указывает протокол верхнего уровня. Канальный уровень оперирует единицами данных, называемыми кадрами (англ. frame). Кадр – это логически организованная структура, в которую можно помещать данные. Канальный уровень при передаче формирует кадры из протокольных единиц сетевого уровня, а при приеме разбивает на кадры поток битов, поступающих из физического уровня.

Для описания процедур и логики реализации процесса обмена данными между удаленными объектами используется термин «протокол». Назначение канального протокола (протокола управления каналом передачи данных) – обеспечение надежной и безошибочной передачи данных между устройствами ООД, подсоединенными к одному «ненадежному» (т.е. вносящему ошибки) каналу связи.

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

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

– инициализации (обмен между взаимодействующими станциями служебными сообщениями, подтверждающими готовность к передаче и приему данных. Передающая сторона должна послать принимающей стороне извещение о том, что предполагается обмен данными. Если передающее ООД посылает данные в канал без предварительного уведомления, принимающее ООД, скорее всего, не будет иметь достаточно времени, чтобы настроиться на входящий поток данных, и первые данные сообщения могут быть потеряны);

  • идентификации (обмен между взаимодействующими станциями служебной информацией, подтверждающей правильность соединения);

  • синхронизации (выделение в последовательности передаваемых битов границ знаков и кадров);

  • обеспечения прозрачности (предоставление выше расположенным уровням возможности передачи произвольной последовательности битов или знаков);

  • управления потоком (обеспечение согласования скорости передачи со скоростью приёма);

  • контроля ошибок и управления последовательностью передачи (обнаружение ошибок в передаваемых кадрах и запрос повторной передачи искажённых кадров, обеспечение соответствия последовательности кадров на входе и выходе канала).

В общем случае каждый канальный протокол имеет свой формат кадра, но, как правило, в состав кадра входят поля: синхросигнал, заголовок, данные и контрольная сумма (рис.3).

Синхросигнал

Заголовок

Данные

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

Рис. 3. Кадр синхронных протоколов

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

Чтобы убедиться в необходимости повторной передачи данных, отправитель нумерует отправляемые кадры и для каждого кадра ожидает от приемника так называемой положительной квитанции – служебного кадра, извещающего о том, что исходный кадр был получен и данные в нем оказались корректными.

Время этого ожидания ограничено – при отправке каждого кадра передатчик запускает таймер, и, если по его истечении положительная квитанция не получена, кадр считается утерянным. Приемник в случае получения кадра с искаженными данными может отправить отрицательную квитанцию – явное указание на то, что данный кадр нужно передать повторно.

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

Существуют два подхода к организации процесса обмена квитанциями: с простоями и с организацией «окна».

Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный).

Если же квитанция не приходит в течение тайм-аута, то кадр (или квитанция) считается утерянным и его передача повторяется. В этом случае производительность обмена данными существенно снижается: хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции.

Второй метод называется методом «скользящего окна». В этом методе для повышения коэффициента использования линии связи источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры положительных ответных квитанций. Количество кадров, которые разрешается передавать таким образом, называется размером окна.

Метод скользящего окна более сложен в реализации, чем метод с простоями, так как передатчик должен хранить в буфере все кадры, на которые пока не получены положительные квитанции. Кроме того, требуется отслеживать несколько параметров алгоритма: размер окна, номер кадра, на который получена квитанция, номер кадра, который еще можно передать до получения новой квитанции.

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

Метод скользящего окна имеет два параметра, которые могут заметно влиять на эффективность передачи данных между передатчиком и приемником: размер окна и величина тайм-аута ожидания квитанции. В надежных сетях, когда кадры искажаются и теряются редко, для повышения скорости обмена данными размер окна нужно увеличивать, так как при этом передатчик будет посылать кадры с меньшими паузами. В ненадежных сетях размер окна следует уменьшать, так как при частых потерях и искажениях кадров резко возрастает объем вторично передаваемых через сеть кадров, а значит, пропускная способность сети будет расходоваться во многом вхолостую – полезная пропускная способность сети будет падать.

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

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

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

В процессе синхронизации связи обеспечивается синхронная работа аппаратуры приёмника и передатчика, при которой приёмник осуществляет выборку поступающих информационных битов (т.е. замер уровня сигнала в линии связи) строго в момент их прихода. Синхросигналы настраивают приёмник на передаваемое сообщение ещё до его прихода и поддерживают синхронизацию приёмника с приходящими битами данных.

Большинство протоколов канального уровня допускает использование в кадре поля данных переменной длины. Обычно протоколы определяют максимальное значение, которое может иметь длина поля данных. Эта величина называется максимальной единицей передачи данных (англ. Maximum Transfer Unit, MTU). В некоторых протоколах задается также минимальное значение, которое может иметь длина поля данных.

Канальные протоколы бывают двух типов: знак-ориентированные (такие протоколы называются также символьно-ориентированные или байт-ориентированные) и бит-ориентированные.

Байт-ориентированные протоколы для функций управления применяют структуры определенных знаков некоторого первичного кода. Интерпретация управляющих полей байт-ориентированных протоколов зависит от конкретного кода, то есть байт-ориентированные протоколы являются кодозависимыми. Наиболее широкое применение нашла знак-ориентированная процедура BSC (Binary Synchronous Communication). Эта процедура использует 10 управляющих знаков первичного кода ASCII для управления каналами передачи данных.

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

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

Лабораторная работа №1

Изучение работы байт-ориентированного протокола в режиме «передача данных»

  1. Цель работы

    1. Изучение правил построения и организации функционирования канального протокола BSC.

    2. Работа с канальным протоколом BSC на имитационной модели.

  2. Байт-ориентированный протокол BSC

В середине 60-х годов прошлого столетия фирма IBM ввела универсальную систему управления уровня звена данных для поддержки двухточечных и многоточечных конфигураций – протокол двоичного синхронного управления BSC (англ. Binary Synchronous Control).

BSC является полудуплексным протоколом: передача осуществляется поочередно в обоих направлениях.

BSC является кодозависимым протоколом: каждый переданный знак (байт) должен быть декодирован у получателя с тем, чтобы определить, является ли он управляющим знаком или относится к данным пользователя.

Для управления каналом (звеном данных) протокол BSC использует метод первичный/вторичный (или главный/подчиненный): одно из устройств ООД выделяется в качестве первичного (главного) узла в канале. Главный узел управляет всеми остальными устройствами ООД (подчиненными), подключенными к каналу. Все обмены данными осуществляются с главным узлом: главный узел определяет, когда, с каким подчиненном узлом и в каком направлении (от главного узла к подчиненному или наоборот) будет идти обмен.

Метод первичный /вторичный требует реализации трех фаз связи:

  1. установление логического соединения. Главный узел выбирает подчиненный узел для передачи ему данных или для приема данных от него;

  2. передача данных. Производится передача данных по выбранному направлению. В этой фазе управляет обменом передающая сторона;

  3. разъединение логического соединения.

В процедурах (фазах) управления каналом протокол BSC использует управляющие знаки (байты) кода ASCII, разработанного Национальным институтом США:

  • КП (Конец передачи);

  • НТ (Начало текста);

  • КБ (Конец блока);

  • КТ (Конец текста);

  • ДА (Положительный ответ);

  • НЕТ (Отрицательный ответ);

  • КТМ (Запрос повторной передачи);

  • СИН (Символ синхронизации).

Управляющие знаки используются:

  • для установления синхронизации;

  • для установления и разрыва логического соединения;

  • для обрамления поля данных кадра;

  • для проверки правильности принятия данных;

  • для подтверждения или отрицания приема.

Синхронизация достигается за счет того, что передающая сторона добавляет два или более управляющих символа СИН перед каждым кадром. Символы СИН выполняют две функции: во-первых, они обеспечивают приемнику побитовую синхронизацию, во-вторых, как только битовая синхронизация достигается, они позволяют приемнику начать распознавание границ символов СИН. После того как приемник начал отделять один символ от другого, можно задавать границы начала кадра с помощью другого специального символа.

Процедуры установления логического соединения инициируются кадром, содержащим адрес подчиненного узла (ПУ):

КТМадрес ПУ КП СИН СИН.

Управляющий символ КП переводит все подчиненные узлы канала в режим управления: они выполняют анализ поля адрес ПУ. В протоколе BSC используется следующий способ адресации ПУ: код адреса ПУ, представленный в младших разрядах поля адреса, указывает, что данный ПУ будет принимать данные. Тот же код адреса ПУ, представленный в старших разрядах поля адреса, указывает, что данный ПУ должен передавать данные. Таким образом, если поле адрес ПУ имеет размерность один байт, то звено данных может включать до 15 подчиненных устройств ввода\вывода.

По получении запроса "Начать передачу данных" подчиненный узел в случае отсутствия подготовленных к передаче данных отвечает кадром

КП СИН СИН,

то есть разрывает соединение, в противном случае переходит в режим передачи данных.

По получении запроса "Принимать данные" подчиненный узел отвечает в случае неготовности к приему данных кадром

КП СИН СИН,

то есть разрывает соединение, в противном случае – кадром подтверждения готовности к приему данных

ДА СИН СИН.

Получив подтверждение о готовности к приему, главный узел переходит в режим передачи.

В режиме передачи используется формат кадра

кпб(КТ)КБ текст НТ СИН СИН.

Каждый передаваемый блок информации начинается со знака управления НТ. Поле данных, или текстовое поле, имеет переменную длину. Передача байтов данных продолжается до тех пор, пока не будет достигнута максимальная определенная протоколом длина поля данных. В этом случае передающий узел вставит управляющий символ конца данных КБ. Если блок является последним блоком сообщения или единственным блоком, то будет вставлен управляющий символ КТ. Вслед за управляющими знаками КТ или КБ передается контрольная последовательность блока (кпб).

Контрольная последовательность блока формируется на основе кода с вертикальным и горизонтальным контролем по паритету.

Контроль по паритету представляет собой наиболее простой метод контроля данных. Метод заключается в суммировании по модулю 2 всех бит контролируемой информации. Например, для данных 1001010 результатом контрольного суммирования будет значение <1>. Поскольку результат суммирования по модулю 2 зависит от того, четное или нечетное число 1 присутствует в контролируемом блоке, этот метод имеет еще одно название: «проверка на четность».

Результат суммирования (один бит) пересылается вместе с контролируемой информацией. В случае искажения при передаче любого одного бита исходных данных (или контрольного разряда) результат суммирования, произведенного принимающей стороной, будет отличаться от принятого контрольного разряда, что говорит об ошибке. Однако двойная ошибка, например прием данных 11010111 вместо отправленных 10010101, приведет к приему некорректных данных. Поэтому контроль по паритету применяется к небольшим порциям данных, как правило, к каждому знаку данных.

Вертикальный и горизонтальный контроль по паритету представляет собой модификацию описанного выше метода. Его отличие состоит в том, что исходные данные рассматриваются в виде матрицы, строки которой составляют байты контролируемых данных. Контрольный разряд подсчитывается отдельно для каждой строки и для каждого столбца матрицы.

Проверка на четность по горизонтали

1 0 1 0 1 0 1 0

проверка 1 1 0 0 0 1 1 0

на четность 0 0 1 1 1 0 0 1

по 1 0 0 0 1 1 0 1

вертикали 1 0 1 0 1 1 1 1

0 0 0 1 1 1 1 0

1 0 0 1 1 1 0 0

0 0 0 0 0 1 1 0

1 1 1 1 0 0 1 1<кпб>

Рис. 4. Формирование контрольной последовательности

На рис. 4 представлен пример формирования контрольной последовательности блока на основе кода с проверкой на четность «по горизонтали и по вертикали». Исходные данные рассматриваются в виде матрицы, строки которой составляют байты данных. Код ASCII является семибитовым, поэтому битом четности является восьмой разряд байта.

Проверочный символ по вертикали накапливается посылающей (и принимающей) стороной в течение передачи (приема) блока. Образованный в результате вертикальной проверки знак (байт) называется контрольной последовательностью блока. Переданный байт кпб сравнивается с накопленным байтом кпб принимающей стороны. Считается, что блок принят правильно, если сравниваемые контрольные последовательности равны.

При одновременном использовании горизонтальной и вертикальной проверок (матричный контроль) могут быть обнаружены одиночные, двойные, тройные и многие серии многократных ошибок.

Каждый правильно принятый блок с данными подтверждается принимающей стороной путем передачи управляющего кадра (положительная квитанция):

ДА СИН СИН.

В случае обнаружения ошибки передается управляющий кадр (отрицательная квитанция):

НЕТ СИН СИН.

Получив ответ НЕТ, предающая сторона должна повторить передачу данного блока, следовательно, копия переданного блока должна сохраняться в буфере передающей стороны до получения положительного подтверждения. Число повторных передач одного блока обычно ограничено.

Возможны случаи, когда передающая сторона не получает ответ на переданный блок данных: либо блок данных вообще не распознан принимающей стороной, поэтому она не передает ответ, либо ответ искажен ошибками в канале передачи и не распознается передающей стороной. Для защиты от неприема ответа введен механизм тайм-аута: определенный интервал времени, в течение которого ожидается поступление ответа. Если тайм-аут истек, а ответ не получен, передающая сторона формирует и передает управляющий кадр запроса ответа:

КТМ СИН СИН.

Принимающая сторона, получив кадр с запросом ответа, должна повторить свой последний ответ.

Такой алгоритм обеспечивает высокое качество передачи, но безошибочность передачи он не гарантирует. Так, если из-за ошибок передачи символ НЕТ воспринимается как символ ДА, то блок данных будет потерян. Если же символ ДА будет воспринят как символ НЕТ, то возможны вставки лишних блоков (дублирования).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]