2009-12-09 7 views
1

У меня есть некоторые разработки для последовательного протокола, и я сталкиваюсь с некоторыми вопросами, которые, как я полагаю, должны были рассматриваться в другом месте.обнаружение ошибок/исправление/восстановление в последовательных протоколах

Так что мне интересно, есть ли рекомендации по наилучшим методам проектирования последовательных протоколов. (Пожалуйста, укажите факт, который легко поддается проверке, или укажите авторитетный источник, если вы предъявите иск.). Общие рекомендации для веб-сайтов и книг также приветствуются.

В частности, мне приходится иметь дело с проблемами, как

  • разбора потока байт в пакеты
  • проверочных пакет является правильным (легко с CRC, например)
  • определение разумных типов ошибки, которые могут возникнуть (например, в потоке последовательного потока «точка-точка», спорадические однобитовые ошибки и опустившаяся серия байтов, возможны, но дополнительные фантомные байты маловероятны, тогда как с записью, хранящейся во флэш-памяти или на диске диск преобладающих типов ошибок)
  • исправление ошибок или восстановление (если я обнаружил ошибку в пакете, могу ли я ее исправить? Если нет, могу ли я пересинхронизировать с границей следующего пакета?)
  • как сделать пакеты переменной длины надежными для исправления ошибок/восстановления.

Любые предложения?

ответ

2

Считаете ли вы, что FEC (исправление ошибок в обратном направлении)?

Эта процедура очень часто используется в протоколах физического уровня, таких как WDM (мультиплексирование с разделением по длине волны)/OTN (оптическая транспортная сеть).

3

Packet разграничение

Для синхронизации с границами пакетов, как правило, у вас есть байты или байты последовательность, которая идентифицирует границы пакета, который не может произойти внутри самого пакета. Если в пакетных данных содержится этот идентификатор, тогда вам нужно «убежать» (aka byte stuff).

Примеры:

  • PPP Encapsulation
  • Consistent Overhead Byte Stuffing (COBS), или, может быть COBS/R, который кодирует пакеты данных, так что никаких нулевых байт не присутствует, таким образом, вы можете использовать нулевые байты для пакета ограничивающего

Packet проверка

Различные варианты a Re:

коррекции ошибок и т.д.

Хорошие вопросы. У меня не было большого опыта в этом.

+0

+1 для ссылки COBS, звучит очень интересно. –

+0

whee! Я просто попробовал это сегодня, и он работает действительно красиво. Спасибо большое! –

Смежные вопросы