|
Свой стек PPP |
|
|
|
Oct 1 2008, 12:54
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Долго искал, где создать тему, так и не нашёл. Разместил здесь, т.к. в конечном счёте, PPP необходим для GPRS. Если есть более подходящая ветка, прошу перенести. Собственно сам вопрос. Рассчитываю CRC PPP фрейма. И CRC не совпадает. Делаю Следующее: Сначало приходит стандартный LCP пакет: ~ }#А!}!}#} }9}"}&} }*} } }'}"}(}"}%}&ЂA}!в}#}%В#}%чи~ После преоброзования 7D, выделяем тело: C0,21,1,3,0,19,2,6,0,A,0,0,7,2,8,2,5,6,80,41,1,E2,3,5,C2,23,5,F7,E8,
Функуия для расчёта CRC: uint16 crc16_ppp(uint8 *buf,uint32 len) { uint32 i; uint8 j; uint16 crc=0x2E93; //В CRC побывало уже 0xFF и 0x03 for (i=0;i<len;i++) { crc^=(uint16)buf[i]<<8; for(j=0;j<8;j++) crc=crc&0x8000 ? (crc << 1)^0x1021 : crc<<1; } return crc; } Получаю CRC: EB1C Инвертирую CRC: 14E3 и оно не совпадает с F7E8. Что я делаю не так? Через CRC надо пропускать байты уже преобразованные через 7D, или абсолютно каждый байт между ~~? Если у кого есть исxодники PPP, можете помочь страждущему? P.S. Т.к. есть большое желание узнать, как вся эта кухня работает, не предлагать взять готовый стек PPP и TCP/IP
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
 |
Ответов
(30 - 44)
|
Oct 14 2008, 07:18
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Чтобы не описывать каждый свой шаг, приведу текст отладочной информации который я выкидываю в порт. (в драйвер портов внедрён snifer - выводится весь поток на модем и с модема, плюс моя отладочная информация): Код Serial port COM1 opened Инициализаци{FF}-------------------- at&f at&f OK ate0 ate0 OK AT+CPIN?
+CPIN: READY
OK Ожидание регистрации в GSM сети... AT+CREG?
+CREG: 0,1
OK Регистраци{FF} успешна.------------------- at+cgdcont?
OK AT+CGDCONT=1,"IP","wap.velcom.by"
OK ATD*99***1#
CONNECT ~{FF}}#А!}!}#} }9}"}&} }*} } }'}"}(}"}%}&0ТЎА}#}%В#}%oV~ Тело:FF,3,C0,21,1,3,0,19,2,6,0,A,0,0,7,2,8,2,5,6,30,D2,A1,C0,3,5,C2,23,5,6F,56, Сервер предложил(LCP ID:3): Async Control Character Map:A0000 Протокол аутентификации:C223 Параметр "магическое число":30D2A1C0 Cжати{FF} пол{FF} протокола Cжати{FF} полей адреса и управлени{FF}
тело OUT: FF,3,C0,21,4,3,0,18,2,6,0,A,0,0,3,4,C0,23,5,6,30,D2,A1,C0,7,2,8,2,7,5F,~{FF}}#А!}$}#} }8}"}&} }*} } }#}$А#}%}&0ТЎА}'}"}(}"}'_~~{FF}}#А!}!}%} }(}#}$А#;,~~{FF}}#А!}!}%} }(}#}$А#;,~ Тело:FF,3,C0,21,1,5,0,8,3,4,C0,23,3B,2C, Сервер предложил(LCP ID:5): Протокол аутентификации:C023
---CONFIG OK---
тело OUT:FF,3,C0,21,2,5,0,8,3,4,C0,23,EB,A6, PPP login: PPP passward:
тело OUT:FF,3,C0,23,1,5,0,6,0,0,91,4, Скачал TCP-IP Lean--Web Servers for Embedded Systems. Там есть проект для PIC18. Последний раз с PIC работал лет 7 назад. Работал, если не изменяет память с MPLAB. Вопрос: какая среда используется для этого проекта? Есть файл с расширением .prj
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Oct 14 2008, 12:01
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Блин! Почему не работает? Модем MC55. Подправил snif+debag_inf для наглядности: Код Serial port COM1 opened at+cgdcont?
OK AT+CGDCONT=1,"IP","wap.velcom.by"
OK ATD*99***1#
CONNECT ~{FF}}#А!}!}#} }9}"}&} }*} } }'}"}(}"}%}&Ї$/}1}#}%В#}%ъд~ <--GSM:FF,3,C0,21,1,3,0,19,2,6,0,A,0,0,7,2,8,2,5,6,AF,24,2F,11,3,5,C2,23,5,FA,E4,
-->GSM:FF,3,C0,21,4,3,0,18,2,6,0,A,0,0,3,4,C0,23,5,6,AF,24,2F,11,7,2,8,2,C0,79, ~{FF}}#А!}$}#} }8}"}&} }*} } }#}$А#}%}&Ї$/}1}'}"}(}"Аy~~{FF}}#А!}!}%} }(}#}$А#;,~ <--GSM:FF,3,C0,21,1,5,0,8,3,4,C0,23,3B,2C,
---CONFIG OK---
-->GSM:FF,3,C0,21,2,5,0,8,3,4,C0,23,EB,A6, ~{FF}}#А!}"}%} }(}#}$А#л¦~ PPP login: PPP passward:
-->GSM:FF,3,C0,23,1,1,0,6,0,0,81,29, ~{FF}}#А#}!}!} }&} } Ѓ)~ PPP login: PPP passward:
-->GSM:FF,3,C0,23,1,1,0,6,0,0,81,29, ~{FF}}#А#}!}!} }&} } Ѓ)~ PPP login: PPP passward:
-->GSM:FF,3,C0,23,1,1,0,6,0,0,81,29, ~{FF}}#А#}!}!} }&} } Ѓ)~ PPP login: PPP passward:
-->GSM:FF,3,C0,23,1,1,0,6,0,0,81,29, ~{FF}}#А#}!}!} }&} } Ѓ)~ PPP login: PPP passward:
-->GSM:FF,3,C0,23,1,1,0,6,0,0,81,29, ~{FF}}#А#}!}!} }&} } Ѓ)~~{FF}}#А!}%}%} }$\¤~~{FF}}#А!}%}%} }$\¤~ NO CARRIER Что не так? To west329_: Не могли бы вы прислать свои логи PAP?
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Oct 15 2008, 12:07
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 27-11-07
Из: Пермь
Пользователь №: 32 732

|
Цитата(Beginning @ Oct 14 2008, 19:08)  Народ, кто подскажет программу, которую можно просто на COM натравить, на котором модем GPRS висит, что бы она в INET вышла. А то я что-то не нашёл. Ставлю обычный драйвер стандартного модема, так он мне аппаратную ошибку выдаёт. Видимо не заточен под GPRS. У меня Windows XP SP2. Я просто добавил новый модем, настроил соединение и все заработало. Никаких драйверов скачивать не пришлось. Модем Siemens mc35i.
|
|
|
|
|
Oct 15 2008, 12:29
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
А какой именно модем вы добавили?????? У меня вообще глюки, капец какие. Мало того, что после согласавания параметров, модем вступает в ступор, и не отвечает ни на какие запросы PAP и IPCP, а через 1 минуту как ни в чём небывало, присылает мне Code-Reject, но впрочем я это описал выше, так ещё и винда такие фокусы выдаёт! Установил драйвер на модем. Простой .inf. Делаю подключение. Смотрю в PortMonitor уходят запросы AT, а в порт физически не поступают. Т.е. просераются гдето между драйвером и микрухой порта, или ещё где. Пипец какойто.
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Oct 17 2008, 13:52
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
В общем и целом, удолось подключить модем к компу и выйти в интернет. При этом удалось удачно заснифить весь трафик. И сразу посыпались сюрпризы. Как оказалось, комп сразу берёт инициативу на себя и начинает предлогать настройки модему. Вот первая его посылка: Код 7E,FF,3,C0,21,1,0,0,17,2,6,0,0,0,0,5,6,20,A4,5,5D,7,2,8,2,D,3,6,F7,D9,7E, Кто знает, что за параметр: D,3,6? Нигде в referenc нет описания? Кстати, не только я не знаю что за параметр, но и модем тоже. На что он благополучно фыркнул реджектом: Код 7E,FF,3,C0,21,4,0,0,7,D,3,6,AD,36,7E,
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Oct 17 2008, 14:59
|

Знающий
   
Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053

|
Обнаружил что сразу после согласования параметров, комп посылает модему следующее: Код 7E,C0,21,0C,03,00,12,20,A4,05,5D,4D,53,52,41,53,56,35,2E,31,30,42,C4,7E, Что за тип 0x0С? Если приглядется то в теле есть строка Код MSRASV5.10 Затем комп сразу посылает: Цитата 7E,C0,21,0C,04,00,19,20,A4,05,5D,4D,53,52,41,53,2D,30,2D,44,45,56,45,4C,4F,50,45 ,52,5F,8E,7E, В теле содержится: Код MSRAS-0-DEVELOPER_ После этого, комп посылает пороль по PAP, и модем отвечает аском. Что это за фигня?
--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
|
|
|
|
|
Oct 18 2008, 18:33
|

Местный
  
Группа: Свой
Сообщений: 378
Регистрация: 10-09-07
Из: UKR/Voz
Пользователь №: 30 423

|
Ув. не подскажите, пока автор молчит, задам вопросик. Разбираюсь с передачей пакетов в режиме ЖПРС через РРР сесию, как протокол верхнего уровня стоит UDP,
Собственно вопрос такоой, обём данных которые упаковываются в UDP на постоянный и находится в предел от 100 до 180 байт, играет роль четное или не четное количество байт, надо ли както это исправлять.
Получается что часть пакетов не выходит за пределы телефона, не слышно характерного звука в колонке, а часть пакетов процентов 30 проходит нормально, и проблема не со стороны сервера уже проверяли неоднократно, уже незнаю на что грешить ???
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|