Книга: 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 ([email protected]) |
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 могут передаваться в многоадресных или широковещательных рассылках.
- 15.1 Введение
- 15.2 Модель RPC
- 15.3 Программы и процедуры RPC
- 15.4 Типичная программа RPC
- 15.5 Работа с дубликатами запросов RPC
- 15.6 Portmapper в RPC
- 15.7 Программа rpcbind
- 15.8 Сообщения RPC
- 15.9 Аутентификация в RPC
- 15.10 Пример сообщении RPC версии 2
- 15.11 XDR
- 15.12 Программные интерфейсы RPC и XDR
- 15.13 Введение в NFS
- 15.14 Модель файлов NFS
- 15.15 Протокол монтирования
- 15.16 Особенности NFS
- 15.17 Протокол NFS
- 15.18 Дополнительная литература
- 15.7.1 Назначение rpcbind
- Глава 15 RPC и NFS
- 15.6.2 Процедуры portmapper
- 15.7.2 Процедуры rpcbind
- 15.12 Программные интерфейсы RPC и XDR
- СТРУКТУРА ПРОСТОЙ ПРОГРАММЫ
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- 1.2.5. Пример программы
- 24.7. Использование программы-твикера
- Часть III Прикладные программы
- Цикл создания программы
- Описание программы настройки BIOS