Протоколы SUN являются приложениями операционной системы UNIX, использующими TCP/IP в качестве транспортного протокола. Эти протоколы базируются на сетевой модели клиент-сервер, в которой приложения-клиенты передают запросы сетевым серверам, на которых размещаются серверные приложения. Стек SUN включает следующие протоколы:
-
MOUNT
-
NFS Network File System
-
PMAP Port Mapper
-
RPC Remote Procedure Call
- YP (NIS) Yellow Pages (Network Information Service)
На рисунке показано расположение стека протоколов SUN в эталонной модели OSI.
Положение стека протоколов SUN в эталонной модели OSI
MOUNT
Протокол MOUNT служит для инициирования доступа клиентов к серверу, поддерживающему приложения NFS. Протокол MOUNT работает с параметрами, характерными для операционной системы (как формат имени маршрута, аутентификация пользователей). Клиенты, желающие получить доступ к программам NFS, сначала вызывают процедуры протокола MOUNT для получения дескриптора файла, который будет использоваться с NFS.
Кадры
Типы кадров, поддерживаемых протоколом MOUNT перечислены ниже:
[no operations] Нет операции
[add mount entry] Запрос дескриптора файла для NFS
[get all mounts] Запрос перечня смонтированных для клиента устройств
[del mount entry] Запрос на удаление смонтированного устройства
[del all mounts] Запрос на удаление всех смонтированных для клиента устройств
[get export list] Запрос групповых прав для смонтированных устройств
[mount added] Возвращает дескриптор файла для использования с NFS
[give all mounts] Возвращает список смонтированных устройств для клиента
[mount deleted] Подтверждение операции удаления смонтированного устройства
[mounts deleted] Подтверждение операции удаления всех смонтированных устройств клиента
[give export list] Список групповых прав для смонтированных устройств.
Параметры кадра
Параметры кадров протокола MOUNT рассмотрены ниже.
Имя маршрута
Имя маршрута на сервере для смонтированного каталога (имя выводится в двойных кавычках).
Дескриптор файла
32-байтовый дескриптор файла, используемый для доступа к смонтированному каталогу.
Сбой при монтировании в системе UNIX может привести к выводу на экран сообщения об ошибке UNIX Error xxxx, где xxxx показывает стандартный код ошибки UNIX.
NFS
Протокол NFS (Network File System — сетевая файловая система) служит средством разделения файлов для стека протоколов SUN. NFS позволяет представлять клиентам распределенные файловые ресурсы сети как единую файловую системы. UNIX (Sun OS) является стандартной платформой для NFS, однако компания Sun разработала процедуры доступа к файлам таким образом, что стало возможным использование NFS для широкого круга операционных систем и протоколов.
Кадры
Протокол NFS поддерживает кадры следующих типов:
[no operations] Нет операции
[get file attrib] Запрос атрибутов файла
[set file attrib] Попытка установить атрибуты файла
[get filesys root] Запрос дескриптора корневого файла
[search for file] Запрос на поиск определенного файла
[read from link] Запрос на чтение из символьной ссылки
[read from file] Запрос на чтение из файла
[write to cache] Запрос на запись в кэш
[write to file] Запрос на запись в файл
[create file] Запрос на создание указанного файла
[delete file] Запрос на удаление файла
[rename file] Запрос на переименование файла
[link to file] Запрос на создание файловой ссылки
[make symb link] Запрос на создание символьной ссылки
[make directory] Запрос на создание каталога
[remove directory] Запрос на удаление каталога
[read directory] Запрос на просмотр каталога
[get filesys attrib] Запрос информацию о файловой системе
[give file attrib] Запрос атрибутов файла
[file attrib set] Подтверждение установки атрибутов файла
[filesystem root] Возвращает дескриптор корневого файла
[file search done] Возвращает результат поиска файла
[link read done] Возвращает результат чтения символьной ссылки
[file read done] Возвращает результат чтения файла
[cache write done] Возвращает результат записи в кэш
[file write done] Возвращает результат записи в файл
[create file rep] Возвращает результат создания файла
[delete file rep] Возвращает результат удаления файла
[rename file rep] Возвращает результат переименования файла
[link file reply] Возвращает состояние файловой ссылки
[symb link made] Возвращает состояние символьной ссылки
[make dir reply] Возвращает результат создания каталога
[remove dir reply] Возвращает результат удаления каталога
[dir read done] Возвращает результат просмотра каталога
[filesystem attrib] Возвращает атрибуты файловой системы.
Параметры кадра
Кадры NFS могут содержать следующие параметры:
Дескриптор файла
32-байтовый дескриптор, используемый для доступа к файлу.
Количество
Число байтов, записанных или прочитанных при файловой операции.
Смещение
Начальное смещение в файле для операции чтения или записи.
Тип файла
Включает следующие типы файлов:
NON Non-file (не файл)
REG Regular file (обычный файл)
DIR Directory (каталог)
BLK Block device (блочное устройство)
CHK Character device (символьное устройство)
LNK Symbolic link (символьная ссылка)
Режим
Режим доступа к файлу представляется четырьмя полями Mode/Owner/Group/Others (режим/владелец/группа/прочее) и может включать следующие значения:
Поле | Параметр | Описание |
Режим |
U |
Исполняемый указанным пользователем. |
G |
Исполняемый указанной группой. | |
S |
Сохранить файл как исполняемый после использования. | |
Владелец |
R |
Чтение. |
W |
Запись/удаление. | |
X |
Исполнение/поиск. | |
Группа |
r |
Чтение. |
w |
Запись/удаление. | |
x |
Исполнение/поиск. | |
Прочие |
r |
Чтение. |
w |
Запись/удаление. | |
x |
Исполнение/поиск. |
Ссылки (links)
Количество ссылок типа hard или имен для файла.
Размер
Размер файла в байтах.
Блок
Размер блока, используемый системой хранения файлов.
Идентификатор файловой системы
Идентификационный код файловой системы.
Идентификатор файла
Идентификатор протокола для файла.
Указатель
Указатель на первый элемент в запрошенном списке каталога.
Максимум
Максимальное количество элементов, возвращаемых по данному запросу.
Устройство чтения
Для символьных или блочных устройств чтение из группы устройств.
В дополнение к перечисленным параметрам поддерживается текстовая строка, содержащая имя файла и выводимая в двойных кавычках.
Кадры откликов
Кадры откликов протокола NFS содержат информацию о состоянии операции. Возможные значение этого параметра перечислены ниже:
{OK} Завершено без ошибок
{Ownership required} Для операции требуется права на владение
{File/dir not found} Файл или каталог не найден
{Device error} Системная или аппаратная ошибка
{Device/addr not found} Ошибка в адресе устройства или ввода-вывода
{Insuff access rights} Недостаточные права доступа
{File/dir already exists} Дублирование файла или каталога
{Device not found} Ошибка доступа к устройству
{Not a directory} Операция может проводится только с каталогом
{Invalid dir operation} Операция не может быть проведена с каталогом
{File too large} Размер файла слишком велик
{Out of disk space} Недостаток пространства на файловом устройстве
{Write protect violation} Файловая система поддерживает режим «только чтение»
{Filename too long} Слишком длинное имя файла
{Directory not empty} Каталог не является пустым
{Disk quota exceeded} Превышен размер дискового пространства для пользователя
{Invalid file handle} Неправильный дескриптор файла
{Write cache was flushed} Кэш записи сброшен на диск
{Unknown error} Неизвестная ошибка.
PMAP
Протокол PMAP (Port Mapper — отображение портов) обеспечивает выделение портов транспортного уровня серверным приложениям. Серверные приложения получают номер порт, запрашивая его выделение. Клиенты, желающие получить доступ к сетевым приложениям, сначала вызывают процедуры PMAP (используя известный — well-known — порт) для получения номера транспортного порта, выделенного для приложения. Затем клиент обращается к приложению напрямую, используя полученный номер порта. Использование протокола PMAP избавляет от необходимости постоянного выделения порта для каждого приложения. При использовании такой схемы требуется постоянное выделение порта только для протокола PMAP.
Кадры
Протокол PMAP может использовать кадры следующих типов:
[no operations] Нет операции
[set port number] Попытка регистрации приложения
[unset port numb] Попытка отмены регистрации приложения
[get port number] Запрос зарегистрированного номера порта
[get all ports] Запрос всех зарегистрированных портов
[call program] Непосредственный вызов зарегистрированного приложения
[port assigned] Регистрация связи приложения с портом
[port unassigned] Отмена регистрации приложения
[give port number] Информирует клиента зарегистрированного порта
[give all ports] Информирует клиентов всех зарегистрированных портов
[program called] Возвращает информацию от вызываемой программы.
Параметры кадра
Кадр PMAP может содержать следующие параметры:
Транспортный порт
Порт транспортного уровня, выделенный указанному приложению.
Номер программы
Номер прикладной программы.
Версия программы
Номер версии программы.
Транспортный протокол
Транспортный протокол, зарегистрированный для использования программой.
Процедура
Номер процедуры в вызываемой программе.
Если номер программы не зарегистрирован, выводится сообщения {Program is unregistered} (Программа не зарегистрирована).
RPC
RFC 1057 http://www.cis.ohio-state.edu/htbin/rfc/rfc1057.html
RPC (Remote Procedure Call — удаленный вызов процедуры) является протоколом сеансового уровня, который использует язык XDR для удаленного вызова процедур. Вызов (сообщение) протокола RPC включает параметры процедуры, а отклик — результаты работы процедуры. После получения отклика из сообщения извлекаются результаты, которые используются в программе, вызвавшей процедуру.
Протокол поддерживает два типа сообщений — вызов и отклик. Формат этих сообщений показан на рисунках.
32 |
64 |
Октеты |
Идентификатор транзакции |
Тип сообщения |
8 |
Версия RPC |
Программа |
16 |
Версия |
Процедура |
24 |
Тело вызова RPC |
Структура вызова RPC
32 |
64 |
Октеты |
Идентификатор транзакции |
Тип сообщения |
8 |
Состояние |
16 |
|
Тело отклика RPC |
Структура отклика RPC
Идентификатор транзакции
Номер транзакции.
Тип сообщения
Тип сообщения.
Версия RPC
Номер версии используемого протокола RPC.
Программа
Имя удаленной программы. Программы могут идентифицироваться по номерам, а для известных (well-known) программ — по именам. Предопределенные номера программ и их имена приведены в списке.
Номер Программа Описание
100000 Port_Mapper Управляет использованием транспортных портов
100001 RemoteStats Удаленная статистика
100002 RemoteUser Удаленные пользователи
100003 NFS Сетевая файловая система
100004 YellowPages Служба каталогов «желтые страницы»
100005 MountDaemon Протокол монтирования
100006 Remote_DBX Удаленный DBX
100007 YP_Binder Сервис привязки «желтых страниц»
100008 Shutdown Сообщения выключения
100009 YP_Password Сервер паролей «желтых страниц»
100010 Enet_Status Состояние Ethernet
100011 Disk_Quotas Менеджер «квотирования» диска
100012 SprayPacket Генератор пакетов
100013 3270_Mapper Сервис отображения 3270
100014 RJE Mapper Сервис отображения удаленных заданий
100015 Select_Srvc Сервис выбора
100016 Remote_DB Доступ к удаленным базам данных
100017 Remote_Exec Удаленное исполнение
100018 Alice_O/A Программа автоматизации офиса Alice
100019 Scheduler Планировщик
100020 Local_Lock Менеджер локальной блокировки
100021 NetworkLock Менеджер сетевой блокировки
100022 X.25_INR Протокол X.25 INR
100023 SatusMon_1 Монитор состояния 1
100024 SatusMon_2 Монитор состояния 2
100025 SelectLib Библиотека выбора
100026 BootService Сервис параметров загрузки
100027 Mazewars Игра mazewars
100028 YP_Update Сервис обновления «желтых страниц»
100029 Key_Server Сервер ключей
100030 SecureLogin Сервис безопасного входа в систему
100031 NFS_FwdInit Сервис пересылки NFS.
100032 NFS_FwdTrns Передатчик данных NFS
100033 SunLink_MAP SunLink MAP
100034 Net_Monitor Сетевой монитор
100035 DataBase «Облегченная» база данных
100036 Passwd_Auth Авторизация по паролю
100037 TFS_Service «Полупрозрачный» файловый сервис
100038 NSE_Service Сервер NSE
100039 NSE_Daemon Процесс активизации NSE
150001 PCPaswdAuth Авторизация с помощью пароля для ПК
200000 PyramidLock Сервис блокировки Pyramid
200001 PyramidSys5 Сервис Pyramid Sys5
200002 CADDS_Image Образы CV CADDS
300001 ADTFileLock Сервис блокировки файлов ADT.
Версия
Номер версии удаленной программы.
Процедура
Используемая удаленная процедура.
Состояние
С помощью данного поля идентифицируются сообщения об ошибках.
Тело сообщения
Кадры откликов RPC могут содержать следующие сообщения:
{call successful} Вызов завершен без каких-либо ошибок.
{program unknown} Номер программы не найден.
{bad program ver} Версия программы не найдена.
{proced unknown} Процедура не найдена.
{bad parameters} Неправильные параметры вызова.
{bad RPC version} Неподдерживаемая версия RPC.
{bad credentials} Обнаружены неправильные параметры вызова.
{restart session} Запрос на начало новой сессии.
{bad verifier} Обнаружен неправильный параметр проверки.
{verify rejected} Действие параметра проверки закончилось по времени или было использовано заново.
{failed security} Вызывающая сторона имеет недостаточные привилегии.
YP (NIS)
Протокол YP (Sun Yellow Pages — Желтые страницы), в настоящее время используемый под именем NIS (Network Information Service — сетевой информационный сервис), является службой каталогов, используемой для поиска имен. Каждая база данных YP содержит пары ключ-значение, отображения и имена доменов. Ключ является индексом — именем, по которому YP отображает значения (например, телефонный номер). Поскольку ключи и связанные с ними (отображаемые) значения могут быть произвольными строками байтов, сервер YP может содержать различные базы данных.
YP определяет набор пар ключ-значение как «отображение». Каждое отображение относится к домену, который, в свою очередь, является категорией отображения. Такая иерархия пар ключ-значение, отображений и доменов обеспечивает общую структуру модели построения баз данных.
Дополнительной компонентой сервера баз данных YP является сервер YP-связывания (YPbind). Протокол YP использует серверы YP-связывания для обеспечения потенциальных клиентов адресной информацией о серверах, содержащих базы данных YP (YP-серверы). Клиент, желающий получить доступ к YP-серверу, может обратиться к сервису YP-связывания, используя имя домена. В ответ он получит IP-адрес и номер транспортного порта YP-сервера для запрошенного домена. Если для клиента существует более простой способ получения такой информации, сервис YP-связывания становится ненужным.
Кадры
Кадры YP и YPbind могут содержать следующие команды:
[no operations] Нет операции
[domain serviced query 1] Вопрос о поддержке обслуживания указанного домена
[domain serviced query 2] Запрос для серверов, обслуживающих указанный домен
[get key value] Запрос значения, связанного с указанным ключом
[get first key pair] Запрос первой пары ключ-значение в отображении
[get next key pair] Запрос следующей пары ключ-значение в отображении
[transfer map] Запрос на передачу новой копии отображения
[reset YP server] Запрос к YP-серверу на сброс его внутреннего состояния
[get all keys in map] Запрос на все пары ключ-значение в указанном отображении
[get map master name] Запрос имени основного сервера баз данных YP
[get map number] Запрос времени создания указанного отображения
[get all maps] Запрос всех отображений в указанном домене
[domain serve reply 1] Отклик на команду domain serviced query 1
[give key value] Возвращает значение указанного ключа.
[give first key pair] Возвращает первую пару ключ-значение в отображении
[give next key pair] Возвращает следующую пару ключ-значение в отображении
[map transferred] Отчет о состоянии передачи отображения
[YP server reset] Отчет о состоянии сброса сервера
[give all keys in map] Возвращает перечень всех ключей в отображении
[give map master name] Возвращает имя основного YP-сервера
[give map number] Возвращает дату создания отображения
[give all maps] Возвращает перечень всех отображений в домене
[no operations] Нет операции
[get current binding] Запрос адресной информации YP для указанного домена.
[set current binding] Установка адресной информации YP для указанного домена.
[give current binding] Возвращает адресную информацию YP для домена.
[domain binding set] Возвращает статус установки YP-адресации.
Параметры кадров
Кадры YP и YPbind могут содержать следующие параметры:
Адрес сервера связывания
IP-адрес сервера YP-связывания.
Связанный порт
Транспортный порт, используемый сервером YP-связывания.
Время создания
Время создания отображения.
Домен
Используемое имя домена.
Ключ
Ключ, используемый для поиска значения.
Отображение
Имя используемого отображения.
Основной сервер
Имя основного YP-сервера.
Партнер (peer)
Имя YP-сервера того же уровня (партнера).
Идентификатор передачи
Идентификатор, используемый для передачи отображения.
Программа
Номер программы RPC, используемой для передачи отображения.
Порт
Номер порта транспортного уровня, используемый при передаче отображения.
Значение
Значение, связанное с ключом.
Статус
Статус передачи отображения.
Версия
Версия протокола YPbind.
Кадры откликов
Кадры откликов YP могут содержать следующие сообщения:
{OK} Запрос завершен успешно
{Bad request arguments} Некорректные параметры запроса.
{Domain not supported} Домен не поддерживается указанным YP-сервером.
{General failure} Неуказанная ошибка
{Invalid operation} Некорректный запрос
{No more entries in map} В отображении больше нет пар ключ-значение
{No such map in domain} Указанное отображение отсутствует в домене
{No such key in map} Указанный ключ отсутствует в отображении
{Server database is bad} База данных сервера повреждена
{YOP server error} Внутренняя ошибка YP-сервера
{YP version mismatch} Несоответствие версии YP-сервера
Кадры откликов YPbind могут содержать следующие сообщения:
{OK} Запрос завершен успешно
{Internal error} Локальная ошибка сервера YP-связывания
{No bound server for domain} Для домена неизвестны YP-серверы
{Can’t alloc system resource} Ошибка ресурсов YP-связывания.
Кадры статуса передачи
Кадры статуса передачи YPbind могут содержать следующие сообщения:
{Transfer successful} Передача завершена успешно
{Bad request arguments} Некорректные параметры запроса
{Can’t clear YP server} Невозможно сбросить YP-сервер
{Can’t find server f/map} Не найден YP-сервер для отображения
{Can’t get master addr.} Невозможно получить адрес основного YP-сервера
{Domain not supported} Домен не поддерживается YP-сервером
{Local database failure} Ошибка базы данных локального YP-сервера
{Local file I/O error} Ошибка ввода/вывода на локальном YP-сервере
{Map version mismatch} Искажение версии отображения при передаче
{Master dbase not newer} Основная база данных не содержит последних изменений
{Must override defaults} Необходимо изменить принятые по умолчанию установки
{Resource alloc failure} Ошибка выделения ресурсов
{RPC to server failed} Нет RPC-отклика от сервера
{Server/map dbase error} Ошибка YP-сервера или базы данных отображений
{Server refused transfer} Отказ YP-сервера от передачи базы данных
{YP transfer error} Ошибка в процессе передачи базы данных.