분산 시스템의 RPC(원격 프로시저 호출) 프로토콜

RPC란 무엇입니까?

원격 프로 시저 호출 (RPC) 프로세스 간 통신 기술입니다. RPC의 전체 형태는 원격 프로시저 호출입니다. 클라이언트-서버 애플리케이션에 사용됩니다. RPC 메커니즘은 컴퓨터 프로그램이 프로시저나 서브루틴을 다른 주소 공간에서 실행하도록 할 때 사용되며, 이는 프로그래머가 원격 상호 작용에 대한 세부 정보를 구체적으로 코딩하지 않고도 일반 프로시저 호출로 코딩됩니다.

이 프로시저 호출은 사용자 데이터그램 프로토콜과 같은 낮은 수준의 전송 프로토콜도 관리합니다. Transmission 제어 프로토콜/인터넷 프로토콜 등. 프로그램 간에 메시지 데이터를 전달하는 데 사용됩니다.

RPC 유형

RPC에는 세 가지 유형이 있습니다.

  • 콜백 RPC
  • 브로드캐스트 RPC
  • 배치 모드 RPC

콜백 RPC

이러한 유형의 RPC는 참여 프로세스 간의 P2P 패러다임을 가능하게 합니다. 이는 프로세스가 클라이언트 서비스이자 서버 서비스가 되는 데 도움이 됩니다.

콜백 RPC의 기능:

  • 원격으로 처리되는 대화형 애플리케이션 문제
  • 클라이언트 핸들이 있는 서버 제공
  • 콜백으로 인해 클라이언트 프로세스가 대기하게 됩니다.
  • 콜백 교착 상태 관리
  • 이는 참여 프로세스 간의 PXNUMXP 패러다임을 촉진합니다.

브로드캐스트 RPC

브로드캐스트 RPC는 클라이언트의 요청으로, 네트워크에서 브로드캐스트되며 해당 요청을 처리할 방법이 있는 모든 서버에서 처리됩니다.

브로드캐스트 RPC의 기능:

  • 클라이언트의 요청 메시지가 브로드캐스트되어야 함을 지정할 수 있습니다.
  • 브로드캐스트 포트를 선언할 수 있습니다.
  • 물리적 네트워크의 부하를 줄이는 데 도움이 됩니다.

배치 모드 RPC

일괄 모드 RPC는 클라이언트 측의 전송 버퍼에서 RPC 요청을 대기열에 넣고 분리한 다음 이를 한 번에 네트워크로 묶어 서버로 전송하는 데 도움이 됩니다.

배치 모드 RPC의 기능:

  • 요청을 네트워크를 통해 일괄적으로 서버에 전송하므로 요청 전송과 관련된 오버헤드가 최소화됩니다.
  • 이러한 유형의 RPC 프로토콜은 낮은 호출 속도가 필요한 애플리케이션에만 효율적입니다.
  • 신뢰할 수 있는 전송 프로토콜이 필요합니다.

RPC Archi강의

RPC 아키텍처는 주로 5가지 프로그램 구성요소로 구성됩니다.

  1. Client
  2. 클라이언트 스텁
  3. RPC 런타임
  4. 서버 스텁
  5. 서버
RPC Archi강의
RPC Archi강의

RPC는 어떻게 작동하나요?

RPC 프로세스 동안 다음 단계가 진행됩니다.

단계 1) 클라이언트, 클라이언트 스텁 및 RPC 런타임 인스턴스 하나가 클라이언트 시스템에서 실행됩니다.

단계 2) 클라이언트는 일반적인 방법으로 매개변수를 전달하여 클라이언트 스텁 프로세스를 시작합니다. 클라이언트 스텁은 클라이언트 자체 주소 공간 내에 저장됩니다. 또한 로컬 RPC 런타임에 서버 스텁으로 다시 보내도록 요청합니다.

단계 3) 이 단계에서는 사용자가 정기적인 로컬 절차적 Cal을 만들어 액세스하는 RPC입니다. RPC 런타임은 클라이언트와 서버를 통한 네트워크 간 메시지 전송을 관리합니다. 또한 재전송, 확인, 라우팅 및 암호화 작업도 수행합니다.

단계 4) 서버 프로시저를 완료한 후 서버 스텁으로 돌아가서 반환 값을 메시지로 압축(마샬링)합니다. 그런 다음 서버 스텁은 메시지를 전송 계층으로 다시 보냅니다.

단계 5) 이 단계에서 전송 계층은 결과 메시지를 클라이언트 전송 계층으로 다시 보내고, 클라이언트 전송 계층은 메시지를 클라이언트 스텁으로 다시 반환합니다.

단계 6) 이 단계에서 클라이언트 스텁은 결과 패킷의 반환 매개변수를 디마샬링(압축해제)하고 실행 프로세스가 호출자에게 반환됩니다.

RPC의 특성

RPC의 필수 특성은 다음과 같습니다.

  • 호출된 프로시저가 다른 프로세스에 있으며, 이는 다른 컴퓨터에 있을 가능성이 높습니다.
  • 프로세스는 주소 공간을 공유하지 않습니다.
  • 매개변수는 값으로만 ​​전달됩니다.
  • RPC는 서버 프로세스 환경 내에서 실행됩니다.
  • 호출 프로시저 환경에 대한 액세스를 제공하지 않습니다.

RPC의 특징

RPC의 중요한 기능은 다음과 같습니다.

  • 간단한 호출 구문
  • 알려진 의미론 제공
  • 잘 정의된 인터페이스 제공
  • 동일하거나 다른 시스템의 프로세스 간에 통신할 수 있습니다.

RPC의 장점

RPC의 장점/이점은 다음과 같습니다.

  • RPC 방법은 클라이언트가 고급 언어의 프로시저 호출을 기존 방식으로 사용하여 서버와 통신할 수 있도록 도와줍니다.
  • RPC 방법은 로컬 프로시저 호출을 모델로 하지만 호출된 프로시저는 다른 프로세스, 일반적으로 다른 컴퓨터에서 실행될 가능성이 높습니다.
  • RPC는 프로세스 및 스레드 지향 모델을 지원합니다.
  • RPC는 내부 메시지 전달 메커니즘을 사용자에게 숨깁니다.
  • 코드를 다시 작성하고 재개발하는 데 필요한 노력은 최소화됩니다.
  • 원격 프로시저 호출은 분산 및 로컬 환경의 목적으로 사용될 수 있습니다.
  • 성능을 향상시키기 위해 많은 프로토콜 계층을 커밋합니다.
  • RPC는 추상화를 제공합니다. 예를 들어, 네트워크 통신의 메시지 전달 특성은 사용자에게 숨겨져 있습니다.
  • RPC를 사용하면 로컬 환경뿐만 아니라 분산 환경에서도 응용 프로그램을 사용할 수 있습니다.
  • RPC 코드를 사용하면 다시 작성하고 재개발하는 노력이 최소화됩니다.
  • RPC는 프로세스 지향 및 스레드 지향 모델을 지원합니다.

RPC의 단점

RPC 사용의 단점/단점은 다음과 같습니다.

  • 원격 프로시저 호출은 허용되지 않는 값과 포인터 값으로만 ​​매개변수를 전달합니다.
  • 원격 프로시저 호출(및 반환) 시간(즉, 오버헤드)은 로컬 프로시저보다 훨씬 낮을 수 있습니다.
  • 이 메커니즘은 통신 시스템, 다른 시스템 및 다른 프로세스를 포함하므로 오류에 매우 취약합니다.
  • RPC 개념은 다양한 방식으로 구현될 수 있지만 이는 표준화될 수 없습니다.
  • RPC는 대부분 상호작용 기반이기 때문에 하드웨어 아키텍처에 대한 유연성을 제공하지 않습니다.
  • 원격 프로시저 호출로 인해 프로세스 비용이 증가합니다.

요약

  • 원격 프로시저 호출은 프로세스 간 통신 기술.
  • RPC에는 1) 콜백 RPC 2) 브로드캐스트 RPC 3) 배치 모드 RPC 세 가지 유형이 있습니다.
  • RPC 아키텍처는 주로 프로그램의 1가지 구성요소로 구성됩니다. 2) 클라이언트 3) 클라이언트 스텁 4) RPC 런타임 5) 서버 스텁 XNUMX) 서버
  • RPC 방법에서는 프로세스가 주소 공간을 공유하지 않습니다.
  • RPC는 간단한 호출 구문과 알려진 의미를 제공합니다.
  • RPC 방법은 클라이언트가 고급 언어의 프로시저 호출을 기존 방식으로 사용하여 서버와 통신할 수 있도록 도와줍니다.
  • RPC 방식의 가장 큰 단점은 통신 시스템, 또 다른 머신, 또 다른 프로세스를 포함하기 때문에 실패에 매우 취약하다는 점이다.