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

 
 
> IP/UDP/TFTP uIP v1.0, uIP-шники отзовитесь.
Цырен
сообщение Aug 10 2007, 11:31
Сообщение #1


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

Группа: 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?

Спасибо за внимание.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Цырен
сообщение Aug 19 2007, 21:37
Сообщение #2


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

Группа: 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
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 19 2007, 21:54
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Цырен   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


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

 


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


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