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

Нужна помощь в понимании анализа пакетов (wirehark)

Приведенный ниже снимок состояния содержит один HTTP-запрос к веб-серверу, в котором клиентский веб-браузер запрашивает некоторые файлы с сервера, а сервер возвращает ответ HTTP / 1.1 200 (OK), который включает запрошенный файл:

Вот что я понял !!

Пакет №4 После того, как соединение установлено, клиент инициирует функцию push и отправляет полезную нагрузку (HTTP-запрос), содержащую клиентский запрос файлов с сервера !!!

На стороне сервера, получив полезную нагрузку, он увеличивает ACK (размер полезной нагрузки равен 207), таким образом, он становится 208.

После этого в пакете №7 сервер отвечает клиенту за то, что было запрошено, и отправляет полезную нагрузку с 1368 байтами. Это произошло два раза, поскольку мы могли видеть порядковый номер 2737.

пожалуйста, поправьте меня, если я ошибаюсь до этого момента.

Из пакета №9

Почему в пакете №9 порядковый номер изменился на 208 и ACK = 3680. Есть ли перевод со стороны клиента?

в пакете # 11, как получилось, снова изменить порядковый номер на 3680 и ack = 343.

Может ли кто-нибудь помочь мне объяснить после пакета № 9

Думаю, вам просто нужно запомнить эти две ключевые идеи:

  1. Порядковый номер - это первый байт пакета, а не его длина.
  2. Номер подтверждения в основном говорит: «Следующий порядковый номер, который я ожидаю увидеть с другой стороны, - X».

Итак, чтобы ответить на ваши вопросы:

Почему в пакете №9 порядковый номер изменился на 208 и ACK = 3680. Есть ли перевод со стороны клиента?

Порядковый номер пакета 9 равен 208, потому что в пакете 4 клиент отправил веб-серверу запрос HTTP GET. Порядковый номер пакета 4 был 1, поэтому, когда вы добавляете полезную нагрузку 207, следующий порядковый номер, который должен использовать клиент, будет 208. Вы можете видеть, что в пакете 5 ACK от сервера - 208. Другими словами , сервер подтверждает все данные до 207 включительно и ожидает, что следующим порядковым номером от клиента будет 208.

Номер подтверждения пакета 9 равен 3680, потому что сервер отправил 3 пакета с полезной нагрузкой. Пакет 6 имеет полезную нагрузку 1368, пакет 7 имеет полезную нагрузку 1368, а пакет 8 имеет полезную нагрузку 943. Опять же, это имеет смысл, если учесть, что порядковый номер является первым байтом в пакете. Если вы посмотрите, например, на пакет 6, порядковый номер равен 1, однако из пакета 7 вы можете увидеть, что порядковый номер перешел на 1369, поэтому вы можете выяснить, что пакет 6 должен иметь полезную нагрузку 1368.

в пакете # 11, как получилось, снова изменить порядковый номер на 3680 и ack = 343.

Здесь действуют те же принципы. Для пакета 11 порядковый номер 3680, потому что последний пакет, который отправил сервер (пакет 8), имел порядковый номер 2737 плюс полезная нагрузка 943, поэтому следующий порядковый номер, который он должен использовать, - 3680.

Номер подтверждения равен 342, потому что клиент отправил полезную нагрузку в пакете 10. Пакет 10 имел порядковый номер 208, поэтому мы можем вычислить, что полезная нагрузка в PSH / ACK должна была быть 134. И снова сервер говорит: «Я все подтверждаю. ваших данных до байта 341 включительно. Следующим порядковым номером, который я ожидаю увидеть от вас, является 342. "

Надеюсь, это поможет, дайте мне знать, если вам нужно что-то уточнить.

Дружественный совет: не используйте ножницы, а затем сделайте снимок на свой телефон, просто разместите снимок экрана. :)