Сети ЭВМ и телекоммуникации. Глобальные сети. Брейман А.Д. - 84 стр.

UptoLike

Составители: 

84
путем побочных эффектов. В-третьих, производительность: удаленные вызовы
процедур выполняются на несколько порядков дольше, чем локальные. В-
четвертых, контроль доступа: поскольку удаленные вызовы могут
производиться через небезопасные сети, серверу необходимо проверять
аутентичность клиента, и наоборот.
Протокол RPC определяет только структуру сообщений и может быть
реализован поверх любого транспортного протокола. Надежность RPC зависит
от надежности транспортного протокола: при работе через TCP выполняется
управление потоком, квитирование и повторная передача потерянных пакетов,
при работе через UDP, программа, пользующаяся RPC, должна самостоятельно
обеспечивать надежность. При этом возникает проблема единственного
выполнения удаленной процедуры: если по тем или иным причинам от сервера
не пришло сообщение-ответ, то, по истечении таймаута, клиент
должен
повторно передать сообщение-запрос. Возможна ситуация, при которой сервер
получит и выполнит оба запроса, что является нарушением логики работы
программы. Для защиты от подобных проблем может использоваться,
например, механизм нумерации запросов: разные запросы несут в себе разные
номера, а повторные запросыномера исходных запросов. Сервер должен
хранить список выполненных номеров
запросов и не выполнять запросы
повторно.
Спецификация RPC не определяет конкретную процедуру привязки (англ.
binding) клиентов к серверам. Возможным способам привязки посвящен
отдельный документ — RFC 1833. Конкретная служба (service) RPC
идентифицируется номером программы RPC, номером ее версии и
транспортным адресом, по которому к ней можно обратиться. Транспортный
адрес состоит из сетевого адреса (например, IP-адреса) и селектора транспорта
(например, номера TCP-порта). Для успешного обращения к службе, клиент
должен знать все перечисленные идентификаторы. При этом номер программы
RPC и номер ее версии обычно жестко прописываются в программе клиента, а
сетевой адрес либо передается программе при запуске, либо определяется
путем побочных эффектов. В-третьих, производительность: удаленные вызовы
процедур выполняются на несколько порядков дольше, чем локальные. В-
четвертых,   контроль   доступа:     поскольку   удаленные     вызовы   могут
производиться через небезопасные сети, серверу необходимо проверять
аутентичность клиента, и наоборот.
     Протокол RPC определяет только структуру сообщений и может быть
реализован поверх любого транспортного протокола. Надежность RPC зависит
от надежности транспортного протокола: при работе через TCP выполняется
управление потоком, квитирование и повторная передача потерянных пакетов,
при работе через UDP, программа, пользующаяся RPC, должна самостоятельно
обеспечивать надежность. При этом возникает проблема единственного
выполнения удаленной процедуры: если по тем или иным причинам от сервера
не пришло сообщение-ответ, то, по истечении таймаута, клиент должен
повторно передать сообщение-запрос. Возможна ситуация, при которой сервер
получит и выполнит оба запроса, что является нарушением логики работы
программы. Для защиты от подобных проблем может использоваться,
например, механизм нумерации запросов: разные запросы несут в себе разные
номера, а повторные запросы — номера исходных запросов. Сервер должен
хранить список выполненных номеров запросов и не выполнять запросы
повторно.
     Спецификация RPC не определяет конкретную процедуру привязки (англ.
binding) клиентов к серверам. Возможным способам привязки посвящен
отдельный документ — RFC 1833. Конкретная служба (service) RPC
идентифицируется    номером    программы      RPC,   номером   ее   версии   и
транспортным адресом, по которому к ней можно обратиться. Транспортный
адрес состоит из сетевого адреса (например, IP-адреса) и селектора транспорта
(например, номера TCP-порта). Для успешного обращения к службе, клиент
должен знать все перечисленные идентификаторы. При этом номер программы
RPC и номер ее версии обычно жестко прописываются в программе клиента, а
сетевой адрес либо передается программе при запуске, либо определяется
                                         84