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

 
 
> EMAC AT91SAM7X, TCP/IP
zpv
сообщение Mar 31 2008, 10:32
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 4-11-05
Пользователь №: 10 471



Привет Всем. Помогите пожалуйста.
Я пользую плату AT91SAM7X-EK на предмет работы с протоколом TCP/IP. Плата работает как сервер, TCP протокол в режиме простоя. Проблема в том, что после установления соединения, при передаче данных с компьютера на плату они пролетают быстро. При передаче с платы на компьютер - квитанция подтверждения (ACK) приходит не сразу (примерно через 200 мсек), что понятно, не позволяет быстро передавать несколько пакетов один за одним. Ни каких ошибок и ретрансляций не происходит. По UDP работает все ОК. Клиента со стороны компьютера писал в разных средах - теже яйца.
Кто сталкивался помогите.
Заранее благодарен, Павел.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
aaarrr
сообщение Mar 31 2008, 10:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



А почему это она должна приходить сразу? Продолжайте посылать данные пока окно не кончилось.

P.S. ИМХО, к EMAC SAM7X тема отношения не имеет.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 31 2008, 10:45
Сообщение #3


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
При передаче с платы на компьютер - квитанция подтверждения (ACK) приходит не сразу (примерно через 200 мсек)


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

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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zpv
сообщение Mar 31 2008, 11:48
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 4-11-05
Пользователь №: 10 471



Извиняюсь, про ЕМАС и AT91SAM7X-EK это я просто к слову. А по поводу окна - я реализовал протокол не в режиме скользящего окна и в режиме простоя. И вся логика протокола и таймера у меня построены на ожидании квитанции. Да, оказалось не так все просто.


Огромное спасибо. Про такое поведение стека TCP/IP услышал первый раз. Буду пробовать победить (наверное 2 способом, т.к. я работаю не в режиме окна, а в режиме простоя).
Go to the top of the page
 
+Quote Post
Rst7
сообщение Mar 31 2008, 12:21
Сообщение #5


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Извиняюсь, про ЕМАС и AT91SAM7X-EK это я просто к слову.


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

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


Я бы рекомендовал асилить все-же первый способ - больше скорость.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
_dem
сообщение Apr 1 2008, 05:57
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970



Также посмотрите в сторону Nagle algorithm, полезно выключить на Windows сокете.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:45
Рейтинг@Mail.ru


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