A2.1. Использование окна Anti-Replay и управление им
Окно предотвращения повторов можно рассматривать как строку битов размером W (W = T - B + 1 и не может превышать 2^32-1). Младший бит строки соответствует B, а старший — T и каждый порядковый номер от Bl до Tl представлен соответствующим битом. Значение бита показывает, был ли пакет с соответствующим номером принят и идентифицирован, что позволяет обнаружить и отбросить повторные пакеты.
При получении и проверке корректности пакета с 64-битовым порядковым номером (Seq), превышающим T:
- B увеличивается на (Seq — T);
- отбрасываются (Seq - T) битов в левой части окна;
- добавляются (Seq - T) битов в правой части окна;
- устанавливается «верхний» бит для индикации приема и идентификации пакета с данным порядковым номером;
- сбрасываются новые биты между T и «верхним» битом для индикации отсутствия принятых пакетов с соответствующими порядковыми номерами;
- для T устанавливается значение нового порядкового нгомера.
Проверка пакетов на предмет повторного использования:
- Случай A: Если Seql >= Bl (где Bl = Tl - W + 1) И Seql <= Tl, проверяется соответствующий бит окна. Если пакет с номером Seql уже был принят (бит окна установлен), он отбрасывается. В противном случае проверяется целостность пакета. Проверка старших битов номера (Seqh) описана в параграфе A2.2.
- Случай B: Если Seql >= Bl ( где Bl = Tl - W + 1) ИЛИ Seql <= Tl, проверяется соответствую щий бит окна. Если пакет с номером Seql уже был принят (бит окна установлен), он отбрасывается. В противном случае проверяется целостность пакета. Проверка старших битов номера (Seqh) описана в параграфе A2.2.