Вопрос о порядковом номере TCP

У вас где-то в вашем коде определена переменная с именем max

max = something

Поскольку:

a = [1,2,3,4,5]
print max(a)

Выводит 5 и отлично работает.

30
задан Meta 20 April 2010 в 05:21
поделиться

3 ответа

Порядковый номер возвращается к нулю. Источник :

alt text

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

См. Также главу 4 в RFC 1323 .

30
ответ дан 27 November 2019 в 23:40
поделиться

Порядковый номер на самом деле не является «индексом первого байта в пакете во всем потоке», поскольку порядковые номера намеренно начинаются со случайного значения (это необходимо для остановки атаки, известной как TCP Sequence Прогнозирующая атака ).

SYN не требуется, порядковый номер просто возвращается к нулю снова, когда он достигает предела.

13
ответ дан 27 November 2019 в 23:40
поделиться

Обертка RFC 793:

Важно помнить, что фактическое пространство порядковых номеров конечно, хотя и очень велико. Это пространство варьируется от 0 до 2 ** 32 - 1.Поскольку пространство конечно, вся арифметика, имеющая дело с порядковыми номерами, должна выполняться по модулю 2 ** 32. Эта беззнаковая арифметика сохраняет взаимосвязь порядковых номеров, когда они снова меняются от 2 ** 32-1 до 0. Компьютерная арифметика по модулю имеет некоторые тонкости, поэтому следует проявлять большую осторожность при программировании сравнения таких значений. Символ «= <» означает «меньше или равно» (по модулю 2 ** 32).

Подробнее: http://www.faqs.org/rfcs/rfc793.html#ixzz0lcD37K7J

19
ответ дан 27 November 2019 в 23:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: