Принцип повторной передачи в протоколе ВООТР В протоколе ВООТР вся ответственность за надежный обмен информацией возлагается на клиента. Поскольку в протоколе UDP для доставки пакетов используется ненадежный протокол IP, сообщения могут задержаться в пути, потеряться, может быть нарушен их порядок доставки либо появиться их дубли. Более того, поскольку в протоколе IP не предусмотрена контрольная сумма для области данных, существует вероятность того, что в поступившей дейтаграмме протокола UDP значение некоторых битов будет искажено. Чтобы предотвратить возможное искажение данных, протокол ВООТР требует, чтобы в протоколе UDP использовались контрольные суммы. В протоколе также определено, что для тех клиентов, у которых недостаточно памяти для сборки дейтаграмм, в заголовке запроса и ответа должен быть установлен бит запрета фрагментации. Протокол ВООТР также рассчитан на прием нескольких ответов. При этом принимается и обрабатывается первый из поступивших ответов.

пвх плитка wood Чтобы предотвратить потерю дейтаграмм, в протоколе ВООТР используется традиционный прием — повторная передача пакета по истечении тайм-аута. Посылая запрос, клиент запускает таймер. Если после истечения времени таймера он не получит ни одного ответа, клиент должен повторно переслать запрос. Очевидно, что сбой электропитания вызовет одновременную перезагрузку машин в сети, а это повлечет за собой кратковременную перегрузку запросами ВООТР-серверов. Если все клиенты используют одинаковое значение тайм-аута повторной передачи, большинство из них попытается выполнить повторную передачу запросов одновременно. Чтобы избежать возникновения коллизий, в спецификации протокола ВООТР рекомендуется использовать случайно выбранное время задержки. Рекомендуется также выбирать начальное значение таймера случайным образом в интервале от 0 до 4 секунд, а после каждой повторной передачи удваивать его значение. После того как величина тайм-аута достигнет большого значения (60 секунд), клиент больше не удваивает значение таймера, а снова выбирает его случайным образом. Таким образом,

чтобы предотвратить возникновение дополнительного трафика, создаваемого при использовании протокола ВООТР, в перегруженной сети, значение тайм-аута удваивается после каждой повторной передачи. Для предотвращения одновременной пересылки пакетов начальное значение тайм-аута должно выбираться случайным образом.

Формат ВООТР-сообщения

Чтобы максимально упростить реализацию, ВООТР-сообщения имеют поля фиксированной длины, а ответные сообщения создаются в том же формате, что и запросы. Хотя было сказано, что клиенты и серверы являются программами, в протоколе ВООТР эти понятия используются в широком смысле. Отсылающая ВООТР-запрос машина считается клиентом, а машина, отсылающая ответ, — сервером. На рис. 23.1 показан формат ВООТР-сообщения.

Поле Тип пакета определяет, является ли сообщение запросом (1) или ответом (2). Как и в протоколе ARP, поля Тип оборудования и Длина физ. адреса определяют тип платы сетевого интерфейса и длину аппаратного адреса (например, для сети Ethernet указывается тип 1 и длина адреса б)2. При отправке запроса клиент помещает в поле числа переходов значение 0. Если сервер протокола ВООТР получает запрос и решает его переслать другой машине (например, разрешить процесс начальной загрузки на нескольких маршрутизаторах), он увеличивает значение в поле числа переходов на единицу. В поле идентификатора транзакции находится целое число, используемое бездисковой машиной для идентификации ответов на посланные ею запросы. В поле времени после начала загрузки клиента указывается количество секунд, прошедших после начала загрузки клиента.

В поле IP-адреса клиента, а также во всех следующих за ним полях находится самая важная информация. Чтобы обеспечить максимальную гибкость, клиенты заполняют эти поля всей имеющейся у них информацией, а в остальных полях оставляют нулевое значение. Например, если клиенту известно имя или адрес сервера, от которого он хочет получить информацию, он может заполнить поле IP-адреса сервера или поле имени компьютера, на котором запущен сервер. Если в этих полях установлены отличные от нуля значения, на запрос ответит только сервер с соответствующим именем/адресом. Если же значения в этих полях равны нулю, на запрос ответит любой получивший его сервер.

Протокол ВООТР может использоваться для инициализации клиента, которому уже известен его IP-адрес (например, для получения имени загрузочного файла). Клиент, которому известен свой IP-адрес, помещает его в поле IP-adpeca клиента; в противном случае он должен поместить туда нулевое значение. Если в запросе IP-адрес клиента равен нулю, сервер возвращает IP-адрес клиента, поместив его в поле выделенного IP-adpeca.

Похожие статьи Меню Опрос Фото Популярное