B2.2. Определение старших битов (Seqh) порядкового номера
Поскольку в пакетах передается только значение Seql, получатель должен отслеживать подпространство порядковых номеров для каждого пакета (т. е., определять значение Seqh). Приведенные уравнения определяют выбор Seqh в «нормальных» условиях. В параграфе B3 рассматривается определение старших битов номера в условиях экстремальных потерь пакетов.
+ Для случая A (Рисунок 2): Если Seql >= Bl (где Bl = Tl - W + 1), то Seqh = Th Если Seql < Bl (где Bl = Tl - W + 1), то Seqh = Th + 1 + Для случая B (Рисунок 3): Если Seql >= Bl ( где Bl = Tl - W + 1), то Seqh = Th - 1 Если Seql < Bl ( где Bl = Tl - W + 1), то Seqh = Th
B2.3. Пример псевдокода
Приведенный ниже псевдокод иллюстрирует описанные выше алгоритмы предотвращения повторного использования и контроля целостности пакетов. Значения Seql, Tl, Th и W являются 32-битовыми целыми числами без знака. Используется арифметика по модулю 2^32.
Если (Tl >= W - 1) Случай A Если (Seql >= Tl - W + 1) Seqh = Th Если (Seql <= Tl) Если (проверка на предмет повтора прошла) Если (проверка целостности прошла) Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет Иначе отбросить пакет Иначе Если (проверка целостности прошла) Tl = Seql (shift bits) Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет Иначе Seqh = Th + 1 Если (проверка целостности прошла) Tl = Seql (shift bits) Th = Th + 1 Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет Иначе Случай B Если (Seql >= Tl - W + 1) Seqh = Th - 1 Если (проверка на предмет повтора прошла) Если (pass integrity check) Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет Иначе отбросить пакет Иначе Seqh = Th Если (Seql <= Tl) Если (проверка на предмет повтора прошла) Если (проверка целостности прошла) Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет Иначе отбросить пакет Иначе Если (проверка целостности прошла) Tl = Seql (shift bits) Установить бит, соответствующий Seql Принять пакет Иначе отбросить пакет