Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > Wireshark ловит большие пакеты


Автор: konshyn 20.3.2014, 16:45
Привет. Есть огромные проблемы и не знаю, что с этим делать.
В общем, передается один файл с одного хоста на другой. Между хостами 2 коммутатора. MTU у обоих хостов и коммутаторов 1500. 
На второй хост приходят пакеты больше, чем MTU. Куча SACK пакетов. Скорость падает до нуля. 
Wireshark log прикрепил к сообщению.
Гуру-ребята, есть идеи?
Стоит Linux.

Автор: feodorv 21.3.2014, 20:47
Цитата(konshyn @  20.3.2014,  17:45 Найти цитируемый пост)
На второй хост приходят пакеты больше, чем MTU.

Не понятно. А уходят какие?

http://ask.wireshark.org/questions/17730/retransmissions)))

Автор: konshyn 22.3.2014, 13:08
Sorry smile

Автор: feodorv 22.3.2014, 17:30
Цитата(konshyn @  22.3.2014,  14:08 Найти цитируемый пост)
Пакеты инкапсулируются

А вот тут-то не происходит ли превышение MTU, если изначальный пакет уже на грани этого MTU?

Цитата(konshyn @  22.3.2014,  14:08 Найти цитируемый пост)
Там выдвинута идея, что массовые SACKи могут быть из-за несоответствий дуплекса.

Не только. Скорости передачи тоже должны быть сбалансированы.

Цитата(konshyn @  22.3.2014,  14:08 Найти цитируемый пост)
Какие есть идеи, мысли? 

Идей нет, разве что только тот, кто инкапсулирует пакеты, тот их и склеивает... Точно проверили, что уходят недлинные пакеты?

Автор: konshyn 23.3.2014, 12:56
Sorry smile

Автор: konshyn 23.3.2014, 18:40
Sorry smile

Автор: konshyn 23.3.2014, 19:47
Sorry smile

Автор: konshyn 27.3.2014, 11:02
Вопрос решен.
Дальше для тех, кто когда-нибудь сталкнется с такой же проблемой и ее надо будет решить.

Все дело было в драйвере. И не только драйвер r8169 имеет такие "проблемы". Это не проблема, это оптимизация. ОС проще за раз переписать 65536 байт, чем постоянно переключать контекст, чтобы записать пакет <= MTU, в основном 1500. Вообще, очень много интересных опций в современных драйверах. Как с ними  работать, я пока что не знаю.
И вот сама по себе "проблема" больших пакетов. http://ru.wikipedia.org/wiki/Large_segment_offload.

Автор: feodorv 29.3.2014, 12:09
Цитата(konshyn @  27.3.2014,  12:02 Найти цитируемый пост)
Как с ними  работать, я пока что не знаю.

Есть такой намёк:
Цитата

Under Linux, LSO/TSO can be controlled using the -K option to the ethtool command, which can also be used to control other offloading features. It is typically enabled by default if kernel/driver and adapter support it. 

Автор: konshyn 30.3.2014, 14:45
Цитата(feodorv @  29.3.2014,  12:09 Найти цитируемый пост)
Есть такой намёк:

Да, с помощью ethtool проблему и решили.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)