LINUX.ORG.RU

EPOLL: Что-то странное с соединениями.

 


0

1

Всем привет. Тестирую сервер (веб-сервер) на epoll. Включаю браузер и зажимаю F5, в итоге создаю большую нагрузку. Но через некоторое время после нажатия F5 браузер начинает ждать. tcpdump сказал следующее.

Client: SYN: 23232323 Server: SYN, ACK 67676767, 23232324 Client: ACK 1 <----

Какое нахрен ACK 1? Что происходит такое? Это баг какой-то, или у меня руки кривые. Никто не знает что делать/где копать? Должно то быть 67676768, а не 1.

ab, seage, yandex tank, etc. что говорят? Какая, нафиг, высокая нагрузка по f5...

anonymous
()
Ответ на: комментарий от Sorcerer

Вот например в самом низу пакет 3252. Там Seq не случайное число, а 0. Напримерю. Это же Seq? Это почему так?

facelift
() автор топика
Ответ на: комментарий от facelift

Там Seq не случайное число, а 0.

Это «относительный» Seq, для удобства просмотра. В содержимом пакета на этом месте число ненулевое.

Sorcerer ★★★★★
()
Ответ на: комментарий от facelift

Можете либо развернуть в пакете TCP, выбрав там SEQ, и посмотреть 16тиричное значение, либо в настройках wireshark-а, в протоколе TCP убрать галку с «relative sequence numbers».

Sorcerer ★★★★★
()
Ответ на: комментарий от facelift

Это тоже относительный seq/ack. Просто tcpdump в первом пакете сессии, очевидно, логирует настоящий номер, а в последующих - уже смещения относительно него.

Sorcerer ★★★★★
()
Ответ на: комментарий от Sorcerer

Вот то что в tcpdump у меня это когда я открываю браузер и пишу там localhost:8080. Страница не отображается, больше ничего в tcpdump не появляется.

facelift
() автор топика
Ответ на: комментарий от facelift

EPOLLRDHUP приходит. Я соединение закрываю. Что делать? Где тут ошибка может быть?

А можно ли как-то (getsockopt какой-нибудь) узнать номер удаленного порта?

facelift
() автор топика
Ответ на: комментарий от facelift

найди в гугле любой рабочий код и разберись как работает poll, а то притянул тут за уши еще какие то tcpdump и пишешь фигню

anonymous
()

Я б на твоем месте переписал за 10 минут ту часть кода, которая принимает соединения, а не мучился с анализом пакетов и всяких там флагов, что ни к чему и к данной задаче никак не относится. Или ты тоже из тех криворуких лоровцев, что не читают маны и думают, что нашли баг в линукс?

x11hater
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.