|
TCP или UDP?, Подскажите способ реализации |
|
|
|
Dec 28 2007, 06:36
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Поздравляю всех с наступающими праздниками!!! А вопрос у меня такой. Есть классическая ситуация - некоторое устройство управляется компом по сети, причем находятся они в одной локалке, т.е. все быстро и условно надежно. Устройство получает от компа команды, возвращает результаты замеров, статусы и проч. Встает вопрос что использовать: TCP или UDP? В пользу TCP говорит тот факт, что не надо проверять доставку (а иногда важная команда должна быть обязательно доставлена, причем выполнена только один раз). Тут появляется большое "но". Фактически, те данные, которые я буду передавать (например, команды) - это пакеты. Т.е. явная пакетная передача данных. А TCP потоковый! Он мне даже не скажет, где одна команда закончилась и новая началась. Т.е. мне надо вводить некий механизм синхронизации чтобы отлавливать начало очередного пакета. Первое что в голову приходит - самому на своем уровне добавлять в пакет его длину. Но если одна из сторон хоть раз ошибется или сетка сглючит и длина пакета окажется неправильной, то я никогда уже не поймаю начало очередного пакета. Можно вместо длины (или вместе с ней) пометить сигнатурой начало пакета, а в самом пакете делать байт-стаффинг чтобы она там не повторилась. Не нравится - как-то тяжеловесно получается. Можно сделать по UDP, но там придется городить подтверждение доставки и контроль на недублирование пакетов. Тоже гемор. Короче, варианты решения я вижу, но все они мне не нравятся. Мне кажется, что есть какое-то простое и красивое решение, а я заблудился в трех соснах. Т.к. ситуация классическая для большинства встроенных систем, поделитесь плз опытом, кто как решает подобные задачи.
|
|
|
|
|
 |
Ответов
|
Jan 12 2008, 09:31
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Цитата Когда начинаются разговоры, о том дескать, что никаких протоколов не надо -- всё сводится либо к форматам (плюс какой-то неопределённый алгоритм обмена данными с использованием оных), либо к какой-то форме RPC. В последней случае действительно "протоколов не надо", они диктуются уровнем RPC (XML-RPC, DCOM, Corba, SOAP...) Вместо них появляются типы данных, объекты, методы... Классы и состояния. Зачем человеку городить это все? Чтобы было? Цитата Я на FTP ссылку не просто так давал. Там ПЕРЕДАЮТСЯ ГОЛЫЕ БИНАРНЫЕ ДАННЫЕ. В отдельном соединении. Это действительно проще, чем HTTP. Ага, конечно. 2 соединения проще одного, причем в одном текстом команды гонять, в другом - данные? Смысл??? Цитата Самое плохое, что такие приборы и программы не поддаются никакой автоматизации сторонними разработчиками. А может человек за комплекс програмных и аппаратных средств берет деньги и ему совсем не нужны шаловливые ручки "сторонних разработчиков", которые будут там чего-то изменять в его комплексе? Рассмотрите вопрос в таком аспекте. И время, затраченное на разработку. Я тоже больше денег заработаю, если просто передам send'ом структуру и все, а не буду неделю изготавливать фронт-энд для даже просто телнета. Цитата Ну и отладка. Что проще, отладить комплекс из программы под Win и программы в железе, либо что-то одно используя при этом элементарный телнет. Вы живете в прошлом веке, уж извините. Сейчас способов отладки намного больше и результат получается быстрее, чем во времена консолей. Цитата Третий аспект -- бинарных данных не бывает. Байт -- абстракция верная только для данной ЭВМ. Текст более универсален. Текст позволяет без проблем передавать простые типы данных так, что они будут корректно прочитаны и представлены на обоих ЭВМ (как там число в IEEE754 вручную записать?) Простите, но протокол TCP/IP оперирует именно БАЙТАМИ в канале передачи. Так что это неуместное замечание. Предлагаю автору тему закрыть, а то мы тут подеремся
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
Сообщений в этой теме
gladov TCP или UDP? Dec 28 2007, 06:36 Postoroniy_V Цитата(gladov @ Dec 28 2007, 15:36) Поздр... Dec 28 2007, 07:57 gladov Цитата(Postoroniy_V @ Dec 28 2007, 10:57)... Dec 29 2007, 21:35  Postoroniy_V Цитата(gladov @ Dec 30 2007, 06:35) Это з... Dec 30 2007, 05:37  tag Цитата(gladov @ Dec 30 2007, 00:35) Читал... Jan 10 2008, 07:36   gladov Цитата(tag @ Jan 10 2008, 10:36) ...есть ... Jan 10 2008, 10:56 Rst7 ЦитатаНо если одна из сторон хоть раз ошибется или... Dec 28 2007, 08:18 tag ...вы противоречите сами себе. Если TCP гарантируе... Dec 28 2007, 08:28 iosifk Цитата(gladov @ Dec 28 2007, 09:36) Поздр... Dec 28 2007, 09:30 KRS Цитата(gladov @ Dec 28 2007, 09:36) А TCP... Dec 28 2007, 11:20 Rst7 ЦитатаПорядок безусловно будет соблюден, но кто га... Dec 30 2007, 12:54 Aprox Может, я чего-то не понимаю в тонкостях задачи, но... Jan 9 2008, 12:23 Rst7 Цитата(Aprox @ Jan 9 2008, 14:23) Может, ... Jan 10 2008, 06:44  vvs157 Цитата(Rst7 @ Jan 10 2008, 09:44) Это хор... Jan 10 2008, 12:03   Rst7 Цитата(vvs157 @ Jan 10 2008, 14:03) Испол... Jan 10 2008, 12:39    vvs157 Цитата(Rst7 @ Jan 10 2008, 15:39) Вот тут... Jan 10 2008, 16:58  Aprox Цитата(Rst7 @ Jan 10 2008, 09:44) Это хор... Jan 10 2008, 17:17 Rst7 ЦитатаВопрос традиций
Вот и я думаю, зачем челове... Jan 11 2008, 06:28 vvs157 Цитата(Rst7 @ Jan 11 2008, 09:28) Вот и я... Jan 11 2008, 12:20  Rst7 Цитата(vvs157 @ Jan 11 2008, 14:20) Весьм... Jan 11 2008, 12:39   gladov Цитата(Rst7 @ Jan 11 2008, 15:39) Давай м... Jan 11 2008, 20:56    vvs157 Цитата(gladov @ Jan 11 2008, 23:56) Полно... Jan 11 2008, 21:37    Kirill Frolov Цитата(gladov @ Jan 11 2008, 23:56) Полно... Jan 12 2008, 08:46    Aprox Цитата(gladov @ Jan 11 2008, 23:56) Полно... Jan 14 2008, 08:36     blackfin Цитата(Aprox @ Jan 14 2008, 11:36) ... до... Jan 14 2008, 08:52      Aprox Цитата(blackfin @ Jan 14 2008, 11:52) Ага... Jan 14 2008, 10:48 Aprox Цитата(Rst7 @ Jan 11 2008, 09:28) HTML ст... Jan 11 2008, 13:45 Kirill Frolov Цитата(gladov @ Dec 28 2007, 09:36) В пол... Jan 11 2008, 14:01 vvs157 Цитата(Rst7 @ Jan 12 2008, 12:31) А может... Jan 12 2008, 21:36 Kirill Frolov Цитата(Rst7 @ Jan 12 2008, 12:31) Я тоже ... Jan 13 2008, 08:20 blackfin Цитата(Kirill Frolov @ Jan 11 2008, 17:01... Jan 12 2008, 09:36 Rst7 ЦитатаНа телнет неделю?
Об этом - чуть ниже, не В... Jan 13 2008, 12:31 Kirill Frolov Цитата(Rst7 @ Jan 13 2008, 15:31) Допусти... Jan 13 2008, 17:47 vvs157 Цитата(Rst7 @ Jan 13 2008, 15:31) А Вы за... Jan 13 2008, 21:00 Rst7 ЦитатаУгу. Ошибка. Такое в реальной жизни не работ... Jan 13 2008, 18:35 Rst7 Цитатагадить потребителю тоже не подобает серьезны... Jan 14 2008, 06:32 Rst7 ЦитатаНа "низшей меге" реализовать полно... Jan 14 2008, 09:09 blackfin Цитата(Rst7 @ Jan 14 2008, 12:09) Ну это ... Jan 14 2008, 09:52 GL_basik Вставлю свои 5 копеек.... Если надо бытро и легко ... Jan 17 2008, 10:07 Aprox Цитата(GL_basik @ Jan 17 2008, 13:07) Вст... Jan 17 2008, 16:12  Dog Pawlowa Без рассмотрения:
- структуры прибора
- объема пе... Jan 17 2008, 16:35  blackfin Цитата(Aprox @ Jan 17 2008, 19:12) По это... Jan 17 2008, 16:52   Aprox Цитата(blackfin @ Jan 17 2008, 19:52) Сра... Jan 18 2008, 08:21    blackfin Цитата(Aprox @ Jan 18 2008, 11:21) Необхо... Jan 18 2008, 09:01     Aprox Цитата(blackfin @ Jan 18 2008, 12:01) При... Jan 18 2008, 16:13      blackfin Цитата(Aprox @ Jan 18 2008, 19:13) Делаю ... Jan 19 2008, 10:38       Aprox Цитата(blackfin @ Jan 19 2008, 13:38) Нов... Jan 20 2008, 16:29 Rst7 ЦитатаПо этой причине, конструкторам малых систем... Jan 17 2008, 16:27 GL_basik Если есть время сначала создавать устройство, пото... Jan 18 2008, 09:09 Rst7 Цитатано ограничение на максимальное кол-во хостов... Jan 19 2008, 13:46 blackfin Цитата(Rst7 @ Jan 19 2008, 16:46) Это отк... Jan 19 2008, 17:23 Rst7 ЦитатаА что, существуют switch'и на большее чи... Jan 19 2008, 18:27 prottoss Привет всем!
Прочитал в теме про упоминание A... Feb 8 2008, 13:22 Aprox Цитата(prottoss @ Feb 8 2008, 16:22) Прив... Feb 9 2008, 15:04  Aprox Цитата(Aprox @ Feb 9 2008, 18:04) Я польз... Feb 10 2008, 08:13   prottoss Цитата(Aprox @ Feb 10 2008, 15:13) дабы н... Feb 10 2008, 09:21 Rst7 ЦитатаВозможно у кого нибудь есть наработки по это... Feb 8 2008, 13:42 prottoss Цитата(Rst7 @ Feb 8 2008, 20:42) Наработо... Feb 8 2008, 13:51 prottoss Все оказалось на много проще, чем я думал....пока ... Feb 8 2008, 15:46 Rst7 ЦитатаКогда все отработаю, естественно встанет воп... Feb 10 2008, 13:00
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|