|
Бывает ли передача данных без PPP протокола |
|
|
|
Apr 26 2015, 06:51
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
Доброго здравия, уважаемые форумчане.
Подскажите, правильно ли я понимаю, что связь модуля с базовой станцией в режимах GPRS, EDGE, WCDMA, HSPA всегда осуществляется по протоколу PPP и других вариантов не существует. То есть модули со встроенным TCP/IP стеком делают это тихо и незаметно, а для модулей без стека нужно реализовывать не только TCP/IP, но и PPP.
Не пинайте сильно, новичок я в этой теме.
|
|
|
|
|
Apr 26 2015, 08:19
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
Я не про VPN . Я про обычное соединение с интернет через любой сотовый модуль.
|
|
|
|
|
Apr 26 2015, 18:53
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата(Леха @ Apr 26 2015, 09:51)  связь модуля с базовой станцией в режимах GPRS, EDGE, WCDMA, HSPA всегда осуществляется по протоколу PPP По протоколу PPP осуществляется не связь модуля с базой, а связь пользовательского софта с ядром модуля. Если в модуле реализована поддержка PPP, то считайте это "прослойкой" между следующим уровнем софта и ядром. С ядром устанавливается PPP, а далее выдаются/принимаются данные данные с помощью АТ-команд и режима данных. Если такой поддержки нет (например, мобильные телефоны), и подключение осуществляется с помощью ATD***1#, то, отправив CONNECT, ядро представляет РРР соединение, и клиент должен следовать протоколу. На самом деле, ничего сложного тут нет, просто народ обычно ленится. Надо отработать фазу LCP (согласовать параметры), PAP/CHAP (логин-пароль) и IPCP (получить IP). Для GSM все стадии шаблонные, и легко реализуются с помощью простых парсеров и отсылки паттернов. Для CDMA сложнее, требуется CHAP и есть другие ньюансы. После инициализации необходимо вручную формировать пакет: данные вкладывать в UDP или TCP, затем в IP, затем в PPP (т.е. дописывать заголовки, считать контрольные суммы, вести счетчики ACK/SEQ, убирать 7D и т.п.). В принципе, сейчас это имеет лишь образовательную ценность, т.к. практически во всех модулях есть готовые стеки. Но если есть академический интерес, могу скинуть ссылку на свой проект почти 10-летней давности, где на ассемблере PIC в 8K ROM и 256 байт RAM реализовано все описанное для линейки телефонов Siemens с TCP-подключением к удаленному серверу и даже слоем шифрования согласно протоколу верхнего уровня. Но если Вы найдете время и желание реализовать это самостоятельно, то выйдете на качественно новый уровень: разберетесь в тонкостях работы интернет, ТСР-стека (в т.ч. и в общих ОС) и избавитесь от массы заблуждений, характерных для высокоуровневых разработчиков.
|
|
|
|
|
Apr 26 2015, 20:13
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
GeGeL, спасибо за консультацию. Задача как раз и состоит в том чтобы реализовать все эти протоколы своими силами, поэтому от ссылки не откажусь. Но данные передавать надо в режиме HSPA, а в качестве модулей будут использованы SIM5350 или нечто подобное без встроенного стека. IP у обоих будут "белые" и статические. И вот тут есть один абсолютно непонятный для меня момент. Насколько я знаю ATD*99# это в итоге поднятие GPRS. А как получить что-нибудь из HSPA ? Там туча категорий, которые отличаются скоростями. Ну, допустим, базовые станции на обоих концах готовы выдавать/принимать пакеты на больших скоростях, как в этом случае нужно конфигурировать сами модули и устанавливать подключения к интернет ? У меня такое подозрение (после наблюдений за модемом HUAWEI E3131), что станция и модем сами скорости разруливают и от управляющего контроллера (компьютера) ничего не зависит.
|
|
|
|
|
Apr 28 2015, 06:30
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
Цитата(GeGeL @ Apr 26 2015, 21:53)  По протоколу PPP осуществляется не связь модуля с базой, а связь пользовательского софта с ядром модуля. Ну и ещё вопросик до кучи. Между модулем и станцией на канальном уровне ведь тоже протокол PPP ? Если нет, то в чём тогда смысл обмена данными по PPP только между пользовательским софтом и ядром модуля ?
|
|
|
|
|
May 2 2015, 14:45
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
Цитата(GeGeL @ Apr 26 2015, 21:53)  Но если есть академический интерес, могу скинуть ссылку на свой проект почти 10-летней давности, где на ассемблере PIC в 8K ROM и 256 байт RAM реализовано все описанное для линейки телефонов Siemens с TCP-подключением к удаленному серверу и даже слоем шифрования согласно протоколу верхнего уровня. GeGel, я выше писал, что не откажусь от ссылки. Вы, наверное, не заметили. Буду очень признателен.
|
|
|
|
|
May 3 2015, 09:36
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Извините, пропустил нить обсуждения в теме. Цитата Ну и ещё вопросик до кучи. Между модулем и станцией на канальном уровне ведь тоже протокол PPP ? Если нет, то в чём тогда смысл обмена данными по PPP только между пользовательским софтом и ядром модуля ? На канальном уровне свои протоколы, они реализуются чипсетом на уровне GSM-стека и, как правило, недоступны следующему уровню софта. Наверное, РРР был выбран из-за наличия готовых клиентов в ОС: изначально телефон подключался к РС в качестве модема через COM-порт, на РС создавалось удаленное соединение и т.о. осуществлялось подключение РС к Интернет. Цитата Насколько я знаю ATD*99# это в итоге поднятие GPRS. А как получить что-нибудь из HSPA ? ATD*99# это виртуальный звонок на виртуальный номер, и знаки после ATD определяют параметры устанавливаемого соединения и передают их в чипсет. Дальше модуля номер не передается, звонка, как такового, тоже не выполняется, модуль устанавливает дата-соединение с сетью, самостоятельно согласуя его параметры. Кроме того, с данного софт. уровня невозможно управлять канальным протоколом (классом GSPRS, EDGE или HSPA). Но, возможно, производитель модуля представляет определенные АТ-команды для этого. Старый проект, реализующий PPP, доступен на моем сайте http://torfone.org/download/cambr01xx.zip (также прилепил к посту для удобства), когда-то это использовалось для кардшаринга в декодировании спутникового ТВ и код имел значительную коммерческую ценность, но сейчас - только академическую. Используется PIC18F1320 + ENC28J60, девайс представляет мост между RS232-интерфейсом тюнера и удаленным сервером, подключаясь к последнему по стандартному протоколу на основе TCP с аутентификацией и tDES-шифрованием (согласно спецификации). Соединение возможно через Ethernet и резервируется GPRS через линейку телефонов Siemens. Инициализация РРР жестко завязана на эту модель телефона и работает по паттернам, например, для SIM300 код уже был другой (если интересно, пороюсь в архивах, найду). По уму надо подключить ваш модуль к Win32 PC через COM-порт и отлогировать процедуру поднятия соединения средствами Windows, а затем повторить все самостоятельно с использованием паттернов захваченных пакетов. Кроме РРР, интерес в коде может вызвать рукописный TCP-стек + DHCP, DNS и библиотека для ENC28J60, но, опять же, все максимально урезано до необходимого под конкретную задачу, ничего лишнего: just work. Почти каждая ассемблерная команда комментирована на русском, надеюсь, будет полезно для обучения. Если будут конкретные вопросы, задавайте на форуме, чуть разбавим коммерческую ветку теорией
|
|
|
|
|
May 3 2015, 13:03
|
Участник

Группа: Свой
Сообщений: 73
Регистрация: 18-06-04
Из: Минск
Пользователь №: 55

|
Цитата(GeGeL @ May 3 2015, 12:36)  По уму надо подключить ваш модуль к Win32 PC через COM-порт и отлогировать процедуру поднятия соединения средствами Windows, а затем повторить все самостоятельно с использованием паттернов захваченных пакетов. Вот до этого я как-то и не додумался. Спасибо огромное !!! Ну а если бы ещё посоветовали, что для таких задач (на Ваш взгляд) лучше использовать в качестве логгера, было бы вообще здорово !
|
|
|
|
|
May 3 2015, 15:06
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Когда-то по быстрому нацарапал как инструмент (в аттаче). Там есть глюки (зависает при переполнении, если идет "мусор" с порта), но в общем подойдет. Логирует в обоих направлениях, но надо спаять соответствующий нуль-модемный шнур с двумя отводами, и для логирования использовать отдельную РС с двумя ком-портами (лучше физическими, но можно и одинаковые USB-COM). Вход в настройки - двойным кликом по строкам ввода данных, выход - по надписям COMa, b. При использовании USB-COM (PL3203, FT232 etc.) установите галки RTS и DTR. Ну, и можно отлогировать порт софтово, установив какой-нибудь SerialPortMonitor, их много под Windows, но все в основном требуют таблэтку. PS: перед разбором лога желательно почитать подробное описание РРР (соответствующие rfc или что-нибудь русскоязычное типа http://book.itep.ru/3/ppp_35.htm). Также добавил в аттач старый документ неизвестного мне автора, найденный в сети много лет назад.
Прикрепленные файлы
portmonh.rar ( 258.18 килобайт )
Кол-во скачиваний: 20
1_1_.zip ( 24.18 килобайт )
Кол-во скачиваний: 26
|
|
|
|
|
May 3 2015, 17:06
|
Местный
  
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682

|
Цитата В папке BOOKS/PIC/TCP-IP Lean Это где: на Microchip или на нашем ftp? Цитата Ну и для разбора TCP/IP - CommView Я пользовал SoftPerfect Network Protocol Analyzer, весьма удобно. За 10 лет много нового софта появилось. Вообще, есть все условия для обучения, но желания все меньше у народа. Я вот смотрю свой код в аттаче выше cambr01xx.zip\cambr01xx\FW\ca012drf.asm - сколько знаний туда было вложено. Но это дало понимание происходящего в деталях, и сейчас, лепя готовые чужие библиотеки, гораздо проще отлаживать и, тем более, делать нестандартные решения. Так что оно того стоило.
|
|
|
|
|
May 15 2015, 03:31
|
Группа: Новичок
Сообщений: 1
Регистрация: 14-05-15
Пользователь №: 86 681

|
Уважаемые форумчане! Если я правильно понял-то AT командами модема можно установить соединение по протоколу PPP, далее необходимо формировать пакеты в формате этого протокола, соответственно парсить ответы и в результате этого диалога нами будет получен динамический IP-адрес. Ну а с передачей данных как? Я просмотрел документы по протоколу PPP(правда не во все вник) и не нашел там собственно кодограмм для отправки данных. Как отправить ну например UDP-пакет. Может кто подскажет или поделится ссылкой.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|