Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОС.docx
Скачиваний:
44
Добавлен:
22.09.2019
Размер:
3.18 Mб
Скачать

66. Сетевые api Winsock и rpc в Windows. (Лекция 13)

Windows sockets (Winsock) – реализация API BSD-sockets (стандарт взаимодействия UNIX-систем в IP-сетях).

Winsock расширен компонентами доступа к транспортным сервисам (transport service providers) и пространствам имен (namespace service providers) и интегрирован с моделью ввода-вывода, с помощью AFD FSD.

AFD (Ancillary Function driverдрайвер для вспомогательных целей) – драйвер файловой системы, принимающий команды от Winsock и посылающий IPR-пакеты.

RPC (Remote procedure call) – удаленный вызов процедуры (стандарт Open Software Foundation).

ПО клиента выполняет вызов. Реально вызывается заглушка (stub), выполняется упаковка аргументов (marshaling) и передача по сети.

Сервер принимает данные, выполняет распаковку (unmarshaling), исполнение и возврат данных.

R PC может быть синхронным и асинхронным.

Коммутатор, размещаемый на уровень ниже Winsock DLL, переадресует сетевые операции SAN провайдеру сервисов Winsock (Winsock service provider, WSP), который предоставляется производителем SAN. WSP служит эквивалентом NDIS-драйвера, работающим в пользовательском режиме, и может проецировать аппаратные регистры SAN на память пользовательского режима, а затем манипулировать оборудованием без участия компонентов режима ядра.

RPC - стандарт сетевого программирования, разработанный в начале 80-x. RPC, опираясь на другие сетевые API (именованные каналы или Winsock), предоставляет альтернативную модель программирования, скрывающую детали сетевого программирования от разработчика приложений. Механизм RPC позволяет создавать приложения, состоящие из произвольного числа процедур, часть которых выполняется локально, а часть - на удаленных компьютерах (через сеть). RPC предоставляет модель работы с сетью, ориентированную на процедуры, а не на транспорты, что упрощает разработку распределенных приложений.

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

67. Поддержка сетей в Windows: стандарты tdi, ndis. (Лекция 13)

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

TDI (Transport Driver Interface) – унифицированный стандарт переформатирования сетевых запросов в IRP-пакеты (установка и завершения соединения, переход в режим прослушивания и т.п.). Transport Driver Interface (TDI) - общий интерфейс для драйверов (Windows 2000 redirector и server) для общения с различными сетевыми транспортными протоколами. Это позволяет сервисам оставаться независимыми от транспортных протоколов. В отличие от NDIS, нет драйвера для TDI, который является спецификацией для передачи сообщений между двумя уровнями в сетевой архитектуре. Microsoft разработали TDI чтобы обеспечить большую гибкость и функциональность чем это обеспечивали существующие интерфейсы (Winsock и NetBIOS). Весь транспорт в Windows 2000 имеет прямой интерфейс к TDI. Это позволяет TDI обеспечивать последовательный интерфейс транспортных протоколов. Спецификация TDI описывает набор функций и механизмов вызова, с помощью которых транспортные драйверы и TDI клиенты общаются.

Главные черты TDI: - Асинхронные операции: Большинство операций в TDI (режим ядра) это асинхронные операции; это значит, что они используют обратный вызов процедур, который обеспечивают TDI клиенты, для определения любых событий в сети когда-либо происходивших. - Гибкая схема адресации: Одна из черт и достоинств использования TDI это то, что TDI предлагает гибкую схему адресации. TDI имеет специальный и расширяемый механизм, который может быть использован в целях поддержки, использования и идентификации различных форматов адресации. - Уведомление о событии: Это специальная черта TDI с помощью которой определяется какая схема используется и транспорты могут предупреждать клиентов о любом интересующем событии в сети.

32-битная адресация: Другая черта интерфейса транспортных драйверов это то, что и транспорты и клиенты оба 32 разрядные.

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

• Уведомление о событии (Plug & Play): Интерфейс транспортного драйвера определяет конкретную схему с помощью которой транспорты (in case of Windows 2000 & later versions) могут уведомлять TDI клиента о различных событиях PnP, таких как удаление или добавление соединений и другое.

Клиент TDI – компонент, специфичный для сетевого API. Транспорт TDI (драйвер протокола) – реализация протоколов L3/L4. TDI поддерживает функции обратного вызова

NDIS (Network Driver Interface Specification) – стандарт аппаратно-независимого взаимодействия драйверов протоколов с драйверами сетевых адаптеров.

Драйвер NDIS:

- поддерживает IRP;

- предоставляет среду исполнения для NDIS-минипортов (реентерабельность);

- контролирует доступность физической среды;

- обрабатывает сигналы Wake-On-LAN;

- поддерживает ATM и аппаратное ускорение TCP/IP.

Промежуточный драйвер NDIS (NDIS intermediate driver) – является NDIS-драйвером для TDI и TDI-драйвером для NDIS. Цель – анализ трафика на разных уровнях модели OSI.

Применение: планировщик пакетов (QoSquality of service), перехват пакетов, балансировка нагрузки между сетевыми картами (network load balancing).

Минипорт NDIS:

- не поддерживает IRP-пакеты;

- определяет доступность среды, состояние электропитания устройства и т.п.;

- может не учитывать (serialized) или учитывать (desrialized) реентерабельность;

- совместим с Windows 9x.