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

Странные данные в HTTP-запросе

У меня есть HTTP-сервер, который обслуживает множество краткосрочных подключений от многих клиентов, сервер зарегистрировал некоторые недопустимые HTTP-запросы, поэтому я решаю захватить сетевой трафик. Вот что у меня получилось:

! [изображение] [1]

Из-за HTTP keep-alive поток выглядит так, как будто имеет 3 запроса, первый (заканчивающийся на APN: m-wap.0001) нормально, но второй и третий - нет. Я не думаю, что пользователь отправляет такой запрос, я думаю, что это проблема сети (все недопустимые запросы исходят от пользователя сети 3G, за сетью NAT). Мы используем tcp_tw_reuse и tcp_tw_recycle раньше, но я отключил их сейчас, чтобы избежать проблем, связанных с сетью NAT. Но есть еще несколько недействительных запросов. У вас есть предложение?

Обновить: Наконец, я нашел ответ, сетевой провайдер изменил запрос, добавив 4 последних заголовка, и им нужно обновить номер SEQ / ACK, но похоже, что они не сделали это правильно в случае повторной передачи.

Я дал ответ в обновлении вопроса.

Вам не хватает части этого TCP-диалога при захвате пакетов?

Клиент отправляет Подтверждения и ACK значение увеличивается, это означает, что данные были получены с другого конца, но в вашем захвате таких данных нет.

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