Компьютерные сети - курс лекций Гуманитарный факультет 4
ОСНОВЫ РАЗРАБОТКИ СЕТЕВЫХ ПРИЛОЖЕНИЙ
ЛЕКЦИЯ 1 Работа с именованными каналами 1. Введение 2. Организация каналов в Windows 3. Именованные каналы 4. Создание именованных каналов 5. Соединение сервера с клиентом 6. Соединение клиентов с именованным каналом 7. Обмен данными по именованному каналу 1.
Введение В области сетевого программирования имеется большой выбор различных технологий. В
данном курсе рассматриваются вопросы разработки сетевых приложений
в среде Windows с использованием интерфейса прикладного программирования Win32 APIВ операционную систему Windows включена поддержка сетей с
помощью четырех базовых типов программного обеспечения
: сервисы,
API,
протоколы и
драйверы сетевых адаптеров [2]. Они располагаются один над другим в виде стека, и для каждого уровня предусмотрены интерфейсы, что дает возможность создавать сетевые приложения на основе любого из них. Сетевые API обеспечивают независимое от протоколов и сетевого оборудования взаимодействие приложений через сеть.
Поэтому технология программирования на их основе представляется наиболее подходящей для тех специальностей, в учебные планы которых не входит глубокое изучение сетевого «железа» и перед которыми не ставится задача управления сетями.
2. Организация каналов в ОC Windows Любое сетевое взаимодействие, если говорить концептуально, представляет собой обмен данными между параллельными потоками. При этом предполагается, что потоки выполняются в контекстах различных процессов. Поскольку процессы изначально задумывались как обособленные сущности, для обеспечения корректного
взаимодействия процессов требуются специальные средства и действия операционной системы.
Если потоки выполняются в разных процессах, они не могут обращаться к общим переменным. Для обмена данными между ними операционная система
Компьютерные сети - курс лекций Гуманитарный факультет 5 создает некоторую передающую среду, аналог общей памяти, представляющую собой разделяемый ресурс, к которому имеют доступ оба потока ядра [1]. Если оформить этот разделяемый ресурс как общий файл, то получим простейший
канал передачи данных между процессами, в
том числе выполняющимися в разных компьютерах.
При этом ОС должна предоставить средства для генерации, именования, установки режима доступа и атрибутов защиты каналов. Такой канал доступен всем процессам, которые знают его имя и имеют необходимые привилегии.
Организация связи между процессами всегда предполагает установления таких ее характеристик, как
:
направление связи. Как рассматривалось ранее, связь бывает
однонаправленная (симплексная) и
двунаправленная (полудуплексная для поочередной передачи информации и дуплексная с возможностью одновременной передачи данных в разных направлениях);
используемая модель передачи данных - потоковая или модель сообщений;
объем передаваемой информации и сведения о том, обладает ли канал
буфером необходимого размера;
синхронность обмена данными. При передаче данных различают синхронный и асинхронный обмен данными. Если поток-отправитель, отправив сообщение, блокируется до получения этого сообщения потоком-адресатом, то такое
отправление сообщения называется
синхронным. В
противном случае отправление сообщения называется
асинхронным. Если поток-адресат блокируется до тех пор, пока не получит сообщение, то такое
получение сообщения называется
синхронным. В противном случае получение сообщения называется
асинхронным. Обмен сообщениями называется
синхронным, если поток-отправитель синхронно передает сообщения, а поток-адресат синхронно принимает эти со- общения. В противном случае обмен сообщениями называется
асинхронным. Предполагается, что
обмен данными потоком всегда происходит синхронным образом, т. к. в
этом случае между отправителем и адресатом устанавливается непосредственная связь.
Учитывая возможности синхронного обмена данными, этот механизм может использоваться для решения задач синхронизации процессов. При этом следует отметить, что
в операционных системах Windows синхронизация процессов, выполняющихся на разных компьютерах в локальной сети, может осуществляться только при помощи механизма синхронного обмена данными.