Cơ chế hoạt động của remote procedule call

Vậy RPC là gì?

Khi các bạn viết chương trình, ắt hẳn bạn cũng đã quen thuộc với các tư tưởng thủ tục cùng hàm. Các đoạn công tác lặp đi lặp lại chúng ta viết lại thành một hàm (tuyệt thủ tục) cùng kế tiếp khi sử dụng chỉ cần gọi giấy tờ thủ tục hoặc hàm kia với các tmê mệt số phù hợp. Các thủ tục hoặc hàm đó các bạn bao gồm thể:

Được biên dịch sẵn cùng nhằm trong một thỏng viện hoặc unit để các chương trình không giống của bạn (thuộc được viết bởi một ngôn ngữ) áp dụng,Được biên dịch sẵn nhằm vào tệp tin DLL nhằm các chương trình (được viết bởi những ngôn từ khác nhau) sử dụng.Bạn đã xem: Remote procedure Điện thoại tư vấn là gì

Điểm phổ biến của tất cả những phương thức bên trên là các hàm cùng giấy tờ thủ tục phải hotline hầu như nằm tại và một sản phẩm cùng với địa điểm gọi chúng. Tuy nhiên bạn cũng có thể thấy là nơi gọi với hàm cần điện thoại tư vấn rất có thể được bóc tách tránh nhau ra: trường đoản cú phổ biến file, mang lại khác file, rồi đến không giống ngữ điệu.

Bạn đang xem: Cơ chế hoạt động của remote procedule call

Remote Procedure call (RPC) – Thủ tục call hàm tự xa là một trong những kỹ thuật tiến bộ mang lại quá trình kết nối từ Client đến Server nhằm sử dụng các vận dụng với các dịch vụ. RPC chất nhận được client có thể liên kết cho tới 1 hình thức dịch vụ sử dụng dynamic port ở ở một laptop không giống. Trong khối hệ thống mạng laptop hiện nay có tương đối nhiều hình thức với áp dụng áp dụng lý lẽ liên kết RPC, ví dụ quá trình đồng hóa của những Domain Controller vào hệ thống Active Directory, hoặc Khi MS Outlook liên kết cho tới MS Exchange Server… Nhằm mục đích khám phá về chính sách hoạt động vui chơi của RPC, vào nội dung bài viết này, công ty chúng tôi sẽ ra mắt với chúng ta “Cơ chế hoạt động vui chơi của Remote Procedure Gọi (RPC)”

I. Kiến trúc của RPC:

RPC có thiết kế để cung cấp mang đến việc truyền thiết lập công bố thân client với VPS dễ dàng dànghơn, bảo mật thông tin rộng, cùng thuận lợi hơn đến Việc đồng hóa hóa những luồn dữ liệu. Các hàm chứa vào RPC cung cấp mang lại Việc truy vấn ngẫu nhiên công tác làm sao đòi hỏi phương thức giao tiếp tự client mang lại server. Hình bên dưới sẽ đến bọn họ thấy bản vẽ xây dựng của RPC


*

Hình 1: Kiến trúc Remote Procedure Call

II. Các nguyên tố của RPC

Thành phần

Miêu tả

Client or server process

Chương trình hoặc hình thức dịch vụ trả lời từ bỏ đề nghị của RPC

RPC stubs

Những khối hệ thống lịch trình bé được dùng vày client hoặc VPS khởi động tận hưởng RPC.

Marshalling engine

(NDR20 hoặc NDR64)

Cung cấp một đồ họa chung giữa RPC Client và RPC Server cùng được chia thành 2 loại: NDRđôi mươi với NDR64. NDRđôi mươi được sử dụng mang lại hạ tầng 32 bits. Trong lúc ấy NDR64 được tối ưu cần sử dụng đến hạ tầng 64 bits. Client cùng Server đã thảo luận nên chọn NDRtrăng tròn tốt NRD64 để giao tiếp với nhau

Runtime application programming interface (API)

Cung cung cấp đồ họa đến RPC tới Clients hoặc Servers. Thông thường, RPC Clients và Servers vẫn gọi hàm API (đồ họa thiết kế ứng dụng) để tạo RPC với sẵn sàng kết cấu dữ liệu sẽ được áp dụng để thực hiện cuộc điện thoại tư vấn RPC. Lớp API vẫn đưa ra quyết định trường hợp đòi hỏi RPC tới từ marshalling engine hoặc thẳng tự client/hệ thống cho sever nội bộ hoặc máy chủ trường đoản cú xa. Sau kia lớp API vẫn chỉ đường đến RPC mang đến Connection RPC, Datagram RPC hoặc Local RPC Layers

Connection RPC protocol engine

Được áp dụng lúc RPC thử khám phá giao thức kết nối. Lớp này vẫn hướng đẫn thực hiện giao thức kết nối nếu RPC được gửi đi hoặc nhận được một liên kết nhắm đến RPC

Datagram RPC protocol engine

Được sử dụng Khi RPC thử khám phá giao thức phi kết nối. Lớp này đã chỉ định sử dụng giao thức phi liên kết ví như RPC được gửi đi hoặc cảm nhận một phi kết nối cho tới RPC

Local RPC protocol engine

Được sử dụng Lúc Server cùng Client đặt trong và một host.

Registry

Được truy cập Khi hình thức dịch vụ RPC đầu tiên được thiết lập về. Các thành phía bên trong registry đã hướng đẫn hàng port IPhường. và thương hiệu trang bị của các thẻ mạng nhằm RPC rất có thể phối kết hợp chúng lại cùng nhau. Trừ Lúc API ép buộc RPC đề xuất dùng, Registry sẽ không còn được sử dụng vào hoạt động của RPC

Win32 APIs

(kernel32.dll, advapi32.dll, ntdll.dll)

Kernel32.dll là 1 trong tệp tin thỏng viện đụng 32 bits bao gồm trong Windows NT. File này Chịu đựng trách nhiệm cai quản ly‎ bộ nhớ, các chuyển động vào ra của hệ thống

Advapi32.dll là file nâng cấp của Windows 32 dựa vào đồ họa lập trình vận dụng. File này cung cấp về bảo mật thông tin và Gọi các registry

Ntdll.dll là tệp tin dll quản lí lý‎ tác dụng những tệp tin hệ thống của Windows NT

SSPI

(secur32.dll)

Cung cấp hình ảnh bảo mật thông tin mang đến RPC. File secur32.dll đang hiệp thương biện pháp dùng mang đến câu hỏi xác thực cùng mã hóa như: Kerberos, NTLM, hoặc Secure Sockets Layer (SSL)

Endpoint Mapper (EPM)

(rpcss.dll)

Rpcss.dll (Remote procedure Gọi subsystem) chủ yếu cung ứng hạ tầng cho những hình thức dịch vụ COM, tuy vậy một trong những phần của Rpcss.dll được sử dụng mang lại EPM. RPC Server liên lạc với EPM để nhận những điểm xong xuôi hễ và ĐK phần đông đặc điểm đó vào các đại lý dữ liệu của EPM. Rồi kế tiếp lúc RPC Clients ước ao liên kết tới RPC Server, nó vẫn liên lạc với EPM nhằm dựa vào EPM phân giải số đông điểm chấm dứt..

Xem thêm: Ghost Windows 7 (X86 & X64) Ghost Office Edition+Software+Drivers 2019

Active sầu Directory

Chỉ được sử dụng đến quá trình cách xử trí RPC client Lúc giao diện bảo mật thông tin rõ ràng như Kerberos hoặc Negotiate nhỏng nhà hỗ trợ bảo mật thông tin hoặc lúc Server dùng NTLM nlỗi công ty hỗ trợ bảo mật

Network stack

Được áp dụng trải qua những tận hưởng cùng trả lời của RPC giữa Client với Server

Kernel

Được sử dụng thông qua các tận hưởng và trả lời của RPC thân Client và Server

III. Quá trình xử lý với tác động của RPC

Các thành phần của RPC để giúp đỡ đến Clients giải pháp xử lý thuận lợi bằng cách call hàm nằm ở một công tác từ xa. Client cùng Server có một cửa hàng không gian riêng; điều đó tức là từng mối cung cấp tài nguim bộ nhớ của Client cùng Server cấp phép đến tài liệu sẽ tiến hành dùng vị hàm.


*

Hình 2: Quá trình xử trí của RPC

Quá trình cách xử trí của RPC bắt đầu tự phía Client. Ứng dụng từ bỏ phía Client sẽ điện thoại tư vấn Client stub cố kỉnh vì chưng client cần viết code thực hiện đến hàm kia. Các stub sẽ được soạn cùng link với các áp dụng từ phía client vào quy trình trở nên tân tiến. Thay bởi chứa mã code nhằm tiến hành giấy tờ thủ tục Gọi hàm từ bỏ xa, những code của stub vẫn từng trải tróc nã vấn đa số tđê mê số từ bỏ địa chỉ không gian của Client cùng tiếp đến gửi chúng nó vào tlỗi viện chạy thực của client. Sau đó, tlỗi viện chạy thực của client đang biên dịch hầu như tmê say số cần thiết vào format chuẩn chỉnh NDR (Network Data Representation) để bàn giao đến Server.

Tiếp theo stub của Client sẽ Điện thoại tư vấn hàm trong tlỗi viện chạy thực của Client (rpcrt4.dll) để gửi những đề nghị và thông số của nó mang đến server. Nếu server được đặt trong cùng 1 host với client, thỏng viện chạy thực rất có thể sử dụng những kỹ năng của Local RPC (LRPC) cùng thông qua các hưởng thụ của RPC cho tới Windows kernel mang lại câu hỏi truyền cài mang đến hệ thống. Nếu hệ thống được đặt ở 1 host không giống, tlỗi viện chạy thực sẽ xác định một giao thức truyền download phù hợp và trải qua các từng trải của RPC mang lại Network Staông chồng cho vấn đề truyền cài đặt cho VPS. RPC có thể cần sử dụng những vẻ ngoài trao biến đổi (Interprocess Communications – IPC) như: Name pipes và Winsoông xã để triển khai truyền sở hữu mang lại server.

Bảng dưới đây sẽ liệt kê các giao thức mạng hỗ trợ RPC cùng những nhiều loại RPC liên kết cùng với giao thức tương xứng được sử dụng

Protocol

RPC Type

Transmission Control Protocol (TCP)

Connection–oriented

Sequenced Packet Exchange (SPX)

Connection–oriented

Named Pipe

Connection–oriented

HTTP

Connection–oriented

User Datagram Protocol (UDP)

Connectionless

Cluster Datagram Protocol (CDP)

Connectionless

lúc Server nhận được yên cầu của RPC(tự phía client vào nội bộ hoặc client từ xa), những hàm vào thư viện chạy thực RPC của Server đồng ý những thưởng thức với Call hàm xử lý‎ Server Stub. Server stub đang truy hỏi vấn những tham số trường đoản cú network buffer với lựa chọn 1 trong 2 một số loại NDRđôi mươi hoặc NDR64 (vào NDR Marshalling Engines), tiếp nối chuyển đổi bọn chúng từ định dạng truyền tải mạng quý phái định dạng theo tận hưởng vì mi công ty. Sau đó những giấy tờ thủ tục từ xa sẽ được chạy, có chức năng xuất ra các tsi mê số với trả về quý hiếm. lúc các giấy tờ thủ tục trường đoản cú xa hoàn tất, một chuỗi quá trình tương tự sẽ trả về dữ liệu mang đến Client

Client hoàn chỉnh những thủ tục bằng phương pháp đồng ý tài liệu qua mạng với trả dữ liệu về nhằm gọi hàm. Tlỗi viện chạy thực RPC của Client nhận được thủ tục tự xa trả về quý giá, chuyển đổi quý giá từ NDR 20 hoặc NDR64 về định hình được sử dụng bởi vì Client, và trả bọn chúng về client stub.

Đối với Microsoft Windows, thỏng viện chạy thực được chia làm 2 phần: 1. Import Library: link cùng với các ứng dụng

2. Thư viện chạy thực RPC( RPC Runtime Library): được thực hiện như thể DLL IV. Các Ports sử dụng mang lại RPC

Các chương trình RPC Server thông hay được dùng phần nhiều port rượu cồn (đế rời tạo xung bỗng dưng cùng với những công tác và những giao thức đã có được ĐK vào hàng Well-known TCPhường. Ports). Bảng dưới đây sẽ liệt kệ những port sử dụng mang lại RPC