Vậy RPC là gì?

Lúc các bạn viết lịch trình, ắt hẳn các bạn đã và đang thân quen với những khái niệm thủ tục cùng hàm. Các đoạn chương trình lặp đi lặp lại các bạn viết lại thành một hàm (hay thủ tục) với tiếp nối khi dùng chỉ cần gọi thủ tục hoặc hàm đó cùng với những tsi số tương thích. Các thủ tục hoặc hàm kia chúng ta bao gồm thể:


Được biên dịch sẵn cùng nhằm trong một tlỗi viện hoặc unit để những công tác không giống của doanh nghiệp (cùng được viết bởi một ngôn ngữ) thực hiện,
Được biên dịch sẵn nhằm vào file DLL nhằm các công tác (được viết bởi các ngữ điệu khác nhau) áp dụng.

Bạn đang xem: Remote procedure call là gì


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

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

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

RPC được thiết kế theo phong cách nhằm cung cấp cho bài toán truyền thiết lập đọc tin thân client và VPS dễ dàng dànghơn,  bảo mật thông tin rộng, và thuận tiện rộng mang lại bài toán đồng nhất hóa những luồn tài liệu. Các hàm cất vào RPC cung cấp đến bài toán truy vấn bất kỳ chương trình nào đòi hỏi phương pháp giao tiếp tự client cho hệ thống. Hình bên dưới đã đến chúng ta thấy kiến trúc của RPC

*

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

II. Các nhân tố của RPC

Thành phần

Miêu tả

Client or VPS process

Chương trình hoặc hình thức trả lời từ đòi hỏi của RPC

RPC stubs

Những khối hệ thống lịch trình con được sử dụng bởi client hoặc server khởi cồn đề nghị RPC.

Marshalling engine

(NDR20 hoặc NDR64)

Cung cung cấp một giao diện chung thân RPC Client cùng RPC Server cùng được chia thành 2 loại: NDRđôi mươi và NDR64. NDR20 được sử dụng đến hạ tầng 32 bits. Trong lúc đó NDR64 được buổi tối ưu sử dụng mang đến hạ tầng 64 bits. Client cùng Server đã thương lượng nên lựa chọn NDR20 hay NRD64 nhằm giao tiếp với nhau

Runtime application programming interface (API)

Cung cấp hình ảnh mang đến RPC tới Clients hoặc Servers. thường thì, RPC Clients và Servers vẫn Call hàm API (đồ họa xây dựng ứng dụng) để có thể tạo RPC cùng sẵn sàng cấu trúc tài liệu sẽ tiến hành áp dụng nhằm thực hiện cuộc hotline RPC. Lớp API đã ra quyết định trường hợp những hiểu biết RPC tới từ marshalling engine hoặc trực tiếp từ client/hệ thống mang đến máy chủ nội cỗ hoặc sever trường đoản cú xa. Sau kia lớp API đang đi đường cho RPC mang lại Connection RPC, Datagram RPC hoặc Local RPC Layers

Connection RPC protocol engine

Được thực hiện khi RPC trải nghiệm giao thức kết nối. Lớp này đã hướng đẫn thực hiện giao thức liên kết giả dụ RPC được gửi đi hoặc nhận thấy một liên kết hướng về RPC

Datagram RPC protocol engine

Được áp dụng lúc RPC trải nghiệm giao thức phi kết nối. Lớp này vẫn hướng dẫn và chỉ định thực hiện giao thức phi kết nối nếu RPC được gửi đi hoặc nhận thấy một phi liên kết cho tới RPC

Local RPC protocol engine

Được thực hiện Lúc Server và Client đặt trong và một host.

Registry

Được truy vấn Khi hình thức dịch vụ RPC trước tiên được sở hữu về. Các thành bên trong registry vẫn chỉ định và hướng dẫn hàng port IP.. và tên thiết bị của các card mạng để RPC có thể  phối hợp bọn chúng lại cùng nhau. Trừ lúc API xay buộc RPC phải sử dụng, Registry sẽ không còn được thực hiện vào buổi giao lưu của RPC

Win32 APIs

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

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

Advapi32.dll là file nâng cao của Windows 32 dựa trên hình ảnh lập trình sẵn vận dụng. File này hỗ trợ về bảo mật với gọi những registry

Ntdll.dll là file dll quản ngại lý‎ tính năng những file khối hệ thống của Windows NT

SSPI

(secur32.dll)

Cung cấp cho giao diện bảo mật cho RPC. File secur32.dll đang trao đổi giải pháp dùng mang đến vấn đề xác thực với 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 cơ sở hạ tầng cho những hình thức COM, cơ mà một phần của Rpcss.dll được dùng đến EPM. RPC Server liên hệ với EPM để nhận thêm những điểm kết thúc hễ và ĐK mọi đặc điểm đó vào đại lý dữ liệu của EPM. Rồi kế tiếp Khi RPC Clients mong muốn kết nối tới RPC Server, nó đang liên lạc với EPM nhằm nhờ EPM phân giải mọi điểm xong xuôi..

Active sầu Directory

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

Used in the RPC client process only when the security interface specifies Kerberos or Negotiate as the security provider or when the VPS uses NTLM as the security provider.

Xem thêm: Nằm Nôi Điện Có Ảnh Hưởng Xấu Đến Trẻ Sơ Sinh Nằm Nôi Điện Có Tốt Không ?

Network stack

Được thực hiện thông qua các yêu thương cầu  và vấn đáp của RPC giữa Client và Server

Kernel

Được áp dụng trải qua các yêu thương cầu  cùng vấn đáp của RPC giữa Client cùng Server

III. Quá trình xử trí với liên quan của RPC

Các nhân tố của RPC sẽ giúp đỡ cho Clients xử lý thuận lợi bằng cách gọi hàm nằm trên một lịch trình trường đoản cú xa. Client cùng Server gồm một liên can không khí riêng; điều ấy Có nghĩa là mỗi mối cung cấp tài nguyên bộ nhớ lưu trữ của Client với Server cấp phép cho dữ liệu sẽ được cần sử dụng vị hàm.

*

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

Quá trình xử trí của RPC bắt đầu trường đoản cú phía Client. Ứng dụng từ bỏ phía Client đang Gọi Client stub thay vày client buộc phải viết code tiến hành mang đến hàm kia. Các stub sẽ tiến hành biên soạn cùng liên kết cùng với những áp dụng từ phía client vào quá trình trở nên tân tiến. Thay vì chưng cất mã code nhằm thực hiện thủ tục Hotline hàm trường đoản cú xa, các code của stub vẫn trải nghiệm truy vấn đa số tđắm đuối số từ bỏ can dự không khí của Client cùng tiếp nối đưa chúng vào thỏng viện chạy thực của client. Sau kia, thỏng viện chạy thực của client đang biên dịch phần lớn tmê man số quan trọng vào định dạng chuẩn NDR (Network Data Representation) để chuyển giao đến Server.

Tiếp theo stub của Client sẽ call hàm trong thư viện chạy thực của Client (rpcrt4.dll) để gửi những yêu cầu và thông số của chính nó mang lại hệ thống. Nếu server được đặt trong cùng 1 host với client, thư viện chạy thực hoàn toàn có thể áp dụng các anh tài của Local RPC (LRPC) và  trải qua các những hiểu biết của RPC tới Windows kernel mang lại câu hỏi truyền sở hữu mang đến hệ thống. Nếu server được đặt tại 1 host không giống, thư viện chạy thực đang xác định một giao thức truyền thiết lập tương thích và trải qua những tận hưởng của RPC đến Network Stachồng mang lại câu hỏi truyền sở hữu mang lại server. RPC có thể dùng những phương pháp trao biến hóa (Interprocess Communications – IPC) như: Name pipes cùng Winsoông chồng để tiến hành truyền tải cho hệ thống.

Bảng dưới đây sẽ liệt kê những giao thức mạng cung cấp RPC với các các loại RPC kết nối cùng với giao thức khớp ứ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

khi Server nhận thấy hưởng thụ của RPC(từ phía client trong nội cỗ hoặc client tự xa), các hàm vào thư viện chạy thực RPC của Server chấp nhận các trải đời cùng gọi hàm xử lý‎ Server Stub. Server stub vẫn truy tìm vấn những tsay đắm số từ bỏ network buffer và chọn 1 trong 2 một số loại NDRtrăng tròn hoặc NDR64 (vào NDR Marshalling Engines), tiếp đến thay đổi bọn chúng từ format truyền download mạng sang định hình theo trải đời bởi vì ngươi chủ. Sau đó những thủ tục từ xa sẽ tiến hành chạy, có chức năng xuất ra những tham mê số và trả về cực hiếm. Lúc các giấy tờ thủ tục từ xa hoàn chỉnh, một chuỗi quá trình tựa như đang trả về dữ liệu mang lại Client

Các giấy tờ thủ tục từ bỏ xa trả tài liệu của nó về cho Server Stub, chọn một vào 2 loại NDRtrăng tròn hoặc NDR64 (trong NDR Marshalling Engines), biến hóa mọi tđắm say số được xuất ra thành format truyền cài mạng đến client cùng trả chúng vào tlỗi câu hỏi chạy thực RPC của Server. Sau đó thỏng viện chạy thực RPC của Server sẽ truyền mua dữ liệu cho laptop của Client bằng LRPC hoặc qua network.

Xem thêm: Edp Và Edt Là Gì - Tìm Hiểu Về Nước Hoa Edc, Edt, Edp

Client hoàn chỉnh những giấy tờ thủ tục bằng phương pháp gật đầu đồng ý dữ liệu qua mạng với trả dữ liệu về nhằm Hotline hàm. Tlỗi viện chạy thực RPC của Client cảm nhận thủ tục tự xa trả về giá trị, biến hóa giá trị trường đoản cú NDR trăng tròn hoặc NDR64 về format được dùng vị Client, và trả bọn chúng về client stub.

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

2. Tlỗi viện chạy thực RPC( RPC Runtime Library): được xúc tiến như là DLL IV. Các Ports sử dụng mang lại RPC

Các lịch trình RPC Server thông thường dùng phần đa port đụng (đế tránh tạo xung thốt nhiên với các công tác và các giao thức đã có ĐK vào hàng Well-known TCPhường. Ports). Bảng tiếp sau đây vẫn liệt kệ các port sử dụng cho RPC