Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
- Название:TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
- Автор:
- Жанр:
- Издательство:Лори
- Год:2000
- Город:Москва
- ISBN:5-85582-072-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) краткое содержание
Второе издание популярного справочника полностью переработано и расширено с целью предоставить читателю наиболее полное описание средств разработки, конфигурирования, использования и обслуживания сетей TCP/IP и соответствующих служб.
Книга написана увлекательно и доступно. Она содержит дополнительные материалы о нескольких протоколах Интернета, используемых серверами и браузерами WWW, а также рассматривает все последние изменения в этой области. В книгу включены главы о новом стандарте безопасности IP и протоколе IP следующего поколения, известном как IPng или IPv6. Рисунки и таблицы наглядно показывают влияние средств безопасности IP и IPng на существующие сетевые среды.
Издание содержит следующие дополнительные разделы:
• Безопасность IP и IPv6
• Описание средств WWW, новостей Интернета и приложений для работы с gopher
• Подробное описание серверов имен доменов (DNS), маски подсети и бесклассовой маршрутизации в Интернете
• Таблицы и протоколы маршрутизации
• Руководство по реализации средств безопасности для каждого из протоколов и приложений
• Примеры диалогов с новыми графическими инструментами
Новое издание бестселлера по TCP/IP станет незаменимым помощником для разработчиков сетей и приложений, для сетевых администраторов и конечных пользователей.
TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Приведенный ниже результат работы rpcinfo -p содержит сведения о программах RPC, работающих на хосте bulldog.cs.yale.edu (т.е. был послан запрос к процедуре PMAPPROC_DUMP программы portmapper ).
Результат работы команды показывает номера программ, их версии, транспортный протокол, порт и идентификатор для каждой программы сервера. Видно, что в списке находится и сама программа portmapper (в самом верху списка):
> rpcinfo -p bulldog.cs.yale.edu
Program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100029 1 udp 657 keyserv
100005 1 udp 746 mountd
100005 2 udp 746 mountd
100005 1 tcp 749 mountd
100003 2 udp 2049 nfs
100005 2 tcp 749 mountd
100026 1 udp 761 bootparam
100024 1 udp 764 status
100024 1 tcp 766 status
100021 1 tcp 767 nlockmgr
100021 1 udp 1033 nlockmgr
100021 3 tcp 771 nlockmgr
100021 3 udp 1034 nlockmgr
100020 1 udp 1035 llockmqr
100020 1 tcp 776 llockmgr
100021 2 tcp 779 nlockmgr
100021 2 udp 1036 nlockmgr
100011 1 udp 1070 rquotad
100001 2 udp 1111 rstatd
100001 3 udp 1111 rstatd
100001 4 udp 1111 rstatd
100002 1 udp 1124 rusersd
100002 2 udp 1124 rusersd
100012 1 udp 1127 sprayd
100008 1 udp 1132 walld
Отметим интересный момент: для определения состояния приложения RPC использовалось другое приложение Remote Procedure Call.
Команда rpcinfo -b выполняет широковещательную рассылку в сети, запрашивая все работающие серверы о выполняемых ими программах и версиях этих программ. В приведенном ниже примере запрашиваются сведения о версии 1 программы spray под номером 100012.
> rpcinfo -b 100012 1
128.36.12.1 casper.na.cs.yale.edu 128.36.12.28 tesla.math.yale.edu 128.36.12.6 bink.na.cs.yale.edu
Каждая программа RPC имеет пустую процедуру с номером 0, возвращающую только ответ "Я активна". Нижеприведенная команда rpcinfo -u посылает сообщение пустой процедуре программы spray хоста bulldog.cs.yale.edu :
> rpcinfo -u bulldog.cs.yale.edu 100012
program 100012 version 1 ready and waiting
15.7 Программа rpcbind
В последних версиях RPC программа portmapper заменена на rpcbind . Исходная программа portmapper связывалась с UDP или TCP. Rpcbind независима от используемого транспортного протокола. Эта программа возвращает строку ASCII, содержащую адресную информацию, которая не зависит от используемого транспорта и называется форматом универсального адреса (universal address format).
15.7.1 Назначение rpcbind
Программа rpcbind основана на тех же принципах, что и portmapper . При инициализации программы RPC ей выделяется один или несколько динамически назначенных адресов для транспорта. Программа регистрирует полученные адреса в rpcbind, через которую они становятся известными клиентам.
Запрос клиента содержит номер программы и номер версии. Но в ответе rpcbind указывается универсальный адрес, который может предоставлять специальные сведения для NetWare SPX/IPX, SNA, DECnet или AppleTalk, а не для TCP или UDP. Тип предоставленного в ответе транспортного адреса зависит от используемого для запроса транспортного протокола.
Как и к portmapper , к rpcbind обращаются по общеизвестному порту 111 через UDP или TCP. Для других коммуникационных протоколов должен использоваться другой, заранее определенный локальный доступ.
Подобно portmapper, rpcbind поддерживает службу широковещательных рассылок RPC. Рассылки направляются на общеизвестную точку доступа к транспорту, определенную для службы rpcbind , например порт 111 для UDP или TCP. Каждая программа rpcbind , которая отслеживает широковещательные рассылки, может от имени клиента вызвать нужную ей локальную сервисную программу, получить ответ и переслать его клиенту. Версия 4 протокола RPC позволяет клиентам получать через rpcbind такой же вид косвенного обслуживания при многоадресной рассылке, как и при широковещательной.
15.7.2 Процедуры rpcbind
Процедуры программы rpcbind версии 4 представлены в таблице 15.3.
Таблица 15.3 Процедуры rpcbind
Процедура | Описание |
---|---|
RPCBPROC_SET | Используется службой регистрации программ через локальную RPCBIND. |
RPCBPROC_UNSET | Используется для отмены регистрации локальной программы. |
RPCBPROC_GETADDR | Возвращает клиенту универсальный адрес программы. |
RPCBPROC_GETVERSADDR | В запрос включается нужный номер версии программы. |
RPCBPROC_GETADDRLIST | Выводит список адресов программы. Клиент может выбрать из нескольких доступных транспортных протоколов. |
RPCBPROC_DUMP | Список всех элементов базы данных RPCBIND (например, предоставление сведений для вывода командой rpcinfo ). |
RPCBPROC_BCAST | Поддержка широковещательного запроса — RPCBIND пересылает запрос локальной программе. |
RPCBPROC_INDIRECT | Поддержка косвенных запросов, которые являются многоадресными — RPCBIND пересылает их локальной программе и возвращает назад результат или сообщение об ошибке. |
RPCBPROC_GETTIME | Возвращает местное время сервера, отсчитанное в секундах от полночи первого дня января 1970 г. |
BPCBPBOC_UADDR2TADDR | Преобразование универсальных адресов в адреса, специфичные для данного транспорта. |
RPCBPROC_TADDR2UADDR | Преобразование специфичных для транспорта адресов в универсальные адреса. |
RPCBPROC_GETSTAT | Предоставление статистики о количестве и типах полученных запросов. |
15.8 Сообщения RPC
Клиент RPC посылает запросы серверу и получает ответы на них в специальных сообщениях. Что должны содержать эти сообщения, чтобы клиент и сервер поняли друг друга?
Необходим идентификатор транзакции, определяющий соответствие между запросом и ответом. Запрос клиента должен указывать программу и процедуру, которую он хочет запустить. Клиенту необходим некоторый способ идентифицировать себя через мандат (credentials), доказывающий право использования службы. Наконец, запрос клиента должен содержать входные параметры. Например, запрос чтения NFS должен идентифицировать файл и количество читаемых байтов.
В дополнение к сообщению о результатах успешных запросов серверу необходим способ сообщения клиенту об отмене запроса и причинах такой отмены. Запрос может быть отклонен при несоответствии версий программы или ошибке при аутентификации клиента. Сервер должен сообщить об ошибках в параметрах или событиях, например: "Не могу найти файл".
На рис. 15.5 показано взаимодействие клиента с программой сервера. Клиент посылает запрос. Когда работа затребованной процедуры завершается, серверная программа возвращает ответ. Как видно из рис. 15.5, запрос включает:
■ Идентификатор транзакции
■ Текущий номер версии RPC
■ Номер программы
■ Версию программы
■ Номер процедуры
Читать дальшеИнтервал:
Закладка: