|
Скорость передачи GPRS SIM800C |
|
|
|
Jan 15 2018, 07:42
|
Частый гость
 
Группа: Участник
Сообщений: 93
Регистрация: 27-09-12
Пользователь №: 73 707

|
Всем привет! Как нибудь можно повысить скорость передачи по GPRS? А то у меня колеблется около 0.8-1.5 килобайт в сек
Помимо данных команд: AT+SAPBR=3,1,"CONTYPE","GPRS"
AT+SAPBR=3,1,"APN","mts.internet.ru"
AT+SAPBR=3,1,"USER","mts"
AT+SAPBR=3,1,"PWD","mts"
AT+SAPBR=1,1
Нужно ли изменять какие либо дефолтные настройки?
Вставляю симку в обычный телефон скорость передачи 5 килобайт в сек. Качество приема сигнала высокое в обоих случаях
|
|
|
|
|
Jan 15 2018, 18:28
|
Участник

Группа: Участник
Сообщений: 42
Регистрация: 24-02-09
Пользователь №: 45 299

|
а вы используете порт - High Speed USB 2.0 ??
|
|
|
|
|
Jan 17 2018, 08:04
|
Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 7-03-07
Из: г. Запорожье
Пользователь №: 25 945

|
sim800c + lwip. Скачал файл 180кБ. Код Average bytes/s - 1062 m2m пакет от КС. CSQ -77dBm. Больше 1,5-2кБ/с никогда не видел, но специально это не тестировал.
|
|
|
|
|
Jan 17 2018, 08:18
|
Частый гость
 
Группа: Участник
Сообщений: 93
Регистрация: 27-09-12
Пользователь №: 73 707

|
Цитата(Harbinger @ Jan 17 2018, 09:09)  Ещё, как вариант - телефон может работать в режиме EDGE. Спасибо! Телефон как раз в EDGE, но я думал там одинаковые скоростя, буду разбираться в отличиях. alex2103Да я часто на форуме тут видел, что это нормальная скорость считается....но все же если читать характеристики GPRS сетей, скорость должна быть на порядок выше
|
|
|
|
|
Jan 22 2018, 09:27
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(CADiLO @ Jan 18 2018, 12:45)  Есть такие ситуации когда коннект остается, а данные не идут или уходят как в черную дыру. Эдуард, что подразумеватся под "данные идут в черную дыру" Коннект TCP или UDP? В TCP вроде как сложно провернуть такое при отсутствии канала от модема до БС...
|
|
|
|
|
Jan 24 2018, 11:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(jcxz @ Jan 24 2018, 15:18)  А причем тут TCP сокет? Речь о TCP стеке МОДЕМА, причем конкретного производителя. Предлагаю обсуждать его а не какого-то сферического коня в нонэйм 3Г свистке. Выдержка из "AN_SIM900_TCPIP_V1.02" Цитата Note [3]: For TCP, “SEND OK” means data has been sent out and received successfully by the remote server, due to the TCP connection-oriented protocol; for UDP, “SEND OK” just means data has been sent out from the serial port of module, not meaning data reaching the server, due to the UDP simpler message-based connectionless protocol. Я лично понимаю так, что окно может быь любым, но SEND OK я получу только тогда, когда на все отправленные пакеты получу ACK.
|
|
|
|
|
Jan 24 2018, 13:52
|

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

|
Цитата(jcxz @ Jan 24 2018, 12:18)  Любая из сторон TCP-сокета может передавать данные не дожидаясь подтверждений ранее переданного в пределах окна, которое было объявлено в последнем сообщении от 2-й стороны TCP-сокета. Т.е. если это соединение Модем <-> Сервер, то размер для окна пакетов модема назначает сервер? А какой размер окна у стека модема на прием? Судя по отсутствию настроек и логики работы, получается равным 1 байт. Сколько бы сервер ни прислал данных, модем обычно тут-же подтверждает. Правильно?
|
|
|
|
|
Jan 24 2018, 16:43
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Alechek @ Jan 24 2018, 13:26)  А причем тут TCP сокет? При том что мой ответ был на Вашу конкретную фразу о TCP вообще. И фраза ваша была о TCP вообще, а не о каком-то модеме. Цитата(Baser @ Jan 24 2018, 15:52)  Т.е. если это соединение Модем <-> Сервер, то размер для окна пакетов модема назначает сервер? У TCP нет понятия "модем". Есть понятие "клиент" (тот кто инициировал открытие сокета) и есть "сервер" (тот кто принял запрос открытия сокета). И размеры окон назначают обе стороны независимо, каждая - в свою сторону. Цитата(Baser @ Jan 24 2018, 15:52)  А какой размер окна у стека модема на прием? Судя по отсутствию настроек и логики работы, Он должен его (размер окна) запросить у клиента (того, кто послал модему команду открытия соединения). Или, если такого в API нет, то думаю - неявно принять равным размеру внутреннего приёмного буфера сокета в модеме. Обычно это размер некоего буфера. Цитата(Baser @ Jan 24 2018, 15:52)  Сколько бы сервер ни прислал данных, модем обычно тут-же подтверждает. Нет, всё не так. TCP ack - это одно, а окно - другое. С ack-ом приходит новый размер окна. Пока он не пришёл - можно слать не более чем было указано в последнем ack-е. Ack приходит всегда (если данные корректно приняты), но с задержкой. Приёмная сторона, приняв порцию данных, может её не сразу подтвердить, а через некоторое время. Это для сокращения пустого траффика. Если же отправитель, будет отправлять данные малыми порциями и после каждой такой порции ждать ack (как делают многие криворукие программёры), то передача будет очень медленной. Это всё описано в описании TCP-протокола.
|
|
|
|
|
Jan 24 2018, 22:57
|

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

|
Цитата(jcxz @ Jan 24 2018, 18:43)  Нет, всё не так. TCP ack - это одно, а окно - другое. С ack-ом приходит новый размер окна. Пока он не пришёл - можно слать не более чем было указано в последнем ack-е. Ack приходит всегда (если данные корректно приняты), но с задержкой. Приёмная сторона, приняв порцию данных, может её не сразу подтвердить, а через некоторое время. Это для сокращения пустого траффика. Если же отправитель, будет отправлять данные малыми порциями и после каждой такой порции ждать ack (как делают многие криворукие программёры), то передача будет очень медленной. Это всё описано в описании TCP-протокола. Спасибо за разъяснения. Все никак не могу добраться до изучения RFC  Сдается мне, что это и реализованно в стандартном режиме посылки данных по TCP, поэтому у всех и получается всего 1-2 кбайта/сек Там сейчас добавлен еще один режим передачи, AT+CIPQSEND=1 (quick sending mode), вот я его как раз хочу попробовать. Цитата(CADiLO @ Jan 24 2018, 14:10)  When command AT+CIPQSEND=1, it is in quick sending mode. When the data is input to the serial port of module by AT+CIPSEND, it will respond DATA ACCEPT, while not respond SEND OK. In such case, user can continuously use AT+CIPSEND to send data to the server. Эдуард, не могли бы прояснить, не совсем понятно, как в этом режиме определить, что еще можно "пихать" модему данные на передачу. Как можно узнать что заполнен приемный буфер и модем больше не может принимать данные?
|
|
|
|
|
Feb 1 2018, 10:51
|
Группа: Участник
Сообщений: 12
Регистрация: 31-01-18
Пользователь №: 101 449

|
Если примерно знать протокол TCP, можно использовать Wireshark все становится ясно, кто в чем виноват. Протестировал SIM800c, работает корректно. Как было сказано, есть операторы, которые перестают обслуживать GPRS канал после определенного времени простоя и никаких признаков не подают, мертвый канал определяет противоположная сторона несколькими попытками ретрансмита. Лечится это PING'ом, но я использую keepalive (SIM800 имеет настройку - 1 команда и проблем нет).
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|