Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: приходят укороченные IP пакеты, а иногда и не полные
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
zuy
Имеется девайс с USB хостом, который через USB EDGE модем выходит в интернет и принимает данные.
Софт организован на связке FreeRTOS + LwIP.

Для упрощения отладки весь пакет софта, кроме драйвера USB хоста и модема был портирован на PC.
На PC софт работает, с модемом общается через COM порт и все ОК.
В реальном девайсе наблюдается следующая картина:
1. Если на PC пакеты шли в основном полной длины около 1062 байт, то на девайсе эти же пакеты принимаются с длиной 511 байт.
причем изменение длины стоит в самом загоровке IP внутри пакета. Т.е. я от сервера уже получаю более мелкие пакеты.
2. Некоторые пакеты приходят не завершенными. Я не вижу в конце пакета завершающего 0x7E. при этом следующая порция данных из модема присылает новый пакет.
т.е. не похоже, что я его не до конца вычитал.

Софт на PC и в девайсе идентичный, файлы прямо копируются из одного в другой.

Что может заставить сервер присылать укороченные пакеты?
Как это происходит?

И еще вопрос. А что происходит при аппаратном управлении потоком если провайдер передает данные, но клиент модема не может принять и сбрасывает CTS ?
модем и провайдер сами договорятся, что надо подождать?
Master of Nature
Цитата(zuy @ Dec 7 2009, 18:16) *
Имеется девайс с USB хостом, который через USB EDGE модем выходит в интернет и принимает данные.
Софт организован на связке FreeRTOS + LwIP.

Для упрощения отладки весь пакет софта, кроме драйвера USB хоста и модема был портирован на PC.
На PC софт работает, с модемом общается через COM порт и все ОК.
В реальном девайсе наблюдается следующая картина:
1. Если на PC пакеты шли в основном полной длины около 1062 байт, то на девайсе эти же пакеты принимаются с длиной 511 байт.
причем изменение длины стоит в самом загоровке IP внутри пакета. Т.е. я от сервера уже получаю более мелкие пакеты.
2. Некоторые пакеты приходят не завершенными. Я не вижу в конце пакета завершающего 0x7E. при этом следующая порция данных из модема присылает новый пакет.
т.е. не похоже, что я его не до конца вычитал.

Софт на PC и в девайсе идентичный, файлы прямо копируются из одного в другой.

Что может заставить сервер присылать укороченные пакеты?
Как это происходит?

Возможно проблема в том, что девайс с хостом просто не успевает справляться с потоком принимаемых данных и происходит переполнение входного буфера. Но т.к. данный считаются принятыми с точки зрения протокола, то высылается следующий пакет.
Уменьшение размеров пакетов, видимо, связано с той же причиной. Серверу сообщается, что вы не можете обработать пакеты длиной больше 511 байт.
Aner
Уменьшить длину пакета можете?
zuy
Цитата(Master of Nature @ Dec 8 2009, 01:30) *
Возможно проблема в том, что девайс с хостом просто не успевает справляться с потоком принимаемых данных и происходит переполнение входного буфера. Но т.к. данный считаются принятыми с точки зрения протокола, то высылается следующий пакет.
Уменьшение размеров пакетов, видимо, связано с той же причиной. Серверу сообщается, что вы не можете обработать пакеты длиной больше 511 байт.


Вот тут и вопрос, каким образом серверу сообщается, что надо пакеты по короче слать?
Возможно ли, что сам модем с провайдером об этом договорились и провайдер фрагментирует пакеты?

Я не пользуюсь никакими встроеными стеками TCP/IP в модеме, все реализуется програмно от PPP до сокетов.
MTU в настройках 1500. Пробовал уменьшать размер MTU до 500, но стало только хуже. На длинных пакетах приходят только их хвосты по примерно 60 байт.

Сейчас мне главное понять, из-за чего это происходит и в каком месте капать.
Больше всего подозрений на драйвер виртуального COM порта для USB модема в девайсе. Сам модем хоть из него наружу выведен УСБ, внутри это модем с UART интерфейсом + переходник UART->USB (CP2104). Rx FIFO у этого переходника 576 байт. Очень похоже, что где-то там косяк кроется.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.