Remote procedure call là gì

  -  
Vậy RPC là gì?

Lúc bạn viết lịch trình, ắt hẳn chúng ta đã và đang quen với các quan niệm thủ tục với hàm. Các đoạn công tác lặp đi tái diễn các bạn viết lại thành một hàm (hay thủ tục) và kế tiếp khi sử dụng chỉ việc gọi thủ tục hoặc hàm kia với những tđê mê số thích hợp. Các thủ tục hoặc hàm kia bạn tất cả thể:


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

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


Điểm chung của tất cả các cách làm trên là các hàm cùng thủ tục buộc phải điện thoại tư vấn đông đảo nằm ở cùng một máy với vị trí Gọi chúng. Tuy nhiên bạn có thể thấy là chỗ Điện thoại tư vấn và hàm đề xuất gọi có thể được tách bóc tránh nhau ra: từ bỏ bình thường file, mang lại khác tệp tin, rồi mang đến không giống ngôn từ.

Remote Procedure Call  (RPC) – Thủ tục Hotline hàm từ bỏ xa là 1 chuyên môn tiến bộ cho quy trình liên kết tự Client cho Server nhằm sử dụng những ứng dụng với các dịch vụ. 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 nằm ở 1 máy tính khác. Trong hệ thống mạng máy vi tính hiện nay có tương đối nhiều hình thức và ứng dụng thực hiện phương pháp liên kết RPC, ví dụ quá trình đồng hóa của các Domain Controller vào hệ thống  Active sầu Directory, hoặc Lúc MS Outlook kết nối tới MS Exchange Server… Nhằm mục đích khám phá về nguyên lý buổi giao lưu của RPC, trong bài viết này, Cửa Hàng chúng tôi vẫn ra mắt cùng với các bạn “Cơ chế hoạt động của Remote Procedure Hotline (RPC)”

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

RPC được thiết kế theo phong cách để cung cấp cho câu hỏi truyền cài đặt biết tin thân client và server dễ dàng dànghơn,  bảo mật rộng, cùng dễ dàng hơn cho vấn đề đồng hóa hóa các luồn tài liệu. Các hàm cất vào RPC cung cấp cho vấn đề truy cập bất kỳ chương trình như thế nào yên cầu cách thức giao tiếp trường đoản cú client mang đến hệ thống. Hình bên dưới vẫn mang đến chúng ta 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 yếu 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ừ trải đời của RPC

RPC stubs

Những hệ thống lịch trình nhỏ được sử dụng vì client hoặc VPS khởi động trải nghiệm RPC.

Marshalling engine

(NDRđôi mươi hoặc NDR64)

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

Runtime application programming interface (API)

Cung cấp bối cảnh mang đến RPC cho tới Clients hoặc Servers. Đôi khi, RPC Clients cùng Servers sẽ Điện thoại tư vấn hàm API (hình ảnh lập trình sẵn ứng dụng) để có thể tạo RPC với sẵn sàng kết cấu tài liệu sẽ được thực hiện để triển khai cuộc điện thoại tư vấn RPC. Lớp API đã đưa ra quyết định trường hợp hưởng thụ RPC tới từ marshalling engine hoặc trực tiếp từ client/hệ thống mang lại sever nội bộ hoặc máy chủ trường đoản cú xa. Sau đó lớp API vẫn chỉ đường cho RPC cho Connection RPC, Datagram RPC hoặc Local RPC Layers

Connection RPC protocol engine

Được thực hiện khi RPC yên cầu giao thức liên kết. Lớp này đã hướng dẫn và chỉ định thực hiện giao thức kết nối trường hợp RPC được gửi đi hoặc cảm nhận một kết nối hướng tới RPC

Datagram RPC protocol engine

Được thực hiện Lúc RPC yêu cầu giao thức phi liên kết. Lớp này đã chỉ định sử dụng giao thức phi liên kết 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 cùng một host.

Registry

Được truy cập khi các dịch vụ RPC đầu tiên được download về. Các thành phần nằm trong registry đang chỉ định và hướng dẫn hàng port IP và thương hiệu máy của các card mạng nhằm RPC gồm thể  phối hợp bọn chúng lại với nhau. Trừ Lúc API xay buộc RPC cần dùng, Registry sẽ không còn được thực hiện trong hoạt động vui chơi của RPC

Win32 APIs

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

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

Advapi32.dll là tệp tin nâng cấp của Windows 32 dựa trên giao diện thiết kế ứng dụng. File này cung ứng về bảo mật thông tin và Hotline những registry

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

SSPI

(secur32.dll)

Cung cấp giao diện bảo mật thông tin mang đến RPC. File secur32.dll sẽ trao đổi cách cần sử dụng mang đến câu hỏi xác nhận và mã hóa như: Kerberos, NTLM, hoặc Secure Sockets Layer (SSL)

Endpoint Mapper (EPM)

(rpcss.dll)

Rpcss.dll (Remote procedure call subsystem) đa số cung ứng hạ tầng cho những hình thức COM, tuy nhiên một phần của Rpcss.dll được sử dụng mang đến EPM. RPC Server liên lạc cùng với EPM để nhận các điểm xong động và đăng ký phần lớn điểm đó vào các đại lý tài liệu của EPM. Rồi sau đó khi RPC Clients ao ước kết nối cho tới RPC Server, nó sẽ liên lạc với EPM nhằm nhờ EPM phân giải đầy đủ điểm chấm dứt..

Active sầu Directory

Chỉ được áp dụng mang lại quy trình giải pháp xử lý RPC client Lúc hình ảnh bảo mật ví dụ như Kerberos hoặc Negotiate nlỗi bên hỗ trợ bảo mật thông tin hoặc Lúc Server cần sử dụng NTLM như đơn vị hỗ trợ 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: Snp Là Gì ? Viết Tắt Của Từ Gì

Network stack

Được sử dụng thông qua các yêu thương cầu  với trả lời của RPC thân Client cùng Server

Kernel

Được áp dụng thông qua những yêu thương cầu  và trả lời của RPC thân Client cùng Server

III. Quá trình giải pháp xử lý và ảnh hưởng của RPC

Các thành phần của RPC để giúp đỡ đến Clients giải pháp xử lý dễ ợt bằng phương pháp điện thoại tư vấn hàm nằm trong một công tác tự xa. Client và Server tất cả một tương tác không gian riêng; điều này có nghĩa là mỗi mối cung cấp tài nguyên bộ nhớ của Client với Server cấp phép đến dữ liệu sẽ được dùng bởi hàm.

*

Hình 2: Quá trình giải pháp xử lý của RPC

Quá trình giải pháp xử lý của RPC ban đầu từ phía Client. Ứng dụng trường đoản cú phía Client sẽ call Client stub vậy do client đề xuất viết code thực thi mang đến hàm đó. Các stub sẽ tiến hành soạn cùng liên kết với các áp dụng trường đoản cú phía client trong quá trình cải tiến và phát triển. Thay bởi đựng mã code để triển khai giấy tờ thủ tục Điện thoại tư vấn hàm tự xa, các code của stub sẽ yên cầu tầm nã vấn đa số tđắm đuối số từ tác động không khí của Client với tiếp đến gửi nó vào thỏng viện chạy thực của client. Sau đó, thư viện chạy thực của client sẽ biên dịch đều tham số quan trọng vào định dạng chuẩn chỉnh NDR (Network Data Representation) để chuyển nhượng bàn giao mang lại Server.

Tiếp theo stub của Client đã Call hàm vào thỏng viện chạy thực của Client (rpcrt4.dll) để gửi những đòi hỏi và thông số kỹ thuật của chính nó mang đến hệ thống. Nếu server được đặt trong thuộc 1 host với client, thư viện chạy thực rất có thể sử dụng những hào kiệt của Local RPC (LRPC) và  thông qua các yên cầu của RPC tới Windows kernel đến vấn đề truyền download mang đến hệ thống. Nếu VPS được đặt tại 1 host khác, thỏng viện chạy thực đã khẳng định một giao thức truyền download phù hợp và trải qua những từng trải của RPC đến Network Staông xã mang đến vấn đề truyền cài cho server. RPC rất có thể dùng các bề ngoài trao đổi khác (Interprocess Communications – IPC) như: Name pipes với Winsoông xã nhằm triển khai truyền cài đặt đến server.

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

Các thủ tục từ bỏ xa trả tài liệu của chính nó về mang đến Server Stub, lựa chọn 1 trong 2 một số loại NDRtrăng tròn hoặc NDR64 (trong NDR Marshalling Engines), chuyển đổi các tđam mê số được xuất ra thành định hình truyền sở hữu mạng mang đến client với trả chúng nó vào tlỗi câu hỏi chạy thực RPC của Server. Sau đó thư viện chạy thực RPC của Server vẫn truyền download tài liệu đến máy tính xách tay của Client bằng LRPC hoặc qua network.

Xem thêm: Issuing Authority Là Gì ? Ý Nghĩa Là Gì? Issuing Authority Là Gì

Client hoàn tất những giấy tờ thủ tục bằng phương pháp đồng ý tài liệu qua mạng cùng trả tài liệu về để Call hàm. Tlỗi viện chạy thực RPC của Client nhận ra thủ tục từ bỏ xa trả về cực hiếm, chuyển đổi quý giá tự NDR trăng tròn hoặc NDR64 về định hình được sử dụng vày Client, cùng trả 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: links cùng 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 mang lại RPC

Các lịch trình RPC Server thông hay sử dụng phần nhiều port động (đế tránh tạo xung tự dưng với các công tác và những giao thức đã được đăng ký trong hàng Well-known TCP. Ports). Bảng dưới đây vẫn liệt kệ những port sử dụng mang lại RPC