RPC (Remote Procedure Call) mimarisi nedir , nasıl çalışır?

Server üzerindeki servisleri kontrol ettiğimizde karşımızı çıkan RPC (remote procedure call) arka planda haberimiz olmadan birçok şeyi gerçekleştiren bir servistir.
RPC temel anlamda client ve server arasında yapılan işlemlerin iletişimi için dizayn edildi.Bir işlemin gerçekleşmesi için bir gönderici (server) ve birde alıcı (client ) vardır.Örneğin Microsoft Outlook ve Exchange server ikilisi gibi.Aynı şekilde server üzerindeki bir çok serviste bu mimariyi kullanarak birbirleriyle haberleşirler.İşte bu haberleştirmeyi güvenli kılan ve kolaylaştıran şey RPC’dir.

Rpc Mimarisi
rpc-mimarisi.gif
Resim:Technet

Yukarıdaki mimaride gördüğümüz componentlerden bahsedicek olursak;

Client or server process:
Bir RCP isteğini başlatan yada yanıt veren program yada servis

RPC stubs:
RPC isteğini başlatmak için client yada server tarafından kullanılan program

Marshalling engine(NDR20 or NDR64):
RPC client ve server ları arasında ortak bir RPC interface’i oluşturur.NDR20 32 bit mimarisi için, NDR64 ise 64 mimarisi için tasarlanmıştır.Client ve server bu marshalling engine sayesinde iletişim için karşılıklı anlaşmayı sağlarlar.

Runtime application programming interface (API):
Server yada client’a RPC için direk bir arayüz oluşturur.RPC client ve serverları RPC’yi başlatmak içnin runtime API yi çağırırlar.

Connection RPC protocol engine:
RPC bir connection”“oriented protocol isteğinde bulunduğunda kullanılır.Burada RPC nin dışarıya doğru bir bağlantıdamı yoksa dışarıdan içeriye doğru bir bağlantıdamı olduğu dizayn edilir.

Local RPC protocol engine:
Server ve client aynı host içerisinde barınıyorsa kullanılır.

Registry:
RPC servisinin ilk yüklemesinde erişim sağlanır.Buradaki registry anahtarları, RPC kullanıdığı ip port aralıklarını yada network aygıtlarının isimlerini barındırır.

Win32 APIs(kernel32.dll, advapi32.dll, ntdll.dll):
Kernel32.dll , sistem servislerinin hafıza yada kaynak yönetimlerini sağlayan Windows NT tabanlı bir API client dynamic-link library (DLL) dosyasıdır.
Advapi32.dll , gelişmiş bir Windows 32 base API DLL dosyasıdır.Güvenliği destekler.
Ntdll.dll , Windows NT nin sistem fonksiyonlarını kontrol eder.

SSPI(secur32.dll):
RPC için bir güvenlik arayüzü oluşturur.Kerberos, NTLM, ve Secure Sockets Layer (SSL) ın authentication ve encryption için kullanımını sağlar.

RPC için kullanılan network portları aşağıdadır.
rpc-ports.PNG

Desteklenen network protokolleri:

rpc-protocols.PNG

One thought on “RPC (Remote Procedure Call) mimarisi nedir , nasıl çalışır?

Leave a Reply

Your email address will not be published. Required fields are marked *

+ 41 = 45