Меню Рубрики

Microsoft windows rpc что это

Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC))

Системная служба удаленного вызова процедур (RPC) представляет собой механизм взаимодействия между процессами (IPC), который позволяет осуществлять обмен данными и вызывать функции из других процессов. Другой процесс может быть запущен на локальном компьютере, в локальной сети или на удаленном компьютере; для получения доступа к нему используется подключение по глобальной (WAN) или виртуальной частной (VPN) сети. Служба RPC выступает в роли службы отображения конечных точек RPC и диспетчера служб СОМ (Component Object Model). Служба удаленного вызова процедур необходима для запуска многих других служб.

Эту службу можно назвать ключевой в Windows XP, ваша система не будет без нее работать, именно поэтому это единственная служба, которую вы не можете отключить через консоль Службы (services.msc). Отключение данной службы в Windows 2000 приводило к тому, что система переставала загружаться. Поэтому я КАТЕГОРИЧЕСКИ не рекомендую отключать эту службу (а сделать это можно только через утилиту msconfig).

Название службы: RpcSs
Название процесса: svchost.exe
По умолчанию в Windows XP Home: Автоматически
По умолчанию в Windows XP Pro: Автоматически
Рекомендуемое значение: Автоматически
Вход от имени: Сетевая служба
Используемые протоколы и порты, на которых служба ожидает входящий трафик: TCP: 135, TCP: 593

Какие сервисы нужны для нормального функционирования службы Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)):

Какие сервисы требуют работу службы Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)) для нормального функционирования:

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

MSRPC (Microsoft Remote Procedure Call)

MSRPC (Microsoft Remote Procedure Call)

Communications protocol
Purpose Управление сетевыми протоколами и связью
Developer(s) Microsoft
Introduced 2005 ; 15 years ago ( 2005 )
Based on OSI
OSI layer transport

MSRPC (Microsoft Remote Procedure Call)— это протокол, использующий принцип клиент-сервера.Он нужен для того, чтобы программа смогла запросить обслуживание у другой программы на удаленном компьютере, не затрагивая при этом другие программные обеспечения. MSRPC с самого начала был создан с открытым исходным кодом, но был усовершенствован, а также защищен авторским правом Microsoft. [Источник 1]

Содержание

История создания

MSRPC (Microsoft Remote Procedure Call) является производной этапа реализации Distributed Computing Environment 1.1 от Open Software Foundation, но защищен авторским правом Microsoft. Первоначально RPC был заказом Open Software Foundation для того, чтобы ввести новые стандарты для вычислительной инфраструктуры. В то время ни один из поставщиков программного обеспечения не хотел использовать сложный DCE или компоненты похожие на него. Стандарт бинарного интерфейса Microsoft в значительной степени основывался на MSRPC, добавляя новые функции. [Источник 2]

Собственная технология Microsoft, Distributed Component Object Model (DCOM), предназначена для взаимодействия программных компонентов, распределенных по нескольким компьютерам. «D» был добавлен в COM из-за широкого использования DCE / RPC. DCOM, который первоначально назывался «Network OLE», способствовал улучшению COM-интерфейса Microsoft и обеспечивал коммуникационный субстрат в рамках инфраструктуры сервера приложений Microsoft + COM. Данные протоколы устарели, и поэтому спрос возрос в пользу Microsoft.

Использование протокола MSRPC (Microsoft Remote Procedure Call)

Рисунок 1 — Процедура Microsoft Remote Procedure Call

Данный протокол использовала компания Microsoft для получения моделей серверов. К примеру, некоторые протоколы Windows Server полностью основаны на MSRPC, как и система администрирования DNS от Microsoft. Большая часть интерфейсов Microsoft Exchange Server это клиент-серверные программы MSRPC, а его MAPI стал защищенней благодаря шифрованию MAPI через набору функций MSRPC, который зашифровывал информацию на уровне MSRPC без использования протокола MAPI. [Источник 3]

Протокол MSRPC использует спецификацию распределенной вычислительной среды Microsoft или удаленного вызова процедур (DCE / RPC) для обеспечения безагентного шифрованного сбора событий. Протокол MSRPC обеспечивает более высокую частоту событий, чем стандартный протокол журнала безопасности Microsoft Windows, который использует для сбора событий порты WMI / DCOM.

Протокол MSRPC работает на 6-м и 7-м уровне модели OSI, т.е. на уровне представления и приложений. Средство тестирования MSRPC проверяет связь между устройством QRadar® и хостом Windows. Средство тестирования MSRPC является частью RPM протокола MSRPC и может быть найдено в / opt / qradar / jars после установки протокола. Действие протокола MSRPC начинается со стороны клиента, в момент когда программа вызывает локальную часть кода вместо полного кода. . Из этой части кода клиент извлекает нужные параметры из адресного пространства другого клиента и доставляет их в клиентскую библиотеку, которая после переводит параметры в стандартный формат предоставления сетевых данных на сервер. Затем часть кода клиента вызывает функции в библиотеке времени выполнения RPC-клиента для отправки запроса и параметров на сервер. Если сервер расположен удаленно, библиотека времени выполнения задает соответствующий транспортный протокол и механизм и передает RPC в сетевой стек для передачи на сервер. [Источник 4]

Ниже перечислены задачи, выполняемые в процессе разработки с использованием Microsoft RPC:

  1. Создание файла на языке определения интерфейсов, который определяет идентификацию интерфейса, типы данных и функциональные прототипы для удаленных процедур.
  2. Создание файла конфигурации приложения.
  3. Компиляция определения интерфейса с использованием MIDL. Компилятор MIDL генерирует файлы на языке C для стабов и заголовочные файла для клиента и сервера.
  4. Включение (include) заголовочных файлов, сгенерированных компилятором MIDL в программы сервера и клиента.
  5. Написание исходного текста программы сервера, которая вызывает функции RPC, чтобы сделать информацию связывания доступной клиенту, затем вызывает RpcServerListen для начала прослушивания клиентских запросов. Обеспечение метода остановки сервера.
  6. Компоновка клиента с файлом клиентского стаба и клиентской RPC-библиотекой времени выполнения.
  7. Компоновка сервера с файлом серверного стаба, удаленными процедурами и серверной RPC-библиотекой времени выполнения.

Компоненты Microsoft RPC

Реализация Microsoft RPC совместима со стандартом DCE консорциума OSF (Open Software Foundation) с небольшими различиями. Клиентские или серверные приложения, написанные с использованием Microsoft RPC, могут эксплуатироваться совместно с любыми DCE / RPC серверами или клиентами, чьи библиотеки времени выполнения работают над поддерживаемым протоколом.

Продукт Microsoft RPC включает следующие главные компоненты:

  • компилятор MIDL;
  • библиотеки времени выполнения и заголовочные файлы;
  • модули транспортного интерфейса;
  • провайдер сервиса имен;
  • сервис подключения (Endpoint supply service).

В модели RPC, можно формально определять интерфейс к удаленным процедурам, используя язык, разработанный для этой цели. Это так называемый язык определения интерфейсов, или IDL (Interface Definition Language). Реализация Microsoft этого языка называется MIDL. После того, как был создан интерфейс, его необходимо пропустить через компилятор MIDL. Компилятор генерирует стабы (stub), которые транслируют локальные вызовы процедуры в удаленные. Стабы являются заместителями функций и в свою очередь производят вызовы функций библиотеки времени выполнения, выполняющих удаленный вызов процедур. Преимущество такого подхода в том, что сеть становится почти полностью прозрачной для распределенного приложения. В таких случаях клиентская программа как будто бы вызывает локальные процедуры; работа по превращению их в удаленные вызовы выполняется автоматически. Весь код, который транслирует данные, обращается к сети, и возвращает результаты, генерируется компилятором MIDL, и невидим для прикладной программы.

Принцип работы MSRPC (Microsoft Remote Procedure Call)

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

Вместо фактического кода, реализующего удаленную процедуру, код стаба пользователя:

  • выбирает требуемые параметры из адресного пространства клиента;
  • транслирует параметры в стандартный сетевой формат представления данных (NDR – network data representation), что необходимо для их передачи по сети;
  • вызывает функции клиентской RPC-библиотеки времени выполнения, чтобы послать запрос и параметры серверу.

Сервер выполняет следующие шаги, чтобы вызвать удаленную процедуру:

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

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

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

Клиент завершает процесс, принимая данные из сети и возвращая их вызвавшей функции:

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

Для Microsoft Windows и Microsoft Windows NT, библиотеки времени выполнения состоят из двух частей: импортируемой библиотеки, компонуемой с прикладной программой; и RPC-библиотеки времени выполнения, которая реализована как динамическая (DLL). Серверное приложение содержит вызовы функций серверной библиотеки времени выполнения, которые регистрируют интерфейс сервера и позволяют серверу принимать удаленные вызовы. Серверное приложение также содержит и сами специфические удаленные процедуры, предназначенные для вызова клиентскими приложениями. [Источник 5]

Источник

Что такое RPC и почему это так важно?

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

можно ли суммировать назначение службы RPC и почему зависит так много других служб/приложений/операций на нем бежать?

3 ответов

дизайнеры Windows решили сделать так, чтобы многие вещи говорили друг с другом через RPC — так что они могут говорить либо локально, либо по сети.

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

Я считаю, даже когда вы получаете доступ к консоли MMC, как compmgmt.msc просмотреть о локальной машины, это в основном ЭКП передоза на localhost (хотя, я могу ошибаться).

думайте о RPC как о чем-то на один уровень выше TCP/IP, который используется в качестве низкоуровневой (и небезопасной) сетевой инфраструктуры связи многими компонентами Windows. Почему бы не использовать TCP/IP напрямую? В то время Windows NT был спроектирован (начальная версия выпущена в 1993 году), у вас были другие сетевые протоколы, кроме TCP / IP в общем использовании, такие как Netware (SPX / IPX), NetBIOS, AppleTalk (я думаю, что Windows поддерживает это раньше это могло быть неправильно . ) и такое. Таким образом, это не зависящий от сети Способ для компонентов Windows, чтобы иметь возможность общаться с другими компонентами на локальном или удаленном компьютере.

правда: RPC широко используется в LOCAL машина, но для host-хост использование, в основном используется Microsoft внутри, редко используется сторонними.

LOCAL RPC основное использование:

необработанный компонент RPC, такой как реестр, Netlogon, Брандмауэр, управление службами, SQL Server. Вы можете увидеть некоторые из них в списке в разделе «HOST-to-HOST» раздел.

многие компоненты DCOM (основанные на RPC, как оболочка C++), включают компоненты COM+.

вы можете запустить dcomcnfg, чтобы увидеть, сколько компонентов DCOM на вашем компьютере:

Excel, Internet Explorer, Visual Studio. смогите быть автоматизировано потому что они компонент DCOM:

даже диалоговое окно свойств файла проводника также являются компонентом DCOM, смешно? Если вы удалите все списки управления доступом из «пределов редактирования» разрешений на запуск DCOMCNFG, вы не сможете сделать почти ничего, не только управление работает!, даже показать свойство файла в проводнике!

host-хост RPC основное использование:

удаленное управление вещи, такие как, когда «Управление компьютером», «редактор реестра», вы можете позволить ему подключиться к удаленной машине! Что происходит подчеркивание-RPC по протоколу SMB (TCP-порт 445, известный как общий доступ к файлам).

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

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

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

удаленный вызов процедур (RPC)

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

когда программные операторы, использующие RPC, компилируются в выполнимый программа, стаб включается в скомпилированный код, который действует как представитель удаленного кода процедуры. При запуске программы и вызов процедуры выдается, заглушка получает запрос и перенаправляет его клиентской программе среды выполнения на локальном компьютере. Тот программа Client runtime имеет знания о том, как IP-адрес удаленной компьютер и серверное приложение и отправляет сообщение через сеть, запрашивающая удаленную процедуру. Аналогично сервер включает программу времени выполнения и заглушку, которая взаимодействует с удаленным сама процедура. Результаты возвращаются таким же образом.

существует несколько моделей и реализаций RPC. Популярная модель и реализация-распределенные вычисления Open Software Foundation Окружающая среда (DCE). Институт электротехники и электроники Инженеры определяют RPC в спецификации удаленного вызова процедур ISO, ISO / IEC CD 11578 N6561, ISO / IEC, ноябрь 1991 года.

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

альтернативные методы связи клиент / сервер включают сообщение организация очередей и IBM Advanced Program-to-Program Communication (APPC).

цель
Microsoft Remote Procedure Call (RPC) определяет мощную технологию для создания распределенных клиент-серверных программ. Заглушки и библиотеки времени выполнения RPC управляют большинством процессов относящиеся к сетевым протоколам и связи. Это позволяет сосредоточьтесь на деталях приложения а не детали сеть.
где это применимо
RPC можно использовать во всех клиент-серверных приложениях, основанных на операционных системах Windows. Его можно также использовать создание клиентских и серверных программ для гетерогенной сети среды, включающие такие операционные системы, как Unix и Apple.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Microsoft windows qfe что это
  • Microsoft windows powershell windows xp
  • Microsoft windows power troubleshooter
  • Microsoft windows photo gallery viewer
  • Microsoft windows phone новости