Цитата(GetSmart @ Jun 2 2007, 13:04)

Да не забыл я про кс. Просто пакет со случайно оказавшейся в нем синхронизацией (хоть 20, хоть 100 байт) не сможет быть передан через канал как ни извращайся. КС позволит обнаружить то, что что-то передано неправильно и потребует повторить передачу этого пакета. Но и во второй раз передача накроется, и в третий. Содержимое же пакета нельзя заменить на другое. Оно как совпадало, так и будет совпадать с синхронизацией.
Согласен, никто так не делает.
Можно предложить расширенную версию байтстаффинга, ниже краткое описание того что должно быть:
1 - упр символ.
2 - символ старта пакета (распознается как старт только если идет после упр. символа)
3 - символ завершения пакета (распознается как конец пакета, только если идет после упр символа)
4 - два упр. символа подряд трактуются как символ данных равный упр. символу.
5 - одиночный упр. символ - не сопровождаемый ни старотовым символом, ни символом завершения - трактовать как сбой передачи - и прием пакета прекращать.
6 - CRC пакета очень желательно.
Использую такой протокол для радио передачи - по вине протокола практически ничего не теряется и нет сбоев с определением начала/конца которые часто встречаются если использовать чистый байтстаффинг.