Vậy RPC là gì?

Lúc các bạn viết lịch trình, ắt hẳn chúng ta đã và đang quen với các định nghĩa 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 (tuyệt thủ tục) cùng kế tiếp khi sử dụng chỉ việc gọi giấy tờ thủ tục hoặc hàm kia với các tyêu thích số thích hợp. Các thủ tục hoặc hàm kia bạn bao gồm thể:


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

Bạn đang xem: Cách khắc phục lỗi “rpc server is unavailable”


Điểm thông thường của tất cả những cách làm bên trên là những hàm với thủ tục nên Điện thoại tư vấn những nằm ở cùng một máy với vị trí điện thoại tư vấn bọn chúng. Tuy nhiên chúng ta có thể thấy là chỗ Hotline cùng hàm bắt buộc call có thể được bóc tách tránh nhau ra: từ bỏ thông thường tệp tin, cho khác file, rồi cho khác ngôn ngữ.

Remote Procedure Call  (RPC) – Thủ tục điện thoại tư vấn hàm từ xa là một trong nghệ thuật văn minh đến quá trình liên kết từ Client đến Server nhằm áp dụng các áp dụng cùng các dịch vụ. RPC cho phép client rất có thể kết nối cho tới 1 hình thức sử dụng dynamic port ở tại 1 máy tính xách tay khác. Trong khối 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à áp dụng thực hiện cách thức liên kết RPC, ví dụ quy trình đồng bộ của những Domain Controller trong hệ thống  Active sầu Directory, hoặc lúc MS Outlook liên kết cho tới MS Exchange Server… Nhằm mục tiêu tìm hiểu về cách thức buổi giao lưu của RPC, vào bài viết này, chúng tôi đang reviews với chúng ta “Cơ chế hoạt động vui chơi của Remote Procedure gọi (RPC)”

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

RPC có thiết kế nhằm cung cấp đến câu hỏi truyền cài báo cáo giữa client và hệ thống dễ dàng dànghơn,  bảo mật hơn, với thuận lợi rộng mang đến bài toán đồng điệu hóa các luồn tài liệu. Các hàm cất vào RPC cung cấp mang lại vấn đề truy cập ngẫu nhiên lịch trình nào đòi hỏi cách thức giao tiếp trường đoản cú client mang lại VPS. Hình dưới đã 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 của RPC

Thành phần

Miêu tả

Client or server process

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

RPC stubs

Những hệ thống công tác bé được dùng vị client hoặc server khởi động trải nghiệm RPC.

Marshalling engine

(NDR20 hoặc NDR64)

Cung cấp một đồ họa phổ biến giữa RPC Client và RPC Server cùng được chia thành 2 loại: NDRtrăng tròn cùng NDR64. NDRđôi mươi được sử dụng cho hạ tầng 32 bits. Trong lúc đó NDR64 được tối ưu sử dụng mang lại hạ tầng 64 bits. Client với Server đang Bàn bạc hãy lựa chọn NDR20 xuất xắc NRD64 để giao tiếp 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. Đôi khi, RPC Clients với Servers sẽ Hotline hàm API (hình ảnh lập trình ứng dụng) để khởi tạo RPC cùng chuẩn bị cấu trúc dữ liệu sẽ tiến hành áp dụng để thực hiện cuộc gọi RPC. Lớp API sẽ ra quyết định nếu như trải đời RPC đến từ marshalling engine hoặc trực tiếp trường đoản cú client/server mang lại máy chủ nội bộ hoặc sever trường đoản cú xa. Sau đó lớp API đã dẫn đường cho RPC cho Connection RPC, Datagram RPC hoặc Local RPC Layers

Connection RPC protocol engine

Được thực hiện Lúc RPC kinh nghiệm giao thức kết nối. Lớp này sẽ hướng dẫn và chỉ định sử dụng giao thức liên kết trường hợp RPC được gửi đi hoặc nhận được một liên kết hướng về RPC

Datagram RPC protocol engine

Được sử dụng lúc RPC những hiểu biết giao thức phi kết nối. Lớp này sẽ hướng dẫn và chỉ định sử dụng giao thức phi liên kết ví như RPC được gửi đi hoặc nhận được một phi kết nối tới RPC

Local RPC protocol engine

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

Registry

Được truy cập lúc các dịch vụ RPC đầu tiên được download về. Các thành phía bên trong registry sẽ hướng đẫn hàng port IP.. cùng tên thiết bị của các thẻ mạng để RPC gồm thể  phối kết hợp chúng lại cùng nhau. Trừ lúc API ép buộc RPC phải sử dụng, Registry sẽ không đượ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 file thỏng viện rượu cồn 32 bits tất cả vào Windows NT. File này Chịu đựng trách nát nhiệm quản lí 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 trên giao diện xây dựng ứng dụng. File này hỗ trợ về bảo mật với call các registry

Ntdll.dll là tệp tin dll quản lý‎ tác dụng các 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 mang đến RPC. File secur32.dll vẫn thảo luận cách cần 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) hầu hết cung ứng cơ sở hạ tầng cho những các dịch vụ COM, nhưng mà một trong những phần của Rpcss.dll được sử dụng mang lại EPM. RPC Server liên lạc với EPM nhằm nhận những điểm xong rượu cồn với ĐK đa số đặc điểm đó vào cơ sở dữ liệu của EPM. Rồi kế tiếp Khi RPC Clients hy vọng kết nối tới RPC Server, nó sẽ liên lạc với EPM nhằm nhờ vào EPM phân giải đều điểm xong..

Active sầu Directory

Chỉ được áp dụng mang lại quy trình cách xử trí RPC client lúc giao diện bảo mật rõ ràng nlỗi Kerberos hoặc Negotiate nlỗi bên hỗ trợ bảo mật hoặc khi Server dùng NTLM nhỏng nhà 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 server uses NTLM as the security provider.

Xem thêm: Ngân Hàng Trung Gian Tiếng Anh Là Gì, Ngân Hàng, Ngân Hàng Trung Gian Tiếng Anh Là Gì

Network stack

Được thực hiện thông qua các yêu cầu  cùng vấn đáp của RPC thân Client với Server

Kernel

Được sử dụng trải qua các yêu cầu  với trả lời của RPC giữa Client với Server

III. Quá trình cách xử trí với liên tưởng của RPC

Các nguyên tố của RPC để giúp đỡ mang lại Clients giải pháp xử lý dễ ợt bằng phương pháp hotline hàm nằm trong một lịch trình trường đoản cú xa. Client cùng Server có một thúc đẩy không khí riêng; điều này Có nghĩa là từng mối cung cấp tài nguyên bộ lưu trữ của Client và Server cấp phép đến tài liệu sẽ tiến hành sử dụng vì chưng hàm.

*

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

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

Tiếp theo stub của Client đã Điện thoại tư vấn hàm trong thư viện chạy thực của Client (rpcrt4.dll) nhằm gửi những tận hưởng cùng thông số kỹ thuật của chính nó cho hệ thống. Nếu server được đặt trong cùng 1 host cùng với client, thư viện chạy thực có thể thực hiện các hào kiệt của Local RPC (LRPC) và  trải qua các đề xuất của RPC tới Windows kernel cho việc truyền mua đến hệ thống. Nếu hệ thống được đặt tại 1 host không giống, thỏng viện chạy thực đã khẳng định một giao thức truyền download phù hợp và thông qua những kinh nghiệm của RPC mang lại Network Stachồng mang lại câu hỏi truyền sở hữu đến VPS. RPC rất có thể dùng các 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 tải mang lại VPS.

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

Các giấy tờ thủ tục tự xa trả tài liệu của chính nó về mang đến Server Stub, chọn 1 vào 2 nhiều loại NDRđôi mươi hoặc NDR64 (vào NDR Marshalling Engines), biến hóa hầu như ttê mê số được xuất ra thành định dạng truyền thiết lập mạng cho client cùng trả chúng vào thỏng câu hỏi chạy thực RPC của Server. Sau kia tlỗi viện chạy thực RPC của Server vẫn truyền cài tài liệu mang đến máy tính xách tay của Client bởi LRPC hoặc qua network.

Client hoàn tất những giấy tờ thủ tục bằng cách gật đầu đồng ý dữ liệu qua mạng cùng trả tài liệu về để call 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ị, biến hóa giá trị tự NDR 20 hoặc NDR64 về định hình được sử dụng vì chưng Client, với 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: 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ư thể DLL IV. Các Ports sử dụng đến RPC

Các công tác RPC Server thông thường dùng rất nhiều port rượu cồn (đế tách tạo xung đột nhiên với những chương trình cùng các giao thức đã có được đăng ký trong dãy Well-known TCP.. Ports). Bảng tiếp sau đây vẫn liệt kệ các port cần sử dụng mang lại 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 *