Нужна помощь в понимании анализа пакетов (wireshark)
Приведенный ниже снимок экрана содержит один HTTP-запрос к веб-серверу, на котором клиентский веб-браузер запрашивает некоторые файлы с сервера, а сервер возвращает ответ HTTP/1.1 200 (OK), который включает запрошенный файл:
Вот что я поняла!!
Пакет № 4 После того, как соединение установлено, клиент запускает функцию push и отправляет полезную нагрузку (HTTP-запрос), содержащую запрос клиента на файлы с сервера!!!
На стороне сервера, получая полезную нагрузку, он увеличивает ACK (размер полезной нагрузки составляет 207), в результате чего он становится равным 208.
После этого на пакете № 7 сервер отвечает клиенту за то, что было запрошено. Он отправляет полезную нагрузку с 1368 байтами. Это происходило два раза, поскольку мы могли видеть следующий номер 2737.
Пожалуйста, поправьте меня, если я ошибаюсь до этого момента.
Из пакета № 9
Почему порядковый номер изменился на 208 и ACK=3680 в пакете № 9. Есть ли перевод со стороны клиента?
в пакете № 11 как получилось снова изменить порядковый номер на 3680 и ack=343.
Может ли кто-нибудь помочь мне объяснить после пакета № 9
1 ответ
Я думаю, вам просто нужно запомнить эти две ключевые идеи:
- Порядковый номер - это первый байт пакета, а не длина.
- Номер подтверждения в основном говорит: "Следующий порядковый номер, который я ожидаю увидеть с другой стороны, это X"
Итак, чтобы ответить на ваши вопросы:
Почему порядковый номер изменился на 208 и ACK=3680 в пакете № 9. Есть ли перевод со стороны клиента?
Порядковый номер пакета 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."
Надеюсь, это поможет, дайте мне знать, если вам нужно что-то прояснить.
Дружеский совет: не используйте инструмент для разрезания, а затем сделайте снимок на свой телефон, просто оставьте скриншот.:)