Переупорядочивание последовательностей с учетом переполнения целых чисел

#sequence #integer-overflow

Вопрос:

Я пытаюсь обнаружить потерю пакетов RTP в буфере RTP и местоположения событий потери в буфере. Пакеты могут поступать не последовательно, поэтому мне нужно изменить порядок буфера по их порядковому номеру. Потери пакетов могут быть обнаружены с помощью скидок в порядковых номерах.

Порядковые номера в RTP записываются с использованием 16-разрядного числа, которое переполняется до 0. Как я могу надежно обнаружить событие переполнения и эффективно изменить порядок буфера с учетом события переполнения?

Решение, о котором я думаю, это:

  1. Обнаружьте переполнение по большой разнице в минимальном и максимальном значениях.
  2. Измените порядок буфера по порядковому номеру.
  3. Ищите большой скачок в порядковом номере (определяется некоторым порогом)
  4. Разделите буфер этим прыжком и поменяйте их местами

Единственная проблема, с которой я сталкиваюсь, заключается в том, что в некоторых граничных случаях порога может быть недостаточно для обнаружения и исправления события. Есть ли более надежный метод?