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

 
 
 
Reply to this topicStart new topic
> SIM300DZ, МТС и двойные соединения, Что это - мой глюк, глюк TCP/IP стека или глюки провайдера...
Crazy Coder
сообщение Sep 10 2008, 12:49
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885



Доброго времени суток!

Столкнулся с очень странной проблемой. Есть сервер сбора данных, работает под Linux-ом, написан по классической схеме - accept/fork, т.е. каждое новое входящее соединение обрабатывается своим процессом. К серверу подключаются приборы с sim300dz на борту и шлют ему данные.

Проблема в следующем - иногда (далеко не всегда) и только на МТС возникают два подряд соединения в одну и ту-же секунду от одного и того-же прибора, одно соединение остаётся висеть и затем вываливается по таймауту, а по второму происходит обмен данными. Всё-бы ничего, но когда висящее соединение вываливается по таймауту, то и второе, по которому шёл обмен данными отваливается. Вот кусочек лога, в него пишется начало соединения, факт разрыва и момент завершения процесса, обслуживающего соединение.
-------------------
Sep 4 15:39:56 localhost ./vizor-ip[19326]: Remote client attempting to connect. Remote IP : 212.92.139.109
Sep 4 15:39:56 localhost ./vizor-ip[19327]: Remote client attempting to connect. Remote IP : 212.92.139.109
Sep 4 15:39:59 localhost ./vizor-ip[19327]: Device ID=2 logged in.
Sep 4 15:39:59 localhost ./vizor-ip[19327]: Server wait for packet from device ID=2...
Sep 4 15:41:03 localhost ./vizor-ip[19327]: Get data packet with size=1000 from device ID=2
Sep 4 15:41:03 localhost ./vizor-ip[19327]: Server wait for packet from device ID=2...
Sep 4 15:41:56 localhost ./vizor-ip[19326]: Process pid=19326 stoped.
Sep 4 15:41:58 localhost ./vizor-ip[19327]: Error get packet from device ID=2
Sep 4 15:41:58 localhost ./vizor-ip[19327]: Device ID=2 abnormally disconnected.
Sep 4 15:41:58 localhost ./vizor-ip[19327]: Process pid=19327 stoped.
-------------------
Из него видно, что как только остановился по таймауту (2 минуты) процесс, обслуживающий первое соединение - то через две секунды отвалился и второй процесс, явно прибор закрыл соединение, а со стороны сервера функция recv, ожидающая прихода пакета данных, вывалилась с ошибкой.

Тут мне непонятно вот что. TCP/IP стек у SIM300 может одновременно открыть только одно клиентское соединение, каким образом тут образуются сразу два?
Со стороны прибора поймать момент разрыва никак не получается - данный глюк не имеет закономерности, проявляется только изредка и только на МТС-е, а например с Мегафоном и Пчелайном такого не бывает.

Что это может быть?
Go to the top of the page
 
+Quote Post
VDG
сообщение Sep 10 2008, 13:41
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Мобильник это не обычный компьютер, считайте что работаете не с ним, а с МТС. Вот МТС и косячит с двумя соединениями.


--------------------
Go to the top of the page
 
+Quote Post
Crazy Coder
сообщение Sep 10 2008, 14:31
Сообщение #3





Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885



Цитата(VDG @ Sep 10 2008, 17:41) *
Мобильник это не обычный компьютер, считайте что работаете не с ним, а с МТС. Вот МТС и косячит с двумя соединениями.


У меня тоже вначале возникло именно это предположение, однако попытка повторить данную ситуацию при помощи SIM300DZ, подключенного к COM-порту компьютера и терминалки - не удалась, соединение всегда одно.
Go to the top of the page
 
+Quote Post
VDG
сообщение Sep 10 2008, 18:54
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Цитата(Crazy Coder @ Sep 10 2008, 18:31) *
У меня тоже вначале возникло именно это предположение, однако попытка повторить данную ситуацию при помощи SIM300DZ, подключенного к COM-порту компьютера и терминалки - не удалась, соединение всегда одно.

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


--------------------
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 10 2008, 20:03
Сообщение #5


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



NAT шалит.
Поменяейте порт назначения.


Цитата(Crazy Coder @ Sep 10 2008, 18:01) *
У меня тоже вначале возникло именно это предположение, однако попытка повторить данную ситуацию при помощи SIM300DZ, подключенного к COM-порту компьютера и терминалки - не удалась, соединение всегда одно.
Go to the top of the page
 
+Quote Post
Crazy Coder
сообщение Sep 11 2008, 06:19
Сообщение #6





Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885



Цитата(VDG @ Sep 10 2008, 22:54) *
В таком случае, если передаете команды с терминалки на модем и всё работает, а если когда команды идут с контролера, то не работает, означает одно - команды с контроллера неверные.


Отнюдь. Я-ж говорю, что и с контроллера всё работает. И только ИНОГДА возникает такая ситуация и только на МТС. Кроме того, если-уж у SIM300 односокетный TCP/IP-стэк - объясните мне, как можно "неверными командами" создать два клиентских соединения?
Go to the top of the page
 
+Quote Post
stream
сообщение Sep 11 2008, 09:33
Сообщение #7


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

Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919



Версия прошивки какая? Например, в 18-й версии обычного SIM300Z исправлено больше 20 багов, связанных с TCP/IP...
Go to the top of the page
 
+Quote Post
Crazy Coder
сообщение Sep 11 2008, 12:11
Сообщение #8





Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885



Цитата(stream @ Sep 11 2008, 13:33) *
Версия прошивки какая? Например, в 18-й версии обычного SIM300Z исправлено больше 20 багов, связанных с TCP/IP...


14-я для SIM300DZ новее нет насколько я понимаю.
Go to the top of the page
 
+Quote Post
Crazy Coder
сообщение Sep 11 2008, 14:07
Сообщение #9





Группа: Новичок
Сообщений: 8
Регистрация: 28-05-08
Пользователь №: 37 885



Цитата(AlexandrY @ Sep 11 2008, 00:03) *
NAT шалит.
Поменяейте порт назначения.

Менял, не помогает sad.gif
Go to the top of the page
 
+Quote Post
KAlex
сообщение Sep 12 2008, 07:40
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Цитата(Crazy Coder @ Sep 11 2008, 10:19) *
Отнюдь. Я-ж говорю, что и с контроллера всё работает. И только ИНОГДА возникает такая ситуация и только на МТС. Кроме того, если-уж у SIM300 односокетный TCP/IP-стэк - объясните мне, как можно "неверными командами" создать два клиентских соединения?


Интересная ситуация.
Вот есть предположение: с контроллера "at+cipstart" один раз отсылается?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 14 2008, 08:11
Сообщение #11


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Так а на какой меняли?

Менять имеет смысл только на 80-й и 23-й


Цитата(Crazy Coder @ Sep 11 2008, 17:37) *
Менял, не помогает sad.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 21:33
Рейтинг@Mail.ru


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