10.6.2. Планирование доставки префиксов
Домашний агент, обслуживающий мобильный узел, будет планировать доставку новой префиксной информации этому мобильному узлу, когда возникает любое из следующих условий:
Должен (MUST):
- Меняется состояние флагов для префикса зарегистрированного домашнего адреса мобильного узла.
- Действительное или предпочтительное время жизни переконфигурируется или изменяется по любой причине, отличной от течения реального времени.
- Мобильный узел запрашивает информацию сообщением Mobile Prefix Solicitation (см. разд. 11.4.2).
Должен (SHOULD):
- К интерфейсу (интерфейсам) домашней подсети домашнего агента добавляется новый префикс.
Может (MAY):
- Меняется действительное или предпочтительное время жизни или состояние флагов для префикса, который не используется ни в одном элементе кэша привязок для данного мобильного узла.
Домашний агент использует следующий алгоритм для определения того, когда посылать мобильному узлу префиксную информацию.
- Если мобильный узел посылает запрос, отвечать немедленно.
- Если мобильному узлу не посылалось сообщение Mobile Prefix Advertisement в течение последних MaxMobPfxAdvInterval секунд (см. разд. 13), то гарантировать, что передача планируется. Действительное время передачи рандомизируется, как описано ниже.
- Если на интерфейс домашней подсети добавляется префикс, соответствующий регистрации мобильного узла в домашнем агенте, или если его информация меняется любым способом, который не опротестовывает адрес мобильного узла, то гарантировать, что передача планируется. Действительное время передачи рандомизируется, как описано ниже.
- Если истекает срок регистрации в домашнем агенте, отменить любые спланированные объявления мобильному узлу.
Во всех случаях посылается полный список префиксов.
Если домашний агент уже спланировал передачу мобильному узлу сообщения Prefix Advertisement, то он заменит это объявление новым, которое должно быть отправлено в спланированное время.
В противном случае, домашний агент вычисляет новое значение для RAND_ADV_DELAY, которое является смещением от текущего момента времени для планируемой передачи. Сначала вычислить максимальную задержку для планируемого объявления:
MaxScheduleDelay = min (MaxMobPfxAdvInterval, Preferred Lifetime),
где MaxMobPfxAdvInterval равен значению, определенному в разд. 12. Затем вычислить окончательную задержку для объявления:
RAND_ADV_DELAY = MinMobPfxAdvInterval + (rand() % abs(MaxScheduleDelay - MinMobPfxAdvInterval))
Здесь rand() возвращает случайное целое значение в диапазоне от 0 до максимально возможного целого значения. Предполагается, что это вычисление позволит смягчить взрывной характер объявлений в случае изменения префиксной информации. Кроме того, домашний агент может (MAY), когда необходимо, еще больше уменьшить скорость передачи пакетов путем дополнительной задержки индивидуальных объявлений, чтобы избежать переполнения ресурсов локальной сети. Домашний агент должен (SHOULD) продолжать периодически повторно посылать мобильному узлу незапрошенное объявление до тех пор, пока оно не будет подтверждено получением от мобильного узла сообщения Mobile Prefix Solicitation.
Домашний агент должен (MUST) подождать PREFIX_ADV_TIMEOUT (см. разд. 12) перед первой повторной передачей и удваивать время ожидания повторной передачи для каждой последующей повторной передачи до тех пор, пока не сделано максимальное количество попыток PREFIX_ADV_RETRIES (см. разд. 12). Если привязки мобильного узла истекут до того, как будет получено соответствующее сообщение Binding Update, то домашний агент не должен (MUST NOT) больше повторять передачи, даже если не было повторно сделано PREFIX_ADV_RETRIES попыток. Между тем, если мобильный узел посылает другое сообщение Binding Update без возврата домой, то домашний агент снова должен (SHOULD) начать передавать незапрошенные объявления.
Если, как описано выше, на домашнем линке возникает некоторое условие, которое является причиной необходимости посылки мобильному узлу другого сообщения Prefix Advertisement до того, как мобильный узел подтвердил предыдущую передачу, домашний агент должен (SHOULD) объединить все опции Prefix Information из неподтвержденного объявления Mobile Prefix Advertisement в новое объявление. Затем домашний агент сбрасывает старое объявление.