16.3. Привязка сервера

16.3. Привязка сервера

В описании листинга 16.5 мы достаточно бегло прошлись по действиям, выполняемым на нулевом этапе: регистрация сервера в локальной программе отображения портов и определение клиентом адреса порта не были разобраны детально. Отметим прежде всего, что на любом узле с сервером RPC должна выполняться программа port mapper (отображение портов). Этой программе присваивается адрес порта TCP 111 и UDP 111, и это единственные фиксированные значения портов Интернета для Sun RPC. Серверы RPC всегда связываются с временным портом, а затем регистрируют его в локальной службе отображения портов. После запуска клиент должен связаться с программой отображения портов, узнать номер временного порта сервера, а затем связаться с самим сервером через этот порт. Программа отображения портов предоставляет также службу имен, область действия которой ограничена системой.

ПРИМЕЧАНИЕ

Некоторые читатели могут возразить, что сетевая файловая система также имеет фиксированный номер порта 2049. Хотя во многих реализациях по умолчанию действительно используется именно этот порт, а в некоторых старых реализациях он вообще жестко «зашит» в клиентскую и серверную части NFS, большинство существующих реализаций позволяют использовать и другие порты. Большая часть клиентов NFS также связывается со службой отображения портов для получения номера порта.

В Solaris 2.x Sun переименовала службу отображения портов в RPCBIND. Причина этого изменения заключается в том, что термин «порт» подразумевает порт Интернета, тогда как пакет TI-RPC может работать с любым сетевым протоколом, а не только с TCP и UDP. Мы будем использовать традиционное название «программа отображения портов» (port mapper). Далее в этой главе мы будем подразумевать, что на данном узле поддерживаются только протоколы TCP и UDP.

Сервер и клиент работают следующим образом:

1. При переходе системы в многопользовательский режим запускается пpoгрaммa отображения портов. Исполняемый файл этого демона обычно называется portmap или rpcbind.

2. При запуске сервера его функция main, являющаяся частью заглушки сервера, создаваемой rpcgen, вызывает библиотечную функцию svc_create. Эта функция выясняет, какие сетевые протоколы поддерживаются узлом, и создает конечную точку (например, сокет) для каждого протокола, связывая временные порты с конечными точками протоколов TCP и UDP. Затем она связывается с локальной пpoгрaммoй отображения портов для регистрации временных номеров портов TCP и UDP вместе с номером программы и номером версии.

Сама программа отображения портов также представляет собой программу RPC, и сервер регистрируется с помощью вызовов RPC (обращенных к известному порту 111). Описание процедур, поддерживаемых пpoгрaммoй отображения портов, дается в стандарте RFC 1833 [20]. Существуют три версии этой программы RPC: вторая версия работает только с портами TCP и UDP, а версии 3и 4 представляют собой новые версии, работающие по протоколу RPCBIND.

Можно получить список всех пpoгрaмм RPC, зарегистрированных в пpoгрaм-ме отображения портов, запустив пpoгрaммy rpcinfo. Мы можем запустить эту программу, чтобы убедиться, что порт с номером 111 используется самой программой отображения портов:

solaris % rpcinfo –p

program vers proto port service

100000 4 tcp 111 rpcbind

100000 3 tcp 111 rpcbind

100000 2 tcp 111 rpcbind

100000 4 udp 111 rpcbind

100000 3 udp 111 rpcbind

100000 2 udp 111 rpcbind

(Мы исключили множество несущественных в данный момент строк вывода.) Мы видим, что Solaris 2.6 поддерживает все три версии протокола, все на порте 111, причем как TCP, так и UDP. Соответствие номеров пpoгрaмм RPC их именам обычно устанавливается в файле /etc/rpc. Запустив ту же программу в BSD/OS 3.1, увидим, что в этой системе поддерживается только вторая версия программы отображения портов:

bsdi % rpcinfo –p

program vers proto port

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

В Digital Unix 4.0В также поддерживается только вторая версия:

alpha % rpcinfo –p

program vers proto port

100000 2 tcp 111 portmapper

100000 2 udp 111 portmapper

Затем процесс сервера приостанавливает работу, ожидая поступления запросов от клиентов. Это может быть новое соединение TCP или приход дей-тaгрaммы UDP в порт UDP. Если мы запустим rpcinfo после запуска сервера из листинга 16.3, мы увидим следующий результат:

solaris % rpcinfo –p

program vers proto port service

8243773444 1 udp

8243773444 1 tcp

где 824377344 соответствует 0x31230000 (номер пpoгрaммы, присвоенный ей в листинге 16.1). В том же листинге мы присвоили программе номер версии 1. Обратите внимание, что сервер готов принимать запросы от клиентов по протоколам TCP и UDP и клиент может выбирать, какой из этих протоколов он будет использовать при создании дескриптора клиента (последний аргумент clnt_create в листинге 16.2).

3. Клиент запускается и вызывает clnt_create. Аргументами (листинг 16.2) являются имя узла или IP-адрес сервера, номер пpoгрaммы, номер версии и строка, указывающая протокол связи. Запрос RPC направляется пpoгрaммe отображения портов узла сервера (для этого сообщения обычно используется протокол UDP), причем запрашивается информация об указанной версии указанной программы с указанным протоколом. В случае успеха номер порта сохраняется в дескрипторе клиента для обработки всех последующих вызовов RPC через этот дескриптор.

В листинге 16.1 мы присвоили нашей программе номер 0x31230000. 32-разрядные номера пpoгрaмм подразделяются на группы, приведенные в табл. 16.1.

Таблица 16.1. Диапазоны номеров программ для Sun RPC 

Номер программы Описание
0x00000000–0x1fffffff Определена Sun
0x20000000–0x3fffffff Определена пользователем
0x40000000–0x5fffffff Временная (для приложений, написанных заказчиком)
0x60000000–0xffffffff Зарезервированы

Пpoгрaммa rpcinfо выводит список программ, зарегистрированных в системе. Другим источником информации о пpoгрaммax RPC могут являться файлы с расширением .х в каталоге /usr/inciude/rpcsvc.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Полярная привязка

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Полярная привязка Для указания новой точки у пользователя есть возможность «привязаться» к определенным углам, которые еще называются опорными. Когда указатель мыши будет находиться рядом с одним из таких углов, программа как бы «поможет» установить нужный угол,


Объектная привязка

Из книги ArchiCAD 11 автора Днепров Александр Г

Объектная привязка Методы задания координат точек с помощью клавиатуры не являются единственными. Обычно гораздо удобнее задавать точки, если известно, как должны быть расположены новые объекты относительно имеющихся. Например, если вы знаете, что создаваемый отрезок


Объектная привязка в трехмерном пространстве

Из книги Photoshop. Мультимедийный курс автора Мединов Олег

Объектная привязка в трехмерном пространстве Как в двухмерных, так и в трехмерных чертежах привязка к существующим объектам значительно упрощает построение модели. Использование объектной привязки позволяет однозначно указать нужную точку, причем сделать это с


Объектная привязка

Из книги AutoCAD 2009 для студента. Самоучитель автора Соколова Татьяна Юрьевна

Объектная привязка Перед тем как начать рассмотрение команд редактирования, обратите внимание на абсолютно необходимый для квалифицированной работы инструмент – объектную привязку. Его назначение – привязка характеристических точек перемещаемого объекта к


Привязка

Из книги ArchiCAD. Начали! автора Орлов Андрей Александрович

Привязка Теперь поговорим о режимах привязки. Пользоваться привязкой бывает очень удобно, а иногда она мешает. Все зависит от того, что вы делаете. Привязка – это «прилипание» границ объектов друг к другу или направляющей, когда они находятся в непосредственной близости


Объектная привязка координат

Из книги AutoCAD 2009. Начали! автора Соколова Татьяна Юрьевна

Объектная привязка координат Объектная привязка – наиболее быстрый способ точно указать точку на объекте, не обязательно зная ее координаты, а также построить вспомогательные линии. Например, объектная привязка позволяет построить отрезок от центра окружности, от


Объектная привязка

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Объектная привязка Прежде чем рассматривать команды редактирования, обратим внимание на абсолютно необходимый для квалифицированной работы инструмент – объектную привязку. Его назначение – привязка характеристических точек перемещаемого объекта к


Объектная привязка координат

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Объектная привязка координат Объектная привязка – наиболее быстрый способ точно указать точку на объекте, не обязательно зная ее координаты, а также построить вспомогательные линии. Например, объектная привязка позволяет построить отрезок от центра окружности, от


Полярная привязка

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Полярная привязка Для указания новой точки у пользователя есть возможность «привязаться» к определенным углам, которые еще называются опорными. Когда указатель мыши будет находиться рядом с одним из таких углов, программа как бы поможет установить нужный угол,


Объектная привязка

Из книги AutoCAD 2009. Учебный курс автора Соколова Татьяна Юрьевна

Объектная привязка Методы задания координат точек с помощью клавиатуры не являются единственными. Обычно гораздо удобнее задавать точки, если известно, как должны быть расположены новые объекты относительно имеющихся. Например, если вы знаете, что создаваемый отрезок


Объектная привязка в трехмерном пространстве

Из книги AutoCAD 2008 для студента: популярный самоучитель автора Соколова Татьяна Юрьевна

Объектная привязка в трехмерном пространстве Как в двухмерных, так и в трехмерных чертежах привязка к существующим объектам намного упрощает построение модели. Использование объектной привязки позволяет однозначно указать нужную точку, причем сделать это с абсолютной


Привязка и удаление обработчиков событий

Из книги автора

Привязка и удаление обработчиков событий Метод on объекта Element выполняет привязку указанной функции к указанному событию данного элемента Web-страницы в качестве обработчика:<экземпляр объекта Element>.on(<событие>, <функция-обработчик>)Первым параметром методу


Привязка сценариев к клипам

Из книги автора

Привязка сценариев к клипам Привязать сценарий к кадру, как мы только что убедились, несложно. А как насчет клипа?Чтобы привязать сценарий к клипу, нам будет нужно дать ему имя. Для этого достаточно его выделить и ввести нужное имя в поле ввода, расположенное в левой части


Привязка сценариев к кнопкам

Из книги автора

Привязка сценариев к кнопкам Кнопки Flash мы пока еще подробно не рассматривали, не считая краткого упоминания в главе 8. Настала пора поговорить о них подробно.Кнопки (или экземпляры образцов-кнопок) Flash ведут себя подобно обычным кнопкам, которые мы встречаем практически


Объектная привязка координат

Из книги автора

Объектная привязка координат Объектная привязка – наиболее быстрый способ точно указать точку на объекте, не обязательно зная ее координаты, а также построить вспомогательные линии. Например, объектная привязка позволяет построить отрезок от центра окружности, от


Объектная привязка координат

Из книги автора

Объектная привязка координат Объектная привязка – наиболее быстрый способ точно указать точку на объекте, не обязательно зная ее координаты, а также построить вспомогательные линии. Например, объектная привязка позволяет построить отрезок от центра окружности, от