|
IP/UDP/TFTP uIP v1.0, uIP-шники отзовитесь. |
|
|
|
Aug 10 2007, 11:31
|

Частый гость
 
Группа: Validating
Сообщений: 184
Регистрация: 26-06-07
Из: Санкт-Петербург
Пользователь №: 28 714

|
Недавно поднял uIP 1.0 для своей платы с LPC2364. Реализовал на ней web сервер, потом - telnet. Документация потрясающая, все понятно. Но это все были стеки IP/TCP/, моя же техническая задача состоит в реализации IP/UDP/TFTP(modbus). Если кто имеет исходнички на UDP и TFTP, плиз, ПОДЕЛИТЕСЬ. А если кто-то, вообще, уже делал такую связку, то я буду несказанно рад взять и воспользоваться вашими плодами работы безо всяких угрызений совести blush.gif. Попутно спрошу. 1. Я так понимаю, что в uIP есть возможность подключения нескольких соединений равно как и несколько портов, но последнее не означает, что в uIP можно врубить два сервака сразу, например, web сервер и telnet, поскольку существует только одно определение app_call, которое вызывается обработчиком событий TCP. Правильно я понимаю? 2. Могут ли одновременно работать TCP и UDP в uIP?
Спасибо за внимание.
|
|
|
|
|
 |
Ответов
|
Aug 19 2007, 21:37
|

Частый гость
 
Группа: Validating
Сообщений: 184
Регистрация: 26-06-07
Из: Санкт-Петербург
Пользователь №: 28 714

|
Я почти близок к своей заветной цели. Я вот думаю как организовать тайм-аут. Ведь у каждого нового подключения есть своя история (был ли подтвержден последний блок, сколько было попыток ретрансляции и еще что-нибудь). Помоему одной глобальной переменной не обойтись, как вы считаете, те, кто разбирался в TFTP? Кстати пришлось много где поискать инфу по протоколу. RFC1350 (ftp://ftp.rfc-editor.org/in-notes/rfc1350.txt) - похоже единственный источник, давший полное представление о протоколе. Но по началу очень помогла ссылка http://andr.ru/lib/comp/net/tcpip/tcpip_il...ated/tcp15.html - очень доступным языком. Да и вообще на этом сайте есть все про протоколы. Мысли вслух: 1. Интересно получается, для того, чтобы TFTP заработал надо инициализировать его, создав в таблице UDP-соединений соединение с параметрами ripaddr=0.0.0.0, rport=0 и lport=69 (ну там еще ttl есть, не понятно для чего он там для TFTP). TFTP постоянно прослушивает 69-й порт и когда появляется UDP-сообщение на наш IP и порт 69 (это запрос на чтение или запись: opcode=1или2), сервер должен создать в таблице UDP-соединений новое соединение по случайному номеру локального порта lport. В этой новой записи сохраняются даные об IP-адресе и номере порта удаленного хоста(ripaddr=x, rport=y), вытащенные из UDP-пакета. И сразуже происходит обработка пришедших данных, с последующим ответом (подтверждение на запись или посылка первого блока запрошенных данных). Т.о. в таблице UDP-соединений появляются две записи, одна - для ублажения нужд подключившегося клиента, вторая - для рецепшена возможных новых соединений. А о состоянии соединения будут отражать какие-нибудь глобальные переменные. Если так, то получается для каждого соединения нет индивидуальных данных о том, было ли подтверждение на прошлый блок или, например, сколько времени прошло с момента посылки последнего блока. А если соединений три, допустим, и в одном из них произошел разрыв. Что же, теперь все остальные соединения канут в лету? Как же быть? Создать структуру(struct) в которой будут все параметры состояния соединения и построить массив такого типа размером равным размеру массива UDP-соединений, чтобы потом ассоциировать каждый элемент такого массива состояний с соответствующим соединением? 2. TFTP должно само позаботиться о том как поправить UDP-заголовок. А точнее задать IP-адрес получателя, наш IP-адрес, порт получателя, наш порт в пакете сообщения и длину UDP-пакета с заголовком. А надо ли длину?
Сообщение отредактировал Цырен - Aug 19 2007, 21:41
|
|
|
|
|
Aug 19 2007, 21:54
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Цырен @ Aug 20 2007, 00:37)  RFC1350 (ftp://ftp.rfc-editor.org/in-notes/rfc1350.txt) - похоже единственный источник, давший полное представление о протоколе. Полное? А эти забыли еще почитать RFC 1785, ,RFC 2090, RFC 2347, RFC 2348, RFC 2349, если будете работать с продвинутыми клиентами.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Цырен IP/UDP/TFTP uIP v1.0 Aug 10 2007, 11:31 e-yes 1. Не правильно понимаешь. Есть еще uip_app_regist... Aug 12 2007, 11:09 etoja Исходники прилагаю.
Каким компилятором пользовалис... Aug 13 2007, 04:04 Цырен 2 etoja
Спасибо, впервые вижу этот код, хотя всю ... Aug 13 2007, 07:53 ig_z Цитата(Цырен @ Aug 10 2007, 14:31) 1. Я т... Aug 13 2007, 08:05 Цырен Цитата(ig_z @ Aug 13 2007, 12:05) Недокур... Aug 13 2007, 08:15  ig_z Цитата(Цырен @ Aug 13 2007, 11:15) 2 ig_z... Aug 14 2007, 08:29 e-yes >Я нашел указанные файлы на старой версии сайта... Aug 13 2007, 15:07 Цырен Цитата(e-yes @ Aug 13 2007, 19:07) ... Aug 14 2007, 06:38 Цырен 2 ig_z
Спасибо. Когда встанет вопрос о мультизадач... Aug 14 2007, 10:25 Цырен Я сделал так, чтобы на uIP работали сразу два серв... Aug 16 2007, 11:26 etoja TFTP гораздо проще, чем FTP.
TFPT использует для д... Aug 16 2007, 13:18  Цырен Цитата(zltigo @ Aug 20 2007, 01:54) Полно... Aug 20 2007, 09:47 Цырен Кажется я ответил себе как отследить состояние каж... Aug 20 2007, 12:51 Usatyj уважаемый Цырен!
поможите исходничком, а? не п... May 22 2008, 07:21 Aprox Цитата(Цырен @ Aug 20 2007, 16:51) Кажетс... May 23 2008, 19:39 PoReX Подскажите с UDP на uIP v1.0. Никак не получается ... Feb 5 2013, 12:17 scifi Цитата(PoReX @ Feb 5 2013, 16:17) Может е... Feb 5 2013, 15:08  PoReX Цитата(scifi @ Feb 5 2013, 19:08) Есть ра... Feb 6 2013, 19:08 podelkin а lwip слишком тяжел? По мне так продвинутее на по... Feb 5 2013, 12:17 PoReX Цитата(podelkin @ Feb 5 2013, 16:17) а lw... Feb 5 2013, 12:18 PoReX Одна проблема решилась. Оказывается uip шлет udp с... Feb 7 2013, 09:27 PoReX Наконец я победил uip:) Как и думал проблема заклю... Feb 7 2013, 10:55 ElectronicsLab Добрый день. Что-то не получается у меня отправить... Aug 20 2013, 10:31 kolobok0 Цитата(ElectronicsLab @ Aug 20 2013, 14:3... Aug 21 2013, 09:57 kramener Цитата(PoReX @ Feb 7 2013, 14:55) Наконец... Sep 20 2013, 11:45 kramener Только что сам разобрался с uIP ) Выложу код на вс... Sep 20 2013, 13:46 Myrik Мне бы вернутся к теме о двух серваках на uIP. Дел... Apr 7 2014, 05:47
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|