Решение должно зависеть от данных, которые вы хотите отправить (что это такое, как это собирается). Если данные фиксированной длины, то пакеты фиксированной длины, вероятно, будут лучшими. Если данные могут быть легко (без необходимости экранирования) разделены на объекты с разделителями, тогда разделение может быть хорошим. Если вы знаете размер данных, когда начинаете отправлять фрагмент данных, префикс может быть даже лучше. Если отправляемые данные всегда состоят из одного символа или даже одного бита (например, «включено» / «выключено»), то все, что отличается от сообщения с одним символом фиксированного размера, будет слишком большим.
Также подумайте, как протокол может развиваться. Строки, разделенные EOL, хороши, если они не содержат сами символы EOL. Фиксированная длина может быть хорошей, пока данные не могут быть расширены некоторыми дополнительными частями и т. Д.