Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 11.12.2018, 15:27   #1
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Трудно локализуемая проблема.

Всем добрый день. Давненько не был на этом форуме.
Хочу попробовать задать вопрос по хитрому эффекту.
В надежде получить методику локализации проблемы.

Итак.
1) Есть переходник Ethernet - RS485 собственного изготовления.
Это вообще целый контроллер и там много всякого софта внутри...
Но продолжим.
2) Есть переходники (покупные) USB - RS485 и мой собственный USB - RS485.
3) Есть некий контроллер на шине RS485.
4) Есть утилита под Win (написана на Borland C++) для
обслуживания этого самого контроллера (на самом деле целое семейство).
Утилита посылает запрос - контроллер обрабатывает и шлет ответ.
В утилите есть FIFO таких команд (иногда в очереди десятки тысяч оных)
и есть счетчик пакетов (запрос-ответ) обработанных в секунду.
Скорость обмена не важна и не суть.
Утилита способна открыть COM порт (и тем самым работать через USB переходники и их драйвера)
а может открыть TCP соединение по некому IP и тем самым работать
через Ethernet переходник.

Перехожу к описанию эффекта.

Выбираем режим COM порта, начинаем обмен.
Скорость 35 пакетов в секунду.
Осциллографом видим четкое и без задержек переключение приема/передачи. Отсутствие пауз между пакетами. Т.е. практически непрерывный
поток байтов с периодической сменой направления (собственно 35 раз в секунду). Все понятно - это и есть наша пропускная способность для выбранной скорости передачи.

Выбираем режим Etnernet и начинаем обмен с тем самым контроллером.
Получаем скорость 20-22 пакета в секунду (на треть меньше).
Осциллографом видим паузы между пакетами.
Шарком видим чистый и без потерь обмен фреймами.
Тайминг показывает паузы между фреймами не более 1 мс и менее.
На первый взгляд нет проблем вообще.
Ну добавилась работа маршрутизатора, стека в ПК, стека в контроллере и т.д. Все же законно.

Но!!!

На ПК включаем допустим Skype (никуда не звоним) - скорость вырастает до 35 пакетов в секунду и паузы становятся равны 0 на осциллографе.
Можно запустить Аську (qip).
Можно открыть 2 браузера (один не помогает) - скорость снова растет.
Браузеры могут быть какие угодно...
Закрываем доп. программы - скорость снова 22 пакета в секунду.
Запускаем - четко растет до 35 пакетов...

Далее некоторые тонкости.
На ПК может быть XP, Win7 или Win10 - эффект аналогичен.
Роутеры (свитчи) менялись раз 5 - эффект остается.
Можно вообще без роутера (воткнуть в сетевуху) - эффект тот же.
Контроллер RS485 один и тот же.
Переходник (контроллер) Ethernet - это STM32F107/407
TCP/IP стек - LwIP (2,03)

Как локализовать фишку не знаю...
В принципе не критично. Но просто интересно!!!
Совершенно неожиданный и непонятный эффект...

Ну и чтоб было интереснее.
Переходник - это контроллер из 2-й строки по этому IP:
http://195.2.88.83/
Вообще бывают включены и другие контроллеры, но когда как.
(не наваливайтесь кучей на бедный контроллер )

Последний раз редактировалось Petr; 11.12.2018 в 15:34. Причина: Забыл дописать.
Petr вне форума   Ответить с цитированием
Старый 11.12.2018, 16:20   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Petr
Добрый день.

При низкой нагрузке операционные системы могут сильно снижать свою частоту.

Чтобы вещи возникают не от смены частоты операционной системы, поставьте в Вашей операционной системе CPU governor perfomance.

Такое поведение выставит максимальную частоту процессора.
besogon вне форума   Ответить с цитированием
Старый 11.12.2018, 16:22   #3
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Обязательно попробую!
Petr вне форума   Ответить с цитированием
Старый 11.12.2018, 16:24   #4
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от besogon Посмотреть сообщение
Petr
Добрый день.

При низкой нагрузке операционные системы могут сильно снижать свою частоту.

Чтобы вещи возникают не от смены частоты операционной системы, поставьте в Вашей операционной системе CPU governor perfomance.

Такое поведение выставит максимальную частоту процессора.
А что это за софтина?
На удивление я не нашел ничего поисковиком...
Дайте ссылку.
Petr вне форума   Ответить с цитированием
Старый 11.12.2018, 16:28   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Petr
я не работал с операционными системами семейства windows.
в linux это cpufrequtils, которая поставляется с большинством дистрибутивов.

для windows сходу гуглится
https://www.iguides.ru/main/os/kak_u...mi_windows_10/

у меня есть подозрение, что в этом меню можно сделать так, чтобы всегда работало на максимальной частоте.
besogon вне форума   Ответить с цитированием
Старый 11.12.2018, 16:37   #6
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от besogon Посмотреть сообщение
Petr
я не работал с операционными системами семейства windows.
в linux это cpufrequtils, которая поставляется с большинством дистрибутивов.

для windows сходу гуглится
https://www.iguides.ru/main/os/kak_u...mi_windows_10/

у меня есть подозрение, что в этом меню можно сделать так, чтобы всегда работало на максимальной частоте.
Действительно в этом меню можно установить минимальную
и максимальную частоту.
Но во первых установка максимума не дала эффекта.
Во вторых я забыл добавить.
На ПК можно запустить любую "тяжелую" задачу.
Например игру с графикой или тот же Autodesk 3ds Max
Это не оказывает влияния на скорость о которой я говорю.
Но любое приложение, которое открывает сетевые соединения
(вероятно несколько) - оказывает влияние.
Допустим при запуске qip нагрузка на ЦП как была 0% так и остается 0%. Но эффект ускорения присутствует...
Замечу, что упомянутая утилита действительно создает очень низкую нагрузку на ЦП.
Petr вне форума   Ответить с цитированием
Старый 11.12.2018, 17:02   #7
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Petr
когда я обменивался по сети по TCP/IP я использовал сокеты.

Вы в своем приложении используете сокеты?
Или какая у Вас организация обмена по сети?

сходу не приходит в голову, что у Вас происходит.
besogon вне форума   Ответить с цитированием
Старый 11.12.2018, 17:10   #8
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от besogon Посмотреть сообщение
Petr
когда я обменивался по сети по TCP/IP я использовал сокеты.

Вы в своем приложении используете сокеты?
Или какая у Вас организация обмена по сети?

сходу не приходит в голову, что у Вас происходит.
В описании я старался подчеркнуть что в системе ничего не меняется
кроме факта запуска стороннего сетевого приложения в Win системе.

Что касается программных интерфейсов, то в утилите на С++
используются сокеты. А в контроллере используется интерфейс Raw lwIP.
Хотя я не вижу связи...

С другой стороны понятно, что вся трудность именно в многогранности вопроса.
Используется много всего и много софта участвует в процессе. Это да.
Потому я считаю это трудно локализуемой проблемой...
Petr вне форума   Ответить с цитированием
Старый 11.12.2018, 18:10   #9
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 55
Сообщений: 1,023
Вес репутации: 2657/76
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Трудно локализуемая проблема.

Сталкивался с подобным. Так же обмен по с софтиной через открытый СОМ порт , который подменяется на ТСР-RS485 переходник.
Софтины которые эмулируют СОМ порт под ТСР имеют настройки.
Так там есть настройка

1)отправлять при наличии в буфере N байт,

2) отправлять по тайм ауту или по максимальной длине пакета.
Есть еще разные настройки
Так вот, когда сеть загружена, а скайп и другие проги ведут обмен, то маленькие пакеты чаще улетают провайдеру и возрастает скорость обмена.
На GPRS модемах есть специальные настройки для устройств , которые должны четко соблюдать временные рамки.
ТСР гарантирует доставку - но не гарантирует соблюдение временных интервалов между передаваемыми байтами данных.
Поэтому надо смотреть настройки программы , которая эмулирует СОМ порт , а также настройку оборудования провайдера , если сможете убедить .
Сразу не обратил внимание, что напрямую подключали.
В таком случае остаются настройки проги эмулирующей СОМ порт. А также лезть в ТСР стек вашего контроллера и там менять настройки. Но скорее всего проблема именно в программе эмуляции СОМ порта на стороне РС.

Последний раз редактировалось smart_pic; 11.12.2018 в 18:26.
smart_pic вне форума   Ответить с цитированием
Старый 11.12.2018, 18:16   #10
bzx
Senior Member
 
Аватар для bzx
 
Регистрация: 25.02.2007
Адрес: St. Petersburg
Возраст: 46
Сообщений: 497
Вес репутации: 1159/62
bzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud ofbzx has much to be proud of
Отправить сообщение для bzx с помощью ICQ Отправить сообщение для bzx с помощью Skype™
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от Petr Посмотреть сообщение
Как локализовать фишку не знаю...
В принципе не критично. Но просто интересно!!!
Совершенно неожиданный и непонятный эффект...
Поправьте если не так, у Вас меняется скорость генерации eth пакетов в Вашей приложении в зависимости от параллельного запуска сторонних программ, в частности, скайпа?
__________________
Для связи email: info собака qbit.su
bzx вне форума   Ответить с цитированием
Старый 11.12.2018, 18:31   #11
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 55
Сообщений: 1,023
Вес репутации: 2657/76
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от Petr Посмотреть сообщение
Утилита способна открыть COM порт (и тем самым работать через USB переходники и их драйвера)
а может открыть TCP соединение по некому IP и тем самым работать
через Ethernet переходник.

В программе (вашей утилите) откройте СОМ порт созданный сторонней программой эмуляции СОМ порта по ТСР с настроками , и посмотрите на результат.
Если получите ускорение - то значит нужно переписать утилиту в вашем ПО.
smart_pic вне форума   Ответить с цитированием
Старый 11.12.2018, 23:25   #12
Dima
Senior Member
 
Регистрация: 26.02.2007
Адрес: Minsk
Возраст: 50
Сообщений: 235
Вес репутации: 233/51
Dima has a spectacular aura aboutDima has a spectacular aura aboutDima has a spectacular aura about
По умолчанию Re: Трудно локализуемая проблема.

Вероятно, кто-то в вашей цепочке накапливает буфер перед отправкой.
Dima вне форума   Ответить с цитированием
Старый 12.12.2018, 07:23   #13
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 55
Сообщений: 1,023
Вес репутации: 2657/76
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Трудно локализуемая проблема.

Если система построена по принципу запрос-ответ, и новый запрос не будет послан пока не получим подтверждения на сообщение - то лучше перейти на UDP , обмен будет гораздо быстрее
smart_pic вне форума   Ответить с цитированием
Старый 12.12.2018, 09:21   #14
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Я предполагаю, что приходит сразу 2 пакета, а где-то из-за ошибки в коде при приеме второй затирается.

При включении skype два пакета подряд приходят реже.
besogon вне форума   Ответить с цитированием
Старый 12.12.2018, 09:21   #15
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от bzx Посмотреть сообщение
Поправьте если не так, у Вас меняется скорость генерации eth пакетов в Вашей приложении в зависимости от параллельного запуска сторонних программ, в частности, скайпа?
Вероятно именно так.
Petr вне форума   Ответить с цитированием
Старый 12.12.2018, 09:23   #16
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от besogon Посмотреть сообщение
Я предполагаю, что приходит сразу 2 пакета, а где-то из-за ошибки в коде при приеме второй затирается.

При включении skype два пакета подряд приходят реже.
Ни в коем случае!
Каждый пакет принимается и обрабатывается.
Это проверено много раз и с разных сторон.
И шарком и внутренними средствами.
Petr вне форума   Ответить с цитированием
Старый 12.12.2018, 09:24   #17
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

smart_pic
в UDP и TCP/IP отличаются по гарантиям доставки.

если в конечном решении непонятно, как далеко будет один узел расположен от другого(например в разных странах) то наверное лучше без UDP.
besogon вне форума   Ответить с цитированием
Старый 12.12.2018, 09:30   #18
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Petr
опишите протокол взаимодействия Вашего оборудования.

в типовых реализациях что я использовал скорость обмена была на порядки выше 35 пакетов. и каких-то схожих проблем я не замечал.

только там обходилось без эмуляции COM или чего бы то ни было.
besogon вне форума   Ответить с цитированием
Старый 12.12.2018, 09:38   #19
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от smart_pic Посмотреть сообщение
Сталкивался с подобным. Так же обмен по с софтиной через открытый СОМ порт , который подменяется на ТСР-RS485 переходник.
Софтины которые эмулируют СОМ порт под ТСР имеют настройки.
Так там есть настройка

1)отправлять при наличии в буфере N байт,

2) отправлять по тайм ауту или по максимальной длине пакета.
Есть еще разные настройки
Так вот, когда сеть загружена, а скайп и другие проги ведут обмен, то маленькие пакеты чаще улетают провайдеру и возрастает скорость обмена.
На GPRS модемах есть специальные настройки для устройств , которые должны четко соблюдать временные рамки.
ТСР гарантирует доставку - но не гарантирует соблюдение временных интервалов между передаваемыми байтами данных.
Поэтому надо смотреть настройки программы , которая эмулирует СОМ порт , а также настройку оборудования провайдера , если сможете убедить .
Сразу не обратил внимание, что напрямую подключали.
В таком случае остаются настройки проги эмулирующей СОМ порт. А также лезть в ТСР стек вашего контроллера и там менять настройки. Но скорее всего проблема именно в программе эмуляции СОМ порта на стороне РС.
1) Очень здравая мысль!
2) Никаких утилит, драйверов и стороннего оборудования по пути нет.
Цепочка следующая:
Утилита - Win сокеты - сетевуха - прямое подключение к контроллеру - ST контроллер - LwIP - софт по обработке и генерации ответа (именно тут происходит переход в RS485 и получение ответа от другого контроллера).

Но заметьте! На стороне моего железа (Ethernet контроллер и RS485 контроллер) изменений нет. Если там есть проблемы - они действуют постоянно.
Изменения наблюдаются на стороне ПК (сторонние программы)

3) Конечно в LwIP отключен Nagle. Это естественно, поскольку он
дает очень существенные задержки на малых пакетах.

А вот в ПК Nagle НЕ отключен! И очень похоже, что именно в этом кроется проблема.
Я сегодня этим займусь и попробую. Очень может быть!
Замечу, что каких либо иных рычагов воздействия на стек TCP/IP
в ПК я не вижу... Если вы знаете что то еще - напишите мне.

4) UDP использовать не могу. Т.е. в локальной сети то нет проблем.
Но этот протокол часто прокидывается через интернет.
А значит появляются 2 проблемы.
Потеря пакетов и смена порядка пакетов.
Потеря не проблема - моя утилита при отсутствии ответа проводит повторные запросы до успеха с заданными таймаутами и количеством повторов.
Также есть механизмы восстановления цепочки выполнения очереди
при длительных потерях связи и повторных подключениях TCP
и даже после перезагрузки контроллера и ПК.
А вот со сменой порядка пакетов - проблема.
Уже написан огромный парк софта контроллеров и управляющих модулей.
Они все очень различны. И очень многие никак не смогут работать
при перестановке любой пары команд. Это критично почти везде.
Я пробовал UDP - перестановки часты и регулярны в интернете.
В локалке проблем нет.
Так что и дальше буду использовать TCP именно по этой причине.
Petr вне форума   Ответить с цитированием
Старый 12.12.2018, 09:45   #20
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от besogon Посмотреть сообщение
Petr
опишите протокол взаимодействия Вашего оборудования.

в типовых реализациях что я использовал скорость обмена была на порядки выше 35 пакетов. и каких-то схожих проблем я не замечал.

только там обходилось без эмуляции COM или чего бы то ни было.
Что либо описывать нет смысла.
Как я уже написал, в конечном итоге пакеты идут по линии RS485
с очень невысокой скоростью (38400 бод).
Именно скорость RS485 и лимитирует пропускную способность в целом.
Именно эту линию я просматривал осциллографом и там все непрерывно
и красиво.
Если я захочу - я могу увеличить скорость на прядки. И она реально увеличивается.
Но скорость выбрана именно эта, исходя из других (не относящихся к теме) соображений.
Тема вопроса - влияние на пропускную способность TCP соединения
при обмене малыми пакетами запущенных сторонних программ на ПК
под Win. Именно этот странный эффект я обсуждаю и именно он непонятен.
Petr вне форума   Ответить с цитированием
Старый 12.12.2018, 10:08   #21
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Всем огромное спасибо.
Особенно smart_pic!!!

Проблема была действительно в Nagle.
(и это было чертовски логично, прямо я ступил...)
И строчка
setsockopt(ClientSocket->Socket->SocketHandle, IPPROTO_TCP, TCP_NODELAY, &On, sizeof(On));
сразу сняла описанный мной эффект.
Теперь скорость всегда лимитируется скоростью RS485
и TCP не создает дополнительных задержек.
Отлично!
Petr вне форума   Ответить с цитированием
Старый 12.12.2018, 10:57   #22
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 55
Сообщений: 1,023
Вес репутации: 2657/76
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Трудно локализуемая проблема.

Замечательно, что все решилось.
Хотя у меня ситуация похожая была, но отличие в том что прграмма на стороне РС работала только через СОМ порт и я использовал эмуляторы СОМ порта для ТСР. Меняя настройки удалось победить тогда эту проблему. У вас немного по другому.

Возможно также кому то поможет данная тема
smart_pic вне форума   Ответить с цитированием
Старый 12.12.2018, 18:08   #23
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,171
Вес репутации: 4017/88
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Petr
Ни в коем случае!
Каждый пакет принимается и обрабатывается.
Это проверено много раз и с разных сторон.
И шарком и внутренними средствами.
- как у Вас каждый пакет обрабатывался тогда? Вам же просто клеило 2 пакета в одну посылку и Вы затирали второй пакет, верно?

Скажите что у Вас происходило в итоге-то?
besogon вне форума   Ответить с цитированием
Старый 13.12.2018, 13:02   #24
Sergey K
Senior Member
 
Регистрация: 23.10.2008
Адрес: Киев
Возраст: 37
Сообщений: 278
Вес репутации: 422/47
Sergey K is just really niceSergey K is just really niceSergey K is just really niceSergey K is just really niceSergey K is just really nice
По умолчанию Re: Трудно локализуемая проблема.

У меня аналогчиная проблема. Программа для прошивки микроконтроллера через UART-USB-COM. Также заметил, что при запуске браузера скорость передачи вырастает почти вдвое. Пока не исследовал эту проблему, т.к. чаще всего браузер уже запущен. ТСР программа не использует, просто открывает СОМ-порт, шлет туда 5-10 байт и ждет байт подтверждения в ответ.
Sergey K вне форума   Ответить с цитированием
Старый 13.12.2018, 16:42   #25
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 48
Сообщений: 1,785
Вес репутации: 3611/100
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Трудно локализуемая проблема.

Цитата:
Сообщение от Sergey K Посмотреть сообщение
У меня аналогчиная проблема. Программа для прошивки микроконтроллера через UART-USB-COM. Также заметил, что при запуске браузера скорость передачи вырастает почти вдвое. Пока не исследовал эту проблему, т.к. чаще всего браузер уже запущен. ТСР программа не использует, просто открывает СОМ-порт, шлет туда 5-10 байт и ждет байт подтверждения в ответ.
У вас другой случай. И тоже сложно локализуемый.
Опишите систему подробно.
Может кто то что то и посоветует. Меня же натолкнули на правильный путь.
Значит и вам может повезти.
Petr вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC24HJ64GP510A проблема со старым ПО VORRRON Продукция MICROCHIP 13 06.10.2018 08:46
Проблема с RTL8201BL Рак Cетевые протоколы и технологии 13 30.01.2017 10:01
проблема с портами A,E в PIC16F877 (всегда 0х00) alexaf Вопросы начинающих 25 27.11.2008 12:36
проблема с обновлением pickit2 ctef Продукция MICROCHIP 13 25.08.2008 18:16
Проблема с PIC18F452 MaxPIC Продукция MICROCHIP 4 09.02.2008 21:47


Часовой пояс GMT +3, время: 21:28.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot