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

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

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

2
задан fixer1234
14.01.2023 5:22 Количество просмотров материала 3480
Распечатать страницу

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, чтобы иметь возможность общаться с другими компонентами на локальном или удаленном компьютере.

16
отвечен LawrenceC 2023-01-15 13:10

правда: 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:

enter image description here

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

enter image description here


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

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

    enter image description here

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

[MS-RSP]: Remote Shutdown Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-TSCH]: Task Scheduler Service Remoting Protocol 
[MS-EVEN6]: EventLog Remoting Protocol 
Adh APIs
AppInfo
Base Firewall Engine API
DHCP Client LRPC Endpoint
DHCPv6 Client LRPC Endpoint
DfsDs service
EFSK RPC Interface
Event log TCPIP
Fw APIs
Group Policy RPC Interface
IP Transition Configuration endpoint
IdSegSrv service
Impl friendly name
KeyIso
LicenseManager
NRP server endpoint
NSI server endpoint
NetSetup API
Ngc Pop Key Service
Proxy Manager client server endpoint
Proxy Manager provider server endpoint
Secure Desktop LRPC interface
Security Center
UserMgrCli
WM_WindowManagerRPC\Server
WinHttp Auto-Proxy Service
Witness Client Test Interface
Witness Client Upcall Server
XactSrv service
...

Received 499 endpoints.

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

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

5
отвечен osexp2003 2023-01-15 15:27

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

источник:http://searchsoa.techtarget.com/definition/Remote-Procedure-Call

удаленный вызов процедур (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:http://msdn.microsoft.com/en-us/library/windows/desktop/aa378651(v=vs. 85).aspx

цель

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

где это применимо

RPC можно использовать во всех клиент-серверных приложениях, основанных на операционных системах Windows. Его можно также использовать создание клиентских и серверных программ для гетерогенной сети среды, включающие такие операционные системы, как Unix и Apple.

2
отвечен Devid 2023-01-15 17:44

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх