_nemo_ 0 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба Уже всю голову сломал. Проблема следующая - с ез-кита шлю на ПЭВМ UDP-пакеты (в каждом пакете 642 байта данных). Первые 13-14 пакетов принимаются нормально, затем начинают приниматься через 4-5. Передача идет непрерывно пакет за пакетом. Если сделать задержку между пакетами не менее 2 мс, то пакеты принимаются все. Сетка 100Мбит. Соединение точка-точка. В чем дело, кто знает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба Какая-нибудь дыра в драйвере. MAC - Lan91c111? Вы сниффером смотрели пакеты отправляются или нет вообще, отправляются битые, что-то еще? Сниффер может быть любой, пусть будет Ethereal. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_4afc_ 25 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба Подключите кит напрямую к ПЭВМ, чтоб колизий не было от других машин. Поставте на машину нормальную ОС (QNX или другой UNIX). Лет 6 назад мы кидали по ~1500 UDP пакетов в секунду (по 1.5кб), винда (XPsp2) успевала хавать, но виндовые програмисты считают что максимальный размер пакета 64кб и принимают как-то буферами по 10-64кб, а не пакетами. Это проблемы API, ибо в карте должен быть буфер на 16384 пакетов. Мы передавали кадры 4096х1024 4 цвета за ~3 секунды, и как я понял на винде сие собиралось более-мение , не с первого кадра конечно (на QNX работало стабильно даже в сети из более 100 машин). Кстати если в сети были машины с виндой98 и 1С, то они жутко тормозили ибо они мрут как мухи от частых UDP пакетов вне зависимости от номера порта. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nemo_ 0 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба Какая-нибудь дыра в драйвере. MAC - Lan91c111? Вы сниффером смотрели пакеты отправляются или нет вообще, отправляются битые, что-то еще? Сниффер может быть любой, пусть будет Ethereal. Дыра в драйвере WinXP? Cмотрел и снифером. Вижу то же самое, что показывает принимающая прога. Подключите кит напрямую к ПЭВМ, чтоб колизий не было от других машин. Поставте на машину нормальную ОС (QNX или другой UNIX). Лет 6 назад мы кидали по ~1500 UDP пакетов в секунду (по 1.5кб), винда (XPsp2) успевала хавать, но виндовые програмисты считают что максимальный размер пакета 64кб и принимают как-то буферами по 10-64кб, а не пакетами. Это проблемы API, ибо в карте должен быть буфер на 16384 пакетов. Мы передавали кадры 4096х1024 4 цвета за ~3 секунды, и как я понял на винде сие собиралось более-мение , не с первого кадра конечно (на QNX работало стабильно даже в сети из более 100 машин). Кстати если в сети были машины с виндой98 и 1С, то они жутко тормозили ибо они мрут как мухи от частых UDP пакетов вне зависимости от номера порта. Кит подключен напрямую. Винда ХР. Смотрел снифером процесс копирования файлов с машины на машину. Пакеты нормально уходят, практически без задержки, правда через ТСР. Может блокируется слишком большой поток (по мнению ХР или сетевой карты) по UDP? ЗЫ. Хотелось бы чтобы все работало под ХР. :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jojo 0 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба >Дыра в драйвере WinXP? Нет. Какая-нибудь дыра в драйвере MAC на плате с Blackfin, что бывает. Хорошо, предположим, что все пакеты отправляются и доходят. У нас все аналогичные приложения сделаны так: в потоке, по событиям читаете данные из сокета. Размер буфера сокетов установлен setsockopt в несколько мегабайт. Ничего не теряется на скоростях от 8-10 мегабайт и выше в XP и др. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 7 мая, 2008 Опубликовано 7 мая, 2008 · Жалоба Дыра в драйвере WinXP? Cмотрел и снифером. Вижу то же самое, что показывает принимающая прога. Стоп! Снифер смотрит что реально делается на интерфейсе(переводит карточку, а точнее драйвер карточки, в режим, когда она принимает всё и вся), программа видит данные уже на более высоком уровне, после прохождения их по стеку протоколов. Я бы сделал вывод, что винда может отбрасывать часто идущие пакеты только уже на более высоком уровне, до того она их не классифицирует(UDP не UDP, часто не часто...). Следовательно пакеты не доходят просто и скорее всего проблема с устройством их генерирующим. Для чистоты эксперимента я бы использовал Linux с tcpdump. Также может быть другую карточку для перестраховки.... Как насчёт генерации пакетов с другой машины? Опять таки в Linux есть для этого удобный механизм прямо в ядре ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tolik1 0 8 мая, 2008 Опубликовано 8 мая, 2008 · Жалоба Уже всю голову сломал. Проблема следующая - с ез-кита шлю на ПЭВМ UDP-пакеты (в каждом пакете 642 байта данных). Первые 13-14 пакетов принимаются нормально, затем начинают приниматься через 4-5. Передача идет непрерывно пакет за пакетом. Если сделать задержку между пакетами не менее 2 мс, то пакеты принимаются все. Сетка 100Мбит. Соединение точка-точка. В чем дело, кто знает? А не можете ли Вы их терять при передаче? То есть после загрузки в сокет пакета надо прочитать флаг готовности передатчика. И оцените какую Вы требуете от канала скорость передачи. Я на 100 мб сетке получал до 80 мб по пользовательским данным. Хотя в Вашем эксперименте основная сложность обеспечить прием. Зачистите машину(голая W-XP, без какого либо ненужного софта WORD, EXEL ит.д.) установите программму приема и оценки. Не пытайтесь записывать пакеты на диск. И да прибудет с Вами великая сила Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nemo_ 0 8 мая, 2008 Опубликовано 8 мая, 2008 · Жалоба Стоп! Снифер смотрит что реально делается на интерфейсе(переводит карточку, а точнее драйвер карточки, в режим, когда она принимает всё и вся), программа видит данные уже на более высоком уровне, после прохождения их по стеку протоколов. Вот и я не пойму (то ли лыжи не едут, то ли ... одно из двух :07: ) Может снифер такой (пробовал два), но видят они то же, что и прога. То есть направляю ответ на другой порт (не тот, который открыт в проге на прием) и снифер ничего не показывает! Может я его не донастроил? Ткните - какой лучше использовать... У меня такой (на картинке) Следовательно пакеты не доходят просто и скорее всего проблема с устройством их генерирующим. Для чистоты эксперимента я бы использовал Linux с tcpdump. Также может быть другую карточку для перестраховки.... Как насчёт генерации пакетов с другой машины? Опять таки в Linux есть для этого удобный механизм прямо в ядре ) Пакеты шлются 100%. Программер, который валяет под виндой написал передающую прогу (вместо езкита) - эффект тот же. Линукс не предлагать :crying: - писать под ним некому Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 8 мая, 2008 Опубликовано 8 мая, 2008 · Жалоба Да под Линукс можно ничего и не писать - его использование даст возможность точно определить, проблема железная или виндовая. Загрузиться с LiveCD и запустить tcpdump. На другой машине принимать пробывали? Что-то странно всё это. Снифер я использовал WinDump www.winpcap.org/windump/ это аналог tcpdump из Линукс. Штука проверенная - работает хорошо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nemo_ 0 8 мая, 2008 Опубликовано 8 мая, 2008 (изменено) · Жалоба Да под Линукс можно ничего и не писать - его использование даст возможность точно определить, проблема железная или виндовая. Загрузиться с LiveCD и запустить tcpdump. Для меня это темный лес :crying: Снифер я использовал WinDump www.winpcap.org/windump/ это аналог tcpdump из Линукс. Штука проверенная - работает хорошо. Посмотрю. Спасибо! Запустил, увидел вот это :07: Microsoft Windows XP [Версия 5.1.2600] (С) Корпорация Майкрософт, 1985-2001. C:\Documents and Settings\k>d:\22222222\windump d:\22222222\windump: listening on \Device\NPF_GenericDialupAdapter Ничего не понял. Пойду напьюсь. Всех с наступающим!!! :beer: Изменено 8 мая, 2008 пользователем _nemo_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 8 мая, 2008 Опубликовано 8 мая, 2008 · Жалоба для начала: windump -h видим, что -i задает номер интерфейса, который слушать. -i 1 соответствует NPF_GenericDialupAdapter и задан поумолчанию, остальные - реальные адаптеры в системе. К примеру я, дал -i 2 I:\!soft\_╒ръ\WinDump.exe: listening on \Device\NPF_{3BDC2E26-5856-4E27-9658-D7E6B41D2E81} то, что в {} можно найти в реестре и точно узнать какой это адаптер, но как правило это не требуется и сразу и так всё видно. Можно и -i 3 и -i 4, если карточек много, как у меня - вот тогда действительно можно и в реестр глянуть: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vvs157 0 9 мая, 2008 Опубликовано 9 мая, 2008 · Жалоба Для меня это темный лес :crying:А Вы попробуйте, может понравится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nemo_ 0 12 мая, 2008 Опубликовано 12 мая, 2008 · Жалоба для начала: windump -h видим, что -i задает номер интерфейса, который слушать. -i 1 соответствует NPF_GenericDialupAdapter и задан поумолчанию, остальные - реальные адаптеры в системе. К примеру я, дал -i 2 I:\!soft\_╒ръ\WinDump.exe: listening on \Device\NPF_{3BDC2E26-5856-4E27-9658-D7E6B41D2E81} то, что в {} можно найти в реестре и точно узнать какой это адаптер, но как правило это не требуется и сразу и так всё видно. Можно и -i 3 и -i 4, если карточек много, как у меня - вот тогда действительно можно и в реестр глянуть: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards Фу, наконец-то запустил :a14: Сниффер показывает, что пакеты приходят . Но прога упорно видит только первые 13, остальные принимаются через 5. Куда копать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
fontp 0 12 мая, 2008 Опубликовано 12 мая, 2008 · Жалоба Фу, наконец-то запустил :a14: Сниффер показывает, что пакеты приходят . Но прога упорно видит только первые 13, остальные принимаются через 5. Куда копать? Под программера, который ваяет под Виндой, очевидно :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_nemo_ 0 12 мая, 2008 Опубликовано 12 мая, 2008 · Жалоба Под программера, который ваяет под Виндой, очевидно :-) Да это понятно Но от этого не легче Может в реестре чего поправить? ПАМАГИТЯ! :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться