Тема 4

4. ЭМВОС. Реализация физического уровня
4.1. Модель взаимодействия открытых систем ISO/OSI

В начале 80-х годов ряд международных организаций по стандартизации - ISO, ITU-T и некоторые другие - разработали модель взаимодействия открытых систем (Open System Interconnection, OSI).

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

В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический (рис. 4.1).

Рис. 4.1. Модель в заимодействия открытых систем ISO/OSI

Наряду с термином сообщение (message) в стандартах ISO для обозначения единиц данных, с которыми имеют дело протоколы разных уровней, используется общее название протокольный блок данных (Protocol Data Unit, PDU).

Для обозначения блоков данных определенных уровней часто используются специальные названия: кадр (frame), пакет (packet), дейтаграмма (datagram), сегмент (segment).

В модели OSI различаются два основных типа протоколов:

с установлением соединения (connection-oriented). Перед обменом данными отправитель и получатель должны сначала установить соединение и, возможно, выбрать некоторые параметры протокола, которые они будут использовать при обмене данными. После завершения диалога они должны разорвать это соединение;

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

Уровни модели OSI

Физический уровень (Physical layer) отвечает за передау битов по физическим каналам связи.

К этому уровню имеют отношение:

- характеристики физических сред передачи данных (полоса пропускания, помехозащищенность, волновое сопротивление и др.);

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

- типы разъемов и назначение каждого контакта.

Пример: спецификация 10BaseT технологии Ethernet - определяет в качестве используемого кабеля неэкранированную витую пару категории 3 с волновым сопротивлением 100 Ом, разъем RJ45, максимальную длину физического сегмента 100 метров, манчестерский код для представления данных в кабеле и другие характеристики среды и электрических сигналов.

Канальный уровень (Data Link layer) отвечает за проверку доступности среды передачи, реализует механизм обнаружения и коррекции ошибок. На канальном уровне биты группируются в наборы, называемые кадрами (frames).

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

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

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

Примеры: протоколы Ethernet, Token Ring, FDDI, 100VG-AnyLAN.

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

Такие протоколы часто называют протоколами «точка-точка», например, протоколы РРР и LAP-B.

В таких случаях для доставки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примеры: протоколы технологий АТМ и Frame Relay.

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

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

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

Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня.

Критериями при выборе маршрута могут являться:

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

- надежность передачи и др.

Сетевой уровень решает также задачи:

- согласования разных технологий;

- упрощения адресации в крупных сетях,

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

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

На сетевом уровне определяются два вида протоколов:

- сетевые протоколы (routed protocols). Эти протоколы реализуют продвижение пакетов через сеть;

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

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

Примеры: протокол межсетевого взаимодействия IP стека TCP/IP, протокол межсетевого обмена пакетами IPX стека Novell.

Транспортный уровень (Transport layer) обеспечивает приложениям или верхним уровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется.

Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем и отличающихся качеством предоставляемых услуг:

- срочностью;

- возможностью восстановления прерванной связи;

- наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол;

- способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.

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

Как правило, все протоколы, начиная с транспортного уровня и выше, реализуются программными средствами конечных узлов сети - компонентами их сетевых операционных систем.

Примеры: протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.

Сеансовый уровень (Session layer) обеспечивает управление диалогом:

- фиксирует, какая из сторон является активной в настоящий момент;

- предоставляет средства синхронизации, что позволяет вставлять контрольные точки в длинные передачи, чтобы в случае отказа
вернуться назад к последней контрольной точке, а не начинать все с начала.

Функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.

Представительный уровень (Presentation layer) имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. На этом уровне может выполняться шифрование и дешифрование данных, благодаря которому секретность обмена данными обеспечивается сразу для всех прикладных служб. Пример: протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сообщениями для протоколов прикладного уровня стека TCP/IP.

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

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

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

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

Это позволяет разрабатывать приложения, не зависящие от технических средств непосредственной транспортировки сообщений (рис. 4.2).

Рис. 4.2. Сетезависимые и сетенезависимые уровни модели OSI

В сети компьютеры взаимодействуют через различные коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы, маршрутизаторы, мультиплексоры.

В зависимости от типа коммуникационное устройство может работать:

- только на физическом уровне (повторитель);

- на физическом и канальном (мост);

- на физическом, канальном и сетевом, иногда захватывая и транспортный уровень (маршрутизатор) (рис. 4.3).

Рис. 4.3. Соответствие функций различных устройств сети уровням модели OSI

Понятие «открытая система»

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

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

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

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

Если две сети построены с соблюдением принципов открытости, то это дает следующие преимущества:

- возможность построения сети из аппаратных и программных средств различных производителей, придерживающихся одного и того же стандарта;

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

- возможность легкого сопряжения одной сети с другой;

- простота освоения и обслуживания сети.

Ярким примером открытой системы является международная сеть Internet. Само название стандартов, определяющих работу сети Internet - Request For Comments (RFC), что можно перевести как «запрос на комментарии», - показывает гласный и открытый характер принимаемых стандартов. В результате сеть Internet сумела объединить в себе самое разнообразное оборудование и программное обеспечение огромного числа сетей, разбросанных по всему миру.

Организации, занимающиеся разработкой стандартов в области вычислительных сетей

Международная организация по стандартизации (International Standards Organization, ISO).

Международный союз электросвязи (International Telecommunications Union, ITU).

Институт инженеров по электротехнике и радиоэлектронике (Institute of Electrical and Electronics Engineers, IEEE).

Европейская ассоциация производителей компьютеров (European Computer Manufacturers Association, ЕСМА).

Ассоциация производителей компьютеров и оргтехники (Computer and Business Equipment Manufacturers Association, CBEMA).

Ассоциация электронной промышленности (Electronic Industries Association, EIA).

Министерство обороны США (Department of Defense, DoD).

Американский национальный институт стандартов (American National Standards Institute, ANSI).

Примеры стандартных стеков коммуникационных протоколов

Стек OSI

Стек OSI - международный стандарт. Его поддерживает правительство США, стек OSI популярен в Европе.

Стек TCP/IP

Стек TCP/IP - разработан по инициативе Министерства обороны США для связи экспериментальной сети ARPAnet с другими сетями как набор общих протоколов для разнородной вычислительной среды.

Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Этот стек используется для связи компьютеров сети Internet, а также в огромном числе корпоративных сетей.

Стек TCP/IP на нижнем уровне поддерживает все популярные стандарты физического и канального уровней:

для локальных сетей - это Ethernet, Token Ring, FDDI;

для глобальных - протоколы работы на аналоговых коммутируемых и выделенных линиях SLIP, РРР, протоколы территориальных сетей Х.25 и ISDN.

Основными протоколами стека являются протоколы IP (Internet Protocol) и TCP (Transmission Control Protocol). Эти протоколы в терминологии модели OSI относятся к сетевому и транспортному уровням соответственно. IP обеспечивает продвижение пакетов по составной сети, TCP гарантирует надежность доставки пакетов.

Стек TCP/IP вобрал в себя большое количество протоколов прикладного уровня:

протокол пересылки файлов FTP;

протокол эмуляции терминала Telnet;

почтовый протокол SMTP;

гипертекстовые сервисы службы WWW и др.

Стек IPX/SPX

Стек IPX/SPX является оригинальным стеком протоколов фирмы Novell, разработанным для сетевой операционной системы NetWare. Протоколы сетевого и сеансового уровней Internetwork Packet Exchange (IPX) и Sequenced Packet Exchange (SPX) являются адаптацией протоколов XNS фирмы Xerox. Сейчас стек IPX/ SPX реализован не только в NetWare, но и в нескольких других популярных сетевых ОС, например SCO UNIX, Sun Solaris, Microsoft Windows NT.

Стек NetBIOS/SMB

Стек NetBIOS/SMB используется в продуктах компаний IBM и Microsoft. На физическом и канальном уровнях этого стека используются все наиболее распространенные протоколы Ethernet, Token Ring, FDDI и другие. На верхних уровнях работают протоколы NetBEUI и SMB. Протокол NetBIOS (Network Basic Input/Output System) появился как сетевое расширение стандартных функций базовой системы ввода/вывода (BIOS) IBM PC для сетевой программы PC Network фирмы IBM. В дальнейшем протокол NetBIOS был заменен протоколом расширенного пользовательского интерфейса NetBEUI - NetBIOS Extended User Interface. Для обеспечения совместимости приложений в качестве интерфейса к протоколу NetBEUI был сохранен интерфейс NetBIOS. Этот протокол содержит много полезных сетевых функций, которые можно отнести к сетевому, транспортному и сеансовому уровням модели OSI, однако с его помощью невозможна маршрутизация пакетов. Протокол SMB (Server Message Block) выполняет функции сеансового, представительного и прикладного уровней. На основе SMB реализуется файловая служба, а также службы печати и передачи сообщений между приложениями.

На рис. 4.4 показано соответствие некоторых, наиболее популярных протоколов уровням модели OSI.

Рис. 4.4. Соответствие популярных стеков протоколов модели OSI

Выводы

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

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

3. Формализованные правила, определяющие взаимодействие сетевых компонентов соседних уровней одного узла, называются интерфейсом. Интерфейс определяет набор сервисов, предоставляемый данным уровнем соседнему уровню.

4. Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.

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

6. Модель OSI стандартизует взаимодействие открытых систем. Она определяет 7 уровней взаимодействия: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический.

7. Важнейшим направлением стандартизации в области вычислительных сетей является стандартизация коммуникационных протоколов. Наиболее популярными являются стеки: TCP/IP, IPX/SPX, NetBIOS/SMB, DECnet, SNA и OSI.

4.2. Физический уровень

Понятие физического уровня, его назначение и выполняемые функции определены в рекомендациях МККТТ Х.200 и стандарте ISO 7498.

Логическая структура уровня. Физический уровень обеспечивает прозрачную передачу последовательностей бит через физическое соединение. Физические соединения могут быть двухточечные и многоточечные. Многоточечное соединение обеспечивает связь сразу нескольких (более двух) абонентов.

ООД - оконечное оборудование данных. Аналогичный английский термин DTE - Data Terminal Equipment. Устройство, генерирующее или принимающее данные.

АКД - аппаратура окончания канала данных. В отечественной литературе встречается аналогичный термин, АПД - аппаратура передачи данных. Аналогичный английский термин DCE - Data Circuit-terminating Equipment. Устройство, осуществляющее интерфейс между ООД и физической средой.

ООД и АКД - логические устройства, логические понятия, с помощью которых описывается выполнение определенного набора функций. Являются абстрактными, собирательными, обобщенными образами множества реальных устройств. Например, функции ООД могут выполнять порты COM1 и COM2 персонального компьютера. Функции АКД может выполнять модем (если в качестве физической среды используется аналоговый канал связи) или линейный контроллер (если в качестве физической среды используется дискретный канал связи). Физически ООД и АКД могут быть встроены в одну ЭВМ (встроенный модем) или быть разнесены на значительные расстояния.

Физический уровень определяет интерфейсы системы с каналом связи, а именно, механические, электрические, функциональные и процедурные параметры соединения.

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

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

Физический уровень выполняет три основные функции: установление и разъединение соединений; преобразование сигналов и реализация интерфейса.

Установление и разъединение соединения

При использовании коммутируемых каналов на физическом уровне необходимо осуществить предварительное соединение взаимодействующих систем и их последующее разъединение.

При использовании выделенных (арендуемых) каналов такая процедура упрощается, так как каналы постоянно закреплены за соответствующими направлениями связи.

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

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

После установления соединения управление передается более высокому канальному уровню.

Преобразование сигналов

Для согласования последовательности передаваемых бит с параметрами используемого аналогового или цифрового канала требуется выполнить их преобразование в аналоговый либо дискретный сигнал, соответственно

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

Примерами таких стыков С1 могут быть:

- С1-ТФ (ГОСТы 23504-79, 25007-81, 26557-85) — для каналов КТСОП,
- С1-ТЧ (ГОСТы 23475-79, 23504-79, 23578-79, 25007-81, 26557-85) — для выделенных каналов тональной частоты,
- С1-ТГ (ГОСТ 22937-78) — для телеграфных каналов связи,
- С1-ШП (ГОСТы 24174-80, 25007-81, 26557-85) — для первичных широкополосных каналов,
- С1-ФЛ (ГОСТы 24174-80, 26532-85) — для физических линий связи,
- С1-АК — для акустического сопряжения DCE с каналом связи и ряд других.

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

Реализация интерфейса

Реализация интерфейса между DTE и DCE является третьей важнейшей функцией физического уровня.

Такого рода интерфейсы регламентируются соответствующими рекомендациям и стандартами, к которым, в частности, относятся:

- V.24,
- RS-232,
- RS-449,
- RS-422A,
- RS-423A,
- V.35 и другие.

Такие интерфейсы определяются отечественными ГОСТами как преобразовательные стыки С2 или стыками, не зависящими от среды.

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

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

Типовой профиль протоколов при использовании модема, поддерживающего только функции физического уровня, приведен на рис. 4.6. При этом считается, что компьютер (DTE) соединяется с модемом (DCE) посредством интерфейса RS-232, а модем использует протокол модуляции V.21.

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

4.3. Реализация физического уровня с помощью модема

Функции ООД выполняет COM-порт компьютера. Функции АКД выполняет модем. Однако, этим функции COM-порта и модема не ограничиваются. COM-порт может выполнять некоторые функции канального уровня (проверка на четность). Модем также может выполнять функции канального уровня, связанные с организацией надежного канала связи.

Пример использования цепей интерфейса RS-232C

Рассмотрим систему, в которой в качестве ООД используются COM-порты персональных компьютеров, а в качестве АКД - модемы. На рисунке приведен граф, являющийся одним из возможных представлений процесса функционирования рассматриваемой системы [Блэк Ю. Сети ЭВМ: Протоколы, стандарты, интерфейсы: Пер. с англ.- М.: Мир, 1990.-506с.].

Цель графа - демонстрация процедур использования цепей стыка ООД/АКД при использовании модемов.

Вершины графа отображают состояния системы, имеющие следущую интерпретацию.

1. Начало. ООД и АКД не соединены.

2. Процесс перехода в состояние 4 (состояние готовности). Для реализации этого процесса ООД и АКД должны выставить сигналы взаимной готовности DTR и DSR. С этой целью модем подсоединяется к компьютеру и запускается коммуникационная программа.

3. Неготовность. В этом состояние система попадает из состояния 2 в том случае, если модем соединен с компьютером, запущена коммуникационная программа, но модем не реагирует на посылаемые ему с терминала команды или коммуникационная программа даже не дает набирать эти команды. При этом может гореть индикатор внешнего модема TR, говорящий о готовности ООД и нахождении цепи DTR в состоянии "1". Но цепь DSR в этом состоянии находится в состоянии 0, говорящем о неготовности модема. Это может произойти из-за неисправностей COM-порта, из-за неправильной настройки конфигурации компьютера или коммуникационной программы.

4. Готовность. В этом состоянии оба модема реагируют на посылаемые им с терминала команды. При этом они могут быть и не подключены к телефонной сети.

5. Установление соединения ООД/ООД. Переход в это состояние осуществляется при возникновении у одного из ООД потребности в передаче данных. При этом ООД выставляет сигнал в цепи RTS. Нормальное течение процесса установления соединения (в направлении состояния 7) происходит следующим образом. Сначала коммутируется канал до вызываемого абонента (если используется коммутируемое соединение, а не выделенная линия). Процесс коммутации заканчивается "звонком" на вызываемом модеме, который, в свою очередь оповещает об этом ООД сигналом RI. После того, как обе "трубки подняты" модемы "договариваются" о параметрах связи (протокол, скорость передачи). В телефонии этот этап обозначается понятиями передача несущей и обнаружение несущей (частоты) в линии. Успешное окончание процесса установления соединения заканчивается выдачей соответственно своим ООД сигнала DCD вызываемым модемом и сигнала CTS вызывающим модемом.

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

7. Соединение установлено. Переход в это состояние осуществляется при выдаче сигналов DCD и CTS, обозначаемых готовность обоих модемов.

8. Передача данных. Для передачи данных используются цепи TD и RD.

9. Сбой передачи. В это состояние система переходит при различных сбоях и отказах в процессе передачи данных.

10. Окончание передачи. У ООД, инициировавшего передачу закончились данные.

11. Ликвидация соединения. Вызывающее ООД переводит цепь RTS в состояние "0". Вызывающий модем снимает сигнал несущей. Удаленный модем обнаруживает исчезновение несущей и переводит цепь DCD в состояние "0". Система вновь переходит в состояние готовности.

4.4. Стандарт RS-232C и его реализация в COM-портах

Стандарт RS-232C "Интерфейс между ООД и АКД, использующих последовательный обмен двоичными данными" разработан организацией Electronic Industries Association (EIA) в 1981 г. Совместим со стандартами V.24 и V.28.

Стандарт V.28 принят в 1980 г., определяет электрические характеристики стыка физического уровня. При принятии был рассчитан на скорость передачи до 20 Кбит/c на расстояние до 15 м. Регламентирует отображение логической "1" в цепях передачи данных напряжением на стыке менее -3В, а отображение логического "0" - напряжением более 3В. Вторая пара цифр в литературе приводится разная, либо -12В и +12В [1. Блэк Ю. Сети ЭВМ: Протоколы, стандарты, интерфейсы: Пер. с англ.- М.: Мир, 1990.-506с.], либо -15В и +15В [Фролов А.В., Фролов Г.В. Модемы и факс-модемы. Программирование для MS-DOS и Windows. - М.: "ДИАЛОГ-МИФИ", 1995. - 284 (Библиотека системного программиста; Т.16)].

Рекомендация V.24 "Перечень обозначений цепей обмена между ООД и АКД" принята в 1980 г. Рекомендация V.24 определяет 53 цепи стыка ООД/АКД. Среди цепей V.24 имеются все цепи, используемые в RS-232C (с точки зрения функционального назначения, хотя названия цепей иногда не совпадают). В этом смысле RS-232C можно рассматривать как подмножество V.24. При использовании 25-контактного разъема механические характеристики V.24 и RS-232C определяются стандартом ISO 2110 "Передача данных. 25-контактный соединитель интерфейса ООД/АКД и распределение номеров его контактов", принятом в 1972 г. В RS-232C регламентируется использование 18 контактов 25-контактного разъема для организации около 20 логических (функциональных) цепей. Эти цепи выполняют 4 группы функций:

- заземление;
- передача данных;
- управление;
- синхронизация.

Порты COM1 и COM2 реализуют упрощенную версию RS-232C. С другой стороны, они выполняют некоторые функции канального уровня (побайтная передача, контроль на четность/нечетность). Поэтому отождествление асинхронных адаптеров (портов) COM c RS-232C неправомерно. Последовательные порты СОМ допускают использование 9-контактного соединителя. Эти 9 цепей представляют собой подмножество цепей, определенных в RS-232C. Например, в портах COM не используются цепи синхронизации (поэтому их часто называют асинхронными).

На рисунке представлено соответствие контактов COM-портов цепям, используемым при передаче данных.

Использование контактов разъемов для организации цепей

Назначение цепей:

FG (Frame Ground) - защитное заземление. Электрическое соединение с корпусом устройства.

TD (Transmitted Data) - передача данных от ООД к АКД.

RD (Received Data) - прием ООД данных, передаваемых от АКД.

RTS (Reguest to Send) - запрос передачи. Сигнал от ООД к АКД. Уведомляет АКД о том, что ООД имеет данные для передачи.

CTS (Clear to Send) - свободно для передачи. Сигнал от АКД, указывающий, что ООД может передавать данные.

DSR (Data Set Ready) - готовность АКД. Сигнал от АКД, говорящий о его готовности.

SG (Signal Ground) - сигнальное заземление. Общий нулевой уровень для всех цепей. Является точкой относительно которой измеряется уровень напряжения во всех цепях.

DCD (Data Carrier Detect) - детектор принимаемого с линии сигнала, сигнал обнаружения несущей. Сигнал от АКД, обозначающий, что оно обнаружило сигнал несущей от удаленного АКД.

DTR (Data Terminal Ready) - готовность ООД. Сигнал от ООД, говорящий о том, что он находится в состоянии готовности к передаче или приему данных.

RI (Ring Indicator) - индикатор вызова. Сигнал от АКД, обозначающий, что сигнал вызова (звонка) принят по коммутируемой линии.

Реализация COM-портов

Основой для COM-портов служит микросхема универсального асинхронного приемопередатчика (UART - Universal Asynchronous Receiver Transmitter). Имеется несколько разновидностей этой микросхемы: Intel 8250, 16450, 16550, 16550A. UART содержит для каждого COM-порта регистры передатчика и приемника данных, а также несколько управляющих регистров, доступных через команды BIOS, MS DOS, MS Windows. Последние версии UART имеют буферы для временного хранения принимаемых и передаваемых данных. Наличие буферов позволяет реже прерывать центральный процессор, согласовывать скорость передачи данных между ООД и АКД.

Основные параметры COM - порта

Основными параметрами СОМ-порта являются:

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

Базовый адрес порта ввода/вывода

Базовые адреса СОМ-портов записываются в области данных BIOS начиная с адреса 0040:0000h. Для порта COM1 базовый адрес 0040:3F8h, для порта COM2 базовый адрес 0040:2F8h (h указывает на 16-ричную систему исчисления). Именно такой адрес имеет регистр данных передатчика. Поэтому данные, посылаемые программой например, по адресу 0040:3F8h, передаются по системной шине и принимаются в регистр данных порта СОМ1 (судя по всему, размер этого регистра 8бит). При наличии буфера ввода/вывода данные сразу перемещаются в него.

Номер аппаратного прерывания

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

Для порта СОМ1 (СОМ3) обычно используется линия IRQ4, для порта СОМ2 (СОМ4) обычно используется линия IRQ3.

Cкорость передачи данных

Скорость передачи задается делителем частоты тактового генератора. Если значение делителя равно 1, COM-порт выдает данные с максимальной скоростью 115200 бит/c. Таким образом, задавая скорость передачи для СОМ-порта, мы определяем фактически только частоту тактов, определяющих скорость его работы, скорость появления битов данных на его выходе. Реальная скорость передачи данных зависит от используемого формата для их представления от способа взаимодействия ООД-АКД, от свойств элементов этой системы.

Величина блока данных (Data bits)

Под блоком данных здесь понимается величина контейнера для переноса информации. Он может состоять из 5, 6, 7 или 8 битов.

Режим проверки четности (Parity)

Возможны три режима:

- отсутствие бита проверки на четность;
- используется бит проверки на четность (вместе с ним сумма единиц в блоке должна быть четной, even);
- используется бит проверки на нечетность (вместе с ним сумма единиц в блоке должна быть нечетной, odd).

Величина блока вместе с битом четности не должна превышать 8 бит.

Способ управления потоком данных (Flow Control)

Возможны три варианта:

- отсутствие управления потоком;
- аппаратное управление потоком;
- программное управление потоком;

При отсутствии управления потоком данных между ООД и АКД скорость работы системы в целом снижается, возникают проблемы с согласованием скоростей ООД и АКД, не используется модемами режим сжатия данных.

Аппаратное управление потоком осуществляется с помощью цепей RTS и CTS. При наличии данных у ООД, он выставляет сигнал RTS. Когда модем готов принять данные, он выставляет сигнал CTS. Когда оба сигнала выставлены, ООД передает данные АКД. АКД может передавать данные независимо от состояния этих цепей. Такая ассиметричность связана с тем, что до последнего времени быстродействие ООД было значительно выше, чем АКД. Поэтому проблем с тем, что ООД не справляется с потоком от АКД, не возникало.

Программное управление потоком реализуется с помощью вставляемых в поток символов XON/XOF. Если приемник хочет приостановить прием данных, например, из-за переполнения его буфера, он передает передатчику символ XOF. Для разрешения возобновления передачи используется символ XON. Символ XON имеет код 00010001 (17), cимвол XOF имеет код 00010011 (19). Передача символов XON/XOF осуществляется по цепям данных (TD, RD), доступных драйверам, коммуникационным программам.

Принципиальная разница между двумя способами управления потоком в том, что при аппаратном управлении все зависит от конкретной реализации ООД и АКД, а во втором случае управление может осуществляться программами более высокого уровня.

Настройка параметров

После загрузки операционной системы для асинхронных адаптеров по умолчанию устанавливается скорость 2400 бит/с., проверка на четность не выполняется, посылаются восемь бит данных и один стоповый бит. Этот режим можно изменить командой MS-DOS Mode. Если параметры порта изменяются в коммуникационной программе, они действуют в пределах этой программы.

4.5. Методы передачи дискретных данных на физическом уровне

При передаче дискретных данных по каналам связи применяются два основных типа физического кодирования - на основе синусоидального несущего сигнала и на основе последовательности прямоугольных импульсов.

Первый способ часто называется также модуляцией или аналоговой модуляцией, подчеркивая тот факт, что кодирование осуществляется за счет изменения параметров аналогового сигнала.
Аналоговая модуляция применяется для передачи дискретных данных по каналам с узкой полосой частот, типичным представителем которых является канал тональной частоты, предоставляемый в распоряжение пользователям общественных телефонных сетей. Этот канал передает частоты в диапазоне от 300 до 3400 Гц, таким образом, его полоса пропускания равна 3100 Гц. Строгое ограничение полосы пропускания тонального канала связано с использованием аппаратуры уплотнения и коммутации каналов в телефонных сетях.
Аналоговая модуляция является таким способом физического кодирования, при котором информация кодируется изменением амплитуды (амплитудная модуляция), частоты (частотная модуляция) или фазы синусоидального сигнала (фазовая модуляция) несущей частоты.

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

Второй способ обычно называют цифровым кодированием.

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

4.5.1. Цифровое кодирование (Digital Encoding)

При цифровом кодировании дискретной информации применяют потенциальные и импульсные коды.

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

Требования к методам цифрового кодирования

1. Наличие малой полосы цифрового сигнала для передачи большого объема данных по имеющемуся физическому каналу.

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

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

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

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

4. Сигнал должен быть неполяризованным. Тогда можно не обращать вниманиея на полярность подключения проводников в каждой паре.

5. Наличие способности распознавать ошибки.

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

7. Низкая стоимость реализации.

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

Потенциальный код без возвращения к нулю

NRZ - Non Return to Zero. Метод потенциального кодирования, называемый также кодированием без возврата к нулю, то есть при передаче последовательности единиц сигнал не возвращается к нулю в течение такта..

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

Другим серьезным недостатком метода NRZ является наличие низкочастотной составляющей, которая приближается к нулю при передаче длинных последовательностей единиц или нулей. Из-за этого многие каналы связи, не обеспечивающие прямого гальванического соединения между приемником и источником, этот вид кодирования не поддерживают. В результате в чистом виде код NRZ в сетях не используется. Тем не менее используются его различные модификации, в которых устраняют как плохую самосинхронизацию кода NRZ, так и наличие постоянной составляющей. Привлекательность кода NRZ состоит в достаточно низкой частоте основной гармоники f0, которая равна N/2 Гц (где N - битовая скорость передачи данных).

Метод биполярного кодирования с альтернативной инверсией

AMI - Bipolar Alternate Mark Inversion. Метод биполярного кодирования с альтернативной инверсией (поочередная инверсия "единиц").

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

Код AMI частично ликвидирует проблемы постоянной составляющей и отсутствия самосинхронизации, присущие коду NRZ. Это происходит при передаче длинных последовательностей единиц. В этих случаях сигнал на линии представляет собой последовательность разнополярных импульсов с тем же спектром, что и у кода NRZ, передающего чередующиеся нули и единицы, то есть без постоянной составляющей и с основной гармоникой N/2 Гц (где N - битовая скорость передачи данных). Длинные же последовательности нулей также опасны для кода AMI, как и для кода NRZ - сигнал вырождается в постоянный потенциал нулевой амплитуды.

В целом, для различных комбинаций бит на линии использование кода AMI приводит к более узкому спектру сигнала, чем для кода NRZ, а значит, и к более высокой пропускной способности линии. Например, при передаче чередующихся единиц и нулей основная гармоника fo имеет частоту N/4 Гц. Код AMI предоставляет также некоторые возможности по распознаванию ошибочных сигналов. Так, нарушение строгого чередования полярности сигналов говорит о ложном импульсе или исчезновении с линии корректного импульса. Сигнал с некорректной полярностью называется запрещенным сигналом (signal violation).

Потенциальный код с инверсией при единице

NRZI - Non Return to Zero with ones Inverted. Инверсное кодирование без возврата к нулю.

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

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

Биполярный импульсный код

Кроме потенциальных кодов в сетях используются и импульсные коды, когда данные представлены полным импульсом или же его частью - фронтом. Наиболее простым случаем такого подхода является биполярный импульсный код, в котором единица представлена импульсом одной полярности, а ноль - другой. Каждый импульс длится половину такта. Такой код обладает отличными самосинхронизирующими свойствами, но постоянная составляющая, может присутствовать, например, при передаче длинной последовательности единиц или нулей. Кроме того, спектр у него шире, чем у потенциальных кодов. Так, при передаче всех нулей или единиц частота основной гармоники кода будет равна N Гц, что в два раза выше основной гармоники кода NRZ и в четыре раза выше основной гармоники кода AMI при передаче чередующихся единиц и нулей. Из-за слишком широкого спектра биполярный импульсный код используется редко..

Манчестерский код

В локальных сетях до недавнего времени самым распространенным методом кодирования был так называемый манчестерский код. Он применяется в технологиях Ethernet и Token Ring.

В манчестерском коде для кодирования единиц и нулей используется перепад потенциала, то есть фронт импульса. При манчестерском кодировании каждый такт делится на две части. Информация кодируется перепадами потенциала, происходящими в середине каждого такта. Единица кодируется перепадом от низкого уровня сигнала к высокому, а ноль - обратным перепадом. В начале каждого такта может происходить служебный перепад сигнала, если нужно представить несколько единиц или нулей подряд. Так как сигнал изменяется по крайней мере один раз за такт передачи одного бита данных, то манчестерский код обладает хорошими самосинхронизирующими свойствами. Полоса пропускания манчестерского кода уже, чем у биполярного импульсного. У него также нет постоянной составляющей, а основная гармоника в худшем случае (при передаче последовательности единиц или нулей) имеет частоту N Гц, а в лучшем (при передаче чередующихся единиц и нулей) она равна N/2 Гц, как и у кодов AMI или NRZ. В среднем ширина полосы манчестерского кода в полтора раза уже, чем у биполярного импульсного кода, а основная гармоника колеблется вблизи значения 3N/4. Манчестерский код имеет еще одно преимущество перед биполярным импульсным кодом. В последнем для передачи данных используются три уровня сигнала, а в манчестерском - два.

Потенциальный код 2B1Q

Код 2B1Q - потенциальный код с четырьмя уровнями сигнала для кодирования данных. Название кода отражает его суть - каждые два бита (2В) передаются за один такт сигналом, имеющим четыре состояния (1Q), Паре бит 00 соответствует потенциал -2,5 В, паре бит 01 соответствует потенциал -0,833 В, паре 11 - потенциал +0,833 В, а паре 10 - потенциал +2,5 В. При этом способе кодирования требуются дополнительные меры по борьбе с длинными последовательностями одинаковых пар бит, так как при этом сигнал превращается в постоянную составляющую. При случайном чередовании бит спектр сигнала в два раза уже, чем у кода NRZ, так как при той же битовой скорости длительность такта увеличивается в два раза. Таким образом, с помощью кода 2B1Q можно по одной и той же линии передавать данные в два раза быстрее, чем с помощью кода AMI или NRZI. Однако для его реализации мощность передатчика должна быть выше, чтобы четыре уровня четко различались приемником на фоне помех.