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

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

Покана за отдалечена процедура: Какво е това?

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

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

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

Обикновено услугата RPC за извикване на отдалечена процедура работи в режимКлиент-сървърът изисква поне два основни компонента: мрежов протокол за обмен на данни и език за сериализация (превод на процес или структура от данни в битова последователност).
Архитектурите могат да бъдат напълно различни и да се различават по своите възможности. Но за обмен на данни на т.нар. Транспортен слой най-често се използват UDP и TCP протоколите, по-рядко HTTP
.
За да не се разглеждат технически аспекти, следващият пример може да бъде най-простото обяснение на принципа на тези технологии: клиентският процес създава заявка за сървър с описание на избраната процедура с посочените параметри и я изпраща, след което сървърът изпълнява необходимата директива и изпраща на клиента отговора, който се показва на клиентска машина. Самият процесор на сървъра е, така да се каже, в режим на готовност и се активира само в моменти на получаване на клиентски заявки. В същото време не е необходимо изпълнението на схемата „искане-отговор“ да се извършва незабавно.

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

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

По този начин могат да бъдат разграничени две основни характеристики на тези технологии:
  • асиметрия (започване на дистанционно изпълнение на процедура само от една от страните);
  • синхронизация (причината за спирането епроцедурите от момента, в който искането и подновяването са започнали след изпращане на отговора).
  • Що се отнася до внедряването, отдалечените процедури (разговори за дистанционни процедури) днес използват няколко основни технологии, сред които най-широко използвани са следните:
  • DCE /RPC - двоичен протокол, базиран на TCP /IP, SMB /SIFC и др. .;
  • DCOM - обектно-ориентирано приложение с възможност за прехвърляне на препратки към обекти и извикване на техните методи за обработка;
  • JSON-RPC - текстов протокол HTTP;
  • .NET Remoting - двоичен протокол, базиран на UDP, HTTP и TCP;
  • JAVA RMI;
  • SOAP;
  • XML-RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC et al.
  • Проблеми и задачи

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

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

    Отдалечена процедура за извикване за Windows 10 или всяка друга система с по-нисък ранг включва използването на специални подсистеми:
  • транспортна подсистема, предназначена да контролира изходящите и входящите връзки с гарантирана доставка на пакети данни;
  • протоколи за пула - концепцията за изпълнение на процедурата на извикания терминал;
  • сериализация (marshaling) - преобразуване на потоци от данни в стандартни байтови кодове, независимо от архитектурата;
  • криптиране на изпратени и получени пакети с налагане на електронен подпис върху тях;
  • Система за удостоверяване и оторизация.
  • Какви видове програми изискват прилагане на RPC?

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

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

    Какво е засегнато от RPC

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

    Можете да деактивирате тази услуга

    Като цяло, много от тях са опитвали (и се опитват) да деактивират услугата Процедури за отдалечено повикване. Това е строго забранено. Като цяло, самата система, когато прави такъв опит, няма да направи това, като издаде известие.
    Но не всеки знае, че секцията за услуги (services.msc) има нещо като "отдалечена процедура за извикване на процедури (RPC)".

    Разрешаване на повреди и грешки

    И накрая, нека да разгледаме какво може да се направи, ако възникне грешка по време на процедура за дистанционно повикване. )
    За да направите това, в съответния раздел, в който се извиква желаната услуга, кликнете два пъти върху менюто за редактиране на настройките, бутонът за захранване е натиснат, а типът на включване е зададен на автоматичен. Ако изпълните такава процедураПри стандартно зареждане на системата не е възможно, можете да опитате да извършите подобни действия в безопасен режим. Някои експерти съветват в същото време действията само да деактивират антивирусния софтуер.
    ​​Ако това не работи, но има налична система за инсталиране или възстановяване, можете да стартирате командната конзола с администраторски права (не е необходимо зареждане от диск) и да напишете в нея следните команди:
  • cd z: i386 (Z е буквата оптично устройство);
  • expand explorer.ex_% TEMP% explorer.exe;
  • разширяване на svchost.ex_% TEMP% svchost.exe.
  • След това стартираме Task Manager (Ctrl + Del + Alt или taskmgr в менюто Run) и завършим процеса Explorer.exe. След това в командната конзола напишете следното: copy% TEMP% explorer.exe% SYSTEMROOT% /y. В "Диспечер" спираме всички процеси svhost.exe, след което в рамките на 60 секунди трябва да въведете командния ред, въведете линията копие% TEMP% svchost.exe% systemroot% system32 /y. И накрая, ако редакторът на системния регистър (regedit) е възстановен, трябва да преминете през клона на HKCC чрез секциите SYSTEM CurrentControlSet и да стигнете до параметъра CSConfigFlags като промените стойността му на нула. Това е далеч от всички методи за определяне на грешки, свързани с RPC. Факт е, че ако тази услуга е причинила нарушение в работата на други служби, може да се наложи първо да елиминирате проблемите с тяхната работоспособност и тогава да предприемете само действия по RPC. И не винаги е възможно да получите пълен достъп до настройките и настройките, описани по-горе. Ако абсолютно нищо няма да се окаже, както звучи тъжно, ще трябва напълно да преинсталира операционната система,въпреки че бих искал да се надявам, че това няма да е така.

    Заключение

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

    Свързани публикации