Vậy RPC là gì?

khi chúng ta viết lịch trình, ắt hẳn các bạn cũng đã quen cùng với các định nghĩa thủ tục với hàm. Các đoạn chương trình lặp đi lặp lại chúng ta viết lại thành một hàm (giỏi thủ tục) với tiếp đến khi dùng chỉ việc gọi giấy tờ thủ tục hoặc hàm đó với các ttê mê số tương thích. Các thủ tục hoặc hàm kia các bạn có thể:

Được biên dịch sẵn với để vào một thỏng viện hoặc unit để các công tác khác của chúng ta (cùng được viết bởi một ngôn ngữ) thực hiện,Được biên dịch sẵn để trong file DLL để các công tác (được viết bằng những ngôn từ khác nhau) thực hiện.quý khách vẫn xem: Remote procedure Call là gì

Điểm tầm thường của tất cả những thủ tục bên trên là các hàm với thủ tục buộc phải hotline phần nhiều vị trí và một thứ với chỗ Hotline bọn chúng. Tuy nhiên chúng ta có thể thấy là vị trí Điện thoại tư vấn cùng hàm đề nghị điện thoại tư vấn hoàn toàn có thể được tách bóc rời nhau ra: từ bỏ chung tệp tin, mang lại khác tệp tin, rồi mang đến khác ngữ điệu.

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

Remote Procedure điện thoại tư vấn (RPC) – Thủ tục Gọi hàm tự xa là 1 trong nghệ thuật hiện đại mang đến quy trình liên kết từ bỏ Client mang lại Server để áp dụng các áp dụng cùng các dịch vụ. RPC cho phép client hoàn toàn có thể kết nối tới 1 các dịch vụ thực hiện dynamic port ở ở một máy vi tính khác. Trong khối hệ thống mạng máy tính xách tay bây chừ có tương đối nhiều dịch vụ với áp dụng sử dụng bề ngoài kết nối RPC, ví dụ quy trình đồng điệu của những Domain Controller trong hệ thống Active sầu Directory, hoặc Lúc MS Outlook kết nối cho tới MS Exchange Server… Nhằm mục đích tò mò về lý lẽ hoạt động vui chơi của RPC, trong bài viết này, chúng tôi đang reviews cùng với các bạn “Cơ chế buổi giao lưu của Remote Procedure gọi (RPC)”

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

RPC được thiết kế nhằm cung ứng cho vấn đề truyền cài đặt công bố thân client cùng server dễ dàngrộng, bảo mật thông tin rộng, với thuận lợi rộng cho bài toán đồng bộ hóa các luồn tài liệu. Các hàm chứa vào RPC cung ứng cho bài toán truy vấn bất kỳ công tác nào yên cầu phương pháp giao tiếp trường đoản cú client mang lại VPS. Hình bên dưới sẽ đế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 nguyên tố của RPC

Thành phần

Miêu tả

Client or hệ thống process

Cmùi hương trình hoặc dịch vụ vấn đáp từ bỏ trải nghiệm của RPC

RPC stubs

Những hệ thống công tác bé được sử dụng do client hoặc server khởi rượu cồn hưởng thụ RPC.

Marshalling engine

(NDRtrăng tròn hoặc NDR64)

Cung cung cấp một bối cảnh tầm thường giữa RPC Client và RPC Server cùng được chia làm 2 loại: NDRđôi mươi với NDR64. NDRđôi mươi được dùng mang lại hạ tầng 32 bits. Trong khi ấy NDR64 được về tối ưu cần sử dụng cho hạ tầng 64 bits. Client với Server đã hội đàm nên chọn lựa NDRđôi mươi hay NRD64 để tiếp xúc cùng với nhau

Runtime application programming interface (API)

Cung cấp cho giao diện mang lại RPC tới Clients hoặc Servers. thường thì, RPC Clients với Servers đang Hotline hàm API (hình ảnh lập trình ứng dụng) để tạo RPC cùng chuẩn bị cấu tạo tài liệu sẽ được áp dụng nhằm thực hiện cuộc Call RPC. Lớp API vẫn ra quyết định trường hợp thưởng thức RPC đến từ marshalling engine hoặc trực tiếp từ client/VPS cho sever nội cỗ hoặc sever từ xa. Sau đó lớp API đang chỉ đường mang lại RPC cho Connection RPC, Datagram RPC hoặc Local RPC Layers

Connection RPC protocol engine

Được sử dụng Lúc RPC trải đời giao thức liên kết. Lớp này sẽ hướng đẫn áp dụng giao thức kết nối nếu như RPC được gửi đi hoặc cảm nhận một liên kết nhắm đến RPC

Datagram RPC protocol engine

Được áp dụng khi RPC hưởng thụ giao thức phi liên kết. Lớp này sẽ chỉ định áp dụng giao thức phi kết nối giả dụ RPC được gửi đi hoặc nhận thấy một phi kết nối cho tới RPC

Local RPC protocol engine

Được sử dụng Khi Server với Client đặt vào và một host.

Registry

Được truy cập Khi dịch vụ RPC thứ nhất được cài đặt về. Các thành phần nằm trong registry vẫn hướng dẫn và chỉ định dãy port IP.. với thương hiệu sản phẩm của những thẻ mạng nhằm RPC có thể phối hợp chúng lại với nhau. Trừ khi API nghiền buộc RPC yêu cầu dùng, Registry sẽ không được thực hiện vào hoạt động của RPC

Win32 APIs

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

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

Advapi32.dll là file nâng cao của Windows 32 dựa vào hình ảnh lập trình sẵn áp dụng. File này cung ứng về bảo mật với call các registry

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

SSPI

(secur32.dll)

Cung cấp giao diện bảo mật thông tin cho RPC. File secur32.dll đang hội đàm phương pháp sử dụng cho việc chứng 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 Call subsystem) chủ yếu cung ứng hạ tầng cho các hình thức dịch vụ COM, nhưng một phần của Rpcss.dll được dùng mang lại EPM. RPC Server liên hệ với EPM nhằm nhận các điểm dứt động với đăng ký đều đặc điểm này vào đại lý tài liệu của EPM. Rồi kế tiếp Lúc RPC Clients mong kết nối cho tới RPC Server, nó sẽ liên hệ với EPM nhằm dựa vào EPM phân giải đều điểm chấm dứt..

Xem thêm: Bốc Bát Họ Là Gì ? Tìm Hiểu Chi Tiết Từ A Đến Z Bốc Bát Họ Là Gì

Active sầu Directory

Chỉ được sử dụng mang lại quá trình cách xử lý RPC client Khi bối cảnh bảo mật ví dụ nlỗi Kerberos hoặc Negotiate nlỗi đơn vị hỗ trợ bảo mật thông tin hoặc Lúc Server cần sử dụng NTLM nlỗi nhà cung cấp bảo mật

Network stack

Được áp dụng trải qua những trải đời cùng trả lời của RPC thân Client cùng Server

Kernel

Được sử dụng thông qua những đề xuất với vấn đáp của RPC giữa Client cùng Server

III. Quá trình cách xử lý và liên hệ của RPC

Các nguyên tố của RPC để giúp đỡ mang đến Clients xử lý dễ dàng bằng phương pháp Điện thoại tư vấn hàm nằm trong một chương trình tự xa. Client cùng Server có một liên quan không gian riêng; điều đó Tức là mỗi nguồn tài ngulặng bộ nhớ lưu trữ của Client với Server cấp phát mang đến dữ liệu sẽ được dùng vì hàm.


*

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

Quá trình giải pháp xử lý của RPC bắt đầu từ phía Client. Ứng dụng trường đoản cú phía Client đang call Client stub cố kỉnh vì chưng client đề nghị viết code xúc tiến đến hàm kia. Các stub sẽ được biên soạn với liên kết cùng với các ứng dụng trường đoản cú phía client trong quá trình phát triển. Ttuyệt vì chưng đựng mã code nhằm tiến hành thủ tục Điện thoại tư vấn hàm trường đoản cú xa, những code của stub đang kinh nghiệm truy nã vấn phần nhiều tham số từ liên quan không khí của Client và tiếp đến đưa chúng vào thỏng viện chạy thực của client. Sau đó, tlỗi viện chạy thực của client sẽ biên dịch đầy đủ tsay mê số cần thiết vào format chuẩn chỉnh NDR (Network Data Representation) để chuyển nhượng bàn giao cho Server.

Tiếp theo stub của Client vẫn Điện thoại tư vấn hàm vào thư viện chạy thực của Client (rpcrt4.dll) nhằm gửi những trải đời cùng thông số kỹ thuật của nó cho hệ thống. Nếu server được đặt vào thuộc 1 host với client, thỏng viện chạy thực rất có thể thực hiện những kỹ năng của Local RPC (LRPC) và thông qua những thử khám phá của RPC tới Windows kernel cho bài toán truyền cài đặt đến VPS. Nếu hệ thống được đặt tại một host khác, thư viện chạy thực vẫn khẳng định một giao thức truyền mua tương thích với trải qua những đề nghị của RPC mang đến Network Staông xã đến câu hỏi truyền download mang lại server. RPC rất có thể sử dụng các nguyên tắc trao thay đổi (Interprocess Communications – IPC) như: Name pipes và Winsock để tiến hành truyền cài đặt cho server.

Bảng dưới đây sẽ liệt kê những giao thức mạng hỗ trợ RPC với những các loại RPC liên kết cùng với giao thức tương ứ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 ra hưởng thụ của RPC(tự phía client vào nội cỗ hoặc client trường đoản cú xa), các hàm trong thư viện chạy thực RPC của Server gật đầu đồng ý những trải đời và call hàm xử lý‎ Server Stub. Server stub vẫn truy vấn vấn các tsi mê số từ network buffer và chọn một trong 2 các loại NDRtrăng tròn hoặc NDR64 (trong NDR Marshalling Engines), kế tiếp chuyển đổi bọn chúng tự định dạng truyền mua mạng lịch sự định hình theo đòi hỏi vày ngươi công ty. Sau đó những giấy tờ thủ tục từ bỏ xa sẽ tiến hành chạy, có tác dụng xuất ra các tyêu thích số với trả về cực hiếm. khi các giấy tờ thủ tục từ xa hoàn tất, một chuỗi các bước tương tự như đã trả về tài liệu mang lại Client

Client hoàn toàn những thủ tục bằng cách đồng ý tài liệu qua mạng cùng trả tài liệu về nhằm điện thoại tư vấn hàm. Thư viện chạy thực RPC của Client nhận được thủ tục từ bỏ xa trả về cực hiếm, thay đổi giá trị tự NDR đôi mươi hoặc NDR64 về định hình được sử dụng vày Client, và trả bọn chúng về client stub.

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

2. Thư viện chạy thực RPC( RPC Runtime Library): được tiến hành như là DLL IV. Các Ports dùng đến RPC

Các chương trình RPC Server thông thường dùng hầu như port hễ (đế tránh khiến xung bất chợt với các lịch trình cùng các giao thức đã được đăng ký trong dãy Well-known TCPhường Ports). Bảng tiếp sau đây vẫn liệt kệ các port sử dụng cho RPC

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *