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

Требуется помощь в понимании результатов wirehark при передаче данных.

В моей локальной сети у меня есть маршрутизатор, на котором работает сервер Samba, и мой компьютер подключается к маршрутизатору.

Я использовал wirehark при загрузке файла с моего ПК на сервер самбы.

Ниже приведен ярлык результата wirehark,

Как видно, после ответа сервера в кадре 7560 мой компьютер отправляет несколько пакетов, которые все имеют полный размер (кадр с 1514 байтами).

Но в кадре 7560 заявленный размер окна составляет 94 байта.

И описанная выше ситуация происходит во всех результатах.

Итак, я не могу понять, как мой компьютер может отправлять почти 30000+ байтов, в то время как последние пакеты с сервера объявляют только окно размером 94 байта.

Я бы подумал, что это Масштабирование окна TCP на работе - вероятно, это было согласовано при настройке подключения и не принимается во внимание Wireshark. Таким образом, заявленный размер окна составляет не 94 байта, а (2 ^ Икс) * 94 где Икс коэффициент масштабирования.

Размер окна зависит от размера сетевого буфера, настройка по умолчанию в Linux 2.6 должна подойти, в случае, если сетевой буфер слишком мал, используйте следующее рекомендованное значение для Gigabit Ethernet.

sysctl -w net.ipv4.tcp_rmem="40960       1048560 4194304"
sysctl -w net.ipv4.tcp_wmem="40960       196608  4194304"
sysctl -w net.core.rmem_max=4194304
sysctl -w net.core.wmem_max=4194304

подробнее http://honglus.blogspot.com/2010/01/double-network-throughput-by-tuning.htm

Вы можете использовать iperf для определения размера окна, если он отлично сообщает для локальной сетевой карты сервера, это может быть проблема с маршрутизатором или приложением.