Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: EMAC AT91SAM7X
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
zpv
Привет Всем. Помогите пожалуйста.
Я пользую плату AT91SAM7X-EK на предмет работы с протоколом TCP/IP. Плата работает как сервер, TCP протокол в режиме простоя. Проблема в том, что после установления соединения, при передаче данных с компьютера на плату они пролетают быстро. При передаче с платы на компьютер - квитанция подтверждения (ACK) приходит не сразу (примерно через 200 мсек), что понятно, не позволяет быстро передавать несколько пакетов один за одним. Ни каких ошибок и ретрансляций не происходит. По UDP работает все ОК. Клиента со стороны компьютера писал в разных средах - теже яйца.
Кто сталкивался помогите.
Заранее благодарен, Павел.
aaarrr
А почему это она должна приходить сразу? Продолжайте посылать данные пока окно не кончилось.

P.S. ИМХО, к EMAC SAM7X тема отношения не имеет.
Rst7
Цитата
При передаче с платы на компьютер - квитанция подтверждения (ACK) приходит не сразу (примерно через 200 мсек)


Это нормальное поведение TCP/IP стека на большом брате.
Ключевое слово для поиска описания сей ситуации - Delayed ACK.

Методов борьбы - два:
1. Передача данных далее, не дожидаясь подтверждения. Тогда будет подтвержден каждый второй пакет, но с ACK, соответствующим общему количеству переданых данных.
2. Передача после пакета данных пакета без данных с SEQ меньше текущего, например на 1. Это вызовет мгновенный ответ требуемым ACK'ом.
zpv
Извиняюсь, про ЕМАС и AT91SAM7X-EK это я просто к слову. А по поводу окна - я реализовал протокол не в режиме скользящего окна и в режиме простоя. И вся логика протокола и таймера у меня построены на ожидании квитанции. Да, оказалось не так все просто.


Огромное спасибо. Про такое поведение стека TCP/IP услышал первый раз. Буду пробовать победить (наверное 2 способом, т.к. я работаю не в режиме окна, а в режиме простоя).
Rst7
Цитата
Извиняюсь, про ЕМАС и AT91SAM7X-EK это я просто к слову.


Тогда, может быть модераторы перенесут тему в более подобающее место?

Цитата
Буду пробовать победить (наверное 2 способом, т.к. я работаю не в режиме окна, а в режиме простоя)


Я бы рекомендовал асилить все-же первый способ - больше скорость.
_dem
Также посмотрите в сторону Nagle algorithm, полезно выключить на Windows сокете.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.