Daljinski postupci: poziv udaljenim postupcima, definicijama i značajkama

9. 4. 2019.

Mnogi korisnici računalnih sustava čuli su za koncepte kao što su udaljeni postupci, udaljeni postupci ili RPC-ovi. Ali samo ne svi zamišljaju kakve su to tehnologije, kako rade i čemu služe. No, mnogi od onih koji su onemogućili ovu uslugu u sustavima sa sustavom Windows često mogu primati pogreške povezane s kritičnim kvarovima. O ovome i još mnogo toga raspravit ćemo kasnije.

Daljinski poziv na poziv: što je to?

Vrijedi početi s nekim teorijskim informacijama. Udaljeni postupci (pozivi s udaljene procedure) smatraju se mehanizmom koji vam omogućuje pokretanje ili korištenje funkcija računalnih sustava u adresnom prostoru različitom od korištenog terminala. Jednostavno rečeno, ovo je način pristupa udaljeno računalo na primjer, putem lokalne mreže ili internetske veze.

udaljeni postupci pozivaju se na udaljene postupke

Međutim, udaljeni postupci (pozivi s udaljenim procedurama), koji se nazivaju RPC (skraćeno od Remote Procedure English), mogu se pripisati ne samo udaljenim računalima. Na lokalnoj razini takve se tehnologije također koriste. Kao jednostavan primjer, možete pozvati određenu funkciju jednog programa iz druge aplikacije kroz interakciju kroz posebne knjižnice.

Osim toga, apsolutno sve verzije sustava Windows imaju takvu uslugu, a kada je onemogućena ili neuspjeh XP modifikacije uopće ne funkcionira.

Načelo djelovanja

Usluga RPC za udaljeni postupak poziva za operaciju klijent-poslužitelj u pravilu zahtijeva najmanje dvije glavne komponente: mrežni protokol za razmjenu podataka i jezik za serijalizaciju (prijevod neke procesne ili informacijske podatkovne strukture u bitni slijed).

Windows 10 daljinski poziv postupak

Arhitekture mogu biti potpuno različite i razlikuju se po svojim mogućnostima. No za razmjenu podataka na tzv. Transportnoj razini najčešće se koriste UDP i TCP protokoli, rjeđe - HTTP.

pogreška u pozivu za udaljeni postupak

Kako ne bi ulazili u tehničke aspekte, najjednostavnije objašnjenje kako takve tehnologije funkcioniraju može biti sljedeći primjer: proces klijenta formira zahtjev poslužitelju koji opisuje odabranu proceduru s navedenim parametrima i šalje ga, nakon čega poslužitelj izvršava potrebnu direktivu i šalje klijentu odgovor koji je prikazan na klijentu auto. Međutim, sam upravljač poslužitelja je, da tako kažem, u stanju čekanja i aktivira se samo u trenucima primanja zahtjeva klijenta. U isto vrijeme, uopće nije potrebno da se izvršenje sheme "zahtjev-odgovor" provede odmah.

U isto vrijeme, maksimalni učinak učinka postiže se razmjenom relativno malih količina podataka i kratkim vremenom odziva komponenti između kojih je uspostavljena interaktivna veza.

Daljinski postupci (poziv na daljinski postupak): značajke i implementacije

Stoga možemo razlikovati dvije glavne značajke ovih tehnologija:

  • asimetrija (pokretanje udaljenog postupka samo jedna od stranaka);
  • sinkronicitet (obustavljanje postupka poziva od trenutka pokretanja zahtjeva i nastavka nakon slanja odgovora).

Što se tiče implementacija, daljinski postupci (poziv udaljenih postupaka) danas koriste nekoliko osnovnih tehnologija, među kojima se najčešće koriste sljedeće:

  • DCE / RPC je binarni protokol baziran na TCP / IP, SMB / SIFC itd.;
  • DCOM je objektno-orijentirani dodatak s mogućnošću prijenosa referenci na objekte i metode poziva za njihovu obradu;
  • JSON-RPC - protokol temeljen na HTTP-u;
  • .NET Remoting - binarni protokol baziran na UDP, TCP i HTTP;
  • Java RMI;
  • Sapun;
  • XML RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC et al.

Problemi i zadaci

Sada nekoliko riječi o nedostacima. Glavni problem, a time i zadatak implementacije, je da se ista operacija poziva putem udaljenog postupka putem čvora usluge udaljenog poziva postupka mora istovremeno izvoditi na različitim strojevima, često s različitim operativnim sustavima, adresnim prostorima i arhitekturom , U tom se procesu ti parametri moraju kopirati iz jednog terminala u drugi. U tu svrhu koristi se ne samo transportni protokol, nego i serijalizacija, koja omogućuje pretvaranje različitih bajtnih sekvenci vrste podataka.

Druga točka povezana je s činjenicom da udaljeni postupci (poziv udaljenih postupaka) koriste ne jedan proces, kao na lokalnoj razini, već dva (na klijentskom stroju i na poslužitelju). Stoga, nenormalan završetak programa na jednom od terminala može uzrokovati istu reakciju na drugoj.

Konačno, jedno od glavnih pitanja je problem kompatibilnosti zbog heterogenosti nekih programskih jezika, unatoč uspostavljenim jedinstvenim standardima.

Glavni tipovi podsustava

Udaljeni postupak poziva Windows 10 ili bilo koji drugi sustav s nižim rangom podrazumijeva korištenje posebnih podsustava:

  • transportni podsustav dizajniran za upravljanje odlaznim i ulaznim vezama uz zajamčenu isporuku paketa podataka;
  • Protokoli bazena - koncept procedure na pozvanom terminalu;
  • serijalizacija (marshaling) - pretvaranje tokova podataka u standardne kodove bajtova neovisno o arhitekturi;
  • Šifriranje poslanih i primljenih paketa s uvođenjem digitalnog potpisa na njih;
  • sustav autorizacije i autorizacije.

Koje vrste programa zahtijevaju izvođenje RPC-a?

Ako govorimo o tome koji moduli softvera operacijskog sustava zahtijevaju da RPC usluga bude omogućena, jednostavno ih je nemoguće sve navesti.

udaljeni rpc postupak onemogućen

No, među svim poznatim komponentama Windows sustava, možemo spomenuti uslugu faksa, uslugu kriptografije, zapisivanje pogrešaka, pomoć i podršku, pristup HID uređajima, uslugu glasnika, upravljanje diskovima i logičkim particijama, izmjenjivo upravljanje pohranom, audio sustav, Windows instalater i drugo Bog zna što.

Čini se da je ovaj popis dovoljan za razumijevanje koliko komponenti sustava i sam korisnik ovise o toj usluzi.

Što utječe na RPC

Općenito, na temelju prethodnog opisa, možete procijeniti učinak RPC-a. Tako, na primjer, postoji mnogo slučajeva kada je prilikom isključivanja ove usluge zvuk potpuno nestao, bilo je nemoguće vratiti sustav nakon kritičnih kvarova ili kada je korisnik pokrenuo, postavke bežične mreže „poletje“.

Ali najtužnije je da ako isključite poziv udaljenog RPC postupka, ponekad je nemoguće čak i pristupiti osnovnim postavkama sustava, biti korisnik najmanje tri puta administrator na svom terminalu.

Je li moguće onemogućiti ovu uslugu

Uglavnom su mnogi pokušali (i pokušavaju) isključiti uslugu udaljenog poziva u proceduri. To je strogo zabranjeno. Općenito, sam sustav, u obavljanju takvog pokušaja da to učini, neće dati, izdavanjem odgovarajuće obavijesti.

rpc daljinski postupak lokator poziva

Ali ne znaju svi da u odjeljku usluga (services.msc) još uvijek postoji takva stvar kao „Remote Locator Call Locator RPC“. Ovdje se jednostavno može bezbolno isključiti za sustav. Aplikacije koje ga mogu koristiti u svom radu samostalno će zatražiti servis ako je potrebno.

Rješavanje problema s bugovima i pogreškama

Konačno, pogledajmo što se može učiniti ako se pogreška generira tijekom udaljenog postupka poziva. U najjednostavnijem slučaju, možete pokušati ponovno omogućiti uslugu (ako, naravno, uspije).

servis rpc udaljeni postupak poziva

Da biste to učinili, u odgovarajućem odjeljku u kojem se nalazi usluga, dvaput kliknite izbornik za uređivanje parametara, pritisnite gumb za uključivanje i vrsta uključivanja je postavljena na automatsko. Ako nije moguće izvršiti ovu proceduru sa standardnim pokretanjem sustava, možete pokušati izvesti slične radnje u sigurnom načinu rada. Neki stručnjaci savjetuju u isto vrijeme u vrijeme akcije, samo u slučaju, onemogućiti antivirusni softver.

daljinski postupak naziva ono što je

Ako to ne pomogne, ali imate instalacijski disk ili disk za oporavak pri ruci, možete pokrenuti naredbenu konzolu s administratorskim pravima (ne morate se pokrenuti s diska) i upisati sljedeće naredbe:

  • cd z: i386 (Z je slovo optički pogon) ;
  • proširi explorer.ex_% TEMP% explorer.exe;
  • Proširi svchost.ex_% TEMP% svchost.exe.

Nakon toga pokrenite Task Manager (Ctrl + Del + Alt ili taskmgr u izborniku Run) i završite proces Explorer.exe.

Zatim u naredbenu konzolu napišite sljedeće: copy% TEMP% explorer.exe% SYSTEMROOT% / y.

U "Dispečeru" zaustavljamo sve procese svhost.exe, a zatim u roku od 60 sekundi moramo imati vremena u naredbenom retku za ulazak u redak kopija% TEMP% svchost.exe% systemroot% system32 / y.

Konačno, ako imate pristup uređivaču registra (regedit) vraćenom, morate proći kroz HKCC granu kroz sekcije SYSTEM i CurrentControlSet i doći do parametra CSConfigFlags, mijenjajući njegovu vrijednost na nulu.

To nisu sve metode ispravljanja pogrešaka povezanih s RPC-om. Činjenica je da ako je ova usluga uzrokovala poremećaje u radu drugih usluga, možda ćete najprije morati riješiti probleme s njihovom izvedbom, a tek onda poduzeti neke radnje protiv RPC-a. I nije uvijek moguće dobiti puni pristup gore opisanim parametrima i postavkama. Ako se ništa ne dogodi, bez obzira na to koliko bi to moglo zvučati jadno, morat ćete u potpunosti ponovno instalirati operativni sustav, iako bih se nadao da se to neće dogoditi.

zaključak

Ovdje je kratak i sve što se odnosi na tehnologiju i usluge RPC. Zapravo, sve ovo izgleda mnogo kompliciranije nego što je predstavljeno u ovom opisu, a za potpuno razumijevanje problema potrebno je imati barem osnovno znanje. No, da bi imali opću ideju o RPO-u, to je još uvijek dovoljno.

Što se tiče zatvaranja, ne pokušavajte raditi ove stvari, jer u protivnom cijeli sustav neće uspjeti. Gornja rješenja za ispravljanje kvarova obično pomažu, ali još uvijek je nemoguće dati potpuno jamstvo, jer bi deaktiviranje servisa moglo uzrokovati kvarove na drugim komponentama.