Это зависит от характеристик QoS (качества обслуживания) базового транспортного уровня.
Если базовый канал является надежным, то CRC, вероятно, является избыточным (предполагается, что некоторая проверка целостности выполняется на нижнем уровне протокола).
Если вы спрашиваете о том, как к очертить вашей полезной нагрузки из потока байтов, то есть несколько вариантов, один из которых может быть только в base64 кодирования/декодирования, ваш поток. Опять же, в зависимости от вашего требования, BASE64 может перевести слишком много накладных расходов.
Конечно, вы всегда можете использовать HEADER (Unique Sequence + payload length + CRC) с низкой вероятностью появления в вашей полезной нагрузке, но тогда вам нужно применить скремблер над своей полезной нагрузкой, чтобы свести к минимуму вероятность дублирования вашего HEADER и т. Д. .
Если вы хотите построить протокол для ненадежного потока байт ориентированного procotol, то зачем изобретать велосипед? Почему бы не использовать что-то вроде PPP?