Zdalne procedury: wywoływanie zdalnych procedur, definicji i funkcji

09.04.2019

Wielu użytkowników systemów komputerowych słyszało o pojęciach, takich jak zdalne procedury, zdalne wywoływanie procedur lub wywoływanie procedur (RPC). Ale tylko nie wszyscy wyobrażają sobie, jakie technologie są, jak działają i do czego służą. Ale wielu z tych, którzy wyłączyli tę usługę w systemach Windows, często otrzymuje błędy związane z krytycznymi awariami. To i wiele więcej zostanie omówionych później.

Zdalne wywołanie procedury: co to jest?

Warto zacząć od pewnych informacji teoretycznych. Zdalne procedury (zdalne wywoływanie procedur) są uważane za mechanizm, który pozwala na uruchamianie lub używanie dowolnych funkcji systemów komputerowych w przestrzeni adresowej różnej od używanego terminala. Mówiąc najprościej, jest to sposób na dostęp zdalny komputer na przykład za pośrednictwem sieci lokalnej lub połączenia internetowego.

Zdalne procedury wywołują zdalne procedury

Jednak zdalne procedury (zdalne wywoływanie procedur), określane jako RPC (skrót od Remote Procedure English), można przypisać nie tylko zdalnym komputerom. Na poziomie lokalnym wykorzystywane są również takie technologie. Jako prosty przykład można wywołać określoną funkcję jednego programu z innej aplikacji poprzez interakcję za pośrednictwem specjalnych bibliotek.

Ponadto, absolutnie wszystkie wersje systemu Windows mają taką usługę, a kiedy jest wyłączona lub awaria modyfikacji XP nie działa w ogóle.

Zasada działania

Z reguły usługa zdalnego wywoływania wywołania RPC dla operacji klient-serwer wymaga co najmniej dwóch głównych składników: protokołu sieciowego do wymiany danych i języka serializacji (translacja niektórych procesów lub struktury danych informacji na sekwencję bitów).

Zdalne wywołanie procedury Windows 10

Architektury mogą być zupełnie inne i różnić się możliwościami. Ale do wymiany danych na tak zwanym poziomie transportu protokoły UDP i TCP są najczęściej używane, rzadziej - HTTP.

zdalny błąd wywołania procedury

Aby nie wchodzić w aspekty techniczne, najprostszym wyjaśnieniem tego, jak działają takie technologie, może być następujący przykład: proces klienta tworzy żądanie do serwera opisujące wybraną procedurę z określonymi parametrami i wysyła ją, po czym serwer wykonuje wymaganą dyrektywę i wysyła klientowi odpowiedź wyświetlaną na kliencie. samochód. Jednak sama procedura obsługi serwera jest w trybie gotowości i jest aktywowana tylko w momencie odbierania żądań klienta. Jednocześnie nie jest wcale konieczne, aby realizacja schematu "żądanie-odpowiedź" była realizowana natychmiast.

Jednocześnie maksymalny efekt osiąga się, wymieniając stosunkowo niewielkie ilości danych i krótki czas odpowiedzi komponentów, pomiędzy którymi ustanowione jest połączenie interaktywne.

Zdalne procedury (zdalne wywoływanie procedur): funkcje i implementacje

W ten sposób możemy wyróżnić dwie główne cechy tych technologii:

  • asymetria (uruchomienie zdalnej procedury tylko jednej ze stron);
  • synchronizacja (zawieszenie procedury wywołania od momentu zainicjowania żądania i wznowienia po wysłaniu odpowiedzi).

Jeśli chodzi o implementacje, zdalne procedury (wywoływanie zdalnych procedur) wykorzystują dziś kilka podstawowych technologii, spośród których najczęściej stosowane są:

  • DCE / RPC jest protokołem binarnym opartym na protokole TCP / IP, SMB / SIFC itp .;
  • DCOM jest zorientowanym obiektowo dodatkiem z możliwością przesyłania odniesień do obiektów i metod wywoływania ich przetwarzania;
  • JSON-RPC - protokół tekstowy oparty na HTTP;
  • .NET Remoting - protokół binarny oparty na UDP, TCP i HTTP;
  • Java RMI;
  • SOAP;
  • XML RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC i in.

Problemy i zadania

Teraz kilka słów o niedociągnięciach. Głównym problemem, a co za tym idzie, zadaniem implementacji, jest to, że ta sama operacja wywołania procedury zdalnej za pośrednictwem węzła usługi Remote Procedure Call musi być wykonywana jednocześnie na różnych komputerach, często z różnymi systemami operacyjnymi, przestrzeniami adresowymi i architekturą . W trakcie procesu parametry te muszą być kopiowane z jednego terminala do drugiego. W tym celu wykorzystywany jest nie tylko protokół transportowy, ale także szeregowanie, które umożliwia konwersję różnych sekwencji bajtów typy danych.

Drugi punkt dotyczy faktu, że zdalne procedury (wywoływanie zdalnych procedur) nie używają jednego procesu, jak na poziomie lokalnym, ale dwa (na komputerze klienta i na serwerze). Dlatego nieprawidłowe zakończenie programu na jednym z terminali może spowodować taką samą reakcję na drugim.

Wreszcie, jednym z głównych problemów jest problem kompatybilności ze względu na różnorodność niektórych języków programowania, pomimo ustalonych jednolitych standardów.

Główne rodzaje podsystemów

Zdalne wywołanie procedury System Windows 10 lub inny system z poniższą pozycją oznacza użycie specjalnych podsystemów:

  • podsystem transportowy przeznaczony do zarządzania połączeniami wychodzącymi i przychodzącymi z gwarantowaną dostawą pakietów danych;
  • Protokoły puli - koncepcja procedury na wywołanym terminalu;
  • serializacja (marshaling) - konwersja strumieni danych do standardowych kodów bajtów niezależnych od architektury;
  • Szyfrowanie wysłanych i odebranych pakietów z narzuconym na nich podpisem cyfrowym;
  • system uwierzytelniania i autoryzacji.

Jakie typy programów wymagają wykonywania RPC?

Jeśli mówimy o tym, które moduły oprogramowania systemu operacyjnego wymagają, aby usługa RPC była włączona, po prostu niemożliwe jest ich wyświetlenie.

zdalne wywołanie procedury rpc jest wyłączone

Ale wśród wszystkich dobrze znanych składników systemów Windows możemy wymienić usługę faksu, usługę kryptograficzną, rejestrowanie błędów, pomoc i wsparcie, dostęp do urządzeń HID, usługę messenger, administrację dysków i partycji logicznych, wymienne zarządzanie pamięcią masową, system audio, instalator Windows i więcej Bóg wie co.

Wydaje się, że ta lista wystarcza, aby zrozumieć, ile składników systemu, a także sam użytkownik, jest zależnych od tej usługi.

Na co wpływa RPC

Ogólnie, w oparciu o poprzedni opis, można oszacować wpływ RPC. Tak więc, na przykład, istnieje wiele przypadków, w których podczas odłączania tej usługi, dźwięk całkowicie zniknął, niemożliwe było przywrócenie systemu po krytycznych awariach lub gdy zainicjowany przez użytkownika, ustawienia sieci bezprzewodowej "poleciały".

Ale najsmutniejsze jest to, że jeśli wyłączysz zdalne wywołanie procedury RPC, czasami nie można nawet uzyskać dostępu do podstawowych ustawień systemowych, być użytkownikiem co najmniej trzykrotnie większym niż administrator we własnym terminalu.

Czy można wyłączyć tę usługę?

Ogólnie rzecz biorąc, wielu próbowało (i próbuje) wyłączyć usługę zdalnego wywołania procedury. Robienie tego jest surowo zabronione. Zasadniczo sam system, podejmując taką próbę, nie da, wydając odpowiednie powiadomienie.

rpc zdalny lokalizator wywołań procedur

Ale nie wszyscy wiedzą, że w sekcji usług (services.msc) nadal jest coś takiego jak "Remote Procedure Call Locator RPC". Tutaj można go bezboleśnie wyłączyć dla systemu. Aplikacje, które mogą z niego korzystać w swojej pracy, będą w razie potrzeby niezależnie dzwonić do serwisu.

Rozwiązywanie problemów z błędami i błędami

Na koniec zobaczmy, co można zrobić, jeśli błąd zostanie wygenerowany podczas zdalnego wywoływania procedury. W najprostszym przypadku możesz spróbować ponownie włączyć usługę (jeśli oczywiście się to uda).

service rpc remote procedure call

Aby to zrobić, w odpowiedniej sekcji, w której znajduje się usługa, kliknij dwukrotnie menu edycji parametrów, naciśnij przycisk zasilania, a typ zasilania zostanie ustawiony na automatyczny. Jeśli nie można wykonać tej procedury przy standardowym uruchamianiu systemu, możesz spróbować wykonać podobne akcje w trybie awaryjnym. Niektórzy eksperci doradzają w tym samym momencie w momencie działania, na wszelki wypadek, wyłącz oprogramowanie antywirusowe.

Zdalne wywoływanie procedury co to jest

Jeśli to nie pomoże, ale masz dysk instalacyjny lub system odzyskiwania systemu pod ręką, możesz uruchomić konsolę poleceń z uprawnieniami administratora (nie musisz uruchamiać z dysku) i napisać w niej następujące komendy:

  • cd z: i386 (Z jest literą napęd optyczny) ;
  • expand explorer.ex_% TEMP% explorer.exe;
  • Rozwiń svchost.ex_% TEMP% svchost.exe.

Następnie uruchom Menedżera zadań (Ctrl + Del + Alt lub taskmgr w menu Uruchom) i zakończ proces Explorer.exe.

Następnie w konsoli poleceń zapisz następujące polecenie: copy% TEMP% explorer.exe% SYSTEMROOT% / y.

W "Dispatcherze" zatrzymujemy wszystkie procesy svhost.exe, a następnie w ciągu 60 sekund potrzebujemy czasu w linii poleceń, aby wprowadzić kopię linii% TEMP% svchost.exe% systemroot% system32 / y.

Na koniec, jeśli masz dostęp do edytora rejestru (regedit), musisz przejść przez gałąź HKCC za pośrednictwem sekcji SYSTEM i CurrentControlSet i przejść do parametru CSConfigFlags, zmieniając jego wartość na zero.

To nie wszystkie metody korygowania błędów związanych z RPC. Faktem jest, że jeśli ta usługa spowodowała zakłócenia w pracy innych usług, może najpierw trzeba naprawić problemy z ich wydajnością, a dopiero potem podjąć pewne działania przeciwko RPC. I nie zawsze jest możliwe uzyskanie pełnego dostępu do wyżej opisanych parametrów i ustawień. Jeśli nic się nie wydarzy, bez względu na to, jak bardzo może to brzmieć, będziesz musiał całkowicie przeinstalować system operacyjny, chociaż chciałbym mieć nadzieję, że tak się nie stanie.

Wniosek

Oto krótki i związany z RPC technologii i usług. W rzeczywistości wszystko to wygląda o wiele bardziej skomplikowanie niż zostało to przedstawione w tym opisie, a do pełnego zrozumienia problemu konieczne jest posiadanie co najmniej podstawowej wiedzy. Ale żeby mieć ogólne pojęcie o RPC, to wciąż wystarcza.

Jeśli chodzi o wyłączanie, nie próbuj robić tych rzeczy, w przeciwnym razie cały system zawiedzie. Powyższe rozwiązania do naprawiania awarii zazwyczaj pomagają, ale nadal nie można udzielić pełnej gwarancji, ponieważ dezaktywacja usługi może spowodować awarię innych komponentów.