Дистанционни процедури: извикване на отдалечени процедури, дефиниции и характеристики

09.04.2019

Много потребители на компютърни системи са чували за понятия като отдалечени процедури, извиквания от отдалечени процедури или RPC. Но само не всички си представят какви технологии са, как работят и за какво са. Но много от тези, които са деактивирали тази услуга в Windows-базирани системи, често могат да получават грешки, свързани с критични грешки. Това и още много други неща ще бъдат обсъдени по-късно.

Дистанционна процедура: какво е това?

Струва си да се започне с някаква теоретична информация. Отдалечените процедури (извиквания на отдалечени процедури) се считат за механизъм, който ви позволява да изпълнявате или използвате всякакви функции на компютърни системи в адресно пространство, различно от използвания терминал. Просто казано, това е начин за достъп отдалечен компютър например чрез локална мрежа или интернет връзка.

отдалечените процедури извикват отдалечени процедури

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

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

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

Като правило услугата RPC за отдалечена процедура за операция клиент-сървър изисква най-малко два основни компонента: мрежов протокол за обмен на данни и език за сериализация (превод на някаква структура от процеси или информация в битова последователност).

Windows 10 дистанционна процедура процедура

Архитектурите могат да бъдат напълно различни и да се различават по своите възможности. Но за обмен на данни на т.нар. Транспортно ниво най-често се използват протоколите 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 et al.

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

Сега няколко думи за недостатъците. Основният проблем и съответно задачата за изпълнение е, че една и съща операция за извикване на отдалечена процедура през възела за обслужване на отдалечена процедура трябва да се изпълнява едновременно на различни машини, често с различни операционни системи, адресни пространства и архитектура. , При това тези параметри трябва да бъдат копирани от един терминал в друг. За тази цел се използва не само транспортният протокол, но и сериализацията, която позволява преобразуването на различни байтови последователности типове данни.

Втората точка е свързана с факта, че отдалечените процедури (извикване на отдалечени процедури) използват не един процес, както на местно ниво, а два (на клиентската машина и на сървъра). Следователно, ненормалното прекратяване на програмата на един от терминалите може да предизвика същата реакция в другата.

И накрая, един от основните въпроси е проблемът за съвместимостта поради разнородността на някои езици за програмиране, въпреки установените единни стандарти.

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

Отдалечената процедура за Windows 10 или друга система с подреждане по-долу предполага използването на специални подсистеми:

  • транспортна подсистема, предназначена за управление на изходящи и входящи връзки с гарантирана доставка на пакети данни;
  • Базови протоколи - концепцията за процедурата на наречения терминал;
  • сериализация (marshaling) - преобразуване на потоци от данни в стандартни байтови кодове, независимо от архитектурата;
  • Шифроване на изпратени и получени пакети с налагане на електронен подпис върху тях;
  • система за удостоверяване и оторизация.

Какви видове програми изискват изпълнение на RPC?

Ако говорим за това кои модули на операционната система изискват да поддържате услугата RPC разрешена, просто е невъзможно да се изброят всички тях.

отдалечено повикване за процедура rpc забранено

Но сред всички добре познати компоненти на Windows системите, можем да споменем факс услугата, криптографската услуга, регистриране на грешки, помощ и поддръжка, достъп до HID устройства, куриерски услуги, управление на дискове и логически дялове, сменяемо управление на паметта, аудио система, Windows инсталатор и др. Бог знае какво.

Изглежда, че този списък е достатъчен, за да се разбере колко много компоненти на системата и самият потребител са зависими от тази услуга.

Какво влияе RPC

Като цяло, въз основа на предишното описание, можете да оцените ефекта на RPC. Така, например, има много случаи, когато при изключване на тази услуга звукът изчезва напълно, невъзможно е да се възстанови системата след критични повреди или когато се инициира от потребителя, настройките на безжичната мрежа „летяха”.

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

Възможно ли е да деактивирате тази услуга

Като цяло, много от тях са опитвали (и се опитват) да изключат услугата за отдалечено извикване на процедура. Това е строго забранено. Като цяло, самата система, при извършването на такъв опит да направи това, няма да даде, издавайки подходящо уведомление.

rpc локатор за отдалечени процедури

Но не всеки знае, че в секцията за услуги (services.msc) все още има такова нещо като „Remote Locator Call RPC“. Тук той просто може да бъде изключен безболезнено за системата. Приложения, които могат да го използват в работата си, ще изискват самостоятелно обслужване, ако е необходимо.

Отстраняване на грешки и грешки

И накрая, нека видим какво може да се направи, ако се генерира грешка по време на извикване на отдалечена процедура. В най-простия случай можете да опитате отново да активирате услугата (ако, разбира се, успее).

услуга rpc дистанционна процедура процедура

За да направите това, в съответния раздел, където се намира услугата, щракнете двукратно върху менюто за редактиране на параметри, натиснете бутона за захранване и типът на включване е настроен на автоматичен. Ако не е възможно да се извърши тази процедура със стандартно зареждане на системата, можете да опитате да извършите подобни действия в безопасен режим. Някои експерти съветват в същото време по време на действие, за всеки случай, деактивирайте антивирусния софтуер.

отдалечената процедура извиква какво е то

Ако това не помогне, но имате инсталационен или възстановителен диск на системата, можете да изпълните командната конзола с администраторски права (не е необходимо да стартирате от диска) и да напишете в нея следните команди:

След това стартирайте Task Manager (Ctrl + Del + Alt или taskmgr в менюто Run) и приключете процеса Explorer.exe.

След това в командната конзола напишете следното: copy% TEMP% explorer.exe% SYSTEMROOT% / y.

В "Диспечер" спираме всички процеси svhost.exe, а след това в рамките на 60 секунди трябва да имаме време в командния ред, за да въведем копие на линията.

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

Това не са всички методи за коригиране на грешки, свързани с RPC. Факт е, че ако тази услуга е причинила прекъсвания в работата на други услуги, първо може да се наложи да разрешите проблеми с тяхното изпълнение и едва след това да предприемете действия срещу RPC. И не винаги е възможно да получите пълен достъп до описаните по-горе параметри и настройки. Ако изобщо няма да се случи нищо, без значение колко жалко може да звучи, ще трябва напълно да преинсталирате операционната система, въпреки че бих искал да се надявам, че това няма да се случи.

заключение

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

Що се отнася до изключването, не се опитвайте да правите тези неща, в противен случай цялата система ще се провали. Горните решения за отстраняване на повреди обикновено помагат, но все още не можете да дадете пълна гаранция, защото деактивирането на услуга може да доведе до повреди в други компоненти.