Vậy RPC là gì?

khi các bạn viết công tác, ắt hẳn các bạn cũng đã quen với những quan niệm thủ tục với hàm. Các đoạn chương trình lặp đi lặp lại bạn viết lại thành một hàm (xuất xắc thủ tục) với sau đó khi sử dụng chỉ việc gọi thủ tục hoặc hàm đó cùng với các ttê mê số phù hợp. Các thủ tục hoặc hàm kia chúng ta gồm thể:


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

Bạn đang xem: Rpc là gì và tại sao nó lại quan trọng như vậy?


Điểm chung của toàn bộ những thủ tục trên là những hàm và thủ tục phải call phần nhiều nằm trong cùng một máy với nơi điện thoại tư vấn bọn chúng. Tuy nhiên chúng ta cũng có thể thấy là địa điểm Hotline cùng hàm bắt buộc Gọi có thể được bóc rời nhau ra: từ tầm thường tệp tin, đến khác file, rồi cho không giống ngôn từ.

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

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

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

*

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

II. Các yếu tắc của RPC

Thành phần

Miêu tả

Client or hệ thống process

Cmùi hương trình hoặc hình thức vấn đáp từ bỏ thử dùng của RPC

RPC stubs

Những khối hệ thống lịch trình bé được dùng do client hoặc hệ thống khởi hễ thử dùng RPC.

Marshalling engine

(NDR20 hoặc NDR64)

Cung cung cấp một bối cảnh chung giữa RPC Client và RPC Server cùng được chia thành 2 loại: NDRtrăng tròn với NDR64. NDR20 được dùng đến hạ tầng 32 bits. Trong lúc ấy NDR64 được tối ưu sử dụng đến hạ tầng 64 bits. Client cùng Server sẽ trao đổi hãy lựa chọn NDRtrăng tròn giỏi NRD64 để tiếp xúc cùng với nhau

Runtime application programming interface (API)

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

Connection RPC protocol engine

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

Datagram RPC protocol engine

Được sử dụng khi RPC kinh nghiệm giao thức phi kết nối. Lớp này đã chỉ định và hướng dẫn sử dụng giao thức phi kết nối ví như RPC được gửi đi hoặc nhận ra một phi kết nối cho tới RPC

Local RPC protocol engine

Được áp dụng Khi Server cùng Client đặt vào và một host.

Registry

Được truy cập Khi hình thức dịch vụ RPC trước tiên được mua về. Các thành bên trong registry sẽ hướng dẫn và chỉ định hàng port IPhường và tên máy của các thẻ mạng nhằm RPC bao gồm thể  kết hợp bọn chúng lại cùng nhau. Trừ khi API ép buộc RPC yêu cầu cần sử dụng, Registry sẽ không được áp dụng 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 hễ 32 bits bao gồm vào Windows NT. File này chịu trách nhiệm quản ngại ly‎ bộ nhớ, những vận độ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 xây dựng vận dụng. File này hỗ trợ về bảo mật và điện thoại tư vấn các registry

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

SSPI

(secur32.dll)

Cung cấp đồ họa bảo mật thông tin cho RPC. File secur32.dll sẽ thương lượng giải pháp cần sử dụng đến vấn đề 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 Gọi subsystem) chủ yếu cung ứng hạ tầng cho các dịch vụ COM, dẫu 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 hệ với EPM nhằm nhận các điểm chấm dứt rượu cồn và ĐK các điểm này vào các đại lý tài liệu của EPM. Rồi kế tiếp Khi RPC Clients mong kết nối cho tới RPC Server, nó vẫn liên lạc cùng với EPM nhằm nhờ EPM phân giải đều điểm dứt..

Active sầu Directory

Chỉ được sử dụng mang lại quy trình xử lý RPC client lúc bối cảnh bảo mật thông tin ví dụ nhỏng Kerberos hoặc Negotiate như nhà hỗ trợ bảo mật thông tin hoặc Lúc Server cần sử dụng NTLM nlỗi đơn vị cung ứng 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 hệ thống uses NTLM as the security provider.

Xem thêm: Severability Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích Ngôn Ngữ Hợp Đồng Thương Mại Tiếng Anh

Network stack

Được thực hiện thông qua những yêu cầu  và trả lời của RPC thân Client cùng Server

Kernel

Được thực hiện trải qua những yêu thương cầu  và trả lời của RPC giữa Client cùng Server

III. Quá trình xử lý và liên tưởng của RPC

Các yếu tố của RPC sẽ giúp đỡ mang đến Clients giải pháp xử lý tiện lợi bằng cách điện thoại tư vấn hàm nằm trên một chương trình tự xa. Client với Server tất cả một can dự không gian riêng; điều đó Tức là mỗi nguồn tài nguyên ổn bộ nhớ của Client với Server cấp phát cho tài liệu sẽ tiến hành sử dụng bởi 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ừ phía Client sẽ Call Client stub cố do client đề nghị viết code thực hiện mang lại hàm kia. Các stub sẽ tiến hành soạn cùng link với các vận dụng trường đoản cú phía client trong quy trình cách tân và phát triển. Tgiỏi vị cất mã code nhằm triển khai giấy tờ thủ tục hotline hàm trường đoản cú xa, những code của stub vẫn yên cầu tróc nã vấn phần nhiều tsi mê số từ địa chỉ không khí của Client cùng sau đó gửi chúng nó vào tlỗi viện chạy thực của client. Sau kia, thỏng viện chạy thực của client vẫn biên dịch phần nhiều tđắm đuối 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 trong thư viện chạy thực của Client (rpcrt4.dll) để gửi những những hiểu biết cùng thông số kỹ thuật của nó mang lại hệ thống. Nếu server được đặt vào cùng 1 host với client, thư viện chạy thực rất có thể sử dụng những thiên tài của Local RPC (LRPC) và  thông qua những thử khám phá của RPC tới Windows kernel mang đến Việc truyền tải cho hệ thống. Nếu VPS được đặt ở một host không giống, thỏng viện chạy thực sẽ xác định một giao thức truyền sở hữu phù hợp và thông qua các yêu cầu của RPC cho Network Staông xã mang đến bài toán truyền mua mang đến hệ thống. RPC có thể cần sử dụng những nguyên lý trao đổi khác (Interprocess Communications – IPC) như: Name pipes với Winsoông xã nhằm tiến hành truyền cài đến server.

Bảng sau đây đã liệt kê những giao thức mạng cung ứng RPC cùng các một số 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

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

Các thủ tục từ xa trả tài liệu của chính nó về mang lại Server Stub, lựa chọn 1 vào 2 loại NDRtrăng tròn hoặc NDR64 (vào NDR Marshalling Engines), đổi khác hồ hết tham 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 vào tlỗi Việc chạy thực RPC của Server. Sau đó tlỗi viện chạy thực RPC của Server đã truyền cài dữ liệu mang đến máy vi tính của Client bằng LRPC hoặc qua network.

Client hoàn tất 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 điện thoại tư vấn hàm. Thư viện chạy thực RPC của Client nhận ra thủ tục từ xa trả về giá trị, chuyển đổi giá trị từ bỏ NDR trăng tròn hoặc NDR64 về định dạng được dùng do Client, và trả bọn chúng về client stub.

Đối cùng với Microsoft Windows, tlỗi viện chạy thực được chia làm 2 phần: 1. Import Library: liên kết 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 sử dụng đến RPC

Các lịch trình RPC Server thông thường dùng đa số port hễ (đế tránh tạo xung chợt với những công tác với những giao thức đã có được đăng ký vào hàng Well-known TCP Ports). Bảng sau đây sẽ 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 *