Книга: TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)

15.3 Программы и процедуры RPC

15.3 Программы и процедуры RPC

Основные концепции RPC достаточно просты:

? Служба RPC реализуется одной или несколькими выполняющимися на сервере программами. Например, существуют отдельные программы управления доступом и блокировок файлов.

? Каждая программа может выполнять несколько процедур. Идея состоит в том, что процедура должна реализовывать одну простую, четко ограниченную функцию. Например, существуют отдельные процедуры файлового доступа NFS для операций чтения, записи, переименования и удаления файлов.

? Каждой программе присвоен числовой идентификатор.

? Каждая процедура программы также имеет числовой идентификатор.

На момент написания книги выделением уникальных номеров для программ занималась компания Sun Microsystems (в будущем это должно перейти под юрисдикцию IANA). Диапазоны идентификаторов программ показаны в таблице 15.1. Числовой идентификатор присваивается процедурам программы разработчиком этой программы. Например, процедура чтения NFS — 6, а переименования NFS — 11.

Таблица 15.1 Присваивание номеров в RPC

0–1fffffff Определяются компанией Sun (rpc@sun.com)
20000000–3fffffff Номера только для использования внутри сайта
40000000–5fffffff Для приложений, динамически генерирующих номера программ
60000000–7fffffff Зарезервировано
80000000–9fffffff Зарезервировано
a0000000–bfffffff Зарезервировано
c0000000–dfffffff Зарезервировано
e0000000–ffffffff Зарезервировано

Запрос клиента RPC идентифицирует запускаемую программу и процедуру по ее номеру. Например, чтобы прочитать файл, запрос RPC обратится к программе 100003 (NFS) и процедуре 6 (чтение). На рис. 15.3 показано клиентское приложение, обращающееся к удаленной процедуре программы 100003.

Опыт показывает, что через какое-то время программы меняются. Процедуры дорабатываются, и их становится все больше. По этой причине запрос RPC должен указывать версию программы. Очень часто на хосте сервера одновременно работает несколько версий одной программы RPC.


Рис. 15.3. Доступ к удаленной процедуре из клиентского приложения

Удаленный запрос к процедуре (RPC) послан от клиента серверу в форматированном сообщении. RPC не заботится о том, какой транспортный протокол используется для пересылки сообщения. В мире TCP/IP RPC может работать поверх UDP или TCP, но можно использовать и другой транспорт.

Хотя обычно предполагается взаимодействие клиента с уникальным сервером, запросы RPC могут передаваться в многоадресных или широковещательных рассылках.

Оглавление книги


Генерация: 0.177. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз