Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Sun RPC
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Computer network protocol}} {{IPstack}} __NOTOC__ '''Open Network Computing''' ('''ONC''') '''Remote Procedure Call''' ('''RPC'''), commonly known as '''Sun RPC''' is a [[remote procedure call]] system. ONC was originally developed by [[Sun Microsystems]] in the 1980s as part of their [[Network File System (protocol)|Network File System]] project. ONC is based on [[calling convention]]s used in [[Unix]] and the [[C (programming language)|C programming language]]. It [[serialization|serializes]] data using the [[External Data Representation]] (XDR), which has also found some use to encode and decode data in files that are to be accessed on more than one platform. ONC then delivers the XDR payload using either [[User Datagram Protocol|UDP]] or [[Transmission Control Protocol|TCP]]. Access to RPC services on a machine are provided via a ''[[port mapper]]'' that listens for queries on a [[List of TCP and UDP port numbers#Well-known_ports|well-known port]] (number 111) over UDP and TCP. ONC RPC version 2 was first described in {{IETF RFC|1050}}<ref name=rfc1050>{{cite web|title=RFC 1050 section 8|date=April 1988 |url=https://datatracker.ietf.org/doc/html/rfc1050#section-8|quote=rpcvers must be equal to 2}}</ref> published in April 1988. In June 1988 it was updated by {{IETF RFC|1057}}. Later it was updated by {{IETF RFC|1831}}, published in August 1995. {{IETF RFC|5531}}, published in May 2009, is the current version. All these documents describe only version 2 and version 1 was not covered by any RFC document. Authentication mechanisms used by ONC RPC are described in RFC 2695, RFC 2203, and RFC 2623. Implementations of ONC RPC exist in most [[Unix-like]] systems. [[Microsoft]] supplied an implementation for [[Microsoft Windows|Windows]] in their (now discontinued) [[Microsoft Windows Services for UNIX]] product; in addition, a number of third-party implementation of ONC RPC for Windows exist, including versions for [[C (programming language)|C]]/[[C++]], [[Java (programming language)|Java]], and [[Microsoft .NET|.NET]] (see external links). In 2009, Sun [[Software relicensing|relicensed]] the ONC RPC code under the standard 3-clause [[BSD license]],<ref>{{cite web |last1=Phipps |first1=Simon |url=https://blogs.oracle.com/webmink/entry/old_code_and_old_licenses |title=Old Code and Old Licenses |date=2009-02-12 |access-date=2012-12-21 |publisher=[[Sun Microsystems]] |archive-url=https://web.archive.org/web/20130223021412/https://blogs.oracle.com/webmink/entry/old_code_and_old_licenses |archive-date=2013-02-23 |url-status=bot: unknown }}</ref> which was reconfirmed by [[Oracle Corporation]] in 2010 following confusion about the scope of the relicensing.<ref>{{cite web | url = http://spot.livejournal.com/315383.html | title = The long, sordid tale of Sun RPC, abbreviated somewhat, to protect the guilty and the irresponsible | access-date = 2010-08-26 | publisher = Tom Callaway, [[Red Hat]] }}</ref> ==See also== *[[External Data Representation|XDR]] β The grammar defined in RFC 1831 is a small extension of the XDR grammar defined in RFC 4506. *[[Distributed Computing Environment|DCE]] *[[XML-RPC]] ==References== *{{Cite journal | last1 = Birrell | first1 = A. D. | last2 = Nelson | first2 = B. J. | title = Implementing remote procedure calls | journal = ACM Transactions on Computer Systems | volume = 2 | pages = 39β59 | year = 1984 | doi = 10.1145/2080.357392| s2cid = 11525846 | doi-access = free }} ===Notes=== {{Reflist}} ==External links== *[https://datatracker.ietf.org/doc/html/rfc5531 RFC 5531] - RPC: Remote Procedure Call Protocol Specification Version 2 (current version) *[https://datatracker.ietf.org/doc/html/rfc1831 RFC 1831] - RPC: Remote Procedure Call Protocol Specification Version 2 (third published version) *[https://datatracker.ietf.org/doc/html/rfc1057 RFC 1057] - RPC: Remote Procedure Call Protocol Specification Version 2 (second published version) *[https://datatracker.ietf.org/doc/html/rfc1050 RFC 1050] - RPC: Remote Procedure Call Protocol Specification Version 2 (first published version) *[http://www.cs.cf.ac.uk/Dave/C/node33.html Remote Procedure Calls (RPC)] β A tutorial on ONC RPC by Dr Dave Marshall of Cardiff University *[https://web.archive.org/web/20030404113118/http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi?coll=0650&db=bks&srch=&fname=%2FSGI_Developer%2FIRIX_NetPG%2Fsgi_html%2Fch04.html Introduction to RPC Programming] β A developer's introduction to RPC and XDR, from SGI IRIX documentation. *[http://docs.oracle.com/cd/E19683-01/816-1435/index.html Sun ONC Developer's guide] *[http://netbula.com/oncrpc Netbula's PowerRPC for Windows (ONC RPC for Windows with extended IDL)] *[http://netbula.com/javarpc Netbula's JRPC (ONC RPC for Java)(supports J2SE, J2ME and Android] *[https://web.archive.org/web/20120204161508/http://www.plt.rwth-aachen.de/index.php?id=258 ONC/RPC Implementation of the University of Aachen (Germany)] *[https://web.archive.org/web/20120206015507/http://sourceforge.net/apps/trac/remotetea/wiki/WikiStart Remote Tea (LGPL Java Implementation)] *[http://remoteteanet.sourceforge.net/ Remote Tea .Net (LGPL C# Implementation)] *[http://www.onc-rpc-xdr.com/ Distinct Corporation's ONC RPC for Windows] *[http://www.linuxjournal.com/article/2204 Linux Journal article on ONC RPC] *[https://github.com/dCache/oncrpc4j Java NIO based ONC RPC library] {{Sun Microsystems}} [[Category:Application layer protocols]] [[Category:Internet Standards]] [[Category:Remote procedure call]] [[Category:Sun Microsystems software]] [[Category:Unix software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:IETF RFC
(
edit
)
Template:IPstack
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sun Microsystems
(
edit
)