Перейти к содержанию
    

Протокол передачи с защитой от потери/ошибки

Допустим, есть два устройства, обменивающиеся данными по какой-то ненадёжной линии: длинные провода / радиоканал / ИК.

Нужен протокол, обеспечивающий проверку сохранности и целостности данных. Разумеется, его можно изобрести.

 

Вопрос: нет ли универсального готового протокола ? В виде аппаратно-независимой библиотеки СИ ? Что бы были целые данные на входе, целые данные на выходе, а между устройствами библиотека как-то сама устанавливает связь и передаёт-проверяет пакеты?

 

Казалось бы, задача распространённая, много где решается в +- одном и том же виде, может быть есть готовые решения ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос: нет ли универсального готового протокола ?
Как он может быть универсальным??? Заранее не известно пакетная передача или поточная. Какой размер пакетов. Симплексная или дуплексная передача. Какая избыточность допустима. Готовый это TCP/IP, но для многих приложений он явно не подходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но в любом случае за 2-3 минуты находится готовое решение.

google.com

Главное правильно написать вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Протокол передачи с защитой от потери/ошибки, Существует ли универсальный готовый ?

Допустим, есть два устройства, обменивающиеся данными по какой-то ненадёжной линии: длинные провода / радиоканал / ИК.

Нужен протокол, обеспечивающий проверку сохранности и целостности данных. Разумеется, его можно изобрести.

 

Вопрос: нет ли универсального готового протокола ? В виде аппаратно-независимой библиотеки СИ ? Что бы были целые данные на входе, целые данные на выходе, а между устройствами библиотека как-то сама устанавливает связь и передаёт-проверяет пакеты?

 

Казалось бы, задача распространённая, много где решается в +- одном и том же виде, может быть есть готовые решения ?

Вам нужно просто определять сам факт, что данные покоцались или Вам нужен протокол возможностью исравления ошибок?

 

И того и того полно "стандартного", что юсается уже лет 50

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

пакетная передача или поточная. Какой размер пакетов. Симплексная или дуплексная передача.

Этот вопрос решается на стыке аппаратно-независимой библиотеки с реальным передающим железом.

Очевидно, на обеих сторонах какие-то буферы, которые как-то передаются друг в друга.

 

Если кто-то знает готовые решения - покажите пожалуйста.

 

Я понимаю, о чём речь, и что хочу:

Собственный протокол я уже делал дважды, оба раза в виде +-библиотеки.

И один раз использовал библиотеку коллеги-программиста, которую мы отлаживали совместно.

Во всех случаях что-то оставалось недоделано или неидеально - просто из-за ограниченности ресурсов на эту работу.

Вот и думаю, что вполне возможно существование готового хорошего решения.

 

Просьба- кто такие протоколы не делал, пожалуйста, не давайте теоретические советы.

Это вопрос к людям, которые имеют собственный опыт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я понимаю, о чём речь, и что хочу:

Провоцирование к телепатии? :biggrin:

Тогда TCP/IP v6

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть готовые устройства, называются "модем" :)

Вообще, насколько я знаю, эти протоколы так просто, "с кондачка", не выбирают. Их выбирают или создают, имея в своем распоряжении модель конкретного канала связи.

длинные провода

1. Купите пару телефонных модемов, они должны сейчас копейки стоить, вроде IDC2814 или Zyxel U-1496. Одному подаем команду "ata", другому - "atd", ждем, пока они законнектятся, и дело в шляпе ...

/ радиоканал / ИК.

2. Радиомодемы, например, Невод - чем не решение проблемы ?

 

Или вы хотите сделать свой модем ? Как я понял, это именно так. Тогда вот, самое простое, наверное:

 

http://www.ti.com/lit/an/slaa618/slaa618.pdf

 

http://www.gaw.ru/html.cgi/txt/app/micros/msp430/slaa037.htm

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дайте повангую.

подойдёт?

 

Спасибо !

Оно одно такое ? На "С" без "++" ничего подобного нет ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На "С" без "++" ничего подобного нет ?
Поиск по гитхабу выдаёт несколько вариантов.

 

Ещё можете посмотреть протокол RUDP.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо !

Оно одно такое ? На "С" без "++" ничего подобного нет ?

всмысле без "++"?

оно для FPGA на стейт-машинах есть.

для high-frequency-trading для связи географически-разнесенных бирж активно используется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

всмысле без "++"?

оно для FPGA на стейт-машинах есть.

для high-frequency-trading для связи географически-разнесенных бирж активно используется.

Что-то вы видимо плохо поняли.

Это протокол для абсолютно надежных оптических сетей, быстрый только за счет упрощения процедур проверки сохранности и целостности данных.

По сути непригодный для обычных медиаканалов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Провоцирование к телепатии? :biggrin:

Тогда TCP/IP v6

Слишком простой протокол для реализации :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Слишком простой протокол для реализации :biggrin:

Не будем решать за ТС.

Он же сам разработчик протоколов. 😏

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...