Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Многие протоколы и алгоритмы требуют сериализации или перечисления связанных сущностей. Например, протокол связи должен знать, приходит ли какой-то пакет "раньше" или "позже" другого пакета. IETF (Internet Engineering Task Force) пытается определить "арифметику серийных номеров" для манипулирования и сравнения этих номеров последовательности. Вкратце, если абсолютное значение серийного номера уменьшается более чем на половину максимального значения (например, 128 для 8-битного значения), он считается "позже" предыдущего, в то время как другие уменьшения считаются "раньше". Эта задача сложнее, чем может показаться на первый взгляд, поскольку большинство алгоритмов используют представления фиксированного размера (двоичные) для номеров последовательности. Часто важно, чтобы алгоритм не "выходил из строя", когда числа становятся настолько большими, что при последнем увеличении они "переполняются" и возвращаются к началу своего максимального числового диапазона (мгновенно переходя от большого положительного числа к 0 или большому отрицательному числу). Некоторые протоколы предпочитают игнорировать эти проблемы и просто использовать очень большие целые числа для своих счетчиков, надеясь, что программа будет заменена (или они прекратят поддержку) до возникновения проблемы (см. Y2K). Многие протоколы связи применяют арифметику серийных номеров к номерам последовательности пакетов в своей реализации протокола скользящего окна. Некоторые версии TCP используют защиту от переполнения номеров последовательности (PAWS). PAWS применяет ту же арифметику серийных номеров к временным меткам пакетов, используя временную метку как расширение старших битов номера последовательности.
Many protocols and algorithms require the serialization or enumeration of related entities. For example, a communication protocol must know whether some packet comes "before" or "after" some other packet. The IETF (Internet Engineering Task Force) attempts to define "serial number arithmetic" for the purposes of manipulating and comparing these sequence numbers. In short, when the absolute serial number value decreases by more than half of the maximum value (e. g. 128 in an 8 bit value), it is considered to be "after" the former, whereas other decreases are considered to be "before". This task is rather more complex than it might first appear, because most algorithms use fixed size (binary) representations for sequence numbers. It is often important for the algorithm not to "break down" when the numbers become so large that they are incremented one last time and "wrap" around their maximum numeric ranges (go instantly from a large positive number to 0 or a large negative number). Some protocols choose to ignore these issues and simply use very large integers for their counters, in the hope that the program will be replaced (or they will retire) before the problem occurs (see Y2K). Many communication protocols apply serial number arithmetic to packet sequence numbers in their implementation of a sliding window protocol. Some versions of TCP use protection against wrapped sequence numbers (PAWS). PAWS applies the same serial number arithmetic to packet timestamps, using the timestamp as an extension of the high order bits of the sequence number.
Операции с порядковыми номерами
Обсуждается только добавление небольшого положительного целого числа к номеру последовательности и сравнение двух номеров последовательности. Рассматриваются только неподписанные двоичные реализации с произвольным количеством битов, которое во всем RFC (и ниже) обозначается как "SERIAL BITS".
Only addition of a small positive integer to a sequence number and comparison of two sequence numbers are discussed. Only unsigned binary implementations are discussed, with an arbitrary size in bits noted throughout the RFC (and below) as "SERIAL BITS".