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

 
 
> Склеиваются UDP пакеты
Daniil
сообщение Nov 21 2016, 04:42
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Всем добрый день.

Имеется SIM800C, который раз в 5сек отсылает UDP пакет на сервер, на что сервер ему немедленно отвечает.
Большую часть времени работает стабильно, но иногда наблюдается такая картина:
-> модем отправил пакет
<- пришел ответ
-> модем отправил пакет
<- пришел ответ
-> модем отправил пакет
-> модем отправил пакет
-> модем отправил пакет
<- пришло сразу 3 пакета в одном
smile3046.gif
Сервер при этом пишет, что честно отправил ответ немедленно.
По потреблению модема видно, что все эти 15сек. данные действительно не приходят.

Такие дикие задержки на сети оператора? Или что-то еще?
Ладно бы задержки, но как разделять эти пакеты? Модем не дает никакой информации о том, где один пакет закончился и начался другой, выдает данные одним потоком. Может есть способ от модема добиться больше информации?
При этом непонятно - то ли пакеты склеились на стороне оператора (чего быть не должно), то ли пришли с таким коротким интервалом, что модем их выдал одним пакетом.
Go to the top of the page
 
+Quote Post
6 страниц V   1 2 3 > »   
Start new topic
Ответов (1 - 81)
Alechek
сообщение Nov 21 2016, 06:26
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Оператор, конечно, может чудить, но в Вашем случае пока много неизвестных:
1. Что за сервер, на чем писан, как обрабатываются соединения.
2. 》 <- пришло сразу 3 пакета в одном - куда пришло 3-в-1? на сервер от модема? на модем от сервера?
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 21 2016, 06:39
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Daniil @ Nov 21 2016, 07:42) *
. . . .
Имеется SIM800C, который раз в 5сек отсылает UDP пакет на сервер, на что сервер ему немедленно отвечает.
. . . .
При этом непонятно - то ли пакеты склеились на стороне оператора (чего быть не должно), то ли пришли с таким коротким интервалом, что модем их выдал одним пакетом.


Как закачиваются данные для передачи в SIM800C (через какой интерфейс) ?
Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 21 2016, 06:39
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



1. Сервер под nodejs, но роли особой это не играет, т.к. я вижу что ответ уходит сразу (wireshark).
2. Имеется ввиду что пришел ответ от сервера. Т.е. ушло на сервер три пакета, а пришел один пакет(по крайней мере модем мне его отдает одним пакетом) с 3-мя ответами.

С модемом общаюсь через com-порт с аппаратным управлением потоком.
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 21 2016, 07:15
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Daniil @ Nov 21 2016, 09:39) *
. . . .
С модемом общаюсь через com-порт с аппаратным управлением потоком.

А каким образом пакет запроса "клиента"/Tx (то что закачивается в SIM через COM-порт) пакуется в UDP ?
Вообще, при передаче по сети возможна "переукладка" пакетов во фреймы с разным форматом, в том числе размером данных.
Если Вы работаете не в блочном режиме, а "потоком", то "слипание" это вполне закономерно.
Тк. формально тракт передачи для "потока" отработал нормально.
Надо также учитывать буферизацию на всех этапах.



Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 21 2016, 07:32
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



В UDP пакует сам модем. Отсылаю стандартно, по команде AT+CIPSEND. Пакеты маленькие, меньше 30 байт
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 21 2016, 07:32
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (k155la3 @ Nov 21 2016, 10:15) *
Если Вы работаете не в блочном режиме,

QUOTE
UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм)

QUOTE
Датаграмма (англ. datagram, дейтаграмма) — блок информации, передаваемый протоколом без предварительного установления соединения и создания виртуального канала



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 21 2016, 08:12
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Скользкое место - это передача/прием по компорту в/из SIM.

1. Почему на модем передается 2 и 3 запрос, хотя на 1-ый запрос не пришел ответ.
2. Модем получил из сети ответы на 1,2,3 запросы (отдельно, в виде блоков-датаграмм UDP в контексте замечаний Сергей Борщ )
Клиент не успел считать первый ответ, и они (все 3 ответа) стали в "очередь" в SIM.
Далее - клиент начал читать данные из SIM. В очереди - 3 ответа. Как их считать "раздельно" через USART ?
Сейчас получается, что эти данные считываются из очереди "потоком", без выделения по пакетам UDP.

Надо курить настройки SIM и (возможно) работу с очередями, если таковые имеются.



Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 21 2016, 11:17
Сообщение #9


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Daniil @ Nov 21 2016, 06:42) *
Имеется SIM800C, который раз в 5сек отсылает UDP пакет на сервер, на что сервер ему немедленно отвечает.
Большую часть времени работает стабильно, но иногда наблюдается такая картина:
...

<- пришло сразу 3 пакета в одном

Сервер при этом пишет, что честно отправил ответ немедленно.
По потреблению модема видно, что все эти 15сек. данные действительно не приходят.

Такие дикие задержки на сети оператора? Или что-то еще?
Ладно бы задержки, но как разделять эти пакеты? Модем не дает никакой информации о том, где один пакет закончился и начался другой, выдает данные одним потоком. Может есть способ от модема добиться больше информации?
При этом непонятно - то ли пакеты склеились на стороне оператора (чего быть не должно), то ли пришли с таким коротким интервалом, что модем их выдал одним пакетом.

Честно говоря, не понимаю, что вас удивляет? На мой взгляд нормальная ситуация.
Вы используете UDP, это протокол с негарантированной доставкой, как СОМ порт: послали данные, а дошли они или нет до адресата, протокол не гарантирует, это ваша забота.

У вас же каждые 5 сек отсылаются пакеты без ожидания ответа.
В расчете, что "ну уж за 5 секунд, они то дойдут". Откуда такая уверенность?
Я при отладке иногда наблюдал, что посланный по GPRS пакет доходил до сервера и обратно почти за 2 минуты sm.gif

По поводу склеивания нескольких ответов - тоже нормально.
Протоколы группы TCP/IP не гарантируют, что адресату придет точно такой-же пакет с заголовками и прочим обрамлением, как вы послали. Гарантируется только, что придут ваши ДАННЫЕ. А они справно приходят.

Так что или ожидайте ответов на каждый запрос перед посылкой нового, или разбирайте пачки ответов на приеме.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 21 2016, 12:23
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Baser @ Nov 21 2016, 14:17) *
Протоколы группы TCP/IP не гарантируют, что адресату придет точно такой-же пакет с заголовками и прочим обрамлением, как вы послали. Гарантируется только, что придут ваши ДАННЫЕ. А они справно приходят.
Вот этот вопрос мне тоже интересен. То, что TCP может резать/клеить как угодно - известно всем. Потому что это потоковый протокол. И сосок (socket) под него открывается с параметром SOCK_STREAM. Здесь же речь идет об UDP, который по определению протокол передачи датаграмм. И Сосок открывается с параметром SOCK_DGRAM. Насколько я себе понимаю - датаграммы резать/клеить в пути никто не имеет права. И построенные поверх UDP протоколы (DHCP, DNS, NTP) поразумевают наличие определенных данных в определенных местах датаграммы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 21 2016, 12:42
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Baser @ Nov 21 2016, 16:17) *
У вас же каждые 5 сек отсылаются пакеты без ожидания ответа.

А что, таймаут в 5 секунд недопустим? Ждать 5 минут ответа? rolleyes.gif





Цитата(Сергей Борщ @ Nov 21 2016, 17:23) *
Здесь же речь идет об UDP, который по определению протокол передачи датаграмм. И Сосок открывается с параметром SOCK_DGRAM. Насколько я себе понимаю - датаграммы резать/клеить в пути никто не имеет права.

Имеют право или не имеют... Или просто имеют..
Лично наблюдал, когда ОпСоС менял несколько байтов в UDP пакете. При этом длина пакета не поменялась, UDP CRC верное....
Так что, теоретически, и склеить может как 2 пальца изолентой...
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 21 2016, 12:46
Сообщение #12


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Сергей Борщ @ Nov 21 2016, 14:23) *
Насколько я себе понимаю - датаграммы резать/клеить в пути никто не имеет права. И построенные поверх UDP протоколы (DHCP, DNS, NTP) поразумевают наличие определенных данных в определенных местах датаграммы.

Наверное таки да, согласен, я писал применительно к ситуации топикстартера.
Он применяет встроенный стек модема, команду AT+CIPSEND, которая формирует UDP пакеты самостоятельно.
Она же их и принимает и вытаскивает из них данные. Поэтому на выходе модема пользователем уже получаются чистые данные БЕЗ обрамления пакета.

Для Daniil
Мы в таких случаях внутри своих данных применяем поле с номером пакета, при этом разбор пакетов не представляет сложности.

Цитата(Alechek @ Nov 21 2016, 14:42) *
А что, таймаут в 5 секунд недопустим? Ждать 5 минут ответа?

Зависит от задачи.
Если время есть, можно и подождать. А можно через некоторое время посылать повторы.
Но в этом случае разборщик ответов должен быть соответствующий.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 21 2016, 12:50
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Alechek @ Nov 21 2016, 15:42) *
Так что, теоретически, и склеить может как 2 пальца изолентой...
Теоретически туристы могут писать на памятник Свободы в Риге, что они иногда и делают, несмотря на то, что это запрещено. Вы можете привести ссылку на конкретный стандарт, где написано, что склеивать UDP-пакеты можно?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 21 2016, 12:53
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Сергей Борщ, вот и я о том же, что ОпСоСы подобны упомянутым туристам. Ничего святого у них нет! maniac.gif
Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 21 2016, 13:40
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(Baser @ Nov 21 2016, 18:17) *
Честно говоря, не понимаю, что вас удивляет? На мой взгляд нормальная ситуация.
Вы используете UDP, это протокол с негарантированной доставкой, как СОМ порт: послали данные, а дошли они или нет до адресата, протокол не гарантирует, это ваша забота.

У вас же каждые 5 сек отсылаются пакеты без ожидания ответа.
В расчете, что "ну уж за 5 секунд, они то дойдут". Откуда такая уверенность?
Я при отладке иногда наблюдал, что посланный по GPRS пакет доходил до сервера и обратно почти за 2 минуты sm.gif

Я знаю что такое UDP и что доставка не гарантирована, но никак не рассчитывал что пакеты будут где-то ходить ТАК долго. Как вообще в таких условиях работают протоколы базирующиеся на UDP? Те же DNS, SNMP, NTP? Например, DNS клиент под винду ждет ответа 10сек (DNS Client от MS).

2 Baser
Поле с номером пакета у меня уже есть, но оно не спасает, т.к. изначально задумывалось, что ответы могут приходить разной длины. Теперь придется еще и длину пакета добавлять...
Go to the top of the page
 
+Quote Post
k155la3
сообщение Nov 21 2016, 13:54
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848



Цитата(Daniil @ Nov 21 2016, 17:40) *
. . . . но никак не рассчитывал что пакеты будут где-то ходить ТАК долго.
. . . .


У оператора в приоритете номер один - обеспечение голосовой связи абонентов.
Затем - обеспечение работы ЕГО интернет-провайдера и любимых корпоративных клиентов (банки, платежные системы итп).
И только потом - все остальные смертные.
Так что сравнивать пользовательскую передачу данных и работу интернета даже у одного провайдера связи некорректно.

Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 21 2016, 18:19
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(k155la3 @ Nov 21 2016, 18:54) *
У оператора в приоритете номер один - обеспечение голосовой связи абонентов.

И даже у голоса 15 уровней приоритета wink.gif
Go to the top of the page
 
+Quote Post
dxp
сообщение Nov 22 2016, 04:43
Сообщение #18


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



А с чего взяли, что склеивается именно на уровне UDP? Какой следующий уровень на сервере, который получает данные от UDP уровня? Как он обрабатывает данные? Подозреваю, что именно он и "чудит". Т.е. если у него в очереди несколько запросов (данных - payload'ов UDP), то он их обрабатывает скопом и кидает в выходную очередь, а та весь блок данных обрамляет в UDP пакет и отправляет на IP уровень и т.д. Вот дивайс и ловит "склеенные" ответы.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 22 2016, 06:50
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(dxp @ Nov 22 2016, 11:43) *
А с чего взяли, что склеивается именно на уровне UDP? Какой следующий уровень на сервере, который получает данные от UDP уровня? Как он обрабатывает данные? Подозреваю, что именно он и "чудит". Т.е. если у него в очереди несколько запросов (данных - payload'ов UDP), то он их обрабатывает скопом и кидает в выходную очередь, а та весь блок данных обрамляет в UDP пакет и отправляет на IP уровень и т.д. Вот дивайс и ловит "склеенные" ответы.

Нет, проблема не в сервере. Я смотрел трафик от него Wiresharkом - уходят именно отдельные пакеты. Остается два предположения - или они склеиваются на стороне оператора (что мне кажется маловероятным, но смущает очень большая задержка), или приходят с минимальным интервалом на сам модем, а он уже их выдает одним потоком. Как добиться от модема раздельной передачи принятых UDP - выяснить не удалось, в документации этот момент как-то обошли (или я не там смотрел).
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 22 2016, 07:16
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



99% проблема в операторе. Кто, кстати? Не Мегафон ли случаем?
Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 22 2016, 07:21
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(Alechek @ Nov 22 2016, 14:16) *
99% проблема в операторе. Кто, кстати? Не Мегафон ли случаем?


МТС
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 22 2016, 08:16
Сообщение #22


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Так, как идея - порт какой? Может сменить на другой.... Кто его знает, как там спецоборудование работает (от наших спецорганов).
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 22 2016, 09:59
Сообщение #23


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Daniil @ Nov 22 2016, 08:50) *
Нет, проблема не в сервере. Я смотрел трафик от него Wiresharkом - уходят именно отдельные пакеты. Остается два предположения - или они склеиваются на стороне оператора (что мне кажется маловероятным, но смущает очень большая задержка), или приходят с минимальным интервалом на сам модем, а он уже их выдает одним потоком.

Я думаю последнее, ничего нигде не склеивается, приходят на модем пачкой и он выдирает сам данные и выдает одним блоком.

Цитата
Как добиться от модема раздельной передачи принятых UDP - выяснить не удалось, в документации этот момент как-то обошли (или я не там смотрел).

Можете еще раз посмотреть "SIM800 Series_TCPIP_Application Note",
но там нет возможности читать из модема данные "по-пакетно", только просто есть суммарная длина данных, которые на данный момент лежат в приемном буфере модема. Причем именно уже ЧИСТЫХ данных, без обрамления.

Я эту проблему как-то решил изначально, на уровне структуры своих пакетов (данных) и включения заголовков для приема.
Пока применяю только AT+CIPHEAD=1, т.к. у меня обычно единственное подключение.
И разобрать свои данные на отдельные пакеты после +IPD (data length):
у меня не сложно.

Go to the top of the page
 
+Quote Post
GeGeL
сообщение Nov 26 2016, 20:25
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Цитата(Alechek @ Nov 22 2016, 10:16) *
99% проблема в операторе. Кто, кстати? Не Мегафон ли случаем?


Категорически не согласен. В данном случае оператор, как и слой UDP, не при чем.
Лично приходилось сталкиваться с описанным явлением на других модулях, тестировать и разбираться с механизмами эффекта.

Сервер, как и положено, отсылает три раздельных UDP ответа. Интернет, как и положено, направляет их на гейт сотового оператора (тут добавлю, что теоретически очередность ответов может измениться, но это бывает чрезвычайно редко, и все же их будет три). Сотовый оператор буферизирует ответы (по отдельности) и доставляет их на модуль. Если доставка сразу не удалась (сеть перегружена, модуль временно в "мертвой" зоне), попытки повторяются до тех пор, пока пакеты не будут доставлены. Именно тут формируется задержка в ситуации топикастера. Пакеты все же доставляются на модуль, но один за другим без пауз (но раздельно!), попадают в протокол TCP-стека, где буферизируются опять же раздельно. Затем модуль формирует URC и выдает результат. Вот тут они и склеиваются - из-за кривой реализации самого верхнего уровня - АТ-команд.

Вообще, работа со стеком через UART - зло. Используйте openAT, и получите несколько последовательных вызовов callback, что даст возможность зачитать пакеты раздельно. Используете внешний МК - перенесите часть логики в openAT, создав свои команды.
Не поленитесь освоить openAT: все будет просто, логично и избавит от львиной доли геморроя, постоянно поднимаемого в этой ветке форума, оно того стоит.
Go to the top of the page
 
+Quote Post
Daniil
сообщение Nov 28 2016, 05:42
Сообщение #25


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(GeGeL @ Nov 27 2016, 03:25) *
Сервер, как и положено, отсылает три раздельных UDP ответа. Интернет, как и положено, направляет их на гейт сотового оператора (тут добавлю, что теоретически очередность ответов может измениться, но это бывает чрезвычайно редко, и все же их будет три). Сотовый оператор буферизирует ответы (по отдельности) и доставляет их на модуль. Если доставка сразу не удалась (сеть перегружена, модуль временно в "мертвой" зоне), попытки повторяются до тех пор, пока пакеты не будут доставлены. Именно тут формируется задержка в ситуации топикастера. Пакеты все же доставляются на модуль, но один за другим без пауз (но раздельно!), попадают в протокол TCP-стека, где буферизируются опять же раздельно. Затем модуль формирует URC и выдает результат. Вот тут они и склеиваются - из-за кривой реализации самого верхнего уровня - АТ-команд.

Спасибо за подробный ответ.
Да, я пришел к этому же выводу. Пакеты склеивает модем.
При отправке UDP пакетов с небольшим интервалом друг за другом ситуация со склеиванием на стороне модема воспроизводится почти 100%.
Пока решил проблему костылями. Уже была мысль перенести часть логики на модем, но такое решение мне не показалось удобным. Вариант со своим стеком нравится больше, правда в данном случае не подходит, т.к. ресурсы MCU его изначально не предусматривали.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 28 2016, 07:05
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



У ТС'а UDP. Попыток доставить такой стек не делает. Пропал Никодим да и заголовок с ним.
Рекомендую посмотреть и показать журнал (например HHD Free Serial Port Monitor) обмена с модемом во время инициализации [модема] и процессе обмена данными. У меня такого поведения не было ни на телитах,
ни на симкомах. Тоже использую командный режим и маленькие пакеты.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 29 2016, 12:13
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Так и не понял из-за чего сыр-бор развели. С UDP я никгда не работал, но в TCP симком так себя ведет со времен царя гороха.
Если идут серьезные задержки, то модем потом одновременно выдает все данные которые к нему пришли.

Господа программисты! Где написано что модем должен выдавать данные в виде пакетов? Ткните пожалуйста в строку документации.

Представьте что ваши данные сыпятся через проводок по UART непрерывным потоком и без пауз. Протокол работает? Значит и через модем будет работать. Не работает? В топку.
Делайте протоколы которые из потока символов однозначно восстанавливают свои пакеты и будет вам счастье.

пс. Модемы telit в этом плане ведут себя ровно так же как и симком. Да и в описании других я никогда не встречал никаких пакетов.
Так что задумайтесь "на чьей стороне проблема"
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 29 2016, 12:52
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(butthead2 @ Nov 29 2016, 17:13) *
Господа программисты! Где написано что модем должен выдавать данные в виде пакетов? Ткните пожалуйста в строку документации.

Не ели UDP?Так зачем пытаетесь обсуждать его вкус?

Смотрим:
Цитата(SIM800 Series_AT Command Manual_V1.09 )
8.2.15 AT+CIPHEAD Add an IP Head at the Beginning of a Package Received

На русский перевести?

Да, автор не указал, какое значение у этой переменной.

Кстати, представители Симком может пояснят суть команды
8.2.25 AT+CIPUDPMODE UDP Extended Mode
?
Может в этом дело?
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 29 2016, 13:10
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Alechek @ Nov 29 2016, 15:52) *
Не ели UDP?Так зачем пытаетесь обсуждать его вкус?

Даже комментировать не хочется. Внешние отличия TCP от UDP в стеке можно на пальцах одной руки перечислить.

Цитата(Alechek @ Nov 29 2016, 15:52) *
8.2.15 AT+CIPHEAD Add an IP Head at the Beginning of a Package Received
На русский перевести?

А прочитать что там пониже в описании написано слабо? Или только название команды читаем? Или может на русский перевести?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 29 2016, 14:04
Сообщение #30


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (butthead2 @ Nov 29 2016, 16:10) *
Внешние отличия TCP от UDP в стеке можно на пальцах одной руки перечислить.
Начинайте перечислять. Главное отличие уже было названо: TCP - потоковый протокол, UDP - протокол датаграмм (что следует из его названия). И именно это отличие запрещает модему дробить и склеивать UDP-пакеты (датаграммы), в отличие от TCP. "Я так думаю!".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 29 2016, 14:18
Сообщение #31


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Сергей Борщ, здесь обсуждается возможный косякособенность модема (коих у симкома хвататет). Так то понятно, склеивать-дробить не должен.
Цитата(butthead2 @ Nov 29 2016, 18:10) *
А прочитать что там пониже в описании написано слабо? Или только название команды читаем? Или может на русский перевести?

А что там пониже в описании? Можно и на английском и на китайском.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 29 2016, 15:43
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Сергей Борщ @ Nov 29 2016, 17:04) *
Начинайте перечислять. Главное отличие уже было названо: TCP - потоковый протокол, UDP - протокол датаграмм (что следует из его названия). И именно это отличие запрещает модему дробить и склеивать UDP-пакеты (датаграммы), в отличие от TCP. "Я так думаю!".

Прямо симпозиум писателей biggrin.gif Читаем медленно по словам - "внешние", "в стеке".

Цитата(Alechek @ Nov 29 2016, 17:18) *
А что там пониже в описании? Можно и на английском и на китайском.

Да пожалуйста:
Parameters
<mode> A numeric parameter which indicates whether an IP header is added to the received data or not.
0 Not add IP header
1 Add IP header, the format is:
1) For single IP connection (+CIPMUX=0)
+IPD,<data length>:
2) For multi IP connection (+CIPMUX=1)
+RECEIVE,<n>,<data length>:
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 30 2016, 07:46
Сообщение #33


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (butthead2 @ Nov 29 2016, 18:43) *
Прямо симпозиум писателей biggrin.gif Читаем медленно по словам - "внешние", "в стеке".
Разверните свою мысль, пожалуйста. Я не нашел в исходном вашем сообщении этих слов.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 30 2016, 10:43
Сообщение #34


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Сергей Борщ @ Nov 30 2016, 10:46) *
Разверните свою мысль, пожалуйста.

Разворачиваю. Внутренности и особенности как UDP так и TCP скрыты от пользователя внутри стека. То что видно на вершине айсберга через AT - практически монопенисуарно.
Поведение естественно будет отличаться, но на уровне команд одно и то же. Не доверяете? Добро пожаловать в документацию

Цитата(Сергей Борщ @ Nov 30 2016, 10:46) *
Я не нашел в исходном вашем сообщении этих слов.

Исключено. Чтобы не наврать я как раз его скопировал и стер лишнее
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 30 2016, 11:03
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(butthead2 @ Nov 30 2016, 15:43) *
Не доверяете? Добро пожаловать в документацию

Как тут выясняется, в документации каждый видит то, что хочет. Ибо, ее содержание (качество) позволяет это.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 30 2016, 12:27
Сообщение #36


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (butthead2 @ Nov 30 2016, 13:43) *
Разворачиваю. Внутренности и особенности как UDP так и TCP скрыты от пользователя внутри стека. То что видно на вершине айсберга через AT - практически монопенисуарно.
Поведение естественно будет отличаться, но на уровне команд одно и то же. Не доверяете? Добро пожаловать в документацию
Вы вроде и русские слова используете, но я все равно не понимаю, что вы пытаетесь сказать. Пакеты UDP обязаны приходить отдельно. Если их склеивает модем - надо пинать производителя модема, а не пихать какие-то костыли поверх протокола.

QUOTE (butthead2 @ Nov 30 2016, 13:43) *
Исключено. Чтобы не наврать я как раз его скопировал и стер лишнее
Скопировал и его и еще предыдущее (т.е. оба два ваших сообщения на тот момент). Не знаю, что вы там стирали, но слов "внешние" и "в стеке" в них не находит даже мой текстовый редактор, а ему я доверяю. Выделите зеленым цветом:

QUOTE (butthead2 @ Nov 29 2016, 16:10) *
Даже комментировать не хочется. Внешние отличия TCP от UDP в стеке можно на пальцах одной руки перечислить.

А прочитать что там пониже в описании написано слабо? Или только название команды читаем? Или может на русский перевести?


QUOTE (butthead2 @ Nov 29 2016, 15:13) *
Так и не понял из-за чего сыр-бор развели. С UDP я никгда не работал, но в TCP симком так себя ведет со времен царя гороха.
Если идут серьезные задержки, то модем потом одновременно выдает все данные которые к нему пришли.

Господа программисты! Где написано что модем должен выдавать данные в виде пакетов? Ткните пожалуйста в строку документации.

Представьте что ваши данные сыпятся через проводок по UART непрерывным потоком и без пауз. Протокол работает? Значит и через модем будет работать. Не работает? В топку.
Делайте протоколы которые из потока символов однозначно восстанавливают свои пакеты и будет вам счастье.

пс. Модемы telit в этом плане ведут себя ровно так же как и симком. Да и в описании других я никогда не встречал никаких пакетов.
Так что задумайтесь "на чьей стороне проблема"

И впредь будьте внимательнее, чтобы не сесть в лужу снова.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Nov 30 2016, 14:39
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Вопрос который никто не задал.

Какой размер буфера указан под прием пакетов и какой длины сами пакеты ?
Попробуйте указать буфер таким чтобы он не вмещал 2 и более пакетов.


--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 30 2016, 15:24
Сообщение #38


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Сергей Борщ @ Nov 30 2016, 15:27) *
Вы вроде и русские слова используете, но я все равно не понимаю, что вы пытаетесь сказать. Пакеты UDP обязаны приходить отдельно. Если их склеивает модем - надо пинать производителя модема, а не пихать какие-то костыли поверх протокола.

Вы (как и многие) хотите поиметь "на халяву" разбиение на пакеты. Это в корне неверно. Модем выдает данные (payload!). Уровень пакетов пользователю недоступен, и что самое главное - никто его и не обещал. Поэтому претензии к производителям совершенно безосновательны.
SOCKET в winapi работает точно так же - сколько данных упало, столько склеенных и на выходе. Где спрашивается шквал претензий к Билли?
Хотя я встречал негодование с квадратными глазами "а же я свои пакеты отличать один от другого буду" sm.gif

Не устраивает стек, всегда можно запилить свой собственный. Многие так и делают. А там уже будет и доступ к пакетам и прочий блекджек и ш*хи.



Цитата(butthead2 @ Nov 29 2016, 16:10) *
не находит даже мой текстовый редактор, а ему я доверяю. Выделите зеленым цветом:
И впредь будьте внимательнее, чтобы не сесть в лужу снова.


Смело заявляю: этот текстовый редактор - г. Не доверяйте ему больше, а то неудобно получается.
Зеленый плохо заметно, синим лучше
Цитата(butthead2 @ Nov 29 2016, 16:10) *
Даже комментировать не хочется. Внешние отличия TCP от UDP в стеке можно на пальцах одной руки перечислить.


Сообщение отредактировал butthead2 - Nov 30 2016, 19:13
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 30 2016, 16:26
Сообщение #39


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (butthead2 @ Nov 30 2016, 18:24) *
Вы (как и многие) хотите поиметь "на халяву" разбиение на пакеты. Это в корне неверно. Модем выдает данные (payload!). Уровень пакетов пользователю недоступен, и что самое главное - никто его и не обещал. Поэтому претензии к производителям совершенно безосновательны.

SOCKET в winapi работает точно так же - сколько данных упало, столько склеенных и на выходе. Где спрашивается шквал претензий к Билли?
Вы, похоже, снова смешали в кучу UDP и TCP. В UDP отдельные пакеты обещаны. Начало-конец датаграммы - такая же информация (payload!) как и все остальное ее содержимое.

QUOTE (butthead2 @ Nov 30 2016, 18:24) *
Зеленый плохо заметно, красным лучше
Красный оставьте модераторам. И постарайтесь не нарушать п 2.1б Правил форума. Считайте это предупреждением.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Baser
сообщение Nov 30 2016, 17:00
Сообщение #40


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Сергей Борщ @ Nov 30 2016, 18:26) *
Вы, похоже, снова смешали в кучу UDP и TCP. В UDP отдельные пакеты обещаны. Начало-конец датаграммы - такая же информация (payload!) как и все остальное ее содержимое.

Зря на коллегу нападаете, все он правильно написал.
Смешал в кучу UDP и TCP не он, а модемописальщики.
Речь то идет о надстройке над стеком, об АТ-командах.
При работе с этой надстройкой, действительно, нет никаких отличий в использовании UDP или TCP.
Никакое обрамление пакетов стека на входе/выходе недоступно, только голые данные.
Будете смеяться, даже установление CONNECT-а одинаково и он также присутствует даже при наличии UDP.
И закрывать этот UDP connect тоже нужно sm.gif

Я так и не понял, какая между ними разница со стороны модема. Траффик больше (может быть, не проверял sm.gif)

А по изначальному вопросу топикстартера, так вроде бы уже все подробно разжевали...
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 30 2016, 18:24
Сообщение #41


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
SOCKET в winapi работает точно так же - сколько данных упало, столько склеенных и на выходе.

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

Цитата
Смешал в кучу UDP и TCP не он, а модемописальщики.

да не клеит модем пакеты. включите логику уже. это что первый трекерописатель на форуме? ни модемы, ни маршрутизаторы не клеят пакеты. маршрутизаторы могут выбросить пакет если задан мелкий MTU,
но не клеит их.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 30 2016, 19:12
Сообщение #42


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Сергей Борщ @ Nov 30 2016, 19:26) *
Вы, похоже, снова смешали в кучу UDP и TCP. В UDP отдельные пакеты обещаны.

В UDP - само собой. Но речь то идет о модеме и его командах. На этом уровне и самого понятия "пакет" уже нет, все зарыто унутре.

Цитата(Сергей Борщ @ Nov 30 2016, 19:26) *
Начало-конец датаграммы - такая же информация (payload!) как и все остальное ее содержимое.

Это справедливо для любой инкапсуляции, все что было выше - payload. И самый самый самый верхний это пользовательские данные. Модем их и выдает, наичестнейшим образом на который способен.

Цитата(Сергей Борщ @ Nov 30 2016, 19:26) *
Красный оставьте модераторам. И постарайтесь не нарушать п 2.1б Правил форума. Считайте это предупреждением.

Во, еще одно неудобство как с зеленым. Чуть мозг не сломал где 2-шестнадцать.
Яволь! Красный уже не нужен, меняю на другой. Слова тоже сейчас подчищу



Цитата(smalcom @ Nov 30 2016, 21:24) *
говорите, пожалуйста, в тех областях, где вы компетентны. если вы не умеете подписываться на изменение состояния дескриптора, то вам хаутушки читать надо, а не советы давать.
а на билли никто не жалуется потому что так дебильно виндовый сокет (который BSD кстати) никогда не работал.

ПК не мой профиль, для мох убогих програмулек хватало тупого поллинга и send/recv. И я никому ничего не советую и своего бесценного мнения не навязываю. В отличие от "больших" программистов, которые приходя в чужой монастырь рассказывают как тут все неудобно и сделано через одно место.

Что покажет сообщение об изменении? Факт прихода данных? Их количество в буфере?

Цитата(smalcom @ Nov 30 2016, 21:24) *
да не клеит модем пакеты.

Ок, модем клеит пользовательские данные. И при плохой связи делает это довольно часто. Понять и простить.
Вот это и будет самый короткий и точный ответ на вопрос топикстартера.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Nov 30 2016, 19:15
Сообщение #43


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Baser @ Nov 30 2016, 22:00) *
Никакое обрамление пакетов стека на входе/выходе недоступно, только голые данные.

Кое какое, вроде как доступно. Хотя бы длинна. Повторюсь:

8.2.15 AT+CIPHEAD Add an IP Head at the Beginning of a Package Received

То есть вроде как IP заголовок и пакета. Хотя, эти китайцы такие китайцы. Вполне возможно, это сложности перевода.

bb-offtopic.gif
Я долго репу чесал после ответа китайца (магазин таобао)
Цитата
不客气

Естественно, я пользуюсь гуглопереводчиком. И предпочитаю с Китайского на Английский.
不客气 - blunt - дурак.
Только вот на Руссккий гугл переводит иначе:
不客气 - Добро пожаловать


Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 30 2016, 19:28
Сообщение #44


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
ПК не мой профиль, для мох убогих програмулек хватало тупого поллинга и send/recv. И я никому ничего не советую и своего бесценного мнения не навязываю.

не просто навязываете, а ещё игнорируете факты. ведёте себя на полпсаки. что чести вам не делает.

Цитата
Что покажет сообщение об изменении?

это вам всёравно не интересно. нет смысла распинаться.



срач вообще ни о чём без данных от ТСа. Его попросили предоставить журнал обмена с временными метками и где он? У него аппаратное управление потоком и какая-то программулька на ПК.
Может он RTS/CTS'ом не умеет пользоваться, может CIPRXGET вызывает раз в час. Т.е. доказательств отсутствия ошибки ТСа нет. Развели балаган. Книжки читайте, да хоть вики.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 30 2016, 19:45
Сообщение #45


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Alechek @ Nov 30 2016, 22:15) *
Кое какое, вроде как доступно. Хотя бы длинна.

Ну да. Длина пользовательский данных, куда же без этого.

Цитата(Alechek @ Nov 30 2016, 22:15) *
8.2.15 AT+CIPHEAD Add an IP Head at the Beginning of a Package Received

Ага, агаsm.gif Все так только имелся ввиду не IP пакет а IP стек. А под Package имелись ввиду строки которые модем вываливает.

Цитата(Alechek @ Nov 30 2016, 22:15) *
Хотя, эти китайцы такие китайцы. Вполне возможно, это сложности перевода.

Или китайского английского

Цитата(Alechek @ Nov 30 2016, 22:15) *
Я долго репу чесал после ответа китайца (магазин таобао)

Насколько помню то китайвед говорил что одинаковые по звучанию слова имею разное значение от многих факторов.
Вывод - гуглопереводчик разные люди с разным настроением делалиsm.gif

Цитата(smalcom @ Nov 30 2016, 22:28) *
не просто навязываете, а ещё игнорируете факты. ведёте себя на полпсаки. что чести вам не делает.

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

Цитата(smalcom @ Nov 30 2016, 22:28) *
это вам всёравно не интересно. нет смысла распинаться.

Можно я сам решу интересно или нет? Форум это общественное место, ответы читаю не только я.
Этом момент интересен хотя бы понять стоит ли вобще копать в ту сторону или ничего потенциально полезного там нет.

Цитата(smalcom @ Nov 30 2016, 22:28) *
срач вообще ни о чём без данных от ТСа. Его попросили предоставить журнал обмена с временными метками и где он? У него аппаратное управление потоком и какая-то

Да ни к чему оно. Проблема и выеденного яйца не стоит. "Стек модема" не тождественно "протокол UDP". И точка.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 30 2016, 21:42
Сообщение #46


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
"Стек модема" не тождественно "протокол UDP". И точка.

улыбнуло. это как: производители USB-флешек не обязаны соблюдать спецификации USB.

Цитата
Можно я сам решу интересно или нет?

да решайте. всё уже написано, по несколько раз писать одно и тоже не интересно.

ТС был 28.11, ставлю 50 г вискаса, что затуп в алгоритмах ТСа )

Цитата
То есть вроде как IP заголовок и пакета. Хотя, эти китайцы такие китайцы. Вполне возможно, это сложности перевода.

это когда чукча не читатель, а писатель, то ничего не понятно. А если открыть AT_Command_Manual и сложить буквы в слова, то сразу становится понятно, что делает эта команда.

Цитата
То есть вроде как IP заголовок и пакета. Хотя, эти китайцы такие китайцы. Вполне возможно, это сложности перевода.

это когда чукча не читатель, а писатель, то ничего не понятно. А если открыть AT_Command_Manual и сложить буквы в слова, то сразу становится понятно, что делает эта команда.
Go to the top of the page
 
+Quote Post
gerber
сообщение Nov 30 2016, 22:16
Сообщение #47


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Stream в TCP несет смысл тот, что пакеты будут доставлены ровно в том порядке, в каком ушли, то есть последовательность (поток, stream) сохранится, и это гарантирует протокол TCP.
Datagram в UDP несет смысл тот, что пакеты будут отправлены ровно в том порядке и так, как их нарезал (на датаграммы) отправитель. В каком порядке они придут получателю, и придут ли вообще - протокол не гарантирует. Поэтому требовать от него, чтобы он ещё и отдавал их раздельно - перебор.
А если у получателя нет даже буфера такого размера, чтобы принять весь пакет? Что, нельзя уже из UDP-сокета 4 байта прочитать? Только весь пакет?
А если можно 4 байта - что будет с недочитанным пакетом при следующем чтении recv()?


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
smalcom
сообщение Nov 30 2016, 22:23
Сообщение #48


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
На практике также следует учитывать, что если длина IPv4 пакета с UDP будет превышать MTU (для Ethernet по умолчанию 1500 байт), то отправка такого пакета может вызвать его фрагментацию, что может привести к тому, что он вообще не сможет быть доставлен, если промежуточные маршрутизаторы или конечный хост не будут поддерживать фрагментированные IP пакеты. Также в RFC 791 указывается минимальная длина IP пакета 576 байт, которую должны поддерживать все участники, и рекомендуется отправлять IP пакеты большего размера только в том случае если вы уверены, что принимающая сторона может принять пакеты такого размера. Следовательно, чтобы избежать фрагментации UDP пакетов (и возможной их потери), размер данных в UDP не должен превышать: MTU — (Max IP Header Size) — (UDP Header Size) = 1500 — 60 — 8 = 1432 байт. Для того чтобы быть уверенным, что пакет будет принят любым хостом, размер данных в UDP не должен превышать: (минимальная длина IP пакета) — (Max IP Header Size) — (UDP Header Size) = 576 — 60 — 8 = 508 байт.

Т.е. если
Цитата
А если у получателя нет даже буфера такого размера, чтобы принять весь пакет?

то это означает, что UDP не поддерживается.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Nov 30 2016, 23:23
Сообщение #49


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(smalcom @ Dec 1 2016, 01:23) *
то это означает, что UDP не поддерживается.

В контексте модема (я надеюсь мы все таки обсуждаем здесь именно модемы?) если "получатель" прочитать как "юзер", то это значит что юзеру и не нужны все данные из пакета одним махом. Он их замечательно вычитает теми порциями которые пролезут в буфер. А вот сам стек будет поддерживать и правильный прием, и возможно что и внутрений буфер для данных будет куда больше 1432.
И UDP поддерживается, и TCP, и у юзера хитреца эдакого буфер маленький!

Цитата(smalcom @ Dec 1 2016, 00:42) *
улыбнуло. это как: производители USB-флешек не обязаны соблюдать спецификации USB.

Согласно вашей логике правильнее так:
а) поддерживается спецификация USB в достаточном для функционирования объеме
б) на уровне файловой системы у вас нет совершенно никакого доступа к его пакетам и процессам.
Вывод - USB не поддерживается, ведь нет низкоуровневого доступа.

Цитата(smalcom @ Dec 1 2016, 00:42) *
да решайте. всё уже написано, по несколько раз писать одно и тоже не интересно.

Я все таки настаиваю. Тычек в название доки и раздел где это описано. Не в том плане что мне лень, могу ведь промахнуться

Цитата(smalcom @ Dec 1 2016, 00:42) *
ТС был 28.11, ставлю 50 г вискаса, что затуп в алгоритмах ТСа )

Затуп у него 99% в протоколе - рассчет на то что пакеты будут приходить по отдельности и данные будут вылезать такими же порциями, где порция = данные строго одного пакета. Сидит и перекраивает. Или свой стек поднимает.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 1 2016, 00:00
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Затуп у него 99% в протоколе

хотите научить - учите. поучать не надо. был конкретный вопрос и очень важный,

Цитата
Я все таки настаиваю.

вы даже не видите того, что не увидели. не то, что неинтересно, а нудно и расстраивает. если интересно - читайте ветку по новой, конспектируйте.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Dec 1 2016, 01:17
Сообщение #51


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(smalcom @ Dec 1 2016, 03:00) *
хотите научить - учите. поучать не надо. был конкретный вопрос и очень важный,

ТС ответ получил, неоднократно и от разных участников и под разным ракурсом. В том числе как от проблемы избавиться. Дальше тут обсуждать нечего.
Считать поучениями или чем то другим это ваше право.

Цитата(smalcom @ Dec 1 2016, 00:42) *
вы даже не видите того, что не увидели.

Интересная логическая конструкция, я в замешательстве.
Я вижу редкие вкрапления толковых постов по теме + три страницы обсасывания особенностей протокола UDP.
Знакомое слово "UDP", понеслась! Кривая реализация стека, ату его ату!

Цитата(smalcom @ Dec 1 2016, 00:42) *
не то, что неинтересно, а нудно и расстраивает. если интересно - читайте ветку по новой, конспектируйте.

Понятно, ответа нет. Вы и вопрос скорее всего не читали, к ветке он не относится.

Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 1 2016, 01:21
Сообщение #52


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Так и не понял из-за чего сыр-бор развели. С UDP я никгда не работал

спец
Go to the top of the page
 
+Quote Post
Daniil
сообщение Dec 1 2016, 03:27
Сообщение #53


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата
У него аппаратное управление потоком и какая-то программулька на ПК

"Программулька" не на ПК, с модемом работает микроконтроллер, но не думаю что это что-то меняет.

Цитата
Может он RTS/CTS'ом не умеет пользоваться, может CIPRXGET вызывает раз в час. Т.е. доказательств отсутствия ошибки ТСа нет. Развели балаган. Книжки читайте, да хоть вики.

RTS/CTS'ом пользоваться умею, пробовал временно отключать, ситуация та же.
Принятый пакет ловлю по URC, кроме того идет постоянный вызов CIPRXGET с небольшим (снижал до 1сек) интервалом (на случай если вдруг что пропустил). Помимо всего прочего, я смотрел напрямую данные с модема на ПК (пока он общается с контроллером), URC реально не приходит. Логи пока предоставить не могу, по техническим причинам.

Цитата
Затуп у него 99% в протоколе - рассчет на то что пакеты будут приходить по отдельности и данные будут вылезать такими же порциями, где порция = данные строго одного пакета. Сидит и перекраивает. Или свой стек поднимает.

Тогда затупы в протоколах почти у всех, кто использует любые протоколы поверх UDP через встроенный стек модема.

2 smalcom
Я правильно понимаю, что вы пытаетесь сказать что проблема у меня, а модем работает как положено, выдавая все принятые данные по UDP одним потоком, как в TCP?
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 1 2016, 04:43
Сообщение #54


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(smalcom @ Dec 1 2016, 02:42) *
это когда чукча не читатель, а писатель, то ничего не понятно. А если открыть AT_Command_Manual и сложить буквы в слова, то сразу становится понятно, что делает эта команда.

Вот тут попрошу без оскорблений. Мне наср@ать что делает эта команда. Но из названия следует, что модем при использовании этой команды все-таки работает с пакетами. И ее описание дальнейшее этому не противоречит.

Daniil, настойки модема скажите. А то тут клавиатуру скоро все сломают smile3046.gif и в рукопашную перейдут smile3009.gif !
Достаточно команды AT+CIPSCONT? после всех инициализаций.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 1 2016, 11:17
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Я правильно понимаю, что вы пытаетесь сказать что проблема у меня, а модем работает как положено, выдавая все принятые данные по UDP одним потоком, как в TCP?

вы начали предложение правильно, а закончили нет. я хочу сказать, что ошибка у вас в программе и из-за этого модем себя так ведёт как вы наблюдаете. хотелось бы посмотреть журнал обмена.

ведь для
Цитата
идет постоянный вызов CIPRXGET

тоже надо настраивать модем. А как вы его настраиваете неизвестно - нет журнала.

--------
Цитата
Мне наср@ать что делает эта команда.

ну, а в дискуссии надо участвовать без дефекации. и это ваше недержание реальная проблема, судя по вашим проблемам с модемом в соседник ветках.
Go to the top of the page
 
+Quote Post
Daniil
сообщение Dec 1 2016, 12:43
Сообщение #56


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



2 Alechek
Код
AT+CIPSCONT?
+CIPSCONT: 1
+CIPCSGP: 1
Gprs Config APN: internet.mts.ru
Gprs Config UserId: mts
Gprs Config Password: mts
+CIPHEAD: 0
+CIPSHOWTP: 0
+CIPSRIP: 0
+CIPATS: 0,0
+CIPSPRT: 1,0
+CIPQSEND: 0
+CIPMODE: 0
+CIPCCFG: 5,2,1024,1,0,1460,50
+CIPMUX: 1
+CIPDPDP: 1,10,3
+CIPRXGET: 1
+CIPRDTIMER: 2000,3500


Цитата
тоже надо настраивать модем. А как вы его настраиваете неизвестно - нет журнала

В чем там настройка? Автоматчиеский / ручной режим приема, другого я не вижу (я про CIPRXGET).
Журнал модема мне пока недоступен, т.к. модем физически далеко. Доступна только отладочная консоль.
Есть инициализация из старого лога, особо ничего не менял.
Код
AT
OK
AT+CSMINS?
+CSMINS: 0,1

OK
ATE1
OK
AT+IFC=2,2
OK
AT+CFUN=1
OK

+CPIN: READY
AT+CPIN?
+CPIN: READY

OK
AT+GSMBUSY=1
OK
AT+CREG?
+CREG: 0,2

OK
AT+CREG?
+CREG: 0,2

OK

Call Ready
AT+CREG?
+CREG: 0,2

OK

SMS Ready
AT+CREG?
+CREG: 0,1

OK
AT+CGATT?
+CGATT: 0

OK
AT+CGATT?
+CGATT: 1

OK
AT+CIPRXGET=1
OK
AT+CIPMUX=1
OK
AT+SAPBR=3,1,"CONTYPE","GPRS"
OK
AT+CSTT="internet.mts.ru","mts","mts"
OK
AT+SAPBR=3,1,"APN","internet.mts.ru"
OK
AT+SAPBR=3,1,"USER","mts"
OK
AT+SAPBR=3,1,"PWD","mts"
OK
AT+CIICR
OK
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 1 2016, 13:07
Сообщение #57


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Daniil, вариантов я вижу 3:

1. Действительно ли надо вручную выгребать данные? Попробуйте работать с +CIPRXGET=0. При заборе данных в ручном режиме никаких упоминаний про пакеты нет.
2. Установите +CIPHEAD=1
3. Попробуйте работать без режима мультиплексора +CIPMUX=0

В Вашем случае и с Вашими настройками вполне допускаю, что пакеты в данные склеивает модем.
Go to the top of the page
 
+Quote Post
Daniil
сообщение Dec 1 2016, 13:34
Сообщение #58


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(Alechek @ Dec 1 2016, 20:07) *
Daniil, вариантов я вижу 3:

1. Действительно ли надо вручную выгребать данные? Попробуйте работать с +CIPRXGET=0. При заборе данных в ручном режиме никаких упоминаний про пакеты нет.
2. Установите +CIPHEAD=1
3. Попробуйте работать без режима мультиплексора +CIPMUX=0

В Вашем случае и с Вашими настройками вполне допускаю, что пакеты в данные склеивает модем.


1. Прямой необходимости нет, просто это позволяет контролировать максимальный объем принимаемых данных. Но при возможности проверю, спасибо.
2. Проверял, не помогает. Адрес и порт один и тот же.
3. Не могу, у меня в будущем ожидается 2 соединения.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 1 2016, 13:42
Сообщение #59


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Daniil @ Dec 1 2016, 18:34) *
1. Прямой необходимости нет, просто это позволяет контролировать максимальный объем принимаемых данных.

При IPHEAD=1 (чтобы узнать длину) и аппаратном управлении потоком в таком контроле максимального объема нет необходимости.
Go to the top of the page
 
+Quote Post
Daniil
сообщение Dec 1 2016, 13:46
Сообщение #60


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 3-09-04
Из: Russia, Novosibirsk
Пользователь №: 590



Цитата(Alechek @ Dec 1 2016, 20:42) *
При IPHEAD=1 (чтобы узнать длину) и аппаратном управлении потоком в таком контроле максимального объема нет необходимости.

Я понимаю, просто изначально концепция была такая. Может быть пошел в неверном направлении...
В любом случае - спасибо за идею sm.gif
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 1 2016, 14:04
Сообщение #61


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Журнал модема мне пока недоступен, т.к. модем физически далеко.

не отладочный журнал. Журнал обмена с модемом, вы же последовательный порт используете? Вот журнал обмена через порт.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Dec 1 2016, 15:55
Сообщение #62


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(smalcom @ Dec 1 2016, 04:21) *
спец

И это говорит человек который в этом топике не выдал ни одной фразы по теме. И даже не пытался понять в чем проблема.
Лучше уж помолчите и не уводите ТС в ненужную ему сторону
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 1 2016, 16:52
Сообщение #63


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
фразы по теме

вы уже показали, что ваша тема отлична от темы ветки, потому ничего и не видно вам.

у меня есть доказательства того поведения модема, что я озвучил - диаграммы обмена с модемом. А у вас кроме балабольства что-то есть?
Go to the top of the page
 
+Quote Post
butthead2
сообщение Dec 2 2016, 18:57
Сообщение #64


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(smalcom @ Dec 1 2016, 19:52) *
у меня есть доказательства того поведения модема, что я озвучил - диаграммы обмена с модемом. А у вас кроме балабольства что-то есть?

Фейспалмsad.gif
Даже стало интересно, какие же это у вас доказательства которые уличают во вранье документацию на модем и соответственно меня тоже. Ах да, меня еще и в попутно в балабольстве.
С вопросом по сокетам уже слились, так не откажите в удовольствии посмотреть хоть эти доказательства

пс. Или хотя бы доказательства склеивания пакетов. Не пользовательских данных на выходе а именно пакетов

Сообщение отредактировал butthead2 - Dec 2 2016, 19:09
Go to the top of the page
 
+Quote Post
CADiLO
сообщение Dec 2 2016, 19:29
Сообщение #65


Гуру
******

Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988



Так - "мальчики-девочки" - срач прекращаем. Рассказываю. Нервы потратил, ответ получил.

Модем действительно в буфер принимает поток as-is. Он не клеит, а просто заполняет буфер тем что пришло от оператора.

Как пришло - так и получите. Представьте сквозной канал с FIFO - это оно и есть.

И если данные слепились - вопрос не к Симкому а к писателям RTOS.

СТЕК ЛИЦЕНЗИОННЫЙ !!! и Симком там менять ничего не может - как МТК написало, так и работает.

Дополнение:

На уровне ЕАТ есть точки входа в API от РРР и выше - кто хочет поменять алгоритм, может воспользоваться.
Хоть свой стек рисуйте.



--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 3 2016, 06:26
Сообщение #66


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(CADiLO @ Dec 3 2016, 00:29) *
СТЕК ЛИЦЕНЗИОННЫЙ !!! и Симком там менять ничего не может - как МТК написало, так и работает.

Вот это новость! blink.gif Мое мировоззрение опять меняется...
Правда, непонятно, причем здесь МТК? А как же SIM300-SIM900? Там тоже Медиатек подсобил? 01.gif
Я так понимаю, стек у Симкома лицензионный и одинаков для всех их модулей. Не будут же они несколько лицензий покупать...
Так что вопрос все-таки к Симкому. В названии команды IPHEAD слово "пакет" присутствует.
Опять таки, AT+CIPSRIP Show Remote IP Address and Port When Received Data , что, для всех входящих пакетов, даже с разных адресов:портов одна очередь пользовательских данных?
Что-то тут недоговорено....
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 3 2016, 07:28
Сообщение #67


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
Фейспалм

У вас проблема на нейронном уровне. Вероятно, что у вас в кармане даже фото жены имеется, чтобы не забыть. Хотя, судя по созданным темам - там фото родителей.
Учитывая сию печальную болезнь могу подытожить, что до того уровня где я бы слился вам ещё столько учиться, что врядли столько проживёте.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 3 2016, 08:21
Сообщение #68


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(smalcom @ Dec 3 2016, 12:28) *
что до того уровня где я бы слился вам ещё столько учиться, что врядли столько проживёте.

smalcom, все уже давно поняли, что Вы самый знающий.
Только умный не станет так засорять тему. Остыньте.

Кстати, CADiLO, я правиьно понял, что если UDP пакеты от оператора пришли в нарушенном порядке, то так они кучей данных в этом нарушенном порядке и вывалятся?
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 3 2016, 08:41
Сообщение #69


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
smalcom, все уже давно поняли, что Вы самый знающий.

я такого не говорил. видимо вы компаньоны или партнёры, или как там у вас это называется.
Go to the top of the page
 
+Quote Post
ArtemKAD
сообщение Dec 3 2016, 10:00
Сообщение #70


Профессионал
*****

Группа: Свой
Сообщений: 1 508
Регистрация: 26-06-06
Из: Киев
Пользователь №: 18 364



Цитата(Alechek @ Dec 3 2016, 08:26) *
Вот это новость! blink.gif Мое мировоззрение опять меняется...
Правда, непонятно, причем здесь МТК? А как же SIM300-SIM900? Там тоже Медиатек подсобил? 01.gif


Это все оттого, что Вы историю компании SimCom не знаете. У них всегда были стеки сторонних производителей. На Sim100/300 от Motorola или точнее TTPCom. Собственно изначально модули стали результатом сотрудничества TTPCom, AD и Sim Technology.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 3 2016, 12:27
Сообщение #71


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Не буду спорить, что не знаю всех подробностей.
Вот только по поим представлениям, АТ интерфейс - это пользовательская надстройка над ОС, на которой работает чипсет модуля. И встроенный в модуль PPP/TCP/IP/FTP/HTTP - тоже пользовательская надстройка. Пусть лицензированная.
Так причем здесь Медиатек с его ОС? Он писал AT интерфейс? В т.ч. и чисто Симкомовские команды?

Конечный вопрос стоит так: отличается ли внешнее поведение по работе с данными, пересылаемыми посредством встроенного TCPIP стека модулей SIM300-SIM900-SIM800 в части их разбиения-объединения?

Так как у нас транспорт поверх UDP писан из расчета, что передача будет идти пакетами. Если 2 раза вызвал +CIPSEND, значит и придет 2 пакета, пускай в другом порядке, но 2. И в обратку, если сервер послал 2 пакета, у меня возникнет 2 раза +IPD URC.
C SIM300-SIM900 все отлажено. Подвохи от 800-й серии постоянно жду....
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 3 2016, 17:51
Сообщение #72


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Alechek @ Dec 3 2016, 08:26) *
В названии команды IPHEAD слово "пакет" присутствует.
Опять таки, AT+CIPSRIP Show Remote IP Address and Port When Received Data , что, для всех входящих пакетов, даже с разных адресов:портов одна очередь пользовательских данных?
Что-то тут недоговорено....

Естественно, для каждого соединения свой приемный буфер.
Но: UART -то один, поэтому если вы не удосужились применить ни одну из команд
AT+CIPHEAD=1
AT+CIPSRIP=1
то, при наличии нескольких соединений и автоматической выдаче данных в порт,
пришедшие с разных соединений данные будут вываливаться поочередно в этот порт, и у вас не будет возможности их различить.
А если заголовки включены, то каждая порция данных из отдельного соединения будет иметь свой заголовок включая длину данных.

Вообще, хоть документация не сильно подробная, но она все же есть, и в ней достаточно информации.
Посмотрите например: SIM800 Series_TCPIP_Application Note

Цитата(Alechek @ Dec 3 2016, 10:21) *
я правиьно понял, что если UDP пакеты от оператора пришли в нарушенном порядке, то так они кучей данных в этом нарушенном порядке и вывалятся?

Сомневаюсь, что стек модема будет заниматься перекладыванием входных пакетов по их порядковым номерам...

Цитата(Alechek @ Dec 3 2016, 14:27) *
И в обратку, если сервер послал 2 пакета, у меня возникнет 2 раза +IPD URC.

А вот на это точно не нужно рассчитывать.
Тем более, что вопрос топикстартера как раз и описывал ситуацию, когда +IPD URC одно на несколько пришедших почти одновременно пакетов.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 3 2016, 19:50
Сообщение #73


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Baser @ Dec 3 2016, 22:51) *
А вот на это точно не нужно рассчитывать.
Тем более, что вопрос топикстартера как раз и описывал ситуацию, когда +IPD URC одно на несколько пришедших почти одновременно пакетов.

Во-первых, все расчитывалось во времена SIM300. Там работало.
Во вторых, пока что все вилами на воде. И китайцы могли не так понять Эдуарда, и он их... Так как после его ответа все равно остались вопросы.


Цитата(Baser @ Dec 3 2016, 22:51) *
Естественно, для каждого соединения свой приемный буфер.

Ага, щаз.
Расширенный UDP режим, +CIPUDPMODE=1. Какое соединение?
К нам летят пакеты с разных адрсов. Сколько буферов?
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 3 2016, 22:39
Сообщение #74


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



Цитата(Alechek @ Dec 3 2016, 21:50) *
Расширенный UDP режим, +CIPUDPMODE=1. Какое соединение?
К нам летят пакеты с разных адрсов. Сколько буферов?

С этим режимом не работал, определенно сказать ничего не могу laughing.gif

Для TCP вроде все однозначно, а для режима расширенного UDP непонятно для чего дополнительно есть мультиконект на 5 соединений.
Если и при одном соединении можно динамически переключать адрес кому посылать и принимать от любого.

Но это, как я понимаю, к изначальному вопросу ТС отношение не имеет, это уже новая постановка вопроса sm.gif
Go to the top of the page
 
+Quote Post
Alechek
сообщение Dec 4 2016, 06:02
Сообщение #75


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Baser @ Dec 4 2016, 03:39) *
Для TCP вроде все однозначно, а для режима расширенного UDP непонятно для чего дополнительно есть мультиконект на 5 соединений.
Но это, как я понимаю, к изначальному вопросу ТС отношение не имеет, это уже новая постановка вопроса sm.gif

Имеет. То, что его пакеты собирал в данные модуль - с этим определились.
Осталось выяснить, можно ли с этого избежать.

Расширенный UDP - это как слушающий UDP сервер.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Dec 5 2016, 01:31
Сообщение #76


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(smalcom @ Dec 3 2016, 10:28) *
того уровня где я бы слился вам ещё столько учиться, что врядли столько проживёте.

Иного и не ожидал. Очередной поток словоблудия.
Поздравляю с почетным титутулом Самого Знающего Болтуна
Go to the top of the page
 
+Quote Post
aiwa
сообщение Dec 7 2016, 23:30
Сообщение #77


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 13-12-15
Из: Харьков
Пользователь №: 89 682



Цитата(CADiLO @ Dec 2 2016, 21:29) *
Дополнение:
На уровне ЕАТ есть точки входа в API от РРР и выше - кто хочет поменять алгоритм, может воспользоваться.
Хоть свой стек рисуйте.

А где про это можно почитать? В прилагаемой к ЕАТ документации - только raw-сокеты с IPPROTO.
Go to the top of the page
 
+Quote Post
Velund
сообщение Dec 27 2016, 09:58
Сообщение #78


Знающий
****

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



QUOTE (butthead2 @ Nov 29 2016, 15:13) *
пс. Модемы telit в этом плане ведут себя ровно так же как и симком. Да и в описании других я никогда не встречал никаких пакетов.
Так что задумайтесь "на чьей стороне проблема"


Модемы Телит давно уже умеют работать с UDP и как надо, а не только как симком. wink.gif Давно уже как умеют, с 185 прошивки у GL868 ЕМНИП. Правда нам с уважаемым коллегой из Атомы, присутствующим здесь на форуме, пришлось немного телитовской кровушки попить и мозгов их програмистстких повыносить. wink.gif

PS: Впрочим как симком клеить датаграммы они тоже еще умеют - для совместимости с уже разработанными приложениями. wink.gif Надо просто при открытии сокета шепнуть модему на ушко, что от него ждут - именно датаграмм, или потока. wink.gif По дефолту будет поток, без разделения на датаграммы.
Go to the top of the page
 
+Quote Post
butthead2
сообщение Dec 27 2016, 20:20
Сообщение #79


Местный
***

Группа: Участник
Сообщений: 301
Регистрация: 22-07-09
Пользователь №: 51 470



Цитата(Velund @ Dec 27 2016, 12:58) *
пришлось немного телитовской кровушки попить и мозгов их програмистстких повыносить

"Не приставай к царю!" (с)
Главное что они прислушиваются, а потом тихонько делают.

Цитата(Velund @ Dec 27 2016, 12:58) *
По дефолту будет поток, без разделения на датаграммы.

Вот за правильные дефолты телитовцам низкий поклон. Новый модуль со свежей прошивкой можно ставить при ремонте любого старья.
С симкомом (да и другими китайцами) после пайки очередной партии неоднократно приходилось играть в игру под названием "И где на этот раз поменялся формат? А зачем?"
Go to the top of the page
 
+Quote Post
smalcom
сообщение Dec 28 2016, 06:39
Сообщение #80


Профессионал
*****

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



С момента последнего сообщения ТСа
https://electronix.ru/forum/index.php?showt...t&p=1465804
прошло 27 дней. В преддверии праздника хотелось бы услышать как он решил проблему со склеивающимися UDP-пакетами.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 28 2016, 06:45
Сообщение #81


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Velund @ Dec 27 2016, 11:58) *
Надо просто при открытии сокета шепнуть модему на ушко, что от него ждут - именно датаграмм, или потока. wink.gif
Простите, а разве не именно этим и отличаются UDP и TCP? Не знаю, как там у Телита, а у Симкома они открываются разными командами. Или Телиту кроме "масло" надо еще отдельно говорить "масляное"?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
molecul
сообщение Dec 28 2016, 08:29
Сообщение #82


Знающий
****

Группа: Свой
Сообщений: 567
Регистрация: 19-01-11
Из: СПб
Пользователь №: 62 326



Цитата(Сергей Борщ @ Dec 28 2016, 09:45) *
Простите, а разве не именно этим и отличаются UDP и TCP? Не знаю, как там у Телита, а у Симкома они открываются разными командами. Или Телиту кроме "масло" надо еще отдельно говорить "масляное"?

Уважаемый Velund имел в виду, что по умолчанию датаграммы идут потоком, и отделить что откуда пришло (если источников много) весьма проблематично. Telit же по его настоятельной maniac.gif просьбе (и к радости некоторых других потребителей) сделал возможность показывать подробную информацию об источнике:
Цитата
Data view with UDP datagram informations:
SRING: <sourceIP>,<sourcePort><connId>,<recData>,
<dataLeft>,<data> same as before with <sourceIP>,<sourcePort> and
<dataLeft> that means the number of bytes left in the UDP datagram
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:47
Рейтинг@Mail.ru


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