-
- А зачем через UDP гонять? Есть же Modbus TCP. - alexem(26.05.2025 22:19)
- UDP типа быстрее... - IBAH(26.05.2025 22:20)
- С учётом времени расчёта контрольной суммы реально быстрее? - alexem(26.05.2025 22:32)
- UDP типа быстрее... - IBAH(26.05.2025 22:20)
- Продолжаем разговор. Пронаблюдал я ВинШарком обмен, посмотрел на
тайминги, мне все очень не понравилось IBAH(343 знак., 26.05.2025 11:25 - 11:31)
- Ну у меня жиденькая мега328 с ENC28 при тактовой 12.5 Мгц(spi -
6.25) через коммутатор выдает аналогичный результат. Длина пакета
запроса - 64 байт, ответ 256 байт. ARP запрос, только 1 в начале
обмена. Тот же код более жирном контроллере шевелится на порядок
быстрее. Гyдвин(1 знак., 26.05.2025 12:34, ссылка)
- Дело не в МК, у меня прием-передача занимает 100мкс на софтовом
SPI. Но пока данные гуляют по сети, 2 миллисекунды нагуливают. - IBAH(26.05.2025 13:14)
- Да никуда онм ек должны гулять. Я привел примеры работы 10 Мбит ENC28, подключенного к компу последовательно через 5-портовый 100 Мбит и гигабитный коммутаторы от DLink. Имхо, копать надо в сторону W5500. Можно попробовать отключить его встроенный стек и проделать все врукопашную... Ну и еще раз пристальнее глянуть вот на это: Гyдвин(1108 знак., 26.05.2025 13:38)
- Дело не в МК, у меня прием-передача занимает 100мкс на софтовом
SPI. Но пока данные гуляют по сети, 2 миллисекунды нагуливают. - IBAH(26.05.2025 13:14)
- Будет значительно быстрее. Да. Но трафик не пройдёт, если в сети
есть переход с чисто L2-уровня (MAC, Ethernet) на уровень L3 (IP).
Если всё в пределах установки или сегмента сети с управляемыми
коммутаторами, где можно пробросить именно L2 VLAN, то будет всё
хорошо. Лучше, чем с IP. Nikolay_Po(631 знак., 26.05.2025 11:54, ссылка, ссылка)
- Спасибо, именно это я и хотел услышать. - IBAH(26.05.2025 12:39)
- + Вопрос. Есть терминалка под Ehernet, чтобы сразу по МАС
связаться? - IBAH(26.05.2025 11:30)
- См. выше. Можете сразу связаться. Но! Если у вас нет критически
важных требований к "реальности времени", лучше делайте L3 (IP) -
иначе люди потом замучаются пробрасывать L2, если у них развёрнута
сеть чисто L3. На практике такое бывает. - Nikolay_Po(26.05.2025 11:58)
- Это понятно. У меня Ehernet дальше шкафа никуда не пойдет. Я другое
спрашивал, терминальную программу для приема-отправки Ehernet
пакетов. Отлаживать как то ведь надо. - IBAH(26.05.2025 13:06)
- Я бы просто поставил D-Link DES-2108 и включил бы зеркальный порт в
Wireshark (писал вроде?). Зачем тратить время на терминал/утилиту?
В крайнем случае, имеет смысл написать для Вайешарка, в его API,
анализатор вашего же протокола - чтобы показывал структуру,
содержание, декодированные данные, если надо. - Nikolay_Po(26.05.2025 13:15)
- Ну вот! Как раз вспомнил, что на носу новый проект с Ethernet.
Заказал себе на рабочее место новый небольшой и недорогой
коммутатор и с VLAN, и с приоритезацией, и с зеркалированием
портов. "Коммутатор MikroTik RB260GS CSS106-5G-1S 5x1Гбит/с 1SFP
управляемый". Даже SFP есть, если решу оптику воткнуть. - Nikolay_Po(26.05.2025 14:49)
- А я вот такую штучку попробовал. Умеет master, slave, mqtt, dhcp и еще чего-то на вырост. Cкpипaч(1 знак., 26.05.2025 14:55, картинка)
- Так с помощью WS можно отправлять Ethernet пакеты? Вот нашел
программу для отправки пакетов IBAH(1 знак., 26.05.2025 13:32, ссылка)
- Не связывайтесь с этой "packETH - Ethernet Packet Generator" под Win7х64. Эта падла опенсоурсная мне комп уложила, в момент отправки пакета, да так что он не с первого раза загрузился. (Виндос восстановлена после серьезного сбоя) - IBAH(26.05.2025 19:19)
- Об этом я не думал. Плат такой: пакеты пусть отправляет то, что должно их отправлять. Принимает - то, что должно их принимать. А Wireshark в этой схеме - лишь наблюдатель. Обычно, этого для отладки достаточно. В крайнем случае, я делаю отладочный механизм на одной из сторон. - Nikolay_Po(26.05.2025 13:42)
- Все нужное имеется в составе утилиты CommView для Win. - Гyдвин(26.05.2025 13:40)
- спасибо. буду пробовать - IBAH(26.05.2025 19:36)
- Звучит как вопрос, на который ИИ-чят мог бы дать неплохой ответ. - SciFi(26.05.2025 13:38)
- Ну вот! Как раз вспомнил, что на носу новый проект с Ethernet.
Заказал себе на рабочее место новый небольшой и недорогой
коммутатор и с VLAN, и с приоритезацией, и с зеркалированием
портов. "Коммутатор MikroTik RB260GS CSS106-5G-1S 5x1Гбит/с 1SFP
управляемый". Даже SFP есть, если решу оптику воткнуть. - Nikolay_Po(26.05.2025 14:49)
- Я бы просто поставил D-Link DES-2108 и включил бы зеркальный порт в
Wireshark (писал вроде?). Зачем тратить время на терминал/утилиту?
В крайнем случае, имеет смысл написать для Вайешарка, в его API,
анализатор вашего же протокола - чтобы показывал структуру,
содержание, декодированные данные, если надо. - Nikolay_Po(26.05.2025 13:15)
- +1 - LordN(26.05.2025 12:30)
- Это понятно. У меня Ehernet дальше шкафа никуда не пойдет. Я другое
спрашивал, терминальную программу для приема-отправки Ehernet
пакетов. Отлаживать как то ведь надо. - IBAH(26.05.2025 13:06)
- См. выше. Можете сразу связаться. Но! Если у вас нет критически
важных требований к "реальности времени", лучше делайте L3 (IP) -
иначе люди потом замучаются пробрасывать L2, если у них развёрнута
сеть чисто L3. На практике такое бывает. - Nikolay_Po(26.05.2025 11:58)
- Ну у меня жиденькая мега328 с ENC28 при тактовой 12.5 Мгц(spi -
6.25) через коммутатор выдает аналогичный результат. Длина пакета
запроса - 64 байт, ответ 256 байт. ARP запрос, только 1 в начале
обмена. Тот же код более жирном контроллере шевелится на порядок
быстрее. Гyдвин(1 знак., 26.05.2025 12:34, ссылка)
- так IP -> MAC как то надо ж определить, ARP протокол работает
же первый раз - OoegOleg(23.05.2025 16:39,
)
- Всем спасибо! прояснилось... Но все равно не понятно откуда разница
в 100мс при различный методах сброса. По ДШ: программный сброс
очищает только внутренние регистры, а аппаратный также сбрасывает
физический интерфейс. - IBAH(23.05.2025 17:27)
- Если вы уронили линк , а на коммутаторе настроен классический Spanning three и порт не в режиме edge , так траффик может и 30 секунд не ходить - OlegPowerC(23.05.2025 17:41)
- Физике надо время чтобы прочухаться после сброса: прочувствовать
линк, обкашлять с партнером скорость и дуплекс. Небыстрое это дело. - LightElf(23.05.2025 17:36)
- Ну это понятно, W5500 сигнал линк до полсекунды выставляет - IBAH(23.05.2025 18:15)
- Нихуя не понял, но очень интересно! у W5500 есть опция "Включить
режим форсирования ARP. В режиме форсирования ARP принудительно
отправляется запрос ARP при каждой отправке данных." Поможет? - IBAH(23.05.2025 16:50)
- Нет :-) усугубит , не рассчитывайте что первая датаграмма улетит
мгновенно. Можете перед первой посылкой послать что угодно - хоть
icmp, хоть левый udp. И тогда адрес разрешиться до вашей полезной
посылки - OoegOleg(23.05.2025 17:07,
)
- Можно попробовать на компе сделать статическую запись в таблице ARP и посмотреть, будет ли изменение. "arp -s IP MAC". - SciFi(23.05.2025 17:05)
- Обмен по Ethernet идет на базе MAC-адресов. А обмен по UDP идет на
базе IP адресов. Выяснением соответствия MAC <-> IP
занимается протокол ARP. После сброса процессора таблица ARP пуста.
Поэтому первый UDP пакет не может быть отправлен сразу - сначала
должен пройти обмен адресами по ARP. Это первый момент. Второй
момент заключается в том, что свичам для работы нужно знать на
каком порту у них какой MAC сидит. Свич узнает MAC адреса путем
прослушивания трафика. LightElf(149 знак., 23.05.2025 17:04)
- Коммутатор первый фрейм предназначенный неизученнуму маку пошлет во
все порты этого vlan, это называется юникаст флуд - OoegOleg(23.05.2025 17:09,
)
- Это зависит от настроек свича. В описанной ситуации никакого
юникастового пакета никуда не пойдет - сначала уйдет ARP запрос
бродкастом, из него свич узнает MAC отправителя, потом на ARP
придет ответ и только потом уйдет UDP пакет. По наблюдениям, первый
ARP запрос после подключения не через все свичи проходит, иногда
только второй запрос реально пересылается свичем. - LightElf(23.05.2025 17:18 - 17:34)
- Пример обмена через коммутатор IBAH(939 знак., 26.05.2025 11:56)
- Не знаю как у wiznet, но хорошо бы ещё при старте посылать gratuitous ARP (ARP ответ без запроса, броадкастовый), чтобы и свичи быстрее просрались и компухтер сразу узнал о появлении девайса. - LightElf(26.05.2025 14:27)
- Настораживают "Len=8". Это размер данных в пакете? Не забываем, что
размер ethernet пакета должен быть не менее 64 байт вместе с
заголовком. Иначе можно наткнуться на грабли... - Гyдвин(26.05.2025 12:10)
- Это размер данных в пакете UDP. Модбас-запрос 01 03 00 00 00 0b 04 0d - IBAH(26.05.2025 12:24)
- По-моему, идеальный обмен. Образцово-показательный, я бы сказал. - Nikolay_Po(26.05.2025 12:00)
- я прекрасно знаю это, я к тому что даже отсутствие MAC адреса
назначения (например потому что устройство получатель ничего не
посылало и истек таймаут) не будет проблемой , поэтому к
коммутатору тут вопросов вобще нет. Тут исключительно вопрос к ARP.
Можно было бы создать статичискую запись ARP но в Wiznet этого не
сделать - OoegOleg(23.05.2025 17:23,
)
- А дошло! задерживается не пакет от компа до W5500, а пакет от W5500
до компа! комп хранит ARP таблицу , а W5500 очищает её при сбросе. Возможно комп хранит таблицу энергонезависимо, я комп
перезагружал, эффект задержки первого пакета не проявляется. - IBAH(23.05.2025 17:34)
- Wireshark поставьте на пк и все увидите - OlegPowerC(23.05.2025 17:44)
- А дошло! задерживается не пакет от компа до W5500, а пакет от W5500
до компа! комп хранит ARP таблицу , а W5500 очищает её при сбросе. Возможно комп хранит таблицу энергонезависимо, я комп
перезагружал, эффект задержки первого пакета не проявляется. - IBAH(23.05.2025 17:34)
- Пример обмена через коммутатор IBAH(939 знак., 26.05.2025 11:56)
- Это зависит от настроек свича. В описанной ситуации никакого
юникастового пакета никуда не пойдет - сначала уйдет ARP запрос
бродкастом, из него свич узнает MAC отправителя, потом на ARP
придет ответ и только потом уйдет UDP пакет. По наблюдениям, первый
ARP запрос после подключения не через все свичи проходит, иногда
только второй запрос реально пересылается свичем. - LightElf(23.05.2025 17:18 - 17:34)
- Коммутатор первый фрейм предназначенный неизученнуму маку пошлет во
все порты этого vlan, это называется юникаст флуд - OoegOleg(23.05.2025 17:09,
- Не поможет. Всё дело в первом разе. Сначала посылается пакет ARP,
ждет ответа от удаленного узла, чтобы получить его MAC - один раз,
а уже потом передает ваши IP пакеты. - ecomp42(23.05.2025 17:02,
)
- Нет :-) усугубит , не рассчитывайте что первая датаграмма улетит
мгновенно. Можете перед первой посылкой послать что угодно - хоть
icmp, хоть левый udp. И тогда адрес разрешиться до вашей полезной
посылки - OoegOleg(23.05.2025 17:07,
- Всем спасибо! прояснилось... Но все равно не понятно откуда разница
в 100мс при различный методах сброса. По ДШ: программный сброс
очищает только внутренние регистры, а аппаратный также сбрасывает
физический интерфейс. - IBAH(23.05.2025 17:27)
- Конфигурация сети. Комп и W5500 включены в 5портовый гигабитный свитч, свитч подключен к другому 16 портовому, а тот в свою очередь к роутеру. В W5500 включена автонастройка, автонастраивается на 100М/с дуплекс. Может свитч мозг делает? - IBAH(23.05.2025 16:26)
- А зачем через UDP гонять? Есть же Modbus TCP. - alexem(26.05.2025 22:19)