Kalyan 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба Добрый день. Собрал систему из Nucleo STM32f401 и Enc28j60 шилда. Использую FreeRtos и uIP v 1.0. Система завелась, работает DHCP и одно клиентское подключение по TCP. Адаптировал пример веб сервера с uIP стека. Добавил туда свои веб странички. На страничках подключено несколько изображений и скриптов. Соответственно когда браузер это все начинает тянуть вместе - не все ресурсы страницы подгружаются. Если кто то работал с uIP и этим примером веб сервера, у вас наблюдались такие проблемы? Может ли этот веб сервер асинхронно обрабатывать запросы? Буду благодарен если поделитесь своим опытом Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба А может быть физика плохо работает? Погоняйте пакеты на канальном уровне. Может быть он банально данные теряет. Настройки стека тоже имеют значение. Я, правда, использовал lwIp. Подобных проблем не наблюдал. Что вас сподвигло на F401 использовать uIP, а не lwIP? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 3 minutes ago, haker_fox said: А может быть физика плохо работает? Погоняйте пакеты на канальном уровне. Может быть он банально данные теряет. Настройки стека тоже имеют значение. Я, правда, использовал lwIp. Подобных проблем не наблюдал. Что вас сподвигло на F401 использовать uIP, а не lwIP? Физика, думаю, нормально работает, так как тот же веб сервер с примера - работает. Но там очень простой сайт. uIP взял чтоб сэкономить RAM память )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба /** * The maximum number of simultaneously open TCP connections. * * Since the TCP connections are statically allocated, turning this * configuration knob down results in less RAM used. Each TCP * connection requires approximatly 30 bytes of memory. * * \hideinitializer */ #ifndef UIP_CONF_MAX_CONNECTIONS #define UIP_CONNS 10 #else /* UIP_CONF_MAX_CONNECTIONS */ #define UIP_CONNS UIP_CONF_MAX_CONNECTIONS #endif /* UIP_CONF_MAX_CONNECTIONS */ оно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 56 минут назад, Kalyan сказал: Буду благодарен если поделитесь своим опытом Поставить Wireshark и посмотреть что он выдаёт. Так же полезно сделать сниффер пакетов/состояний сокетов/HTTP/etc. на устройстве. 9 минут назад, esaulenka сказал: оно? И как работа web-сервера может зависеть от макс. числа разрешённых одновременно открытых TCP-сокетов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 4 hours ago, jcxz said: И как работа web-сервера может зависеть от макс. числа разрешённых одновременно открытых TCP-сокетов? Во-первых, там написано не "socket", а "connection". А во-вторых, браузер может одновременно скачивать несколько картинок, чтобы показать их пользователю побыстрее. И это именно одновременные соединения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 13 минут назад, esaulenka сказал: Во-первых, там написано не "socket", а "connection". Во-первых: TCP-сокет == TCP-connection. Цитата А во-вторых, браузер может одновременно скачивать несколько картинок, чтобы показать их пользователю побыстрее. И это именно одновременные соединения. Во-вторых: у ТС-а проблемы не со скоростью, а с недозагрузкой контента страниц. Такого не должно быть даже при всего одном доступном TCP-соединении. Не при Connection=close не при Connection=keep-alive. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kalyan 0 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба #define UIP_CONNS 15 Этого количества хватает на все соединения которые идут от браузера. Посмотрел загрузку самого жирного файла через Wireshark. Идут ре-трасмиты со стороны железки. Но документ оно загружает. На сколько это нормально? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 17 минут назад, Kalyan сказал: Посмотрел загрузку самого жирного файла через Wireshark. Идут ре-трасмиты со стороны железки. На сколько это нормально? Почитайте про работу TCP-стека. Чтобы его запустить, недостаточно просто передрать пример из инета. Проблемы у вас уже на уровне TCP, ещё до HTTP. В 7-м кадре уже начинаются. Комп вашей железке присылает 678 байт, а она подтверждает только 624 из них. Поэтому комп потом начинает делать повтор в 10-м кадре. Также непонятно по какой причине ваша железка в 9-м кадре начинает повтор 7-го кадра. Без запроса со стороны компа. Зачем? Такое ощущение, что между 7-м и 9-м кадрами ваша железка обнаруживает таймаут связи и поэтому начинает перезапрос. Хотя между ними всего 10 мсек разницы. PS: Вы вроде писали что проблемы у вас с недозагрузкой контента web-страниц. А на самом деле у вас проблемы уже с работой TCP. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 1 hour ago, jcxz said: Во-первых: TCP-сокет == TCP-connection Прошу прощения. Читаю "сокет", пишу "сокет", думаю "порт". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 27 марта, 2019 Опубликовано 27 марта, 2019 · Жалоба 36 минут назад, esaulenka сказал: Прошу прощения. Читаю "сокет", пишу "сокет", думаю "порт". Порт обычно для web один открывают. Может можно и больше, но не знаю зачем? Вобщем там у ТСа явно на уровне TCP какие-то проблемы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 28 марта, 2019 Опубликовано 28 марта, 2019 · Жалоба 9 hours ago, jcxz said: Вобщем там у ТСа явно на уровне TCP какие-то проблемы. Интересно, а этот uIP вообще развивается... по-мне для такого камня, как у автора, нужно lwIP взять. Он точно рабочий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 5 28 марта, 2019 Опубликовано 28 марта, 2019 · Жалоба 5 hours ago, haker_fox said: Интересно, а этот uIP вообще развивается... Рекомендую сначала задавать подобные вопросы в гугл. Очень много интересного вылезает. https://github.com/contiki-os/contiki/tree/master/core/net/ip Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 28 марта, 2019 Опубликовано 28 марта, 2019 · Жалоба 8 minutes ago, esaulenka said: Рекомендую сначала задавать подобные вопросы в гугл. Очень много интересного вылезает. Ну это был вопрос риторический. Смысла не ощущаю сейчас в uIP, PetitFs... всё это писалось во времена AVR. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться