Книга: TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)
15.5 Работа с дубликатами запросов RPC
15.5 Работа с дубликатами запросов RPC
Если служба основана на протоколе TCP, запросы и ответы будут доставляться надежно. TCP берет на себя обеспечение целостности доставляемых данных.
Если RPC базируется на UDP, то, в зависимости от требований конкретного приложения, клиент и сервер должны обеспечить собственный тайм-аут, повторную пересылку и стратегию выделения дублированных сообщений. Разработчик приложения может выбрать для клиента любую из следующих стратегий:
? Если в пределах тайм-аута не будет получен ответ, послать сообщение об ошибке конечному пользователю, который и должен снова инициировать запрос к службе.
? Если в пределах тайм-аута не будет получен ответ, отправить запрос еще раз. Повторять эту операцию до тех пор, пока не будет получен ответ или не будет достигнут максимальный предел повторной пересылки.
Если клиент повторно посылает запрос, разработчик должен реализовать на сервере стратегию обработки дубликатов сообщений. Сервер может:
? Не фиксировать ранее выполненные операции. При поступлении запроса выполнить процедуру, даже если это был дубликат запроса. Отметим, что для некоторых процедур (например, чтение набора байт из файла) в этом нет ничего страшного. Конечно, клиент может и дальше получать двойные ответы, но может и блокировать их, отслеживая ранее выполненные транзакции.
? Хранить копии ответов, которые были отправлены в течение нескольких последних минут. При поступлении запроса с тем же операционным идентификатором сервер уже знает, что процедура выполнена и на нее уже был послан ответ, следовательно, он мог бы отослать назад копию исходного ответа. Если сервер выполняет затребованную процедуру в момент поступления дубликата запроса — он должен отбросить повторный запрос.
Каждое приложение клиент/сервер может выбрать стратегию соединения, наиболее подходящую своим конкретным требованиям.
- 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 RPC и NFS
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Лекция 15. Работа с базами данных
- Работа с ресурсами локальной сети
- Улучшенный оптимизатор запросов
- Эффективная работа с временными файлами сортировки
- Ускоренная работа с индексами
- HR-брендинг: Работа с поколением Y, новые инструменты для коммуникации, развитие корпоративной культуры и еще 9 эффектив...
- Безопасная работа с внешними таблицами
- Работа со строками
- Асинхронный сервер и отмена выполняющихся запросов
- 9.2. Работа прокси-сервера