трехстороннее рукопожатие и порядковый номер

трехстороннее рукопожатие и порядковый номер

Глядя на изображение ниже, взятое из книги Ильи Григорика - High Performance Browser Networking, я могу понять, что пакет SYN выбирает случайный порядковый номер, который увеличивается в пакете SYN ACK (N+1). Наконец, в пакете ACK увеличиваются как порядковый номер (N+1), так и номер подтверждения (N+1).

При тестировании с помощью Wireshark я получил пакет ACK с номером подтверждения = N+1, ноПорядковый номер = N. Является ли это ошибкой автора, когда он говорит, что в пакете ACK увеличиваются как номера последовательности, так и номера подтверждения?

введите описание изображения здесь

решение1

RFC793состояниянеоднократночто номер подтверждения является порядковым номеромследующий пакет, который ожидает получить конец. Таким образом, он всегда будет выше порядкового номера.

Например, в разделе 2.6:

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

В разделе 3.1:

Номер подтверждения: 32 бита

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

Раздел 3.3 подробно объясняет, как работают порядковые номера и почему они работают именно так. Вы, вероятно, найдете это гораздо более познавательным, чем ваша книга.

Связанный контент