|
Надежность потока TCP и USB bulk, Возможна ли потеря данных? |
|
|
|
Aug 13 2012, 09:40
|
Группа: Новичок
Сообщений: 5
Регистрация: 13-08-12
Пользователь №: 73 107

|
Всем добрый день.
Заранее прошу прощения за возможный оффтоп, но я не нашел более подходящей ветки. Перенесите плз, если не прав.
Теперь к вопросу. Планируется выпуск устройства на базе ARM, которое будет получать инструкции от ПК. Должно поддерживать несколько интерфейсов, в т.ч. Ethernet и USB. Поток до 1 МБит/с. Данные представляют собой управляющие команды (как следствие, планируется пакетная передача) и терять их никак нельзя. Возникает главный вопрос: возможна ли теоретически потеря или порча данных в потоке TCP или USB? Вроде бы такого быть не должно, однако даже поиск по этой конференции показывает, что крайне редко в том же ТСР встречаются пакеты с битой КС на уровне приложения. Если допустить что раз в год и палка стреляет, то возможна такая ситуация, что будет испорчен заголовок команды. Тогда пакет будет принят некорректно, но самое страшное, что будет потеряно ожидаемое начало следующего пакета и т.п. Короче, возможен рассинхрон. Во избежание, придется любо городить некие таймауты для восстановления синхронизации, что не очень хорошо скажется на скорости работы, либо делать стаффинг, но мне не очень нравится реализовывать логику по сути канального уровня поверх транспортного. Либо делать еще что-то, чего мне в голову пока не пришло. Гуру, подскажите, как все таки правильно сделать надежный пакетный обмен?
|
|
|
|
|
 |
Ответов
|
Aug 13 2012, 13:55
|
Группа: Новичок
Сообщений: 5
Регистрация: 13-08-12
Пользователь №: 73 107

|
Цитата(KRS @ Aug 13 2012, 15:46)  Автору - если у вас соединение с ПК в одном сегменте (т.е. без маршрутизаторов и т.п.) можно вообще обойтись без TCP и использовать UDP Не, UDP точно не пойдет. Предполагается работа в одном сегменте сети, но в условиях довольно серьезных помех и практика показала, что UDP очень даже ненадежен, если не прикрутить поверх него свою "гарантию" доставки. Цитата(Rst7 @ Aug 13 2012, 15:58)  Да излишне это все. TCP через Ethernet (особенно в одном сегменте) можно считать абсолютно надежным. Ну, если конечно, топикстартера не интересуют временные интервалы порядка возраста Вселенной  Нет, космические временные интервалы меня не интересуют. Достаточно нескольких суток стабильной работы. Теперь про TCP/IP примерно понятно, спасибо! А про USB никто ничего не подскажет?
Сообщение отредактировал Avensis - Aug 13 2012, 13:56
|
|
|
|
|
Aug 14 2012, 07:09
|
Знающий
   
Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088

|
Цитата(Avensis @ Aug 13 2012, 17:55)  А про USB никто ничего не подскажет? USB - в условиях сильных ЭМ помех крайне ненадёжен в плане передачи данных. Лично видел, как отваливалась USB клавиатура от компьютера при включении рядом мощной нагрузки. Могу порекомендовать посмотреть в сторону CAN - там на физическом уровне гарантируется доставка посылки с правильным CRC (передатчик передаёт до тех пор, пока приёмник не подтвердит аппаратно получение посылки).
--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
|
|
|
|
|
Aug 14 2012, 07:38
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(gerber @ Aug 14 2012, 10:09)  USB - в условиях сильных ЭМ помех крайне ненадёжен в плане передачи данных. Лично видел, как отваливалась USB клавиатура от компьютера при включении рядом мощной нагрузки. Могу порекомендовать посмотреть в сторону CAN - там на физическом уровне гарантируется доставка посылки с правильным CRC (передатчик передаёт до тех пор, пока приёмник не подтвердит аппаратно получение посылки). Ненадежен не USB, а потребительская техника. Работая с силовой электроникой постоянно наблюдаю как отваливается не только USB клавиатура, но USB COM порты, USB накопители, USB осциллографы. Монитор отваливается, который по VGA присоединен. Отваливается Ethenet свитч возле компа. Виснет Ethernet роутер. Бессмысленно говорить о надежности интерфейсов если они подключены к бытовому компу через дешевые свитчеры или хабы, без специальной инфраструктуры защит и заземлений. Там элементарно сетевой интерфейс может начать шалить, искажать пакеты, а потом добавлять к ним правильную CRC.
|
|
|
|
Сообщений в этой теме
Avensis Надежность потока TCP и USB bulk Aug 13 2012, 09:40 Rst7 QUOTE однако даже поиск по этой конференции показы... Aug 13 2012, 10:09 Avensis Цитата(Rst7 @ Aug 13 2012, 14:09) Если TC... Aug 13 2012, 10:46 Rst7 QUOTE Вот тут говорят, что такое все же бывает. 1 ... Aug 13 2012, 10:54 Avensis Цитата(Rst7 @ Aug 13 2012, 14:54) Разве т... Aug 13 2012, 10:59 Rst7 QUOTE Вероятность таки существует?
Согласно квант... Aug 13 2012, 11:39 KRS Цитата(Rst7 @ Aug 13 2012, 15:39) Согласн... Aug 13 2012, 11:46    aaarrr Цитата(AlexandrY @ Aug 14 2012, 11:38) Ра... Aug 14 2012, 07:49    dinam Насчет надежности USB. Подключал своё устройство 5... Aug 14 2012, 07:56 Konst_777 Цитата(Avensis @ Aug 13 2012, 12:40) ...П... Aug 14 2012, 08:14 Avensis Цитата(Konst_777 @ Aug 14 2012, 12:14) Ти... Aug 14 2012, 09:58  maksimp Цитата(Avensis @ Aug 14 2012, 13:58) Пред... Aug 14 2012, 17:43  Konst_777 Цитата(Avensis @ Aug 14 2012, 12:58) ...П... Aug 15 2012, 06:10   ReAl Цитата(Konst_777 @ Aug 15 2012, 09:10) В ... Aug 18 2012, 07:50    Konst_777 Цитата(ReAl @ Aug 18 2012, 10:50) А что, ... Aug 18 2012, 17:47
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|