LINUX.ORG.RU

nginx и http

 


0

1

Не так давно стал пользоваться wireshark и изучать трафик.

Часто наблюдаю трафик про протоколу http который передаётся 1 часть. Примерно ~ 7000 байт.

Но тут столкнулся с проблемным веб сервисом который работает на nginx. Суть в том что он отдаёт сайт 2 частями.

1460байт и 65байт к примеру. Судя по wireshark в 65 байтах окончание сайта.

Вопрос почему так происходит? Это нормально? Просто с этим ресурсом возникает проблема, с какой-то вероятность эти 1460 байт просто где доходят и сайт не загружается просто.

Причём с другой сети проблем нету, но на другую сеть он отдаёт 1410 байт + 115. Я вот этого вобще не понимаю, почему так может происходить?

Есть какие-то идеи с сетевой стороны или сервера nginx? p.s mtu не превышается


Так отдаёт/фрагментирует сетевой стек, а не Nginx
Можешь для теста попингать большими пакетами

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

Если через ping -s , то максимум 8100 байт можно передать. Почему тогда сетевой стек может фрагментировать мои 2000 байт? Так же не должно быть на данном примере?

gedat
() автор топика
Последнее исправление: gedat (всего исправлений: 3)

Причём с другой сети проблем нету, но на другую сеть он отдаёт 1410 байт + 115. Я вот этого вобще не понимаю, почему так может происходить?

Где-то между тобой и сайтом находится проблемный канал, в котором mtu меньше. Причём настроен этот канал криво - mtu заведомо меньше, но mss не уменьшается

Возможно, vpn у тебя. Тогда не забудь настроить path mtu discovery

https://www.opennet.ru/docs/RUS/LARTC/x2657.html

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)

Если ты видишь пакет длиною больше чем MTU, то это offload

Отключи его (если он включен) tso,lro,gro,sg на сетевом адаптере.

ethtool -K ethX sg off tso off gso off gro off

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

Не особо силен пока в сетях)

Получается когда ты видишь пакет http длинною length 1777

22:23:53.126646 IP 192.168.3.28.http > Pc.53262: Flags [P.], seq 1:1778, ack 421, win 503, options [nop,nop,TS val 3532857112 ecr 2155280847], length 1777: HTTP: HTTP/1.1 200 OK

Получается по дороге этот http пакет произошла фрагментация на mtu + оставшиеся часть. Но на сетевом интерфейсе собрал в единый, и я вижу это как единый пакет ?

gedat
() автор топика
Последнее исправление: gedat (всего исправлений: 3)
Ответ на: комментарий от vel

Да действительно это заработало, но если прописать эту строчку с 2х сторон. Со стороны сервера и со стороны клиента. Но как сделать без стороны сервера?) Как мне увидеть «чистые пакеты» которые ко мне приходят?

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