Назад | Перейти на главную страницу

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

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

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

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

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

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

В разделе 3.1:

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

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

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