реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проблема переполнения буфера приёма у LPC1786 ..., Правильно ли отключение обработки ARP запросов?
Porty
сообщение Apr 20 2011, 06:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 246
Регистрация: 28-05-08
Из: г. Ижевск
Пользователь №: 37 893



Добрый день.
Разрабатываем устройство собирающее данные в режиме реального времени непрерывно и выдающее по TCP в локалку поток (хитрый Ethernet - ADC 500kHz).
Для этого используем LPC1786, поначалу нам казалось что у него достаточно памяти для буферов ethernet, окна TCP, и фифо буфера данных АЦП.
Но возникла проблема что когда данное устройство работает в крупных сетях и на него начинают приходить слишком много широковещательных пакетов то буфер приёма переполняется и часть пакетов теряется что приводит к сбоям по TCP - входящий поток управления подвисает на 200-500мс пока не произойдет перепосылка потерянного блока, что критично. После разбора логов было выяснено что большинство широковещательных пакетов это ARP запросы на определение IP адреса. Т.к. устройство работает только в режиме одного соединения с одним сервером - то возникла идея
игнорировать все приходящие ARP пакеты и любые другие не IP пакеты и обрабатывать только IP если соединение уже установлено и так делать до дисконекта.

Но не понятно - будет ли нормально работать такой режим когда при установленном соединении игнорируются все не IP пакеты?
И как ещё можно бороться с переполнением буфера приёма для устройств с малым объёмом ОЗУ (64кбайта)?
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение Apr 21 2011, 05:44
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



А вам широковещательные пакеты вообще нужны? Поставьте в EMAC фильтр на multicast и broadcast.
С переполнением буфера можно бороться, увеличивая этот буфер. sm.gif Увеличьте количество буферов в DMA на приём. Если памяти не хватает, то уменьшите их размер, но увеличьте количество.
Go to the top of the page
 
+Quote Post
Porty
сообщение Apr 21 2011, 07:17
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 246
Регистрация: 28-05-08
Из: г. Ижевск
Пользователь №: 37 893



Цитата(andrewlekar @ Apr 21 2011, 09:44) *
А вам широковещательные пакеты вообще нужны? Поставьте в EMAC фильтр на multicast и broadcast.
С переполнением буфера можно бороться, увеличивая этот буфер. sm.gif Увеличьте количество буферов в DMA на приём. Если памяти не хватает, то уменьшите их размер, но увеличьте количество.

Уже увеличен, пропускать широковещательные пакеты тоже умею,
мне нужно знать - повлияет ли это на логику работы TCP стека, не будет ли ошибки в таком случае, например в случаях обрыва соединения или зависания и тд?
Интересно то разрешена ли такая уловка согласно стандартам ARP, IP, TCP?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 22:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01359 секунд с 7
ELECTRONIX ©2004-2016