RPC LÀ GÌ

  -  
Vậy RPC là gì?

Lúc các bạn viết chương trình, ắt hẳn bạn cũng đã quen với các khái niệm thủ tụchàm. Các đoạn công tác lặp đi lặp lại các bạn viết lại thành một hàm (tốt thủ tục) cùng kế tiếp khi dùng chỉ việc gọi giấy tờ thủ tục hoặc hàm kia với những tmê say số thích hợp. Các giấy tờ thủ tục hoặc hàm kia bạn tất cả thể:


Được biên dịch sẵn cùng nhằm vào một thư viện hoặc unit để các lịch trình khác của công ty (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 tệp tin DLL nhằm những chương trình (được viết bằng các ngôn ngữ khác nhau) thực hiện.

Bạn đang xem: Rpc là gì


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

Remote Procedure Call  (RPC) – Thủ tục điện thoại tư vấn hàm từ xa là 1 trong những kỹ thuật hiện đại đến quy trình kết nối tự Client mang đến Server để thực hiện những áp dụng và hình thức. RPC được cho phép client hoàn toàn có thể kết nối cho tới 1 hình thức dịch vụ áp dụng 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 hiện nay có nhiều hình thức dịch vụ với ứng dụng thực hiện phương pháp kết nối RPC, ví dụ quá trình đồng nhất của những Domain Controller trong hệ thống  Active sầu Directory, hoặc khi MS Outlook liên kết cho tới MS Exchange Server… Nhằm mục tiêu tìm hiểu về chính sách hoạt động của RPC, trong nội dung bài viết này, chúng tôi đang trình làng cùng với chúng ta “Cơ chế buổi giao lưu của Remote Procedure hotline (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 tin giữa client và server dễ dàngrộng,  bảo mật hơn, và thuận tiện hơn đến Việc đồng nhất hóa các luồn dữ liệu. Các hàm chứa trong RPC cung ứng mang đến bài toán truy cập bất kỳ chương trình làm sao đòi hỏi cách thức giao tiếp từ bỏ client mang lại VPS. Hình dưới sẽ cho 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 server process

Chương trình hoặc hình thức dịch vụ trả lời trường đoản cú hưởng thụ của RPC

RPC stubs

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

Marshalling engine

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

Cung cấp một giao diện phổ biến thân RPC Client với RPC Server với đượ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 về tối ưu cần sử dụng mang đến hạ tầng 64 bits. Client và Server sẽ thảo luận nên chọn NDR20 xuất xắc NRD64 nhằm giao tiếp cùng với nhau

Runtime application programming interface (API)

Cung cấp hình ảnh mang lại RPC cho tới Clients hoặc Servers. Thông thường, RPC Clients và Servers đã Gọi hàm API (bối cảnh thiết kế ứ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 Hotline RPC. Lớp API đang đưa ra quyết định giả dụ đề xuất RPC tới từ marshalling engine hoặc thẳng tự client/VPS cho sever nội bộ hoặc máy chủ trường đoản cú xa. Sau đó 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 sử dụng Khi RPC thử khám phá giao thức liên kết. Lớp này đang chỉ định sử dụng giao thức kết nối trường hợp RPC được gửi đi hoặc nhận được một kết nối nhắm đến RPC

Datagram RPC protocol engine

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

Local RPC protocol engine

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

Registry

Được truy cập Lúc hình thức RPC trước tiên được thiết lập về. Các thành phần trong registry đã hướng dẫn và chỉ định hàng port IPhường với thương hiệu máy của những thẻ mạng nhằm RPC tất cả thể  kết hợp bọn chúng lại với nhau. Trừ lúc API ép buộc RPC đề nghị sử dụng, Registry sẽ không còn được áp dụng vào 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 có vào Windows NT. File này Chịu trách nát nhiệm quản lí ly‎ bộ nhớ lưu trữ, các chuyể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 đồ họa lập trình sẵn áp dụng. File này cung ứng về bảo mật cùng Hotline những registry

Ntdll.dll là file dll quản ngại lý‎ tác dụng các file hệ thống của Windows NT

SSPI

(secur32.dll)

Cung cung cấp giao diện bảo mật đến RPC. File secur32.dll đang hiệp thương biện pháp dùng đến bài toán xác nhận 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) đa số hỗ trợ hạ tầng cho các dịch vụ COM, nhưng mà một trong những phần của Rpcss.dll được dùng mang đến EPM. RPC Server liên lạc với EPM nhằm nhận thêm các điểm dứt đụng với đăng ký đông đảo điểm này vào đại lý dữ liệu của EPM. Rồi kế tiếp lúc RPC Clients ao ước kết nối cho tới RPC Server, nó đã liên hệ cùng với EPM nhằm nhờ vào EPM phân giải mọi điểm hoàn thành..

Active Directory

Chỉ được áp dụng mang đến 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 nlỗi công ty cung ứng bảo mật thông tin hoặc Khi Server cần sử dụng NTLM nhỏng bên 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: Bữa Sáng Nên Ăn Gì Buổi Sáng Ăn Gì Để Tốt Cho Sức Khỏe? Sáng Ăn Gì Tốt Cho Sức Khỏe

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 sử dụng thông qua các yêu thương cầu  và trả lời của RPC giữa Client với Server

III. Quá trình giải pháp xử lý và liên hệ của RPC

Các thành phần của RPC để giúp đỡ mang đến Clients cách xử trí thuận lợi bằng phương pháp Hotline hàm nằm ở một công tác từ bỏ xa. Client với Server tất cả một cửa hàng không khí riêng; điều ấy tức là từng mối cung cấp tài nguyên ổn bộ lưu trữ của Client cùng Server cấp phát đến tài liệu sẽ được dùng do hàm.

*

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

Quá trình xử lý của RPC ban đầu tự phía Client. Ứng dụng từ bỏ phía Client sẽ gọi Client stub nắm vày client đề xuất viết code xúc tiến mang lại hàm đó. Các stub sẽ được biên soạn với liên kết cùng với các áp dụng từ bỏ phía client vào quy trình cách tân và phát triển. Ttuyệt vị đựng mã code nhằm tiến hành thủ tục điện thoại tư vấn hàm từ bỏ xa, những code của stub vẫn tận hưởng truy vấn vấn hầu như tham mê số từ liên quan không khí của Client cùng sau đó đưa nó vào tlỗi viện chạy thực của client. Sau kia, tlỗi viện chạy thực của client vẫn biên dịch rất nhiều tham số cần thiết vào format chuẩn chỉnh NDR (Network Data Representation) nhằm bàn giao mang đến Server.

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

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

Các giấy tờ thủ tục từ bỏ xa trả dữ liệu của chính nó về mang lại Server Stub, lựa chọn một vào 2 nhiều loại NDR20 hoặc NDR64 (vào NDR Marshalling Engines), biến đổi những tham số được xuất ra thành định hình truyền download mạng cho client và trả nó vào thư vấn đề chạy thực RPC của Server. Sau kia thư viện chạy thực RPC của Server vẫn truyền cài dữ liệu đến máy vi tính của Client bởi LRPC hoặc qua network.

Xem thêm: Hướng Dẫn Chơi Ukulele Cơ Bản Nhất Cho Người Mới Tập, Giáo Trình Tự Học Đàn Ukulele Mới Cập Nhật Mới

Client hoàn toàn các 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 hotline hàm. Thỏng viện chạy thực RPC của Client cảm nhận giấy tờ thủ tục từ xa trả về giá trị, đổi khác quý giá trường đoản cú NDR đôi mươi hoặc NDR64 về format được dùng vì chưng Client, với trả chúng về client stub.

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

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

Các lịch trình RPC Server thông hay sử dụng hầu hết port đụng (đế tránh khiến xung thốt nhiên cùng với những lịch trình với những giao thức đã làm được đăng ký vào dãy Well-known TCPhường Ports). Bảng tiếp sau đây sẽ liệt kệ những port cần sử dụng cho RPC