티스토리 뷰

의미 : 백과사전

================================================================

원격 프로시저 호출(Remote procedure call, RPC)은 컴퓨터 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세세한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술이다. 다시 말해, 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 간에 반드시 동일한 코드를 짜게 된다.

어떠한 소프트웨어가 객체 지향의 원칙을 사용하여 프로그래밍 때, RPC는 원격 호출(remote invocation) 또는 원격 메소드 호출(remote method invocation)이라고 일컫는다.

가끔 ONC RPCDCE/RPC와 같은 비호환 대상을 수행하기 위해 쓰이는 다른 수많은 기술이 있다.

================================================================


The RPC UDP and TCP frames have a structure similar to the following example:



The UDP version is actually an NFS frame that uses Unix for authentication (hence the extra fields) and does not use an authentication verifier.

The RPC Call message has the following fields:
  • Transaction ID - matches RPC requests and replies.
  • Sending Direction Indicator
  • RPC version number - currently the version is 4 for connectionless RPC (using UDP) and 5 for connection-oriented RPC. An extra field is added for connection-oriented RPC for the minor protocol version ('0' or '1').
  • Remote Program Number - issued by Sun (rpc@sun.com)
  • Remote Program Version Number - version of the program
  • Remote Procedure Number - the number of the procedure being called. This number matches the Requests and the Replies and is a 4-byte field containing an 8 digit hexadecimal number.
  • Remote Protocol Number - the first 4 least significant bits are used for this. The other bits are reserved.
Sun has control over program numbers 0x00000000 to 0x1fffffff. The range 0x20000000 to 0x3fffffff is for user use when testing new applications. Other ranges above are given out in blocks of 0x20000000.

The following table lists some of the more common Program call numbers that Sun have assigned in their range:

Number Program Explanation
0x00100000 portmapper portmap sunrpc. Manages use of transport ports. Other Lookup services could be used here.
0x00100001 rstat_svc Remote statistics.
0x00100002 rusersd Remote users.
0x00100003 nfs Network file system.
0x00100004 ypserv ypprog. Yellow pages directory service.
0x00100005 mountd Mount protocol.
0x00100006 Remote DBX Remote DBX.
0x00100007 ypbind Yellow pages binding service.
0x00100008 walld Shutdown messages.
0x00100009 yppasswd Yellow pages password server.
0x00100010 etherstatd Ethernet status.
0x00100011 rquotad Disk quota manager.
0x00100012 sprayd Packet generator.
0x00100013 3270_mapper 3270 mapping service.
0x00100014 rje_mapper Remote job entry mapping service.
0x00100015 selection_svc Selection service.
0x00100016 database_svc Remote database access.
0x00100017 rexd Remote execution.
0x00100018 alis Alice office automation program.
0x00100019 sched Scheduling service.
0x00100020 llockmgr Local lock manager.
0x00100021> nlockmgr Network lock manager.
0x00100022 x25.inr X.25 INR protocol.
0x00100023 statmon Status monitor 1.
0x00100024 status Status monitor 2.
0x00100025 Select_Lib Selection library.
0x00100026 bootparam Boot parameters service.
0x00100027 Mazewars Mazewars game.
0x00100028 ypupdated Yellow pages update service.
0x00100029 Key_Server Key server.
0x00100030 SecureLogin Secure login service.
0x00100031 NFS_FwdInit NFS network forwarding service.
0x00100032 NFS_FwdTrns NFS forwarding transmitter.
0x00100033 SunLink_MAP Sunlink MAP.
0x00100034 Net_Monitor Network monitor.
0x00100035 DataBase Lightweight database.
0x00100036 Passwd_Auth Password authorization.
0x00100037 TFS_Service Translucent file service.
0x00100038 NSE_Service NSE server.
0x00100039 NSE_Daemon NSE activate process.
0x00100069 ypxfrd Yellow Pages Transfer.
0x00150001 pcnfsd PC password authorization.
0x00200000 PyramidLock Pyramid lock service.
0x00200001 PyramidSys5 Pyramid Sys5 service.
0x00200002 CADDS_Image CV CADDS images.
0x00300001 ADTFileLock ADT file locking service.

There are also the following authentication parameters:
  • 0 - (Null) Not used and the authentication fields have zero length.
  • 1 - (UNIX) UNIX user and group IDs. If this is the type authentication being used then additional parameters such as the System Name, User ID and Group ID. This is used by NFS.
  • 2 - (Short) Shorthand code used, generated by the client
  • 3 - (DES) Data encryption standard used by secure NFS.
RFC 2695 describes authentication mechanisms for RPC.
RFC 2203 describes the RPCSEC_GSS ONC RPC security flavor.
RFC 2078 describes Generic Security Service Application Program Interface.

Reply Messages can contain the following messages:
  • call successful - Call completed with no errors.
  • program unknown - Program number was not found.
  • bad program ver - Program version was not found.
  • proced unknown - Program procedure was not found.
  • bad parameters - Invalid call parameters (arguments) were found.
  • bad RPC version - RPC Version not supported.
  • bad credentials - Invalid call credentials supplied.
  • restart session - Request to begin a new session.
  • bad verifier - Invalid verifier was supplied.
  • verify rejected - Verifier has expired or was re-used.
  • failed security - Caller has insufficient privileges.

 

출처 : http://www.rhyshaden.com/rpc.htm

'개발 > Linux' 카테고리의 다른 글

dmesg Option  (0) 2011.10.31
vmalloc 영역... [가설]  (0) 2011.10.28
sleep_on(), wake_up()  (0) 2011.10.10
lighttpd.conf [cipher-list]  (0) 2011.10.10
cron  (0) 2011.09.27
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday