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

Какой должен быть следующий порядковый номер после пакета с FIN, содержащим полезную нагрузку?

Я захватил некоторые HTTP-трафик и заметил пакет с установленным флагом FIN, также содержащий данные полезной нагрузки.

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

аналогичный вопрос

Мой вопрос в том, каким должен быть следующий порядковый номер после пакета с установленным флагом FIN, содержащим полезную нагрузку?

Другими словами, каким должен быть номер ACK пакета, который является ответом на пакет FIN активного открывателя? Какой номер подтверждения должен иметь ответный пакет, в то время как отправитель пакета FIN также имеет полезную нагрузку?

--> <SEQ=100><ACK=300><CTL=FIN,ACK> : payload length = 20 bytes

<-- <SEQ=300><ACK=X><CTL=FIN,ACK>

--> <SEQ=X><ACK=301><CTL=ACK>

Является X 101, 120, или 121?

В RFC ясно говорится об этом сценарии?

Я также искал это в RFC 793, но не нашел четкого объяснения своего вопроса.

RFC 793 указывает, что контрольные флаги SYN и FIN занимают один порядковый номер.

В ГЛОССАРИИ написано об управляющем флаге FIN, который:

ПЛАВНИК

Бит управления (finis), занимающий один порядковый номер, который указывает, что отправитель больше не будет отправлять данные или управление, занимающее пространство последовательности.

Таким образом, можно понять, что ценность X должно быть 121 если второй пакет подтверждает первый пакет.

Я не уверен на 100%, но я так понимаю:

Во втором пакете SEQ = 300 и ACK = 120, следовательно, подтверждение полезной нагрузки.

В третьем пакете SEQ = 121, потому что отправка ACK считается однобайтовой полезной нагрузкой, аналогично тому, что происходит в трехстороннем рукопожатии при открытии соединения.