Читайте также:
|
|
ЛАБОРАТОРНАЯ РАБОТА N 1
Физический и канальный уровни протоколов
Информационно-вычислительных сетей
ЦЕЛЬ РАБОТЫ
Создание элементарной ячейки информационно-вычислительной сети. Ознакомление с некоторыми функциями физического и канального уровней модели взаимодействия открытых систем.
ПОЯСНЕНИЯ К РАБОТЕ
ВВЕДЕНИЕ
Для того, чтобы подключённые к сети компьютеры, имеющие, в общем случае, разную аппаратную и программную начинку, могли обмениваться сообщениями, необходимо чтобы все они придерживались некоторых общих для всех правил и процедур. Для решения этой проблемы в начале 80-х годов 20-го века международные организации по стандартизации разработали модель, которая сыграла значительную роль в развитии информационно-вычислительных сетей. Эта модель называется моделью взаимодействия открытых систем (ВОС)или моделью OSI (Open System Interconnection) и показана на рис. 1. Она определяет различные уровни взаимодействия открытых систем, даёт им стандартные имена и указывает, какие функции должен выполнять каждый уровень. Общеизвестным примером открытой системы является Internet.
Модель OSI позволяет разрабатывать новое аппаратное и программное сетевое обеспечение по общим правилам, а также создавать программно-аппаратные комплексы из продуктов разных производителей.
Весь процесс взаимодействия компьютеров в информационно-вычислительных сетях представляется как иерархия уровней. Каждый из семи уровней имеет собственный свод правил (протоколов) и соответствующее название. В таблице 1 перечислены имена этих уровней и кратко указаны их функции.
Охарактеризуем более подробно канальный и физический уровни модели OSI.
Канальный уровень или уровень управления каналом организует канал передачи информационных данных. Канальное соединение строится на одном или нескольких физических соединениях.
Открытая Открытая Открытая
система 1 система система 2
ретранслятора
Прикладной 7 7
Сетенезависимые
Представительский 6 6
протоколы
Сеансовый 5 5
Транспортный 4 4
Сетевой 3 3 3
Сете за- висимые
Канальный 2 2 2
прото- колы
Физический 1 1 1
Сеть передачи данных
Рис. 1. Модель взаимодействия открытых систем OSI
Одной из задач канального уровня является проверка доступности среды передачи. Другая задача канального уровня — реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами. Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность битов в начало и конец каждого кадра. Кроме того, он также вычисляет контрольную сумму, обрабатывая все байты кадра определенным способом, и добавляет её к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок для канального уровня не является обязательной, поэтому в некоторых протоколах этого уровня она отсутствует.
Таблица 1. Краткая характеристика уровней модели OSI
Название уровня | Выполняемы уровнем функции |
Прикладной | Обеспечивает доступ прикладных программ пользователей к разделяемым ресурсам (файлам, принтерам, Web-страницам). Задачами этого уровня является перенос файлов, обмен почтовыми сообщениями и управление сетью. |
Представительный | Обеспечивает секретность обмена данными, преодолевает синтаксические различия в представлении данных или различия в кодах символов |
Сеансовый | Устанавливает, поддерживает и расторгает сеансы связи; синхронизирует обмен данными; вставляет контрольные точки (точки “отката”) в длинные передачи |
Транспортный | Делит потоки информации на достаточно малые фрагменты (пакеты) для передачи их на сетевой уровень; обеспечивает требуемую надёжность передаче данных, обнаруживает и исправляет такие ошибки передачи как искажение, потеря и дублирование пакетов |
Сетевой | Обеспечивает маршрутизацию, т.е. выбор наилучшего пути передачи пакета; управляет информационными потоками и отвечает также связь между сетями |
Канальный | Организует канал передачи информационных данных (в том числе проверка доступности канала связи); группирует биты в кадры, вычисляет для кадров контрольную сумму; обеспечивает корректность передачи кадра |
Физический | Характеризует физическую среду для передачи данных, включая полосу пропускания скорость передачи и др., тип кабеля и назначение контактов разъёмов; параметры используемых сигналов |
Канальный уровень обеспечивает надёжную доставка пакета:
1. Между двумя соседними станциями в сети с произвольной топологией.
2. Между любыми станциями в сети с типовой топологией:
− проверка доступности разделяемой среды;
− выделение кадров из потока данных, поступающих по сети; формирование кадров при отправке данных;
− подсчет и проверка контрольной суммы.
Реализуется программно-аппаратно.
В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с определенной топологией связей, именно той топологией, для которой он был разработан. К таким типовым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся "общая шина", "кольцо" и "звезда", а также структуры, полученные из них с помощью мостов и коммутаторов.
В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов.
Примерами протоколов канального уровня являются протоколы Ethernet, Token Ring, FDDI, 100VG-AnyLAN.
В глобальных сетях, которые редко обладают регулярной топологией, канальный уровень часто обеспечивает обмен сообщениями только между двумя соседними компьютерами, соединенными индивидуальной линией связи (связи типа "точка-точка" глобальных сетей).
Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примером такого подхода может служить протоколы технологии ATM.
Тем не менее, для обеспечения качественной транспортировки сообщений в сетях любых топологий и технологий функций канального уровня оказывается недостаточно, поэтому в модели OSI решение этой задачи возлагается на два следующих уровня — сетевой и транспортный.
Физический уровень имеет дело с передачей битов по физическим каналам связи, таким, как коаксиальный кабель, витая пара, оптоволоконный кабель или цифровой территориальный канал. Он получает пакеты данных от вышележащего канального уровня и преобразует их в оптические или электрические сигналы, соответствующие 0 и 1 бинарного потока. Эти сигналы посылаются через среду передачи на приемный узел. К этому уровню имеют отношение характеристики физических сред передачи данных, такие как полоса пропускания, помехозащищенность, волновое сопротивление и другие. На этом же уровне определяются характеристики электрических сигналов, передающих дискретную информацию, такую как крутизна фронтов импульсов, уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме того, здесь стандартизируются типы разъемов и назначение каждого контакта.
Физический уровень определяет:
− передачу битов по физическим каналам;
− формирование электрических сигналов;
− кодирование информации;
− синхронизацию;
− модуляцию;
− тип кабелей и разъемов;
− разводку контактов в разъемах.
Реализуется аппаратно. Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом.
Порт последовательной передачи данных (RS-232)
Порт последовательной передачи данных (RS-232) используется для:
* подключения мыши;
* подключения графопостроителей (плоттеров), сканеров, принтеров;
* связи двух компьютеров;
* подключения модемов для передачи данных по телефонным линиям;
* подключения к сети персональных компьютеров;
* реализации других функций.
Последовательная передача данных предполагает, что данные передаются с использованием одной пары проводов. В последовательном порту передача данных носит асинхронный характер. ЭВМ посылает или принимает байты информации порциями по одному байту. Временные интервалы между байтами при этом несущественны, но очень важны интервалы между отдельными битами байта.
Для синхронизации группе битов обычно предшествует специальный стартовый бит. После группы битов данных следует, как правило, бит проверки на чётность и один или два стоповых бита как показано на рис. 2.
Стартовый бит Бит чётности Стартовый бит
(передается следующего байта
первым)
8 бит данных
Стоповые биты (передаются последними)
Рис. 2. Передача одного байта последовательных данных
Исходное состояние линии последовательной передачи данных - уровень логической единицы. Стартовый бит сигнализирует о начале передачи данных. Далее передаются биты данных: вначале младшие, затем старшие. Если используется бит чётности, то передаётся и он. Этот бит используется для контроля правильности передачи и поиска ошибок. Бит чётности имеет такое значение, чтобы в пакете общее количество единиц было чётно (контроль на чётность) или нечётно (контроль на нечётность).
Завершают передачу байта один или два стоповых бита. Затем уровень линии передачи снова устанавливается в единицу до прихода, следующего стартового бита.
Совокупность стартового, стопового (стоповых) и бита чётности определяют протокол передачи данных (или протокол обмена). Передатчик и приемник данных должны использовать один и тот же протокол обмена.
Скорость передачи данных обычно измеряется в бодах. Боды - это общее количество передаваемых бит в секунду. При этом учитываются и старт/стоповые биты, а также бит чётности. Эффективная скорость передачи измеряется в количестве полезных битов в секунду (bps) без учёта затрат на передачу служебных битов.
Внешние устройства подключаются к порту RS-232 через 25-контактный (COM2) или 9-контактный (COM1) разъём.
Как правило, компьютеры снабжены более чем одним портом связи типа RS-232. Для их обозначения используется аббревиатуры СОМ1, СОМ2, СОМ3 и т. д. Как правило, к порту COM1 подключается «мышь». Обращение к порту осуществляется через его адреса. Каждый порт имеет диапазон используемых адресов. Для портов СОМ1 и СОМ2 они приведены в таблице 2 (адреса для СОМ2 указаны в скобках).
Таблица 2. Назначение регистров портов СОМ1 и СОМ2
Адрес регистра | Назначение регистра |
3F8H (2F8H) | Регистр данных |
3F9H (2F9H) | Регистр управления прерываниями |
3FAH (2FAH) | Регистр идентификации прерывания |
3FBH (2FBH) | Регистр управления |
3FDH (2FDH) | Регистр состояния линии |
3FEH (2FEH) | Регистр состояния модема |
Наименования и назначения различных проводников стандартного 25-контактного разъёма COM1 (COM2) приведены в таблице 3. Наряду с 25-контактным разъёмом часто используется 9-контактный разъём, наименование и назначение различных проводников которого приведены в таблице 4.
Электрические принципиальные схемы кабелей для соединения двух разъёмов порта (COM-СОМ) приведены на рис. 3.
Рассмотрим подробно работу с некоторыми из упомянутых в таблице 2 регистров.
Таблица 3. Наименования и назначения проводников стандартного 25-контактного разъёма COM1 (COM2)
Номер контакта | Назначение контакта | Вход или выход |
Защитное заземление | − | |
Передаваемые данные | Выход | |
Принимаемые данные | Вход | |
Запрос для передачи | Выход | |
Сброс для передачи | Вход | |
Готовность данных | Вход | |
Сигнальное заземление | − | |
Детектор принимаемого с линии сигнала | Вход | |
Готовность выходных данных | Выход | |
Индикатор вызова | Вход | |
9-19, 21, 23-25 | Не используется | − |
Таблица 4. Наименования и назначения проводников стандартного 9-контактного разъёма COM1 (COM2)
Номер контакта | Назначение контакта | Вход или выход |
Детектор принимаемого с линии сигнала | Вход | |
Принимаемые данные | Вход | |
Передаваемые данные | Выход | |
Готовность выходных данных | Выход | |
Сигнальное заземление | − | |
Готовность данных | Вход | |
Запрос для передачи | Выход | |
Сброс для передачи | Вход | |
Индикатор вызова | Вход |
Управление портами осуществляется записью в регистры или считыванием из них чисел. Это можно осуществлять программно на языках ассемблер или С++, а также обращаясь к функциям базовой системы ввода-вывода BIOS.
Регистр управления (3FBH или 2FBH) доступен для чтения и по записи. Его используют для задания протокола передачи данных и скорости передачи. Формат этого регистра представлен в таблице 5. Для установки протокола в регистр управления следует записать целое число − байт, используя функцию outportb().
Номера контактов
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6
7 7 7 7 7 7
8 8 8 8 8 8
9 9 9 20 20 20
COM1-COM1 COM1-COM2 COM2-COM2
Рис. 3. Электрические принципиальные схемы кабелей связи COM-COM
Регистр 3F8H (2F8H) можно использовать для двух целей: установки скорости передачи (для этого в 7-м бите регистра 3FBH (2FBH) должна быть установлена 1), так и для приёма или передачи данных (для этого в 7-м бите регистра 3FBH (2FBH) должен стоять 0 - он стоит по умолчанию). Для установки скорости передачи в регистр 3F8H (2F8H) следует записать (используя функцию С++ outportb(), как это было показано выше) десятичное число в соответствии с таблицей 6.
Старший байт упомянутого числа следует записать в регистр 3F9H.
В режиме приёма/передачи данные из регистра 3F8H (2F8H) или считываются (используется функция С++ inportb()), или записывается в него (используется функция С++ outportb()).
Пример. Если мы собираемся передавать через СОМ1 по 5 бит информации в слове, без стопового бита, с контролем на нечётность и далее следует инструкция установления скорости передачи в 4800 бод, то фрагмент соответствующей программы на языке С++ будет иметь вид
.
.
#include <dos.h>
.
.
outportb(0x3FB,0xB0); //установка протокола
outportb(0x3F8,24); //установка скорости
outportb(0x3FB,0x30); //перевод порта в режим приёма-передачи
.
.
Таблица 5. Формат регистра управления 3FBH (2FBH)
Биты | Описание |
0-1 | Длина слова в битах: 00 - 5 бит; 01 - 6 бит; 10 - 7 бит; 11 - 8 бит. |
Количество стоповых бит: 0 - 1 бит; 1 - 2 бита. | |
3-4 | Чётность: 00 - контроль не используется; 01 - контроль на нечётность; 11 - контроль на чётность. |
Фиксация чётности. При установке этого бита, бит чётности всегда принимает значение 0 (если биты 3-4 равны 11) или 1 (если биты 3-4 равны 01) | |
Установка перерыва. Вызывает вывод строки нулей в качестве сигнала BREAK для подключённого устройства | |
1 - регистры 3F8H (2F8H) используются для загрузки скорости передачи; 0 - регистры 3F8H (2F8H) используются для приёма или передачи данных |
Таблица 6. Зависимость скорости передачи данных от значения делителя частоты
Число | Скорость передачи в бодах | Число | Скорость передачи в бодах |
Регистр состояния линии 3FDH (2FDH) используется для организации и контроля правильности передачи данных. Его формат представлен в таблице 7.
Перед тем как отправить байт в порт 3F8H (2F8H) (а значит и в линию связи) или считать его из порта, следует, используя функцию inportb(), прочитать регистр 3FDH (2FDH). Затем, выделив и проанализировав бит (равен ли он единице) состояния приёмника (0-ой) или передатчика (5-ый), можно (если бит равен единице) записывать/считывать байт в/из регистра 3F8H (2F8H). Процесс чтения и анализа содержимого регистра 3FDH (2FDH) следует организовать в цикле.
Таблица 7. Формат регистра состояния линии 3FDH (2FDH)
Биты | Описание |
Данные получены и готовы для чтения. Бит сбрасывается при чтении данных из регистра 3F8H (2F8H) | |
Ошибка переполнения. Была принята новая порция данных, а предыдущая ещё не была считана. Предыдущая порция потеряна | |
Ошибка чётности. Сбрасывается после чтения состояния линии | |
Ошибка синхронизации | |
Обнаружен запрос на прерывание передачи BREAK: длинная строка нулей | |
Регистр хранения передатчика пуст. В него можно записывать новую порцию информации для передачи | |
Регистр сдвига передатчика пуст. Этот регистр получает данные из регистра хранения и преобразует их в последовательный вид для передачи | |
Истекло время ожидания |
Для выделения бита из байта удобно использовать операцию «поразрядное логическое И». В нижеследующем фрагменте показан процесс выделения 3-го бита из байта - результат равен нулю, если в третьем бите стоит “0” и равен восьми - если в третьем бите стоит “1”.
.
.
unsigned char a;
.
.
a=a&8;
.
.
Если в программе не используются прерывания, то в порт 3F9H следует перед началом работы с ним записать значение 0.
Поясним принципы использования последовательного порта на примере алгоритма пары простейших программ – передающих последовательность данных (байтов) с одного компьютера (ведущего) на другой (ведомый).
Первое, что должна сделать программа, работающая с последовательным асинхронным портом - это установить, одинаковые для обоих компьютеров, протокол обмена и скорость передачи данных. После загрузки операционной системы устанавливается скорость 2400 бод, не выполняется проверка на четность, используется один стоповый бит и 8-битовая длина передаваемого символа. Выполнив установку протокола и скорости передачи данных, следует не забыть перевести регистр 3F8H (2F8H) обратно в режим приема/передачи.
Далее алгоритмы работы программ на ведущем и ведомом компьютерах отличаются.
На ведущем компьютере следует до передачи каждого байта убедиться, что регистр хранения передатчика свободен (т. е. в 5-ом бите стоит “1”).
На ведомом компьютере перед чтением очередного байта из регистра следует убедиться, что байт из линии принят (т. е. в 0-ом бите стоит “1”).
Дата добавления: 2015-11-14; просмотров: 42 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Define M_PI pi | | | Связь двух компьютеров стандартными |