The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"TCP/IP в режиме реального времени"
Отправлено Gor, 27-Июл-07 23:35 
>Все верно, пакеты могут теряться, скорость выше (отсутствие ожидания подтверждения).
>Обработка потери пакетов в этом случае на стороне приложения.
>
>Как я понял передача идет на максимуме возможностей?

Да, я пробовал на максимуме,- в этом случае в TCP/IP пересылаются практически всегда множество пакетов за один раз.Возможное решение,- встроенная пауза в 5мс, тогда всё работает чётко, но не так быстро.
В UDP/IP теряются до 25% сообщений на максимуме. При паузе в 0,5мс,- все пакеты доходят без потерь.
При этом я также попробовал CAN-бус,- он при задержке в 0,5 мс оказывается быстрее тисипи и удп с такими же задержками, при том что работает на 250Кбит/с!!!

>Хаб штука железная однако одно дело ваш ноут который тупо только слушает
>что в проводах, другое дело приемная сторона которая может и посылать
>пакеты в тоже время, т.е. если не фул-дуплекс (да и с
>ним может), то хаб в ноут может отдавать весь поток, а
>в приемную сторону не весь (т.к. коллизии мешают).

Это идея!!! Спасибо большое,- обязательно проверю работу программы без "Ваершарка". При УДП вижу в нём при этом исключительно удп сообщения от одного к другому, то биш параллельно ничего не происходит. В ТСП конечно тратиться время на подтверждение, но так как отсылающая сторона ничего не посылает, пока не получит ответа,- коллизий должно бы не происходить. Единственное слабое место,- "Ваершарк". Интересно, как он работает? Принимает поток и направлаяет его дальше?  

>Дальше, сетевая карта
>может работать на приемной стороне чуть медленнее чем положено, например что-то
>фигово с сопряжением с системной платой (наука о контактах) как результат
>потери на приемной стороне.

Сетевой карты как таковой нет,- всё происходит в процессоре(MPC 5200B). Проверить скорость,- хм, даже не знаю как,- приходиться полагаться на документацию, а в реализации конечно могут быть глюки...

>[оверквотинг удален]
>
>выш вы приводили кусок кода сервера где:
>      if (length != 0)
>            
>  {
>            
>printf("%s.%ld\t\t%s",puffer_our_time,tv.tv_usec,puffer_find_number_time);
>          }
>Это в файл перенаправлено или на консоль? (консоль имеет свои задержки).
>stdout - строчная буфферизация. может быть причиной.

Я перенаправляю с консоли в файл( ./server > abc.txt), - чтобы не тратилось время на вывод сообщений и отправку их на консоль, которая находится на ноуте(у машин нет ни экранов, ни клавиатуры)-дополнительное время и коллизионы. Кроме того могу затем внимательно весь файл изучить. Пробовал раньше и с (fprintf),- там примерно те же проблемы.

>Как выше писал может причина с fsync. Можно попробовать проверить так -
>создать мега-буфер (так чтобы туда минут 5 лога поместилось) в памяти
>и писать не в файл (fprintf), а в этот буфер (sprintf),
>когда буфер забьется сбросить его в файл и потом проанализировать, а
>были ли задержки в таком случае.

Посмотрел сейчас ман к fsync,- получается с его помощью я могу писать пакеты без буфферизации в printf i fprintf(хотя есть ли она в fprintf не знаю точно) сразу в память, так? Я пока не понял, как мне это сделать, надо будет в понедельник посмотреть на работе повнимательнее. Также попробую с мега-буфером,- спасибо большое за идею!

>По поводу PUSH - есть опция включающая этот режим (setsockopt(TCP_NODELAY) - отключить
>алгоритм Нэгла), без нее флаг не ставиться если не системная настройка
>(может быть какой-то тюнинг сделан в той же embedded linux?).

PUSH в тсп у меня обычно включён по умолчанию. Видимо тюнинг. Хотя я пробовал "выключать" режим Нэгла, - тогда пакеты отсылались сразу по мере поступления, но после десятого(в среднем) отсылка приостанавливалась и шло ожидание ответа или возможно просто ответ поспевал к этому времени. В момент приёма и обработки подтверждения скапливалась очередная порция пакетов,- которые и отсылались "кучкой" в следующем сообщении(обозначил так евернет-пакет, так как пакет под свой стринг определил ранее).

>пользователь обычный или рут? это к вопросу приоритета, а мало ли... :)
>это я уже фантазирую.

на машинах рут, других работающих приложений нет.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру