|
stm32f4 ethernet потеря пакетов |
|
|
|
Jun 8 2016, 14:56
|
Частый гость
 
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205

|
QUOTE (Fobes @ Jun 8 2016, 17:06)  Втыкаем дискавери напрямую в комп и смотрим номера пакетов, ничего не теряется, все хорошо. Берем роутер, к роутеру подключаем комп и дискавери, также роутер подключен к интернету. Запускаем данные с дискавери и смотрим, потерь опять же нет. Но стоит дать какую-либо нагрузку, т.е. запустить торрент на компе, включить онлайн фильм, то пакеты начинают теряться, причем количество потерь увеличивается с наращиванием нагрузки... дискавери генерирует около 4Мбит в локальную сеть... Так понятнее ? Как-будто передача начинается в то время, когда роутер еще не разрешил ее... Есть идеи ? Пакеты какого размера? Зависит ли проблема от длины пакета? Предположения: 1) Роутер не справляется. Например у него в свиче нет аппаратной поддержки vlan, выполняется эмуляция на процессоре. 2) Ноут не справляется. wireshark переключает сетевушку в promiscous mode и начинает фильтровать пакеты софтверно. Торрент/фильм создают тучу пакетов и шарк захлебывается. 3) Ваш девайс анонсирует поддержку flow control, но реально pause frame не обрабатывает.
|
|
|
|
|
Jun 8 2016, 15:40
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Цитата(LightElf @ Jun 8 2016, 14:56)  Пакеты какого размера? Зависит ли проблема от длины пакета? Предположения: 1) Роутер не справляется. Например у него в свиче нет аппаратной поддержки vlan, выполняется эмуляция на процессоре. 2) Ноут не справляется. wireshark переключает сетевушку в promiscous mode и начинает фильтровать пакеты софтверно. Торрент/фильм создают тучу пакетов и шарк захлебывается. 3) Ваш девайс анонсирует поддержку flow control, но реально pause frame не обрабатывает. Чистый пакет 125 байт с частотой 4 кГц'а. От длины не зависит. В роутер также втыкалось промышленное устройство, генерирующее такой же поток данных что и мое. При проверке, поток пром. устройства был полон, а мой по прежнему с дырками. Пакеты ловил не шарком, а другой программой, хотя все равно все на pcap'е писалось. Первые два варианта отпадают. А вот про третий интересно... можно более подробно ? Это режим когда два пакета одновременно отправиться не могут чтоли ?
|
|
|
|
|
Jun 8 2016, 18:54
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(scifi @ Jun 8 2016, 13:30)  Рубрика "вредные советы"? Ню-ню. Хаб точно от торрента захлебнётся - к гадалке не ходи. а тут торрент отлаживается или что-то иное? А нагрузить линию можно и без торрента.
--------------------
|
|
|
|
|
Jun 8 2016, 20:15
|
Участник

Группа: Участник
Сообщений: 37
Регистрация: 19-01-16
Пользователь №: 90 105

|
Цитата(pitt @ Jun 8 2016, 17:22)  Очевидно, что проблемы с софтом, а не с железом. Попробуйте найти и поставить тупой хаб, может роутер слишком умный... Брал коммутатор за 30к, итог тот же... Цитата(pitt @ Jun 8 2016, 18:54)  а тут торрент отлаживается или что-то иное? А нагрузить линию можно и без торрента. Само собой) Отлаживается потеря пакетов. Непонятно из-за чего происходящая. А как происходит передача пакета из озу в phy ? Использую SPL и LwIp. Пакет пишется в дискриптор, потом его DMA уже переносит в физику ? А физика уже должна думать, отправлять сейчас или подождать, так ? Или задержка при одновременной отправке пакетов с нескольких сторон управляется mac уровнем ? Куда копать ? В настройку phy или с отправкой что-то не то ?
Сообщение отредактировал Fobes - Jun 8 2016, 20:16
|
|
|
|
|
Jun 8 2016, 21:57
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(Fobes @ Jun 8 2016, 16:15)  В настройку phy или с отправкой что-то не то ? если напрямую все в порядке, то с физикой нет проблем. Настройки phy смотреть можно, но это, скорее, настройки mac, а еще скорее, роутера. Потому и сказал взять тупой хаб.
--------------------
|
|
|
|
|
Jun 9 2016, 13:08
|
Частый гость
 
Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205

|
QUOTE (Fobes @ Jun 8 2016, 18:40)  Чистый пакет 125 байт с частотой 4 кГц'а. От длины не зависит. В роутер также втыкалось промышленное устройство, генерирующее такой же поток данных что и мое. При проверке, поток пром. устройства был полон, а мой по прежнему с дырками. Пакеты ловил не шарком, а другой программой, хотя все равно все на pcap'е писалось. Первые два варианта отпадают. А вот про третий интересно... можно более подробно ? Это режим когда два пакета одновременно отправиться не могут чтоли ? Регистр PHY 4h, биты 10:11 сообщают партнеру, поддерживает ли устройство pause frames. Регистр ETH_MACFCR у STM32 управляет обработкой этих самых pause frames. Ессно регистры должны быть между собой согласованы. Т.е. ежели PHY сообщает партнеру о поддержке pause, то в MAC должна быть включена обработка таких пакетов. Иначе картина маслом: роутер занят, он отсылает девайсу команду заткнуться и перестает принимать от него пакеты. Девайс команду игнорирует и продолжает отправлять данные. Итого: пакеты теряются.
|
|
|
|
|
Jun 9 2016, 13:17
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(Fobes @ Jun 8 2016, 23:15)  Пакет пишется в дискриптор, потом его DMA уже переносит в физику ? А физика уже должна думать, отправлять сейчас или подождать, так ? Или задержка при одновременной отправке пакетов с нескольких сторон управляется mac уровнем ? Куда копать ? В настройку phy или с отправкой что-то не то ? Вообще физика - если это просто трансивер, то она работает насквозь, т.е она что получила от МАСа, то и выплюнула в линию. Она ничего не умеет, ни " думать, отправлять сейчас или подождать". Это может делать свитч, т.е. прансивер отсылает ему пакет, а он накапливает у себя пакет, если линия занята... Но это работает только в дуплексе от физики до свитча... Из физики можно прочесть, свободна ли линия и дать команду на передачу. А если было столкновение в линии, то перезапустить пакет..
--------------------
www.iosifk.narod.ru
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|