Удаленный вызов процедур rpc windows

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

Посетителей: 246057 | Просмотров: 295841 (сегодня 1) Шрифт:

Системная служба удаленного вызова процедур (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)) для нормального функционирования:

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

Что такое RPC?

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

Из этого руководства по операционной системе вы узнаете:

Типы RPC

  • Обратный вызов RPC
  • Трансляция RPC
  • RPC в пакетном режиме

Обратный вызов RPC

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

Функции Callback RPC:

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

Трансляция RPC

Широковещательный RPC — это запрос клиента, который транслируется в сети и обрабатывается всеми серверами, у которых есть метод обработки этого запроса.

Функции Broadcast RPC:

  • Позволяет указать, что сообщение запроса клиента должно быть передано.
  • Вы можете объявить широковещательные порты.
  • Это помогает снизить нагрузку на физическую сеть

RPC в пакетном режиме

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

Функции RPC в пакетном режиме:

  • Это сводит к минимуму накладные расходы, связанные с отправкой запроса, так как он отправляет их по сети одним пакетом на сервер.
  • Этот тип протокола RPC эффективен только для приложений, которым требуется более низкая скорость вызовов.
  • Требуется надежный протокол передачи.
Читайте также:  Ubuntu рабочая группа windows

Как работает RPC?

Архитектура RPC имеет в основном пять компонентов программы:

  1. клиент
  2. Клиентская заглушка
  3. RPC Runtime
  4. Серверная заглушка
  5. сервер

В процессе RPC выполняются следующие шаги:

Шаг 1) Клиент, заглушка клиента и один экземпляр времени выполнения RPC выполняются на клиентском компьютере.

Шаг 2) Клиент запускает процесс-заглушку клиента, передавая параметры обычным способом. Клиентская заглушка хранится в собственном адресном пространстве клиента. Он также просит локальную среду выполнения RPC отправить обратно на заглушку сервера.

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

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

Шаг 5) На этом этапе транспортный уровень отправляет сообщение с результатом клиентскому транспортному уровню, который возвращает сообщение клиентской заглушке.

Шаг 6) На этом этапе клиентская заглушка демаршаллизирует (распаковывает) возвращаемые параметры в результирующем пакете, и процесс выполнения возвращается вызывающей стороне.

Характеристики RPC

Вот основные характеристики RPC:

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

Особенности RPC

Вот некоторые важные особенности RPC

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

Преимущества RPC

Вот плюсы / преимущества RPC

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

Недостатки RPC

Вот минусы / недостатки использования RPC:

  • Удаленный вызов процедуры передает параметры только по значениям и значениям указателя, что недопустимо.
  • Время удаленного вызова (и возврата) процедуры (т. Е. Накладные расходы) может быть значительно меньше, чем для локальной процедуры.
  • Этот механизм очень уязвим к сбоям, так как включает в себя систему связи, другую машину и другой процесс.
  • Концепция RPC может быть реализована различными способами, что не является стандартным.
  • Не предлагает никакой гибкости в RPC для аппаратной архитектуры, так как он в основном основан на взаимодействии.
  • Стоимость процесса увеличивается из-за удаленного вызова процедуры.

Удаленные процедуры: вызов удаленных процедур, определение и особенности

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

Удаленный вызов процедур: что это?

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

Читайте также:  0x8002801c при регистрации dll windows

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

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

Принцип действия

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

Архитектуры могут быть совершенно разными и отличающимися по своим возможностям. Но для обмена данными на так называемом транспортном уровне чаще всего применяются протоколы UDP и TCP, реже – HTTP.

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

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

Удаленные процедуры (вызов удаленных процедур): характерные черты и реализации

Таким образом, можно выделить две главные особенности названных технологий:

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

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

  • DCE/RPC – бинарный протокол на основе TCP/IP, SMB/SIFC и т. д.;
  • DCOM – объектно-ориентированное дополнение с возможностью передачи ссылок на объекты и вызовом методов их обработки;
  • JSON-RPC – текстовый протокол, основанный на HTTP;
  • .NET Remoting – бинарный протокол на основе UDP, TCP и HTTP;
  • JAVA RMI;
  • SOAP;
  • XML RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC и др.

Проблемы и задачи

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

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

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

Основные типы подсистем

Удаленный вызов процедур Windows 10 или любой другой системы рангом ниже подразумевает использование специальных подсистем:

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

Какие типы программ требуют выполнения RPC?

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

Читайте также:  Драйвера для lan сетевых карт windows 10

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

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

На что влияет RPC

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

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

Можно ли отключить эту службу

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

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

Устранение сбоев и ошибок

Наконец, посмотрим, что можно сделать, если выдается ошибка при удаленном вызове процедуры. В самом простом случае можно попытаться включить службу заново (если, конечно, получится).

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

Если это не поможет, но под рукой имеется установочный или восстановительный диск системы, можно запустить командную консоль с правами администратора (загружаться с диска не нужно) и прописать в ней такие команды:

  • cd z:\i386 (Z – литера оптического привода);
  • expand explorer.ex_ %TEMP%\explorer.exe;
  • expand svchost.ex_ %TEMP%\svchost.exe.

После этого запускаем «Диспетчер задач» (Ctrl + Del + Alt или taskmgr в меню «Выполнить») и завершаем процесс Explorer.exe.

Далее в командной консоли прописываем следующее: copy %TEMP%\explorer.exe %SYSTEMROOT% /y.

В «Диспетчере» останавливаем все процессы svhost.exe, после чего в течение 60 секунд нужно успеть в командой строке ввести строку copy %TEMP%\svchost.exe %systemroot%\system32 /y.

Наконец, если есть доступ к редактору системного реестра (regedit) восстановлен, нужно пройти по ветке HKCC через разделы SYSTEM и CurrentControlSet и добраться до параметра CSConfigFlags, изменив его значение на ноль.

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

Заключение

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

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

Оцените статью