ONC RPC


ONC RPC (англ. Open Network Computing Remote Procedure Call) — широко используемая система удаленного вызова процедур. Разработана компанией Sun Microsystems как часть проекта сетевой файловой системы (Network File System), и иногда упоминается как Sun ONC или Sun RPC. ONC RPC описан в RFC 1831 (1995 года) и RFC 5531 (2009 года). Механизмы аутентификации, используемые ONC RPC, описаны в RFC 2695, RFC 2203 и RFC 2623.

RPC основан на соглашении о вызове, используемом в Unix и языке программирования Си — cdecl. Он сериализует данные при помощи XDR, который также может кодировать и декодировать файлы для поддержки доступа с различных платформ. Затем ONC доставляет данные XDR, используя UDP или TCP. Доступ к сервисам RPC на компьютере предоставляется через отображатель портов (port mapper[англ.]), который принимает запросы на известном порту, обычно 111, по UDP и TCP.

Реализации ONC RPC существуют в большинстве Unix-подобных систем. Чаще всего они основываются на коде от компании Sun, опубликованном в Usenet в 1984 году. Microsoft поставляет реализацию в составе продукта Microsoft Windows Services for UNIX, кроме того существуют иные реализации ONC RPC для ОС Windows, в том числе для C/C++, Java, .NET.

В 2009 году Sun собиралась перелицензировать реализацию ONC RPC под 3-условную BSD license[1], что позже было сделано Oracle в 2010 году.[2]